簡體   English   中英

如何使用 ghostscript 將 PDF 轉換為 PDF/A 或 PDF/X?

[英]How to use ghostscript to convert PDF to PDF/A or PDF/X?

有沒有辦法使用 ghostscript 將 PDF 轉換為 PDF/A 或 PDF/X? 我知道它可以用於將PDF轉換為圖像,但我不知道它是否可以用於轉換PDF/A。 我應該使用哪些參數?

這是將pdf文檔(不是pdf/a)轉換為pdf/a: gs -dPDFA -dBATCH -dNOPAUSE -dUseCIEColor -sProcessColorModel=DeviceCMYK -sDEVICE=pdfwrite -sPDFACompatibilityPolicy=1 -sOutputFile=output_filename.pdf input_filename.pdf

希望這會幫助某人!

希望這個答案可以幫助來自谷歌的其他人遇到同樣的問題:

要將 PDF 轉換為 PDFA-1b 或 PDFA-2b,您可以使用 Ghostscript。 我建議您使用最新版本(今天是 9.19)。

安裝它

在 Mac OS 中,您可能更喜歡使用Homebrew

brew install ghostscript

在 Linux 中,一些發行版帶來了更舊的版本(rhel7 sports 9.07)。 要下載完全獨立的現代單一文件 ghostscript,請直接從站點下載:

wget https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs919/ghostscript-9.19-linux-x86_64.tgz

如果您在 20 年后嘗試時上面的鏈接已損壞,請訪問 ghostscript.com 並搜索下載部分。 下載二進制版本,不要去尋找源代碼,除非你知道自己在做什么。

在 Windows 中,我無法幫助您,但是如果您設法安裝它,如果您替換文件和 gs 可執行文件的位置,以下命令也將起作用。

命令行

gs-919-linux_x86_64 -dPDFA=1 -dNOOUTERSAVE -sProcessColorModel=DeviceRGB -sDEVICE=pdfwrite -o output_file.pdf /path/to/PDFA_def.ps -dPDFACompatibilityPolicy=1 input_file.pdf

在 Mac 中gs-919-linux_x86_64將只是gs

請注意output_file.pdfinput_file.pdf必須更改為輸出文件(轉換后的文件)和輸入文件(要轉換的文件)的名稱。 /path/to/PDFA_def.ps是文件PDFA_def.ps副本。

-dPDFA=1用於 PDFA-1b。

-dPDFA=2如果你想要 PDFA-2b。

什么是PDFA_def.ps

PDFA_def.ps是 ghostscript 用於創建 PDFA 文件的某種模板。 棘手的部分是,出於某種原因,ghostcript 附帶了一個非工作文件。

您需要編輯PDFA_def.ps並包含有效 ICC(顏色配置文件)文件的路徑。 從 Adob​​e 下載一個好的顏色配置文件:

wget http://tutankhamon.acc.umu.se/mirror/archive/ftp.sunet.se/pub/vendor/adobe/adobe/iccprofiles/win/

在該 zip 文件中,找到一個名為AdobeRGB1998.icc的文件,將其放在某處並將該文件的路徑放入 PDFA_def.ps 文件中

這是PDFA_def.ps的一個版本,把PATH_TO_YOUR_ICC_FILE你AdobeRGB1998.icc的路徑。

https://gist.githubusercontent.com/weltonrodrigo/19df77833f023fbe1572168982e4b515/raw/ea86e87379d14120d7ff26f6f235ac7eeb5f5dd5/PDFA_def.ps

@danio、@imgen:即使是最近發布的關於 PDF/X(標准化印前要求)和 PDF/A(標准化歸檔要求)生成的文檔頁面也具有相當大的誤導性。 (您的鏈接指向 v8.63 版本。)最后,它建議使用示例PDF*_def.ps運行示例命令行已經生成有效的 PDF/A 和 PDF/X 文件。

但是,他們沒有!

這是示例命令之一,它本身是正確的:

  gs \
    -dPDFA \
    -dBATCH \
    -dNOPAUSE \
    -dNOOUTERSAVE \
    -dUseCIEColor \
    -sDEVICE=pdfwrite \
    -sOutputFile=out-a.pdf \
     PDFA_def.ps \
     input.ps

輸出文件將自己聲明為 PDF/A(大多數 PDF 查看器會很樂意接受),但輸出文件未通過所有真正的合規性測試。

修復很簡單:您需要編輯示例PDFA_def.ps (對於 PDF/X:您的PDFX_def.ps )文件以匹配您的環境。 這些必需的編輯在較舊的文檔版本中沒有明確說明,並且提供的命令表明它可以開箱即用。

特別是在 PDF/X 的情況下,您必須指定要使用的有效 ICC 配置文件。

另請參閱有關此內容的更新文檔(當前 SVN 主干版本):

請注意,當前的答案並不完全正確。 您可以定義所需的 PDF/A 級別,從而導致程序的不同行為。 這個是對的:

gs -dPDFA -dBATCH -dNOPAUSE -sColorConversionStrategy=UseDeviceIndependentColor -sDEVICE=pdfwrite -dPDFACompatibilityPolicy=2 -sOutputFile=output_filename.pdf input_filename.pdf

請注意我從s dPDFACompatibilityPolicy 更改為d PDFACompatibilityPolicy。 將其更改為更高的數字以獲得其他版本。 如果您不需要 DOCINFO,則 1 很好。 此外,我們使用UseDeviceIndependentColor選項來避免驗證問題。

如果您在此處更改選項,您很可能會得到不合規的 PDF/A(即使聲明不同)。 您可以在此處查看您的 pdf/a: https : //www.pdf-online.com/osa/validate.aspx

如果您使用的是 Windows 並且想要明確地創建 PDF/A-1b 文檔(PDFCreator 有 PDF/A-2b 的輸出選項,但沒有 PDF/A-1b 的輸出選項),​​您只需將上述參數 Artur 輸入到PDFCreator 的 ui 設置,沒有文檔名稱的設置。 啟動 PDFCreator,選擇打印機菜單,然后轉到設置。 現在,從左側的設置列表中選擇'Ghostscript' 'additional ghostscript settings' ,輸入如下:

-dPDFA|-dBATCH|-dNOPAUSE|-dUseCIEColor|-sProcessColorModel=DeviceCMYK|-sDEVICE=pdfwrite|-sPDFACompatibilityPolicy=1

單擊'Save' ,然后使用 PDFCreator 從 MS Word 或您想要的任何其他應用程序打印一些內容 - 它將在 PDF/A-1b 中創建。

問候,弗里茨

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM