首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从特定PDF中提取文本和图像

无法从特定PDF中提取文本和图像
EN

Stack Overflow用户
提问于 2015-05-20 09:30:44
回答 1查看 1.9K关注 0票数 2

有谁能让我知道如何从PDF中提取所有文本和图像?在类似的场景中,我能够提取图像,我使用Google创建了一个PDF,只有几行文本和2个png图像。但是,我无法从样本pdf格式中提取图像。

我试过以下几点:

在Ruby中:

1)“pdf阅读器”创业板,它只支持少数格式的图像提取。

2)“文档分割”创业板,它只能提取文本,不能提取图像。

命令行实用程序:

1) "pdfimages“工具,它只支持少数格式的图像提取。

Java库:

1) pdfbox库,它只支持少数格式的图像提取。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-20 09:55:02

1.

提取文本:

代码语言:javascript
复制
pdftotext -layout the.pdf -

将所有页面的文本解压缩到<stdout>

代码语言:javascript
复制
pdftotext -layout -nopgbrk the.pdf the-3-5.txt

将所有页面的文本提取为the.txt文件,不要插入这些表示新页面的讨厌的the.txt字符。

代码语言:javascript
复制
pdftotext -f 3 -l 5 -layout the.pdf -

将页面‘3--5’文本解压缩到-3-5.txt。

2.

提取图像

代码语言:javascript
复制
pdfimages -f 4 -l 7 -j the.pdf myprefix--

从第4页到第7页提取所有图像为JPEG(如果可能的话!)并用前缀myprefix---命名它们。

如果不可能将图像提取为JPEG,则将图像提取为纯光栅PPMPGM

pdfimages (Poppler叉)的最新版本允许您指定-png (以及更多)来将所有图像作为PNG获取。

使用最新版本的pdfimages可以提供以下选项:

代码语言:javascript
复制
$ 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中的图像的唯一压缩方法是:

  • JPEG (然后将/DCTDEcode过滤器作为对PDF查看器的解压缩提示),
  • JBIG2 (/JBIG2Encode)
  • 传真压缩(CCITTFaxDecode)和
  • JPEG2000 (JPXDecode)。

在PDF中嵌入的所有其他图像基本上都是纯光栅数据(PPMPGM),它们的PDF-内部压缩是可用于一般流压缩的其他标准压缩方法之一:

  • /FlateDecode (ZIP/Deflate算法),
  • /LZWDecode (Lempel-Ziv-Welch算法)
  • /RunLengthDecode

更新

我现在才有时间看你的链接样本PDF,对不起。

正如@mkl在他的评论中所写的,看起来像的图像并不总是技术术语中的图像。例如,在您的PDF的第7页有(著名的)虎头。这完全由向量元素组成,这些元素被内联地放置到页面的/Contents流中。所描绘的棋盘也是如此。

我相信老虎图像是几十年前在一些矢量图形程序的帮助下设计的(奥多比插画定子?)当它刚刚被释放,并出口到EPS。在五月份的情况下,PDF查看器现在可以从其他内容中识别内联向量元素(可以是简单的水平线)。除非这些向量元素被“分组”成一个XObject ( pdfimages也无法提取它,但它将有助于手动隔离和提取.)

这些向量元素不能由我所知道的任何(自由和开放源码软件,或免费提供的封闭源代码软件)工具自动提取。

PDF术语中的“真实”图像是像素数据的矩形。这是唯一可以被像pdfimages这样的工具提取的图像类型。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30345709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档