2015-05-27 26 views
0

我正在填寫具有一些不同表單域的PDF文件,其中一個域是多行字段。我從一個txt文件中加載數值(我必須批量重複這個操作,所以我有一個txt文件,用於填寫每個pdf)用iTextSharp填充多行表單

我的問題是在\ r \ n目前在txt文件......如果我在每個表單上傳遞它在「新行」中寫爲「我的文本\ 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

您必須替換\r\n作爲實際控制代碼。試試:

text = text.Replace(@"\r\n", "\r\n");