2016-06-01 12 views
1

複数の出荷ラベルを含むファイルが1ページに2つあります(このフォーマットは選択できません)。個々のラベルが4x6ラベルプリンタで印刷可能になるようにファイルを変更しようとしています。PdfStamper/PdfReaderを使用したPDFページの重複

pdfページの内容を別のページに複製する際に問題が発生しています。そのため、各ページを異なる領域でトリミングして元のページの各ラベルを含む2ページを作成できます。次のように私が現在持っているコードは次のとおりです。

string filename = "Package.pdf"; 
     using (var existingFileStream = new FileStream(filename, FileMode.Open)) 
     { 
      var pdfReader = new PdfReader(existingFileStream); 

      using (FileStream output = new FileStream("Mod_package.pdf", FileMode.Create, FileAccess.Write)) 
      { 
       using (PdfStamper pdfStamper = new PdfStamper(pdfReader, output)) 
       { 
        int originalpages = pdfReader.NumberOfPages; 
        for(int page = 1; page <=originalpages; page++) 
        { 
         Rectangle rect = pdfReader.GetCropBox(page); 
         pdfStamper.InsertPage(page * 2, rect); 
        } 
        for(int page = 2; page <=pdfReader.NumberOfPages; page=page+2) 
        { 

         //I want to insert the content from pdf page 1 into 
         //page 2, page 3 into page 4 etc etc. 
        } 
        for (int page = 1; page <= pdfReader.NumberOfPages; page++) 
        { 
         //The basic jyst of how I'm cropping 
         //This will be modified to use an even/odd page scheme 
         Rectangle rect = pdfReader.GetCropBox(page); 
         rect.Bottom = rect.Bottom/2; 
         pdfReader.GetPageN(page).Put(PdfName.CROPBOX, new PdfRectangle(rect)); 
         rect = pdfReader.GetCropBox(page); 
         rect.Top = rect.Top/2; 
         pdfReader.GetPageN(page).Put(PdfName.CROPBOX, new PdfRectangle(rect)); 
        } 
       } 
      } 
      pdfReader.Close(); 
     } 

私は奇妙なITextSharpコードを持っている場合、私は、このタスクと私の謝罪を実現する方法上の任意の提言をいただければ幸いです。私はそれに比較的新しいです。

答えて

2

私は質問を投稿する時間がかかるとすぐに答えを見つけることができます。上記のコードでは、私は、次の挿入:ループの第二のものと

pdfStamper.ReplacePage(pdfReader, page - 1, page); 

、1ページの内容が4などなどそれはゴムダッキングと呼ばれる

+0

にページ2、3に転送されます。喜んで助けになる。 http://www.urbandictionary.com/define.php?term=Rubber%20ducking –

+0

母..私はそれを覚えています。ありがとう! –

関連する問題