使用ITextSharp合并和重新编号页面

时间:2014-06-27 12:00:14

标签: c# pdf merge itextsharp

我们正在尝试将两页编号的PDF合并为一个新的PDF。我们希望新的PDF以1的页码开头,例如

  1. PDF页面的排序方式如下1,2,3,4,5
  2. PDF页面的排序方式如下1,2,3,4,5
  3. 合并的PDF应该包含页码1,2,3,4,5,6,7,8,9,10,并且不应在新合并的PDF上看到其他旧页面标签。

    这是我们的示例代码,但标签未在页面上显示。

    string output_file = "~/output/output.pdf";
    Document document = new Document();
    using (var inputPdfStream = new FileStream(@"C:\Test.pdf", FileMode.Open))
    {
        PdfReader reader = new PdfReader(inputPdfStream);
        PdfReader.unethicalreading = true;
    
        using (PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(Server.MapPath(output_file), FileMode.Create)))
        {
            document.Open();
            PdfContentByte cb = writer.DirectContent;
            PdfImportedPage page;
    
            for (int i = 1; i <= reader.NumberOfPages; i++)
            {
                page =writer.GetImportedPage(reader, i);
                document.NewPage();
                cb.AddTemplate(page, 0, 0);
                PdfPageLabels oLabel = new PdfPageLabels();
                oLabel.AddPageLabel(i, PdfPageLabels.DECIMAL_ARABIC_NUMERALS);
                writer.PageLabels = oLabel;
            }
    
            document.Close();
        }
    }
    

0 个答案:

没有答案