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
将 PDF/A-2 的值从
1
更改为 2
,这里是 Libreoffice 源代码 Common.xcs、pdfexport.cxx 和 pdffilter.cxx。
由于 LibreOffice 只能通过 GUI 实现,因此对于命令行解决方案使用
gs
pdftops input.pdf input.ps
gs -dPDFA -dBATCH -dNOPAUSE -dNOOUTERSAVE -dUseCIEColor -sProcessColorModel=DeviceCMYK -sDEVICE=pdfwrite -sPDFACompatibilityPolicy=1 -sOutputFile=input-A.pdf input.ps
在多次尝试使用 7.4 版本后,由于 pdfa 格式存在问题,导致在线 PDFA 验证器出现“非 pdfa 结果”,我升级到了 Libre 7.6.4.1 的当前版本。
我成功地在 Windows 11 下使用简单的 .bat 文件从 docx / pdf 转换为 PDFA 3b,从而成功地在多个网站上在线验证了 pdfa。
这是我使用的代码:
//切换到源文件所在目录
cd C:\Users\Username\Documents
// 将输入文件转换为 PDFA 版本 3b,并提供输出目录和目标文件夹。版本可以从 1 更改为 3。
"C:\Program Files\LibreOffice\program\swriter.exe" --headless --convert-to pdf:"writer_pdf_Export:SelectPdfVersion=3" inputfile.pdf --outdir "C:\Users\Username\Documents\pdfa"