问题标签 [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.
pdf - qpdf - 替换现有 PDF 文件中的文本
这是我第一次在这个级别上使用 PDF。所以请耐心等待我的菜鸟问题。我基本了解 PDF 文件的逻辑和物理结构。
我有一个包含需要替换的虚拟 ID 的 PDF。为了检查,如果有办法做到这一点,我使用 qpdf 来扩展 PDF 使用
qpdf --qdf --object-streams=禁用 orig.pdf 扩展.pdf
使用十六进制编辑器,我在 expand.pdf 中找到了虚拟 ID,并通过简单地交换两位数来更改值
<001800180017> Tj => <001700170018> Tj
并保存了它。在 Acrobat 中打开扩展的.pdf 没有显示修改。原始 ID 443 仍然呈现,但搜索“443”没有找到它。当搜索修改后的内容“334”时,我会突出显示呈现的原始 ID 443。
PDF由文本和矢量图形组成。当我插入额外的数字(这显然会使外部参照中的偏移量无效)时,我收到一条关于缺少字体的错误消息,并且所有数字都显示为点,但矢量图形仍然存在。这似乎表明 ID 不是图形的一部分。
我错过了什么?
编辑 1:在 mkl 的评论之后,我对我的 PDF 进行了更深入的分析,发现除了明显的图形内容之外,所有文本都是由一系列 m/l/c 命令呈现的,后面是 BT/ET 部分。在 BT/ET 部分,中风和非中风的颜色均为 0,0,0。
这是因为使用了嵌入的非标准字体吗?带有嵌入字体的 PDF 通常是这样完成的吗?用于视觉表示的图形部分和透明(隐藏)文本部分只是为了获得搜索和突出显示功能?
回想起来,我想知道当我第一次修改内容时我做了什么来得到这些点。我似乎不可能,我也无法重现它。
谢谢汤姆
bash - 使用 Zsh 和 QPDF 解密多个 PDF
从这个答案https://stackoverflow.com/a/59688271/7577919我能够使用这个bash脚本来解密多个PDF:
但是,我最初尝试在 Zsh 中执行此操作(在 MacOS 10.15 Catalina 中鼓励这样做),但无法做到。它给出了一个错误output: File name too long
Bash 和 Zsh 中的循环有什么区别,for
我将如何编写正确的 Zsh 脚本?
pdf - QPDF 实用程序可以用于从 PDF 文件中提取附件吗?
我有一个附有其他 PDF 文件的 PDF 文件。Acrobat 将它们显示在“附件”选项卡中,并允许依次打开它们。
QPDF 文档说明了一些关于提取附件的内容,但我没有找到任何执行此操作的特定命令。
是否可以提取这些附件并将它们作为单独的 PDF 文件存储在磁盘上?
更新:只是一个通知,以更好地解释您在 UI 中可以看到的内容:“附件”选项卡出现在旧版本的 Acrobat 中,以及容器文档的特殊页面,建议下载较新版本的 Acrobat(此页面似乎真实存在,因为它显示在其他查看器以及预览图像中)。最新版本的 Acrobat (Reader) 跳过此页面并带您进入第一个附加文档,所有附件列表显示在屏幕左侧。
cmd - 经典的 asp VB Wscript 输出
感谢阅读/帮助。在旧的 win2003 服务器上,在这种情况下:
我得到了完美的回应:“你好世界”,无论是在 CMD 还是在 ASP 中。也与
再一次,完美的响应,无论是在 CMD 还是在 ASP 中。
但我需要知道pdf有多大。所以我尝试了2个工具:
两者都在 cmd 中工作,它输出我想知道的内容,但我在 asp 中没有得到任何响应。这两种工具都具有IUSR 权利。我错过了什么?非常感谢,
亚历克斯
我在下面的评论可以正确阅读:
好点子。我忘了提到我确实包含在系统变量中:
var: pdfinfo val: c:\Program Files\Utils\xpdf\pdfinfo.exe
变量:qpdf 变量:c:\WINDOWS\system32\qpdf.exe
PATH的相关部分:
%SystemRoot%\system32;
C:\Program Files\Utils\xpdf\;
C:\实用程序\;
但是,够有趣的:
CMD.exe 启动,仅此而已。但是,根据你的建议,我试过了
以及:(有时,并非一直)Process Explorer 显示 pdfinfo 也由 cmd 启动。仍然没有响应 ASP。感谢您的帮助 :-)
qpdf - 在奇数页文档的末尾合并带有额外空白页的 pdf 文件 - qpdf
我希望为此使用 qpdf。
我要打印很多小文件,需要双面打印,所以我合并了 20 个文档,最后得到了一个 200 页的 pdf。然后我可以让打印机打印,偶数页颠倒,然后翻转堆栈并将其放回打印机并打印奇数页,所以我们正在使用纸张的两面。
我的问题是如何检测单个空白页并将其添加到任何具有奇数页数的文档的末尾;这样,当我进行双面打印时,每个文档都与其他文档完全分开,而不仅仅是在完成文档的背面打印。
pdf - 如何解码PDF文件并将其编码回来?
我的总体目标是使一些 PDF 文件符合 PDF/A 标准以用于存档目的。它们不符合一项要求,即某些字形映射映射到 0,这是它们不应该的。
我通常的策略是使用一个名为“Pdfedit”的旧软件,它可以解码 PDF 文件,然后所有字节流都将是人类可读的,编辑包含字形映射的 PDF 的相关部分,然后用 Adobe 打开文件自动重新编码的 Acrobat。
现在我有一些 PDF 在打开时会导致“Pdfedit”崩溃。我尝试使用PDF-Parser,但 Adobe Acrobat 无法重新编码其输出。
此外,过去看起来像这样解码的相关部分:
但现在我使用以下命令python3 pdf-parser.py -f -n /path/to/file.pdf > dump.txt
,在 dump.txt 中相关部分如下所示:
所以它是一个字节串,任何换行符都按字面意思呈现为\n
. Adobe Acrobat 无法将包含此内容的 txt 文件解释为 PDF。
我现在也意识到许多元素,例如由 .%%EOF
分隔''
。
真正的问题是如何从 pdf-parser.py 获得 Acrobat 可读的输出,因为 shell 命令>
不起作用并且 shell 中的 stdout 也有问题。
我会尝试一些事情,但可能真的需要一些帮助!
pdf - qpdf --encrypt 设置pdf文件的加密参数
我有一个未加密的文件 in.pdf
我需要对他进行加密,以便收件人可以在没有密码的情况下观看和打印。并且所有其他权限都使用密码锁定。
我试试字符串
qpdf --encrypt "" "asd" 128 --print=none --modify=none --modify-other=n --extract=n --annotate=n --form=n --assemble=n -- in.pdf out.pdf
但它并不禁止复制和编辑文件的能力。
或者提供另一种工具,而不是 Linux 和 Windows 下可用的 QPDF。
python - 导入 pikepdf 时缺少 dylib 符号
pikepdf
我使用以下命令安装了Python 包。
但是当我在 Python (3.9) 中并且我输入
解释器抱怨它在动态库中找不到____chkstk_darwin
符号。/usr/lib/libSystem.B.dylib
更准确地说,我收到以下错误:
我怀疑这可能取决于我的旧版 MacOS(我有 MacOS Sierra 10.12)或我的旧版 XCode(9.2)。我希望这不是第一种情况,因为现在升级我的操作系统会很不舒服,原因有很多。
您认为这可能取决于上述两个原因之一吗?
还是在别的事情上?
我还尝试qpdf
通过运行来更新库
但这并没有解决问题。我的版本qpdf
是 10.3.1