예제 #1
0
        protected override void ComparePdf(String outPath, String dest, String cmp)
        {
            CompareTool compareTool = new CompareTool();

            AddError(compareTool.CompareByContent(dest, cmp, outPath, "diff_"));
            AddError(compareTool.CompareDocumentInfo(dest, cmp));
            // only DEST1 pdf will be checked, check additionally DEST2
            dest = GetStringField(sampleClass, "DEST2");
            cmp  = GetCmpPdf(dest);
            AddError(compareTool.CompareByContent(dest, cmp, outPath, "diff_"));
            AddError(compareTool.CompareDocumentInfo(dest, cmp));
        }
예제 #2
0
        /// <summary>
        /// Compares two PDF files using iText's CompareTool.
        /// </summary>
        /// <param name="dest">the PDF that resulted from the test</param>
        /// <param name="cmp">the reference PDF</param>
        protected void ComparePdf(string dest, string cmp)
        {
            if (string.IsNullOrEmpty(cmp))
            {
                return;
            }
            CompareTool compareTool = new CompareTool();
            string      outPath     = "./target/" + new DirectoryInfo(dest).Parent;

            new DirectoryInfo(outPath).Create();
            if (compareRenders)
            {
                AddError(compareTool.Compare(dest, cmp, outPath, differenceImagePrefix));
                AddError(compareTool.CompareLinks(dest, cmp));
            }
            else
            {
                AddError(compareTool.CompareByContent(dest, cmp, outPath, differenceImagePrefix));
            }
            AddError(compareTool.CompareDocumentInfo(dest, cmp));


            if (errorMessage != null)
            {
                Assert.Fail(errorMessage);
            }
        }
예제 #3
0
        protected override void ComparePdf(string outPath, string dest, string cmp)
        {
            CompareTool compareTool = new CompareTool();

            AddError(compareTool.CompareByContent(dest, cmp, outPath, "diff_"));
            AddError(compareTool.CompareDocumentInfo(dest, cmp));
        }
        protected override void ComparePdf(String outPath, String dest, String cmp)
        {
            CompareTool compareTool = new CompareTool();

            byte[] ownerPass = GetBytes("abcdefg");
            compareTool.EnableEncryptionCompare();
            AddError(compareTool.CompareByContent(dest, cmp, outPath, "diff_", ownerPass, ownerPass));
            AddError(compareTool.CompareDocumentInfo(dest, cmp, ownerPass, ownerPass));
        }
예제 #5
0
        public virtual void Meta03Test()
        {
            HtmlConverter.ConvertToPdf(new FileInfo(sourceFolder + "metaTest03.html"), new FileInfo(destinationFolder
                                                                                                    + "metaTest03.pdf"));
            CompareTool compareTool = new CompareTool();

            NUnit.Framework.Assert.IsNull(compareTool.CompareDocumentInfo(destinationFolder + "metaTest03.pdf", sourceFolder
                                                                          + "cmp_metaTest03.pdf"));
            NUnit.Framework.Assert.IsNull(compareTool.CompareByContent(destinationFolder + "metaTest03.pdf", sourceFolder
                                                                       + "cmp_metaTest03.pdf", destinationFolder, "diff03_"));
        }
예제 #6
0
        protected override void ComparePdf(String outPath, String dest, String cmp)
        {
            CompareTool compareTool = new CompareTool();

            compareTool.EnableEncryptionCompare();

            AddError(compareTool.CompareByContent(dest, cmp, outPath, "diff_",
                                                  Encoding.UTF8.GetBytes("World"), Encoding.UTF8.GetBytes("World")));
            AddError(compareTool.CompareDocumentInfo(dest, cmp,
                                                     Encoding.UTF8.GetBytes("World"), Encoding.UTF8.GetBytes("World")));
        }
예제 #7
0
        protected override void ComparePdf(string outPath, string dest, string cmp)
        {
            CompareTool compareTool = new CompareTool();

            foreach (String fileName in MergeAndAddFont.DEST_NAMES.Values)
            {
                String currentDest = dest + fileName;
                String currentCmp  = cmp + "cmp_" + fileName;

                AddError(compareTool.CompareByContent(currentDest, currentCmp, outPath, "diff_"));
                AddError(compareTool.CompareDocumentInfo(currentDest, currentCmp));
            }
        }
        protected override void ComparePdf(string outPath, string dest, string cmp)
        {
            CompareTool compareTool = new CompareTool();

            for (int i = 1; i < 8; i++)
            {
                String currentDest = String.Format(dest, i);
                String currentCmp  = String.Format(cmp, i);

                AddError(compareTool.CompareByContent(currentDest, currentCmp, outPath, "diff_"));
                AddError(compareTool.CompareDocumentInfo(currentDest, currentCmp));
            }
        }
