ITextSharp SetFieldPropertyy,顶部自动换行和垂直对齐
ITextSharp SetFieldPropertyy with automatically linebreaks and verticalalignment on top
我使用 c#-library ITextSharp 将 pdf-form-elements 替换为文本:
using (var existingFileStream = new FileStream(fileNameExisting, FileMode.Open))
using (var newFileStream = new FileStream(fileNameNew, FileMode.Create))
{
// Open existing PDF
var pdfReader = new PdfReader(existingFileStream);
//pdfstamper which will replace
var stamper = new PdfStamper(pdfReader, newFileStream);
//getting the form elements
var form = stamper.AcroFields;
var fieldKeys = form.Fields.Keys;
//replacing the form
foreach (string fieldKey in fieldKeys)
if(fieldKey=="mytextinput")
form.SetField(fieldKey, cancelationText);
stamper.FormFlattening = true;
stamper.Close();
pdfReader.Close();
}
我的 pdf 表单模板看起来像这样:
下图说明了插入的test-input of
的pdf输出
1234567890 1234567890 1234567890 1234567890 1234567890 1234567890
1234567890 1234567890 1234567890 1234567890
输出:
我需要表单元素的文本位于该位置的顶部(垂直对齐)并且我需要自动换行。在我的例子中,文本在最后被截断了!我研究了网络和文档。有 methods (setFieldProperty) 用于字体样式、颜色等,但不是我的必需品。
除了 ITextSharp,我发现了一个有用的解决方法。使用 OpenOffice,我还可以创建一个表单 PDF 模板。在那里我可以将文本类型设置为多行,这解决了两个问题(垂直对齐、换行):
之前模板是用pdfescape.com创建的,但现在我更推荐OpenOffice,因为有几个优点。
我使用 c#-library ITextSharp 将 pdf-form-elements 替换为文本:
using (var existingFileStream = new FileStream(fileNameExisting, FileMode.Open))
using (var newFileStream = new FileStream(fileNameNew, FileMode.Create))
{
// Open existing PDF
var pdfReader = new PdfReader(existingFileStream);
//pdfstamper which will replace
var stamper = new PdfStamper(pdfReader, newFileStream);
//getting the form elements
var form = stamper.AcroFields;
var fieldKeys = form.Fields.Keys;
//replacing the form
foreach (string fieldKey in fieldKeys)
if(fieldKey=="mytextinput")
form.SetField(fieldKey, cancelationText);
stamper.FormFlattening = true;
stamper.Close();
pdfReader.Close();
}
我的 pdf 表单模板看起来像这样:
下图说明了插入的test-input of
的pdf输出1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890
输出:
我需要表单元素的文本位于该位置的顶部(垂直对齐)并且我需要自动换行。在我的例子中,文本在最后被截断了!我研究了网络和文档。有 methods (setFieldProperty) 用于字体样式、颜色等,但不是我的必需品。
除了 ITextSharp,我发现了一个有用的解决方法。使用 OpenOffice,我还可以创建一个表单 PDF 模板。在那里我可以将文本类型设置为多行,这解决了两个问题(垂直对齐、换行):
之前模板是用pdfescape.com创建的,但现在我更推荐OpenOffice,因为有几个优点。