diff options
| author | Jakob Heher <jakob.heher@iaik.tugraz.at> | 2026-06-22 16:08:26 +0200 |
|---|---|---|
| committer | Jakob Heher <jakob.heher@iaik.tugraz.at> | 2026-06-22 16:08:26 +0200 |
| commit | b791a9140fae5a07fd2c9f24c7f44803b472ed77 (patch) | |
| tree | 60835cc074f800a4ee725462fa7af2afe1abbdae /pdf-as-pdfbox-2/src/main/java/at/knowcenter | |
| parent | 2f209e01da276e9862d6e0f63d02bcfb14728d9b (diff) | |
| download | pdf-as-4-b791a9140fae5a07fd2c9f24c7f44803b472ed77.tar.gz pdf-as-4-b791a9140fae5a07fd2c9f24c7f44803b472ed77.tar.bz2 pdf-as-4-b791a9140fae5a07fd2c9f24c7f44803b472ed77.zip | |
remove pdfbox 2 module
Diffstat (limited to 'pdf-as-pdfbox-2/src/main/java/at/knowcenter')
19 files changed, 0 insertions, 2470 deletions
diff --git a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/PDFPage.java b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/PDFPage.java deleted file mode 100644 index c49d99a5..00000000 --- a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/PDFPage.java +++ /dev/null @@ -1,660 +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.pdfbox2.pdf; - -import java.awt.Rectangle; -import java.awt.geom.GeneralPath; -import java.io.IOException; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import lombok.Getter; -import lombok.Setter; -import org.apache.commons.lang3.math.NumberUtils; -import org.apache.pdfbox.contentstream.operator.Operator; -import org.apache.pdfbox.contentstream.operator.OperatorProcessor; -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.PDXObject; -import org.apache.pdfbox.pdmodel.graphics.form.PDFormXObject; -import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotation; -import org.apache.pdfbox.text.PDFTextStripper; -import org.apache.pdfbox.text.TextPosition; -import org.apache.pdfbox.util.Matrix; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import at.knowcenter.wag.egov.egiz.pdf.Pos; -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.operator.path.construction.ClosePath; -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.operator.path.construction.CurveTo; -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.operator.path.construction.CurveToReplicateFinalPoint; -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.operator.path.construction.CurveToReplicateInitialPoint; -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.operator.path.construction.LineTo; -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.operator.path.construction.MoveTo; -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.operator.path.painting.CloseAndStrokePath; -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.operator.path.painting.CloseFillEvenOddAndStrokePath; -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.operator.path.painting.CloseFillNonZeroAndStrokePath; -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.operator.path.painting.EndPath; -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.operator.path.painting.FillEvenOddAndStrokePath; -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.operator.path.painting.FillNonZeroAndStrokePath; -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.operator.path.painting.FillPathEvenOddRule; -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.operator.path.painting.FillPathNonZeroWindingNumberRule; -import at.knowcenter.wag.egov.egiz.pdfbox2.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.pdfbox2.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. - * -- SETTER -- - * Sets the current path. - * - * - * -- GETTER -- - * Returns the path currently being constructed. - * - @param currentPath - * The new current path. - * @return The path currently being constructed. - - */ - @Getter - @Setter - private GeneralPath currentPath = new GeneralPath(); - - private boolean legacy40; - - /** - * 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, boolean legacy40) - throws IOException { - super(); - - this.legacy40 = legacy40; - - this.effectivePageHeight = effectivePageHeight; - - OperatorProcessor newInvoke = new MyInvoke(this); - this.addOperator(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.addOperator(new MoveTo(this)); - this.addOperator(new LineTo(this)); - this.addOperator(new CurveTo(this)); - this.addOperator(new CurveToReplicateFinalPoint(this)); - this.addOperator(new CurveToReplicateInitialPoint(this)); - this.addOperator(new ClosePath(this)); - - // *** path painting - - // "S": stroke path - this.addOperator(new StrokePath(this)); - this.addOperator(new CloseAndStrokePath(this)); - this.addOperator(new FillPathNonZeroWindingNumberRule(this, true)); - this.addOperator(new FillPathNonZeroWindingNumberRule(this, false)); - this.addOperator(new FillPathEvenOddRule(this)); - this.addOperator(new CloseFillNonZeroAndStrokePath(this)); - this.addOperator(new FillNonZeroAndStrokePath(this)); - this.addOperator(new CloseFillEvenOddAndStrokePath(this)); - this.addOperator(new FillEvenOddAndStrokePath(this)); - this.addOperator(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)); - - } - - /** - * 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().getCropBox(); - - if (boundaryBox == null) { - boundaryBox = this.getCurrentPage().getMediaBox(); - } - - float pageHeight; - - switch (this.getCurrentPage().getRotation()) { - 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(Operator 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.toString(); - - if (at.gv.egiz.pdfas.common.utils.StringUtils.whiteSpaceTrim(character) - .isEmpty()) { - return; - } - - int pageRotation = this.getCurrentPage().getRotation(); - // logger_.debug("PageRotation = " + pageRotation); - /*if (pageRotation == 0) { - current_y = text.getY(); - } - if (pageRotation == 90) { - current_y = text.getY(); - } - if (pageRotation == 180) { - current_y = text.getY(); - } - if (pageRotation == 270) { - current_y = text.getY(); - } - - if (current_y > this.effectivePageHeight) { - this.max_character_ypos = 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; - }*/ - - if (pageRotation == 0) { - current_y = text.getY(); - } - if (pageRotation == 90) { - current_y = text.getX(); - } - if (pageRotation == 180) { - float page_height = this.getCurrentPage().getMediaBox().getHeight(); - current_y = page_height - text.getY(); - } - if (pageRotation == 270) { - float page_height = this.getCurrentPage().getMediaBox().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 (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); - } - -// public Map<String, PDFont> getFonts() { //TODO: pdfbox2 - was @override -// -// COSBase fontObj = null; -// -// if (getCurrentPage().getResources() != null -// && getCurrentPage().getResources().getCOSObject() != null -// && getCurrentPage().getResources().getCOSObject() -// .getDictionaryObject(COSName.FONT) != null) { -// fontObj = getCurrentPage().getResources().getCOSObject() -// .getDictionaryObject(COSName.FONT); -// } -// -// Map<String, PDFont> fontMap = new HashMap<String, PDFont>(); -// -// Iterable<COSName> fontNames = getCurrentPage().getResources().getFontNames(); -// for(COSName fn : fontNames){ -// fontMap.put(fn.getName(), getCurrentPage().getResources().getFont(fn)); -// } -// -// if (fontObj != null) { -// getCurrentPage().getResources().getCOSObject() -// .setItem(COSName.FONT, fontObj); -// } -// -// return fontMap; -// } - - public class MyInvoke extends OperatorProcessor { - - private PDFPage mypage; - - public MyInvoke(PDFPage page) { - this.mypage = page; - } - - public void process(Operator operator, List<COSBase> arguments) - throws IOException { - COSName name = (COSName) arguments.get(0); - - // PDResources res = context.getResources(); - - PDXObject xobject = context.getResources().getXObject(name); - - PDStream stream = xobject.getStream(); - COSStream cos_stream = stream.getCOSObject(); - - 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().getRotation(); - 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() - .getMediaBox().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() - .getMediaBox().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); - actual_lowest_point = findMaxY(transformed_coordinates); - actual_starting_point = actual_lowest_point + min_y; - } - if (pageRotation == 270) { - float min_x = findMinX(transformed_coordinates); - logger.debug("min_x = " + min_x); - - float page_width = this.mypage.getCurrentPage() - .getMediaBox().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 PDFormXObject) { - PDFormXObject form = (PDFormXObject) xobject; - COSStream invoke = (COSStream) form.getCOSObject(); - PDResources pdResources = form.getResources(); - PDPage page = context.getCurrentPage(); - if (pdResources == null) { - pdResources = page.getResources(); - } - - //getContext().processSubStream(page, pdResources, invoke);//TODO: pdfbox2 - correct? - getContext().processPage(page); - - } - } - - @Override - public String getName() { - return "Do"; - } - } - - 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(); - float upper_y = 0; - 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.getRotation(); - // logger_.debug("PageRotation = " + pageRotation); - if (pageRotation == 0) { - float page_height = page.getMediaBox().getHeight(); - current_y = page_height - anno.getRectangle().getLowerLeftY(); - upper_y = page_height - anno.getRectangle().getUpperRightY(); - } - if (pageRotation == 90) { - current_y = anno.getRectangle().getUpperRightX(); - upper_y = anno.getRectangle().getLowerLeftX(); - } - if (pageRotation == 180) { - current_y = anno.getRectangle().getUpperRightY(); - upper_y = anno.getRectangle().getLowerLeftY(); - } - if (pageRotation == 270) { - float page_width = page.getMediaBox().getWidth(); - current_y = page_width - anno.getRectangle().getLowerLeftX(); - upper_y = page_width - anno.getRectangle().getUpperRightX(); - } - - - - if (current_y > this.effectivePageHeight) { - if(!this.legacy40 && upper_y < this.effectivePageHeight) { - // Bottom of annotation is below footer line, - // but top of annotation is above footer line! - // so no place left on this page! - this.max_character_ypos = 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-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/PDFUtilities.java b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/PDFUtilities.java deleted file mode 100644 index 6fef7549..00000000 --- a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/PDFUtilities.java +++ /dev/null @@ -1,154 +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.pdfbox2.pdf; - -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.image.BufferedImage; -import java.io.IOException; -import java.util.HashMap; - -import org.apache.pdfbox.pdmodel.PDDocument; -import org.apache.pdfbox.tools.imageio.ImageIOUtil; - -import at.gv.egiz.pdfas.common.settings.ISettings; -import at.gv.egiz.pdfas.lib.api.IConfigurationConstants; -import at.gv.egiz.pdfas.lib.impl.pdfbox2.positioning.PositioningRenderer; -import at.gv.egiz.pdfas.lib.impl.stamping.IPDFVisualObject; - -public abstract class PDFUtilities implements IConfigurationConstants{ - - public static Color MAGIC_COLOR = new Color(152,254,52);// green-ish background - - public static float getMaxYPosition( - PDDocument pdfDataSource, int page, IPDFVisualObject pdfTable, float signatureMarginVertical, float footer_line, ISettings settings) throws IOException { - - int width = (int) pdfDataSource.getPage(page).getCropBox().getWidth(); - int height = (int) pdfDataSource.getPage(page).getCropBox().getHeight(); - - // flip image in case of page rotation is 90 or 270 - BufferedImage bim = (pdfDataSource.getPage(page).getRotation() % 180 == 0) - ? new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB) - : new BufferedImage(height, width, BufferedImage.TYPE_INT_ARGB); - - Graphics2D graphics = bim.createGraphics(); - graphics.setBackground(MAGIC_COLOR); - - PositioningRenderer renderer = new PositioningRenderer(pdfDataSource); - renderer.renderPageToGraphics(page, graphics); - - /* - * Only used if background color should be determined automatically. - * That can be necessary of PDF contains page-size images. - */ - Color bgColor = Boolean.parseBoolean(settings.getValue(BG_COLOR_DETECTION)) - ? determineBackgroundColor(bim) - : MAGIC_COLOR; - - int yCoord = bim.getHeight() - 1 - (int)footer_line; - - for(int row = yCoord; row >= 0; row--) - { - if (row == 0) { - yCoord = row; - - } else { - for(int col = 0; col < bim.getWidth(); col++){ - int val = bim.getRGB(col, row); - if(val != bgColor.getRGB()){ - yCoord = row; - row=-1; - break; - } - } - } - } - - String outFile = settings.getValue(SIG_PLACEMENT_DEBUG_OUTPUT); - if(outFile != null){ - ImageIOUtil.writeImage(bim, outFile, 72); - } - - return yCoord; - - } - - public static Color determineBackgroundColor(BufferedImage bim){ - - int inset = 5;//px - - int pixelUpLeft = bim.getRGB(inset,inset); - int pixelUpRight = bim.getRGB(bim.getWidth()-inset,inset); - int pixelDownLeft = bim.getRGB(inset, bim.getHeight()-inset); - int pixelDownRight = bim.getRGB(bim.getWidth()-inset, bim.getHeight()-inset); - - HashMap<Integer, Integer> stats = new HashMap<Integer, Integer>(); - stats.put(pixelUpLeft, 0); - stats.put(pixelUpRight, 0); - stats.put(pixelDownLeft, 0); - stats.put(pixelDownRight, 0); - - stats.put(pixelUpLeft, stats.get(pixelUpLeft)+1); - stats.put(pixelUpRight, stats.get(pixelUpRight)+1); - stats.put(pixelDownLeft, stats.get(pixelDownLeft)+1); - stats.put(pixelDownRight, stats.get(pixelDownRight)+1); - - int bgValue = -1; - int cnt =0; - for(int key:stats.keySet()){ - if(stats.get(key) > cnt){ - cnt = stats.get(key); - bgValue = key; - } - } - - return new Color(bgValue); - } - -} diff --git a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/PathConstructionOperatorProcessor.java b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/PathConstructionOperatorProcessor.java deleted file mode 100644 index ab273cd3..00000000 --- a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/PathConstructionOperatorProcessor.java +++ /dev/null @@ -1,85 +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.pdfbox2.pdf.operator.path; - -import java.awt.geom.Point2D; - -import org.apache.pdfbox.contentstream.operator.OperatorProcessor; - -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.PDFPage; - -/** - * 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-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/PathPaintingOperatorProcessor.java b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/PathPaintingOperatorProcessor.java deleted file mode 100644 index 1d2cdd98..00000000 --- a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/PathPaintingOperatorProcessor.java +++ /dev/null @@ -1,66 +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.pdfbox2.pdf.operator.path; - -import org.apache.pdfbox.contentstream.operator.OperatorProcessor; - -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.PDFPage; - -/** - * 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-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/ClosePath.java b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/ClosePath.java deleted file mode 100644 index 098ce8f6..00000000 --- a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/ClosePath.java +++ /dev/null @@ -1,97 +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.pdfbox2.pdf.operator.path.construction; - -import java.io.IOException; -import java.util.List; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.pdfbox.contentstream.operator.Operator; -import org.apache.pdfbox.cos.COSBase; - -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.PDFPage; -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.operator.path.PathConstructionOperatorProcessor; - -/** - * 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(Operator 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); - } - } - - @Override - public String getName() { - return "h"; - } - -} diff --git a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/CurveTo.java b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/CurveTo.java deleted file mode 100644 index e6b76400..00000000 --- a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/CurveTo.java +++ /dev/null @@ -1,114 +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.pdfbox2.pdf.operator.path.construction; - -import java.awt.geom.Point2D; -import java.io.IOException; -import java.util.List; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.pdfbox.contentstream.operator.Operator; -import org.apache.pdfbox.cos.COSBase; -import org.apache.pdfbox.cos.COSNumber; - -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.PDFPage; -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.operator.path.PathConstructionOperatorProcessor; - -/** - * 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(Operator 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.floatValue(), y1.floatValue()); - Point2D p2 = transform(x2.floatValue(), y2.floatValue()); - Point2D p3 = transform(x3.floatValue(), y3.floatValue()); - - 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); - } - } - - @Override - public String getName() { - return "c"; - } - -} diff --git a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/CurveToReplicateFinalPoint.java b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/CurveToReplicateFinalPoint.java deleted file mode 100644 index 86c95c17..00000000 --- a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/CurveToReplicateFinalPoint.java +++ /dev/null @@ -1,111 +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.pdfbox2.pdf.operator.path.construction; - -import java.awt.geom.Point2D; -import java.io.IOException; -import java.util.List; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.pdfbox.contentstream.operator.Operator; -import org.apache.pdfbox.cos.COSBase; -import org.apache.pdfbox.cos.COSNumber; - -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.PDFPage; -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.operator.path.PathConstructionOperatorProcessor; - -/** - * 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(Operator 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.floatValue(), y1.floatValue()); - Point2D p3 = transform(x3.floatValue(), y3.floatValue()); - - 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); - } - } - - @Override - public String getName() { - return "y"; - } - -} diff --git a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/CurveToReplicateInitialPoint.java b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/CurveToReplicateInitialPoint.java deleted file mode 100644 index 91c90589..00000000 --- a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/CurveToReplicateInitialPoint.java +++ /dev/null @@ -1,113 +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.pdfbox2.pdf.operator.path.construction; - -import java.awt.geom.Point2D; -import java.io.IOException; -import java.util.List; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.pdfbox.contentstream.operator.Operator; -import org.apache.pdfbox.cos.COSBase; -import org.apache.pdfbox.cos.COSNumber; - -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.PDFPage; -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.operator.path.PathConstructionOperatorProcessor; - -/** - * 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(Operator 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.floatValue(), y2.floatValue()); - Point2D p3 = transform(x3.floatValue(), y3.floatValue()); - - 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); - } - } - - @Override - public String getName() { - return "v"; - } - -} diff --git a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/LineTo.java b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/LineTo.java deleted file mode 100644 index 94fbbbb0..00000000 --- a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/LineTo.java +++ /dev/null @@ -1,100 +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.pdfbox2.pdf.operator.path.construction; - -import java.awt.geom.Point2D; -import java.io.IOException; -import java.util.List; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.pdfbox.contentstream.operator.Operator; -import org.apache.pdfbox.cos.COSBase; -import org.apache.pdfbox.cos.COSNumber; - -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.PDFPage; -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.operator.path.PathConstructionOperatorProcessor; - -/** - * 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(Operator 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.floatValue(), y.floatValue()); - - 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); - } - } - - @Override - public String getName() { - return "l"; - } - -} diff --git a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/MoveTo.java b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/MoveTo.java deleted file mode 100644 index 3fe123ea..00000000 --- a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/MoveTo.java +++ /dev/null @@ -1,103 +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.pdfbox2.pdf.operator.path.construction; - -import java.awt.geom.Point2D; -import java.io.IOException; -import java.util.List; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.pdfbox.contentstream.operator.Operator; -import org.apache.pdfbox.cos.COSBase; -import org.apache.pdfbox.cos.COSNumber; - -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.PDFPage; -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.operator.path.PathConstructionOperatorProcessor; - -/** - * 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{ - - public MoveTo(PDFPage context) { - super(context); - // TODO Auto-generated constructor stub - } - - private Log log = LogFactory.getLog(getClass()); - - public void process(Operator 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.floatValue(), y.floatValue()); - - 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); - } - } - - - @Override - public String getName() { - return "m"; - } - -} diff --git a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/CloseAndStrokePath.java b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/CloseAndStrokePath.java deleted file mode 100644 index 37182ddc..00000000 --- a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/CloseAndStrokePath.java +++ /dev/null @@ -1,88 +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.pdfbox2.pdf.operator.path.painting; - -import java.io.IOException; -import java.util.List; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.pdfbox.contentstream.operator.Operator; -import org.apache.pdfbox.cos.COSBase; - -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.PDFPage; -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.operator.path.PathPaintingOperatorProcessor; - -/** - * 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(Operator operator, List<COSBase> operands) throws IOException { - if (log.isTraceEnabled()) { - log.trace("Closing and stroking path."); - } - context.processOperator("h", operands); - context.processOperator("S", operands); - } - - @Override - public String getName() { - return "s"; - } - -} diff --git a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/CloseFillEvenOddAndStrokePath.java b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/CloseFillEvenOddAndStrokePath.java deleted file mode 100644 index 597084e8..00000000 --- a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/CloseFillEvenOddAndStrokePath.java +++ /dev/null @@ -1,89 +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.pdfbox2.pdf.operator.path.painting; - -import java.io.IOException; -import java.util.List; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.pdfbox.contentstream.operator.Operator; -import org.apache.pdfbox.cos.COSBase; - -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.PDFPage; -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.operator.path.PathPaintingOperatorProcessor; - -/** - * 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(Operator 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); - } - - @Override - public String getName() { - return "b*"; - } - -} diff --git a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/CloseFillNonZeroAndStrokePath.java b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/CloseFillNonZeroAndStrokePath.java deleted file mode 100644 index 8ab72438..00000000 --- a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/CloseFillNonZeroAndStrokePath.java +++ /dev/null @@ -1,89 +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.pdfbox2.pdf.operator.path.painting; - -import java.io.IOException; -import java.util.List; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.pdfbox.contentstream.operator.Operator; -import org.apache.pdfbox.cos.COSBase; - -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.PDFPage; -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.operator.path.PathPaintingOperatorProcessor; - -/** - * 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(Operator 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); - } - - @Override - public String getName() { - return "b"; - } - -} diff --git a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/EndPath.java b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/EndPath.java deleted file mode 100644 index a43df0a2..00000000 --- a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/EndPath.java +++ /dev/null @@ -1,97 +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.pdfbox2.pdf.operator.path.painting; - -import java.io.IOException; -import java.util.List; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.pdfbox.contentstream.operator.Operator; -import org.apache.pdfbox.cos.COSBase; - -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.PDFPage; -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.operator.path.PathPaintingOperatorProcessor; - -/** - * 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(Operator 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); - } - } - - @Override - public String getName() { - return "n"; - } - -} diff --git a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/FillEvenOddAndStrokePath.java b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/FillEvenOddAndStrokePath.java deleted file mode 100644 index 77e65666..00000000 --- a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/FillEvenOddAndStrokePath.java +++ /dev/null @@ -1,101 +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.pdfbox2.pdf.operator.path.painting; - -import java.awt.geom.GeneralPath; -import java.io.IOException; -import java.util.List; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.pdfbox.contentstream.operator.Operator; -import org.apache.pdfbox.cos.COSBase; - -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.PDFPage; -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.operator.path.PathPaintingOperatorProcessor; - -/** - * 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(Operator 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); - } - } - - @Override - public String getName() { - return "B*"; - } - -} diff --git a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/FillNonZeroAndStrokePath.java b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/FillNonZeroAndStrokePath.java deleted file mode 100644 index 9a1f0b69..00000000 --- a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/FillNonZeroAndStrokePath.java +++ /dev/null @@ -1,101 +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.pdfbox2.pdf.operator.path.painting; - -import java.awt.geom.GeneralPath; -import java.io.IOException; -import java.util.List; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.pdfbox.contentstream.operator.Operator; -import org.apache.pdfbox.cos.COSBase; - -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.PDFPage; -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.operator.path.PathPaintingOperatorProcessor; - -/** - * 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(Operator 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); - } - } - - @Override - public String getName() { - return "B"; - } - -} diff --git a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/FillPathEvenOddRule.java b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/FillPathEvenOddRule.java deleted file mode 100644 index 092ba751..00000000 --- a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/FillPathEvenOddRule.java +++ /dev/null @@ -1,100 +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.pdfbox2.pdf.operator.path.painting; - -import java.awt.Rectangle; -import java.io.IOException; -import java.util.List; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.pdfbox.contentstream.operator.Operator; -import org.apache.pdfbox.cos.COSBase; - -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.PDFPage; -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.operator.path.PathPaintingOperatorProcessor; - -/** - * 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(Operator 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); - } - } - - @Override - public String getName() { - return "f*"; - } - -} diff --git a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/FillPathNonZeroWindingNumberRule.java b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/FillPathNonZeroWindingNumberRule.java deleted file mode 100644 index 3b8d13f9..00000000 --- a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/FillPathNonZeroWindingNumberRule.java +++ /dev/null @@ -1,103 +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.pdfbox2.pdf.operator.path.painting; - -import java.awt.Rectangle; -import java.io.IOException; -import java.util.List; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.pdfbox.contentstream.operator.Operator; -import org.apache.pdfbox.cos.COSBase; - -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.PDFPage; -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.operator.path.PathPaintingOperatorProcessor; - -/** - * 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()); - private final boolean lowercase; - - public FillPathNonZeroWindingNumberRule(PDFPage context, boolean lowercase) { - super(context); - this.lowercase = lowercase; - } - - @Override - public void process(Operator 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); - } - } - - @Override - public String getName() { - return lowercase ? "f" : "F"; - } - -} diff --git a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/StrokePath.java b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/StrokePath.java deleted file mode 100644 index ef9fc24b..00000000 --- a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/StrokePath.java +++ /dev/null @@ -1,99 +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.pdfbox2.pdf.operator.path.painting; - -import java.awt.Rectangle; -import java.io.IOException; -import java.util.List; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.pdfbox.contentstream.operator.Operator; -import org.apache.pdfbox.cos.COSBase; - -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.PDFPage; -import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.operator.path.PathPaintingOperatorProcessor; - -/** - * 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(Operator 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); - } - } - - @Override - public String getName() { - return "S"; - } - -} |
