2011-04-23 11 views
0

こんにちは iTextSharpバージョン5.0を使用して、既存のPDFファイルの上部にペルシア語(右から左へ言語)のテキストを追加したい.0.0ライブラリ。高さ:842、幅:595iTextSharpで既存のpdfファイルのカスタム位置に右から左の言語テキストを追加

は、残念ながら、私は私の半分だけでtarget.pdfを取得し、私はInsertText("Source.pdf", "Target.pdf", "Persian message", 10, 800); マイsource.pdfのページ・サイズがある呼び出し

public static void InsertText(string SourceFileName, string TargetFileName, string Text, int x, int y) 
{ 
    PdfReader reader = new PdfReader(SourceFileName);    
    Document document = new Document(PageSize.A4, 0, 0, 0, 0); // open the writer 

    FileStream fs = new FileStream(TargetFileName, FileMode.Create, FileAccess.Write); 
    PdfWriter writer = PdfWriter.GetInstance(document, fs); 
    document.Open(); 


    PdfContentByte cb = writer.DirectContent; // select the font properties 
    FontFactory.RegisterDirectories(); 
    Font fTahoma = FontFactory.GetFont("Tahoma", BaseFont.IDENTITY_H, 10, Font.NORMAL, BaseColor.RED); 
    writer.SetMargins(0, 0, 0, 0); 

    ColumnText ct = new ColumnText(writer.DirectContent); 

    ct.RunDirection = PdfWriter.RUN_DIRECTION_RTL;    
    Phrase p = new Phrase(Text, fTahoma); 
    ct.SetText(p); 

    ct.SetSimpleColumn(x, y, x + 350, y + 20);    
    ct.Go();   

    for (int i = 1; i <= reader.NumberOfPages; i++) 
    { 
     PdfImportedPage page = writer.GetImportedPage(reader, i); 

     cb.AddTemplate(page, 0, 0); // close the streams and voilá the file should be changed :)     
     document.NewPage(); 
    } 

    document.Close(); 
    fs.Close(); 
    writer.Close(); 
} 

:私はこのコードを使用

メッセージ!もう一方の垂直半分は隠されています! 今質問があります:どのように私は既存のPDFファイルの上に左の言語のテキストを右に追加することができますか?

答えて

0

問題:読み込まれたページがおそらくテキストを上書きしています。

解決方法:PdfImportedPageを追加してからテキストを追加してください。