加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

如何从PDF文件中删除所有图像/图纸,并仅在Java中留下文本?

发布时间:2020-12-14 05:06:20 所属栏目:Java 来源:网络整理
导读:我有一个PDF文件是OCR处理器的输出,这个OCR处理器识别图像,将文本添加到pdf,但最终会放置低质量的图像而不是原始图像(我不知道为什么任何人会这样做,但他们做). 所以,我想获得这个PDF,去除图像流,并独自离开文本,这样我就可以(利用iText页进口功能)到PDF,我
我有一个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 http://s3.postimage.org/28f6boykk/before.jpg.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读