Pdf

Unix從PDF文件中提取矢量圖像及其圖形的方法?

  • May 19, 2020

數據:一篇 LHC 論文的第 16 頁,其中圖片是矢量化的(很可能是 .eps)。我正在查看從圖中抓取數據所需執行緒軟體的答案。我找不到任何用於從 PDF 文件中提取 .eps 圖像的工具。我整個系統的虛擬碼

  1. gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=newfile.pdf badfile.pdf通過(來源)中和 PDF 文件
  2. 查找用於從 pdf 文件中提取矢量化圖像的原始解析度。(不確定這一點,因為可能不需要縮放; Adobe 視圖的 100% 縮放級別無法通過螢幕截圖獲得最佳效果)
  3. 從 pdf 文件中提取矢量圖像(目前目標
  4. 從.eps圖像中提取圖形

在同一個系統中做所有事情會很棒。

用 (3) 打開工具

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

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

  • 很可能是 R 包,它可以做這兩件事:

僅帶有 (3) 或 (4) 或沒有的工具

  • 任務 (4) 可以在 Mathematica 中完成,如此處所述關於Is it possible to extract data from an eps plot not generated in Mathematica。但是,根據 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 圖像及其圖形?

該案例不存在足夠的支持解決方案,因為該問題實際上是困難的逆問題。Mathematica 解決方案在實際​​應用中也存在重大問題。

不確定我是否真的回答了最初的問題。

Inkscape可以在保留矢量資訊的同時從 .pdf 導入頁面。然後可以以 .svg 格式保存。

如果要提取路徑/點座標,則可以**讀取 .svg文件。**但是,如果您想返回圖形座標,則需要進行一些調整(基本上是縮放和偏移)。

我嘗試編寫一個 python 程式碼來讀取 .svg 文件並根據svg格式定義取回圖形座標中的點。然而,它正在開發中,需要通過只保留曲線和裸軸來清理圖形。

引用自:https://unix.stackexchange.com/questions/281211