diff --git a/testing/resources/pixel/xfa_specific/use_ahem/xfa_example.in b/testing/resources/pixel/xfa_specific/use_ahem/xfa_example.in
index 1a944b1..ba7d1cd 100644
--- a/testing/resources/pixel/xfa_specific/use_ahem/xfa_example.in
+++ b/testing/resources/pixel/xfa_specific/use_ahem/xfa_example.in
@@ -1,37 +1,8 @@
 {{header}}
 
-{{object 1 0}}
-<<
-  /AcroForm 2 0 R
-  /Extensions <<
-    /ADBE <<
-      /BaseVersion /1.7
-      /ExtensionLevel 8
-    >>
-  >>
-  /NeedsRendering true
-  /Type /Catalog
->>
-endobj
-
-{{object 2 0}}
-<<
-  /XFA [
-    (preamble)
-    3 0 R
-    (config)
-    4 0 R
-    (template)
-    5 0 R
-    (localeSet)
-    6 0 R
-    (postamble)
-    7 0 R
-  ]
->>
-endobj
-
-{{xfapreamble 3 0}}
+{{include ../../../xfa_catalog_1_0.fragment}}
+{{include ../../../xfa_object_2_0.fragment}}
+{{include ../../../xfa_preamble_3_0.fragment}}
 {{include ../../../xfa_config_4_0.fragment}}
 
 {{object 5 0}}
@@ -61,7 +32,7 @@
 endobj
 
 {{include ../../../xfa_locale_6_0.fragment}}
-{{xfapostamble 7 0}}
+{{include ../../../xfa_postamble_7_0.fragment}}
 
 {{xref}}
 {{trailer}}
diff --git a/testing/resources/pixel/xfa_specific/use_ahem/xfa_textfield.in b/testing/resources/pixel/xfa_specific/use_ahem/xfa_textfield.in
index 2ad7179..5fc93db 100644
--- a/testing/resources/pixel/xfa_specific/use_ahem/xfa_textfield.in
+++ b/testing/resources/pixel/xfa_specific/use_ahem/xfa_textfield.in
@@ -1,39 +1,8 @@
 {{header}}
 
-%% Original object ID: 24 0
-{{object 1 0}}
-<<
-  /AcroForm 2 0 R
-  /Extensions <<
-    /ADBE <<
-      /BaseVersion /1.7
-      /ExtensionLevel 8
-    >>
-  >>
-  /NeedsRendering true
-  /Type /Catalog
->>
-endobj
-
-%% Original object ID: 32 0
-{{object 2 0}}
-<<
-  /XFA [
-    (preamble)
-    3 0 R
-    (config)
-    4 0 R
-    (template)
-    5 0 R
-    (localeSet)
-    6 0 R
-    (postamble)
-    7 0 R
-  ]
->>
-endobj
-
-{{xfapreamble 3 0}}
+{{include ../../../xfa_catalog_1_0.fragment}}
+{{include ../../../xfa_object_2_0.fragment}}
+{{include ../../../xfa_preamble_3_0.fragment}}
 {{include ../../../xfa_config_4_0.fragment}}
 
 {{object 5 0}}
@@ -82,8 +51,7 @@
 endobj
 
 {{include ../../../xfa_locale_6_0.fragment}}
-
-{{xfapostamble 7 0}}
+{{include ../../../xfa_postamble_7_0.fragment}}
 
 {{xref}}
 {{trailer}}
diff --git a/testing/resources/pixel/xfa_specific/xfa_bmp_image.in b/testing/resources/pixel/xfa_specific/xfa_bmp_image.in
index 43a0ee4..3241242 100644
--- a/testing/resources/pixel/xfa_specific/xfa_bmp_image.in
+++ b/testing/resources/pixel/xfa_specific/xfa_bmp_image.in
@@ -1,39 +1,8 @@
 {{header}}
 
-%% Original object ID: 24 0
-{{object 1 0}}
-<<
-  /AcroForm 2 0 R
-  /Extensions <<
-    /ADBE <<
-      /BaseVersion /1.7
-      /ExtensionLevel 8
-    >>
-  >>
-  /NeedsRendering true
-  /Type /Catalog
->>
-endobj
-
-%% Original object ID: 32 0
-{{object 2 0}}
-<<
-  /XFA [
-    (preamble)
-    3 0 R
-    (config)
-    4 0 R
-    (template)
-    5 0 R
-    (localeSet)
-    6 0 R
-    (postamble)
-    7 0 R
-  ]
->>
-endobj
-
-{{xfapreamble 3 0}}
+{{include ../../xfa_catalog_1_0.fragment}}
+{{include ../../xfa_object_2_0.fragment}}
+{{include ../../xfa_preamble_3_0.fragment}}
 {{include ../../xfa_config_4_0.fragment}}
 
 {{object 5 0}}
