【发布时间】:2011-01-31 11:48:16
【问题描述】:
我正在尝试做一些我认为很简单的事情,但它并不是那么简单,而且谷歌也没有提供帮助。
我正在使用 iTextSharp 将 PDF 文档(字母)合并在一起,以便一次打印它们。如果一个字母的页数是奇数,我需要附加一个空白页,这样我们就可以双面打印这些字母。
这是我目前用于合并所有字母的基本代码:
// initiaise
MemoryStream pdfStreamOut = new MemoryStream();
Document document = null;
MemoryStream pdfStreamIn = null;
PdfReader reader = null;
int numPages = 0;
PdfWriter writer = null;
for int(i = 0;i < letterList.Count; i++)
{
byte[] myLetterData = ...;
pdfStreamIn = new MemoryStream(myLetterData);
reader = new PdfReader(pdfStreamIn);
numPages = reader.NumberOfPages;
// open the streams to use for the iteration
if (i == 0)
{
document = new Document(reader.GetPageSizeWithRotation(1));
writer = PdfWriter.GetInstance(document, pdfStreamOut);
document.Open();
}
PdfContentByte cb = writer.DirectContent;
PdfImportedPage page;
int importedPageNumber = 0;
while (importedPageNumber < numPages)
{
importedPageNumber++;
document.SetPageSize(reader.GetPageSizeWithRotation(importedPageNumber));
document.NewPage();
page = writer.GetImportedPage(reader, importedPageNumber);
cb.AddTemplate(page, 1f, 0, 0, 1f, 0, 0);
}
}
我尝试过使用:
document.SetPageSize(reader.GetPageSizeWithRotation(1));
document.NewPage();
在 for 循环结束时有奇数页没有成功。
【问题讨论】:
标签: c# pdf itextsharp