首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从Linux命令行中从“读取保护”PDF中提取所有图像?

如何从Linux命令行中从“读取保护”PDF中提取所有图像?
EN

Stack Overflow用户
提问于 2015-04-30 16:12:40
回答 1查看 2.3K关注 0票数 1

我正在尝试从PDF中提取图像,PDF是受保护的。

对于普通的PDF,波普尔图书馆可以很好地提取图像,而从受阅读保护的PDF中也可以很好地提取文本。然而,这些图片却是另一个故事。它既不提取所有图像,也不以模糊的灰色或黑色提取所有图像。

在下面的PDF (原始PDF在这里)中,您可以在下面的缩略图中看到很多图像:

我尝试了来自pdfimages波普尔图书馆命令

代码语言:javascript
复制
$ pdfimages -j ticket.pdf i

和来自木偶木偶命令

代码语言:javascript
复制
$ pdftohtml -nodrm ticket.pdf

但这两张照片都只提取了其中的一幅。但是,该图像被正确提取。从其他PDF,我得到所有的图像,但他们都是灰色或黑色。

因为据推测,读保护只是PDF文档中的一个标志,而不是源的实际置乱或加密(最终,您的计算机可以在不输入密码的情况下显示图像),因此应该可以单独提取图像。我甚至可以使用ImageMagick (convert ticket.pdf ticket.jpg)从整个PDF中创建一个缩略图,那么为什么不使用单独的图像呢?

有人知道我如何从受阅读保护的PDF中提取所有图像吗?欢迎所有小费!

EN

回答 1

Stack Overflow用户

发布于 2015-04-30 18:32:19

并不是所有看起来像图像的东西都是也是图像。

例如,左上角的红-蓝-黄-绿标志带有black+white“票证服务”文本:它是一系列矢量图形(每个红色、蓝色、黄色和绿色补丁都是一个单独的对象,文本也是如此)。

下面的命令列出了唯一的“真实”(光栅)图像:

代码语言:javascript
复制
$ pdfimages -list ticket.pdf 

 page   num  type   width height color comp bpc  enc interp  object ID x-ppi y-ppi size ratio
 --------------------------------------------------------------------------------------------
    1     0 image     642   462  index   1   8  image  no        38  0   151   151  107K  37%
    2     1 image     642   462  index   1   8  image  no        38  0   151   151  107K  37%

这两幅(列出的)图像都是由相同的PDF对象表示的,该对象具有数字/生成的38 0 (因此,,只有一个图像嵌入在中)。

仅仅因为页面是彩色的并不意味着有很多图像嵌入!

此外,PDF上没有“读取保护”(无论对您意味着什么),也没有(用户或所有者)密码与该PDF上的伴随加密,如以下命令所示:

代码语言:javascript
复制
$ pdfinfo ticket.pdf

 Title:          TicketFast
 Author:         Ticketmaster
 Creator:        TCT 4.4.4
 Producer:       PDFlib+PDI 5.0.4 (C++/Linux)
 CreationDate:   Wed May  5 18:21:29 2010
 ModDate:        Thu Apr 30 16:02:21 2015
 Tagged:         no
 UserProperties: no
 Suspects:       no
 Form:           none
 JavaScript:     no
 Pages:          2
 Encrypted:      no
 Page size:      595.275 x 841.89 pts (A4)
 Page rot:       0
 File size:      364994 bytes
 Optimized:      no
 PDF version:    1.4

如果在上设置了密码/加密,它会用Encrypted: yes行进行报告。

关于PDF保护的几点意见

“.阅读保护应该只是PDF文档中的一个标志.”

首先,没有所谓的“阅读保护”。你的意思可能是“密码保护”。

第二,如果的密码受到保护,它也是加密的。有两个密码:

  1. 更改文档的安全性/密码/加密状态所需的所有者密码。
  2. 打开和查看文档所需的用户密码。

但是,在用户密码“空”的情况下(很常见)。所有PDF阅读器都知道这一点,他们首先尝试使用空用户“密码”。如果成功的话,他们就去地下室打开PDF。使用空用户密码的PDF仍然可以通过限制复制‘n’粘贴、打印、修改等来保护。要更改状态,您需要知道所有者密码.

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

https://stackoverflow.com/questions/29972756

复制
相关文章

相似问题

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