问题标签 [qpdf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1114 浏览

pdf - 如何检查 pdf 的编码和 ToUnicode 是否正确完成?

我正在使用qpdf使用以下命令检查编码和 toUnicode 是否为 pdf 正确设置(编码),并在文本文件中查找“ToUnicode”字。目的是确保文件中的连字可以在 pdf 查看器上正确解码,例如 Adob​​e Acrobat Reader、pdf.js、pdfium 等。

我想知道这是否是正确的方法?有什么推荐的?

qpdf --stream-data=uncompress input.pdf output.txt

谢谢你。

0 投票
1 回答
1108 浏览

pdf - 使用 Poppler 拆分和重新加入 PDF 会导致文件更大?(尽管剥离元数据)

如果我有一个多页 PDF,并使用优秀的poppler 包(使用 macOS 安装)将其拆分为单独的页面,brew install poppler如下所示:

pdfseparate foo.pdf bar-%04d.pdf

然后重新加入生成的 bar-####.pdf 文件,如下所示:

pdfunite bar-*.pdf baz.pdf

生成的 baz.pdf 似乎具有相同的内容,但文件要大得多

起初我假设是因为结果中会有重复的元数据或其他东西。但即使我从所有文件中剥离所有元数据,即从输入中,以及中间 bar-####.pdf 文件,以及生成的输出文件,使用exiftoolqpdf像这样:

然后生成的 baz.pdf 文件仍然比原始输入大得多。

这可能是什么原因?除了内容之外,多页 PDF 文件中还有什么?假设 popplerpdfseparatepdfunite保持实际内容本身不变,并且我对元数据的剥离是正确的。

或者是否有可能以某种无损但次优的方式分解和重建 PDF 内容pdfseparatepdfunite(我对 PDF 文件的内部结构知之甚少,但我可以想象有很多不同的方法来编码相同的内容)

顺便说一句,如果我使用exiftool somefile.pdf它检查任何涉及的 PDF 文件确实根本没有显示任何元数据(并且线性化:是)。

0 投票
1 回答
140 浏览

pdf - Get number of pages in a Folder of every pdf and extract only part of pdf when bigger than 30 sites

is there a way to filter out all pds in a folder that have more than 30 pages like qpdf --pages *.pdf and when a documant have more than 30 pages, then extract only the first and last page and generate a new pdf with the first and last site of bevore created pdfs? thx

0 投票
1 回答
914 浏览

c++ - 在 Qt 中链接 qPDF

我需要填写 pdf 表格。为此,我找到并使用了 qPDF c++ 库。

我使用以下命令在 fillPdf.pro 上添加了 libqpdf.dll.a:

我还将 qpdf 库中的所有包含 .h 和 .hh 标头添加到我的项目中。

但我仍然有看起来像链接问题的错误:

总结代码所有符号都被qt创建者识别,我可以通过点击它们来访问它们:

更多信息 :

我正在使用基于 qt 5.9.1 (MSVC 2015, 32bit) 的 qt creator 4.4.0

有人能告诉我我哪里错了吗?

我的.pro

0 投票
1 回答
106 浏览

c++ - 使用 ffh.getFieldType() == "/Btn" 和 qpdf lib 检查复选框

当我使用 /Tx 填充文本字段时,我使用它工作的 qpdf。但它不适用于检查 checkBox :

库头: https ://github.com/qpdf/qpdf/blob/aa602fd107a622a3f12e6530220bb0303b95b520/include/qpdf/QPDFFormFieldObjectHelper.hh

我的代码: if (ffh.getFieldType() == "/Btn")

谁知道为什么它对 Btn 不起作用,尽管它对 /Tx 有效

/Tx 的日志,我在 outputPDF 上看到它

Btn 的日志:outputPDF 上没有任何内容

我知道 qpdf 在我的 pdf 中看不到 /Yes 或 /Off 但也没有 /Tx 并且在 qpdf 示例中没有 /Yes 或 /Off 文件名

需要帮助以获得好主意,谢谢

lib源代码的有趣部分:

qpdf .dll 的源代码:

https://github.com/qpdf/qpdf/blob/2d32f4db8fd125f2481ecf767d9f6506e80481f6/libqpdf/QPDFFormFieldObjectHelper.cc

我在 answare 上添加了一些澄清元素

提前感谢您的帮助!!!!

0 投票
1 回答
82 浏览

.net - qpdf 已开始在 qpdf_init() 上抛出“外部组件已引发异常”

截至今天,qpdf 停止在我的服务器上工作。它已经运行了几个星期没有任何问题,但是今天我收到“外部组件引发异常”错误,我没有在我的开发机器上遇到这个问题,只有在发布后才在服务器上。

我重新启动了 IIS,重新启动了整个机器,回收了应用程序池,尝试了 32 位和 64 位版本(我让程序试图以错误的格式加载 32 位 dll 的错误),尝试了旧版本的 qpdf,现在我'我很困惑,因为我什至没有从错误消息中得到线索。

该项目目前在 vb.net 中,用于重现此项目的代码如下:

引发错误的服务器的堆栈跟踪如下所示:

关于如何通过获取有关错误是什么的更多详细信息,或者可能要尝试更多的事情来继续努力解决这个问题的任何想法?

服务器是:
Windows server 2016 Version 1607 (OS Build 14393.2828)
Internet Information Services (Version 10.0.14393.0)
我从这里下载了 qpdf v 8.4.0 msvc64

0 投票
1 回答
368 浏览

pdf - PDF:混淆文本编码以防止自动解析和复制+粘贴

我想在我的网站上提供 PDF,但想防止可能不尊重正常 PDF“安全性”的机器人自动解析。原因是这也是商业出版的,我可以分享以供“个人使用”,但不能以这种方式广泛使用。我最初是从 Word 创建 PDF。

我曾尝试使用带有 dNoOutputFonts 选项的 Ghostscript 将文本转换为字形,但结果非常大(从 2.5 MB 到 180 MB)。加扰文本编码似乎是一个不错的选择,但我几乎找不到任何讨论这个的帖子。似乎有一个商业解决方案,但我无法找到一种方法来做到这一点,例如使用 Ghostscript 或 qpdf。关于如何实现这一目标(或替代解决方案)的任何建议?

操作系统:Windows 10 64bit Ghostscript 可用版本:9.18、9.27

简单示例 PDF

0 投票
0 回答
217 浏览

pdf - 不同的pdf对应不同的cmap,如何制作一个全局的cmap,以便处理多个具有相同fontmap的pdf到/toUnicodemap

我有很多 pdf,复制时会呈现不正确的文本,因为不好

字体映射到 unicodemapping

像这样的东西:原创 - निर्वाचक

复制时渲染:ननरररचक</p>

我经历了各种答案:

无法从 pdf 复制准确的印地语内容

使用 itextsharp 阅读 PDF,其中 PDF 语言为非英语

使用 PDFminer 解析 pdf(梵文脚本)会给出不正确的输出 [重复]

我遵循了这个答案并习惯于qpdf获得所需的内容pagecontentstream,并且cmaps在使用 . 阅读时得到了Vim.

但是,现在我面临的问题是每个pdf都有自己不同的/font 到 /toUnicode映射,我想为特定脚本(例如梵文)的 cmap 提供一个全局映射

我也在考虑替换以全局方式!&#映射到的字符流。unicode

会喜欢一些关于如何解决这个问题的想法。

下面给出了两种不同 pdf 的Cmaps :

对于pdf 1

对于pdf 2

我还看到了以下问题/答案:

从一个 PDF 中提取到 Unicode 映射并在另一个 PDF 中使用

由于 ToUnicode 映射,PDF 文本提取返回错误字符

此外,pdf 的字节内容流是这样的:

0 投票
1 回答
545 浏览

pdf - 通过 SendGrid 发送受密码保护的附件

我想使用用于 nodejs 的 SendGrid 将受密码保护的 pdf 作为电子邮件附件发送。

我尝试使用密码保护我的 pdf qpdf。这将输出一个在本地受密码保护的新 pdf 文件。然后,我尝试从此文件中读取数据,并将其作为 SendGrid 文档的附件内容发送。

我收到带有 pdf 作为附件的电子邮件,但它没有密码保护。这可能与这两个库有关吗?

0 投票
1 回答
1208 浏览

node.js - 无法使用 node-qpdf 在节点中解密 PDF

我们需要使用 node 解密受密码保护的 PDF 文件。我们正在使用 node-qpdf。这是我们的场景。

1)。我们正在获取受密码保护的 PDF 文件作为输入。2)。使用 QPDF 并使用可用密码,我们正在尝试对其进行解密。3)。最后,我们得到损坏的 PDF 文件。

我们正在关注给定的链接以供参考:a)。https://www.npmjs.com/package/node-qpdf

在解密部分,我们可以看到以下代码:

运行相同后,我们得到错误:

对于回调问题,我们还尝试将代码更改为:

但得到错误:

我们还尝试了以下代码:

=============

=============

这段代码运行成功。

现在我们想使用节点模块 [node-qpdf] 完全实现相同的功能,但这是失败的 [正如解释的那样]。

请分享您对这个问题的想法。

我们也在 docker 镜像上实现了相同的功能,所以如果我们将 qpdf 安装在主服务器上,容器是否能够获取该二进制文件?我检查了这篇文章:https ://hub.docker.com/r/mgodlewski/qpdf 但我有点困惑。

因此,还可以根据 qpdf 的 docker 图像共享分辨率。