use of org.apache.pdfbox.contentstream.operator.MissingOperandException in project pdfbox by apache.
the class MoveTo method process.
@Override
public void process(Operator operator, List<COSBase> operands) throws IOException {
if (operands.size() < 2) {
throw new MissingOperandException(operator, operands);
}
COSBase base0 = operands.get(0);
if (!(base0 instanceof COSNumber)) {
return;
}
COSBase base1 = operands.get(1);
if (!(base1 instanceof COSNumber)) {
return;
}
COSNumber x = (COSNumber) base0;
COSNumber y = (COSNumber) base1;
Point2D.Float pos = context.transformedPoint(x.floatValue(), y.floatValue());
context.moveTo(pos.x, pos.y);
}
use of org.apache.pdfbox.contentstream.operator.MissingOperandException in project pdfbox by apache.
the class SetColor method process.
@Override
public void process(Operator operator, List<COSBase> arguments) throws IOException {
PDColorSpace colorSpace = getColorSpace();
if (!(colorSpace instanceof PDPattern)) {
if (arguments.size() < colorSpace.getNumberOfComponents()) {
throw new MissingOperandException(operator, arguments);
}
if (!checkArrayTypesClass(arguments, COSNumber.class)) {
return;
}
}
COSArray array = new COSArray();
array.addAll(arguments);
setColor(new PDColor(array, colorSpace));
}
use of org.apache.pdfbox.contentstream.operator.MissingOperandException in project pdfbox by apache.
the class LineTo method process.
@Override
public void process(Operator operator, List<COSBase> operands) throws IOException {
if (operands.size() < 2) {
throw new MissingOperandException(operator, operands);
}
COSBase base0 = operands.get(0);
if (!(base0 instanceof COSNumber)) {
return;
}
COSBase base1 = operands.get(1);
if (!(base1 instanceof COSNumber)) {
return;
}
// append straight line segment from the current point to the point
COSNumber x = (COSNumber) base0;
COSNumber y = (COSNumber) base1;
Point2D.Float pos = context.transformedPoint(x.floatValue(), y.floatValue());
if (context.getCurrentPoint() == null) {
LOG.warn("LineTo (" + pos.x + "," + pos.y + ") without initial MoveTo");
context.moveTo(pos.x, pos.y);
} else {
context.lineTo(pos.x, pos.y);
}
}
use of org.apache.pdfbox.contentstream.operator.MissingOperandException in project pdfbox by apache.
the class DrawObject method process.
@Override
public void process(Operator operator, List<COSBase> arguments) throws IOException {
if (arguments.size() < 1) {
throw new MissingOperandException(operator, arguments);
}
COSBase base0 = arguments.get(0);
if (!(base0 instanceof COSName)) {
return;
}
COSName name = (COSName) base0;
PDXObject xobject = context.getResources().getXObject(name);
((PDFMarkedContentExtractor) context).xobject(xobject);
if (xobject instanceof PDTransparencyGroup) {
context.showTransparencyGroup((PDTransparencyGroup) xobject);
} else if (xobject instanceof PDFormXObject) {
PDFormXObject form = (PDFormXObject) xobject;
context.showForm(form);
}
}
use of org.apache.pdfbox.contentstream.operator.MissingOperandException in project pdfbox by apache.
the class CurveTo method process.
@Override
public void process(Operator operator, List<COSBase> operands) throws IOException {
if (operands.size() < 6) {
throw new MissingOperandException(operator, operands);
}
if (!checkArrayTypesClass(operands, COSNumber.class)) {
return;
}
COSNumber x1 = (COSNumber) operands.get(0);
COSNumber y1 = (COSNumber) operands.get(1);
COSNumber x2 = (COSNumber) operands.get(2);
COSNumber y2 = (COSNumber) operands.get(3);
COSNumber x3 = (COSNumber) operands.get(4);
COSNumber y3 = (COSNumber) operands.get(5);
Point2D.Float point1 = context.transformedPoint(x1.floatValue(), y1.floatValue());
Point2D.Float point2 = context.transformedPoint(x2.floatValue(), y2.floatValue());
Point2D.Float point3 = context.transformedPoint(x3.floatValue(), y3.floatValue());
if (context.getCurrentPoint() == null) {
LOG.warn("curveTo (" + point3.x + "," + point3.y + ") without initial MoveTo");
context.moveTo(point3.x, point3.y);
} else {
context.curveTo(point1.x, point1.y, point2.x, point2.y, point3.x, point3.y);
}
}
Aggregations