Skip to content

Commit

Permalink
Merge branch 'bartbroere-patch-1'
Browse files Browse the repository at this point in the history
  • Loading branch information
Eric Lapouyade committed Nov 12, 2024
2 parents 0607e71 + 0ef74a7 commit bc92389
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 0 deletions.
15 changes: 15 additions & 0 deletions docxtpl/template.py
Original file line number Diff line number Diff line change
Expand Up @@ -351,6 +351,19 @@ def render_properties(
rendered = template.render(context)
setattr(self.docx.core_properties, prop, rendered)

def render_footnotes(
self, context: Dict[str, Any], jinja_env: Optional[Environment] = None
) -> None:
if jinja_env is None:
jinja_env = Environment()

for section in self.docx.sections:
for part in section.part.package.parts:
if part.content_type == 'application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml':
xml = self.patch_xml(part.blob.decode('utf-8') if isinstance(part.blob, bytes) else part.blob)
xml = self.render_xml_part(xml, part, context, jinja_env)
part._blob = xml

def resolve_listing(self, xml):

def resolve_text(run_properties, paragraph_properties, m):
Expand Down Expand Up @@ -483,6 +496,8 @@ def render(

self.render_properties(context, jinja_env)

self.render_footnotes(context, jinja_env)

# set rendered flag
self.is_rendered = True

Expand Down
19 changes: 19 additions & 0 deletions tests/footnotes.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
"""
Created : 2024-09-23
@author: Bart Broere
"""

from docxtpl import DocxTemplate

DEST_FILE = "output/footnotes.docx"

tpl = DocxTemplate("templates/footnotes_tpl.docx")

context = {
"a_jinja_variable": "A Jinja variable!"
}

tpl.render(context)
tpl.save(DEST_FILE)
Binary file added tests/templates/footnotes_tpl.docx
Binary file not shown.

0 comments on commit bc92389

Please sign in to comment.