@@ -67,7 +36,7 @@
 endobj
 
 {{include ../../xfa_locale_6_0.fragment}}
-{{xfapostamble 7 0}}
+{{include ../../xfa_postamble_7_0.fragment}}
 
 {{xref}}
 {{trailer}}
diff --git a/testing/resources/pixel/xfa_specific/xfa_gif_image.in b/testing/resources/pixel/xfa_specific/xfa_gif_image.in
index 74a0994..847057b 100644
--- a/testing/resources/pixel/xfa_specific/xfa_gif_image.in
+++ b/testing/resources/pixel/xfa_specific/xfa_gif_image.in
@@ -1,39 +1,8 @@
 {{header}}
 
-%% Original object ID: 24 0
-{{object 1 0}}
-<<
-  /AcroForm 2 0 R
-  /Extensions <<
-    /ADBE <<
-      /BaseVersion /1.7
-      /ExtensionLevel 8
-    >>
-  >>
-  /NeedsRendering true
-  /Type /Catalog
->>
-endobj
-
-%% Original object ID: 32 0
-{{object 2 0}}
-<<
-  /XFA [
-    (preamble)
-    3 0 R
-    (config)
-    4 0 R
-    (template)
-    5 0 R
-    (localeSet)
-    6 0 R
-    (postamble)
-    7 0 R
-  ]
->>
-endobj
-
-{{xfapreamble 3 0}}
+{{include ../../xfa_catalog_1_0.fragment}}
+{{include ../../xfa_object_2_0.fragment}}
+{{include ../../xfa_preamble_3_0.fragment}}
 {{include ../../xfa_config_4_0.fragment}}
 
 {{object 5 0}}
@@ -67,7 +36,8 @@
 endobj
 
 {{include ../../xfa_locale_6_0.fragment}}
-{{xfapostamble 7 0}}
+{{include ../../xfa_postamble_7_0.fragment}}
+
 {{xref}}
 {{trailer}}
 {{startxref}}
diff --git a/testing/resources/pixel/xfa_specific/xfa_jpg_image.in b/testing/resources/pixel/xfa_specific/xfa_jpg_image.in
index 152be3d..4f49636 100644
--- a/testing/resources/pixel/xfa_specific/xfa_jpg_image.in
+++ b/testing/resources/pixel/xfa_specific/xfa_jpg_image.in
@@ -1,39 +1,8 @@
 {{header}}
 
-%% Original object ID: 24 0
-{{object 1 0}}
-<<
-  /AcroForm 2 0 R
-  /Extensions <<
-    /ADBE <<
-      /BaseVersion /1.7
-      /ExtensionLevel 8
-    >>
-  >>
-  /NeedsRendering true
-  /Type /Catalog
->>
-endobj
-
-%% Original object ID: 32 0
-{{object 2 0}}
-<<
-  /XFA [
-    (preamble)
-    3 0 R
-    (config)
-    4 0 R
-    (template)
-    5 0 R
-    (localeSet)
-    6 0 R
-    (postamble)
-    7 0 R
-  ]
->>
-endobj
-
-{{xfapreamble 3 0}}
+{{include ../../xfa_catalog_1_0.fragment}}
+{{include ../../xfa_object_2_0.fragment}}
+{{include ../../xfa_preamble_3_0.fragment}}
 {{include ../../xfa_config_4_0.fragment}}
 
 {{object 5 0}}
@@ -67,7 +36,7 @@
 endobj
 
 {{include ../../xfa_locale_6_0.fragment}}
-{{xfapostamble 7 0}}
+{{include ../../xfa_postamble_7_0.fragment}}
 
 {{xref}}
 {{trailer}}
diff --git a/testing/resources/pixel/xfa_specific/xfa_png_image.in b/testing/resources/pixel/xfa_specific/xfa_png_image.in
index b4ea3a3..6772f1f 100644
--- a/testing/resources/pixel/xfa_specific/xfa_png_image.in
+++ b/testing/resources/pixel/xfa_specific/xfa_png_image.in
@@ -1,39 +1,8 @@
 {{header}}
 
