问题标签 [acrobat-sdk]
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.
javascript - 尝试使用 flattenPages() 展平 PDF,但没有任何反应
我正在尝试使用以下代码从 VBA 调用 Acrobat Javascript API 以展平文档中的所有注释:
代码运行成功,但是当我打开 PDF 时,仍然可以编辑所有注释——展平应该使它们成为只读的,对吧?
编辑:我将第一个参数AcroDoc.Save从“1”更改为“PDSaveFull”,现在如果我运行脚本两次,注释就会变平。为什么他们不第一次变平?
更新:
我修改了脚本以获取页数并将其传递给flattenPages()每个 joelgaraci 的建议,以及将 PDF 路径传递给函数:
但这得到了相同的结果:仅在我运行脚本两次后注释才变平。
javascript - 经过多次迭代,对 Acrobat API 的 VBA 调用开始返回“远程过程调用失败”
我正在尝试遍历一堆 PDF,并且对于每个 PDF,使用 Acrobat API 将其展平以访问 PDF 的 JS 对象。因为 VBA 没有代码可访问的堆栈跟踪,所以我有一个包装器类AcroExchWrapper,它包装每个 Acrobat API 函数以在它失败时识别该函数,例如
每个 PDF 都使用以下代码展平:
在浏览了数千个文件后——每次运行脚本时数字都不同——flattenPages()引发以下错误:
之后,对于所有剩余的文件,在flattenPDF()运行时,第一次调用会acroExch.ClosePDF()引发此错误:
我找不到任何文档说明为什么在使用 Acrobat API 时会出现这些错误,无论是使用 Javascript API ( jso.flattenPages()) 还是 IAC API ( PDDoc.Close())。更神秘的是,应用程序运行良好,直到它到达一些不同数量的文件,然后才开始抛出这些异常。
编辑:我添加了以下功能来AcroExchWrapper重置 Acrobat,每 100 个文件执行一次:
但是,仍然会抛出相同的异常。一旦处理了 1500-2500 个文件,这似乎就会发生。
javascript - Adobe Acrobat (X):在 DataObject 和 Icon 对象之间转换
我的目标是让用户按一次按钮选择一个文件,该文件将同时用作附件和按钮图标。我知道如何分别完成这些任务,但这需要我的用户选择同一个文件两次。我正在寻找一种方法:
- 让他们将文件作为按钮图标导入,然后将图标更改为 DataObject 并将其附加到 pdf
- 让他们将文件作为 DataObject 附件导入,然后将其转换为图标
这可能吗?我无法弄清楚这个转换步骤。
谢谢
acrobat - 自动化 Acrobat 比较文件工具
我正在尝试确定是否可以通过 API 或 JavaScript 启动带有指定 PDF 的 Acrobat DC 比较文件工具。任何帮助将不胜感激。
vba - 将所有文本从 PDF 复制到 Windows 剪贴板
我正在使用 VBA (MS Office 2010) 并希望从我经常在 Outlook 中收到的 PDF 附件中提取一些关键词。
我计划将 PDF 保存为 Word 文档并从中提取文本,但显然我无法以编程方式执行此操作,因为我使用的是 Acrobat X Standard(似乎我需要 Pro)。
因此,我现在正在寻找一种使用 Acrobat 库方法将所有文本从 PDF 文档复制到 Windows 剪贴板的方法。然后我将粘贴到 Word 中(手动完成此复制/粘贴工作正常 - 不会损坏文本)。
我使用 Acrobat 的经验非常有限,并且正在审查 Acrobat SDK 资源等,但证明具有挑战性。
如何使用 VBA 中的 Acrobat 库方法选择 PDF 文档中的所有文本并将其复制到 Windows 剪贴板?
c# - 无法通过 acrobat 调用“Saveas”函数将 pdf 保存为 word。抛出反射异常
我正在尝试将 pdf 转换为 word 并通过 api 以编程方式保存它。我已经通过更改其他参考中的代码来尝试在 C# 示例文件夹中的 sdk 中给出的示例。但是我收到反射错误,因为“目标类型不匹配”。这是我的代码
将打开一个对话框并选择要转换的文件。据我所知,这是许多人的工作代码。我做错了什么。请帮忙。我的系统上安装了 Acrobat DC。这是我的版本
版本:Adobe Acrobat Pro DC 2017.009.20044
python - 优化 PDF 中的扫描页面
我正在开发一个自动化项目,该项目需要我识别扫描的 pdf(图像)中的文本。我需要在 python 中编写代码,使用 Acrobat Pro DC 中的识别文本功能将整个 PDF(扫描)转换为可读的 PDF。
到目前为止,我已经在 python 中编写了以下代码:
这会打开 pdf 文件并将我带到包含“识别文本”按钮的屏幕。如何单击该按钮并获得所需的输出?
javascript - 使用 Acrobat Reader 的保护模式规则 FILES_ALLOW_READONLY
对于 Adobe Reader 的保护模式,我使用的是 FILES_ALLOW_READONLY 策略例外,我想知道这是否是合理的安全风险?
我正在使用 Adobe Reader Javascript 程序来保存和恢复打开的选项卡: Adobe Acrobat Reader Tabs Saving And Autoloading
由于 Acrobat Reader 的默认保护模式策略,该程序不适用于某些 pdf 文件。在程序的 LoadTabs 函数中,app.openDoc 对某些文件失败,例如 c:\users\myUserid 下的文件
默认的保护模式策略在这里: https ://www.adobe.com/devnet-docs/acrobatetk/tools/AppSec/protectedmode.html
关闭保护模式可以绕过这个问题,但这似乎太冒险了。(首选项->安全(增强)->“启动时启用保护模式”)
风险较小的解决方案是创建一个策略文件,其规则为:FILES_ALLOW_READONLY=c:\users\myUserid\*
对于典型的工作站,这条规则是否存在合理的风险?
编辑: 我后来在保护模式政策规范中读到了这一点(链接在上面),“在 11.0 中,读者的保护模式确实阻止沙箱读取这些位置中的任意文件 [(例如,MyDocuments)]。这个增强 [在 11.0 ] 使恶意 PDF 更难窃取用户的机密信息。”
因此,我对 FILES_ALLOW_READONLY 的使用创建了一个漏洞,该漏洞可能允许恶意 PDF 窃取 c:\users\myUserid\* 下的信息
似乎可以通过禁用 Acrobat Javascript 来减少漏洞,如此链接中所述。 https://helpx.adobe.com/acrobat/using/javascripts-pdfs-security-risk.html
禁用 Acrobat Javascript 后,选项卡 Javascript 功能仍然有效。但是,我不知道漏洞减少了多少,或者可用性会受到多少负面影响。
关于该规则是否具有合理风险取决于漏洞被利用的可能性。对于典型的工作站,这种利用的可能性有多大?
c# - 在 .Net 中减小 pdf 大小
我有一个pdf大小为 230KB 的模板。在我WebAPI的多个用户中,获取该模板的副本,将数据推送给它,并使用iTextsharp库进行合并。对于 1500 个用户,总文件大小达到 320 MB。
我尝试使用BitMiracle,它将文件大小减小到 160 MB。但它仍然是一个大文件。
我使用acrobat Pro并使用了Save as Otheroption Reduced Size PDF,它将文件大小减小到 25 MB。
我想在我的 WebAPI 中将文件大小减少到 25MB,稍后C#将使用它托管在服务器上。
由于用户不应该编辑它PDF,他只会将其存储为记录。我可以生成一个后期脚本文件,然后使用 acrobat distiller 来减小大小吗?如果可以,我该怎么做?
我正在使用ghostscript.Net. 写了这个方法,它没有抛出任何错误。但我找不到生成的后记文件的路径
请帮忙
