summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--def.go2
-rw-r--r--fpdf.go16
2 files changed, 17 insertions, 1 deletions
diff --git a/def.go b/def.go
index f1c8d7b..50a3f70 100644
--- a/def.go
+++ b/def.go
@@ -19,6 +19,7 @@ package gofpdf
import (
"bytes"
"io"
+ "time"
)
// Version of FPDF from which this package is derived
@@ -216,6 +217,7 @@ type Fpdf struct {
author string // author
keywords string // keywords
creator string // creator
+ creationDate time.Time // override for dcoument CreationDate value
aliasNbPagesStr string // alias for total number of pages
pdfVersion string // PDF version number
fontDirStr string // location of font definition files
diff --git a/fpdf.go b/fpdf.go
index f1c6b58..efe5274 100644
--- a/fpdf.go
+++ b/fpdf.go
@@ -2986,6 +2986,14 @@ func (f *Fpdf) outf(fmtStr string, args ...interface{}) {
f.out(sprintf(fmtStr, args...))
}
+// SetCreationDate fixes the document's internal CreationDate value. By
+// default, the time when the document is generated is used for this value.
+// This method is typically only used for testing purposes. Specify a
+// zero-value time to revert to the default behavior
+func (f *Fpdf) SetCreationDate(tm time.Time) {
+ f.creationDate = tm
+}
+
func (f *Fpdf) putpages() {
var wPt, hPt float64
var pageSize SizeType
@@ -3400,6 +3408,7 @@ func (f *Fpdf) putresources() {
}
func (f *Fpdf) putinfo() {
+ var tm time.Time
f.outf("/Producer %s", f.textstring("FPDF "+cnFpdfVersion))
if len(f.title) > 0 {
f.outf("/Title %s", f.textstring(f.title))
@@ -3416,7 +3425,12 @@ func (f *Fpdf) putinfo() {
if len(f.creator) > 0 {
f.outf("/Creator %s", f.textstring(f.creator))
}
- f.outf("/CreationDate %s", f.textstring("D:"+time.Now().Format("20060102150405")))
+ if f.creationDate.IsZero() {
+ tm = time.Now()
+ } else {
+ tm = f.creationDate
+ }
+ f.outf("/CreationDate %s", f.textstring("D:"+tm.Format("20060102150405")))
}
func (f *Fpdf) putcatalog() {