예제 #9
0
        public virtual void Meta01Test()
        {
            HtmlConverter.ConvertToPdf(new FileInfo(sourceFolder + "metaTest01.html"), new FileInfo(destinationFolder
                                                                                                    + "metaTest01.pdf"));
            PdfDocumentInfo pdfDocInfo = new PdfDocument(new PdfReader(destinationFolder + "metaTest01.pdf")).GetDocumentInfo
                                             ();
            CompareTool compareTool = new CompareTool();

            NUnit.Framework.Assert.IsNull(compareTool.CompareDocumentInfo(destinationFolder + "metaTest01.pdf", sourceFolder
                                                                          + "cmp_metaTest01.pdf"));
            NUnit.Framework.Assert.IsNull(compareTool.CompareByContent(destinationFolder + "metaTest01.pdf", sourceFolder
                                                                       + "cmp_metaTest01.pdf", destinationFolder, "diff01_"));
            NUnit.Framework.Assert.AreEqual(pdfDocInfo.GetMoreInfo("test"), "the test content");
        }
예제 #10
0
        protected override void ComparePdf(String outPath, String dest, String cmp)
        {
            CompareTool            compareTool = new CompareTool();
            AsymmetricKeyParameter privateKey  = GetPrivateKey();

            compareTool.GetOutReaderProperties().SetPublicKeySecurityParams(
                GetPublicCertificate(EncryptWithCertificate.PUBLIC), privateKey);
            compareTool.GetCmpReaderProperties().SetPublicKeySecurityParams(
                GetPublicCertificate(EncryptWithCertificate.PUBLIC), privateKey);
            compareTool.EnableEncryptionCompare();

            AddError(compareTool.CompareByContent(dest, cmp, outPath, "diff_"));
            AddError(compareTool.CompareDocumentInfo(dest, cmp));
        }
예제 #11
0
        public virtual void DocumentInfoTransformPdf17ToPdf20()
        {
            String      inputFile = sourceFolder + "metadata_pdf.pdf";
            String      outFile   = destinationFolder + "metadata_pdf_20.pdf";
            String      cmpFile   = sourceFolder + "cmp_metadata_pdf_20.pdf";
            PdfDocument document  = new PdfDocument(new PdfReader(inputFile), new PdfWriter(outFile, new WriterProperties
                                                                                                ().SetPdfVersion(PdfVersion.PDF_2_0)));

            document.Close();
            CompareTool ct = new CompareTool();

            NUnit.Framework.Assert.IsNull(ct.CompareByContent(outFile, cmpFile, destinationFolder, "diff_"));
            NUnit.Framework.Assert.IsNull(ct.CompareDocumentInfo(outFile, cmpFile));
            NUnit.Framework.Assert.IsNull(ct.CompareXmp(outFile, cmpFile, true));
        }
예제 #12
0
        public virtual void DocumentInfoCreatePdf20()
        {
            String      outFile  = destinationFolder + "test01.pdf";
            String      cmpFile  = sourceFolder + "cmp_test01.pdf";
            PdfDocument document = new PdfDocument(new PdfWriter(outFile, new WriterProperties().SetPdfVersion(PdfVersion
                                                                                                               .PDF_2_0)));

            document.AddNewPage();
            document.GetDocumentInfo().SetAuthor("Alexey");
            document.Close();
            CompareTool ct = new CompareTool();

            NUnit.Framework.Assert.IsNull(ct.CompareByContent(outFile, cmpFile, destinationFolder, "diff_"));
            NUnit.Framework.Assert.IsNull(ct.CompareDocumentInfo(outFile, cmpFile));
            NUnit.Framework.Assert.IsNull(ct.CompareXmp(outFile, cmpFile, true));
        }
예제 #13
0
        private void RunCustomXmpTest(String name, String xmp)
        {
            String      outPath = destinationFolder + name + ".pdf";
            String      cmpPath = sourceFolder + "cmp_" + name + ".pdf";
            PdfDocument pdfDoc  = new PdfDocument(new PdfWriter(outPath));
            PdfPage     page    = pdfDoc.AddNewPage();

            page.Flush();
            pdfDoc.SetXmpMetadata(xmp.GetBytes(iText.IO.Util.EncodingUtil.ISO_8859_1));
            pdfDoc.Close();
            CompareTool compareTool = new CompareTool();

            NUnit.Framework.Assert.IsNull(compareTool.CompareByContent(outPath, cmpPath, destinationFolder, "diff_" +
                                                                       name + "_"));
            NUnit.Framework.Assert.IsNull(compareTool.CompareDocumentInfo(outPath, cmpPath));
        }
