【问题标题】:adding new pages to existing pdf using iTextSharp使用 iTextSharp 向现有 pdf 添加新页面
【发布时间】:2011-06-15 19:26:59
【问题描述】:

我有一个 pdf 文件,只有 1 页。现在我想再添加两页,其中包含一些数据或图像。 我试过了,但它没有添加新页面:

private void addPage()
   {
     Document document = new Document();
     writer = PdfWriter
        .GetInstance(document, new FileStream(outputFileName, FileMode.Create));

        document.Open();

        PdfContentByte cb = writer.DirectContent;


     for (int pageNumber = 1;pageNumber < reader.NumberOfPages + 2;pageNumber++)
        {
            document.SetPageSize(reader.GetPageSizeWithRotation(1));
            document.NewPage();

            if (pageNumber == 1)
            {
                Chunk fileRef = new Chunk(" ");
                fileRef.SetLocalDestination(newPdf);
                document.Add(fileRef);
            }

            PdfImportedPage page = writer.GetImportedPage(reader, pageNumber);
            int rotation = reader.GetPageRotation(pageNumber);
            if (rotation == 90 || rotation == 270)
            {
                cb.AddTemplate(
                    page, 0, -1f, 1f, 0, 0,
                    reader.GetPageSizeWithRotation(pageNumber).Height
                );
            }
            else
            {
                cb.AddTemplate(page, 1f, 0, 0, 1f, 0, 0);
            }
        }
        document.NewPage();

        Paragraph paragraph = new Paragraph();
        iTextSharp.text.Font titleFont =
            new iTextSharp.text.Font(
                iTextSharp.text.Font.FontFamily.HELVETICA
                , 15
                , iTextSharp.text.Font.BOLD
                , BaseColor.BLACK
            );
        Chunk titleChunk = new Chunk("Comments", titleFont);
        paragraph.Add(titleChunk);
        document.Add(paragraph);

        paragraph = new Paragraph();
        iTextSharp.text.Font textFont =
            new iTextSharp.text.Font(
                iTextSharp.text.Font.FontFamily.HELVETICA
                , 12
                , iTextSharp.text.Font.NORMAL
                , BaseColor.BLACK
            );
        Chunk textChunk = new Chunk("", textFont);
        paragraph.Add(textChunk);

        document.Add(paragraph);
        }

        document.Close();

  }

【问题讨论】:

  • 您确定文档是可编辑的吗?
  • @Gregory A Beamer :是的......事实上,现有的 pdf 是我的模板,我成功地用文本和图像填充它,但无法向它添加另一个页面..
  • 您在pageNumber 上循环使用writer.GetImportedPage(reader, pageNumber),特别是pageNumber &lt; reader.NumberOfPages + 2,,因此,对于pageNumber == reader.NumberOfPages + 1,,源文档中不存在一个页面!

标签: c# .net itextsharp pdfsharp


【解决方案1】:

尝试将页面添加到您的 PDF 文档中:

PdfDocument pdfDoc = new PdfDocument(); // create document
PdfPage pdfPage = new PdfPage(); // create page 
pdfPage.Size = PageSize.Letter; // set page size
pdfDoc.Pages.Add(pdfPage); // add page to document

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-06
    • 2014-05-09
    相关资源
    最近更新 更多