From 9aee23f6c0a745a83fdf195ab384fdfe7dd7f5e4 Mon Sep 17 00:00:00 2001 From: knowcenter Date: Fri, 2 Mar 2007 08:34:25 +0000 Subject: New posstring handling git-svn-id: https://joinup.ec.europa.eu/svn/pdf-as/trunk@41 7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c --- .../at/knowcenter/wag/egov/egiz/pdf/TablePos.java | 216 +++++++++++++++++++-- 1 file changed, 196 insertions(+), 20 deletions(-) (limited to 'src/main/java/at/knowcenter/wag/egov/egiz/pdf') diff --git a/src/main/java/at/knowcenter/wag/egov/egiz/pdf/TablePos.java b/src/main/java/at/knowcenter/wag/egov/egiz/pdf/TablePos.java index 6cfdded..df4f9cd 100644 --- a/src/main/java/at/knowcenter/wag/egov/egiz/pdf/TablePos.java +++ b/src/main/java/at/knowcenter/wag/egov/egiz/pdf/TablePos.java @@ -18,12 +18,14 @@ package at.knowcenter.wag.egov.egiz.pdf; import java.io.Serializable; +import at.knowcenter.wag.egov.egiz.exceptions.PDFDocumentException; /** * Class that holds the exact position where the table should be written to the * document. * * @author wprinz + * @author mruhmer */ public class TablePos implements Serializable { @@ -36,41 +38,215 @@ public class TablePos implements Serializable /** * The page on which the block should be displayed. * - *

- * A value greater than or equal 1 means to absolutely position the signature - * on that page. - *

- *

- * A value of -1 means to append a new page to the document and absolutely - * position the signature on the new page. - *

- *

- * A value of -2 means to determine the length of the last page as without - * absolute positioning, but ignore all text below a certain footer line. If - * there is enough space between the end of the text and this footer line, the - * signature should be positioned automatically in there. Otherwise it should - * be placed on a new page. - *

*/ - public int page = 0; + private int page = 0; /** * The x position. */ - public float pos_x = 0.0f; + private float pos_x = 0.0f; /** * The y position. */ - public float pos_y = 0.0f; + private float pos_y = 0.0f; /** * The width of the block. */ - public float width = 0.0f; - + private float width = 0.0f; /** * The top y position of the footer line. */ public float footer_line = 0.0f; + + /** + * The y position. + */ + public String myposstring = ""; + + private boolean newpage = false; + private boolean autoX = true; + private boolean autoY = true; + private boolean autoW = true; + private boolean autoP = true; + + public boolean isXauto() + { + return this.autoX; + } + public boolean isYauto() + { + return this.autoY; + } + public boolean isWauto() + { + return this.autoW; + } + public boolean isPauto() + { + return this.autoP; + } + public boolean isNewPage() + { + return this.newpage; + } + public int getPage() + { + return this.page; + } + public float getFooterLine() + { + //ignore if newpage and y is not auto + if (!this.autoY || this.newpage) + { + return 0.0f; + } + return this.footer_line; + } + public float getPosX() + { + return this.pos_x; + } + public float getPosY() + { + return this.pos_y; + } + public float getWidth() + { + return this.width; + } + public TablePos() + { + //nothing to do --> default + } + + /** + * Constructor. + * + * @param pos_string The pos instruction. + * format : [x:x_algo];[y:y_algo];[w:w_algo][p:p_algo];[f:f_algo] + * x_algo:='auto' ... automatic positioning x + * floatvalue ... absolute x + * y_algo:='auto' ... automatic positioning y + * floatvalue ... absolute y + * w_algo:='auto' ... automatic width + * floatvalue ... absolute width + * p_algo:='auto' ... automatic last page + * 'new' ... new page + * intvalue ... pagenumber + * f_algo floatvalue ... consider footerline (only if y_algo is auto and p_algo is not 'new') + * @throws PDFDocumentException + */ + public TablePos(String pos_string) throws PDFDocumentException + { + //parse posstring and throw exception + //[x:x_algo];[y:y_algo];[w:w_algo][p:p_algo];[f:f_algo] + + String[] strs = pos_string.split(";"); + try + { + for (int cmds = 0;cmds