You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R 4.2.1是否有PDF/A合规PDF输出设备?及R图形合规方案问询

如何用R生成符合PDF/A标准的图形文件?

测试过程与验证结果

R代码示例

使用Cairo包和基础PDF设备生成图形的代码如下:

> library("Cairo")
> pdf(file="pdf1.pdf")
> plot( 1:10, 1:10, type="b")
> dev.off()
null device 
          1 
> library("Cairo")
> CairoPDF(file="cairo1.pdf")
> plot( 1:10, 1:10, type="b")
> dev.off()
null device 
          1 

veraPDF验证结果

用veraPDF对生成的两个PDF文件进行合规性验证,结果如下:

$ verapdf --verbose --format text pdf1.pdf    
FAIL ./pdf1.pdf
  FAIL 6.1.3-1
  FAIL 6.7.3-6
  FAIL 6.3.4-1
  FAIL 6.7.2-1
  FAIL 6.7.3-2
  FAIL 6.7.3-7
  FAIL 6.1.7-2

$ verapdf --verbose --format text cairo1.pdf
FAIL ./cairo1.pdf
  FAIL 6.1.3-1
  FAIL 6.7.2-1
  FAIL 6.2.3.3-1
  FAIL 6.4-3
  FAIL 6.7.3-7

注:上述错误对应PDF/A-1的合规要求(veraPDF存在偶发bug)。

核心问题

R是否具备原生支持生成PDF/A合规图形的输出设备?目前测试发现包括Cairo在内的R默认PDF输出均不符合PDF/A标准,请问如何通过R图形输出得到符合PDF/A合规要求的文件?

测试更新记录

更新1

使用ggsave同样无法生成符合PDF/A标准的文件。

更新2

kdp工具在处理含透明内容的PDF时失效。针对Cairo输出的临时修复方案:

gs -o $out -sDEVICE=pdfwrite -dCompatibilityLevel=1.3 $in

该命令可修复透明相关的错误[6.4-3],但会引入新的合规错误(6.3.7-3、6.1.8-1、6.1.7-2),且因光栅化导致文件体积大幅增加。如果CairoPDF能提供完全禁用透明的选项,该问题将得到显著改善;基础pdf()设备输出无透明内容,但需要额外处理字体等合规问题。

更新3(当前最优方案)

使用Ghostscript的PDF/A转换命令:

# gs -dPDFA -dNOPAUSE -dBATCH -sOutputFile="out.pdf" \
-sDEVICE=pdfwrite -dCompatibilityLevel=1.3 in.pdf

该命令可解决大部分合规问题,仅残留6.2.3.3-1错误。但存在不一致性:部分文件处理后显示正常,部分则会被光栅化且体积变大,具体原因暂不明确。


内容的提问来源于stack exchange,提问作者ivo Welch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 17:53:20