예제 #14
0
        public virtual void ChangeMetadataInAppendMode()
        {
            String      inputFile = sourceFolder + "cmp_metadata_pdf_20.pdf";
            String      outFile   = destinationFolder + "metadata_pdf_20_changed_append.pdf";
            String      cmpFile   = sourceFolder + "cmp_metadata_pdf_20_changed_append.pdf";
            PdfDocument document  = new PdfDocument(new PdfReader(inputFile), new PdfWriter(outFile), new StampingProperties
                                                        ().UseAppendMode());

            document.GetDocumentInfo().SetAuthor("Alexey Subach");
            document.Close();
            CompareTool ct = new CompareTool();

            NUnit.Framework.Assert.IsNull(ct.CompareByContent(outFile, cmpFile, destinationFolder, "diff_"));
            NUnit.Framework.Assert.IsNull(ct.CompareDocumentInfo(outFile, cmpFile));
            NUnit.Framework.Assert.IsNull(ct.CompareXmp(outFile, cmpFile, true));
        }
예제 #15
0
        protected override void ComparePdf(String outPath, String dest, String cmp)
        {
            CompareTool compareTool = new CompareTool();

            for (int i = 0; i < PdfHtmlResponsiveDesign.pageSizes.Length; i++)
            {
                float  width       = CssDimensionParsingUtils.ParseAbsoluteLength(PdfHtmlResponsiveDesign.pageSizes[i].GetWidth().ToString());
                String currentDest = dest.Replace("<filename>",
                                                  "responsive_" + width.ToString("0.0", CultureInfo.InvariantCulture) + ".pdf");
                String currentCmp = cmp.Replace("<filename>",
                                                "responsive_" + width.ToString("0.0", CultureInfo.InvariantCulture) + ".pdf");

                AddError(compareTool.CompareByContent(currentDest, currentCmp, outPath, "diff_"));
                AddError(compareTool.CompareDocumentInfo(currentDest, currentCmp));
            }
        }
예제 #16
0
        protected override void ComparePdf(string outPath, string dest, string cmp)
        {
            CompareTool compareTool = new CompareTool();

            String[] names = GetDestNames(sampleClass);

            foreach (String fileName in names)
            {
                String currentDest = dest + fileName;
                String temp        = cmp + fileName;
                int    i           = temp.LastIndexOf("/");
                String currentCmp  = temp.Substring(0, i + 1) + "cmp_" + temp.Substring(i + 1);

                AddError(compareTool.CompareByContent(currentDest, currentCmp, outPath, "diff_"));
                AddError(compareTool.CompareDocumentInfo(currentDest, currentCmp));
            }
        }
예제 #17
0
        public virtual void SimpleStampingMetadataLeaveUnchanged()
        {
            String      inputFile = sourceFolder + "cmp_metadata_pdf_20_changed_append.pdf";
            String      outFile   = destinationFolder + "metadata_pdf_20_unchanged_stamper.pdf";
            String      cmpFile   = sourceFolder + "cmp_metadata_pdf_20_changed_append.pdf";
            PdfDocument document  = new PdfDocument(new PdfReader(inputFile), new PdfWriter(outFile), new StampingProperties
                                                        ());
            String author = document.GetDocumentInfo().GetAuthor();

            document.Close();
            NUnit.Framework.Assert.AreEqual("Bruno Lowagie; Alexey Subach", author, "Author");
            CompareTool ct = new CompareTool();

            NUnit.Framework.Assert.IsNull(ct.CompareByContent(outFile, cmpFile, destinationFolder, "diff_"));
            NUnit.Framework.Assert.IsNull(ct.CompareDocumentInfo(outFile, cmpFile));
            NUnit.Framework.Assert.IsNull(ct.CompareXmp(outFile, cmpFile, true));
        }
예제 #18
0
        public virtual void KeywordsInfoTestPdfA2b()
        {
            String          outFile      = destinationFolder + "keywordsInfoTestPdfA2b.pdf";
            String          cmpFile      = cmpFolder + "cmp_keywordsInfoTestPdfA2b.pdf";
            Stream          @is          = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read);
            PdfOutputIntent outputIntent = new PdfOutputIntent("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1"
                                                               , @is);
            PdfADocument doc = new PdfADocument(new PdfWriter(outFile), PdfAConformanceLevel.PDF_A_2B, outputIntent);

            doc.AddNewPage();
            doc.GetDocumentInfo().SetKeywords("key1, key2 , key3;key4,key5");
            doc.Close();
            CompareTool ct = new CompareTool();

            NUnit.Framework.Assert.IsNull(ct.CompareByContent(outFile, cmpFile, destinationFolder));
            NUnit.Framework.Assert.IsNull(ct.CompareDocumentInfo(outFile, cmpFile));
            NUnit.Framework.Assert.IsNull(ct.CompareXmp(outFile, cmpFile, true));
        }
