如何在无头模式下使用 Libre Office Draw 从命令行创建 PDF/A?

How to create a PDF/A from command line with Libre Office Draw in headless mode?

LibreOffice Draw 允许您打开非 PDF/A 文件并将其导出为 PDF/A-1b 或 PDF/A-2b 文件。

通过在 macOS 上调用命令行也可以实现同样的效果

/Applications/LibreOffice.app/Contents/MacOS/soffice --headless \
        --convert-to pdf:draw_pdf_Export \
        --outdir ./pdfout \
        ./input-non-pdfa.pdf

或 Linux 只是

libreoffice --headless \
        --convert-to pdf:draw_pdf_Export \
        --outdir ./pdfout \
        ./input-non-pdfa.pdf

在命令行上,可以告诉 convert-to 创建 pdf 并通过告诉 --convert-to pdf:draw_pdf_Export 使用 LibreOffice Draw 来完成此操作。

是否还有一种方法可以让 LibreOffice 在 headless 模式下生成 PDF/A 文档?

对于PDF/A-1(意味着PDF/A-1b?):

soffice --headless --convert-to pdf:"writer_pdf_Export:SelectPdfVersion=1" --outdir outdir input.pdf

1 的值从 1 更改为 2 for PDF/A-2,这里是 Libreoffice 源代码 Common.xcs, pdfexport.cxx and pdffilter.cxx.

由于只能通过 GUI 使用 LibreOffice,对于命令行解决方案,请使用 gs

  • 先把pdf转成ps
pdftops input.pdf input.ps
  • 然后将ps转换为pdf/aPDF的存档格式
gs -dPDFA -dBATCH -dNOPAUSE -dNOOUTERSAVE -dUseCIEColor -sProcessColorModel=DeviceCMYK -sDEVICE=pdfwrite -sPDFACompatibilityPolicy=1 -sOutputFile=input-A.pdf input.ps