-%% Original object ID: 24 0
-{{object 1 0}}
-<<
-  /AcroForm 2 0 R
-  /Extensions <<
-    /ADBE <<
-      /BaseVersion /1.7
-      /ExtensionLevel 8
-    >>
-  >>
-  /NeedsRendering true
-  /Type /Catalog
->>
-endobj
-
-%% Original object ID: 32 0
-{{object 2 0}}
-<<
-  /XFA [
-    (preamble)
-    3 0 R
-    (config)
-    4 0 R
-    (template)
-    5 0 R
-    (localeSet)
-    6 0 R
-    (postamble)
-    7 0 R
-  ]
->>
-endobj
-
-{{xfapreamble 3 0}}
+{{include ../../xfa_catalog_1_0.fragment}}
+{{include ../../xfa_object_2_0.fragment}}
+{{include ../../xfa_preamble_3_0.fragment}}
 {{include ../../xfa_config_4_0.fragment}}
 
 {{object 5 0}}
@@ -67,7 +36,7 @@
 endobj
 
 {{include ../../xfa_locale_6_0.fragment}}
-{{xfapostamble 7 0}}
+{{include ../../xfa_postamble_7_0.fragment}}
 
 {{xref}}
 {{trailer}}
diff --git a/testing/resources/pixel/xfa_specific/xfa_rectangle_node.in b/testing/resources/pixel/xfa_specific/xfa_rectangle_node.in
index 0bb00fa..347d4ae 100644
--- a/testing/resources/pixel/xfa_specific/xfa_rectangle_node.in
+++ b/testing/resources/pixel/xfa_specific/xfa_rectangle_node.in
@@ -1,39 +1,8 @@
 {{header}}
 
-%% Original object ID: 24 0
-{{object 1 0}}
-<<
-  /AcroForm 2 0 R
-  /Extensions <<
-    /ADBE <<
-      /BaseVersion /1.7
-      /ExtensionLevel 8
-    >>
-  >>
-  /NeedsRendering true
-  /Type /Catalog
->>
-endobj
-
-%% Original object ID: 32 0
-{{object 2 0}}
-<<
-  /XFA [
-    (preamble)
-    3 0 R
-    (config)
-    4 0 R
-    (template)
-    5 0 R
-    (localeSet)
-    6 0 R
-    (postamble)
-    7 0 R
-  ]
->>
-endobj
-
-{{xfapreamble 3 0}}
+{{include ../../xfa_catalog_1_0.fragment}}
+{{include ../../xfa_object_2_0.fragment}}
+{{include ../../xfa_preamble_3_0.fragment}}
 {{include ../../xfa_config_4_0.fragment}}
 
 {{object 5 0}}
@@ -68,7 +37,7 @@
 endobj
 
 {{include ../../xfa_locale_6_0.fragment}}
-{{xfapostamble 7 0}}
+{{include ../../xfa_postamble_7_0.fragment}}
 
 {{xref}}
 {{trailer}}
diff --git a/testing/resources/pixel/xfa_specific/xfa_tiff_deflate_image.in b/testing/resources/pixel/xfa_specific/xfa_tiff_deflate_image.in
index 6c64ff9..0927583 100644
--- a/testing/resources/pixel/xfa_specific/xfa_tiff_deflate_image.in
+++ b/testing/resources/pixel/xfa_specific/xfa_tiff_deflate_image.in
@@ -1,39 +1,8 @@
 {{header}}
 
-%% Original object ID: 24 0
-{{object 1 0}}
-<<
-  /AcroForm 2 0 R
-  /Extensions <<
-    /ADBE <<
-      /BaseVersion /1.7
-      /ExtensionLevel 8
-    >>
-  >>
-  /NeedsRendering true
-  /Type /Catalog
->>
-endobj
-
-%% Original object ID: 32 0
-{{object 2 0}}
-<<
-  /XFA [
-    (preamble)
-    3 0 R
-    (config)
-    4 0 R
-    (template)
-    5 0 R
-    (localeSet)
-    6 0 R
-    (postamble)
-    7 0 R
-  ]
->>
-endobj
-
-{{xfapreamble 3 0}}
+{{include ../../xfa_catalog_1_0.fragment}}
+{{include ../../xfa_object_2_0.fragment}}
+{{include ../../xfa_preamble_3_0.fragment}}
 {{include ../../xfa_config_4_0.fragment}}
 
 {{object 5 0}}
