我有一个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.