diff options
-rw-r--r-- | src/java/org/apache/fop/pdf/PDFInfo.java | 5 | ||||
-rw-r--r-- | src/java/org/apache/fop/pdf/PDFObject.java | 18 |
2 files changed, 19 insertions, 4 deletions
diff --git a/src/java/org/apache/fop/pdf/PDFInfo.java b/src/java/org/apache/fop/pdf/PDFInfo.java index e9833082c..e65e8e3ef 100644 --- a/src/java/org/apache/fop/pdf/PDFInfo.java +++ b/src/java/org/apache/fop/pdf/PDFInfo.java @@ -21,7 +21,6 @@ package org.apache.fop.pdf; import java.util.Date; import java.io.ByteArrayOutputStream; import java.io.IOException; -import java.text.SimpleDateFormat; /** * class representing an /Info object @@ -156,10 +155,8 @@ public class PDFInfo extends PDFObject { if (creationDate == null) { creationDate = new Date(); } - final SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); - final String str = sdf.format(creationDate) + "+00'00'"; bout.write(encode("/CreationDate ")); - bout.write(encodeString("D:" + str)); + bout.write(encodeString(formatDateTime(creationDate))); bout.write(encode("\n>>\nendobj\n")); } catch (IOException ioe) { log.error("Ignored I/O exception", ioe); diff --git a/src/java/org/apache/fop/pdf/PDFObject.java b/src/java/org/apache/fop/pdf/PDFObject.java index 272cd01c7..95047be14 100644 --- a/src/java/org/apache/fop/pdf/PDFObject.java +++ b/src/java/org/apache/fop/pdf/PDFObject.java @@ -21,6 +21,8 @@ package org.apache.fop.pdf; // Java import java.io.IOException; import java.io.OutputStream; +import java.text.SimpleDateFormat; +import java.util.Date; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -221,5 +223,21 @@ public abstract class PDFObject { return buf; }*/ } + + /** Formatting pattern for PDF date */ + protected static final SimpleDateFormat DATE_FORMAT + = new SimpleDateFormat("'D:'yyyyMMddHHmmssZ"); + + /** + * Formats a date/time according to the PDF specification + * (D:YYYYMMDDHHmmSSOHH'mm'). + * @param time date/time value to format + * @return the requested String representation + */ + protected String formatDateTime(Date time) { + String s = DATE_FORMAT.format(time); + int i = s.length() - 2; + return s.substring(0, i) + "'" + s.substring(i) + "'"; + } } |