summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--template.go11
-rw-r--r--template_impl.go4
2 files changed, 15 insertions, 0 deletions
diff --git a/template.go b/template.go
index 31204c2..c0d3933 100644
--- a/template.go
+++ b/template.go
@@ -84,7 +84,18 @@ func (f *Fpdf) UseTemplateScaled(t Template, corner PointType, size SizeType) {
for _, tt := range t.Templates() {
f.templates[tt.ID()] = tt
}
+
+ // Create a list of existing image SHA-1 hashes.
+ existingImages := map[string]bool{}
+ for _, image := range f.images {
+ existingImages[image.i] = true
+ }
+
+ // Add each template image to $f, unless already present.
for name, ti := range t.Images() {
+ if _, found := existingImages[ti.i]; found {
+ continue
+ }
name = sprintf("t%s-%s", t.ID(), name)
f.images[name] = ti
}
diff --git a/template_impl.go b/template_impl.go
index c5d7be8..c1e2dff 100644
--- a/template_impl.go
+++ b/template_impl.go
@@ -296,4 +296,8 @@ func (t *Tpl) loadParamsFromFpdf(f *Fpdf) {
t.Fpdf.fontSizePt = f.fontSizePt
t.Fpdf.fontStyle = f.fontStyle
t.Fpdf.ws = f.ws
+
+ for key, value := range f.images {
+ t.Fpdf.images[key] = value
+ }
}