2011-08-08 61 views
2

我想用iText Sharp將文本文件轉換爲PDF。 但是,轉換本身並不是問題,我無法創建PDF文件,使其看起來與文本文件中文本的對齊方式完全一致。試圖將純文本文件轉換爲iTextSharp而不會丟失格式

這是代碼我使用:

public void GetPDF(string data) 
    { 

     using (MemoryStream ms = new MemoryStream()) 
     { 
      Rectangle docSize = new Rectangle(612, 798); 
      Document myDocument = new Document(PageSize.A4.Rotate()); 

      PdfWriter.GetInstance(myDocument, new FileStream 
             ("MyNewPDF.pdf", FileMode.Create)); 

      // step 3: Open the document now using 
      myDocument.Open(); 

      // step 4: Now add some contents to the document 
      myDocument.Add(new Paragraph(data)); 
      myDocument.Close(); 
     } 
    } 

沒有任何人有一個建議,以什麼做簡單的文本文件轉換成PDF格式,而不會丟失文本文件的格式? 任何幫助表示讚賞。

+1

我對使用MemoryStream的'ms'有點困惑。 (或者'data'是剛剛添加新段落時錯誤命名的東西?) – JYelton

+0

另請參見[在C#中將txt轉換爲pdf](http://stackoverflow.com/q/4906455/161052)(已關閉)或[ItextSharp適合文本到頁面](http://stackoverflow.com/q/4805767/161052)。 – JYelton

回答

0

我建議讓你的PDF文件使用像Courier New這樣的單一間隔字體。

+0

所以,現在幾乎可以工作。在每個頁面的底部顯示頁碼。在第五頁之後,頁碼不再顯示在底部,而是在第6頁的開頭。任何建議? –

+2

@ J.Barras,是你的文本文件的頁碼部分?如果是這樣,那麼你的計算內容適合在一個頁面上關閉。 –

+1

同樣的問題我會問,我不相信ITextSharp默認添加頁眉/頁腳(帶或不帶頁碼)。 – JYelton

0

純文本文件不包含格式。當你提到文本如何對齊時,我不得不假定你正在用固定寬度或等寬字體查看文本文件。因此,當您將文本文件轉換爲PDF時,應指定使用固定寬度/等寬字體字體(例如Lucida Console,Courier New,Consolas等)。

接下來,自動換行通常不在一個純文本文件。長段落的文本將以一個回車/換行符結束,就是這樣。 PDF轉換可能會在頁面邊界處引入一些文字換行。爲了控制這個,你需要選擇一個包裝你想要的字體大小,或者手動插入一些CR/LF。

+0

謝謝。這是有道理的。 –

相關問題