我可以使用javascript修改PDF的Javascript部分吗

时间:2019-07-18 12:51:24

标签: javascript pdf

PDF有一个名为Javascript的工具,您可以在其中向pdf添加一些脚本,并为可变文本添加一些功能。

PDF tools - Javascript

有没有一种方法可以通过javascript打开该pdf文件并编辑该pdf文件的一部分,然后将其另存为新的pdf文件?

谢谢。

4 个答案:

答案 0 :(得分:0)

您可以在浏览器中打开任何文件(只要用户选择了它),即可读取数据,编辑数据并将编辑后的数据下载回硬盘(只要用户单击下载链接)。

因此,从理论上讲,您的问题的答案是肯定的。

但是,要编辑PDF的特定部分,您首先需要了解PDF文件格式。如果您可以自己解释PDF数据并更改所需的部分,则可以完成此操作。

了解PDF文件格式的另一种方法是使用库。以下库似乎也可以编辑PDF。

https://github.com/Hopding/pdf-lib

答案 1 :(得分:0)

您的屏幕截图显示了Acrobat Pro工具,因此答案是肯定的,尽管并非所有PDF编辑器都可以做到。

要在打开文件时运行的文档级别添加或替换JavaScript,请使用doc Object addScript方法。

https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2FDoc_methods.htm%23TOC_addScriptbc-7&rhtocid=_6_1_8_23_1_6

您还可以使用setAction添加或替换与不同对象和事件关联的JavaScript

https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2FDoc_methods.htm%23TOC_addScriptbc-7&rhtocid=_6_1_8_23_1_6

答案 2 :(得分:0)

Foxit PDF SDK 6.4支持以编程方式设置JavaScript。主要的API是foxit :: pdf :: actions :: JavaScriptAction.SetScript。如果您下载了评估包,则代码可以位于examples \ simple_demo \ form的简单示例演示中。如果您对https://developers.foxitsoftware.com/pdf-sdk/free-trial的评估包感兴趣。

这是代码外观的一般概念。

foxit::pdf::PDFDoc doc =  foxit::pdf::PDFDoc(L"C:\path\to\your.pdf".c_str());
foxit::pdf::interform::Form form(doc);
foxit::pdf::interform::Control control(form);
foxit::pdf::annots::Widget widget= control.GetWidget();
foxit::pdf::actions::JavaScriptAction javascriptaction = foxit::pdf::actions::JavaScriptAction(widget.getAction());
javascriptaction.SetScript(L"AFSimple_Calculate(\"SUM\", new Array (\"Text Field0\", \"Text Field1\"));" );

PDFDoc:https://developers.foxitsoftware.com/resources/pdf-sdk/cplusplus_api_reference/classfoxit_1_1pdf_1_1_p_d_f_doc.html

表格:https://developers.foxitsoftware.com/resources/pdf-sdk/cplusplus_api_reference/classfoxit_1_1pdf_1_1interform_1_1_form.html

控制:https://developers.foxitsoftware.com/resources/pdf-sdk/cplusplus_api_reference/classfoxit_1_1pdf_1_1interform_1_1_control.html

小部件:https://developers.foxitsoftware.com/resources/pdf-sdk/cplusplus_api_reference/classfoxit_1_1pdf_1_1annots_1_1_widget.html

操作:https://developers.foxitsoftware.com/resources/pdf-sdk/cplusplus_api_reference/classfoxit_1_1pdf_1_1actions_1_1_action.html

JavaScriptAction:https://developers.foxitsoftware.com/resources/pdf-sdk/cplusplus_api_reference/classfoxit_1_1pdf_1_1actions_1_1_java_script_action.html

请注意,Foxit PDF SDK支持其他语言和平台。在这里,我只提供了C ++选项。请访问我上面链接的免费足迹页面,以了解可用的内容。

答案 3 :(得分:0)

JavaScript不是PDF中的“工具”,而是一项功能。您需要一个可解析文档内容的PDF库,以查找可能的JavaScript条目,然后根据需要进行编辑并保存生成的文档。

我公司提供了PDF Library来完成此操作。