首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >iTextSharp -填充动态表字段

iTextSharp -填充动态表字段
EN

Stack Overflow用户
提问于 2013-05-23 01:11:56
回答 2查看 3.9K关注 0票数 1

我有一个带有动态字段的XDP和一个动态PDF文件。

我能够填写文本字段和类似的(如下面的代码所示)。

问题是我有一个动态表字段,我不知道如何填充它。我找到了许多很好的教程来“从头开始”创建一个表,但是这里的表是一个已经预先定义的字段(宽度、列数等等)。

如何填充动态表字段?任何帮助都将不胜感激。

PS -下面是我用于填充文本字段和类似的代码,基于本文:http://bit.ly/12Xu1QY

代码语言:javascript
复制
string template = "template.pdf";
string new = "new.pdf";

var reader = new PdfReader(template);
var stamper = new PdfStamper(reader, new FileStream(file, FileMode.Create));

AcroFields fields = stamper.AcroFields;

fields.SetField("FIELD_NAME_1", "VALUE1");
fields.SetField("FIELD_NAME_2", "VALUE2");

stamper.Close();

编辑:

从布鲁诺·洛瓦吉的回答来看,我恐怕没有使用正确的措辞。我有一个LiveCycle设计器文件(XDP),我将它保存为一个动态PDF (PDF)。这来自SAP应用程序。上面的代码对我来说很好,所以我理解它实际上是一个静态PDF表单。

然后,表字段被称为“字段”--我需要一种填充行的方法。

很抱歉给你带来了混乱,我很感激你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-31 23:14:08

特别感谢@Bruno为我指明了正确的方向。

现在我将复制解决方案。

我开始使用XFA的XDP文件(Adobe文件)。然后我将其保存到一个PDF文件中,并使用Acrobat填写表单,最后将表单数据导出到一个XML文件中。

这最终是我给PdfStamper提供的XML文件,以便填充该PDF文件。

因此,首先,我以这样的方式动态生成XML:

代码语言:javascript
复制
var doc = new XDocument(new XDeclaration("1.0", "UTF-8", ""),
new XElement("CUSTOMER",
new XElement("FIRST_NAME", FirstNameTextBox.Text),
new XElement("LAST_NAME", LastNameTextBox.Text)
));

然后我用这样的方式把它喂给了PdfStamper

代码语言:javascript
复制
var reader = new PdfReader(templateFilename);
var stamper = new PdfStamper(reader, new FileStream(bolFilename, FileMode.Create));
var xml = GenerateXml(); // Above code
var stream = new MemoryStream(UTF8Encoding.Default.GetBytes(xml ?? String.Empty));

stamper.AcroFields.Xfa.FillXfaForm(stream);
stamper.Close();

(不要忘记将代码放在using语句中。)

票数 4
EN

Stack Overflow用户

发布于 2013-05-23 08:22:26

你把两种不同的技术混为一谈。

您所指的这篇文章填写了一个静态表单。也就是说:一个只包含AcroForm字段的PDF格式,或者一个混合表单,包括基于AcroForm技术的表单定义以及基于XML Forms Architecture (XFA)的定义。

你说的是一种动态形式,这意味着你在谈论纯XFA。您需要一个完全不同的例子:Java / C#

使用fillXfaForm()方法填写表单后,可以使用封闭源XFA工人将表单扁平化。也见下载页面

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16704091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档