我已经使用iTextSharp库在PDF中创建了EditTextField。我可以设置FieldName到EditTextField。我也想为它设置DataFormat。我将获得仅包含FieldName和Value的XML文件。所以,当将值合并到PDF模板时,我想检查DataFormat并根据那个我想要转换值和设置。如何获取和设置pdf中所有字段的字段格式
我已经添加了一个EditTextField。我可以为文本字段添加名称。我想将格式(如DateTime格式)添加到TextField。因此,下次我能够从PDF中获取所有文本字段并检查格式并根据格式,我可以通过编程将数据设置为它。
TextField _DOBtext = new TextField(pdfStamper.Writer,
new Rectangle(40, 670, 110, 650), "patient-dob");
_DOBtext.SetFormat("DateFormat", "mm/dd/yyyy"); // we want to set format like this.
pdfStamper.AddAnnotation(_DOBtext.GetTextField(), 1);
pdfStamper.Close();
而且在处理相同的PDF填充数据,我们将首先检查AcrofieldName和逻辑写入以下(它不工作代码)
var GetField = pdfStamper.Acrofields.Field.where(u=>u.Key == "patient-dob").FirstOrDefault();
var Format = GetField.GetFormat(); // we want like this feature
if (Format != null) {
if (Format.Type = "DateTime") {
value=string.Format(data, Format.FormatString));
stamper.AcroFields.SetField(fieldId, value); //fieldId = "patient-dob"
}
}
请帮我设置并获得DATAFORMAT
(ediit:添加iTextSharp的标签)
类型将仅为** TemplateFieldType.Text **。 但是文本内容可能是Date(mm/dd/yyyy或mm/dd/yyyy hh:mm),PhoneNumber [(xxx)-xxxx-xxxx],子串(起始位置,长度)等。 因此, * FormPath ** PDF模板,我们还需要提供数据类型(DataFormat)信息。 '_pdfStamper.AcroFields.Fields.DataFormat( “串”,StartPos,EndPos)' 和虽然填充OUTPUTFILE,我必须能够根据该格式设置数据 '_pdfStamper.AcroFields.SetField(_field.Key,_spField .Value,Format.Type);' –
我得到了这个......它已经很清楚了..但是因为你没有描述你从你的代码中得到了哪个错误(你称之为*非工作*),我不能建议你什么都没有比工作代码更具体,以允许您访问给定字段。 – weirdgyn
您发送的步骤工作正常。但它只设置数据。所以这个代码没有问题。但是,如果一些PDF文件存在,并且一个PDF希望** DateTime **为“dd/mm/yyyy”格式并且另一个PDF希望“mm/dd/yyyy hh:mm”,那么我们无法对DateFormat值进行硬编码。所以我想要的是:我也想在创建** TextField **时提供格式信息。我试图添加格式。但是没有选择添加它。所以张贴在这里希望我可以得到解决方案。例如:** key = patient-dob **和** value = 07/08/2016 03:33:22 **在pdf中,我必须以“dd/mm/yyyy”格式显示,例如** 07/08/2016 ** –