2017-10-26 3 views
0

私はPDFファイルを持っており、このようにiTextSharpを使用して行を挿入しようとしています。 iTextsharpを使用してPDFに行を追加するエラーが表示されない行を参照してください

string Oldfile = @"C:\ThisTest.pdf"; 
    string NewFile = @"C:\NewOne.pdf"; 
    PdfReader reader = new PdfReader(Oldfile); 
    iTextSharp.text.Rectangle Size = reader.GetPageSizeWithRotation(1); 
    Document document = new Document(Size); 
    FileStream fs = new FileStream(NewFile, FileMode.Create, FileAccess.Write); 
    PdfWriter weiter = PdfWriter.GetInstance(document, fs); 
    document.Open(); 
    PdfContentByte cb = weiter.DirectContent; 
    BaseFont bf = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.EMBEDDED); 
    cb.SetColorFill(BaseColor.DARK_GRAY); 
    cb.SetFontAndSize(bf, 8); 
    cb.BeginText(); 
    string text = "Haseeb Ahmad"; 
    cb.ShowTextAligned(1, text, 520, 640, 0); 
    cb.EndText(); 
    PdfImportedPage page = weiter.GetImportedPage(reader, 1); 
    cb.AddTemplate(page, 0, 0); 
    document.Close(); 
    fs.Close(); 
    weiter.Close(); 
    reader.Close(); 

は、私は、この文書の末尾に行を追加しようとしていますが、それはそのコードを実行した後には、ファイルを作成し、私はそれを開いたとき、私はそのテキストを参照してください傾けます。私がその単語の検索をするとき、それはそこにあると言います。このように the search shows that line is here but i cant see it

つまり、すべての問題が解決されたということは、フォントがページの最後に来て隠されている代わりに表示される方法を教えてくれるのですか?

答えて

2

あなたのコードは最初したがって、(白の背景の塗りつぶしを含んでいてもよい)、元のページの内容があなたの新しいカバーこの

PdfImportedPage page = weiter.GetImportedPage(reader, 1); 
cb.AddTemplate(page, 0, 0); 

にテキスト

cb.SetColorFill(BaseColor.DARK_GRAY); 
cb.SetFontAndSize(bf, 8); 
cb.BeginText(); 
string text = "Haseeb Ahmad"; 
cb.ShowTextAligned(1, text, 520, 640, 0); 
cb.EndText(); 

、その後、コピー元のページを描画しますテキスト。

最初にページをコピーしてからテキストを書き込んでください。


あなたのタスクは、既存のPDFの既存のページにいくつかのテキストを入れて実際にであれば、あなたは完全に他のiTextのクラスを使用する必要があります。PdfWriterをもっと作るために作られている間PdfStamperは、タスクのちょうどこの種のために作られています新しいPDFを最初から作成する

PdfStamperは元のPDFを可能な限り保存していますが、ドキュメントレベルの情報やフォームフィールドのようなインタラクティブな部分は削除されてしまいます。

+0

これをすばやく試してみましょう。さて、私はどのように作者の代わりにpdfstamperを使うのですか? –

+0

@Haseebそれは別の質問です。そのような質問は、通常、コメントフィールドで便利な方法で答えられないので、新しい質問をするためにコメントを使用しないでください。また、あなたの質問は明確ではありません。あなたの問題は何ですか?何を試しましたか?オンラインで入手できる多くの 'PdfStamper'の例を探していましたか? –

+0

今すぐお試しください。申し訳ありませんが、私はその質問をすぐに投稿する予定の質問を作成することになっていました。フローオーバーは私が90分前に投稿するようにしていません。 –

関連する問題