@@ -67,7 +36,7 @@
 endobj
 
 {{include ../../xfa_locale_6_0.fragment}}
-{{xfapostamble 7 0}}
+{{include ../../xfa_postamble_7_0.fragment}}
 
 {{xref}}
 {{trailer}}
diff --git a/testing/resources/pixel/xfa_specific/xfa_tiff_image.in b/testing/resources/pixel/xfa_specific/xfa_tiff_image.in
index cb9b121..c94b041 100644
--- a/testing/resources/pixel/xfa_specific/xfa_tiff_image.in
+++ b/testing/resources/pixel/xfa_specific/xfa_tiff_image.in
@@ -1,39 +1,8 @@
 {{header}}
 
-%% Original object ID: 24 0
-{{object 1 0}}
-<<
-  /AcroForm 2 0 R
-  /Extensions <<
-    /ADBE <<
-      /BaseVersion /1.7
-      /ExtensionLevel 8
-    >>
-  >>
-  /NeedsRendering true
-  /Type /Catalog
->>
-endobj
-
-%% Original object ID: 32 0
-{{object 2 0}}
-<<
-  /XFA [
-    (preamble)
-    3 0 R
-    (config)
-    4 0 R
-    (template)
-    5 0 R
-    (localeSet)
-    6 0 R
-    (postamble)
-    7 0 R
-  ]
->>
-endobj
-
-{{xfapreamble 3 0}}
+{{include ../../xfa_catalog_1_0.fragment}}
+{{include ../../xfa_object_2_0.fragment}}
+{{include ../../xfa_preamble_3_0.fragment}}
 {{include ../../xfa_config_4_0.fragment}}
 
 {{object 5 0}}
@@ -67,7 +36,7 @@
 endobj
 
 {{include ../../xfa_locale_6_0.fragment}}
-{{xfapostamble 7 0}}
+{{include ../../xfa_postamble_7_0.fragment}}
 
 {{xref}}
 {{trailer}}
diff --git a/testing/resources/pixel/xfa_specific/xfa_tiff_lzw_image.in b/testing/resources/pixel/xfa_specific/xfa_tiff_lzw_image.in
index 52b5c68..85a8853 100644
--- a/testing/resources/pixel/xfa_specific/xfa_tiff_lzw_image.in
+++ b/testing/resources/pixel/xfa_specific/xfa_tiff_lzw_image.in
@@ -1,39 +1,8 @@
 {{header}}
 
-%% Original object ID: 24 0
-{{object 1 0}}
-<<
-  /AcroForm 2 0 R
-  /Extensions <<
-    /ADBE <<
-      /BaseVersion /1.7
-      /ExtensionLevel 8
-    >>
-  >>
-  /NeedsRendering true
-  /Type /Catalog
->>
-endobj
-
-%% Original object ID: 32 0
-{{object 2 0}}
-<<
-  /XFA [
-    (preamble)
-    3 0 R
-    (config)
-    4 0 R
-    (template)
-    5 0 R
-    (localeSet)
-    6 0 R
-    (postamble)
-    7 0 R
-  ]
->>
-endobj
-
-{{xfapreamble 3 0}}
+{{include ../../xfa_catalog_1_0.fragment}}
+{{include ../../xfa_object_2_0.fragment}}
+{{include ../../xfa_preamble_3_0.fragment}}
 {{include ../../xfa_config_4_0.fragment}}
 
 {{object 5 0}}
@@ -67,7 +36,7 @@
 endobj
 
 {{include ../../xfa_locale_6_0.fragment}}
-{{xfapostamble 7 0}}
+{{include ../../xfa_postamble_7_0.fragment}}
 
 {{xref}}
 {{trailer}}
diff --git a/testing/resources/pixel/xfa_specific/xfa_tiff_packbits_image.in b/testing/resources/pixel/xfa_specific/xfa_tiff_packbits_image.in
index 72bd4e7..f496f1c 100644
--- a/testing/resources/pixel/xfa_specific/xfa_tiff_packbits_image.in
+++ b/testing/resources/pixel/xfa_specific/xfa_tiff_packbits_image.in
@@ -1,39 +1,8 @@
 {{header}}
 
