Общая попытка здесь состоит в том, чтобы создать две 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");
Любая помощь или руководство будут высоко оценены.