abstract-document 10.0.4 → 11.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/mixed-textrun-and-images.d.ts.map +1 -1
  3. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/mixed-textrun-and-images.js +1 -1
  4. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/mixed-textrun-and-images.js.map +1 -1
  5. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/multiple-images.js +1 -1
  6. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/multiple-images.js.map +1 -1
  7. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/single-image.d.ts.map +1 -1
  8. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/single-image.js +1 -1
  9. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/single-image.js.map +1 -1
  10. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/mixed-textrun-and-images.d.ts.map +1 -1
  11. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/mixed-textrun-and-images.js +1 -1
  12. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/mixed-textrun-and-images.js.map +1 -1
  13. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/multiple-images-overflow.d.ts.map +1 -1
  14. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/multiple-images-overflow.js +1 -1
  15. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/multiple-images-overflow.js.map +1 -1
  16. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/multiple-images.d.ts.map +1 -1
  17. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/multiple-images.js +1 -1
  18. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/multiple-images.js.map +1 -1
  19. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/simple-table-cell-padding-image.d.ts.map +1 -1
  20. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/simple-table-cell-padding-image.js +1 -1
  21. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/simple-table-cell-padding-image.js.map +1 -1
  22. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-figure.d.ts.map +1 -1
  23. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-figure.js +1 -1
  24. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-figure.js.map +1 -1
  25. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-image-svg-color-hex.d.ts.map +1 -1
  26. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-image-svg-color-hex.js +1 -1
  27. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-image-svg-color-hex.js.map +1 -1
  28. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-image-svg-color-name.d.ts.map +1 -1
  29. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-image-svg-color-name.js +1 -1
  30. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-image-svg-color-name.js.map +1 -1
  31. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-image-svg-color-url.d.ts.map +1 -1
  32. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-image-svg-color-url.js +1 -1
  33. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-image-svg-color-url.js.map +1 -1
  34. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-image-svg-dasharray.d.ts.map +1 -1
  35. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-image-svg-dasharray.js +1 -1
  36. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-image-svg-dasharray.js.map +1 -1
  37. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-image.d.ts.map +1 -1
  38. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-image.js +1 -1
  39. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-image.js.map +1 -1
  40. package/lib/abstract-document-exporters/pdf/font.d.ts +1 -1
  41. package/lib/abstract-document-exporters/pdf/font.d.ts.map +1 -1
  42. package/lib/abstract-document-exporters/pdf/font.js +19 -19
  43. package/lib/abstract-document-exporters/pdf/font.js.map +1 -1
  44. package/lib/abstract-document-exporters/pdf/measure.d.ts +4 -3
  45. package/lib/abstract-document-exporters/pdf/measure.d.ts.map +1 -1
  46. package/lib/abstract-document-exporters/pdf/measure.js +24 -24
  47. package/lib/abstract-document-exporters/pdf/measure.js.map +1 -1
  48. package/lib/abstract-document-exporters/pdf/paginate.d.ts +2 -1
  49. package/lib/abstract-document-exporters/pdf/paginate.d.ts.map +1 -1
  50. package/lib/abstract-document-exporters/pdf/paginate.js +3 -7
  51. package/lib/abstract-document-exporters/pdf/paginate.js.map +1 -1
  52. package/lib/abstract-document-exporters/pdf/render-image.d.ts +2 -1
  53. package/lib/abstract-document-exporters/pdf/render-image.d.ts.map +1 -1
  54. package/lib/abstract-document-exporters/pdf/render-image.js +2 -8
  55. package/lib/abstract-document-exporters/pdf/render-image.js.map +1 -1
  56. package/lib/abstract-document-exporters/pdf/render.d.ts +3 -2
  57. package/lib/abstract-document-exporters/pdf/render.d.ts.map +1 -1
  58. package/lib/abstract-document-exporters/pdf/render.js +26 -36
  59. package/lib/abstract-document-exporters/pdf/render.js.map +1 -1
  60. package/lib/abstract-document-xml/parse-xml/parse-xml.d.ts +2 -2
  61. package/lib/abstract-document-xml/parse-xml/parse-xml.d.ts.map +1 -1
  62. package/lib/abstract-document-xml/parse-xml/parse-xml.js.map +1 -1
  63. package/package.json +12 -13
  64. package/src/abstract-document-exporters/__tests__/docx2/test-defs/mixed-textrun-and-images.tsx +1 -1
  65. package/src/abstract-document-exporters/__tests__/docx2/test-defs/multiple-images.tsx +1 -1
  66. package/src/abstract-document-exporters/__tests__/docx2/test-defs/single-image.tsx +1 -1
  67. package/src/abstract-document-exporters/__tests__/docx2/tmp/Group.docx +0 -0
  68. package/src/abstract-document-exporters/__tests__/docx2/tmp/Header and footer.docx and b/package/src/abstract-document-exporters/__tests__/docx2/tmp/Header → footer.docx +0 -0
  69. package/src/abstract-document-exporters/__tests__/docx2/tmp/Mixed hyperlink and textrun.docx and b/package/src/abstract-document-exporters/__tests__/docx2/tmp/Mixed hyperlink → textrun.docx +0 -0
  70. package/src/abstract-document-exporters/__tests__/docx2/tmp/Mixed textrun and images.docx and b/package/src/abstract-document-exporters/__tests__/docx2/tmp/Mixed textrun → images.docx +0 -0
  71. package/src/abstract-document-exporters/__tests__/docx2/tmp/Multiple images.docx +0 -0
  72. package/src/abstract-document-exporters/__tests__/docx2/tmp/Multiple tables.docx +0 -0
  73. package/src/abstract-document-exporters/__tests__/docx2/tmp/Multiple textrun with Center alignment.docx +0 -0
  74. package/src/abstract-document-exporters/__tests__/docx2/tmp/Multiple textrun with End alignment.docx +0 -0
  75. package/src/abstract-document-exporters/__tests__/docx2/tmp/Multiple textrun with Start alignment that linebreaks.docx +0 -0
  76. package/src/abstract-document-exporters/__tests__/docx2/tmp/Multiple textrun with Start alignment.docx +0 -0
  77. package/src/abstract-document-exporters/__tests__/docx2/tmp/Page numbering.docx +0 -0
  78. package/src/abstract-document-exporters/__tests__/docx2/tmp/Simple table colSpan and rowSpan.docx and b/package/src/abstract-document-exporters/__tests__/docx2/tmp/Simple table colSpan → rowSpan.docx +0 -0
  79. package/src/abstract-document-exporters/__tests__/docx2/tmp/Simple table without rows.docx +0 -0
  80. package/src/abstract-document-exporters/__tests__/docx2/tmp/Simple table.docx +0 -0
  81. package/src/abstract-document-exporters/__tests__/docx2/tmp/Single hyperlink.docx +0 -0
  82. package/src/abstract-document-exporters/__tests__/docx2/tmp/Single image.docx +0 -0
  83. package/src/abstract-document-exporters/__tests__/docx2/tmp/Single textrun with Center alignment that linebreaks.docx +0 -0
  84. package/src/abstract-document-exporters/__tests__/docx2/tmp/Single textrun with Center alignment.docx +0 -0
  85. package/src/abstract-document-exporters/__tests__/docx2/tmp/Single textrun with End alignment that linebreaks.docx +0 -0
  86. package/src/abstract-document-exporters/__tests__/docx2/tmp/Single textrun with End alignment.docx +0 -0
  87. package/src/abstract-document-exporters/__tests__/docx2/tmp/Single textrun with Start alignment that linebreaks.docx +0 -0
  88. package/src/abstract-document-exporters/__tests__/docx2/tmp/Single textrun with Start alignment.docx +0 -0
  89. package/src/abstract-document-exporters/__tests__/docx2/tmp/Single textrun.docx +0 -0
  90. package/src/abstract-document-exporters/__tests__/docx2/tmp/hello with Arial font.docx +0 -0
  91. package/src/abstract-document-exporters/__tests__/docx2/tmp/hello.docx +0 -0
  92. package/src/abstract-document-exporters/__tests__/docx2/tmp/letter-dimensions.docx +0 -0
  93. package/src/abstract-document-exporters/__tests__/docx2/tmp/page-orientation-landscape.docx +0 -0
  94. package/src/abstract-document-exporters/__tests__/docx2/tmp/page-orientation-portrait.docx +0 -0
  95. package/src/abstract-document-exporters/__tests__/docx2/tmp/tocSeparator.docx +0 -0
  96. package/src/abstract-document-exporters/__tests__/docx2/tmp/world.docx +0 -0
  97. package/src/abstract-document-exporters/__tests__/pdf/test-defs/mixed-textrun-and-images.tsx +1 -1
  98. package/src/abstract-document-exporters/__tests__/pdf/test-defs/multiple-images-overflow.tsx +1 -1
  99. package/src/abstract-document-exporters/__tests__/pdf/test-defs/multiple-images.tsx +1 -1
  100. package/src/abstract-document-exporters/__tests__/pdf/test-defs/simple-table-cell-padding-image.tsx +1 -1
  101. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-figure.tsx +1 -1
  102. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-image-svg-color-hex.tsx +1 -1
  103. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-image-svg-color-name.tsx +1 -1
  104. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-image-svg-color-url.tsx +1 -1
  105. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-image-svg-dasharray.tsx +1 -1
  106. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-image.tsx +1 -1
  107. package/src/abstract-document-exporters/__tests__/pdf/tmp/Absolute position group.pdf +2 -2
  108. package/src/abstract-document-exporters/__tests__/pdf/tmp/Absolute position header and footer.pdf +2 -2
  109. package/src/abstract-document-exporters/__tests__/pdf/tmp/Absolute position paragraph.pdf +2 -2
  110. package/src/abstract-document-exporters/__tests__/pdf/tmp/Absolute position section in group.pdf +2 -2
  111. package/src/abstract-document-exporters/__tests__/pdf/tmp/Absolute position section in table.pdf +2 -2
  112. package/src/abstract-document-exporters/__tests__/pdf/tmp/Absolute position table.pdf +2 -2
  113. package/src/abstract-document-exporters/__tests__/pdf/tmp/Group Paragraphs.pdf +2 -2
  114. package/src/abstract-document-exporters/__tests__/pdf/tmp/Group Tables.pdf +2 -2
  115. package/src/abstract-document-exporters/__tests__/pdf/tmp/Group no keeptogether.pdf +2 -2
  116. package/src/abstract-document-exporters/__tests__/pdf/tmp/Group too big for one page.pdf +2 -2
  117. package/src/abstract-document-exporters/__tests__/pdf/tmp/Header and footer.pdf +2 -2
  118. package/src/abstract-document-exporters/__tests__/pdf/tmp/Hyperlink internal linktarget.pdf +2 -2
  119. package/src/abstract-document-exporters/__tests__/pdf/tmp/Hyperlink internal.pdf +2 -2
  120. package/src/abstract-document-exporters/__tests__/pdf/tmp/Manual line break.pdf +2 -2
  121. package/src/abstract-document-exporters/__tests__/pdf/tmp/Manual line breaks empty lines.pdf +2 -2
  122. package/src/abstract-document-exporters/__tests__/pdf/tmp/Margins header body footer.pdf +2 -2
  123. package/src/abstract-document-exporters/__tests__/pdf/tmp/Mixed hyperlink and textrun no underline.pdf +2 -2
  124. package/src/abstract-document-exporters/__tests__/pdf/tmp/Mixed hyperlink and textrun with underline.pdf +2 -2
  125. package/src/abstract-document-exporters/__tests__/pdf/tmp/Mixed hyperlink and textrun.pdf +2 -2
  126. package/src/abstract-document-exporters/__tests__/pdf/tmp/Mixed textrun and images.pdf and b/package/src/abstract-document-exporters/__tests__/pdf/tmp/Mixed textrun → images.pdf +0 -0
  127. package/src/abstract-document-exporters/__tests__/pdf/tmp/Multiple images overflow.pdf +0 -0
  128. package/src/abstract-document-exporters/__tests__/pdf/tmp/Multiple images.pdf +0 -0
  129. package/src/abstract-document-exporters/__tests__/pdf/tmp/Multiple textrun with Center alignment.pdf +2 -2
  130. package/src/abstract-document-exporters/__tests__/pdf/tmp/Multiple textrun with End alignment.pdf +2 -2
  131. package/src/abstract-document-exporters/__tests__/pdf/tmp/Multiple textrun with Start alignment that linebreaks.pdf +2 -2
  132. package/src/abstract-document-exporters/__tests__/pdf/tmp/Multiple textrun with Start alignment.pdf +2 -2
  133. package/src/abstract-document-exporters/__tests__/pdf/tmp/Page numbering.pdf +2 -2
  134. package/src/abstract-document-exporters/__tests__/pdf/tmp/Pagebreak table row that doesnt fit page.pdf +2 -2
  135. package/src/abstract-document-exporters/__tests__/pdf/tmp/Pagebreak table single row.pdf +2 -2
  136. package/src/abstract-document-exporters/__tests__/pdf/tmp/Pagebreak table with group.pdf +2 -2
  137. package/src/abstract-document-exporters/__tests__/pdf/tmp/Pagebreak table with header 2.pdf +2 -2
  138. package/src/abstract-document-exporters/__tests__/pdf/tmp/Pagebreak table with header.pdf +2 -2
  139. package/src/abstract-document-exporters/__tests__/pdf/tmp/Pagebreak table with margin bottom.pdf +2 -2
  140. package/src/abstract-document-exporters/__tests__/pdf/tmp/Pagebreak table with margin top single table.pdf +2 -2
  141. package/src/abstract-document-exporters/__tests__/pdf/tmp/Pagebreak table with margin top.pdf +2 -2
  142. package/src/abstract-document-exporters/__tests__/pdf/tmp/Pagebreak table with rowSpan multipages.pdf +2 -2
  143. package/src/abstract-document-exporters/__tests__/pdf/tmp/Pagebreak table with rowSpan.pdf +2 -2
  144. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table all auto.pdf +2 -2
  145. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table all fix.pdf +2 -2
  146. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table background.pdf +2 -2
  147. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table cell padding of image.pdf +0 -0
  148. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table cell padding of text.pdf +2 -2
  149. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table center alignment.pdf +2 -2
  150. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table colSpan and rowSpan.pdf +2 -2
  151. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table minimal row height.pdf +2 -2
  152. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table mix auto fix.pdf +2 -2
  153. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table padding.pdf +2 -2
  154. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table right alignment.pdf +2 -2
  155. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table row alignment.pdf +2 -2
  156. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table text alignment in cell with wrapping.pdf +2 -2
  157. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table text alignment in cell.pdf +2 -2
  158. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table with default colored borders.pdf +2 -2
  159. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table with header.pdf +2 -2
  160. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table with multi colored borders.pdf +2 -2
  161. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table with single colored borders.pdf +2 -2
  162. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single date.pdf +3 -3
  163. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single figure.pdf +13 -15
  164. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single hyperlink centered.pdf +2 -2
  165. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single hyperlink no underline.pdf +17 -19
  166. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single hyperlink right aligned.pdf +2 -2
  167. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single hyperlink.pdf +2 -2
  168. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single image from URL.pdf +0 -0
  169. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single image svg color hex.pdf +13 -17
  170. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single image svg color name.pdf +13 -17
  171. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single image svg color url.pdf +12 -18
  172. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single image svg dasharray.pdf +12 -16
  173. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single image.pdf +0 -0
  174. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun baseline alphabetic.pdf +2 -2
  175. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun baseline bottom.pdf +2 -2
  176. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun baseline hanging.pdf +2 -2
  177. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun baseline middle.pdf +2 -2
  178. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun baseline top.pdf +2 -2
  179. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun with Center alignment that linebreaks.pdf +2 -2
  180. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun with Center alignment.pdf +2 -2
  181. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun with End alignment that linebreaks.pdf +2 -2
  182. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun with End alignment.pdf +2 -2
  183. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun with Justify alignment.pdf +2 -2
  184. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun with Start alignment that linebreaks.pdf +2 -2
  185. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun with Start alignment.pdf +2 -2
  186. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun with super and subscripts.pdf +2 -2
  187. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun.pdf +2 -2
  188. package/src/abstract-document-exporters/__tests__/pdf/tmp/Table of content separator.pdf +2 -2
  189. package/src/abstract-document-exporters/__tests__/pdf/tmp/hello with roman font.pdf +2 -2
  190. package/src/abstract-document-exporters/__tests__/pdf/tmp/hello.pdf +2 -2
  191. package/src/abstract-document-exporters/__tests__/pdf/tmp/pagebreak.pdf +2 -2
  192. package/src/abstract-document-exporters/__tests__/pdf/tmp/world.pdf +2 -2
  193. package/src/abstract-document-exporters/pdf/font.ts +19 -20
  194. package/src/abstract-document-exporters/pdf/measure.ts +34 -30
  195. package/src/abstract-document-exporters/pdf/paginate.ts +15 -14
  196. package/src/abstract-document-exporters/pdf/render-image.ts +4 -7
  197. package/src/abstract-document-exporters/pdf/render.ts +72 -54
  198. package/src/abstract-document-xml/parse-xml/parse-xml.ts +2 -2