-%% Original object ID: 24 0
-{{object 1 0}}
-<<
-  /AcroForm 2 0 R
-  /Extensions <<
-    /ADBE <<
-      /BaseVersion /1.7
-      /ExtensionLevel 8
-    >>
-  >>
-  /NeedsRendering true
-  /Type /Catalog
->>
-endobj
-
-%% Original object ID: 32 0
-{{object 2 0}}
-<<
-  /XFA [
-    (preamble)
-    3 0 R
-    (config)
-    4 0 R
-    (template)
-    5 0 R
-    (localeSet)
-    6 0 R
-    (postamble)
-    7 0 R
-  ]
->>
-endobj
-
-{{xfapreamble 3 0}}
+{{include ../../xfa_catalog_1_0.fragment}}
+{{include ../../xfa_object_2_0.fragment}}
+{{include ../../xfa_preamble_3_0.fragment}}
 {{include ../../xfa_config_4_0.fragment}}
 
 {{object 5 0}}
@@ -67,7 +36,7 @@
 endobj
 
 {{include ../../xfa_locale_6_0.fragment}}
-{{xfapostamble 7 0}}
+{{include ../../xfa_postamble_7_0.fragment}}
 
 {{xref}}
 {{trailer}}
diff --git a/testing/resources/xfa/xfa_multiline_textfield.in b/testing/resources/xfa/xfa_multiline_textfield.in
index b32ac7b..dec526b 100644
--- a/testing/resources/xfa/xfa_multiline_textfield.in
+++ b/testing/resources/xfa/xfa_multiline_textfield.in
@@ -1,39 +1,8 @@
 {{header}}
 
-%% Original object ID: 24 0
-{{object 1 0}}
-<<
-  /AcroForm 2 0 R
-  /Extensions <<
-    /ADBE <<
-      /BaseVersion /1.7
-      /ExtensionLevel 8
-    >>
-  >>
-  /NeedsRendering true
-  /Type /Catalog
->>
-endobj
-
-%% Original object ID: 32 0
-{{object 2 0}}
-<<
-  /XFA [
-    (preamble)
-    3 0 R
-    (config)
-    4 0 R
-    (template)
-    5 0 R
-    (localeSet)
-    6 0 R
-    (postamble)
-    7 0 R
-  ]
->>
-endobj
-
-{{xfapreamble 3 0}}
+{{include ../xfa_catalog_1_0.fragment}}
+{{include ../xfa_object_2_0.fragment}}
+{{include ../xfa_preamble_3_0.fragment}}
 {{include ../xfa_config_4_0.fragment}}
 
 {{object 5 0}}
@@ -64,7 +33,7 @@
 endobj
 
 {{include ../xfa_locale_6_0.fragment}}
-{{xfapostamble 7 0}}
+{{include ../xfa_postamble_7_0.fragment}}
 
 {{xref}}
 {{trailer}}
