此处的总体尝试是拥有两个PDF页面,其中一个页面是“较小的”页面,位于另一个PDF文档的右下角。我在线上看过,但是到目前为止,找到的所有解决方案都没有对我有用。
以下是我尝试过的几种解决方案:
PdfReader reader = new PdfReader(@"C:\temp\pdfFolder\mainPDF.pdf");
iTextSharp.text.Document doc = new iTextSharp.text.Document(PageSize.A4.Rotate(), 10, 10, 10, 10);
PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(@"C:\temp\pdfFolder\secondaryPDF.pdf", FileMode.Append));
doc.Open();
PdfImportedPage page;
PdfPTable table = new PdfPTable(2);
table.WidthPercentage = 100;
for(int i = 1; i <= reader.NumberOfPages; i++)
{
page = writer.GetImportedPage(reader, i);
table.AddCell(iTextSharp.text.Image.GetInstance(page));
doc.Add(table);
}
和
MemoryStream finalStream = new MemoryStream();
PdfCopyFields copy = new PdfCopyFields(finalStream);
PdfManager pdfMan = new PdfManager();
Persits.PDF.PdfDocument docOne = pdfMan.OpenDocument(@"C:\temp\pdfFolder\mainPDF.pdf");
Persits.PDF.PdfDocument docTwo = pdfMan.OpenDocument(@"C:\temp\pdfFolder\secondaryPDF.pdf");
MemoryStream docOneMem = new MemoryStream(docOne.SaveToMemory());
MemoryStream docTwoMem = new MemoryStream(docTwo.SaveToMemory());
docOneMem.Position = 0;
copy.AddDocument(new PdfReader(docOneMem));
docOneMem.Dispose();
docTwoMem.Position = 0;
copy.AddDocument(new PdfReader(docTwoMem));
docTwoMem.Dispose();
copy.Close();
Persits.PDF.PdfDocument finalDoc = pdfMan.CreateDocument();
Persits.PDF.PdfPage finalDocPage = finalDoc.Pages.Add();
finalDocPage.Equals(finalStream);
finalDoc.Save(@"C:\temp\pdfFolder\finalpdf.pdf");
任何帮助或指导将不胜感激。