Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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());
        }