2011-08-08 11 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'が使われているものについて少し混乱しています。 (または、新しい段落を追加するときに 'データ 'と同じ名前がちょうど間違っていますか?) – JYelton

+0

も参照してください[C#でのtxtからPDFへの変換](http://stackoverflow.com/q/4906455/161052)(閉鎖)または[ItextSharpページにテキストをフィット](http://stackoverflow.com/q/4805767/161052)。 – JYelton

答えて

0

PDFファイルにCourier Newのようなモノスペースフォントを使用することをお勧めします。

+0

だから、これは今ほとんど働いています。各ページの下部にページ番号が表示されます。 5番目のページの後には、ページ番号は最下部には表示されませんが、ページ6の先頭に表示されます。 –

+2

@ J.Barrasは、テキストファイルのページ番号ですか?そうであれば、ページに収まるコンテンツの計算がオフになります。 –

+1

同じ質問私はITextSharpがデフォルトでヘッダー/フッター(ページ番号の有無にかかわらず)を追加するとは思わない。 – JYelton

0

プレーンテキストファイルにはフォーマットが含まれていません。テキストの整列方法を参照するときは、固定幅フォントまたは固定幅フォントでテキストファイルを表示していると仮定しなければなりません。したがって、テキストファイルをPDFに変換するときは、固定幅フォントまたは等幅フォント(Lucida Console、Courier New、Consolasなど)を使用するように指定する必要があります。

次に、ワードラップはプレーンテキストファイル。テキストの長い段落は改行文字/改行文字で終了します。それだけです。 PDF変換では、ページの境界にワードラップが発生する可能性があります。これを制御するには、必要な場所を囲むフォントサイズを選択するか、いくつかのCR/LFを手動で挿入する必要があります。

+0

ありがとうございます。意味あり。 –

関連する問題