aboutsummaryrefslogtreecommitdiff
path: root/pdf-as-lib/src
diff options
context:
space:
mode:
authorAndreas Fitzek <andreas.fitzek@iaik.tugraz.at>2014-02-11 08:19:04 +0100
committerAndreas Fitzek <andreas.fitzek@iaik.tugraz.at>2014-02-11 08:19:04 +0100
commit6d416edf737b9899aef7194aa66c35103dba07ce (patch)
tree25507345cd1e66a005c36e4021fba1bb57d56311 /pdf-as-lib/src
parent5ea41481c10aa43ab1df5e0b7ba0c18c3262c9eb (diff)
downloadpdf-as-4-6d416edf737b9899aef7194aa66c35103dba07ce.tar.gz
pdf-as-4-6d416edf737b9899aef7194aa66c35103dba07ce.tar.bz2
pdf-as-4-6d416edf737b9899aef7194aa66c35103dba07ce.zip
Support rotation of the signature block by r attribute in pos string
Diffstat (limited to 'pdf-as-lib/src')
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/positioning/Positioning.java8
-rw-r--r--pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/PositioningInstruction.java18
-rw-r--r--pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/TablePos.java19
3 files changed, 38 insertions, 7 deletions
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/positioning/Positioning.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/positioning/Positioning.java
index da7da772..e0be68ee 100644
--- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/positioning/Positioning.java
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/positioning/Positioning.java
@@ -156,7 +156,7 @@ public class Positioning {
{
page++;
}
- return new PositioningInstruction(make_new_page, page, pos_x, pos_y);
+ return new PositioningInstruction(make_new_page, page, pos_x, pos_y, pos.rotation);
}
// pos_y is auto
if (make_new_page)
@@ -164,7 +164,7 @@ public class Positioning {
// ignore footer in new page
page++;
pos_y = page_height - SIGNATURE_MARGIN_VERTICAL;
- return new PositioningInstruction(make_new_page, page, pos_x, pos_y);
+ return new PositioningInstruction(make_new_page, page, pos_x, pos_y, pos.rotation);
}
// up to here no checks have to be made if Tablesize and Pagesize are fit
// Now we have to getfreespace in page and reguard footerline
@@ -188,7 +188,7 @@ public class Positioning {
// no text --> SIGNATURE_BORDER
pos_y = page_height - SIGNATURE_MARGIN_VERTICAL;
}
- return new PositioningInstruction(make_new_page, page, pos_x, pos_y);
+ return new PositioningInstruction(make_new_page, page, pos_x, pos_y, pos.rotation);
}
final float page_length = pre_page_length;
// we do have text take SIGNATURE_MARGIN
@@ -206,7 +206,7 @@ public class Positioning {
// no text --> SIGNATURE_BORDER
pos_y = page_height - SIGNATURE_MARGIN_VERTICAL;
}
- return new PositioningInstruction(make_new_page, page, pos_x, pos_y);
+ return new PositioningInstruction(make_new_page, page, pos_x, pos_y, pos.rotation);
} finally {
if (pdfDataSource != null) {
try {
diff --git a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/PositioningInstruction.java b/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/PositioningInstruction.java
index 0fe399c4..d0c1afc1 100644
--- a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/PositioningInstruction.java
+++ b/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/PositioningInstruction.java
@@ -66,6 +66,11 @@ public class PositioningInstruction
* be placed.
*/
protected float y = 0.0f;
+
+ /**
+ * The rotation of the signature block
+ */
+ protected float rotation = 0.0f;
/**
*
@@ -84,12 +89,13 @@ public class PositioningInstruction
* The y coordinate where the upper left corner of the signature
* block should be placed.
*/
- public PositioningInstruction(boolean make_new_page, int page, float x, float y)
+ public PositioningInstruction(boolean make_new_page, int page, float x, float y, float rotation)
{
this.make_new_page = make_new_page;
this.page = page;
this.x = x;
this.y = y;
+ this.rotation = rotation;
}
/**
@@ -135,6 +141,11 @@ public class PositioningInstruction
{
return this.y;
}
+
+ public float getRotation()
+ {
+ return this.rotation;
+ }
public int hashCode() {
final int prime = 31;
@@ -143,6 +154,7 @@ public class PositioningInstruction
result = prime * result + page;
result = prime * result + Float.floatToIntBits(x);
result = prime * result + Float.floatToIntBits(y);
+ result = prime * result + Float.floatToIntBits(rotation);
return result;
}
@@ -162,6 +174,8 @@ public class PositioningInstruction
return false;
if (Float.floatToIntBits(y) != Float.floatToIntBits(other.y))
return false;
+ if (Float.floatToIntBits(rotation) != Float.floatToIntBits(other.rotation))
+ return false;
return true;
}
@@ -175,6 +189,8 @@ public class PositioningInstruction
buffer.append(x);
buffer.append(", y=");
buffer.append(y);
+ buffer.append(", r=");
+ buffer.append(rotation);
buffer.append("]");
return buffer.toString();
}
diff --git a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/TablePos.java b/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/TablePos.java
index 92afaf98..7bf2103b 100644
--- a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/TablePos.java
+++ b/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/pdf/TablePos.java
@@ -68,6 +68,11 @@ public class TablePos implements Serializable
* The top y position of the footer line.
*/
public float footer_line = 0.0f;
+
+ /**
+ * The rotation of the signature block
+ */
+ public float rotation = 0.0f;
/**
* The y position.
@@ -134,7 +139,7 @@ public class TablePos implements Serializable
* Constructor.
*
* @param pos_string The pos instruction.
- * format : [x:x_algo];[y:y_algo];[w:w_algo][p:p_algo];[f:f_algo]
+ * format : [x:x_algo];[y:y_algo];[w:w_algo][p:p_algo];[f:f_algo];[r:r_algo]
* x_algo:='auto' ... automatic positioning x
* floatvalue ... absolute x
* y_algo:='auto' ... automatic positioning y
@@ -145,6 +150,7 @@ public class TablePos implements Serializable
* 'new' ... new page
* intvalue ... pagenumber
* f_algo floatvalue ... consider footerline (only if y_algo is auto and p_algo is not 'new')
+ * r_algo floatvalue ... rotate the table arround the lower left corner anti clockwise in degree
* @throws PdfAsException
*/
public TablePos(String pos_string) throws PdfAsException
@@ -241,6 +247,15 @@ public class TablePos implements Serializable
this.footer_line = flval;
break;
}
+ case 'r': {
+ float flval=Float.parseFloat(commandval);
+ if (flval<0)
+ {
+ throw new PdfAsException("Pos string (=" + pos_string + ") is invalid.");
+ }
+ this.rotation = flval;
+ break;
+ }
default : {
throw new PdfAsException("Pos string (=" + pos_string + ") is invalid.");
}
@@ -255,7 +270,7 @@ public class TablePos implements Serializable
}
public String toString()
{
- String thatsme = "cmd:"+this.myposstring+" pos_x:"+this.pos_x+" pos_y:"+this.pos_y+" page:"+this.page+" width:"+this.width+" footer:"+this.footer_line+"\n "+" autoX:"+this.autoX+" autoY:"+this.autoY+" autoW:"+this.autoW+" Newpage:"+this.newpage+" autoP:"+this.autoP;
+ String thatsme = "cmd:"+this.myposstring+" pos_x:"+this.pos_x+" pos_y:"+this.pos_y+" page:"+this.page+" width:"+this.width+" footer:"+this.footer_line+" rotation:"+this.rotation+"\n "+" autoX:"+this.autoX+" autoY:"+this.autoY+" autoW:"+this.autoW+" Newpage:"+this.newpage+" autoP:"+this.autoP;
return thatsme;
}
}