我们希望实现以下目标:
我们在以下网站上找到了一些示例:
但在那里省略了细节。
添加内容; _do_form_fields(),_ get_transaction_details()和_transaction_summary()的代码被省略,因为它们只返回要添加到ColumnText的字符串。 ColumnText很聪明;每次调用Go()都会呈现适合当前页面的文本,并返回一个状态代码,告诉您:(1)剩余多少文本(写入),和/或(2)仍有多少空间可在页面上找到。在每次迭代中,您将文本添加到当前页面,调用ColumnText.HasMoreText()以检查状态,然后在必要时调用Document.NewPage()。
以前有没有人有同样的情况?我们感谢您提供一些提示或建议。
谢谢。
最好的问候,
成功答案 0 :(得分:1)
您在要求的第一步中已经犯了错误。
你说"用模板生成PDF,这意味着在AcroFields中设置值。"
第一部分是OK:您想要使用模板生成PDF。但是,这并不意味着在AcroFields中设置值。这只是一个选择。如果您认为PDF是纸张的数字等效物,那么您可以选择它。表格是静态的:每个坐标都是固定的。您只需在适当的位置填写数据。如果数据不符合指定区域,那么您运气不好。我在评论中已经提到了chapter 6 of my book。您还可以在更长的教程中查看AcroForms的工作原理:https://www.youtube.com/watch?v=6YwDME0Fl1c(本教程几乎完全致力于从数据集创建报告。)
从模板创建PDF的另一种方法是使用XML Forms Architecture。在这种情况下(如果您有纯XFA表单),您的PDF是XML的容器。然后,您可以将XML数据注入此表单,表单将根据数据自行调整。填写完整后,单页表单很容易成长为20页的文档。在此视频中对此进行了解释:https://www.youtube.com/watch?v=h0wzj84tnmw(请注意,该视频的日期为2012年。我提供的产品已经完成,结果现在好多了。)
此方法的替代方法可能是在HTML中创建模板。我经常将此解决方案称为穷人的XFA解决方案。此解决方案需要XML Worker。您可以在此视频中看到一个示例:https://www.youtube.com/watch?v=clWoDrEEl50
这是一般答案。我无法更具体,因为你的问题并不清楚。您首先需要考虑这种方法。现在,您谈论AcroFields
,同时讨论ColumnText
。在长篇教程中,这被描述为艰难的方式。另请参阅corresponding online samples。在提出简单的问题之前,为什么你要问一个非常棘手的问题,这是非常令人困惑的。当然,除非你已经有了这些简单问题的答案。如果是,请分享这些答案。