Class CompareTool
java.lang.Object
com.itextpdf.testutils.CompareTool
Helper class for tests: uses ghostscript to compare PDFs at a pixel level.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) class(package private) class(package private) classprotected class(package private) classprivate class(package private) classprivate static class -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate booleanprivate static final Stringprivate String(package private) List<PdfDictionary> private Stringprivate Stringprivate intprivate Stringprivate final Stringprivate static final Stringprivate doubleprivate booleanprivate Stringprivate static final Stringprivate final Stringprivate static final Stringprivate String(package private) List<PdfDictionary> private Stringprivate Stringprivate static final Patternprivate static final Stringprivate static final Stringprivate static final Stringprivate static final Stringprivate static final Stringprivate String -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate voidaddPagesFromDict(PdfObject dictRef, List<PdfDictionary> pages, List<RefKey> pagesRef) compare(String outPdf, String cmpPdf, String outPath, String differenceImagePrefix, Map<Integer, List<Rectangle>> ignoredAreas) private Stringprivate Stringcompare(String outPath, String differenceImagePrefix, Map<Integer, List<Rectangle>> ignoredAreas, List<Integer> equalPages) booleancompareArrays(PdfArray outArray, PdfArray cmpArray) private booleancompareArraysExtended(PdfArray outArray, PdfArray cmpArray, CompareTool.ObjectPath currentPath, CompareTool.CompareResult compareResult) booleancompareBooleans(PdfBoolean outBoolean, PdfBoolean cmpBoolean) private booleancompareBooleansExtended(PdfBoolean outBoolean, PdfBoolean cmpBoolean, CompareTool.ObjectPath currentPath, CompareTool.CompareResult compareResult) compareByContent(String outPdf, String cmpPdf, String outPath, String differenceImagePrefix) compareByContent(String outPdf, String cmpPdf, String outPath, String differenceImagePrefix, Map<Integer, List<Rectangle>> ignoredAreas) protected StringcompareByContent(String outPath, String differenceImagePrefix, Map<Integer, List<Rectangle>> ignoredAreas) booleancompareContentStreamsByParsing(PdfObject outObj, PdfObject cmpObj) booleancompareContentStreamsByParsing(PdfObject outObj, PdfObject cmpObj, PdfDictionary outResources, PdfDictionary cmpResources) private booleancompareContentStreamsByParsingExtended(PdfObject outObj, PdfObject cmpObj, PdfDictionary outResources, PdfDictionary cmpResources, CompareTool.ObjectPath currentPath, CompareTool.CompareResult compareResult) booleancompareDictionaries(PdfDictionary outDict, PdfDictionary cmpDict) private booleancompareDictionariesExtended(PdfDictionary outDict, PdfDictionary cmpDict, CompareTool.ObjectPath currentPath, CompareTool.CompareResult compareResult) compareDocumentInfo(String outPdf, String cmpPdf) private booleancompareInlineImagesExtended(PdfContentParser outPs, PdfContentParser cmpPs, PdfDictionary outDict, PdfDictionary cmpDict, CompareTool.ObjectPath currentPath, CompareTool.CompareResult compareResult) compareLinks(String outPdf, String cmpPdf) booleancompareLiterals(PdfLiteral outLiteral, PdfLiteral cmpLiteral) private booleancompareLiteralsExtended(PdfLiteral outLiteral, PdfLiteral cmpLiteral, CompareTool.ObjectPath currentPath, CompareTool.CompareResult compareResult) booleancompareNames(PdfName outName, PdfName cmpName) private booleancompareNamesExtended(PdfName outName, PdfName cmpName, CompareTool.ObjectPath currentPath, CompareTool.CompareResult compareResult) booleancompareNumbers(PdfNumber outNumber, PdfNumber cmpNumber) private booleancompareNumbersExtended(PdfNumber outNumber, PdfNumber cmpNumber, CompareTool.ObjectPath currentPath, CompareTool.CompareResult compareResult) private booleancompareObjects(PdfObject outObj, PdfObject cmpObj, CompareTool.ObjectPath currentPath, CompareTool.CompareResult compareResult) booleancompareStreams(PRStream outStream, PRStream cmpStream) private booleancompareStreams(InputStream is1, InputStream is2) private booleancompareStreamsExtended(PRStream outStream, PRStream cmpStream, CompareTool.ObjectPath currentPath, CompareTool.CompareResult compareResult) booleancompareStrings(PdfString outString, PdfString cmpString) private booleancompareStringsExtended(PdfString outString, PdfString cmpString, CompareTool.ObjectPath currentPath, CompareTool.CompareResult compareResult) compareTagStructures(String outPdf, String cmpPdf) booleancompareXmls(byte[] xml1, byte[] xml2) booleancompareXmls(String xml1, String xml2) compareXmp(byte[] xmp1, byte[] xmp2) compareXmp(byte[] xmp1, byte[] xmp2, boolean ignoreDateAndProducerProperties) compareXmp(String outPdf, String cmpPdf) compareXmp(String outPdf, String cmpPdf, boolean ignoreDateAndProducerProperties) private String[]convertInfo(HashMap<String, String> info) private voidprivate booleanlinksAreSame(PdfAnnotation.PdfImportedLink cmpLink, PdfAnnotation.PdfImportedLink outLink) private voidloadPagesFromReader(PdfReader reader, List<PdfDictionary> pages, List<RefKey> pagesRef) private intrunGhostscriptAndGetExitCode(String replacementPdf, String replacementImagesDirectory) setCompareByContentErrorsLimit(int compareByContentMaxErrorCount) Sets the maximum errors count which will be returned as the result of the comparison.setFloatAbsoluteError(float error) Sets the absolute error parameter which will be used in floating point numbers comparison.setFloatRelativeError(float error) Sets the relative error parameter which will be used in floating point numbers comparison.voidsetGenerateCompareByContentXmlReport(boolean generateCompareByContentXmlReport) voidsetXmlReportName(String xmlReportName)
-
Field Details
-
gsExec
-
compareExec
-
renderedImageExtension
- See Also:
-
pageNumberPattern
- See Also:
-
pageListRegexp
-
tempFilePrefix
- See Also:
-
gsParams
- See Also:
-
compareParams
- See Also:
-
cannotOpenTargetDirectory
- See Also:
-
gsFailed
- See Also:
-
unexpectedNumberOfPages
- See Also:
-
differentPages
- See Also:
-
undefinedGsPath
- See Also:
-
ignoredAreasPrefix
- See Also:
-
cmpPdf
-
cmpPdfName
-
cmpImage
-
outPdf
-
outPdfName
-
outImage
-
outPages
List<PdfDictionary> outPages -
outPagesRef
-
cmpPages
List<PdfDictionary> cmpPages -
cmpPagesRef
-
compareByContentErrorsLimit
private int compareByContentErrorsLimit -
generateCompareByContentXmlReport
private boolean generateCompareByContentXmlReport -
xmlReportName
-
floatComparisonError
private double floatComparisonError -
absoluteError
private boolean absoluteError
-
-
Constructor Details
-
CompareTool
public CompareTool()
-
-
Method Details
-
compare
private String compare(String outPath, String differenceImagePrefix, Map<Integer, List<Rectangle>> ignoredAreas) throws IOException, InterruptedException, DocumentException -
compare
private String compare(String outPath, String differenceImagePrefix, Map<Integer, List<Rectangle>> ignoredAreas, List<Integer> equalPages) throws IOException, InterruptedException, DocumentException -
runGhostscriptAndGetExitCode
private int runGhostscriptAndGetExitCode(String replacementPdf, String replacementImagesDirectory) throws IOException, InterruptedException - Throws:
IOExceptionInterruptedException
-
compare
public String compare(String outPdf, String cmpPdf, String outPath, String differenceImagePrefix, Map<Integer, List<Rectangle>> ignoredAreas) throws IOException, InterruptedException, DocumentException -
compare
public String compare(String outPdf, String cmpPdf, String outPath, String differenceImagePrefix) throws IOException, InterruptedException, DocumentException -
setCompareByContentErrorsLimit
Sets the maximum errors count which will be returned as the result of the comparison.- Parameters:
compareByContentMaxErrorCount- the errors count.- Returns:
- Returns this.
-
setGenerateCompareByContentXmlReport
public void setGenerateCompareByContentXmlReport(boolean generateCompareByContentXmlReport) -
setFloatAbsoluteError
Sets the absolute error parameter which will be used in floating point numbers comparison.- Parameters:
error- the epsilon new value.- Returns:
- Returns this.
-
setFloatRelativeError
Sets the relative error parameter which will be used in floating point numbers comparison.- Parameters:
error- the epsilon new value.- Returns:
- Returns this.
-
getXmlReportName
-
setXmlReportName
-
compareByContent
protected String compareByContent(String outPath, String differenceImagePrefix, Map<Integer, List<Rectangle>> ignoredAreas) throws DocumentException, InterruptedException, IOException -
compareByContent
public String compareByContent(String outPdf, String cmpPdf, String outPath, String differenceImagePrefix, Map<Integer, List<Rectangle>> ignoredAreas) throws DocumentException, InterruptedException, IOException -
compareByContent
public String compareByContent(String outPdf, String cmpPdf, String outPath, String differenceImagePrefix) throws DocumentException, InterruptedException, IOException -
loadPagesFromReader
private void loadPagesFromReader(PdfReader reader, List<PdfDictionary> pages, List<RefKey> pagesRef) -
addPagesFromDict
-
compareObjects
private boolean compareObjects(PdfObject outObj, PdfObject cmpObj, CompareTool.ObjectPath currentPath, CompareTool.CompareResult compareResult) throws IOException - Throws:
IOException
-
compareDictionaries
- Throws:
IOException
-
compareDictionariesExtended
private boolean compareDictionariesExtended(PdfDictionary outDict, PdfDictionary cmpDict, CompareTool.ObjectPath currentPath, CompareTool.CompareResult compareResult) throws IOException - Throws:
IOException
-
compareContentStreamsByParsing
public boolean compareContentStreamsByParsing(PdfObject outObj, PdfObject cmpObj) throws IOException - Throws:
IOException
-
compareContentStreamsByParsing
public boolean compareContentStreamsByParsing(PdfObject outObj, PdfObject cmpObj, PdfDictionary outResources, PdfDictionary cmpResources) throws IOException - Throws:
IOException
-
compareContentStreamsByParsingExtended
private boolean compareContentStreamsByParsingExtended(PdfObject outObj, PdfObject cmpObj, PdfDictionary outResources, PdfDictionary cmpResources, CompareTool.ObjectPath currentPath, CompareTool.CompareResult compareResult) throws IOException - Throws:
IOException
-
compareInlineImagesExtended
private boolean compareInlineImagesExtended(PdfContentParser outPs, PdfContentParser cmpPs, PdfDictionary outDict, PdfDictionary cmpDict, CompareTool.ObjectPath currentPath, CompareTool.CompareResult compareResult) throws IOException - Throws:
IOException
-
compareStreams
- Throws:
IOException
-
compareStreamsExtended
private boolean compareStreamsExtended(PRStream outStream, PRStream cmpStream, CompareTool.ObjectPath currentPath, CompareTool.CompareResult compareResult) throws IOException - Throws:
IOException
-
compareArrays
- Throws:
IOException
-
compareArraysExtended
private boolean compareArraysExtended(PdfArray outArray, PdfArray cmpArray, CompareTool.ObjectPath currentPath, CompareTool.CompareResult compareResult) throws IOException - Throws:
IOException
-
compareNames
-
compareNamesExtended
private boolean compareNamesExtended(PdfName outName, PdfName cmpName, CompareTool.ObjectPath currentPath, CompareTool.CompareResult compareResult) -
compareNumbers
-
compareNumbersExtended
private boolean compareNumbersExtended(PdfNumber outNumber, PdfNumber cmpNumber, CompareTool.ObjectPath currentPath, CompareTool.CompareResult compareResult) -
compareStrings
-
compareStringsExtended
private boolean compareStringsExtended(PdfString outString, PdfString cmpString, CompareTool.ObjectPath currentPath, CompareTool.CompareResult compareResult) -
compareLiterals
-
compareLiteralsExtended
private boolean compareLiteralsExtended(PdfLiteral outLiteral, PdfLiteral cmpLiteral, CompareTool.ObjectPath currentPath, CompareTool.CompareResult compareResult) -
compareBooleans
-
compareBooleansExtended
private boolean compareBooleansExtended(PdfBoolean outBoolean, PdfBoolean cmpBoolean, CompareTool.ObjectPath currentPath, CompareTool.CompareResult compareResult) -
compareXmp
-
compareXmp
-
compareXmp
-
compareXmp
-
compareXmls
public boolean compareXmls(byte[] xml1, byte[] xml2) throws ParserConfigurationException, SAXException, IOException -
compareDocumentInfo
- Throws:
IOException
-
linksAreSame
private boolean linksAreSame(PdfAnnotation.PdfImportedLink cmpLink, PdfAnnotation.PdfImportedLink outLink) -
compareLinks
- Throws:
IOException
-
compareTagStructures
public String compareTagStructures(String outPdf, String cmpPdf) throws IOException, ParserConfigurationException, SAXException -
convertInfo
-
compareXmls
public boolean compareXmls(String xml1, String xml2) throws ParserConfigurationException, SAXException, IOException -
init
-
compareStreams
- Throws:
IOException
-