diff options
Diffstat (limited to 'pdf-as-web/src')
5 files changed, 139 insertions, 7 deletions
diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/SignServletHelper.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/SignServletHelper.java index 925df3a..dd0e876 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/SignServletHelper.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/SignServletHelper.java @@ -18,6 +18,8 @@ import org.apache.commons.logging.LogFactory; import at.gv.egiz.pdfas.api.PdfAs;
import at.gv.egiz.pdfas.api.commons.Constants;
+import at.gv.egiz.pdfas.api.commons.DynamicSignatureLifetimeEnum;
+import at.gv.egiz.pdfas.api.commons.DynamicSignatureProfile;
import at.gv.egiz.pdfas.api.exceptions.PdfAsException;
import at.gv.egiz.pdfas.api.internal.PdfAsInternal;
import at.gv.egiz.pdfas.api.io.DataSink;
@@ -77,6 +79,20 @@ public class SignServletHelper DataSink sink = new ByteArrayDataSink();
signParameters.setOutput(sink);
+ /* // dynamically switch to pdf/a
+ if (si.pdfa) {
+ DynamicSignatureProfile dsp = pdfAs.createDynamicSignatureProfile(
+ signParameters.getSignatureProfileId(),
+ DynamicSignatureLifetimeEnum.AUTO
+ );
+ dsp.setPropertyRaw("key.SIG_PDFA1B_VALID", "true");
+ dsp.setPropertyRaw("table.main.Style.font", "TTF:DejaVuSansCondensed.ttf,8");
+ dsp.setPropertyRaw("table.main.Style.valuefont", "TTF:DejaVuSansMono.ttf,8");
+ dsp.apply();
+ signParameters.setSignatureProfileId(dsp.getName());
+ }
+ */
+
SignatureDetailInformation signatureDetail = pdfAs.prepareSign(signParameters);
si.sdi = signatureDetail;
si.signParameters = signParameters;
diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/SignServlet.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/SignServlet.java index 45f7e8f..620a738 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/SignServlet.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/SignServlet.java @@ -213,6 +213,7 @@ public class SignServlet extends HttpServlet si.type = ud.sig_type;
si.filename = formatFileName(ud.file_name);
si.download_inline = ud.download_inline;
+ si.pdfa = ud.pdfa;
// added tzefferer:
si.exappinf = exappinf;
@@ -397,6 +398,9 @@ public class SignServlet extends HttpServlet {
preview = true;
}
+
+ boolean pdfaEnabled = pdfa != null && "true".equalsIgnoreCase(pdfa.getString());
+
boolean download_inline = true;
if (download_fi.getString("UTF-8").equals(FormFields.VALUE_DOWNLOAD_ATTACHMENT)) //$NON-NLS-1$
@@ -438,7 +442,6 @@ public class SignServlet extends HttpServlet } else {
log.debug("Processing free text.");
try {
- boolean pdfaEnabled = pdfa != null && "true".equalsIgnoreCase(pdfa.getString());
byte[] freeTextPDF = IText.createPDF(freeText.getString("UTF-8"), pdfaEnabled);
pdfDataSource = new ByteArrayPdfDataSource(freeTextPDF);
@@ -455,6 +458,7 @@ public class SignServlet extends HttpServlet UploadedData ud = new UploadedData();
ud.preview = preview;
+ ud.pdfa = pdfaEnabled;
ud.download_inline = download_inline;
ud.sig_type = sig_type;
ud.sig_app = sig_app;
@@ -575,6 +579,8 @@ public class SignServlet extends HttpServlet {
protected boolean preview = false;
+ protected boolean pdfa = false;
+
protected boolean download_inline = false;
protected String sig_type = null;
diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/session/SignSessionInformation.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/session/SignSessionInformation.java index 90378d9..0b6a4d3 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/session/SignSessionInformation.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/session/SignSessionInformation.java @@ -78,7 +78,7 @@ public class SignSessionInformation implements HttpSessionBindingListener, Seria * @author: Thomas Zefferer
*/
public ExternAppInformation exappinf;
-
+
/**
* Information about the signature position
*
@@ -87,6 +87,13 @@ public class SignSessionInformation implements HttpSessionBindingListener, Seria public SignaturePositioning pos;
/**
+ * <code>true</code> if pdf/a is enabled
+ *
+ * @author tknall
+ */
+ public boolean pdfa;
+
+ /**
* The SignatureDetailInformation.
*/
public SignatureDetailInformation sdi = null;
diff --git a/pdf-as-web/src/main/webapp/jsp/SIGNATURBLOCK.jsp b/pdf-as-web/src/main/webapp/jsp/SIGNATURBLOCK.jsp index 6a1ce81..72edfac 100644 --- a/pdf-as-web/src/main/webapp/jsp/SIGNATURBLOCK.jsp +++ b/pdf-as-web/src/main/webapp/jsp/SIGNATURBLOCK.jsp @@ -61,15 +61,11 @@ </td>
</tr>
<tr>
- <td rowspan="6"><img src="<%= request.getContextPath() %>/images/<%= sbLabel %>" width="100" alt="Signatur-Logo"/></td>
+ <td rowspan="5"><img src="<%= request.getContextPath() %>/images/<%= sbLabel %>" width="100" alt="Signatur-Logo"/></td>
<td class="pdfaslabel" nowrap="nowrap"><%= sbName %></td>
<td class="pdfasvalue"><input type="text" name="signer" value="<fmt:message key="signaturblock.signer.value"/>" readonly="readonly" disabled="disabled" size="40" maxlength="255"/></td>
</tr>
<tr>
- <td class="pdfaslabel" nowrap="nowrap"><%= sbDate %></td>
- <td class="pdfasvalue"><%= DateFormatUtils.formatUTC(new Date(), "yyyy-MM-dd'T'HH:mm:ss'Z'", request.getLocale()) %></td>
- </tr>
- <tr>
<td class="pdfaslabel" nowrap="nowrap"><%= sbIssuer %></td>
<td class="pdfasvalue">
<div class="pdfasnobreak">CN=<fmt:message key="signaturblock.issuer.value.cn"/>,</div>
@@ -99,5 +95,9 @@ <td class="pdfaslabel" nowrap="nowrap"><%= sbMeta %></td>
<td colspan="2" class="pdfasvalue"><%= sbMetaValue %></td>
</tr>
+ <tr>
+ <td class="pdfaslabel" nowrap="nowrap"><%= sbDate %></td>
+ <td colspan="2" class="pdfasvalue"><%= DateFormatUtils.formatUTC(new Date(), "yyyy-MM-dd'T'HH:mm:ss'Z'", request.getLocale()) %></td>
+ </tr>
</table>
</html>
\ No newline at end of file diff --git a/pdf-as-web/src/main/webapp/jsp/SIGNATURBLOCK_DEPRECATED.jsp b/pdf-as-web/src/main/webapp/jsp/SIGNATURBLOCK_DEPRECATED.jsp new file mode 100644 index 0000000..6a1ce81 --- /dev/null +++ b/pdf-as-web/src/main/webapp/jsp/SIGNATURBLOCK_DEPRECATED.jsp @@ -0,0 +1,103 @@ +<%@ page contentType="text/html; charset=UTF-8" language="java" errorPage=""%>
+
+<%@ page import="org.apache.commons.lang.time.DateFormatUtils" %>
+<%@ page import="java.util.Date" %>
+<%@ page import="at.gv.egiz.pdfas.api.commons.Constants" %>
+<%@ page import="at.gv.egiz.pdfas.web.servlets.UpdateFormServlet"%>
+<%@ page import="at.gv.egiz.pdfas.web.FormFields" %>
+
+<%@ include file="language.jsp" %>
+
+ <%
+ String mode = (String) session.getAttribute(UpdateFormServlet.UPLOADFORM_SIGNATURE_MODE_KEY);
+ String device = (String) session.getAttribute(UpdateFormServlet.UPLOADFORM_SIGNATURE_DEVICE_KEY);
+ String type = (String) session.getAttribute(UpdateFormServlet.UPLOADFORM_SIGNATURE_TYPE_KEY);
+
+ String sbValue;
+ String sbLabel;
+ String sbMeta;
+ String sbName;
+ String sbDate;
+ String sbIssuer;
+ String sbNumber;
+ String sbKZ;
+ String sbID;
+ String sbMetaValue;
+ if ("SIGNATURBLOCK_DE".equals(type)) {
+ sbValue = "Signaturwert";
+ sbLabel = "signatur-logo_de-100.png";
+ sbMetaValue = "Informationen zur Prüfung der elektronischen Signatur und des Ausdrucks finden Sie unter: <input type=\"text\" name=\"vservice\" readonly=\"readonly\" disabled=\"disabled\" value=\"http://www.signaturpruefung.gv.at\" size=\"50\" maxlength=\"255\"/>";
+ sbName = "Unterzeichner";
+ sbDate = "Datum/Zeit-UTC";
+ sbIssuer = "Aussteller-Zertifikat";
+ sbNumber = "Serien-Nr.";
+ sbKZ = "Methode";
+ sbID = "Parameter";
+ sbMeta = "Prüfinformation";
+ } else {
+ sbValue = "Signature Value";
+ sbLabel = "signatur-logo_en-100.png";
+ sbMetaValue = "Information about the verification of the electronic signature and of the printout can be found at: <input type=\"text\" name=\"vservice\" readonly=\"readonly\" disabled=\"disabled\" value=\"http://www.signature-verification.gv.at\" size=\"50\" maxlength=\"255\"/>";
+ sbName = "Signatory";
+ sbDate = "Date/Time-UTC";
+ sbIssuer = "Issuer-Certificate";
+ sbNumber = "Serial-No.";
+ sbKZ = "Method";
+ sbID = "Parameter";
+ sbMeta = "Verification";
+ }
+
+ %>
+
+<html>
+
+<table border="0" cellpadding="3" cellspacing="0" class="pdfassignature">
+ <tr>
+ <td class="pdfaslabel" nowrap="nowrap"><%= sbValue %></td>
+ <td colspan="2" class="pdfasvalue">
+ <div style="float:left;">Aqs3vMeF81wm/UJjIcLOzUs9</div>
+ <div style="float:left;">dxTBzhi2RC8avQyMAmc3v</div>
+ <div style="float:left;">WEj9HT1DI3iish4smRr</div>
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="6"><img src="<%= request.getContextPath() %>/images/<%= sbLabel %>" width="100" alt="Signatur-Logo"/></td>
+ <td class="pdfaslabel" nowrap="nowrap"><%= sbName %></td>
+ <td class="pdfasvalue"><input type="text" name="signer" value="<fmt:message key="signaturblock.signer.value"/>" readonly="readonly" disabled="disabled" size="40" maxlength="255"/></td>
+ </tr>
+ <tr>
+ <td class="pdfaslabel" nowrap="nowrap"><%= sbDate %></td>
+ <td class="pdfasvalue"><%= DateFormatUtils.formatUTC(new Date(), "yyyy-MM-dd'T'HH:mm:ss'Z'", request.getLocale()) %></td>
+ </tr>
+ <tr>
+ <td class="pdfaslabel" nowrap="nowrap"><%= sbIssuer %></td>
+ <td class="pdfasvalue">
+ <div class="pdfasnobreak">CN=<fmt:message key="signaturblock.issuer.value.cn"/>,</div>
+ <div class="pdfasnobreak">O=<fmt:message key="signaturblock.issuer.value.o"/>,</div>
+ <div class="pdfasnobreak">C=AT</div>
+ </td>
+ </tr>
+ <tr>
+ <td class="pdfaslabel" nowrap="nowrap"><%= sbNumber %></td>
+ <td class="pdfasvalue">123456</td>
+ </tr>
+ <tr>
+ <td class="pdfaslabel" nowrap="nowrap"><%= sbKZ %></td>
+ <td class="pdfasvalue">
+ <div class="pdfasnobreak">urn:pdfsigfilter:</div>
+ <div class="pdfasnobreak">bka.gv.at:</div>
+ <div class="pdfasnobreak"><%= FormFields.VALUE_MODE_TEXTUAL.equals(mode) ? "text:v1.2.0" : "binaer:v1.1.0" %></div>
+ </td>
+ </tr>
+ <tr>
+ <td class="pdfaslabel" nowrap="nowrap"><%= sbID %></td>
+ <td class="pdfasvalue">
+ <div class="pdfasnobreak">etsi-moc-1.1@dbc17c36</div>
+ </td>
+ </tr>
+ <tr>
+ <td class="pdfaslabel" nowrap="nowrap"><%= sbMeta %></td>
+ <td colspan="2" class="pdfasvalue"><%= sbMetaValue %></td>
+ </tr>
+</table>
+</html>
\ No newline at end of file |