diff options
| author | pdanner <pdanner@7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c> | 2010-11-04 16:35:10 +0000 | 
|---|---|---|
| committer | pdanner <pdanner@7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c> | 2010-11-04 16:35:10 +0000 | 
| commit | 89a45b322b16d3c3a949b552f4fb4f07f2914817 (patch) | |
| tree | 4cfbc1a02fae77cb9180d51061a31f24236bfe0e /src/main | |
| parent | ab57bf058107ad9ea251dfb8e3fc576834ea9f68 (diff) | |
| download | pdf-as-3-89a45b322b16d3c3a949b552f4fb4f07f2914817.tar.gz pdf-as-3-89a45b322b16d3c3a949b552f4fb4f07f2914817.tar.bz2 pdf-as-3-89a45b322b16d3c3a949b552f4fb4f07f2914817.zip | |
- Added image[valign|halign] config parameters to allow separate alignment of images.
- Normalization of value cell values does not remove multiple newlines any more
git-svn-id: https://joinup.ec.europa.eu/svn/pdf-as/trunk@601 7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c
Diffstat (limited to 'src/main')
8 files changed, 122 insertions, 40 deletions
| diff --git a/src/main/java/at/gv/egiz/pdfas/impl/signator/binary/BinarySignator_1_0_0.java b/src/main/java/at/gv/egiz/pdfas/impl/signator/binary/BinarySignator_1_0_0.java index bdb5fdb..e1257dc 100644 --- a/src/main/java/at/gv/egiz/pdfas/impl/signator/binary/BinarySignator_1_0_0.java +++ b/src/main/java/at/gv/egiz/pdfas/impl/signator/binary/BinarySignator_1_0_0.java @@ -17,7 +17,6 @@   */
  package at.gv.egiz.pdfas.impl.signator.binary;
 -import java.io.File;
  import java.io.IOException;
  import java.io.InputStream;
  import java.io.OutputStream;
 @@ -42,7 +41,6 @@ import at.gv.egiz.pdfas.framework.signator.SignatorInformation;  import at.gv.egiz.pdfas.impl.input.CompoundPdfDataSourceImpl;
  import at.gv.egiz.pdfas.impl.signator.IncrementalUpdateHelper;
  import at.gv.egiz.pdfas.utils.OgnlUtil;
 -import at.gv.egiz.pdfas.utils.PDFASUtils;
  import at.knowcenter.wag.egov.egiz.PdfAS;
  import at.knowcenter.wag.egov.egiz.PdfASID;
  import at.knowcenter.wag.egov.egiz.cfg.SettingsReader;
 @@ -87,6 +85,7 @@ import com.lowagie.text.pdf.PdfPTable;   */
  public class BinarySignator_1_0_0 implements Signator
  {
 +// 04.11.2010 changed by exthex - fillReplacesWithValue no longer removes multiple newlines from values
     private static Log log = LogFactory.getLog(BinarySignator_1_0_0.class);
 @@ -338,7 +337,7 @@ public class BinarySignator_1_0_0 implements Signator           // evaluate expression
           String res = ognl.compileMessage(ri.sfd.value);
 -         ri.value = this.normalizer.normalize(res);                 
 +         ri.value = this.normalizer.normalize(res, true);                 
        } else {             
           ri.value = iui.signed_signature_object.retrieveStringValue(ri.sfd.field_name);
 diff --git a/src/main/java/at/knowcenter/wag/egov/egiz/PdfAS.java b/src/main/java/at/knowcenter/wag/egov/egiz/PdfAS.java index 431f7b2..57868d0 100644 --- a/src/main/java/at/knowcenter/wag/egov/egiz/PdfAS.java +++ b/src/main/java/at/knowcenter/wag/egov/egiz/PdfAS.java @@ -1175,7 +1175,7 @@ public abstract class PdfAS    public static String normalizeText(final String text) throws NormalizeException
    {
      Normalizer normalizer = new Normalizer();
 -    String normalized_text = normalizer.normalize(text);
 +    String normalized_text = normalizer.normalize(text, false);
      // fix #331 ??
      //normalized_text = normalized_text.replaceAll("\n", "");
      return normalized_text;
 diff --git a/src/main/java/at/knowcenter/wag/egov/egiz/pdf/PDFSignatureObjectIText.java b/src/main/java/at/knowcenter/wag/egov/egiz/pdf/PDFSignatureObjectIText.java index 85abd73..5c1cddb 100644 --- a/src/main/java/at/knowcenter/wag/egov/egiz/pdf/PDFSignatureObjectIText.java +++ b/src/main/java/at/knowcenter/wag/egov/egiz/pdf/PDFSignatureObjectIText.java @@ -66,6 +66,7 @@ public class PDFSignatureObjectIText implements PDFSignatureObject  // 03.11.2010 changed by exthex to allow setting separate hAlign and vAlign for value and non-value cells.
  // If no value for valuevalign or valuehalign is set the values from valign and halign are taken.
  // Also fixed a minor bug which prevented proper style inheritment (Bug Nr. #534).
 +// 04.11.2010 changed by exthex - allow setting separate hAlign and vAlign for image cells analog to value cells.
    private static final String SIG_PDFA1_B_VALID = "SIG_PDFA1B_VALID";
 @@ -182,12 +183,12 @@ public class PDFSignatureObjectIText implements PDFSignatureObject     *          the pdf cell to be styled
     * @param cellStyle
     *          the abstract style definition
 -   * @param isValue
 -   *          true if the pdfCell is a value cell - the appropriate style will be set
 +   * @param type
 +   *          type of the cell to render - the appropriate style will be set
     * @see com.lowagie.text.pdf.PdfPCell
     * @see at.knowcenter.wag.egov.egiz.table.Style
     */
 -  private void setCellStyle(PdfPCell pdfCell, Style cellStyle, boolean isValue)
 +  private void setCellStyle(PdfPCell pdfCell, Style cellStyle, int type)
    {
      if (cellStyle != null)
      {
 @@ -205,16 +206,20 @@ public class PDFSignatureObjectIText implements PDFSignatureObject          pdfCell.setBorder(0);
        }
        int align = -1;
 -      if (isValue && cellStyle.getValueVAlign() != null)
 +      if (type == Entry.TYPE_VALUE && cellStyle.getValueVAlign() != null)
     	    align = ((Integer) alignMap_.get(cellStyle.getValueVAlign())).intValue();
 +      else if (type == Entry.TYPE_IMAGE && cellStyle.getImageVAlign() != null)
 +        align = ((Integer) alignMap_.get(cellStyle.getImageVAlign())).intValue();
        else if (cellStyle.getVAlign() != null)
          align = ((Integer) alignMap_.get(cellStyle.getVAlign())).intValue();
        if (align != -1)
          pdfCell.setVerticalAlignment(align);
        align = -1;
 -      if (isValue && cellStyle.getValueHAlign() != null)
 +      if (type == Entry.TYPE_VALUE && cellStyle.getValueHAlign() != null)
          align = ((Integer) alignMap_.get(cellStyle.getValueHAlign())).intValue();
 +      else if (type == Entry.TYPE_IMAGE && cellStyle.getImageHAlign() != null)
 +          align = ((Integer) alignMap_.get(cellStyle.getImageHAlign())).intValue();
        else if (cellStyle.getHAlign() != null)
          align = ((Integer) alignMap_.get(cellStyle.getHAlign())).intValue();
        if (align != -1)
 @@ -375,7 +380,7 @@ public class PDFSignatureObjectIText implements PDFSignatureObject        }
        Phrase text_phrase = new Phrase(text, cell_font);
        pdf_cell = new PdfPCell(text_phrase);
 -      setCellStyle(pdf_cell, cell_style, isValue);
 +      setCellStyle(pdf_cell, cell_style, (isValue?Entry.TYPE_VALUE:Entry.TYPE_CAPTION));
        break;
      case Entry.TYPE_IMAGE:
        try
 @@ -408,7 +413,7 @@ public class PDFSignatureObjectIText implements PDFSignatureObject            fit = false;
          }
          pdf_cell = new PdfPCell(image, fit);
 -        setCellStyle(pdf_cell, cell_style, false);
 +        setCellStyle(pdf_cell, cell_style, Entry.TYPE_IMAGE);
        }
        catch (BadElementException e)
        {
 @@ -490,7 +495,7 @@ public class PDFSignatureObjectIText implements PDFSignatureObject      pdf_table = new PdfPTable(cols);
      pdf_table.setWidthPercentage(abstractTable.getWidth());
      Style table_style = abstractTable.getStyle();
 -    setCellStyle(pdf_table.getDefaultCell(), table_style, false);
 +    setCellStyle(pdf_table.getDefaultCell(), table_style, Entry.TYPE_TABLE);
      ArrayList rows = abstractTable.getRows();
      for (int row_idx = 0; row_idx < rows.size(); row_idx++)
 diff --git a/src/main/java/at/knowcenter/wag/egov/egiz/sig/SignatureObject.java b/src/main/java/at/knowcenter/wag/egov/egiz/sig/SignatureObject.java index 859e54e..24d1411 100644 --- a/src/main/java/at/knowcenter/wag/egov/egiz/sig/SignatureObject.java +++ b/src/main/java/at/knowcenter/wag/egov/egiz/sig/SignatureObject.java @@ -73,6 +73,7 @@ public class SignatureObject implements Serializable  {
  // 03.11.2010 changed by exthex - added default for defaultValueStyle_.hAlign since we had to remove the hardcoded default in Style
 +// 04.11.2010 changed by exthex - setSigValue no longer removes multiple newlines from value
    /**
     * SVUID.
 @@ -369,7 +370,7 @@ public class SignatureObject implements Serializable        sigEntries_.put(key, sig_entry);
        is_new = true;
      }
 -    value = normalizer_.normalize(value);
 +    value = normalizer_.normalize(value, true);
      if (SignatureTypes.SIG_VALUE.equals(key) || SignatureTypes.SIG_ID.equals(key) || SignatureTypes.SIG_NUMBER.equals(key))
      {
        value = removeAllWhiteSpaces(value);
 @@ -1090,7 +1091,7 @@ public class SignatureObject implements Serializable     * @author tknall
     */
    private String normalizeIssuer(String issuer) {
 -	issuer = normalizer_.normalize(issuer);
 +	issuer = normalizer_.normalize(issuer, false);
  	issuer = removeAllWhiteSpaces(issuer);
  	return issuer;
    }
 diff --git a/src/main/java/at/knowcenter/wag/egov/egiz/table/Style.java b/src/main/java/at/knowcenter/wag/egov/egiz/table/Style.java index 5b3db7d..d26570c 100644 --- a/src/main/java/at/knowcenter/wag/egov/egiz/table/Style.java +++ b/src/main/java/at/knowcenter/wag/egov/egiz/table/Style.java @@ -39,6 +39,7 @@ public class Style implements Serializable {  // 03.11.2010 changed by exthex - added valuevalign and valuehalign to allow separate layout for value and non-value cells.
  // Also the hardcoded default values for halign and valign were removed to allow proper inheritment.
 +// 04.11.2010 changed by exthex - added imagevalign and imagehalign analog to valuevalign/valuehalign
    /**
     * SVUID.
 @@ -84,13 +85,22 @@ public class Style implements Serializable {    public final static String VALIGN = "valign";
    /**
 -   * halign key
 +   * value halign key
     */
    public final static String VALUEHALIGN = "valuehalign";
    /**
 -   * valign key
 +   * value valign key
     */
    public final static String VALUEVALIGN = "valuevalign";
 +
 +  /**
 +   * image halign key
 +   */
 +  public final static String IMAGEHALIGN = "imagehalign";
 +  /**
 +   * image valign key
 +   */
 +  public final static String IMAGEVALIGN = "imagevalign";
    /**
     * padding key, default padding = 1
     */
 @@ -188,6 +198,14 @@ public class Style implements Serializable {     */
    private String valueVAlign_ = null;
    /**
 +   * The current imagehalign value
 +   */
 +  private String imageHAlign_ = null;
 +  /**
 +   * The current imagevalign value
 +   */
 +  private String imageVAlign_ = null;
 +  /**
     * The current border value -> initialized with the default border value
     */
    private float border_ = DEFAULT_BORDER;
 @@ -248,6 +266,16 @@ public class Style implements Serializable {          valueVAlign_ = value;
        }
      }
 +    if (IMAGEHALIGN.equals(id)) {
 +      if (LEFT.equals(value) || CENTER.equals(value) || RIGHT.equals(value)) {
 +        imageHAlign_ = value;
 +      }
 +    }
 +    if (IMAGEVALIGN.equals(id)) {
 +      if (TOP.equals(value) || MIDDLE.equals(value) || BOTTOM.equals(value)) {
 +        imageVAlign_ = value;
 +      }
 +    }
      if (PADDING.equals(id)) {
        padding_ = Float.parseFloat(value);
      }
 @@ -399,6 +427,36 @@ public class Style implements Serializable {    public String getValueVAlign() {
      return valueVAlign_;
    }
 +  
 +  /**
 +   * @param align The imageHAlign to set.
 +   */
 +  public void setImageHAlign(String align) {
 +    imageHAlign_ = align;
 +  }
 +
 +  /**
 +   * Returns the image halign
 +   * @return Returns the image halign
 +   */
 +  public String getImageHAlign() {
 +    return imageHAlign_;
 +  }
 +
 +  /**
 +   * @param align The imageVAlign to set.
 +   */
 +  public void setImageVAlign(String align) {
 +    imageVAlign_ = align;
 +  }
 +
 +  /**
 +   * Returns the image valign
 +   * @return Returns the image valign
 +   */
 +  public String getImageVAlign() {
 +    return imageVAlign_;
 +  }
    /**
     * Returns the scaleToFit dimensions to be applied for image-cells.
 @@ -449,6 +507,8 @@ public class Style implements Serializable {        newStyle.setBorder(baseStyle.getBorder());
        newStyle.setFont(baseStyle.getFont());
        newStyle.setHAlign(baseStyle.getHAlign());
 +      newStyle.setImageHAlign(baseStyle.getImageHAlign());
 +      newStyle.setImageVAlign(baseStyle.getImageVAlign());
        newStyle.setPadding(baseStyle.getPadding());
        newStyle.setVAlign(baseStyle.getVAlign());
        newStyle.setValueFont(baseStyle.getValueFont());
 @@ -463,6 +523,8 @@ public class Style implements Serializable {        if (newStyle.getBorder() == DEFAULT_BORDER) { newStyle.setBorder(inheritStyle.getBorder()); }
        if (newStyle.getFont() == null) { newStyle.setFont(inheritStyle.getFont()); }
        if (newStyle.getHAlign() == null) { newStyle.setHAlign(inheritStyle.getHAlign()); }
 +      if (newStyle.getImageHAlign() == null) { newStyle.setImageHAlign(inheritStyle.getImageHAlign()); }
 +      if (newStyle.getImageVAlign() == null) { newStyle.setImageVAlign(inheritStyle.getImageVAlign()); }
        if (newStyle.getPadding() == DEFAULT_PADDING) { newStyle.setPadding(inheritStyle.getPadding()); }
        if (newStyle.getVAlign() == null) { newStyle.setVAlign(inheritStyle.getVAlign()); }
        if (newStyle.getValueFont() == null) { newStyle.setValueFont(inheritStyle.getValueFont()); }
 diff --git a/src/main/java/at/knowcenter/wag/egov/egiz/tools/Normalize.java b/src/main/java/at/knowcenter/wag/egov/egiz/tools/Normalize.java index a2df327..80cb286 100644 --- a/src/main/java/at/knowcenter/wag/egov/egiz/tools/Normalize.java +++ b/src/main/java/at/knowcenter/wag/egov/egiz/tools/Normalize.java @@ -30,9 +30,10 @@ public interface Normalize {    /**
     * Normalize a given text.
     * @param rawText the raw text to normalize
 +   * @param keepMultipleLineBreaks if true multiple line breaks in a row will not be normalized to a single line break
     * @return the normalized string
     */
 -  public String normalize(String rawText);
 +  public String normalize(String rawText, boolean keepMultipleLineBreaks);
    /**
     * Return the current normalizer version string.
     * @return the version string
 diff --git a/src/main/java/at/knowcenter/wag/egov/egiz/tools/NormalizeV01.java b/src/main/java/at/knowcenter/wag/egov/egiz/tools/NormalizeV01.java index d3af9b5..c8f10d9 100644 --- a/src/main/java/at/knowcenter/wag/egov/egiz/tools/NormalizeV01.java +++ b/src/main/java/at/knowcenter/wag/egov/egiz/tools/NormalizeV01.java @@ -28,7 +28,8 @@ import java.io.Serializable;   * @author wlackner
   */
  public class NormalizeV01 implements Normalize, Serializable {
 -
 +// 04.11.2010 change by exthex - added keepMultipleLineBreaks parameter to normalize method 
 +// to allow multiple line breaks to not be normalized to a single one
    /**
     * SVUID.
     */
 @@ -72,7 +73,7 @@ public class NormalizeV01 implements Normalize, Serializable {     * <li>code all multiple line breaks as \n\n</li>
     * <li>replace all Tabs and form feeds with spaces</li>
     * <li>code line breaks as \n</li>
 -   * <li>reduce all multiple line breaks into one line break, code line break as \r</li>
 +   * <li>reduce all multiple line breaks into one line break (only if keepMultipleLineBreaks == false), code line break as \r</li>
     * <li>replace all single line breaks with space</li>
     * <li>normalize spaces</li>
     * <li>remove spaces before and after a line break</li>
 @@ -83,9 +84,11 @@ public class NormalizeV01 implements Normalize, Serializable {     * <li>normalize hypens</li>
     * </ol>
     * 
 +   * @param rawText the text to normalize
 +   * @param keepMultipleLineBreaks if true, multiple newlines in a row will not be normalized to a single line break
     * @see at.knowcenter.wag.egov.egiz.tools.Normalize#normalize(java.lang.String)
     */
 -  public String normalize(String rawText) {
 +  public String normalize(String rawText, boolean keepMultipleLineBreaks) {
      if (rawText == null || rawText.equals("null") || rawText.length() == 0) {
        return "";
      }
 @@ -106,8 +109,11 @@ public class NormalizeV01 implements Normalize, Serializable {      // code all mac line breaks as \n
      normText = normText.replace('\r', '\n');
 -    // reduce all multiple line breaks into two line breaks, code muliple line break as \r\r
 -    normText = normText.replaceAll("\n[\\s\n]*\n", "\r\r");
 +    if (!keepMultipleLineBreaks)
 +    {
 +      // reduce all multiple line breaks into two line breaks, code muliple line break as \r\r
 +      normText = normText.replaceAll("\n[\\s\n]*\n", "\r\r");
 +    }
      // replace all single line breaks with one line break
      normText = normText.replace('\n', '\r');
 @@ -118,8 +124,14 @@ public class NormalizeV01 implements Normalize, Serializable {      // remove spaces before and after a single line break
      normText = normText.replaceAll(" ?\r ?", "\r");
 -    // remove spaces before and after a multiple line breaks
 -    normText = normText.replaceAll(" ?\r\r ?", "\r");
 +    if (keepMultipleLineBreaks)
 +    {
 +      // remove spaces before and after a multiple line breaks
 +      normText = normText.replaceAll(" ?\r\r ?", "\r\r");
 +    } else
 +    {
 +      normText = normText.replaceAll(" ?\r\r ?", "\r");
 +    }
      // remove leading and trailing space or line break in the string
      int start_idx = (normText.charAt(0) == ' ' || normText.charAt(0) == '\r' ? 1 : 0);
 diff --git a/src/main/java/at/knowcenter/wag/egov/egiz/tools/Normalizer.java b/src/main/java/at/knowcenter/wag/egov/egiz/tools/Normalizer.java index 3dafb31..d5550f8 100644 --- a/src/main/java/at/knowcenter/wag/egov/egiz/tools/Normalizer.java +++ b/src/main/java/at/knowcenter/wag/egov/egiz/tools/Normalizer.java @@ -42,6 +42,7 @@ import at.knowcenter.wag.egov.egiz.exceptions.SettingsException;   * @see at.knowcenter.wag.egov.egiz.cfg.SettingsReader
   */
  public class Normalizer implements Serializable {
 +// 04.11.2010 changed by exthex - normalize methods use and propagate the keepMultipleNewlines parameter
    /**
     * SVUID.
 @@ -187,18 +188,18 @@ public class Normalizer implements Serializable {      rawString_ = rawString;
    }
 -  /**
 -   * Return the normalized string. If the chached value does not exist the normalize method from the
 -   * current normalizer implementation is called.
 -   * 
 -   * @return the normalized string
 -   */
 -  public String getNormalizedString() {
 -    if (normString_ == null) {
 -      normalize();
 -    }
 -    return normString_;
 -  }
 +//  /**
 +//   * Return the normalized string. If the chached value does not exist the normalize method from the
 +//   * current normalizer implementation is called.
 +//   * 
 +//   * @return the normalized string
 +//   */
 +//  public String getNormalizedString() {
 +//    if (normString_ == null) {
 +//      normalize();
 +//    }
 +//    return normString_;
 +//  }
    /**
     * Set a normalizer version. This activity load the new requested normalizer implementation.
 @@ -224,11 +225,12 @@ public class Normalizer implements Serializable {     * Wrapper method. Call the normalizer implementation method.
     * 
     * @param rawString the raw string to normalize
 + * @param keepMultipleNewlines 
     * @return the normalized string
     * @see NormalizeV01
     */
 -  public String normalize(String rawString) {
 -    return normalize_.normalize(rawString);
 +  public String normalize(String rawString, boolean keepMultipleNewlines) {
 +    return normalize_.normalize(rawString, keepMultipleNewlines);
    }
    /**
 @@ -237,9 +239,9 @@ public class Normalizer implements Serializable {     * @return the normalized string
     * @see NormalizeV01
     */
 -  public String normalize() {
 +  public String normalize(boolean keepMultipleNewlines) {
      if (normString_ == null) {
 -      normString_ = normalize(rawString_);
 +      normString_ = normalize(rawString_, keepMultipleNewlines);
      }
      return normString_;
    }
 | 
