Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用PDFBox访问PDF中图像的alt文本_Java_Pdf_Accessibility_Pdfbox - Fatal编程技术网

Java 使用PDFBox访问PDF中图像的alt文本

Java 使用PDFBox访问PDF中图像的alt文本,java,pdf,accessibility,pdfbox,Java,Pdf,Accessibility,Pdfbox,我正在寻找一种方法,使用自动访问PDF中图像的alt文本。我知道您可以使用其他工具手动提取alt文本,但我正在寻找一种按比例执行此操作的方法。我发现解决这个问题似乎已经过时了。如何使用PDFBox为PDF中的图像提取alt文本 编辑:这是我到目前为止所做的,但在我知道在数字上有alt文本的pdf上仍然返回null PDFMarkedContentExtractor extractor = new PDFMarkedContentExtractor(); for (int p = 1; p <

我正在寻找一种方法,使用自动访问PDF中图像的alt文本。我知道您可以使用其他工具手动提取alt文本,但我正在寻找一种按比例执行此操作的方法。我发现解决这个问题似乎已经过时了。如何使用PDFBox为PDF中的图像提取alt文本

编辑:这是我到目前为止所做的,但在我知道在数字上有alt文本的pdf上仍然返回null

PDFMarkedContentExtractor extractor = new PDFMarkedContentExtractor();
for (int p = 1; p <= document.getNumberOfPages(); ++p) {
        PDPage page = document.getDocumentCatalog().getPages().get(p);
        extractor.processPage(page);
        List<PDMarkedContent> annotations = extractor.getMarkedContents();
        // do some nice output with a header
        String pageStr = String.format("page %d:", p);
        System.out.println(pageStr);
        for (int i = 0; i < pageStr.length(); ++i) {
            System.out.print("-");
        }
        System.out.println();
        for (int i = 0; i < annotations.size(); i++) {
         System.out.println(annotations.get(i).getAlternateDescription());
            }
        System.out.println();
}
PDFMarkedContentExtractor extractor=新的PDFMarkedContentExtractor();

对于(int p=1;p,答案没那么糟糕…下载PDFDebugger并查看您的文件。(单击“查看”、“显示内部结构”,展开内容后您将看到结构树)。遗憾的是,这整件事相当棘手。我是一名pdfbox提交者,几乎没有接触过它。@TilmanHausher除了在PDFDebugger上进行全树搜索外,还有什么方法可以访问alt文本?我在上进行了测试,alt标记位于
页面:1/Resources/Properties/alt
下,而图像位于
页面:1/Resources>下/Properties/XObject/Im1
。我也在一个PDF上尝试了这个方法,使用Adobe Accessibility工具在后期添加了alt text,但根本找不到alt标记,但可能它埋在了其他地方。哇,这看起来很简单。我找到的是相同的文本,但在这里:Root/structureRoot/K/K/[0]/K/[0]/alt测试通过MS Word、Adobe、PAVE、Google Docs和PDFBox添加alt文本的PDF时,PDFDebugger似乎只会提取最初使用PDFBox生成的PDF中的alt文本。否则,它看起来不会提取alt文本。PDFDebugger根本不会“提取”alt文本,它只是显示PDF树中的内容。