注意事项、已知问题和最佳实践 best-practices-known-issues-and-limitations
在开始使用通信API之前,请查看以下注意事项、已知问题和常见问题解答:
注意事项 considerations-for-communications-apis
表单数据 form-data
通信API接受通常在Designer中创建的表单设计和XML表单数据作为输入。 要使用数据填充文档,XML元素必须存在于要填充的每个表单字段的XML表单数据中。 XML元素名称必须与字段名称匹配。 如果XML元素与表单字段不对应,或者如果XML元素名称与字段名称不匹配,则忽略该元素。 无需匹配XML元素的显示顺序。 重要因素是XML元素是使用相应的值指定的。
请考虑以下示例贷款申请表:
要将数据合并到此表单设计,请创建与表单相对应的XML数据源。 以下XML表示与示例抵押应用程序表单相对应的XML数据源。
<?xml version="1.0" encoding="UTF-8" ?>
- <xfa:datasets xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/">
- <xfa:data>
- <data>
- <Layer>
<closeDate>1/26/2007</closeDate>
<lastName>Johnson</lastName>
<firstName>Jerry</firstName>
<mailingAddress>JJohnson@NoMailServer.com</mailingAddress>
<city>New York</city>
<zipCode>00501</zipCode>
<state>NY</state>
<dateBirth>26/08/1973</dateBirth>
<middleInitials>D</middleInitials>
<socialSecurityNumber>(555) 555-5555</socialSecurityNumber>
<phoneNumber>5555550000</phoneNumber>
</Layer>
- <Mortgage>
<mortgageAmount>295000.00</mortgageAmount>
<monthlyMortgagePayment>1724.54</monthlyMortgagePayment>
<purchasePrice>300000</purchasePrice>
<downPayment>5000</downPayment>
<term>25</term>
<interestRate>5.00</interestRate>
</Mortgage>
</data>
</xfa:data>
</xfa:datasets>
支持的文档类型 supported-document-types
要完全访问Communications API的渲染功能,建议您使用XDP文件作为输入。 有时,可以使用PDF文件。 但是,使用PDF文件作为输入有以下限制:
不包含XFA流的PDF文档无法呈现为PostScript、PCL或ZPL。 通信API可以将具有XFA流(即在Designer中创建的表单)的PDF文档渲染为激光和标签格式。 如果PDF文档已经过签名、认证或包含使用权限(使用AEM FormsReader扩展服务应用),则无法呈现这些打印格式。
可打印区域 printable-areas
对于标签打印机,默认的0.25英寸不可打印的边距并不精确,并且会因打印机和标签大小而异,但是,建议保留0.25英寸的边距或减小它。 但是,建议不要增加不可打印的边距。 否则,在可打印区域中的信息无法正确打印。
务必确保为打印机使用正确的XDC文件。 例如,避免为300 dpi打印机选择XDC文件并将文档发送到200 dpi打印机。
仅适用于XFA表单(XDP/PDF)的脚本 scripts
与Communications API一起使用的表单设计可以包含服务器上运行的脚本。 确保窗体设计不包含客户端上运行的脚本。 有关创建表单设计脚本的信息,请参阅Designer帮助。
字体映射 font-mapping
要设计使用打印机驻留字体的表单,请在Designer中选择与打印机上可用字体匹配的字体名称。 PCL或PostScript支持的字体列表位于相应的设备配置文件(XDC文件)中。 或者,可以创建字体映射以将非打印机驻留的字体映射到具有不同字体名称的打印机驻留的字体。 例如,在PostScript场景中,对Arial®字体的引用可以映射到打印机驻留的Helvetica®字体。
如果某个字体安装在客户端计算机上,则它在Designer的下拉列表中可用。 如果未安装字体,则需要手动指定字体名称。 可以关闭Designer中的“永久替换不可用字体”选项。 否则,当XDP文件保存在Designer中时,替代字体名称将写入XDP文件。 这意味着不使用打印机驻留字体。
存在两种类型的OpenType®字体。 一种类型是PCL支持的TrueTypeOpenType®字体。 另一个是CFFOpenType®。 PDF和PostScript输出支持嵌入的Type-1、TrueType和OpenType®字体。 PCL输出支持嵌入的TrueType字体。
Type-1和OpenType®字体未嵌入到PCL输出中。 使用Type-1和OpenType®字体格式化的内容将被栅格化并生成为位图图像,该图像可能会大而慢,生成速度会比较慢。
在生成PostScript、PCL或PDF输出时,下载的字体或嵌入的字体会自动被替换。 这意味着生成的输出中只包括正确渲染生成的文档所需的字体字形子集。
使用设备配置文件(XDC文件) working-with-xdc-files
设备配置文件(XDC文件)是XML格式的打印机说明文件。 此文件使Communications API能够以激光或标签打印机格式输出文档。 Communications API使用XDC文件,其中包括:
-
hppcl5c.xdc
-
hppcl5e.xdc
-
ps_plain_level3.xdc
-
ps_plain.xdc
-
zpl300.xdc
-
zpl600.xdc
-
zpl300.xdc
-
ipl300.xdc
-
ipl400.xdc
-
tpcl600.xdc
-
dpl300.xdc
-
dpl406.xdc
-
dpl600.xdc
您可以使用提供的XDC文件生成打印文档,也可以根据需要对其进行修改。
这些文件是支持特定打印机功能(如常驻字体、纸盒和装订器)的参考XDC文件。 这些参考的目的在于帮助您了解如何使用设备配置文件设置自己的打印机。 该参考也是同一产品线中类似打印机的起点。
使用XCI配置文件 working-with-xci-files
通信API使用XCI配置文件执行任务,例如控制输出是单面板输出还是分页输出。 虽然此文件包含可以设置的设置,但通常不会修改此值。
您可以在使用Communications API时传递修改后的XCI文件。 在执行此操作时,请创建默认文件的副本,仅更改需要修改的值以满足您的业务要求,并使用修改后的XCI文件。
通信API以默认的XCI文件(或修改的文件)开头。 然后,它会应用使用通信API指定的值。 这些值将覆盖XCI设置。
下表指定了XCI选项。
已知问题
-
在打印选项列表中,只能使用一次特定渲染类型(PDF、打印)。 例如,不能有两个PRINT选项,每个选项都指定PCL渲染类型。
-
对于批处理配置,只允许一个OutputType(PDF、打印)和RenderType(PostScript、PCL、IPL、ZPL等)值的组合实例。
-
对于异步API(批处理),默认记录级别设置为2。 您可以使用自定义XCI将记录级别更改为1。
-
配置默认XCI后,它将包含原始演绎版的路径。 例如,
/content/dam/formsanddocuments/default.xci/jcr:content/renditions/original
最佳实践
- Adobe建议将数据文件blob容器存储托管在AEM Cloud Service使用的云区域中。
常见问题解答 faq
我是否可以使用观察文件夹或其他存储机制来存储输入和输出?
目前,您可以使用Microsoft Azure Storage保存输入数据和生成的文档。 Microsoft Azure Storage提供了多种选项,用于自动执行数据移动操作。
Experience Manager FormsCloud Service许可证中是否包括Microsoft Azure Storage帐户?
Microsoft Azure Storage帐户独立于Experience Manager FormsCloud Service许可证。
通信API是否在Experience Manager FormsCloud Service服务器上存储数据?
输入和输出数据仅保存在Microsoft Azure Storage上。
通信API是否仅可用于Experience Manager FormsCloud Service? 能否在内部部署环境中获得类似的功能?
您可以使用AEM Forms Output服务将模板(XFA或PDF)与客户数据相结合,生成PDF、PS、PCL和ZPL格式的文档。
与内部部署环境相比,该Cloud Service提供了自动扩展和成本效益方面的更多优势。
我可以同时运行多个批处理操作吗?
可以,您可以同时运行多个批操作。 请始终对每项操作使用不同的源文件夹和目标文件夹,以避免任何冲突。