Package com.itextpdf.testutils
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) class
protected class
(package private) class
private class
(package private) class
private static class
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate boolean
private static final String
private String
(package private) List
<PdfDictionary> private String
private String
private int
private String
private final String
private static final String
private double
private boolean
private String
private static final String
private final String
private static final String
private String
(package private) List
<PdfDictionary> private String
private String
private static final Pattern
private static final String
private static final String
private static final String
private static final String
private static final String
private String
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate void
addPagesFromDict
(PdfObject dictRef, List<PdfDictionary> pages, List<RefKey> pagesRef) compare
(String outPdf, String cmpPdf, String outPath, String differenceImagePrefix, Map<Integer, List<Rectangle>> ignoredAreas) private String
private String
compare
(String outPath, String differenceImagePrefix, Map<Integer, List<Rectangle>> ignoredAreas, List<Integer> equalPages) boolean
compareArrays
(PdfArray outArray, PdfArray cmpArray) private boolean
compareArraysExtended
(PdfArray outArray, PdfArray cmpArray, CompareTool.ObjectPath currentPath, CompareTool.CompareResult compareResult) boolean
compareBooleans
(PdfBoolean outBoolean, PdfBoolean cmpBoolean) private boolean
compareBooleansExtended
(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 String
compareByContent
(String outPath, String differenceImagePrefix, Map<Integer, List<Rectangle>> ignoredAreas) boolean
compareContentStreamsByParsing
(PdfObject outObj, PdfObject cmpObj) boolean
compareContentStreamsByParsing
(PdfObject outObj, PdfObject cmpObj, PdfDictionary outResources, PdfDictionary cmpResources) private boolean
compareContentStreamsByParsingExtended
(PdfObject outObj, PdfObject cmpObj, PdfDictionary outResources, PdfDictionary cmpResources, CompareTool.ObjectPath currentPath, CompareTool.CompareResult compareResult) boolean
compareDictionaries
(PdfDictionary outDict, PdfDictionary cmpDict) private boolean
compareDictionariesExtended
(PdfDictionary outDict, PdfDictionary cmpDict, CompareTool.ObjectPath currentPath, CompareTool.CompareResult compareResult) compareDocumentInfo
(String outPdf, String cmpPdf) private boolean
compareInlineImagesExtended
(PdfContentParser outPs, PdfContentParser cmpPs, PdfDictionary outDict, PdfDictionary cmpDict, CompareTool.ObjectPath currentPath, CompareTool.CompareResult compareResult) compareLinks
(String outPdf, String cmpPdf) boolean
compareLiterals
(PdfLiteral outLiteral, PdfLiteral cmpLiteral) private boolean
compareLiteralsExtended
(PdfLiteral outLiteral, PdfLiteral cmpLiteral, CompareTool.ObjectPath currentPath, CompareTool.CompareResult compareResult) boolean
compareNames
(PdfName outName, PdfName cmpName) private boolean
compareNamesExtended
(PdfName outName, PdfName cmpName, CompareTool.ObjectPath currentPath, CompareTool.CompareResult compareResult) boolean
compareNumbers
(PdfNumber outNumber, PdfNumber cmpNumber) private boolean
compareNumbersExtended
(PdfNumber outNumber, PdfNumber cmpNumber, CompareTool.ObjectPath currentPath, CompareTool.CompareResult compareResult) private boolean
compareObjects
(PdfObject outObj, PdfObject cmpObj, CompareTool.ObjectPath currentPath, CompareTool.CompareResult compareResult) boolean
compareStreams
(PRStream outStream, PRStream cmpStream) private boolean
compareStreams
(InputStream is1, InputStream is2) private boolean
compareStreamsExtended
(PRStream outStream, PRStream cmpStream, CompareTool.ObjectPath currentPath, CompareTool.CompareResult compareResult) boolean
compareStrings
(PdfString outString, PdfString cmpString) private boolean
compareStringsExtended
(PdfString outString, PdfString cmpString, CompareTool.ObjectPath currentPath, CompareTool.CompareResult compareResult) compareTagStructures
(String outPdf, String cmpPdf) boolean
compareXmls
(byte[] xml1, byte[] xml2) boolean
compareXmls
(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 void
private boolean
linksAreSame
(PdfAnnotation.PdfImportedLink cmpLink, PdfAnnotation.PdfImportedLink outLink) private void
loadPagesFromReader
(PdfReader reader, List<PdfDictionary> pages, List<RefKey> pagesRef) private int
runGhostscriptAndGetExitCode
(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.void
setGenerateCompareByContentXmlReport
(boolean generateCompareByContentXmlReport) void
setXmlReportName
(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:
IOException
InterruptedException
-
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
-