有谁能让我知道如何从PDF中提取所有文本和图像?在类似的场景中,我能够提取图像,我使用Google创建了一个PDF,只有几行文本和2个png图像。但是,我无法从样本pdf格式中提取图像。
我试过以下几点:
在Ruby中:
1)“pdf阅读器”创业板,它只支持少数格式的图像提取。
2)“文档分割”创业板,它只能提取文本,不能提取图像。
命令行实用程序:
1) "pdfimages“工具,它只支持少数格式的图像提取。
Java库:
1) pdfbox库,它只支持少数格式的图像提取。
发布于 2015-05-20 09:55:02
1.
提取文本:
pdftotext -layout the.pdf -将所有页面的文本解压缩到<stdout>。
pdftotext -layout -nopgbrk the.pdf the-3-5.txt将所有页面的文本提取为the.txt文件,不要插入这些表示新页面的讨厌的the.txt字符。
pdftotext -f 3 -l 5 -layout the.pdf -将页面‘3--5’文本解压缩到-3-5.txt。
2.
提取图像
pdfimages -f 4 -l 7 -j the.pdf myprefix--从第4页到第7页提取所有图像为JPEG(如果可能的话!)并用前缀myprefix---命名它们。
如果不可能将图像提取为JPEG,则将图像提取为纯光栅PPM或PGM。
pdfimages (Poppler叉)的最新版本允许您指定-png (以及更多)来将所有图像作为PNG获取。
使用最新版本的pdfimages可以提供以下选项:
$ pdfimages -h
pdfimages version 0.33.0
Copyright 2005-2015 The Poppler Developers - http://poppler.freedesktop.org
Copyright 1996-2011 Glyph & Cog, LLC
Usage: pdfimages [options] <PDF-file> <image-root>
-f <int> : first page to convert
-l <int> : last page to convert
-png : change the default output format to PNG
-tiff : change the default output format to TIFF
-j : write JPEG images as JPEG files
-jp2 : write JPEG2000 images as JP2 files
-jbig2 : write JBIG2 images as JBIG2 files
-ccitt : write CCITT images as CCITT files
-all : equivalent to -png -tiff -j -jp2 -jbig2 -ccitt
-list : print list of images instead of saving
-opw <string> : owner password (for encrypted files)
-upw <string> : user password (for encrypted files)
-p : include page numbers in output file names
-q : don't print any messages or errors
[....]你还想要什么图像格式?如果需要其他格式,请使用ImageMagick的convert命令。
另外,在PDF中没有其他的“格式”。
基本上,嵌入在PDF中的图像的唯一压缩方法是:
/DCTDEcode过滤器作为对PDF查看器的解压缩提示),/JBIG2Encode)CCITTFaxDecode)和JPXDecode)。在PDF中嵌入的所有其他图像基本上都是纯光栅数据(PPM或PGM),它们的PDF-内部压缩是可用于一般流压缩的其他标准压缩方法之一:
/FlateDecode (ZIP/Deflate算法),/LZWDecode (Lempel-Ziv-Welch算法)/RunLengthDecode。更新
我现在才有时间看你的链接样本PDF,对不起。
正如@mkl在他的评论中所写的,看起来像的图像并不总是技术术语中的图像。例如,在您的PDF的第7页有(著名的)虎头。这完全由向量元素组成,这些元素被内联地放置到页面的/Contents流中。所描绘的棋盘也是如此。
我相信老虎图像是几十年前在一些矢量图形程序的帮助下设计的(奥多比插画定子?)当它刚刚被释放,并出口到EPS。在五月份的情况下,PDF查看器现在可以从其他内容中识别内联向量元素(可以是简单的水平线)。除非这些向量元素被“分组”成一个XObject ( pdfimages也无法提取它,但它将有助于手动隔离和提取.)
这些向量元素不能由我所知道的任何(自由和开放源码软件,或免费提供的封闭源代码软件)工具自动提取。
PDF术语中的“真实”图像是像素数据的矩形。这是唯一可以被像pdfimages这样的工具提取的图像类型。
https://stackoverflow.com/questions/30345709
复制相似问题