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(); }
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(); }