我认为是由apache fop生成的PDF / A-1a文件,并且使用来自pdfbox的OverlayPDF添加了覆盖信头。 preflight将文件识别为ok(但显然只有PDF / A-1b),Acroreader表示它是" PDF / A"模式和"标记:是"在文档属性中。我想看看它看起来如何,所以我可以调整一些小的改进。
我的问题是,我在哪里可以查看标记的内容(即PDF中的内容的文本表示是字符输出的字符序列),最好不要自己编码,例如使用pdfbox中的调试器/ PDFReader?我在那里有点迷失 - 是否有另一种获取文档结构的文本输出的方法,例如进入xml文件,使用编辑器进行搜索? - TIA!
修改
信头本身最初是附言,并使用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.pdffop -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 - 不需要单独的followpages_letterhead.pdf,因为示例只有一页。
编辑3
我怀疑文字被隐藏在Root/StructTreeRoot/ParentTree/Nums/[1]/[3]/P/P/P/P/P/P
以下的地方(假设P&#39}以某种方式映射fo:block
' s但是无法显示文字来自pdf。
答案 0 :(得分: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
属性。