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

前端之家收集整理的这篇文章主要介绍了如何从PDF文件中删除所有图像/图纸,并仅在Java中留下文本?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个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.

猜你在找的Java相关文章