问题标签 [flatten-pdf]
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 - 展平表单字段会删除内容
我尝试PDAcroForm.flatten()
在 pdf 中展平表单字段 (),该字段在之前的步骤中从.xfdf
文件中填充。预期的结果是仅用文本替换可编辑框。
但是,我在拼合后将文本填充到表单(output02.pdf)中的 PDF 中,所有添加的文本现在都完全消失了,所以我得到一个空格而不是表单值(output03.pdf)。
在 github 上放一个完整的示例,包含 PDF 文件(输入和生成的输出),但这只是展平的一部分:
编辑:通过表单菜单在现有 PDF 上
创建这些表单元素,并将 pdf 保存为和.Adobe Acrobat Pro
10.1.1
sample5.pdf
test.pdf
java - 拼合 PDF 字段会删除格式
我尝试PDAcroForm.flatten()
在包含富文本的 pdf 中展平表单字段 ( )。这样做时,格式(粗体、斜体、颜色、大小)会丢失。
Adobe Acrobat Pro
10.1.1
通过表单菜单使用 , 创建该表单元素,并将 pdf 保存为test.pdf
.
为了完整起见,我在 github 上上传了所有内容:
- 完整的最小示例(也通过永久链接)
- 输入模板:
test.pdf
- 在展平之前填充值:
output01.pdf
- 展平后:
output02.pdf
问题是,如何删除输入字段并将其展平,同时保持内容的样式以及字段中的自动大小等更可取的功能?
excel - 在 VBA 中为 PDF 设置的复选框未保持选中状态
嗨,所有这些代码在从 Excel 工作表中填写 VA 28-1905 表格时都非常有效。但是,复选框不会保持选中状态。它们在表单最初保存时被选中,但是当您再次打开它时,复选框不会被选中。我不知道如何解决这个问题。任何帮助,将不胜感激。我不是一直都在编程,所以如果你有改进建议也会很棒。
我尝试了 objJSO.flattenpages 但我得到了 NotAllowedError: Security settings prevent access to this property or method。如果我在保存之前停止代码,所有内容都正确填写,但保存后复选框重置为 0。
此代码改编自 Christos Samaras 的代码。
java - Pdfbox Java docusign 签名消失
我们有一个程序可以修改用于邮寄的 pdf。我们注意到docusign 信封字段和签名存在问题。当我们修改它们时,它们不会留在 pdf 上。我在pdfbox中尝试了我能想到的一切。
我发现的唯一解决方法是打印时 foxit flatten signature 和 adobe save as pdf 创建一个可以工作的扁平化 pdf。我无法将整个 pdf 呈现为图像,因为我需要以编程方式评估 pdf 文本字段。
无论如何,要使用 pdfbox 创建与 foxit 和 adobe 相同的扁平化。我好难过:(
不确定这是否有帮助,但我可以通过这种方式访问文档中的项目。
该项目存在于 COSName{X0} 中,但似乎 pdfbox 无法访问它,因此我无法将其展平。我想遍历整个文档以查找任何不可识别的 COSNames 并将其呈现为图像,因为这确实有效然后使用该图像?无论如何要这样做?
java - 使用 PDFBox 展平 pdf 中的黑框
我在 pdf 中绘制黑框,它可以完美地绘制它们,但是当我生成 pdf 并使用 Acrobat Pro 打开它时,可以修改这些框。如何使框层与pdf合并?
vba - 如何使用 VBA 中的 Win32 API 调用通过“Microsoft Print To PDF”“展平”PDF?
我正在尝试让我的 Excel VBA 代码读取交互式 PDF(即带有下拉列表、日历等的 PDF)。我通常通过在 Word 中打开 PDF 文件来阅读它们;但是,Word 在呈现文件时会删除所有交互式控件(例如,日历控件会被完全删除……连同它的值)。
我知道我可以通过在 Adobe Acrobat Reader(或任何浏览器)中打开 PDF 并将其打印到 PDF(从而将所有控件替换为其所选值)来“拼合”PDF。问题是我如何在 VBA 中以编程方式执行此操作。我知道关于这个话题有成千上万的问题;但是,所有答案要么需要安装 Adobe Acrobat Pro,使用第三方安装的应用程序(例如,CutePDF),将文件提交到在线 API,或者最常见的是,使用 SendKeys 或 Win32 API 调用与“另存为”交互" 出现的对话框。我正在编写的代码将分发给多个用户;因此,任何额外的应用程序安装都是不可能的(Acrobat Pro 和其他第三方转换工具)。这些文件包含专有数据;所以,一个在线 API 也出来了。
我尝试了很多方法,包括 Chrome 的无头“打印到 PDF”;但似乎只接受 HTML 文件(我什至尝试将 PDF 嵌入到 HTML 文件中,但它仍然不起作用)。我得到的最接近的是使用下面的代码将数据直接发送到“Microsoft Print to PDF”驱动程序(它基于此处描述的过程)。该代码成功创建了一个 PDF 文件……但它是一个零字节文件。“WritePrinter”函数似乎没有正确接受从输入文件读取的数据(尽管没有发生错误)。虽然“WritePrinter”函数的文档说明“pBuf”参数应该是一个字节数组,但问这个问题的人正在传递一个字符串并让它工作(了解他们没有尝试打印到 GDI 打印机)。如果我将字节数组转换为字符串,或者甚至只是使用 FSO 的“ReadAll”方法读取输入文件的内容,我的代码仍然只会生成一个空白 PDF 文件。“WritePrinter”函数的返回值是“1”,而“pcWritten”输出的值是正确的字节数,这也是毫无价值的……只是生成的PDF文件有一个文件大小0字节。
那么,谁能弄清楚如何让“WritePrinter”函数接受从输入文件中读取的数据?
顺便说一句,对于任何能解决这个问题的人来说,这是一颗巨大的金星,因为根据我的研究,互联网正在寻求一种方法来做到这一点,而无需使用 Acrobat Pro 或不必与“另存为”对话框交互!
更新#1:我在网上找到了一些帖子,用户遇到了“Microsoft Print to PDF”驱动程序手动生成空白文件的问题(此处和此处)。显然,罪魁祸首是输入文件名中的特殊字符。我想明确表示我不相信这是我遇到的问题,因为我可以手动完美地打印到 PDF ......只是不是通过这篇文章中的代码。(另外,正如刚才所说,输入文件路径/名称和输出文件路径/名称都不包含特殊字符)。此外,我不认为这是特定安装打印驱动程序的问题(如某些帖子中所建议的那样),因为我的代码在 3 台不同的计算机上创建了 0 字节文件,这些计算机具有 3 种不同的 Windows 操作系统版本(18363.1082、18363.1139 和 19041.572 )
更新#2:在我对这个问题的持续研究中,我在 MSDN 的 Visual Studio 帮助论坛上找到了这篇文章。我知道它适用于 C#,但其中一位贡献者表示:
所以你应该将托管字节数组转换为非托管数组,然后调用该方法
他提供的 C# 代码使用“Marshal.AllocCoTaskMem”和“Marshal.Copy”函数来“将托管字节数组复制到非托管数组中”。我不熟悉术语“托管”或“非托管”字节数组,因此我将继续对这些术语进行一些研究。是否有人对 Excel (VB6) 中的 VBA 中的“Marshal.AllocCoTaskMem”和“Marshal.Copy”函数有任何经验?
更新#3:我注意到我编写的代码只会将 XPS 文件打印到 PDF。我已手动将原始交互式 PDF 转换为 XPS,并确认我的代码在将 XPS 写入 PDF 时运行良好。这让我回到了第一个问题:如何在不使用任何第三方应用程序或在线转换器的情况下以编程方式阅读交互式 PDF?有人有想法么?
javascript - 展平可填充 PDF
预先感谢您的协助。我需要使用非常基本的 javascript 展平可填充的 pdf。有人对如何做到这一点有任何想法吗?我的其他 2 个选项是,如果有人在 Outsystems 中有解决方案来展平可填写的 pdf,或者 ac# 简单的解决方案来展平 pdf。
java - 使用 PDFBOX java 在 pdf 中展平签名
我想用表单中的签名将 pdf 展平,但我正在使用此代码,当我生成最终的 pdf 时,我仍然可以删除签名。我想要的是,当我生成最终的 pdf 时,我根本无法从 pdf 中删除任何内容
java - PDFBOX 展平 pdpage 中的注释 - JAVA
我正在尝试将 PDPage 类中已包含在 pdf 中的一些注释展平,但我找不到这样做的方法。因为我们在视图中创建的查看器会显示一些注释而不是其他注释。对 pdfbox 和 PDPage 类有任何想法吗?