예제 #19
0
        protected override void ComparePdf(string outPath, string dest, string cmp)
        {
            CompareTool compareTool = new CompareTool();

            for (int i = 1; i <= 3; i++)
            {
                String currentDest = String.Format(dest, i);
                String currentCmp  = String.Format(cmp, i);

                Rectangle         ignoredArea = new Rectangle(30, 700, 120, 18);
                IList <Rectangle> rectangles  = JavaUtil.ArraysAsList(ignoredArea);
                Dictionary <int, IList <Rectangle> > ignoredAreasMap = new Dictionary <int, IList <Rectangle> >();
                ignoredAreasMap.Add(1, rectangles);
                AddError(compareTool.CompareVisually(currentDest, currentCmp, outPath, "diff_",
                                                     ignoredAreasMap));
                AddError(compareTool.CompareDocumentInfo(currentDest, currentCmp));
            }
        }
예제 #20
0
        public virtual void Meta02Test()
        {
            // In this test we also check that it's not possible to override description name content
            // (which iText converts to pdf's Subject content) with Subject name content
            HtmlConverter.ConvertToPdf(new FileInfo(sourceFolder + "metaTest02.html"), new FileInfo(destinationFolder
                                                                                                    + "metaTest02.pdf"));
            PdfDocumentInfo pdfDocInfo = new PdfDocument(new PdfReader(destinationFolder + "metaTest02.pdf")).GetDocumentInfo
                                             ();
            CompareTool compareTool = new CompareTool();

            NUnit.Framework.Assert.IsNull(compareTool.CompareDocumentInfo(destinationFolder + "metaTest02.pdf", sourceFolder
                                                                          + "cmp_metaTest02.pdf"));
            NUnit.Framework.Assert.IsNull(compareTool.CompareByContent(destinationFolder + "metaTest02.pdf", sourceFolder
                                                                       + "cmp_metaTest02.pdf", destinationFolder, "diff02_"));
            NUnit.Framework.Assert.AreEqual(pdfDocInfo.GetAuthor(), "Bruno Lowagie");
            NUnit.Framework.Assert.AreEqual(pdfDocInfo.GetKeywords(), "metadata, keywords, test");
            NUnit.Framework.Assert.AreEqual(pdfDocInfo.GetSubject(), "This is the description of the page");
            NUnit.Framework.Assert.AreEqual(pdfDocInfo.GetMoreInfo("generator"), "Eugenerator Onegenerator");
            NUnit.Framework.Assert.AreEqual(pdfDocInfo.GetMoreInfo("subject"), "Trying to break iText and write pdf's Subject with subject instead of description name"
                                            );
        }
예제 #21
0
        protected override void ComparePdf(string outPath, string dest, string cmp)
        {
            CompareTool compareTool = new CompareTool();

            if (xmlCompareList.Contains(sampleClass.FullName))
            {
                if (!compareTool.CompareXmls(dest, cmp))
                {
                    AddError("The XML structures are different.");
                }
            }
            else if (txtCompareList.Contains(sampleClass.FullName))
            {
                AddError(CompareTxt(dest, cmp));
            }
            else if (renderCompareList.Contains(sampleClass.FullName))
            {
                AddError(compareTool.CompareVisually(dest, cmp, outPath, "diff_"));
                AddError(compareTool.CompareLinkAnnotations(dest, cmp));
                AddError(compareTool.CompareDocumentInfo(dest, cmp));
            }
            else if (ignoredClassesMap.Keys.Contains(sampleClass.FullName))
            {
                AddError(compareTool.CompareVisually(dest, cmp, outPath, "diff_",
                                                     ignoredClassesMap[sampleClass.FullName]));
            }
            else
            {
                AddError(compareTool.CompareByContent(dest, cmp, outPath, "diff_"));
            }

            if (veraPdfValidateList.Contains(sampleClass.FullName))
            {
                AddError(new VeraPdfValidator().Validate(dest));
            }
        }
예제 #22
0
        /// <summary>
        /// Compares two PDF files using iText's CompareTool.
        /// </summary>
        /// <param name="dest">the PDF that resulted from the test</param>
        /// <param name="cmp">the reference PDF</param>
        protected void ComparePdf(string dest, string cmp)
        {
            if (string.IsNullOrEmpty(cmp)) 
                return;
            CompareTool compareTool = new CompareTool();
            string outPath = "./target/" + new DirectoryInfo(dest).Parent; 
            new DirectoryInfo(outPath).Create();
            if (compareRenders)
            {
                AddError(compareTool.Compare(dest, cmp, outPath, differenceImagePrefix));
                AddError(compareTool.CompareLinks(dest, cmp));
            }
            else
            {
                AddError(compareTool.CompareByContent(dest, cmp, outPath, differenceImagePrefix));
            }
            AddError(compareTool.CompareDocumentInfo(dest, cmp));


            if (errorMessage != null) 
                Assert.Fail(errorMessage);
        }