示例#1
0
        public virtual void NotReuseIndRefForObjStreamInIncrementTest()
        {
            String      inputFile  = sourceFolder + "notReuseIndirectRefForObjectStream.pdf";
            String      outputFile = destinationFolder + "adjustingsInObjStmInIncrement.pdf";
            PdfDocument pdfDoc     = new PdfDocument(new PdfReader(inputFile), new PdfWriter(outputFile).SetCompressionLevel
                                                         (CompressionConstants.NO_COMPRESSION), new StampingProperties().UseAppendMode());
            PdfObject newObj = pdfDoc.GetPage(1).GetPdfObject();

            newObj.SetModified();
            pdfDoc.Close();
            PdfDocument   doc                   = new PdfDocument(new PdfReader(sourceFolder + "adjustingsInObjStmInIncrement.pdf"));
            PdfDictionary objStmDict            = (PdfDictionary)doc.GetPdfObject(8);
            int           expectNumberOfObjects = doc.GetNumberOfPdfObjects();

            //output pdf document should be openable
            NUnit.Framework.Assert.AreEqual(9, expectNumberOfObjects);
            NUnit.Framework.Assert.AreEqual(PdfName.ObjStm, objStmDict.Get(PdfName.Type));
            doc.Close();
        }
示例#2
0
        public virtual void FreeRefReuseWhenAddNewObjTest()
        {
            String      filename = destinationFolder + "freeRefReuseWhenAddNewObj.pdf";
            PdfDocument pdfDoc1  = new PdfDocument(new PdfReader(sourceFolder + "pdfWithRemovedObjInOldVer.pdf"), new PdfWriter
                                                       (filename).SetCompressionLevel(CompressionConstants.NO_COMPRESSION), new StampingProperties().UseAppendMode
                                                       ());

            pdfDoc1.GetCatalog().GetPdfObject().Put(new PdfName("CustomKey"), new PdfArray().MakeIndirect(pdfDoc1));
            PdfObject newObj = pdfDoc1.GetCatalog().GetPdfObject();

            newObj.SetModified();
            int expectObjNumber = pdfDoc1.GetCatalog().GetPdfObject().Get(new PdfName("CustomKey")).GetIndirectReference
                                      ().GetObjNumber();
            int expectGenNumber = pdfDoc1.GetCatalog().GetPdfObject().Get(new PdfName("CustomKey")).GetIndirectReference
                                      ().GetGenNumber();
            PdfXrefTable xref = pdfDoc1.GetXref();

            NUnit.Framework.Assert.AreEqual(8, expectObjNumber);
            NUnit.Framework.Assert.AreEqual(0, expectGenNumber);
            NUnit.Framework.Assert.IsTrue(xref.Get(5).IsFree());
            pdfDoc1.Close();
        }