diff --git a/testing/resources/xfa_catalog_1_0.fragment b/testing/resources/xfa_catalog_1_0.fragment
new file mode 100644
index 0000000..13f9ee5
--- /dev/null
+++ b/testing/resources/xfa_catalog_1_0.fragment
@@ -0,0 +1,12 @@
+{{object 1 0}} <<
+  /AcroForm 2 0 R
+  /Extensions <<
+    /ADBE <<
+      /BaseVersion /1.7
+      /ExtensionLevel 8
+    >>
+  >>
+  /NeedsRendering true
+  /Type /Catalog
+>>
+endobj
diff --git a/testing/resources/xfa_object_2_0.fragment b/testing/resources/xfa_object_2_0.fragment
new file mode 100644
index 0000000..c8b5a34
--- /dev/null
+++ b/testing/resources/xfa_object_2_0.fragment
@@ -0,0 +1,15 @@
+{{object 2 0}} <<
+  /XFA [
+    (preamble)
+    3 0 R
+    (config)
+    4 0 R
+    (template)
+    5 0 R
+    (localeSet)
+    6 0 R
+    (postamble)
+    7 0 R
+  ]
+>>
+endobj
diff --git a/testing/resources/xfa_postamble.xml b/testing/resources/xfa_postamble.xml
new file mode 100644
index 0000000..1d90745
--- /dev/null
+++ b/testing/resources/xfa_postamble.xml
@@ -0,0 +1 @@
+</xdp:xdp>
diff --git a/testing/resources/xfa_postamble_7_0.fragment b/testing/resources/xfa_postamble_7_0.fragment
new file mode 100644
index 0000000..0cc197a
--- /dev/null
+++ b/testing/resources/xfa_postamble_7_0.fragment
@@ -0,0 +1,7 @@
+{{object 7 0}} <<
+  {{streamlen}}
+>>
+stream
+{{include xfa_postamble.xml}}
+endstream
+endobj
diff --git a/testing/resources/xfa_preamble.xml b/testing/resources/xfa_preamble.xml
new file mode 100644
index 0000000..a44947f
--- /dev/null
+++ b/testing/resources/xfa_preamble.xml
@@ -0,0 +1 @@
+<xdp:xdp xmlns:xdp="http://ns.adobe.com/xdp/" timeStamp="2018-02-23T21:37:11Z" uuid="21482798-7bf0-40a4-bc5d-3cefdccf32b5">
diff --git a/testing/resources/xfa_preamble_3_0.fragment b/testing/resources/xfa_preamble_3_0.fragment
new file mode 100644
index 0000000..0dc7939
--- /dev/null
+++ b/testing/resources/xfa_preamble_3_0.fragment
@@ -0,0 +1,7 @@
+{{object 3 0}} <<
+  {{streamlen}}
+>>
+stream
+{{include xfa_preamble.xml}}
+endstream
+endobj
diff --git a/testing/tools/fixup_pdf_template.py b/testing/tools/fixup_pdf_template.py
index 6978bbd..3c5ecf5 100755
--- a/testing/tools/fixup_pdf_template.py
+++ b/testing/tools/fixup_pdf_template.py
@@ -15,10 +15,6 @@
   {{startxref} - expands to a startxref directive followed by correct offset.
   {{object x y}} - expands to |x y obj| declaration, noting the offset.
   {{streamlen}} - expands to |/Length n|.
-  {{xfapreamble x y}} - expands to an object |x y obj| containing a XML preamble
-                        to be used in XFA docs.
-  {{xfapostamble x y}} - expands to an object |x y obj| containing a XML
-                         posteamble to be used in XFA docs.
 """
 
 import cStringIO
@@ -60,14 +56,6 @@
   STREAMLEN_TOKEN = '{{streamlen}}'
   STREAMLEN_REPLACEMENT = '/Length %d'
 
-  XFAPREAMBLE_PATTERN = r'\{\{xfapreamble\s+(\d+)\s+(\d+)\}\}'
-  XFAPREAMBLE_REPLACEMENT = '%d %d obj\n<<\n  /Length %d\n>>\nstream\n%s\nendstream\nendobj\n'
-  XFAPREAMBLE_STREAM = '<xdp:xdp xmlns:xdp="http://ns.adobe.com/xdp/" timeStamp="2018-02-23T21:37:11Z" uuid="21482798-7bf0-40a4-bc5d-3cefdccf32b5">'
-
-  XFAPOSTAMBLE_PATTERN = r'\{\{xfapostamble\s+(\d+)\s+(\d+)\}\}'
-  XFAPOSTAMBLE_REPLACEMENT = '%d %d obj\n<<\n  /Length %d\n>>\nstream\n%s\nendstream\nendobj\n'
-  XFAPOSTAMBLE_STREAM = '</xdp:xdp>'
-
   def __init__(self):
     self.streamlen_state = StreamLenState.START
     self.streamlens = []
@@ -126,27 +114,9 @@
     if match:
       self.insert_xref_entry(int(match.group(1)), int(match.group(2)))
       line = re.sub(self.OBJECT_PATTERN, self.OBJECT_REPLACEMENT, line)
-    line = self.replace_xfa_tag(line,
-                                self.XFAPREAMBLE_PATTERN,
-                                self.XFAPREAMBLE_REPLACEMENT,
-                                self.XFAPREAMBLE_STREAM)
-    line = self.replace_xfa_tag(line,
-                                self.XFAPOSTAMBLE_PATTERN,
-                                self.XFAPOSTAMBLE_REPLACEMENT,
-                                self.XFAPOSTAMBLE_STREAM)
-
     self.offset += len(line)
     return line
 
-  def replace_xfa_tag(self, line, pattern, replacement, stream):
-    match = re.match(pattern, line)
-    if match:
-      x = int(match.group(1))
-      y = int(match.group(2))
-      self.insert_xref_entry(x, y)
-      line = replacement % (x, y, len(stream), stream)
-    return line
-
 
 def expand_file(infile, output_path):
   processor = TemplateProcessor()
