[jboss-cvs] jboss-seam/src/pdf/org/jboss/seam/pdf/ui ...
Norman Richards
norman.richards at jboss.com
Thu Jan 25 01:17:24 EST 2007
User: nrichards
Date: 07/01/25 01:17:24
Modified: src/pdf/org/jboss/seam/pdf/ui ITextComponent.java
UIDocument.java
Added: src/pdf/org/jboss/seam/pdf/ui UISignature.java
Log:
add signature field to acroform
Revision Changes Path
1.7 +1 -2 jboss-seam/src/pdf/org/jboss/seam/pdf/ui/ITextComponent.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: ITextComponent.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/pdf/org/jboss/seam/pdf/ui/ITextComponent.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- ITextComponent.java 11 Jan 2007 05:32:06 -0000 1.6
+++ ITextComponent.java 25 Jan 2007 06:17:23 -0000 1.7
@@ -76,7 +76,6 @@
}
}
-
/**
* find the first parent that is an itext component);
*/
1.12 +9 -3 jboss-seam/src/pdf/org/jboss/seam/pdf/ui/UIDocument.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: UIDocument.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/pdf/org/jboss/seam/pdf/ui/UIDocument.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- UIDocument.java 24 Jan 2007 06:09:59 -0000 1.11
+++ UIDocument.java 25 Jan 2007 06:17:23 -0000 1.12
@@ -18,6 +18,7 @@
{
public static final String COMPONENT_TYPE = "org.jboss.seam.pdf.ui.UIDocument";
+ DocWriter writer;
Document document;
ByteArrayOutputStream stream;
String id;
@@ -175,16 +176,17 @@
id = store.newId();
stream = new ByteArrayOutputStream();
+
try {
switch (docType) {
case PDF:
- PdfWriter.getInstance(document, stream);
+ writer = PdfWriter.getInstance(document, stream);
break;
case RTF:
- RtfWriter2.getInstance(document, stream);
+ writer = RtfWriter2.getInstance(document, stream);
break;
case HTML:
- HtmlWriter.getInstance(document, stream);
+ writer = HtmlWriter.getInstance(document, stream);
break;
}
@@ -248,6 +250,10 @@
Manager.instance().beforeRedirect();
}
+ public DocWriter getWriter() {
+ return writer;
+ }
+
private DocType docTypeForName(String typeName) {
if (typeName != null) {
if (typeName.equalsIgnoreCase(DocType.PDF.name())) {
1.1 date: 2007/01/25 06:17:23; author: nrichards; state: Exp;jboss-seam/src/pdf/org/jboss/seam/pdf/ui/UISignature.java
Index: UISignature.java
===================================================================
package org.jboss.seam.pdf.ui;
import java.io.IOException;
import javax.faces.context.FacesContext;
import org.jboss.seam.pdf.ITextUtils;
import com.lowagie.text.DocWriter;
import com.lowagie.text.pdf.PdfAcroForm;
import com.lowagie.text.pdf.PdfWriter;
public class UISignature
extends ITextComponent
{
String field;
String size;
public void setField(String field) {
this.field = field;
}
public void setSize(String size) {
this.size = size;
}
@Override
public void createITextObject(FacesContext context) {}
@Override
public void removeITextObject() {}
@Override
public Object getITextObject() {
return null;
}
@Override
public void handleAdd(Object other) {
throw new RuntimeException("PDF signature does not accept children");
}
@Override
public void encodeEnd(FacesContext context) throws IOException {
PdfWriter writer = findWriter();
if (writer == null) {
throw new RuntimeException("Cannot find PdfWriter - the document may not exist or may not be a pdf type");
}
PdfAcroForm form = writer.getAcroForm();
field = (String) valueBinding(context, "field", field);
if (field == null) {
throw new RuntimeException("signature field named is required");
}
size = (String) valueBinding(context, "size", size);
if (size == null) {
throw new RuntimeException("signature size is required");
}
float[] rect = ITextUtils.stringToFloatArray(size);
if (rect.length != 4) {
throw new RuntimeException("size must contain four numbers");
}
form.addSignature(field, rect[0], rect[1], rect[2], rect[3]);
super.encodeEnd(context);
}
private PdfWriter findWriter() {
UIDocument doc = (UIDocument) findITextParent(this, UIDocument.class);
if (doc != null) {
DocWriter writer = doc.getWriter();
if (writer instanceof PdfWriter) {
return (PdfWriter) writer;
}
}
return null;
}
}
More information about the jboss-cvs-commits
mailing list