@@ -5,26 +5,30 @@ import { registerFonts, getFontNameStyle } from "./font";
5
5
 
6
6
  //tslint:disable:no-any variable-name
7
7
 
8
- export function measure(PDFDocument: any, document: AD.AbstractDoc.AbstractDoc): Map<any, AD.Size.Size> {
9
- let pdf = new PDFDocument();
8
+ export function measure(pdfKit: PDFKit.PDFDocument, document: AD.AbstractDoc.AbstractDoc): Map<any, AD.Size.Size> {
9
+ let pdf = new pdfKit();
10
10
  registerFonts((fontName: string, fontSource: AD.Font.FontSource) => pdf.registerFont(fontName, fontSource), document);
11
11
  return mergeMaps(document.children.map((s) => measureSection(pdf, document, s)));
12
12
  }
13
13
 
14
14
  export function measurePages(
15
- PDFDocument: any,
15
+ pdfKit: PDFKit.PDFDocument,
16
16
  document: AD.AbstractDoc.AbstractDoc,
17
17
  pages: ReadonlyArray<Page>
18
18
  ): Map<any, AD.Size.Size> {
19
- let pdf = new PDFDocument();
20
- registerFonts((fontName: string, fontSource: AD.Font.FontSource) => pdf.registerFont(fontName, fontSource), document);
19
+ let pdf = new pdfKit();
20
+ registerFonts(
21
+ (fontName: string, fontSource: AD.Font.FontSource, fontFamily: string) =>
22
+ pdf.registerFont(fontName, fontSource, fontFamily),
23
+ document
24
+ );
21
25
  return mergeMaps(
22
26
  pages.map((page) => measureSection(pdf, document, page.section, page.header, page.footer, page.elements))
23
27
  );
24
28
  }
25
29
 
26
30
  function measureSection(
27
- pdf: any,
31
+ pdfKit: PDFKit.PDFDocument,
28
32
  parentResources: AD.Resources.Resources,
29
33
  section: AD.Section.Section,
30
34
  separateHeader?: ReadonlyArray<AD.SectionElement.SectionElement>,
@@ -42,23 +46,23 @@ function measureSection(
42
46
  const contentAvailableWidth =
43
47
  pageWidth - (section.page.style.contentMargins.left + section.page.style.contentMargins.right);
44
48
  const contentAvailableSize = AD.Size.create(contentAvailableWidth, pageHeight);
45
- const sectionSizes = children.map((e) => measureSectionElement(pdf, resources, contentAvailableSize, e));
49
+ const sectionSizes = children.map((e) => measureSectionElement(pdfKit, resources, contentAvailableSize, e));
46
50
 
47
51
  const headerAvailableWidth =
48
52
  pageWidth - (section.page.style.headerMargins.left + section.page.style.headerMargins.right);
49
53
  const headerAvailableSize = AD.Size.create(headerAvailableWidth, pageHeight);
50
- const headerSizes = header.map((e) => measureSectionElement(pdf, resources, headerAvailableSize, e));
54
+ const headerSizes = header.map((e) => measureSectionElement(pdfKit, resources, headerAvailableSize, e));
51
55
 
52
56
  const footerAvailableWidth =
53
57
  pageWidth - (section.page.style.footerMargins.left + section.page.style.footerMargins.right);
54
58
  const footerAvailableSize = AD.Size.create(footerAvailableWidth, pageHeight);
55
- const footerSizes = footer.map((e) => measureSectionElement(pdf, resources, footerAvailableSize, e));
59
+ const footerSizes = footer.map((e) => measureSectionElement(pdfKit, resources, footerAvailableSize, e));
56
60
 
57
61
  return mergeMaps([...sectionSizes, ...headerSizes, ...footerSizes]);
58
62
  }
59
63
 
60
64
  function measureSectionElement(
61
- pdf: any,
65
+ pdf: PDFKit.PDFDocument,
62
66
  parentResources: AD.Resources.Resources,
63
67
  availableSize: AD.Size.Size,
64
68
  element: AD.SectionElement.SectionElement
@@ -85,7 +89,7 @@ function measurePageBreak(availableSize: AD.Size.Size, pageBreak: AD.PageBreak.P
85
89
  }
86
90
 
87
91
  function measureParagraph(
88
- pdf: any,
92
+ pdfKit: PDFKit.PDFDocument,
89
93
  resources: AD.Resources.Resources,
90
94
  availableSize: AD.Size.Size,
91
95
  paragraph: AD.Paragraph.Paragraph
@@ -129,7 +133,7 @@ function measureParagraph(
129
133
  hasAtomImage = true;
130
134
  }
131
135
  const atomSize = measureAtom(
132
- pdf,
136
+ pdfKit,
133
137
  resources,
134
138
  style.textStyle,
135
139
  contentAvailableSize,
@@ -154,7 +158,7 @@ function measureParagraph(
154
158
  } else if (hasAtomImage) {
155
159
  paragraphHeight += desiredHeight + currentRowHeight;
156
160
  } else {
157
- paragraphHeight += pdf.heightOfString(concatenatedText, {
161
+ paragraphHeight += pdfKit.heightOfString(concatenatedText, {
158
162
  width: textOptions && textOptions.lineBreak === false ? Infinity : availableSize.width,
159
163
  ...textOptions,
160
164
  });
@@ -192,7 +196,7 @@ function getBiggestStyle(
192
196
  }
193
197
 
194
198
  export function measureTable(
195
- pdf: any,
199
+ pdfKit: PDFKit.PDFDocument,
196
200
  resources: AD.Resources.Resources,
197
201
  availableSize: AD.Size.Size,
198
202
  table: AD.Table.Table
@@ -228,7 +232,7 @@ export function measureTable(
228
232
 
229
233
  for (let element of cell.children) {
230
234
  const elementAvailableSize = AD.Size.create(contentAvailableWidth, Infinity);
231
- const elementSizes = measureSectionElement(pdf, resources, elementAvailableSize, element);
235
+ const elementSizes = measureSectionElement(pdfKit, resources, elementAvailableSize, element);
232
236
  elementSizes.forEach((v, k) => desiredSizes.set(k, v));
233
237
  const elementSize = getDesiredSize(element, desiredSizes);
234
238
  if (!AD.Position.isPositionAbsolute(element)) {
@@ -290,13 +294,13 @@ export function measureTable(
290
294
  }
291
295
 
292
296
  function measureGroup(
293
- pdf: any,
297
+ pdfKit: PDFKit.PDFDocument,
294
298
  resources: AD.Resources.Resources,
295
299
  availableSize: AD.Size.Size,
296
300
  keepTogether: AD.Group.Group
297
301
  ): Map<any, AD.Size.Size> {
298
302
  let desiredSizes = mergeMaps(
299
- keepTogether.children.map((e) => measureSectionElement(pdf, resources, availableSize, e))
303
+ keepTogether.children.map((e) => measureSectionElement(pdfKit, resources, availableSize, e))
300
304
  );
301
305
  let desiredHeight = keepTogether.children.reduce(
302
306
  (sum, e) => sum + (AD.Position.isPositionAbsolute(e) ? 0 : getDesiredSize(e, desiredSizes).height),
@@ -307,7 +311,7 @@ function measureGroup(
307
311
  }
308
312
 
309
313
  function measureAtom(
310
- pdf: any,
314
+ pdfKit: PDFKit.PDFDocument,
311
315
  resources: AD.Resources.Resources,
312
316
  textStyle: AD.TextStyle.TextStyle,
313
317
  availableSize: AD.Size.Size,
@@ -316,17 +320,17 @@ function measureAtom(
316
320
  ): AD.Size.Size {
317
321
  switch (atom.type) {
318
322
  case "TextRun":
319
- return measureTextRun(pdf, resources, textStyle, atom, availableSize);
323
+ return measureTextRun(pdfKit, resources, textStyle, atom, availableSize);
320
324
  case "TextField":
321
- return measureTextField(pdf, resources, textStyle, atom, availableSize);
325
+ return measureTextField(pdfKit, resources, textStyle, atom, availableSize);
322
326
  case "Image":
323
327
  return measureImage(availableSize, atom);
324
328
  case "HyperLink":
325
- return measureHyperLink(pdf, resources, textStyle, atom, availableSize);
329
+ return measureHyperLink(pdfKit, resources, textStyle, atom, availableSize);
326
330
  case "TocSeparator":
327
- return measureTocSeparator(pdf, textStyle, availableSize, availableRowSpace);
331
+ return measureTocSeparator(pdfKit, textStyle, availableSize, availableRowSpace);
328
332
  case "LineBreak":
329
- return measureLineBreak(pdf, resources, textStyle, availableSize);
333
+ return measureLineBreak(pdfKit, resources, textStyle, availableSize);
330
334
  case "LinkTarget":
331
335
  return {
332
336
  width: availableSize.width,
@@ -338,12 +342,12 @@ function measureAtom(
338
342
  }
339
343
 
340
344
  function measureLineBreak(
341
- pdf: any,
345
+ pdfKit: PDFKit.PDFDocument,
342
346
  resources: AD.Resources.Resources,
343
347
  textStyle: AD.TextStyle.TextStyle,
344
348
  availableSize: AD.Size.Size
345
349
  ): AD.Size.Size {
346
- const textSize = measureText(pdf, "A", textStyle, availableSize);
350
+ const textSize = measureText(pdfKit, "A", textStyle, availableSize);
347
351
  return {
348
352
  height: textSize.height,
349
353
  width: 0,
@@ -351,7 +355,7 @@ function measureLineBreak(
351
355
  }
352
356
 
353
357
  function measureTextRun(
354
- pdf: any,
358
+ pdf: PDFKit.PDFDocument,
355
359
  resources: AD.Resources.Resources,
356
360
  textStyle: AD.TextStyle.TextStyle,
357
361
  textRun: AD.TextRun.TextRun,
@@ -369,7 +373,7 @@ function measureTextRun(
369
373
  }
370
374
 
371
375
  function measureHyperLink(
372
- pdf: any,
376
+ pdf: PDFKit.PDFDocument,
373
377
  resources: AD.Resources.Resources,
374
378
  textStyle: AD.TextStyle.TextStyle,
375
379
  hyperLink: AD.HyperLink.HyperLink,
@@ -386,7 +390,7 @@ function measureHyperLink(
386
390
  }
387
391
 
388
392
  function measureTextField(
389
- pdf: any,
393
+ pdf: PDFKit.PDFDocument,
390
394
  resources: AD.Resources.Resources,
391
395
  textStyle: AD.TextStyle.TextStyle,
392
396
  textField: AD.TextField.TextField,
@@ -412,7 +416,7 @@ function measureTextField(
412
416
  }
413
417
 
414
418
  function measureTocSeparator(
415
- pdf: any,
419
+ pdf: PDFKit.PDFDocument,
416
420
  textStyle: AD.TextStyle.TextStyle,
417
421
  availableSize: AD.Size.Size,
418
422
  availableRowSpace: number
@@ -431,7 +435,7 @@ function measureImage(availableSize: AD.Size.Size, image: AD.Image.Image): AD.Si
431
435
  }
432
436
 
433
437
  function measureText(
434
- pdf: any,
438
+ pdf: PDFKit.PDFDocument,
435
439
  text: string,
436
440
  textStyle: AD.TextStyle.TextStyle,
437
441
  availableSize: AD.Size.Size
@@ -3,8 +3,6 @@ import { getResources } from "../shared/get_resources";
3
3
  import { registerFonts } from "./font";
4
4
  import { measureTable } from "./measure";
5
5
 
6
- /* tslint:disable:no-any */
7
-
8
6
  export interface Page {
9
7
  readonly pageNo: number;
10
8
  readonly namedDestionations: ReadonlyArray<string>;
@@ -17,19 +15,18 @@ export interface Page {
17
15
  }
18
16
 
19
17
  export function paginate(
20
- pdfKit: any,
18
+ pdfKit: PDFKit.PDFDocument,
21
19
  document: AD.AbstractDoc.AbstractDoc,
22
20
  desiredSizes: Map<any, AD.Size.Size>
23
21
  ): ReadonlyArray<Page> {
24
22
  const resources = getResources(document);
25
- let pdf = new pdfKit({
26
- compress: false,
27
- autoFirstPage: false,
28
- bufferPages: true,
29
- }) as any;
30
-
31
- registerFonts((fontName: string, fontSource: AD.Font.FontSource) => pdf.registerFont(fontName, fontSource), document);
23
+ let pdf = new pdfKit({ compress: false, autoFirstPage: false, bufferPages: true });
32
24
 
25
+ registerFonts(
26
+ (fontName: string, fontSource: AD.Font.FontSource, fontFamily: string) =>
27
+ pdf.registerFont(fontName, fontSource, fontFamily),
28
+ document
29
+ );
33
30
  let pages = new Array<Page>();
34
31
  for (let section of document.children) {
35
32
  const previousPage = pages.length > 0 ? pages[pages.length - 1] : undefined;
@@ -40,7 +37,7 @@ export function paginate(
40
37
  }
41
38
 
42
39
  function splitSection(
43
- pdfKit: any,
40
+ pdfKit: PDFKit.PDFDocument,
44
41
  document: AD.AbstractDoc.AbstractDoc,
45
42
  parentResources: AD.Resources.Resources,
46
43
  desiredSizes: Map<{}, AD.Size.Size>,
@@ -138,7 +135,7 @@ function splitSection(
138
135
  }
139
136
 
140
137
  function splitTable(
141
- pdfKit: any,
138
+ pdfKit: PDFKit.PDFDocument,
142
139
  document: AD.AbstractDoc.AbstractDoc,
143
140
  resources: AD.Resources.Resources,
144
141
  desiredSizes: Map<{}, AD.Size.Size>,
@@ -370,7 +367,7 @@ function getDesiredSize(element: {}, desiredSizes: Map<{}, AD.Size.Size>): AD.Si
370
367
  }
371
368
 
372
369
  function splitTableAt(
373
- pdfKit: any,
370
+ pdfKit: PDFKit.PDFDocument,
374
371
  document: AD.AbstractDoc.AbstractDoc,
375
372
  resources: AD.Resources.Resources,
376
373
  desiredSizes: Map<{}, AD.Size.Size>,
@@ -420,7 +417,11 @@ function splitTableAt(
420
417
 
421
418
  const availableSize = getDesiredSize(table, desiredSizes);
422
419
  let pdf = new pdfKit();
423
- registerFonts((fontName: string, fontSource: AD.Font.FontSource) => pdf.registerFont(fontName, fontSource), document);
420
+ registerFonts(
421
+ (fontName: string, fontSource: AD.Font.FontSource, fontFamily: string) =>
422
+ pdf.registerFont(fontName, fontSource, fontFamily),
423
+ document
424
+ );
424
425
  const headSizes = measureTable(pdf, resources, availableSize, tableHead);
425
426
  const tailSizes = measureTable(pdf, resources, availableSize, tableTail);
426
427
 
@@ -6,13 +6,11 @@ import { getFontNameStyle, getFontName, isFontAvailable } from "./font";
6
6
 
7
7
  export function renderImage(
8
8
  resources: AD.Resources.Resources,
9
- // tslint:disable-next-line:no-any
10
- pdf: any,
9
+ pdf: PDFKit.PDFDocument,
11
10
  finalRect: AD.Rect.Rect,
12
11
  textStyle: AD.TextStyle.TextStyle,
13
12
  image: AD.Image.Image
14
- // tslint:disable-next-line:no-any
15
- ): any {
13
+ ): void {
16
14
  const aImage = image.imageResource.abstractImage;
17
15
  const position = AD.Point.create(finalRect.x, finalRect.y);
18
16
  const scaleX = finalRect.width / aImage.size.width;
@@ -26,8 +24,7 @@ export function renderImage(
26
24
 
27
25
  function abstractComponentToPdf(
28
26
  resources: AD.Resources.Resources,
29
- // tslint:disable-next-line:no-any
30
- pdf: any,
27
+ pdf: PDFKit.PDFDocument,
31
28
  component: AbstractImage.Component,
32
29
  textStyle: AD.TextStyle.TextStyle
33
30
  ): void {
@@ -213,6 +210,6 @@ function colorToOpacity(color: AbstractImage.Color): number {
213
210
  return color.a / 255;
214
211
  }
215
212
 
216
- function colorToRgb(color: AbstractImage.Color): Array<number> {
213
+ function colorToRgb(color: AbstractImage.Color): [number, number, number] {
217
214
  return [color.r, color.g, color.b];
218
215
  }
@@ -11,8 +11,7 @@ export type PdfExportOptions = {
11
11
  };
12
12
 
13
13
  export function exportToHTML5Blob(
14
- // tslint:disable-next-line:no-any
15
- pdfKit: any,
14
+ pdfKit: PDFKit.PDFDocument,
16
15
  doc: AD.AbstractDoc.AbstractDoc,
17
16
  options: PdfExportOptions = { compress: false }
18
17
  ): Promise<Blob> {
@@ -33,8 +32,8 @@ export function exportToHTML5Blob(
33
32
  * @param options
34
33
  */
35
34
  export function exportToStream(
36
- pdfKit: any,
37
- blobStream: {},
35
+ pdfKit: PDFKit.PDFDocument,
36
+ blobStream: any,
38
37
  doc: AD.AbstractDoc.AbstractDoc,
39
38
  options: PdfExportOptions = { compress: false }
40
39
  ): void {
@@ -42,12 +41,19 @@ export function exportToStream(
42
41
  pdf.pipe(blobStream);
43
42
  }
44
43
 
45
- function createDocument(pdfKit: any, options: PdfExportOptions, doc: AD.AbstractDoc.AbstractDoc): any {
46
- let pdf = new pdfKit({ ...options, autoFirstPage: false, bufferPages: true }) as any;
47
-
48
- const document = preProcess(doc);
49
- registerFonts((fontName: string, fontSource: AD.Font.FontSource) => pdf.registerFont(fontName, fontSource), document);
50
-
44
+ function createDocument(
45
+ pdfKit: PDFKit.PDFDocument,
46
+ options: PdfExportOptions,
47
+ ad: AD.AbstractDoc.AbstractDoc
48
+ ): PDFKit.PDFDocument {
49
+ let pdf = new pdfKit({ ...options, autoFirstPage: false, bufferPages: true });
50
+
51
+ const document = preProcess(ad);
52
+ registerFonts(
53
+ (fontName: string, fontSource: AD.Font.FontSource, fontFamily: string) =>
54
+ pdf.registerFont(fontName, fontSource, fontFamily),
55
+ document
56
+ );
51
57
  const desiredSizes = measure(pdfKit, document);
52
58
  const pages = paginate(pdfKit, document, desiredSizes);
53
59
  const updatedPages = updatePageRefs(pages);
@@ -62,7 +68,7 @@ function createDocument(pdfKit: any, options: PdfExportOptions, doc: AD.Abstract
62
68
 
63
69
  function renderPage(
64
70
  parentResources: AD.Resources.Resources,
65
- pdf: any,
71
+ pdfKit: PDFKit.PDFDocument,
66
72
  desiredSizes: Map<{}, AD.Size.Size>,
67
73
  page: Page
68
74
  ): void {
@@ -70,11 +76,11 @@ function renderPage(
70
76
  const style = section.page.style;
71
77
  const resources = AD.Resources.mergeResources([parentResources, section]);
72
78
  const pageHeight = AD.PageStyle.getHeight(style);
73
- const contentRect = addPage(pdf, page);
79
+ const contentRect = addPage(pdfKit, page);
74
80
 
75
81
  page.namedDestionations.forEach((dest) => {
76
- if (pdf.addNamedDestination) {
77
- pdf.addNamedDestination(dest);
82
+ if ((pdfKit as any).addNamedDestination) {
83
+ (pdfKit as any).addNamedDestination(dest);
78
84
  }
79
85
  });
80
86
 
@@ -86,7 +92,7 @@ function renderPage(
86
92
  const isAbsolute = AD.Position.isPositionAbsolute(element);
87
93
  renderSectionElement(
88
94
  resources,
89
- pdf,
95
+ pdfKit,
90
96
  desiredSizes,
91
97
  AD.Rect.create(headerX, isAbsolute ? headerStart : headerY, elementSize.width, elementSize.height),
92
98
  element
@@ -109,7 +115,7 @@ function renderPage(
109
115
  const isAbsolute = AD.Position.isPositionAbsolute(element);
110
116
  renderSectionElement(
111
117
  resources,
112
- pdf,
118
+ pdfKit,
113
119
  desiredSizes,
114
120
  AD.Rect.create(footerX, isAbsolute ? footerStart : footerY, elementSize.width, elementSize.height),
115
121
  element
@@ -126,7 +132,7 @@ function renderPage(
126
132
  const isAbsolute = AD.Position.isPositionAbsolute(element);
127
133
  renderSectionElement(
128
134
  resources,
129
- pdf,
135
+ pdfKit,
130
136
  desiredSizes,
131
137
  AD.Rect.create(contentRect.x, isAbsolute ? elementStart : y, elementSize.width, elementSize.height),
132
138
  element
@@ -137,22 +143,17 @@ function renderPage(
137
143
  }
138
144
  }
139
145
 
140
- function addPage(pdf: any, page: Page): AD.Rect.Rect {
146
+ function addPage(pdf: PDFKit.PDFDocument, page: Page): AD.Rect.Rect {
141
147
  const section = page.section;
142
148
  const style = section.page.style;
143
149
  // This is rotated later depending on the orientation.
144
150
  const pageWidth = AD.PageStyle.getPaperWidth(style.paperSize);
145
151
  const pageHeight = AD.PageStyle.getPaperHeight(style.paperSize);
146
152
  const layout = style.orientation === "Landscape" ? "landscape" : "portrait";
147
- const pageOptions = {
153
+ const pageOptions: PDFKit.PDFDocumentOptions = {
148
154
  size: [pageWidth, pageHeight],
149
155
  layout: layout,
150
- margins: {
151
- top: 0,
152
- left: 0,
153
- right: 0,
154
- bottom: 0,
155
- },
156
+ margins: { top: 0, left: 0, right: 0, bottom: 0 },
156
157
  };
157
158
  pdf.addPage(pageOptions);
158
159
  return page.contentRect;
@@ -160,7 +161,7 @@ function addPage(pdf: any, page: Page): AD.Rect.Rect {
160
161
 
161
162
  function renderSectionElement(
162
163
  parentResources: AD.Resources.Resources,
163
- pdf: {},
164
+ pdf: PDFKit.PDFDocument,
164
165
  desiredSizes: Map<{}, AD.Size.Size>,
165
166
  finalRect: AD.Rect.Rect,
166
167
  element: AD.SectionElement.SectionElement
@@ -181,7 +182,7 @@ function renderSectionElement(
181
182
 
182
183
  function renderGroup(
183
184
  resources: AD.Resources.Resources,
184
- pdf: {},
185
+ pdfKit: PDFKit.PDFDocument,
185
186
  desiredSizes: Map<{}, AD.Size.Size>,
186
187
  finalRect: AD.Rect.Rect,
187
188
  group: AD.Group.Group
@@ -194,7 +195,7 @@ function renderGroup(
194
195
  const isAbsolute = AD.Position.isPositionAbsolute(element);
195
196
  renderSectionElement(
196
197
  resources,
197
- pdf,
198
+ pdfKit,
198
199
  desiredSizes,
199
200
  AD.Rect.create(finalX, isAbsolute ? startY : y, elementSize.width, elementSize.height),
200
201
  element
@@ -207,7 +208,7 @@ function renderGroup(
207
208
 
208
209
  function renderParagraph(
209
210
  resources: AD.Resources.Resources,
210
- pdf: {},
211
+ pdfKit: PDFKit.PDFDocument,
211
212
  desiredSizes: Map<{}, AD.Size.Size>,
212
213
  finalRect: AD.Rect.Rect,
213
214
  paragraph: AD.Paragraph.Paragraph
@@ -317,7 +318,7 @@ function renderParagraph(
317
318
  const atomSize = getDesiredSize(atom, desiredSizes);
318
319
  renderAtom(
319
320
  resources,
320
- pdf,
321
+ pdfKit,
321
322
  AD.Rect.create(x, y, atomSize.width, atomSize.height),
322
323
  style.textStyle,
323
324
  atom,
@@ -352,7 +353,7 @@ function parseAlignment(paragraphAlignment: AD.ParagraphStyle.TextAlignment | un
352
353
 
353
354
  function renderAtom(
354
355
  resources: AD.Resources.Resources,
355
- pdf: {},
356
+ pdfKit: PDFKit.PDFDocument,
356
357
  finalRect: AD.Rect.Rect,
357
358
  textStyle: AD.TextStyle.TextStyle,
358
359
  atom: AD.Atom.Atom,
@@ -363,19 +364,39 @@ function renderAtom(
363
364
  ): void {
364
365
  switch (atom.type) {
365
366
  case "TextField":
366
- renderTextField(resources, pdf, finalRect, textStyle, atom, alignment, isFirstAtom, isLastAtom, availableWidth);
367
+ renderTextField(
368
+ resources,
369
+ pdfKit,
370
+ finalRect,
371
+ textStyle,
372
+ atom,
373
+ alignment,
374
+ isFirstAtom,
375
+ isLastAtom,
376
+ availableWidth
377
+ );
367
378
  return;
368
379
  case "TextRun":
369
- renderTextRun(resources, pdf, finalRect, textStyle, atom, alignment, isFirstAtom, isLastAtom, availableWidth);
380
+ renderTextRun(resources, pdfKit, finalRect, textStyle, atom, alignment, isFirstAtom, isLastAtom, availableWidth);
370
381
  return;
371
382
  case "Image":
372
- renderImage(resources, pdf, finalRect, textStyle, atom);
383
+ renderImage(resources, pdfKit, finalRect, textStyle, atom);
373
384
  return;
374
385
  case "HyperLink":
375
- renderHyperLink(resources, pdf, finalRect, textStyle, atom, alignment, isFirstAtom, isLastAtom, availableWidth);
386
+ renderHyperLink(
387
+ resources,
388
+ pdfKit,
389
+ finalRect,
390
+ textStyle,
391
+ atom,
392
+ alignment,
393
+ isFirstAtom,
394
+ isLastAtom,
395
+ availableWidth
396
+ );
376
397
  return;
377
398
  case "TocSeparator":
378
- renderTocSeparator(pdf, finalRect, textStyle, atom);
399
+ renderTocSeparator(pdfKit, finalRect, textStyle, atom);
379
400
  return;
380
401
  case "LinkTarget":
381
402
  return;
@@ -386,7 +407,7 @@ function renderAtom(
386
407
 
387
408
  function renderTextField(
388
409
  resources: AD.Resources.Resources,
389
- pdf: {},
410
+ pdfKit: PDFKit.PDFDocument,
390
411
  finalRect: AD.Rect.Rect,
391
412
  textStyle: AD.TextStyle.TextStyle,
392
413
  textField: AD.TextField.TextField,
@@ -405,7 +426,7 @@ function renderTextField(
405
426
  switch (textField.fieldType) {
406
427
  case "Date":
407
428
  drawText(
408
- pdf,
429
+ pdfKit,
409
430
  finalRect,
410
431
  style,
411
432
  new Date(Date.now()).toDateString(),
@@ -419,7 +440,7 @@ function renderTextField(
419
440
  case "TotalPages":
420
441
  case "PageNumberOf":
421
442
  if (textField.text) {
422
- drawText(pdf, finalRect, style, textField.text, alignment, isFirstAtom, isLastAtom, availableWidth);
443
+ drawText(pdfKit, finalRect, style, textField.text, alignment, isFirstAtom, isLastAtom, availableWidth);
423
444
  }
424
445
  return;
425
446
  }
@@ -427,7 +448,7 @@ function renderTextField(
427
448
 
428
449
  function renderTextRun(
429
450
  resources: AD.Resources.Resources,
430
- pdf: {},
451
+ pdf: PDFKit.PDFDocument,
431
452
  finalRect: AD.Rect.Rect,
432
453
  textStyle: AD.TextStyle.TextStyle,
433
454
  textRun: AD.TextRun.TextRun,
@@ -450,7 +471,7 @@ function renderTextRun(
450
471
 
451
472
  function renderHyperLink(
452
473
  resources: AD.Resources.Resources,
453
- pdf: {},
474
+ pdf: PDFKit.PDFDocument,
454
475
  finalRect: AD.Rect.Rect,
455
476
  textStyle: AD.TextStyle.TextStyle,
456
477
  hyperLink: AD.HyperLink.HyperLink,
@@ -471,7 +492,7 @@ function renderHyperLink(
471
492
  }
472
493
 
473
494
  function renderTocSeparator(
474
- pdf: {},
495
+ pdf: PDFKit.PDFDocument,
475
496
  finalRect: AD.Rect.Rect,
476
497
  textStyle: AD.TextStyle.TextStyle,
477
498
  tocSeparator: AD.TocSeparator.TocSeparator
@@ -480,7 +501,7 @@ function renderTocSeparator(
480
501
  }
481
502
 
482
503
  function drawHyperLink(
483
- pdf: any,
504
+ pdf: PDFKit.PDFDocument,
484
505
  finalRect: AD.Rect.Rect,
485
506
  textStyle: AD.TextStyle.TextStyle,
486
507
  hyperLink: AD.HyperLink.HyperLink,
@@ -522,10 +543,7 @@ function drawHyperLink(
522
543
  ...(textStyle.lineGap !== undefined ? { lineGap: textStyle.lineGap } : {}),
523
544
  });
524
545
  if (textStyle.underline === undefined ? true : textStyle.underline) {
525
- pdf.underline(xUnderline, finalRect.y + 2, finalRect.width, finalRect.height, {
526
- align: isSingleAtom ? alignment : "left",
527
- color: "blue",
528
- });
546
+ pdf.underline(xUnderline, finalRect.y + 2, finalRect.width, finalRect.height, { color: "blue" });
529
547
  }
530
548
  } else {
531
549
  pdf.text(hyperLink.text, {
@@ -550,7 +568,7 @@ function drawHyperLink(
550
568
  }
551
569
 
552
570
  function drawText(
553
- pdf: any,
571
+ pdf: PDFKit.PDFDocument,
554
572
  finalRect: AD.Rect.Rect,
555
573
  textStyle: AD.TextStyle.TextStyle,
556
574
  text: string,
@@ -599,7 +617,7 @@ function drawText(
599
617
  }
600
618
 
601
619
  function drawDottedLine(
602
- pdf: any,
620
+ pdf: PDFKit.PDFDocument,
603
621
  finalRect: AD.Rect.Rect,
604
622
  textStyle: AD.TextStyle.TextStyle,
605
623
  tocSeparator: AD.TocSeparator.TocSeparator
@@ -648,7 +666,7 @@ function drawDottedLine(
648
666
 
649
667
  function renderTable(
650
668
  resources: AD.Resources.Resources,
651
- pdf: any,
669
+ pdf: PDFKit.PDFDocument,
652
670
  desiredSizes: Map<{}, AD.Size.Size>,
653
671
  finalRect: AD.Rect.Rect,
654
672
  table: AD.Table.Table
@@ -678,7 +696,7 @@ function renderTable(
678
696
 
679
697
  function renderRow(
680
698
  resources: AD.Resources.Resources,
681
- pdf: {},
699
+ pdf: PDFKit.PDFDocument,
682
700
  desiredSizes: Map<{}, AD.Size.Size>,
683
701
  finalRect: AD.Rect.Rect,
684
702
  tableCellStyle: AD.TableCellStyle.TableCellStyle,
@@ -714,7 +732,7 @@ function renderRow(
714
732
 
715
733
  function renderCell(
716
734
  resources: AD.Resources.Resources,
717
- pdf: any,
735
+ pdf: PDFKit.PDFDocument,
718
736
  desiredSizes: Map<{}, AD.Size.Size>,
719
737
  finalRect: AD.Rect.Rect,
720
738
  tableCellStyle: AD.TableCellStyle.TableCellStyle,
@@ -818,7 +836,7 @@ function getDesiredSize(element: {}, desiredSizes: Map<{}, AD.Size.Size>): AD.Si
818
836
  throw new Error("Could not find size for element!");
819
837
  }
820
838
 
821
- function applyTextOffset(pdf: any, textStyle: AD.TextStyle.TextStyle): void {
839
+ function applyTextOffset(pdf: PDFKit.PDFDocument, textStyle: AD.TextStyle.TextStyle): void {
822
840
  const offset = calculateTextOffset(textStyle);
823
841
  if (offset < 0) {
824
842
  pdf.moveDown(Math.abs(offset));
@@ -827,7 +845,7 @@ function applyTextOffset(pdf: any, textStyle: AD.TextStyle.TextStyle): void {
827
845
  }
828
846
  }
829
847
 
830
- function resetTextOffset(pdf: any, textStyle: AD.TextStyle.TextStyle): void {
848
+ function resetTextOffset(pdf: PDFKit.PDFDocument, textStyle: AD.TextStyle.TextStyle): void {
831
849
  const offset = calculateTextOffset(textStyle);
832
850
  if (offset < 0) {
833
851
  pdf.moveUp(Math.abs(offset));
@@ -1,4 +1,4 @@
1
- import { X2jOptions, X2jOptionsOptional, XMLParser } from "fast-xml-parser";
1
+ import { X2jOptions, XMLParser } from "fast-xml-parser";
2
2
  import Mustache from "mustache";
3
3
  import { xsd } from "../xsd-template";
4
4
  import { errorToReadableText, validateXml } from "./validation";
@@ -60,7 +60,7 @@ export function parseMustacheXml(
60
60
  return { type: "Ok", xml: parseXml(mustacheResolvedXml, options) };
61
61
  }
62
62
 
63
- export function parseXml(text: string, options?: X2jOptionsOptional): ReadonlyArray<XmlElement> {
63
+ export function parseXml(text: string, options?: Partial<X2jOptions>): ReadonlyArray<XmlElement> {
64
64
  const parser = new XMLParser(options);
65
65
  // Unescape HTML entity
66
66
  parser.addEntity("#x2F", "/");