Unix 方式从 PDF 文件中提取矢量化图像及其图形?

Unix 方式从 PDF 文件中提取矢量化图像及其图形?

数据:一篇大型强子对撞机论文第 16 页,其中图片被矢量化(很可能是 .eps)。我正在查看答案这里线程的从图表中抓取数据所需的软件。我找不到任何用于从 PDF 文件中提取 .eps 图像的工具。我的整个系统的伪代码

  1. 通过gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=newfile.pdf badfile.pdf(来源
  2. 查找原始分辨率以从 pdf 文件中提取矢量化图像。 (不确定这一点,因为可能不需要缩放;Adobe 视图的 100% 缩放级别无法通过屏幕截图达到最佳效果)
  3. 从 pdf 文件中提取矢量化图像(当前目标
  4. 从 .eps 图像中提取图形

在同一个系统中完成所有操作会很棒。

使用 (3) 打开工具

可能的图像格式 png/xpm/jpeg/tiff/pnm/ras/bmp/gif

  • g3data但没有 .eps 格式
  • Engaude 数字化仪已激活这里,并且比 更受欢迎R digitize
  • R digitize被删除于克兰,因为没有维护者权力;但现在在tpoisot的Github上这里以及卢克博客中的评论使用“数字化”对旧绘图中的数据进行数字化但他们正试图回到 CRAN这里一张票。我在使用该软件时遇到了一系列问题这里。一大弱点是他们感知自己的 github,并且不欢迎任何反馈。

具有 (3) 和 (4) 的系统

  • 最有可能的是 R 包可以做这两件事:

仅带有 (3) 或 (4) 的工具或无工具

  • 任务 (4) 可以在 Mathematica 中完成,如下所述这里关于是否可以从 Mathematica 中未生成的 eps 图中提取数据。然而,根据 devtalk 的说法,Mathematica 不适合任务 (3)。
  • Adobe Acrobat > 编辑。我找不到任何合适的方法来做到这一点。 Ubuntu 16.04 中似乎没有 Linux 版本。

从向量化和步骤 (1-2)

此处无法拖放图形。因此必须以编程方式从 pdf 中提取图形。有一个终端工具可以从文档中提取所有图像/eps/...,但我不知道他们做的事情有多好。我想在这里找到一些适合从 pdf 文件中提取 .eps 图像的东西。

从光栅化到矢量化的步骤(1-2)

DavidLeBauer 提供的有关图形与 x 轴相交的示例图像以供讨论这里

在此输入图像描述

大卫的第二个例子是关于两轴相交的点

在此输入图像描述

代码

% https://unix.stackexchange.com/q/281211/16920
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=data_clean.pdf badfile.pdf

% drag and drop picture from data_clean.pdf to your folder in Ubuntu 16.04 by having the default zoom level; I think zoom should not affect here the result of drag-and-drop
% Result: image.png

% g3data image.png
% bug in 16.04: http://askubuntu.com/q/767982/25388

% open figure in ubuntu - Print to File > Ps.
% Result: image.png.ps

ps2eps image.png.ps
% Result: image.png.eps

% https://mathematica.stackexchange.com/q/85320/9815
%% Mathematica starts here 

(* Wolfram Language Test file *)

fig = Import["image.png.eps"]

Import["http://raw.github.com/AlexeyPopkov/shortInputForm/master/shortInputForm.m"]

fig // shortInputForm

% Run but get error: http://askubuntu.com/q/767992/25388
% NB this error comes too if I have no code in the editor. So something wrong in my way of doing this. I am amateur in Mathematica. 

如何以 Unix 方式从 pdf 文件中提取 .eps 图像及其图形?

答案1

对于这种情况,不存在足够的受支持的解决方案,因为该问题实际上是困难的逆问题。 Mathematica 解决方案在实际应用中也存在重大问题。

答案2

不确定我是否真的回答了原来的问题。

Inkscape可以从 .pdf 导入页面,同时保留矢量信息。然后可以保存为 .svg 格式。

读取 .svg如果您想提取路径/点坐标,则可以使用文件。然而,如果您想返回图形坐标,则需要进行一些调整(基本上是缩放和偏移)。

我尝试编写一个 python 代码来读取 .svg 文件并根据svg格式定义。然而,它正在开发中,需要在之前仅保留曲线和裸轴来清理图形。

相关内容