aboutsummaryrefslogtreecommitdiff
path: root/pdf-as-lib/src/main/java/at/knowcenter
diff options
context:
space:
mode:
authorAndreas Fitzek <andreas.fitzek@iaik.tugraz.at>2014-10-16 12:45:01 +0200
committerAndreas Fitzek <andreas.fitzek@iaik.tugraz.at>2014-10-16 12:45:01 +0200
commit63784f692a50606f34702706761edac052fdac60 (patch)
tree50f78a92c35cdfced053209a334944acdee2b983 /pdf-as-lib/src/main/java/at/knowcenter
parent7b105bafe5a1f4c01224c8ae0b820a478b09447f (diff)
downloadpdf-as-4-63784f692a50606f34702706761edac052fdac60.tar.gz
pdf-as-4-63784f692a50606f34702706761edac052fdac60.tar.bz2
pdf-as-4-63784f692a50606f34702706761edac052fdac60.zip
Introduced PDF-AS Backends, removed all pdfbox specific code to pdfbox backend
Diffstat (limited to 'pdf-as-lib/src/main/java/at/knowcenter')
-rw-r--r--pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/PDFPage.java599
-rw-r--r--pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/PDFUtilities.java110
-rw-r--r--pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/PathConstructionOperatorProcessor.java84
-rw-r--r--pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/PathPaintingOperatorProcessor.java65
-rw-r--r--pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/construction/ClosePath.java91
-rw-r--r--pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/construction/CurveTo.java108
-rw-r--r--pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/construction/CurveToReplicateFinalPoint.java105
-rw-r--r--pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/construction/CurveToReplicateInitialPoint.java107
-rw-r--r--pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/construction/LineTo.java94
-rw-r--r--pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/construction/MoveTo.java96
-rw-r--r--pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/painting/CloseAndStrokePath.java82
-rw-r--r--pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/painting/CloseFillEvenOddAndStrokePath.java83
-rw-r--r--pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/painting/CloseFillNonZeroAndStrokePath.java83
-rw-r--r--pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/painting/EndPath.java91
-rw-r--r--pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/painting/FillEvenOddAndStrokePath.java95
-rw-r--r--pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/painting/FillNonZeroAndStrokePath.java95
-rw-r--r--pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/painting/FillPathEvenOddRule.java94
-rw-r--r--pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/painting/FillPathNonZeroWindingNumberRule.java95
-rw-r--r--pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/painting/StrokePath.java93
19 files changed, 0 insertions, 2270 deletions
diff --git a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/PDFPage.java b/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/PDFPage.java
deleted file mode 100644
index 84574b41..00000000
--- a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/PDFPage.java
+++ /dev/null
@@ -1,599 +0,0 @@
-/*******************************************************************************
- * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- ******************************************************************************/
-/**
- * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- *
- * $Id: PDFPage.java,v 1.5 2006/10/31 08:09:33 wprinz Exp $
- */
-package at.knowcenter.wag.egov.egiz.pdf;
-
-import java.awt.Rectangle;
-import java.awt.geom.GeneralPath;
-import java.io.IOException;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.commons.lang3.math.NumberUtils;
-import org.apache.pdfbox.cos.COSBase;
-import org.apache.pdfbox.cos.COSName;
-import org.apache.pdfbox.cos.COSStream;
-import org.apache.pdfbox.pdmodel.PDPage;
-import org.apache.pdfbox.pdmodel.PDResources;
-import org.apache.pdfbox.pdmodel.common.PDRectangle;
-import org.apache.pdfbox.pdmodel.common.PDStream;
-import org.apache.pdfbox.pdmodel.font.PDFont;
-import org.apache.pdfbox.pdmodel.graphics.xobject.PDXObject;
-import org.apache.pdfbox.pdmodel.graphics.xobject.PDXObjectForm;
-import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotation;
-import org.apache.pdfbox.util.Matrix;
-import org.apache.pdfbox.util.PDFOperator;
-import org.apache.pdfbox.util.PDFTextStripper;
-import org.apache.pdfbox.util.TextPosition;
-import org.apache.pdfbox.util.operator.OperatorProcessor;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import at.knowcenter.wag.egov.egiz.pdf.operator.path.construction.ClosePath;
-import at.knowcenter.wag.egov.egiz.pdf.operator.path.construction.CurveTo;
-import at.knowcenter.wag.egov.egiz.pdf.operator.path.construction.CurveToReplicateFinalPoint;
-import at.knowcenter.wag.egov.egiz.pdf.operator.path.construction.CurveToReplicateInitialPoint;
-import at.knowcenter.wag.egov.egiz.pdf.operator.path.construction.LineTo;
-import at.knowcenter.wag.egov.egiz.pdf.operator.path.construction.MoveTo;
-import at.knowcenter.wag.egov.egiz.pdf.operator.path.painting.CloseAndStrokePath;
-import at.knowcenter.wag.egov.egiz.pdf.operator.path.painting.CloseFillEvenOddAndStrokePath;
-import at.knowcenter.wag.egov.egiz.pdf.operator.path.painting.CloseFillNonZeroAndStrokePath;
-import at.knowcenter.wag.egov.egiz.pdf.operator.path.painting.EndPath;
-import at.knowcenter.wag.egov.egiz.pdf.operator.path.painting.FillEvenOddAndStrokePath;
-import at.knowcenter.wag.egov.egiz.pdf.operator.path.painting.FillNonZeroAndStrokePath;
-import at.knowcenter.wag.egov.egiz.pdf.operator.path.painting.FillPathEvenOddRule;
-import at.knowcenter.wag.egov.egiz.pdf.operator.path.painting.FillPathNonZeroWindingNumberRule;
-import at.knowcenter.wag.egov.egiz.pdf.operator.path.painting.StrokePath;
-
-/**
- * PDFPage is an inner class that is used to calculate the page length of a PDF
- * Document page. It extends the PDFTextStripper class and implement one
- * interested method: {@link at.knowcenter.wag.egov.egiz.pdf.PDFPage#showCharacter(TextPosition)}<br>
- * This method is called when processing the FileStream. By calling the method
- * {@link org.apache.pdfbox.util.PDFStreamEngine#processStream(org.apache.pdfbox.pdmodel.PDPage, org.apache.pdfbox.pdmodel.PDResources, org.pdfbox.cos.COSStream)}
- * the implemented method showCharacter is called.
- *
- * @author wlackner
- * @see PDFTextStripper
- */
-public class PDFPage extends PDFTextStripper {
- /**
- * The logger definition.
- */
- private static final Logger logger = LoggerFactory.getLogger(PDFPage.class);
-
- /**
- * The maximum (lowest) y position of a character.
- */
- protected float max_character_ypos = Float.NEGATIVE_INFINITY;
-
- /**
- * The maximum (lowest y position of an image.
- */
- protected float max_image_ypos = Float.NEGATIVE_INFINITY;
-
- /**
- * The effective page height.
- */
- protected float effectivePageHeight;
-
- /**
- * The path currently being constructed.
- */
- private GeneralPath currentPath = new GeneralPath();
-
- /**
- * The lowest position of a drawn path (originating from top).
- */
- private float maxPathRelatedYPositionFromTop = Float.NEGATIVE_INFINITY;
-
- /**
- * Constructor.
- *
- * @param effectivePageHeight
- * The height of the page to be evaluated. PDF elements outside
- * this height will not be considered.
- *
- * @throws java.io.IOException
- */
- public PDFPage(float effectivePageHeight, boolean legacy32) throws IOException {
- super();
-
- this.effectivePageHeight = effectivePageHeight;
-
- OperatorProcessor newInvoke = new MyInvoke(this);
- newInvoke.setContext(this);
- this.registerOperatorProcessor("Do", newInvoke);
-
- if (!legacy32) {
- registerCustomPathOperators();
- }
- }
-
- /**
- * Registers operators responsible for path construction and painting in
- * order to fix auto positioning on pages with path elements.
- *
- * @author Datentechnik Innovation GmbH
- */
- private void registerCustomPathOperators() {
-
- // *** path construction
-
- this.registerOperatorProcessor("m", new MoveTo(this));
- this.registerOperatorProcessor("l", new LineTo(this));
- this.registerOperatorProcessor("c", new CurveTo(this));
- this.registerOperatorProcessor("y", new CurveToReplicateFinalPoint(this));
- this.registerOperatorProcessor("v", new CurveToReplicateInitialPoint(this));
- this.registerOperatorProcessor("h", new ClosePath(this));
-
- // *** path painting
-
- // "S": stroke path
- this.registerOperatorProcessor("S", new StrokePath(this));
- this.registerOperatorProcessor("s", new CloseAndStrokePath(this));
- this.registerOperatorProcessor("f", new FillPathNonZeroWindingNumberRule(this));
- this.registerOperatorProcessor("F", new FillPathNonZeroWindingNumberRule(this));
- this.registerOperatorProcessor("f*", new FillPathEvenOddRule(this));
- this.registerOperatorProcessor("b", new CloseFillNonZeroAndStrokePath(this));
- this.registerOperatorProcessor("B", new FillNonZeroAndStrokePath(this));
- this.registerOperatorProcessor("b*", new CloseFillEvenOddAndStrokePath(this));
- this.registerOperatorProcessor("B*", new FillEvenOddAndStrokePath(this));
- this.registerOperatorProcessor("n", new EndPath(this));
-
- // Note: The graphic context
- // (org.pdfbox.pdmodel.graphics.PDGraphicsState) of the underlying
- // pdfbox library does
- // not yet support clipping. This prevents feasible usage of clipping
- // operators (W, W*).
- // operators.put("W", new ...(this));
- // operators.put("W*", new ...(this));
-
- }
-
- /**
- * Returns the path currently being constructed.
- *
- * @return The path currently being constructed.
- */
- public GeneralPath getCurrentPath() {
- return currentPath;
- }
-
- /**
- * Sets the current path.
- *
- * @param currentPath
- * The new current path.
- */
- public void setCurrentPath(GeneralPath currentPath) {
- this.currentPath = currentPath;
- }
-
- /**
- * Registers a rectangle that bounds the path currently being drawn.
- *
- * @param bounds
- * A rectangle depicting the bounds (coordinates originating from
- * bottom left).
- * @author Datentechnik Innovation GmbH
- */
- public void registerPathBounds(Rectangle bounds) {
- if (!bounds.isEmpty()) {
- logger.debug("Registering path bounds: " + bounds);
-
- // vertical start of rectangle (counting from top of page)
- float upperBoundYPositionFromTop;
-
- // vertical end of rectangle (counting from top of page)
- // this depicts the current end of path-related page content
- float lowerBoundYPositionFromTop;
-
- PDRectangle boundaryBox = this.getCurrentPage().findMediaBox();
- float pageHeight;
-
- switch (this.getCurrentPage().findRotation()) {
- case 90: // CW
- pageHeight = boundaryBox.getWidth();
- upperBoundYPositionFromTop = (float) bounds.getMinX();
- lowerBoundYPositionFromTop = (float) bounds.getMaxX();
- break;
- case 180:
- pageHeight = boundaryBox.getHeight();
- upperBoundYPositionFromTop = (float) bounds.getMinY();
- lowerBoundYPositionFromTop = (float) bounds.getMaxY();
- break;
- case 270: // CCW
- pageHeight = boundaryBox.getWidth();
- upperBoundYPositionFromTop = pageHeight
- - (float) bounds.getMaxX();
- lowerBoundYPositionFromTop = pageHeight
- - (float) bounds.getMinX();
- break;
- default:
- pageHeight = boundaryBox.getHeight();
- upperBoundYPositionFromTop = pageHeight
- - (float) bounds.getMaxY();
- lowerBoundYPositionFromTop = pageHeight
- - (float) bounds.getMinY();
- break;
- }
-
- // new maximum ?
- if (lowerBoundYPositionFromTop > maxPathRelatedYPositionFromTop) {
- // Is the rectangle (at least partly) located above the footer
- // line?
- // (effective page height := page height - footer line)
- if (upperBoundYPositionFromTop <= effectivePageHeight) {
- // yes: update current end of path-related page content
- maxPathRelatedYPositionFromTop = lowerBoundYPositionFromTop;
- logger.trace("New max path related y position (from top): "
- + maxPathRelatedYPositionFromTop);
- } else {
- // no: rectangle is fully located below the footer line ->
- // ignore
- logger.trace("Ignoring path bound below the footer line.");
- }
- }
- }
- }
-
- protected void processOperator(PDFOperator operator, List<COSBase> arguments)
- throws IOException {
- logger.trace("operator = " + operator);
- super.processOperator(operator, arguments);
- }
-
- @Override
- protected void processTextPosition(TextPosition text) {
- showCharacter(text);
- }
-
- // exthex
- /**
- * A method provided as an event interface to allow a subclass to perform
- * some specific functionality when a character needs to be displayed. This
- * method is used to calculate the latest position of a text in the page.
- * Sorry for this missinterpretation of the method, but it is the only way
- * to do this (provided by PDFBox)!!!
- *
- * @param text
- * the character to be displayed -> calculate there y position.
- */
- protected void showCharacter(TextPosition text) {
- float current_y = text.getY();
- final String character = text.getCharacter();
-
- int pageRotation = this.getCurrentPage().findRotation();
- // logger_.debug("PageRotation = " + pageRotation);
- if (pageRotation == 0) {
- current_y = text.getY();
- }
- if (pageRotation == 90) {
- current_y = text.getX();
- }
- if (pageRotation == 180) {
- float page_height = this.getCurrentPage().findMediaBox().getHeight();
- current_y = page_height - text.getY();
- }
- if (pageRotation == 270) {
- float page_height = this.getCurrentPage().findMediaBox().getHeight();
- current_y = page_height - text.getX();
- }
-
- if (current_y > this.effectivePageHeight) {
- // logger_.debug("character is below footer_line. footer_line = " +
- // this.footer_line + ", text.character=" + character + ", y=" +
- // current_y);
- return;
- }
-
- // store ypos of the char if it is not empty
- if (!at.gv.egiz.pdfas.common.utils.StringUtils.whiteSpaceTrim(character).isEmpty() &&
- current_y > this.max_character_ypos) {
- this.max_character_ypos = current_y;
- }
-
- }
-
- // use this funtion getting an unsorted text output
- // public void showString(byte[] string) {
- // logger_.debug(new String(string));
- // }
-
- /**
- * Returns the calculated page length.
- *
- * @return the max page length value
- */
- public float getMaxPageLength() {
- if (logger.isDebugEnabled()) {
- logger.debug("Determining page content length: text="
- + max_character_ypos + ", image=" + max_image_ypos
- + ", path=" + maxPathRelatedYPositionFromTop);
- }
- return NumberUtils.max(max_character_ypos, max_image_ypos,
- maxPathRelatedYPositionFromTop);
- }
-
- @Override
- public Map<String, PDFont> getFonts() {
-
- COSBase fontObj = null;
-
- if(getCurrentPage().getResources() != null &&
- getCurrentPage().getResources().getCOSDictionary() != null &&
- getCurrentPage().getResources().getCOSDictionary().getDictionaryObject(COSName.FONT) != null) {
- fontObj = getCurrentPage().getResources().getCOSDictionary().getDictionaryObject(COSName.FONT);
- }
- Map<String, PDFont> fontMap = getCurrentPage().findResources().getFonts();
-
- if(fontObj != null) {
- getCurrentPage().getResources().getCOSDictionary().setItem(COSName.FONT, fontObj);
- }
-
- return fontMap;
- }
-
- public class MyInvoke extends OperatorProcessor {
-
- private PDFPage mypage;
-
- public MyInvoke(PDFPage page) {
- this.mypage = page;
- }
-
- public void process(PDFOperator operator, List<COSBase> arguments)
- throws IOException {
- COSName name = (COSName) arguments.get(0);
-
- // PDResources res = context.getResources();
-
- Map<String, PDXObject> xobjects = context.getXObjects();
- PDXObject xobject = xobjects.get(name.getName());
-
- PDStream stream = xobject.getPDStream();
- COSStream cos_stream = stream.getStream();
-
- COSName subtype = (COSName) cos_stream
- .getDictionaryObject(COSName.SUBTYPE);
- if (subtype.equals(COSName.IMAGE)) {
- logger.debug("XObject Image");
-
- Matrix ctm = context.getGraphicsState()
- .getCurrentTransformationMatrix();
- logger.debug("ctm = " + ctm);
-
- Pos[] coordinates = new Pos[] { new Pos(0, 0, 1),
- new Pos(1, 0, 1), new Pos(0, 1, 1), new Pos(1, 1, 1) };
-
- Pos[] transformed_coordinates = transtormCoordinates(
- coordinates, ctm);
-
- /**********************************************************
- * pdf-as fix: calculating min and max point of an image to look
- * where the signature should be placed fix solves problems with
- * footer and images and placement of the signature in an image
- * only pdf document
- **********************************************************/
-
- float actual_lowest_point = Float.NaN;
- float actual_starting_point = Float.NaN;
-
- int pageRotation = this.mypage.getCurrentPage().findRotation();
- logger.debug("PageRotation = " + pageRotation);
- if (pageRotation == 0) {
- float min_y = findMinY(transformed_coordinates);
- logger.debug("min_y = " + min_y);
- float page_height = this.mypage.getCurrentPage().findMediaBox().getHeight();
- logger.debug("page_height = " + page_height);
-
- actual_lowest_point = page_height - min_y;
- actual_starting_point = page_height
- - findMaxY(transformed_coordinates);
- }
- if (pageRotation == 90) {
- float max_x = findMaxX(transformed_coordinates);
- logger.debug("max_x = " + max_x);
- float page_width = this.mypage.getCurrentPage().findMediaBox().getWidth();
- logger.debug("page_width = " + page_width);
-
- actual_lowest_point = max_x;
- actual_starting_point = findMinX(transformed_coordinates);
- }
- if (pageRotation == 180) {
- float min_y = findMinY(transformed_coordinates);
- logger.debug("min_y = " + min_y);
- float page_height = this.mypage.getCurrentPage().findMediaBox().getHeight();
- actual_lowest_point = page_height
- - findMaxY(transformed_coordinates);
- actual_starting_point = page_height - min_y;
- }
- if (pageRotation == 270) {
- float min_x = findMinX(transformed_coordinates);
- logger.debug("min_x = " + min_x);
-
- float page_width = this.mypage.getCurrentPage().findMediaBox().getWidth();
- logger.debug("page_width = " + page_width);
-
- actual_lowest_point = page_width - min_x;
- actual_starting_point = page_width
- - findMaxX(transformed_coordinates);
- }
-
- logger.debug("actual_lowest_point = " + actual_lowest_point);
-
- if (actual_lowest_point > PDFPage.this.effectivePageHeight
- && actual_starting_point > PDFPage.this.effectivePageHeight) {
- logger.debug("image is below footer_line");
- return;
- }
-
- if (actual_lowest_point > PDFPage.this.max_image_ypos) {
- PDFPage.this.max_image_ypos = actual_lowest_point;
- }
-
- return;
- }
-
- if (xobject instanceof PDXObjectForm) {
- PDXObjectForm form = (PDXObjectForm) xobject;
- COSStream invoke = (COSStream) form.getCOSObject();
- PDResources pdResources = form.getResources();
- PDPage page = context.getCurrentPage();
- if (pdResources == null) {
- pdResources = page.findResources();
- }
-
- getContext().processSubStream(page, pdResources, invoke);
- }
- }
- }
-
- public static Pos[] transtormCoordinates(Pos[] coordinates, Matrix m) {
- Pos[] transformed = new Pos[coordinates.length];
- for (int i = 0; i < coordinates.length; i++) {
- transformed[i] = transtormCoordinate(coordinates[i], m);
- }
- return transformed;
- }
-
- public static Pos transtormCoordinate(Pos pos, Matrix m) {
- Pos transformed = new Pos();
- transformed.x = pos.x * m.getValue(0, 0) + pos.y * m.getValue(1, 0)
- + pos.z * m.getValue(2, 0);
- transformed.y = pos.x * m.getValue(0, 1) + pos.y * m.getValue(1, 1)
- + pos.z * m.getValue(2, 1);
- transformed.z = pos.x * m.getValue(0, 2) + pos.y * m.getValue(1, 2)
- + pos.z * m.getValue(2, 2);
-
- logger.debug(" transformed " + pos + " --> " + transformed);
- return transformed;
- }
-
- public static float findMinY(Pos[] coordinates) {
- float min = Float.POSITIVE_INFINITY;
- for (int i = 0; i < coordinates.length; i++) {
- if (coordinates[i].y < min) {
- min = coordinates[i].y;
- }
- }
- return min;
- }
-
- public static float findMaxY(Pos[] coordinates) {
- float max = 0;
- for (int i = 0; i < coordinates.length; i++) {
- if (coordinates[i].y > max) {
- max = coordinates[i].y;
- }
- }
- return max;
- }
-
- public static float findMaxX(Pos[] coordinates) {
- float max = Float.NEGATIVE_INFINITY;
- for (int i = 0; i < coordinates.length; i++) {
- if (coordinates[i].x > max) {
- max = coordinates[i].x;
- }
- }
- return max;
- }
-
- public static float findMinX(Pos[] coordinates) {
- float min = Float.POSITIVE_INFINITY;
- for (int i = 0; i < coordinates.length; i++) {
- if (coordinates[i].x < min) {
- min = coordinates[i].x;
- }
- }
- return min;
- }
-
- public void processAnnotation(PDAnnotation anno) {
- float current_y = anno.getRectangle().getLowerLeftY();
- PDPage page = anno.getPage();
-
- if(page == null) {
- page = getCurrentPage();
- }
-
- if(page == null) {
- logger.warn("Annotation without page! The position might not be correct!");
- return;
- }
-
- int pageRotation = page.findRotation();
- // logger_.debug("PageRotation = " + pageRotation);
- if (pageRotation == 0) {
- float page_height = page.findMediaBox().getHeight();
- current_y = page_height - anno.getRectangle().getLowerLeftY();
- }
- if (pageRotation == 90) {
- current_y = anno.getRectangle().getLowerLeftX();
- }
- if (pageRotation == 180) {
- current_y = anno.getRectangle().getUpperRightY();
- }
- if (pageRotation == 270) {
- float page_height = page.findMediaBox().getHeight();
- current_y = page_height - anno.getRectangle().getUpperRightX();
- }
-
- if (current_y > this.effectivePageHeight) {
- return;
- }
-
- // store ypos of the char if it is not empty
- if (current_y > this.max_character_ypos) {
- this.max_character_ypos = current_y;
- }
- }
-
-}
diff --git a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/PDFUtilities.java b/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/PDFUtilities.java
deleted file mode 100644
index 808efbe4..00000000
--- a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/PDFUtilities.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- ******************************************************************************/
-/**
- * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- *
- * $Id: PDFUtilities.java,v 1.3 2006/10/31 08:09:33 wprinz Exp $
- */
-package at.knowcenter.wag.egov.egiz.pdf;
-
-import java.io.IOException;
-import java.util.Iterator;
-import java.util.List;
-
-import org.apache.pdfbox.cos.COSStream;
-import org.apache.pdfbox.pdmodel.PDDocument;
-import org.apache.pdfbox.pdmodel.PDPage;
-import org.apache.pdfbox.pdmodel.PDResources;
-import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotation;
-
-import at.gv.egiz.pdfas.common.exceptions.PDFIOException;
-
-/**
- * Contains useful helpers for accessing PDF documents.
- *
- * @author wprinz
- * @author mruhmer
- */
-public abstract class PDFUtilities {
- public static float calculatePageLength(PDDocument document, int page,
- float effectivePageHeight, /* int pagerotation, */boolean legacy32)
- throws PDFIOException {
- // int last_page_id = document.getNumberOfPages();
- List<?> allPages = document.getDocumentCatalog().getAllPages();
- PDPage pdpage = (PDPage) allPages.get(page);
- // pdpage.setRotation(pagerotation);
- return calculatePageLength(pdpage, effectivePageHeight, legacy32);
- }
-
- public static float calculatePageLength(PDPage page,
- float effectivePageHeight, boolean legacy32) throws PDFIOException {
- try {
- PDFPage my_page = new PDFPage(effectivePageHeight, legacy32);
- PDResources resources = page.findResources();
- if (page.getContents() != null) {
- COSStream stream = page.getContents().getStream();
- // List<PDThreadBead> articles = page.getThreadBeads();
- // my_page.processMyPage(page);
- my_page.processStream(page, resources, stream);
- }
- if (!legacy32) {
- if (page.getAnnotations() != null) {
- Iterator<PDAnnotation> annotationsIt = page
- .getAnnotations().iterator();
-
- while (annotationsIt.hasNext()) {
- PDAnnotation annotation = annotationsIt.next();
- if (!annotation.isInvisible()) {
- my_page.processAnnotation(annotation);
- }
- }
- }
- }
- return my_page.getMaxPageLength();
- } catch (IOException e) {
- throw new PDFIOException("error.pdf.stamp.11", e);
- }
- }
-
-}
diff --git a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/PathConstructionOperatorProcessor.java b/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/PathConstructionOperatorProcessor.java
deleted file mode 100644
index 2e16c117..00000000
--- a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/PathConstructionOperatorProcessor.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- ******************************************************************************/
-/**
- * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- */
-package at.knowcenter.wag.egov.egiz.pdf.operator.path;
-
-import at.knowcenter.wag.egov.egiz.pdf.PDFPage;
-import org.apache.pdfbox.util.operator.OperatorProcessor;
-
-import java.awt.geom.Point2D;
-
-/**
- * Provides functions for path construction operators.
- *
- * @see "PDF 1.7 specification, Section 8.5.2 'Path Construction Operators'"
- * @author Datentechnik Innovation GmbH
- *
- */
-public abstract class PathConstructionOperatorProcessor extends OperatorProcessor {
-
- public PathConstructionOperatorProcessor(PDFPage context) {
- setContext(context);
- }
-
- /**
- * Transforms the given point from user space coordinates to device space coordinates based on the current
- * transition matrix.
- *
- * @param x
- * The x axis value of the user space coordinates.
- * @param y
- * The y axis value of the user space coordinates.
- * @return The transformed point.
- */
- public Point2D transform(double x, double y) {
- double[] position = { x, y };
- context.getGraphicsState().getCurrentTransformationMatrix().createAffineTransform()
- .transform(position, 0, position, 0, 1);
- return new Point2D.Double(position[0], position[1]);
- }
-
-}
diff --git a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/PathPaintingOperatorProcessor.java b/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/PathPaintingOperatorProcessor.java
deleted file mode 100644
index bc34d562..00000000
--- a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/PathPaintingOperatorProcessor.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- ******************************************************************************/
-/**
- * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- */
-package at.knowcenter.wag.egov.egiz.pdf.operator.path;
-
-import at.knowcenter.wag.egov.egiz.pdf.PDFPage;
-import org.apache.pdfbox.util.operator.OperatorProcessor;
-
-/**
- * Provides functions for path painting operators.
- *
- * @see "PDF 1.7 specification, Section 8.5.2 'Path Construction Operators'"
- * @author Datentechnik Innovation GmbH
- *
- */
-public abstract class PathPaintingOperatorProcessor extends OperatorProcessor {
-
- public PathPaintingOperatorProcessor(PDFPage context) {
- setContext(context);
- }
-
-}
diff --git a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/construction/ClosePath.java b/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/construction/ClosePath.java
deleted file mode 100644
index 8bb76fb5..00000000
--- a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/construction/ClosePath.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- ******************************************************************************/
-/**
- * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- */
-package at.knowcenter.wag.egov.egiz.pdf.operator.path.construction;
-
-import at.knowcenter.wag.egov.egiz.pdf.PDFPage;
-import at.knowcenter.wag.egov.egiz.pdf.operator.path.PathConstructionOperatorProcessor;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.pdfbox.cos.COSBase;
-import org.apache.pdfbox.util.PDFOperator;
-
-import java.io.IOException;
-import java.util.List;
-
-/**
- * Close the current subpath by appending a straight line segment from the current point to the starting point of the
- * subpath. If the current subpath is already closed, h shall donothing. This operator terminates the current subpath.
- * Appending another segment to the current path shall begin a new subpath, even if the new segment begins at the
- * endpoint reached by the h operation.
- *
- * @see "PDF 1.7 specification, Section 8.5.2 'Path Construction Operators'"
- * @author PdfBox, modified by Datentechnik Innovation GmbH
- */
-public class ClosePath extends PathConstructionOperatorProcessor {
-
- private Log log = LogFactory.getLog(getClass());
-
- public ClosePath(PDFPage context) {
- super(context);
- }
-
- @Override
- public void process(PDFOperator operator, List<COSBase> operands) throws IOException {
- try {
- PDFPage pdfPage = (PDFPage) context;
-
- pdfPage.getCurrentPath().closePath();
-
- if (log.isTraceEnabled()) {
- log.trace("Closing current path.");
- }
- } catch (Exception e) {
- log.warn("Error processing operator 'h'.", e);
- }
- }
-
-}
diff --git a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/construction/CurveTo.java b/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/construction/CurveTo.java
deleted file mode 100644
index 0eb10a52..00000000
--- a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/construction/CurveTo.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- ******************************************************************************/
-/**
- * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- */
-package at.knowcenter.wag.egov.egiz.pdf.operator.path.construction;
-
-import at.knowcenter.wag.egov.egiz.pdf.PDFPage;
-import at.knowcenter.wag.egov.egiz.pdf.operator.path.PathConstructionOperatorProcessor;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.pdfbox.cos.COSBase;
-import org.apache.pdfbox.cos.COSNumber;
-import org.apache.pdfbox.util.PDFOperator;
-
-import java.awt.geom.Point2D;
-import java.io.IOException;
-import java.util.List;
-
-/**
- * Append a cubic Bezier curve to the current path. The curve shall extend from the current point to the point (x3, y3),
- * using (x1, y1) and (x2, y2) as the Bezier control points (see 8.5.2.2, "Cubic Bezier Curves"). The new current point
- * shall be (x3, y3).
- *
- * @see "PDF 1.7 specification, Section 8.5.2 'Path Construction Operators'"
- * @author PdfBox, modified by Datentechnik Innovation GmbH
- */
-public class CurveTo extends PathConstructionOperatorProcessor {
-
- private Log log = LogFactory.getLog(getClass());
-
- public CurveTo(PDFPage context) {
- super(context);
- }
-
- @Override
- public void process(PDFOperator operator, List<COSBase> operands) throws IOException {
- try {
- PDFPage pdfPage = (PDFPage) context;
-
- 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 p1 = transform(x1.doubleValue(), y1.doubleValue());
- Point2D p2 = transform(x2.doubleValue(), y2.doubleValue());
- Point2D p3 = transform(x3.doubleValue(), y3.doubleValue());
-
- pdfPage.getCurrentPath().curveTo(
- (float) p1.getX(), (float) p1.getY(),
- (float) p2.getX(), (float) p2.getY(),
- (float) p3.getX(), (float) p3.getY()
- );
-
- if (log.isTraceEnabled()) {
- log.trace("Appending cubic Bezier curve with x1:" + p1.getX() + ",y1:" + p1.getY() + ", x2:"
- + p2.getX() + ",y2:" + p2.getY() + ", x3:" + p3.getX() + ",y3:" + p3.getY());
- }
- } catch (Exception e) {
- log.warn("Error processing operator 'c'.", e);
- }
- }
-
-}
diff --git a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/construction/CurveToReplicateFinalPoint.java b/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/construction/CurveToReplicateFinalPoint.java
deleted file mode 100644
index 1020842e..00000000
--- a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/construction/CurveToReplicateFinalPoint.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- ******************************************************************************/
-/**
- * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- */
-package at.knowcenter.wag.egov.egiz.pdf.operator.path.construction;
-
-import at.knowcenter.wag.egov.egiz.pdf.PDFPage;
-import at.knowcenter.wag.egov.egiz.pdf.operator.path.PathConstructionOperatorProcessor;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.pdfbox.cos.COSBase;
-import org.apache.pdfbox.cos.COSNumber;
-import org.apache.pdfbox.util.PDFOperator;
-
-import java.awt.geom.Point2D;
-import java.io.IOException;
-import java.util.List;
-
-/**
- * Append a cubic Bezier curve to the current path. The curve shall extend from the current point to the point (x3, y3),
- * using (x1, y1) and (x3, y3) as the Bezier control points (see 8.5.2.2, "Cubic Bezier Curves"). The new current point
- * shall be (x3, y3).
- *
- * @see "PDF 1.7 specification, Section 8.5.2 'Path Construction Operators'"
- * @author PdfBox, modified by Datentechnik Innovation GmbH
- */
-public class CurveToReplicateFinalPoint extends PathConstructionOperatorProcessor {
-
- private Log log = LogFactory.getLog(getClass());
-
- public CurveToReplicateFinalPoint(PDFPage context) {
- super(context);
- }
-
- @Override
- public void process(PDFOperator operator, List<COSBase> operands) throws IOException {
- try {
- PDFPage pdfPage = (PDFPage) context;
-
- COSNumber x1 = (COSNumber) operands.get(0);
- COSNumber y1 = (COSNumber) operands.get(1);
- COSNumber x3 = (COSNumber) operands.get(2);
- COSNumber y3 = (COSNumber) operands.get(3);
-
- Point2D p1 = transform(x1.doubleValue(), y1.doubleValue());
- Point2D p3 = transform(x3.doubleValue(), y3.doubleValue());
-
- pdfPage.getCurrentPath().curveTo(
- (float) p1.getX(), (float) p1.getY(),
- (float) p3.getX(), (float) p3.getY(),
- (float) p3.getX(), (float) p3.getY()
- );
-
- if (log.isTraceEnabled()) {
- log.trace("Appending cubic Bezier curve with x1:" + p1.getX() + ",y1:" + p1.getY() + ", x3:"
- + p3.getX() + ",y3:" + p3.getY());
- }
- } catch (Exception e) {
- log.warn("Error processing operator 'y'.", e);
- }
- }
-
-}
diff --git a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/construction/CurveToReplicateInitialPoint.java b/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/construction/CurveToReplicateInitialPoint.java
deleted file mode 100644
index 42a52033..00000000
--- a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/construction/CurveToReplicateInitialPoint.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- ******************************************************************************/
-/**
- * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- */
-package at.knowcenter.wag.egov.egiz.pdf.operator.path.construction;
-
-import at.knowcenter.wag.egov.egiz.pdf.PDFPage;
-import at.knowcenter.wag.egov.egiz.pdf.operator.path.PathConstructionOperatorProcessor;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.pdfbox.cos.COSBase;
-import org.apache.pdfbox.cos.COSNumber;
-import org.apache.pdfbox.util.PDFOperator;
-
-import java.awt.geom.Point2D;
-import java.io.IOException;
-import java.util.List;
-
-/**
- * Append a cubic Bezier curve to the current path. The curve shall extend from the current point to the point (x3, y3),
- * using the current point and (x2, y2) as the Bezier control points (see 8.5.2.2, "Cubic Bezier Curves"). The new
- * current point shall be (x3, y3).
- *
- * @see "PDF 1.7 specification, Section 8.5.2 'Path Construction Operators'"
- * @author PdfBox, modified by Datentechnik Innovation GmbH
- */
-public class CurveToReplicateInitialPoint extends PathConstructionOperatorProcessor {
-
- private Log log = LogFactory.getLog(getClass());
-
- public CurveToReplicateInitialPoint(PDFPage context) {
- super(context);
- }
-
- @Override
- public void process(PDFOperator operator, List<COSBase> operands) throws IOException {
- try {
- PDFPage pdfPage = (PDFPage) context;
-
- COSNumber x2 = (COSNumber) operands.get(0);
- COSNumber y2 = (COSNumber) operands.get(1);
- COSNumber x3 = (COSNumber) operands.get(2);
- COSNumber y3 = (COSNumber) operands.get(3);
-
- Point2D currentPoint = pdfPage.getCurrentPath().getCurrentPoint();
- Point2D p2 = transform(x2.doubleValue(), y2.doubleValue());
- Point2D p3 = transform(x3.doubleValue(), y3.doubleValue());
-
- pdfPage.getCurrentPath().curveTo(
- (float)currentPoint.getX(), (float)currentPoint.getY(),
- (float) p2.getX(), (float) p2.getY(),
- (float) p3.getX(), (float) p3.getY()
- );
-
- if (log.isTraceEnabled()) {
- log.trace("Appending cubic Bezier curve with x2:" + p2.getX() + ",y2:" + p2.getY() + ", x3:"
- + p3.getX() + ",y3:" + p3.getY() + ", using current point x:" + currentPoint.getX() + ",y:"
- + currentPoint.getY());
- }
- } catch (Exception e) {
- log.warn("Error processing operator 'v'.", e);
- }
- }
-
-}
diff --git a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/construction/LineTo.java b/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/construction/LineTo.java
deleted file mode 100644
index a47d3fe6..00000000
--- a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/construction/LineTo.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- ******************************************************************************/
-/**
- * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- */
-package at.knowcenter.wag.egov.egiz.pdf.operator.path.construction;
-
-import at.knowcenter.wag.egov.egiz.pdf.PDFPage;
-import at.knowcenter.wag.egov.egiz.pdf.operator.path.PathConstructionOperatorProcessor;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.pdfbox.cos.COSBase;
-import org.apache.pdfbox.cos.COSNumber;
-import org.apache.pdfbox.util.PDFOperator;
-
-import java.awt.geom.Point2D;
-import java.io.IOException;
-import java.util.List;
-
-/**
- * Append a straight line segment from the current point to the point (x, y). The new current point shall be (x, y).
- *
- * @see "PDF 1.7 specification, Section 8.5.2 'Path Construction Operators'"
- * @author PdfBox, modified by Datentechnik Innovation GmbH
- */
-public class LineTo extends PathConstructionOperatorProcessor {
-
- private Log log = LogFactory.getLog(getClass());
-
- public LineTo(PDFPage context) {
- super(context);
- }
-
- @Override
- public void process(PDFOperator operator, List<COSBase> operands) throws IOException {
- try {
- PDFPage pdfPage = (PDFPage) context;
-
- COSNumber x = (COSNumber) operands.get(0);
- COSNumber y = (COSNumber) operands.get(1);
- Point2D p = transform(x.doubleValue(), y.doubleValue());
-
- pdfPage.getCurrentPath().lineTo((float) p.getX(), (float) p.getY());
-
- if (log.isTraceEnabled()) {
- log.trace("Adding line to x:" + p.getX() + ",y:" + p.getY());
- }
- } catch (Exception e) {
- log.warn("Error processing operator 'l'.", e);
- }
- }
-
-}
diff --git a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/construction/MoveTo.java b/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/construction/MoveTo.java
deleted file mode 100644
index 49d92761..00000000
--- a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/construction/MoveTo.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- ******************************************************************************/
-/**
- * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- */
-package at.knowcenter.wag.egov.egiz.pdf.operator.path.construction;
-
-import at.knowcenter.wag.egov.egiz.pdf.PDFPage;
-import at.knowcenter.wag.egov.egiz.pdf.operator.path.PathConstructionOperatorProcessor;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.pdfbox.cos.COSBase;
-import org.apache.pdfbox.cos.COSNumber;
-import org.apache.pdfbox.util.PDFOperator;
-
-import java.awt.geom.Point2D;
-import java.io.IOException;
-import java.util.List;
-
-/**
- * Begin a new subpath by moving the current point to coordinates (x, y), omitting any connecting line segment. If the
- * previous path construction operator in the current path was also m, the new m overrides it; no vestige of the
- * previous m operation remains in the path.
- *
- * @see "PDF 1.7 specification, Section 8.5.2 'Path Construction Operators'"
- * @author PdfBox, modified by Datentechnik Innovation GmbH
- */
-public class MoveTo extends PathConstructionOperatorProcessor {
-
- private Log log = LogFactory.getLog(getClass());
-
- public MoveTo(PDFPage context) {
- super(context);
- }
-
- @Override
- public void process(PDFOperator operator, List<COSBase> operands) throws IOException {
- try {
- PDFPage pdfPage = (PDFPage) context;
-
- COSNumber x = (COSNumber) operands.get(0);
- COSNumber y = (COSNumber) operands.get(1);
- Point2D p = transform(x.doubleValue(), y.doubleValue());
-
- pdfPage.getCurrentPath().moveTo((float) p.getX(), (float) p.getY());
-
- if (log.isTraceEnabled()) {
- log.trace("Moving current path to x:" + p.getX() + ",y:" + p.getY());
- }
- } catch (Exception e) {
- log.warn("Error processing operator 'm'.", e);
- }
- }
-
-}
diff --git a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/painting/CloseAndStrokePath.java b/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/painting/CloseAndStrokePath.java
deleted file mode 100644
index 552a033c..00000000
--- a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/painting/CloseAndStrokePath.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- ******************************************************************************/
-/**
- * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- */
-package at.knowcenter.wag.egov.egiz.pdf.operator.path.painting;
-
-import at.knowcenter.wag.egov.egiz.pdf.PDFPage;
-import at.knowcenter.wag.egov.egiz.pdf.operator.path.PathPaintingOperatorProcessor;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.pdfbox.cos.COSBase;
-import org.apache.pdfbox.util.PDFOperator;
-
-import java.io.IOException;
-import java.util.List;
-
-/**
- * Close and stroke the path. This operator shall have the same effect as the sequence <code>h S</code>.
- *
- * @see "PDF 1.7 specification, Section 8.5.3 'Path-Painting Operators'"
- * @author PdfBox, modified by Datentechnik Innovation GmbH
- */
-public class CloseAndStrokePath extends PathPaintingOperatorProcessor {
-
- private Log log = LogFactory.getLog(getClass());
-
- public CloseAndStrokePath(PDFPage context) {
- super(context);
- }
-
- @Override
- public void process(PDFOperator operator, List<COSBase> operands) throws IOException {
- if (log.isTraceEnabled()) {
- log.trace("Closing and stroking path.");
- }
- context.processOperator("h", operands);
- context.processOperator("S", operands);
- }
-
-}
diff --git a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/painting/CloseFillEvenOddAndStrokePath.java b/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/painting/CloseFillEvenOddAndStrokePath.java
deleted file mode 100644
index 718fe362..00000000
--- a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/painting/CloseFillEvenOddAndStrokePath.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- ******************************************************************************/
-/**
- * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- */
-package at.knowcenter.wag.egov.egiz.pdf.operator.path.painting;
-
-import at.knowcenter.wag.egov.egiz.pdf.PDFPage;
-import at.knowcenter.wag.egov.egiz.pdf.operator.path.PathPaintingOperatorProcessor;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.pdfbox.cos.COSBase;
-import org.apache.pdfbox.util.PDFOperator;
-
-import java.io.IOException;
-import java.util.List;
-
-/**
- * Close, fill, and then stroke the path, using the even-odd rule to determine the region to fill. This operator shall
- * have the same effect as the sequence <code>h B*</code>.
- *
- * @see "PDF 1.7 specification, Section 8.5.3 'Path-Painting Operators'"
- * @author PdfBox, modified by Datentechnik Innovation GmbH
- */
-public class CloseFillEvenOddAndStrokePath extends PathPaintingOperatorProcessor {
-
- private Log log = LogFactory.getLog(getClass());
-
- public CloseFillEvenOddAndStrokePath(PDFPage context) {
- super(context);
- }
-
- @Override
- public void process(PDFOperator operator, List<COSBase> operands) throws IOException {
- if (log.isTraceEnabled()) {
- log.trace("Closing, filling (even odd rule) and stroking path.");
- }
- context.processOperator("h", operands);
- context.processOperator("B*", operands);
- }
-
-}
diff --git a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/painting/CloseFillNonZeroAndStrokePath.java b/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/painting/CloseFillNonZeroAndStrokePath.java
deleted file mode 100644
index 523f6681..00000000
--- a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/painting/CloseFillNonZeroAndStrokePath.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- ******************************************************************************/
-/**
- * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- */
-package at.knowcenter.wag.egov.egiz.pdf.operator.path.painting;
-
-import at.knowcenter.wag.egov.egiz.pdf.PDFPage;
-import at.knowcenter.wag.egov.egiz.pdf.operator.path.PathPaintingOperatorProcessor;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.pdfbox.cos.COSBase;
-import org.apache.pdfbox.util.PDFOperator;
-
-import java.io.IOException;
-import java.util.List;
-
-/**
- * Close, fill, and then stroke the path, using the nonzero winding number rule to determine the region to fill. This
- * operator shall have the same effect as the sequence <code>h B</code>.
- *
- * @see "PDF 1.7 specification, Section 8.5.3 'Path-Painting Operators'"
- * @author PdfBox, modified by Datentechnik Innovation GmbH
- */
-public class CloseFillNonZeroAndStrokePath extends PathPaintingOperatorProcessor {
-
- private Log log = LogFactory.getLog(getClass());
-
- public CloseFillNonZeroAndStrokePath(PDFPage context) {
- super(context);
- }
-
- @Override
- public void process(PDFOperator operator, List<COSBase> operands) throws IOException {
- if (log.isTraceEnabled()) {
- log.trace("Closing, filling (non zero rule) and stroking path.");
- }
- context.processOperator("h", operands);
- context.processOperator("B", operands);
- }
-
-}
diff --git a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/painting/EndPath.java b/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/painting/EndPath.java
deleted file mode 100644
index 5134ed2f..00000000
--- a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/painting/EndPath.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- ******************************************************************************/
-/**
- * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- */
-package at.knowcenter.wag.egov.egiz.pdf.operator.path.painting;
-
-import at.knowcenter.wag.egov.egiz.pdf.PDFPage;
-import at.knowcenter.wag.egov.egiz.pdf.operator.path.PathPaintingOperatorProcessor;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.pdfbox.cos.COSBase;
-import org.apache.pdfbox.util.PDFOperator;
-
-import java.io.IOException;
-import java.util.List;
-
-/**
- * End the path object without filling or stroking it. This operator shall be a path-painting no-op, used primarily for
- * the side effect of changing the current clipping path.
- *
- * @see "PDF 1.7 specification, Section 8.5.3 'Path-Painting Operators'"
- * @author PdfBox, modified by Datentechnik Innovation GmbH
- */
-public class EndPath extends PathPaintingOperatorProcessor {
-
- private Log log = LogFactory.getLog(getClass());
-
- public EndPath(PDFPage context) {
- super(context);
- }
-
- @Override
- public void process(PDFOperator operator, List<COSBase> operands) throws IOException {
- try {
- PDFPage pdfPage = (PDFPage) context;
-
- log.debug("Ending path " + pdfPage.getCurrentPath());
- pdfPage.getCurrentPath().reset();
-
- if (log.isTraceEnabled()) {
- log.trace("End path without filling or stroking.");
- }
-
- } catch (Exception e) {
- log.warn("Error processing operator 'n'.", e);
- }
- }
-
-}
diff --git a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/painting/FillEvenOddAndStrokePath.java b/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/painting/FillEvenOddAndStrokePath.java
deleted file mode 100644
index 13623648..00000000
--- a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/painting/FillEvenOddAndStrokePath.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- ******************************************************************************/
-/**
- * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- */
-package at.knowcenter.wag.egov.egiz.pdf.operator.path.painting;
-
-import at.knowcenter.wag.egov.egiz.pdf.PDFPage;
-import at.knowcenter.wag.egov.egiz.pdf.operator.path.PathPaintingOperatorProcessor;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.pdfbox.cos.COSBase;
-import org.apache.pdfbox.util.PDFOperator;
-
-import java.awt.geom.GeneralPath;
-import java.io.IOException;
-import java.util.List;
-
-/**
- * Fill and then stroke the path, using the even-odd rule to determine the region to fill. This operator shall produce
- * the same result as <code>B</code>, except that the path is filled as if with <code>f*</code> instead of
- * <code>f</code>.
- *
- * @see "PDF 1.7 specification, Section 8.5.3 'Path-Painting Operators'"
- * @author PdfBox, modified by Datentechnik Innovation GmbH
- */
-public class FillEvenOddAndStrokePath extends PathPaintingOperatorProcessor {
-
- private Log log = LogFactory.getLog(getClass());
-
- public FillEvenOddAndStrokePath(PDFPage context) {
- super(context);
- }
-
- @Override
- public void process(PDFOperator operator, List<COSBase> operands) throws IOException {
- try {
- PDFPage pdfPage = (PDFPage) context;
-
- if (log.isTraceEnabled()) {
- log.trace("Filling (even odd rule) and stroking path.");
- }
-
- GeneralPath currentPath = (GeneralPath) pdfPage.getCurrentPath().clone();
- context.processOperator("f*", operands);
- pdfPage.setCurrentPath(currentPath);
- context.processOperator("S", operands);
-
- } catch (Exception e) {
- log.warn("Error processing operator 'B*'.", e);
- }
- }
-
-}
diff --git a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/painting/FillNonZeroAndStrokePath.java b/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/painting/FillNonZeroAndStrokePath.java
deleted file mode 100644
index 485411a8..00000000
--- a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/painting/FillNonZeroAndStrokePath.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- ******************************************************************************/
-/**
- * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- */
-package at.knowcenter.wag.egov.egiz.pdf.operator.path.painting;
-
-import at.knowcenter.wag.egov.egiz.pdf.PDFPage;
-import at.knowcenter.wag.egov.egiz.pdf.operator.path.PathPaintingOperatorProcessor;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.pdfbox.cos.COSBase;
-import org.apache.pdfbox.util.PDFOperator;
-
-import java.awt.geom.GeneralPath;
-import java.io.IOException;
-import java.util.List;
-
-/**
- * Fill and then stroke the path, using the nonzero winding number rule to determine the region to fill. This operator
- * shall produce the same result as constructing two identical path objects, painting the first with <code>f</code> and
- * the second with <code>S</code>.
- *
- * @see "PDF 1.7 specification, Section 8.5.3 'Path-Painting Operators'"
- * @author PdfBox, modified by Datentechnik Innovation GmbH
- */
-public class FillNonZeroAndStrokePath extends PathPaintingOperatorProcessor {
-
- private Log log = LogFactory.getLog(getClass());
-
- public FillNonZeroAndStrokePath(PDFPage context) {
- super(context);
- }
-
- @Override
- public void process(PDFOperator operator, List<COSBase> operands) throws IOException {
- try {
- PDFPage pdfPage = (PDFPage) context;
-
- if (log.isTraceEnabled()) {
- log.trace("Filling (non zero rule) and stroking path.");
- }
-
- GeneralPath currentPath = (GeneralPath) pdfPage.getCurrentPath().clone();
- context.processOperator("f", operands);
- pdfPage.setCurrentPath(currentPath);
- context.processOperator("S", operands);
-
- } catch (Exception e) {
- log.warn("Error processing operator 'B'.", e);
- }
- }
-
-}
diff --git a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/painting/FillPathEvenOddRule.java b/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/painting/FillPathEvenOddRule.java
deleted file mode 100644
index bb3d3411..00000000
--- a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/painting/FillPathEvenOddRule.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- ******************************************************************************/
-/**
- * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- */
-package at.knowcenter.wag.egov.egiz.pdf.operator.path.painting;
-
-import at.knowcenter.wag.egov.egiz.pdf.PDFPage;
-import at.knowcenter.wag.egov.egiz.pdf.operator.path.PathPaintingOperatorProcessor;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.pdfbox.cos.COSBase;
-import org.apache.pdfbox.util.PDFOperator;
-
-import java.awt.*;
-import java.io.IOException;
-import java.util.List;
-
-/**
- * Fill the path, using the even-odd rule to determine the region to fill.
- *
- * @see "PDF 1.7 specification, Section 8.5.3 'Path-Painting Operators'"
- * @author PdfBox, modified by Datentechnik Innovation GmbH
- */
-public class FillPathEvenOddRule extends PathPaintingOperatorProcessor {
-
- private Log log = LogFactory.getLog(getClass());
-
- public FillPathEvenOddRule(PDFPage context) {
- super(context);
- }
-
- @Override
- public void process(PDFOperator operator, List<COSBase> operands) throws IOException {
- try {
- PDFPage pdfPage = (PDFPage) context;
-
- pdfPage.getCurrentPath().setWindingRule(java.awt.geom.GeneralPath.WIND_EVEN_ODD);
- Rectangle bounds = pdfPage.getCurrentPath().getBounds();
- pdfPage.getCurrentPath().reset();
-
- if (log.isTraceEnabled()) {
- log.trace("Filling path, using even-odd rule.");
- }
-
- pdfPage.registerPathBounds(bounds);
-
- } catch (Exception e) {
- log.warn("Error processing operator 'f*'.", e);
- }
- }
-
-}
diff --git a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/painting/FillPathNonZeroWindingNumberRule.java b/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/painting/FillPathNonZeroWindingNumberRule.java
deleted file mode 100644
index 6196c466..00000000
--- a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/painting/FillPathNonZeroWindingNumberRule.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- ******************************************************************************/
-/**
- * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- */
-package at.knowcenter.wag.egov.egiz.pdf.operator.path.painting;
-
-import at.knowcenter.wag.egov.egiz.pdf.PDFPage;
-import at.knowcenter.wag.egov.egiz.pdf.operator.path.PathPaintingOperatorProcessor;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.pdfbox.cos.COSBase;
-import org.apache.pdfbox.util.PDFOperator;
-
-import java.awt.*;
-import java.io.IOException;
-import java.util.List;
-
-/**
- * Fill the path, using the nonzero winding number rule to determine the region to fill. Any subpaths that are open
- * shall be implicitly closed before being filled.
- *
- * @see "PDF 1.7 specification, Section 8.5.3 'Path-Painting Operators'"
- * @author PdfBox, modified by Datentechnik Innovation GmbH
- */
-public class FillPathNonZeroWindingNumberRule extends PathPaintingOperatorProcessor {
-
- private Log log = LogFactory.getLog(getClass());
-
- public FillPathNonZeroWindingNumberRule(PDFPage context) {
- super(context);
- }
-
- @Override
- public void process(PDFOperator operator, List<COSBase> operands) throws IOException {
- try {
- PDFPage pdfPage = (PDFPage) context;
-
- pdfPage.getCurrentPath().setWindingRule(java.awt.geom.GeneralPath.WIND_NON_ZERO);
- Rectangle bounds = pdfPage.getCurrentPath().getBounds();
- pdfPage.getCurrentPath().reset();
-
- if (log.isTraceEnabled()) {
- log.trace("Filling path, using nonzero winding number rule.");
- }
-
- pdfPage.registerPathBounds(bounds);
-
- } catch (Exception e) {
- log.warn("Error processing operator 'f/F'.", e);
- }
- }
-
-}
diff --git a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/painting/StrokePath.java b/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/painting/StrokePath.java
deleted file mode 100644
index b114b60b..00000000
--- a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/operator/path/painting/StrokePath.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- ******************************************************************************/
-/**
- * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- */
-package at.knowcenter.wag.egov.egiz.pdf.operator.path.painting;
-
-import at.knowcenter.wag.egov.egiz.pdf.PDFPage;
-import at.knowcenter.wag.egov.egiz.pdf.operator.path.PathPaintingOperatorProcessor;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.pdfbox.cos.COSBase;
-import org.apache.pdfbox.util.PDFOperator;
-
-import java.awt.*;
-import java.io.IOException;
-import java.util.List;
-
-/**
- * Strokes the path.
- *
- * @see "PDF 1.7 specification, Section 8.5.3 'Path-Painting Operators'"
- * @author PdfBox, modified by Datentechnik Innovation GmbH
- */
-public class StrokePath extends PathPaintingOperatorProcessor {
-
- private Log log = LogFactory.getLog(getClass());
-
- public StrokePath(PDFPage context) {
- super(context);
- }
-
- @Override
- public void process(PDFOperator operator, List<COSBase> operands) throws IOException {
- try {
- PDFPage pdfPage = (PDFPage) context;
-
- Rectangle bounds = pdfPage.getCurrentPath().getBounds();
- pdfPage.getCurrentPath().reset();
-
- if (log.isTraceEnabled()) {
- log.trace("Stroking path.");
- }
-
- pdfPage.registerPathBounds(bounds);
-
- } catch (Exception e) {
- log.warn("Error processing operator 'S'.", e);
- }
- }
-
-}