数据:一篇大型强子对撞机论文第 16 页,其中图片被矢量化(很可能是 .eps)。我正在查看答案这里线程的从图表中抓取数据所需的软件。我找不到任何用于从 PDF 文件中提取 .eps 图像的工具。我的整个系统的伪代码
- 通过
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=newfile.pdf badfile.pdf
(来源) - 查找原始分辨率以从 pdf 文件中提取矢量化图像。 (不确定这一点,因为可能不需要缩放;Adobe 视图的 100% 缩放级别无法通过屏幕截图达到最佳效果)
- 从 pdf 文件中提取矢量化图像(当前目标)
- 从 .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格式定义。然而,它正在开发中,需要在之前仅保留曲线和裸轴来清理图形。