有人可以解释"标记PDF"是什么,以及它与常规的,未标记的PDF有何不同?
标记的PDF是否包含特殊内容,例如XML,Rich Media,Javascript等?
哪些TeX工具链生成标记PDF?
我将处理单个PDF,每个PDF都是通过"合并"多个PDF来创建的.每个合并的PDF都有PDF部件开始显示的位置和书签.
有没有办法通过书签用脚本自动拆分?
我们只有书签来指示部件,而不是页码,因此我们需要从书签中推断出页码.Linux工具最好.
我想编写一些带有PDF文档的(java)代码,并从所有书签创建命名目标.我认为iText API是最简单的方法,但我之前从未使用过API.
您将如何使用iText API编写此类代码?iText可以自己进行操作现有PDF所需的解析吗?我正在考虑的那种操作是:
或者是否有更好的API?
是否可以使用PDFBox创建标记PDF(PDF/UA)?看起来PDFBox有一个API(包org.apache.pdfbox.pdmodel.documentinterchange.taggedpdf),但我找不到任何教程或代码示例.
使用下面的代码,我生成了一个包含图像的PDF文件,屏幕阅读器NVDA(在我的例子中)识别它并读取'... graphic Alternate Description'.但是,辅助功能检查器PAC 2显示错误:"图像对象未标记".
PDDocument doc = new PDDocument();
PDPage page = new PDPage();
doc.addPage(page);
PDDocumentCatalog documentCatalog = doc.getDocumentCatalog();
PDImageXObject pdImage = PDImageXObject.createFromFile(imagePath, doc);
PDPageContentStream contents = new PDPageContentStream(doc, page);
contents.drawImage(pdImage, 100, 600, pdImage.getWidth() / 2, pdImage.getHeight() / 2);
contents.close();
PDStructureTreeRoot treeRoot = new PDStructureTreeRoot();
PDStructureElement structureElement = new PDStructureElement(StandardStructureTypes.Figure, treeRoot);
structureElement.setPage(page);
PDMarkedContent markedImg = new PDMarkedContent(COSName.IMAGE, new COSDictionary());
markedImg.addXObject(pdImage);
structureElement.appendKid(markedImg);
structureElement.setAlternateDescription("Alternate Description");
treeRoot.appendKid(structureElement);
documentCatalog.setStructureTreeRoot(treeRoot);
// ....
doc.save(fileName);
Run Code Online (Sandbox Code Playgroud)
您能否就此主题提供一些解释或/和代码示例?