我正在创建PDF并希望添加现有的PDF和/或图像。我有以下代码适用于这些图像,但由于现有的pdf未显示在新PDF中,而图像没有问题,所以我遇到了PDF部分的问题。我找到了以下question,但我的代码看起来很相似。任何想法,我缺少什么?如何将现有pdf添加到创建的pdf中?
using (MemoryStream ms = new MemoryStream())
{
PdfWriter pWriter = PdfWriter.GetInstance(myDoc, ms);
myDoc.Open();
int index = 0;
iTextSharp.text.Image img;
foreach (var buf in bufList)
{
if (uploadType[index] == 0)
{
PdfContentByte pdfContentByte = pWriter.DirectContent;
PdfReader reader = new PdfReader(buf);
int pageCount = reader.NumberOfPages;
myDoc.SetPageSize(reader.GetPageSizeWithRotation(1));
for (int pageNum = 1; pageNum <= pageCount; pageNum++)
{
myDoc.NewPage();
PdfImportedPage importedPage = pWriter.GetImportedPage(reader, pageNum);
pdfContentByte.AddTemplate(importedPage, 0, 0);
}
reader.Close();
}
else
{
myDoc.NewPage();
img = iTextSharp.text.Image.GetInstance(buf);
img.ScaleToFit(612f, 792f);
img.Alignment = iTextSharp.text.Image.ALIGN_CENTER | iTextSharp.text.Image.ALIGN_MIDDLE;
myDoc.Add(img);
}
index++;
}
pWriter.CloseStream = false;
myDoc.Close();
ms.Position = 0;
}
究竟是什么问题?例外? – slfan
即使图像显示没有问题,我也没有看到要显示的现有PDF。 – MrM
它看起来已经足够让我纠正;虽然也许这可能有帮助 - http://khsw.blogspot.com/2006/04/merge-pdf-files-using-itextsharp.html – Reddog