打开 PDF
打开 PDF 文件。使用“附加 PDF”等脚本步骤添加页面,然后使用“关闭 PDF”脚本步骤关闭并保存文件。
另请参阅
选项
-
“来自”是 PDF 文件位置的指定方式:
-
“文件”指定 PDF 文件路径。选择后,“源文件”选项将变为可用。
-
“源”在容器字段或变量中指定 PDF 文件。选择后,“源”选项变得可用。
-
-
当“来自”为“文件”时,“源文件”定义了 PDF 文件的一个或多个路径和文件名的列表。脚本步骤会搜索列表,并使用它成功找到的第一个 PDF 文件。路径必须使用
image路径前缀之一。请参阅创建文件路径。 -
“源”指定当“来自”为“源”时存储 PDF 文件的容器字段或变量。
-
“密码”是打开加密 PDF 文件所需的密码的文本表达式。如果 PDF 文件未加密,则忽略此选项。
兼容性
| 产品 | 是否支持 |
| FileMaker Pro | 是 |
| FileMaker Go | 是 |
| FileMaker WebDirect | 部分 |
| FileMaker Server | 是 |
| FileMaker Cloud | 是 |
| FileMaker Data API | 是 |
| 自定义 Web 发布 | 是 |
原始版本
26.0
说明
此脚本步骤会打开一个现有的 PDF 文件,然后您可以使用其他 PDF 文件脚本步骤对其进行修改。PDF 文件在内存中保持打开状态,直到您使用关闭 PDF脚本步骤或取消 PDF脚本步骤将其关闭。
打开 PDF 文件后,您可以:
-
使用附加 PDF脚本步骤添加内容
-
使用将记录另存为 PDF脚本步骤通过“当前打开的 PDF”选项添加生成的记录
-
使用关闭 PDF脚本步骤保存最终的 PDF
此工作流程可用于创建复杂的 PDF 文档,这些文档将来自多个来源的页面(如封面、报告数据和附录)组合在一起,全部汇编成一个 PDF 文件。
注释
-
一次只能打开一个 PDF 文件。如果 PDF 文件已打开,此脚本步骤将返回错误代码 833 (“PDF 文件已打开”)。
-
除非您使用关闭 PDF脚本步骤将更改保存到同一位置,否则原始 PDF 文件不会被修改。
-
对于加密的 PDF 文件,如果密码缺失或不正确,此脚本步骤将返回错误代码 831(“PDF 密码无效”)。
-
如果发生以下任一情况,打开的 PDF 文件和任何未保存的更改都将丢失:
-
当前的 FileMaker 客户端会话结束
-
其脚本打开了 PDF 文件的 FileMaker Pro 文件关闭而未关闭打开的 PDF 文件
-
-
在 FileMaker WebDirect 中,不支持“从: 文件”选项。
示例 1 - 打开并修改现有的 PDF 文件
使用 image:ExistingReport.pdf 的路径和文件名打开当前目录中的现有 PDF 文件,添加当前记录,并将修改后的版本保存到 image:UpdatedReport.pdf。
打开 PDF [ 来自: 文件 ; 源文件: "ExistingReport.pdf" ]
将记录另存为 PDF [ 恢复 ; 保存到: 当前打开的 PDF ; 当前记录 ]
关闭 PDF [ 保存到: 文件 ; "UpdatedReport.pdf" ; 创建文件夹: 关闭 ]
示例 2 - 打开有密码的加密 PDF 文件
打开存储在容器字段中的受密码保护的 PDF 文件,附加另一个 PDF 文件中的页面,并将结果保存到文件名为 UpdatedContract.pdf 的全局变量中。
转到布局 [ "合同" (合同) ; 动画: 无 ]
打开 PDF [ 来自: 源 ; 源: Contracts::ContractPDF ; 密码: •••••••• ]
附加 PDF [ 来自: 文件 ; 源文件: "Appendix.pdf" ]
关闭 PDF [ 保存到: 目标 ; 目标: $$modifiedPDF ; 文件名: "UpdatedContract.pdf" ]
示例 3 - 打开带有错误处理的 PDF 文件
打开一个 PDF 文件,然后使用计算将错误代码映射为用户友好的消息来处理错误,并使用取消 PDF脚本步骤关闭已打开的 PDF 文件而不保存。
设置错误捕获 [ 打开 ]
转到布局 [ "合同" (合同) ; 动画: 无 ]
设置变量 [ $pdfFilePath ; 值: "image:Contract.pdf" ]
打开 PDF [ 来自: 文件 ; 源文件: $pdfFilePath ; 密码: •••••••• ]
设置变量 [ $errorCode ; 值: Get(LastError) ]
设置变量 [ $errorMessage ; 值:
Case (
$errorCode = 0 ; "" ;
$errorCode = 5 ; "文件操作在 FileMaker WebDirect 中不受支持。 改用容器字段或变量。”;
$errorCode = 830 ; "PDF 文件未找到或格式无效。" ;
$errorCode = 831 ; "加密的 PDF 文件的密码不正确。" ;
$errorCode = 832 ; "PDF 文件安全设置阻止修改。" ;
$errorCode = 833 ; "另一个 PDF 文件已打开。 请先将其关闭。" ;
"打开 PDF 时出现未知错误: " & $errorCode
)
]
If [ $errorCode ≠ 0 ]
取消 PDF
显示自定义对话框 [ "PDF 错误" ; $errorMessage ]
退出脚本 [ 文本结果: "失败" ]
End If
附加 PDF [ 来自: 源 ; 源: Contracts::ContractPDF ]
关闭 PDF [ 保存到: 文件 ; $pdfFilePath ]