2

我有一个我认为是由 apache fop 生成的 PDF/A-1a 文件,并且使用 pdfbox 中的 OverlayPDF 放置了一个覆盖信头。preflight 将文件识别为正常(但显然只有 PDF/A-1b)并且 Acroreader 在文档属性中说它是“PDF/A”模式和“标记:是”。我想看看它的外观,以便我可以将 fop 调整为一些小的改进。

我的问题是,我在哪里可以查看标记的内容(即 PDF 中的文本表示是字符输出的紧缩序列),最好不用自己编码,例如使用 pdfbox 中的调试器/PDFReader?我有点迷路了 - 有没有另一种方法可以将文档结构的文本输出例如放入 xml 文件中以使用编辑器进行搜索?- 蒂亚!

编辑

信头本身最初是附言,并使用 ghostscript 转换为 PDF/A-1b,然后覆盖

java -jar pdfbox-app-2.0.0-RC3.jar OverlayPDF letter_plain.pdf \
   followingpages_letterhead.pdf -first firstpage_letterhead.pdf \
   letter_with_head.pdf

letter_plain.pdf 是使用 fop 生成的

fop -pdfprofile 'PDF/A-1a' -v -d -c my_fop_config.cfg -xml letter.xml \
   -xsl letter_to_fo.xsl -pdf letter_plain.pdf

使用的版本是 pdfbox 2.0 和 fop 1.1。

如果 letter_with_head.pdf 不再是 PDF/A-1a,那么问题将适用于 letter_plain.pdf,根据 fop 调用应该是 1a,必须选择不同的解决方案(如 svg)来获取信头那时。

编辑 2

示例 pdf 可在此处找到:https ://www.magentacloud.de/share/j9qk7jfzyv - 无需单独的 followingpages_letterhead.pdf,因为示例只有一页。

编辑 3

我怀疑文本被埋在下面Root/StructTreeRoot/ParentTree/Nums/[1]/[3]/P/P/P/P/P/P的某个地方(假设 P 以某种方式映射fo:block's)但无法显示 pdf 中的文本。

4

1 回答 1

2

手头 PDF 中的结构树条目映射到页面内容流中的标记内容。例如,在

Root/StructTreeRoot/K/[0]/K/[0]/K/[1]/K/[0]/K/[0]/K/[0]/K/[0]

映射到页面内容流的这一部分

/Span << /MCID 0 >> BDC
  BT
    /F15 11 Tf
    1 0 0 -1 0 9.163 Tm
    [ (Bes) 15 (tell-Nr) 48 (. 1) 34 (23) 6 (456) 29 (7) 40 (8) ] TJ
  ET
EMC

可以看出,没有额外的定义,所以除了TJ在这个示例序列中解析运算符之外,没有容易显示的文本。因此,标记仅用于定义指向不同构建块的文档结构。

此外,还有一些关于辅助功能支持的信息。但这仅限Lang于在结构树中指定属性。

于 2016-06-26T20:39:42.167 回答