/**
* Copyright 2006 by Know-Center, Graz, Austria
* 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: TablePos.java,v 1.1 2006/08/25 17:10:08 wprinz Exp $
*/
package at.knowcenter.wag.egov.egiz.pdf;
import java.io.Serializable;
import at.gv.egiz.pdfas.exceptions.ErrorCode;
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
{
/**
* SVUID.
*/
private static final long serialVersionUID = -5299027706623518059L;
/**
* The page on which the block should be displayed.
*
*/
private int page = 0;
/**
* The x position.
*/
private float pos_x = 0.0f;
/**
* The y position.
*/
private float pos_y = 0.0f;
/**
* The width of the block.
*/
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