public virtual void PageCopyAsFormXObjectWithInheritedResourcesTest() { String cmpFile = sourceFolder + "cmp_pageCopyAsFormXObjectWithInheritedResourcesTest.pdf"; String srcFile = sourceFolder + "pageCopyAsFormXObjectWithInheritedResourcesTest.pdf"; String destFile = destinationFolder + "pageCopyAsFormXObjectWithInheritedResourcesTest.pdf"; PdfDocument origPdf = new PdfDocument(new PdfReader(srcFile)); PdfDocument copyPdfX = new PdfDocument(new PdfWriter(destFile).SetSmartMode(true)); PdfDictionary pages = origPdf.GetCatalog().GetPdfObject().GetAsDictionary(PdfName.Pages); if (pages != null) { for (int i = 1; i < origPdf.GetNumberOfPages() + 1; i++) { PdfPage origPage = origPdf.GetPage(i); Rectangle ps = origPage.GetPageSize(); PdfPage page = copyPdfX.AddNewPage(new PageSize(ps)); PdfCanvas canvas = new PdfCanvas(page); PdfFormXObject pageCopy = origPage.CopyAsFormXObject(copyPdfX); canvas.AddXObject(pageCopy, 0, 0); } } copyPdfX.Close(); origPdf.Close(); NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(destFile, cmpFile, destinationFolder)); }
public virtual void TestExcessiveXrefEntriesForCopyXObject() { PdfDocument inputPdf = new PdfDocument(new PdfReader(sourceFolder + "input500.pdf")); PdfDocument outputPdf = new PdfDocument(new PdfWriter(destinationFolder + "output500.pdf")); float scaleX = 595f / 612f; float scaleY = 842f / 792f; for (int i = 1; i <= inputPdf.GetNumberOfPages(); ++i) { PdfPage sourcePage = inputPdf.GetPage(i); PdfFormXObject pageCopy = sourcePage.CopyAsFormXObject(outputPdf); PdfPage page = outputPdf.AddNewPage(PageSize.A4); PdfCanvas outputCanvas = new PdfCanvas(page); outputCanvas.AddXObject(pageCopy, scaleX, 0, 0, scaleY, 0, 0); page.Flush(); } outputPdf.Close(); inputPdf.Close(); NUnit.Framework.Assert.IsNotNull(outputPdf.GetXref()); NUnit.Framework.Assert.AreEqual(500, outputPdf.GetXref().Size() - inputPdf.GetXref().Size()); }