diff --git a/fop-core/src/main/java/org/apache/fop/pdf/PDFDocument.java b/fop-core/src/main/java/org/apache/fop/pdf/PDFDocument.java index 34421858ae2..460290faef0 100644 --- a/fop-core/src/main/java/org/apache/fop/pdf/PDFDocument.java +++ b/fop-core/src/main/java/org/apache/fop/pdf/PDFDocument.java @@ -1182,7 +1182,7 @@ private TrailerDictionary createTrailerDictionary(boolean addRoot) { if (addRoot) { trailerDictionary.setRoot(root).setInfo(info); } - trailerDictionary.setFileID(gen.getOriginalFileID(), gen.getUpdatedFileID()); + trailerDictionary.setFileID("279B5BE7BC0E1B4FE4D4A16B1C28B990".getBytes(), "3D096A7D6223E7A468C7AB8CAD3F6602".getBytes()); if (isEncryptionActive()) { trailerDictionary.setEncryption(encryption); } diff --git a/fop-core/src/main/java/org/apache/fop/pdf/PDFMetadata.java b/fop-core/src/main/java/org/apache/fop/pdf/PDFMetadata.java index ce8cfdf2d8c..6eb38975abf 100644 --- a/fop-core/src/main/java/org/apache/fop/pdf/PDFMetadata.java +++ b/fop-core/src/main/java/org/apache/fop/pdf/PDFMetadata.java @@ -135,7 +135,9 @@ public static Metadata createXMPFromPDFDocument(PDFDocument pdfDoc) { //Set creation date if not available, yet if (info.getCreationDate() == null) { - Date d = new Date(); + Date d = System.getenv("SOURCE_DATE_EPOCH") == null ? + new Date() : + new Date(1000 * Long.parseLong(System.getenv("SOURCE_DATE_EPOCH"))); info.setCreationDate(d); } diff --git a/fop-core/src/main/java/org/apache/fop/render/intermediate/IFRenderer.java b/fop-core/src/main/java/org/apache/fop/render/intermediate/IFRenderer.java index 84e4e3a2c49..022a7a7a687 100644 --- a/fop-core/src/main/java/org/apache/fop/render/intermediate/IFRenderer.java +++ b/fop-core/src/main/java/org/apache/fop/render/intermediate/IFRenderer.java @@ -544,7 +544,10 @@ private Metadata createDefaultDocumentMetadata() { } else { xmpBasic.setCreatorTool(Version.getVersion()); } - xmpBasic.setMetadataDate(new java.util.Date()); + java.util.Date d = System.getenv("SOURCE_DATE_EPOCH") == null ? + new java.util.Date() : + new java.util.Date(1000 * Long.parseLong(System.getenv("SOURCE_DATE_EPOCH"))); + xmpBasic.setMetadataDate(d); if (getUserAgent().getCreationDate() != null) { xmpBasic.setCreateDate(getUserAgent().getCreationDate()); } else { diff --git a/fop-core/src/main/java/org/apache/fop/render/pdf/PDFRenderingUtil.java b/fop-core/src/main/java/org/apache/fop/render/pdf/PDFRenderingUtil.java index 8a6ebe5be70..b6a60341cb9 100644 --- a/fop-core/src/main/java/org/apache/fop/render/pdf/PDFRenderingUtil.java +++ b/fop-core/src/main/java/org/apache/fop/render/pdf/PDFRenderingUtil.java @@ -262,7 +262,10 @@ public void renderXMPMetadata(XMPMetadata metadata) { fopXMP.mergeInto(docXMP, exclude); XMPBasicAdapter xmpBasic = XMPBasicSchema.getAdapter(docXMP); //Metadata was changed so update metadata date - xmpBasic.setMetadataDate(new java.util.Date()); + java.util.Date d = System.getenv("SOURCE_DATE_EPOCH") == null ? + new java.util.Date() : + new java.util.Date(1000 * Long.parseLong(System.getenv("SOURCE_DATE_EPOCH"))); + xmpBasic.setMetadataDate(d); PDFMetadata.updateInfoFromMetadata(docXMP, pdfDoc.getInfo()); PDFMetadata pdfMetadata = pdfDoc.getFactory().makeMetadata(