gpt4 book ai didi

java - 如何从 PDF 文件中删除所有图像/绘图并仅保留 Java 中的文本?

转载 作者:搜寻专家 更新时间:2023-10-30 21:20:59 25 4
gpt4 key购买 nike

我有一个 PDF 文件,它是 OCR 处理器的输出,这个 OCR 处理器识别图像,将文本添加到 pdf,但最后放置了一个低质量的图像而不是原始图像(我不知道为什么有人会那样做,但他们这样做了)。

所以,我想获取此 PDF,删除图像流并单独保留文本,以便我可以获取它并将其导入(使用 iText 页面导入功能)到我用真实图像创建自己的 PDF .

在有人问之前,我已经尝试使用另一种工具来提取文本坐标 (JPedal),但是当我在 PDF 上绘制文本时,它与原始位置不在同一位置。

我宁愿用 Java 完成这项工作,但如果其他工具可以做得更好,请告诉我。它可能只是图像删除,我可以忍受其中有图纸的 PDF。

最佳答案

我在类似情况下使用了 Apache PDFBox。

更具体一点,尝试这样的事情:

import org.apache.pdfbox.exceptions.COSVisitorException;
import org.apache.pdfbox.exceptions.CryptographyException;
import org.apache.pdfbox.exceptions.InvalidPasswordException;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDDocumentCatalog;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDResources;
import java.io.IOException;

public class Main {
public static void main(String[] argv) throws COSVisitorException, InvalidPasswordException, CryptographyException, IOException {
PDDocument document = PDDocument.load("input.pdf");

if (document.isEncrypted()) {
document.decrypt("");
}

PDDocumentCatalog catalog = document.getDocumentCatalog();
for (Object pageObj : catalog.getAllPages()) {
PDPage page = (PDPage) pageObj;
PDResources resources = page.findResources();
resources.getImages().clear();
}

document.save("strippedOfImages.pdf");
}
}

它应该删除所有类型的图像(png、jpeg 等)。它应该像这样工作:

Sample article.

关于java - 如何从 PDF 文件中删除所有图像/绘图并仅保留 Java 中的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6831194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com