我想将 PDF 转换为图像,但我只想要包含所有图像和矢量图形的单个输出图像。我不要文字

I Want to Convert PDF TO IMAGE but I only want single output image which contain all the images and Vector graphics only. I do not want text

请建议我如何使用 pdfbox 实现此目的?

我尝试了以下代码:

try {
    PDDocument document = PDDocument.load(new File(inputFilePath));
    PDFRenderer pdfRenderer = new PDFRenderer(document);
    
    for (int page = 0; page < document.getNumberOfPages(); ++page)
    { 
        BufferedImage bim = pdfRenderer.renderImageWithDPI(page, 300, ImageType.RGB);
        ImageIOUtil.writeImage(bim, outputFilePath + "-" + (page+1) + ".png", 300);
    }
    
    document.close();
} catch (Exception e) {
    e.printStackTrace();
}

我附上了我得到的输出

看到这张照片我不想要内容:

[![看到这张照片我不想要内容][1]][1]

我期待下面的输出,看这张照片:

[![看这张图][2]][2]

第一步,您可以从 PDF 中删除文本。如果 PDF 中的文本存储在页面内容流中(而不是某些引用形式的 XObjects 或某些注释),您可以使用 中的 PdfContentStreamEditor,例如像这样:

PDDocument document = ...;
for (PDPage page : document.getDocumentCatalog().getPages()) {
    PdfContentStreamEditor identity = new PdfContentStreamEditor(document, page) {
        @Override
        protected void write(ContentStreamWriter contentStreamWriter, Operator operator, List<COSBase> operands) throws IOException {
            String operatorString = operator.getName();

            if (TEXT_SHOWING_OPERATORS.contains(operatorString))
            {
                return;
            }

            super.write(contentStreamWriter, operator, operands);
        }

        final List<String> TEXT_SHOWING_OPERATORS = Arrays.asList("Tj", "'", "\"", "TJ");
    };
    identity.processPage(page);
}

(EditPageContent 测试 testRemoveTextDocument)

如果您希望结果为位图图像,您现在可以像以前一样渲染此文档。