打开 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 文件已打开,此脚本步骤将返回错误代码 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 ]