"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/handlers/PDFreeTextAppearanceHandler.java" between
pdfbox-2.0.23-src.zip and pdfbox-2.0.24-src.zip

About: Apache PDFBox is a Java PDF library tool that allows creation of new PDF documents, manipulation of existing documents and the ability to extract content from documents.

PDFreeTextAppearanceHandler.java  (pdfbox-2.0.23-src):PDFreeTextAppearanceHandler.java  (pdfbox-2.0.24-src)
skipping to change at line 30 skipping to change at line 30
import java.util.regex.Pattern; import java.util.regex.Pattern;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.apache.fontbox.util.Charsets; import org.apache.fontbox.util.Charsets;
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.io.IOUtils; import org.apache.pdfbox.io.IOUtils;
import org.apache.pdfbox.pdfparser.PDFStreamParser; import org.apache.pdfbox.pdfparser.PDFStreamParser;
import org.apache.pdfbox.pdmodel.PDAppearanceContentStream; import org.apache.pdfbox.pdmodel.PDAppearanceContentStream;
import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDResources; import org.apache.pdfbox.pdmodel.PDResources;
import org.apache.pdfbox.pdmodel.common.PDRectangle; import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.apache.pdfbox.pdmodel.font.PDFont; import org.apache.pdfbox.pdmodel.font.PDFont;
import org.apache.pdfbox.pdmodel.font.PDType1Font; import org.apache.pdfbox.pdmodel.font.PDType1Font;
import org.apache.pdfbox.pdmodel.graphics.color.PDColor; import org.apache.pdfbox.pdmodel.graphics.color.PDColor;
import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceCMYK; import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceCMYK;
skipping to change at line 85 skipping to change at line 84
{ {
generateNormalAppearance(); generateNormalAppearance();
generateRolloverAppearance(); generateRolloverAppearance();
generateDownAppearance(); generateDownAppearance();
} }
@Override @Override
public void generateNormalAppearance() public void generateNormalAppearance()
{ {
PDAnnotationMarkup annotation = (PDAnnotationMarkup) getAnnotation(); PDAnnotationMarkup annotation = (PDAnnotationMarkup) getAnnotation();
float[] pathsArray = new float[0]; float[] pathsArray;
if (PDAnnotationMarkup.IT_FREE_TEXT_CALLOUT.equals(annotation.getIntent( ))) if (PDAnnotationMarkup.IT_FREE_TEXT_CALLOUT.equals(annotation.getIntent( )))
{ {
pathsArray = annotation.getCallout(); pathsArray = annotation.getCallout();
if (pathsArray == null || pathsArray.length != 4 && pathsArray.lengt h != 6) if (pathsArray == null || pathsArray.length != 4 && pathsArray.lengt h != 6)
{ {
pathsArray = new float[0]; pathsArray = new float[0];
} }
} }
else
{
pathsArray = new float[0];
}
AnnotationBorder ab = AnnotationBorder.getAnnotationBorder(annotation, a nnotation.getBorderStyle()); AnnotationBorder ab = AnnotationBorder.getAnnotationBorder(annotation, a nnotation.getBorderStyle());
PDAppearanceContentStream cs = null; PDAppearanceContentStream cs = null;
try try
{ {
cs = getNormalAppearanceAsContentStream(true); cs = getNormalAppearanceAsContentStream(true);
// The fill color is the /C entry, there is no /IC entry defined // The fill color is the /C entry, there is no /IC entry defined
boolean hasBackground = cs.setNonStrokingColorOnDemand(annotation.ge tColor()); boolean hasBackground = cs.setNonStrokingColorOnDemand(annotation.ge tColor());
skipping to change at line 394 skipping to change at line 397
try try
{ {
// not sure if charset is correct, but we only need numbers and simp le characters // not sure if charset is correct, but we only need numbers and simp le characters
PDFStreamParser parser = new PDFStreamParser(defaultAppearance.getBy tes(Charsets.US_ASCII)); PDFStreamParser parser = new PDFStreamParser(defaultAppearance.getBy tes(Charsets.US_ASCII));
COSArray arguments = new COSArray(); COSArray arguments = new COSArray();
COSArray colors = null; COSArray colors = null;
Operator graphicOp = null; Operator graphicOp = null;
for (Object token = parser.parseNextToken(); token != null; token = parser.parseNextToken()) for (Object token = parser.parseNextToken(); token != null; token = parser.parseNextToken())
{ {
if (token instanceof COSObject) if (token instanceof Operator)
{
arguments.add(((COSObject) token).getObject());
}
else if (token instanceof Operator)
{ {
Operator op = (Operator) token; Operator op = (Operator) token;
String name = op.getName(); String name = op.getName();
if (OperatorName.NON_STROKING_GRAY.equals(name) || if (OperatorName.NON_STROKING_GRAY.equals(name) ||
OperatorName.NON_STROKING_RGB.equals(name) || OperatorName.NON_STROKING_RGB.equals(name) ||
OperatorName.NON_STROKING_CMYK.equals(name)) OperatorName.NON_STROKING_CMYK.equals(name))
{ {
graphicOp = op; graphicOp = op;
colors = arguments; colors = arguments;
} }
skipping to change at line 463 skipping to change at line 462
} }
try try
{ {
// not sure if charset is correct, but we only need numbers and simp le characters // not sure if charset is correct, but we only need numbers and simp le characters
PDFStreamParser parser = new PDFStreamParser(defaultAppearance.getBy tes(Charsets.US_ASCII)); PDFStreamParser parser = new PDFStreamParser(defaultAppearance.getBy tes(Charsets.US_ASCII));
COSArray arguments = new COSArray(); COSArray arguments = new COSArray();
COSArray fontArguments = new COSArray(); COSArray fontArguments = new COSArray();
for (Object token = parser.parseNextToken(); token != null; token = parser.parseNextToken()) for (Object token = parser.parseNextToken(); token != null; token = parser.parseNextToken())
{ {
if (token instanceof COSObject) if (token instanceof Operator)
{
arguments.add(((COSObject) token).getObject());
}
else if (token instanceof Operator)
{ {
Operator op = (Operator) token; Operator op = (Operator) token;
String name = op.getName(); String name = op.getName();
if (OperatorName.SET_FONT_AND_SIZE.equals(name)) if (OperatorName.SET_FONT_AND_SIZE.equals(name))
{ {
fontArguments = arguments; fontArguments = arguments;
} }
arguments = new COSArray(); arguments = new COSArray();
} }
else else
 End of changes. 5 change blocks. 
12 lines changed or deleted 7 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)