PDDefaultAppearanceString.java (pdfbox-2.0.23-src) | : | PDDefaultAppearanceString.java (pdfbox-2.0.24-src) | ||
---|---|---|---|---|
skipping to change at line 30 | skipping to change at line 30 | |||
import java.util.ArrayList; | import java.util.ArrayList; | |||
import java.util.Arrays; | import java.util.Arrays; | |||
import java.util.List; | import java.util.List; | |||
import org.apache.pdfbox.contentstream.operator.Operator; | import org.apache.pdfbox.contentstream.operator.Operator; | |||
import org.apache.pdfbox.contentstream.operator.OperatorName; | import org.apache.pdfbox.contentstream.operator.OperatorName; | |||
import org.apache.pdfbox.cos.COSArray; | import org.apache.pdfbox.cos.COSArray; | |||
import org.apache.pdfbox.cos.COSBase; | import org.apache.pdfbox.cos.COSBase; | |||
import org.apache.pdfbox.cos.COSName; | import org.apache.pdfbox.cos.COSName; | |||
import org.apache.pdfbox.cos.COSNumber; | import org.apache.pdfbox.cos.COSNumber; | |||
import org.apache.pdfbox.cos.COSObject; | ||||
import org.apache.pdfbox.cos.COSString; | import org.apache.pdfbox.cos.COSString; | |||
import org.apache.pdfbox.pdfparser.PDFStreamParser; | import org.apache.pdfbox.pdfparser.PDFStreamParser; | |||
import org.apache.pdfbox.pdmodel.PDPageContentStream; | import org.apache.pdfbox.pdmodel.PDPageContentStream; | |||
import org.apache.pdfbox.pdmodel.PDResources; | import org.apache.pdfbox.pdmodel.PDResources; | |||
import org.apache.pdfbox.pdmodel.font.PDFont; | import org.apache.pdfbox.pdmodel.font.PDFont; | |||
import org.apache.pdfbox.pdmodel.graphics.color.PDColor; | import org.apache.pdfbox.pdmodel.graphics.color.PDColor; | |||
import org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace; | import org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace; | |||
import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceCMYK; | import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceCMYK; | |||
import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceGray; | import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceGray; | |||
import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceRGB; | import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceRGB; | |||
skipping to change at line 78 | skipping to change at line 77 | |||
* Constructor for reading an existing DA string. | * Constructor for reading an existing DA string. | |||
* | * | |||
* @param defaultResources DR entry | * @param defaultResources DR entry | |||
* @param defaultAppearance DA entry | * @param defaultAppearance DA entry | |||
* @throws IOException If the DA could not be parsed | * @throws IOException If the DA could not be parsed | |||
*/ | */ | |||
PDDefaultAppearanceString(COSString defaultAppearance, PDResources defaultRe sources) throws IOException | PDDefaultAppearanceString(COSString defaultAppearance, PDResources defaultRe sources) throws IOException | |||
{ | { | |||
if (defaultAppearance == null) | if (defaultAppearance == null) | |||
{ | { | |||
throw new IllegalArgumentException("/DA is a required entry"); | throw new IllegalArgumentException("/DA is a required entry. " | |||
+ "Please set a default appearance first."); | ||||
} | } | |||
if (defaultResources == null) | if (defaultResources == null) | |||
{ | { | |||
throw new IllegalArgumentException("/DR is a required entry"); | throw new IllegalArgumentException("/DR is a required entry"); | |||
} | } | |||
this.defaultResources = defaultResources; | this.defaultResources = defaultResources; | |||
processAppearanceStringOperators(defaultAppearance.getBytes()); | processAppearanceStringOperators(defaultAppearance.getBytes()); | |||
} | } | |||
skipping to change at line 103 | skipping to change at line 103 | |||
* @param content the content to parse. | * @param content the content to parse. | |||
* @throws IOException if there is an error reading or parsing the content s tream. | * @throws IOException if there is an error reading or parsing the content s tream. | |||
*/ | */ | |||
private void processAppearanceStringOperators(byte[] content) throws IOExcep tion | private void processAppearanceStringOperators(byte[] content) throws IOExcep tion | |||
{ | { | |||
List<COSBase> arguments = new ArrayList<COSBase>(); | List<COSBase> arguments = new ArrayList<COSBase>(); | |||
PDFStreamParser parser = new PDFStreamParser(content); | PDFStreamParser parser = new PDFStreamParser(content); | |||
Object token = parser.parseNextToken(); | Object token = parser.parseNextToken(); | |||
while (token != null) | while (token != null) | |||
{ | { | |||
if (token instanceof COSObject) | if (token instanceof Operator) | |||
{ | ||||
arguments.add(((COSObject) token).getObject()); | ||||
} | ||||
else if (token instanceof Operator) | ||||
{ | { | |||
processOperator((Operator) token, arguments); | processOperator((Operator) token, arguments); | |||
arguments = new ArrayList<COSBase>(); | arguments = new ArrayList<COSBase>(); | |||
} | } | |||
else | else | |||
{ | { | |||
arguments.add((COSBase) token); | arguments.add((COSBase) token); | |||
} | } | |||
token = parser.parseNextToken(); | token = parser.parseNextToken(); | |||
} | } | |||
End of changes. 3 change blocks. | ||||
7 lines changed or deleted | 3 lines changed or added |