我要填写具有不同表单字段的PDF文件,其中一个字段是多行字段。我从txt文件中加载了值(我必须批量重复此操作,因此我为每个pdf文件提供了一个txt文件,我必须填写)
我的问题在于txt文件中存在的\ r \ n ...如果我传递每个表单字段,它会在"我的文本\ r \ n在新行")上写一些内容。
我尝试过使用stringbuilder和.AppendLine方法,如果我保存它的内容就会正确显示
我的文字 在新线上
我的输入文件定义为
<map>
<campoModulo>lo_some_data</campoModulo>
<value>My text\r\non new line</value>
</map>
以及我用来填写pdf的代码
internal void Process(string p)
{
string output = p.Replace(".pdf", "_new.pdf");
PdfReader reader = new PdfReader(p);
XmlDocument document = new XmlDocument();
document.Load("XML\\mapping.xml");
var items = document.SelectNodes("//map");
PdfStamper pdfStamper = new PdfStamper(reader, new FileStream(
output, FileMode.Create));
var acro = pdfStamper.AcroFields;
if (items.Count > 0)
{
foreach (XmlNode item in items)
{
var campo = item.SelectSingleNode("campoModulo").InnerText;
var valore = item.SelectSingleNode("value").InnerText;
acro.SetField(campo, valore);
}
}
pdfStamper.FormFlattening = true;
pdfStamper.Close();
}
我做错了什么?
答案 0 :(得分:0)
您必须将\r\n
替换为实际控制代码。尝试:
text = text.Replace(@"\r\n", "\r\n");