abstract-document 6.8.1 → 6.8.2

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 (384) hide show
  1. package/CHANGELOG.md +127 -117
  2. package/LICENSE +21 -21
  3. package/README.md +45 -45
  4. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/group.js +90 -90
  5. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/header-and-footer.js +69 -69
  6. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/hello.js +51 -51
  7. package/lib/abstract-document-exporters/__tests__/{pdf/test-defs/single-hyperlink copy.d.ts → docx2/test-defs/letter-dimensions.d.ts} +1 -1
  8. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/letter-dimensions.d.ts.map +1 -0
  9. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/letter-dimensions.js +92 -0
  10. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/letter-dimensions.js.map +1 -0
  11. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/mixed-hyperlink-and-textrun.js +115 -115
  12. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/mixed-textrun-and-images.js +169 -169
  13. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/multiple-images.js +141 -141
  14. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/multiple-tables.js +467 -467
  15. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/multiple-textrun-with-center-alignment.js +97 -97
  16. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/multiple-textrun-with-end-alignment.js +97 -97
  17. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/multiple-textrun-with-start-alignment-that-linebreaks.js +96 -96
  18. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/multiple-textrun-with-start-alignment.js +96 -96
  19. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/page-numbering.js +102 -102
  20. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/simple-table-colSpan-and-rowSpan.js +498 -498
  21. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/simple-table-without-rows.js +20 -20
  22. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/simple-table.js +167 -167
  23. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/single-hyperlink.js +70 -70
  24. package/lib/abstract-document-exporters/__tests__/{pdf/test-defs/single-image-svg-color-hex copy.d.ts → docx2/test-defs/single-image-png.d.ts} +1 -1
  25. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/single-image-png.d.ts.map +1 -0
  26. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/single-image-png.js +149 -0
  27. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/single-image-png.js.map +1 -0
  28. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/single-image-svg.d.ts +3 -0
  29. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/single-image-svg.d.ts.map +1 -0
  30. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/single-image-svg.js +149 -0
  31. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/single-image-svg.js.map +1 -0
  32. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/single-image.js +97 -97
  33. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/single-textrun-with-center-alignment-that-linebreaks.js +68 -68
  34. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/single-textrun-with-center-alignment.js +68 -68
  35. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/single-textrun-with-end-alignment-that-linebreaks.js +68 -68
  36. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/single-textrun-with-end-alignment.js +68 -68
  37. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/single-textrun-with-start-alignment-that-linebreaks.js +68 -68
  38. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/single-textrun-with-start-alignment.js +68 -68
  39. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/single-textrun.js +68 -68
  40. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/world.js +51 -51
  41. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/group.d.ts +3 -0
  42. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/group.d.ts.map +1 -0
  43. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/{single-hyperlink copy.js → group.js} +23 -5
  44. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/group.js.map +1 -0
  45. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/simple-table-auto-cell-widths.d.ts +3 -0
  46. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/simple-table-auto-cell-widths.d.ts.map +1 -0
  47. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/simple-table-auto-cell-widths.js +105 -0
  48. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/simple-table-auto-cell-widths.js.map +1 -0
  49. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/simple-table-fixed-cell-widths.d.ts +3 -0
  50. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/simple-table-fixed-cell-widths.d.ts.map +1 -0
  51. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/simple-table-fixed-cell-widths.js +104 -0
  52. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/simple-table-fixed-cell-widths.js.map +1 -0
  53. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/simple-table.d.ts +3 -0
  54. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/simple-table.d.ts.map +1 -0
  55. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/simple-table.js +104 -0
  56. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/simple-table.js.map +1 -0
  57. package/lib/abstract-document-exporters/docx2/render.js +3 -0
  58. package/lib/abstract-document-exporters/docx2/render.js.map +1 -1
  59. package/package.json +2 -2
  60. package/src/abstract-document/__tests__/hello-world-abstract-doc.ts +245 -245
  61. package/src/abstract-document/__tests__/markdown/export-test-def.ts +10 -10
  62. package/src/abstract-document/__tests__/markdown/export.test.tsx +15 -15
  63. package/src/abstract-document/__tests__/markdown/test-defs/markdown-bold-italic.tsx +31 -31
  64. package/src/abstract-document/__tests__/markdown/test-defs/markdown-bold.tsx +31 -31
  65. package/src/abstract-document/__tests__/markdown/test-defs/markdown-empty-keepTogether.tsx +54 -54
  66. package/src/abstract-document/__tests__/markdown/test-defs/markdown-header.tsx +38 -38
  67. package/src/abstract-document/__tests__/markdown/test-defs/markdown-italic.tsx +31 -31
  68. package/src/abstract-document/__tests__/markdown/test-defs/markdown-keepTogether.tsx +61 -61
  69. package/src/abstract-document/__tests__/markdown/test-defs/markdown-subscript.tsx +45 -45
  70. package/src/abstract-document/__tests__/markdown/test-defs/markdown-superscript.tsx +38 -38
  71. package/src/abstract-document/__tests__/model-builder._test.ts +48 -48
  72. package/src/abstract-document/abstract-doc.ts +19 -19
  73. package/src/abstract-document/atoms/atom.ts +14 -14
  74. package/src/abstract-document/atoms/hyper-link.ts +27 -27
  75. package/src/abstract-document/atoms/image.ts +21 -21
  76. package/src/abstract-document/atoms/link-target.ts +15 -15
  77. package/src/abstract-document/atoms/text-field.ts +36 -36
  78. package/src/abstract-document/atoms/text-run.ts +25 -25
  79. package/src/abstract-document/atoms/toc-separator.ts +18 -18
  80. package/src/abstract-document/default-styles.ts +145 -145
  81. package/src/abstract-document/index.ts +89 -89
  82. package/src/abstract-document/markdown/markdown.ts +142 -142
  83. package/src/abstract-document/markdown/types.ts +78 -78
  84. package/src/abstract-document/numberings/numbering-definition.ts +17 -17
  85. package/src/abstract-document/numberings/numbering-format.ts +7 -7
  86. package/src/abstract-document/numberings/numbering-level-definition.ts +42 -42
  87. package/src/abstract-document/numberings/numbering.ts +3 -3
  88. package/src/abstract-document/page/master-page.ts +23 -23
  89. package/src/abstract-document/page/section.ts +27 -27
  90. package/src/abstract-document/primitives/font.ts +37 -37
  91. package/src/abstract-document/primitives/image-resource.ts +27 -27
  92. package/src/abstract-document/primitives/layout-foundation-color.ts +37 -37
  93. package/src/abstract-document/primitives/layout-foundation.ts +37 -37
  94. package/src/abstract-document/primitives/length.ts +11 -11
  95. package/src/abstract-document/primitives/point.ts +11 -11
  96. package/src/abstract-document/primitives/rect.ts +15 -15
  97. package/src/abstract-document/primitives/size.ts +13 -13
  98. package/src/abstract-document/resources.ts +101 -101
  99. package/src/abstract-document/section-elements/group.ts +28 -28
  100. package/src/abstract-document/section-elements/page-break.ts +14 -14
  101. package/src/abstract-document/section-elements/paragraph-numbering.ts +6 -6
  102. package/src/abstract-document/section-elements/paragraph.ts +32 -32
  103. package/src/abstract-document/section-elements/section-element.ts +17 -17
  104. package/src/abstract-document/section-elements/table.ts +34 -34
  105. package/src/abstract-document/styles/group-style.ts +30 -30
  106. package/src/abstract-document/styles/page-style.ts +76 -76
  107. package/src/abstract-document/styles/paragraph-style.ts +49 -49
  108. package/src/abstract-document/styles/position.ts +8 -8
  109. package/src/abstract-document/styles/style-key.ts +5 -5
  110. package/src/abstract-document/styles/style.ts +44 -44
  111. package/src/abstract-document/styles/table-cell-style.ts +59 -59
  112. package/src/abstract-document/styles/table-style.ts +46 -46
  113. package/src/abstract-document/styles/text-style.ts +77 -77
  114. package/src/abstract-document/table/table-cell.ts +31 -31
  115. package/src/abstract-document/table/table-row.ts +14 -14
  116. package/src/abstract-document/types.ts +3 -3
  117. package/src/abstract-document-exporters/__tests__/docx2/export-test-def.ts +10 -10
  118. package/src/abstract-document-exporters/__tests__/docx2/export.test.tsx +67 -67
  119. package/src/abstract-document-exporters/__tests__/docx2/test-defs/group.tsx +114 -114
  120. package/src/abstract-document-exporters/__tests__/docx2/test-defs/header-and-footer.tsx +110 -110
  121. package/src/abstract-document-exporters/__tests__/docx2/test-defs/hello.tsx +70 -70
  122. package/src/abstract-document-exporters/__tests__/docx2/test-defs/letter-dimensions.tsx +74 -0
  123. package/src/abstract-document-exporters/__tests__/docx2/test-defs/mixed-hyperlink-and-textrun.tsx +137 -137
  124. package/src/abstract-document-exporters/__tests__/docx2/test-defs/mixed-textrun-and-images.tsx +212 -212
  125. package/src/abstract-document-exporters/__tests__/docx2/test-defs/multiple-images.tsx +182 -182
  126. package/src/abstract-document-exporters/__tests__/docx2/test-defs/multiple-tables.tsx +553 -553
  127. package/src/abstract-document-exporters/__tests__/docx2/test-defs/multiple-textrun-with-center-alignment.tsx +119 -119
  128. package/src/abstract-document-exporters/__tests__/docx2/test-defs/multiple-textrun-with-end-alignment.tsx +119 -119
  129. package/src/abstract-document-exporters/__tests__/docx2/test-defs/multiple-textrun-with-start-alignment-that-linebreaks.tsx +121 -121
  130. package/src/abstract-document-exporters/__tests__/docx2/test-defs/multiple-textrun-with-start-alignment.tsx +118 -118
  131. package/src/abstract-document-exporters/__tests__/docx2/test-defs/page-numbering.tsx +123 -123
  132. package/src/abstract-document-exporters/__tests__/docx2/test-defs/simple-table-colSpan-and-rowSpan.tsx +587 -587
  133. package/src/abstract-document-exporters/__tests__/docx2/test-defs/simple-table-without-rows.tsx +45 -45
  134. package/src/abstract-document-exporters/__tests__/docx2/test-defs/simple-table.tsx +210 -210
  135. package/src/abstract-document-exporters/__tests__/docx2/test-defs/single-hyperlink.tsx +89 -89
  136. package/src/abstract-document-exporters/__tests__/docx2/test-defs/single-image-png.tsx +138 -0
  137. package/src/abstract-document-exporters/__tests__/docx2/test-defs/single-image-svg.tsx +137 -0
  138. package/src/abstract-document-exporters/__tests__/docx2/test-defs/single-image.tsx +137 -137
  139. package/src/abstract-document-exporters/__tests__/docx2/test-defs/single-textrun-with-center-alignment-that-linebreaks.tsx +88 -88
  140. package/src/abstract-document-exporters/__tests__/docx2/test-defs/single-textrun-with-center-alignment.tsx +88 -88
  141. package/src/abstract-document-exporters/__tests__/docx2/test-defs/single-textrun-with-end-alignment-that-linebreaks.tsx +88 -88
  142. package/src/abstract-document-exporters/__tests__/docx2/test-defs/single-textrun-with-end-alignment.tsx +88 -88
  143. package/src/abstract-document-exporters/__tests__/docx2/test-defs/single-textrun-with-start-alignment-that-linebreaks.tsx +88 -88
  144. package/src/abstract-document-exporters/__tests__/docx2/test-defs/single-textrun-with-start-alignment.tsx +88 -88
  145. package/src/abstract-document-exporters/__tests__/docx2/test-defs/single-textrun.tsx +87 -87
  146. package/src/abstract-document-exporters/__tests__/docx2/test-defs/world.tsx +70 -70
  147. package/src/abstract-document-exporters/__tests__/docx2/tmp/Group.docx +0 -0
  148. 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
  149. 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
  150. 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
  151. package/src/abstract-document-exporters/__tests__/docx2/tmp/Multiple images.docx +0 -0
  152. package/src/abstract-document-exporters/__tests__/docx2/tmp/Multiple tables.docx +0 -0
  153. package/src/abstract-document-exporters/__tests__/docx2/tmp/Multiple textrun with Center alignment.docx +0 -0
  154. package/src/abstract-document-exporters/__tests__/docx2/tmp/Multiple textrun with End alignment.docx +0 -0
  155. package/src/abstract-document-exporters/__tests__/docx2/tmp/Multiple textrun with Start alignment that linebreaks.docx +0 -0
  156. package/src/abstract-document-exporters/__tests__/docx2/tmp/Multiple textrun with Start alignment.docx +0 -0
  157. package/src/abstract-document-exporters/__tests__/docx2/tmp/Page numbering.docx +0 -0
  158. 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
  159. package/src/abstract-document-exporters/__tests__/docx2/tmp/Simple table without rows.docx +0 -0
  160. package/src/abstract-document-exporters/__tests__/docx2/tmp/Simple table.docx +0 -0
  161. package/src/abstract-document-exporters/__tests__/docx2/tmp/Single hyperlink.docx +0 -0
  162. package/src/abstract-document-exporters/__tests__/docx2/tmp/Single image svg.docx +0 -0
  163. package/src/abstract-document-exporters/__tests__/docx2/tmp/Single image.docx +0 -0
  164. package/src/abstract-document-exporters/__tests__/docx2/tmp/Single textrun with Center alignment that linebreaks.docx +0 -0
  165. package/src/abstract-document-exporters/__tests__/docx2/tmp/Single textrun with Center alignment.docx +0 -0
  166. package/src/abstract-document-exporters/__tests__/docx2/tmp/Single textrun with End alignment that linebreaks.docx +0 -0
  167. package/src/abstract-document-exporters/__tests__/docx2/tmp/Single textrun with End alignment.docx +0 -0
  168. package/src/abstract-document-exporters/__tests__/docx2/tmp/Single textrun with Start alignment that linebreaks.docx +0 -0
  169. package/src/abstract-document-exporters/__tests__/docx2/tmp/Single textrun with Start alignment.docx +0 -0
  170. package/src/abstract-document-exporters/__tests__/docx2/tmp/Single textrun.docx +0 -0
  171. package/src/abstract-document-exporters/__tests__/docx2/tmp/hello.docx +0 -0
  172. package/src/abstract-document-exporters/__tests__/docx2/tmp/letter-dimensions.docx +0 -0
  173. package/src/abstract-document-exporters/__tests__/docx2/tmp/world.docx +0 -0
  174. package/src/abstract-document-exporters/__tests__/pdf/export-test-def.ts +10 -10
  175. package/src/abstract-document-exporters/__tests__/pdf/export.test.tsx +46 -46
  176. package/src/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-group.tsx +77 -77
  177. package/src/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-header-and-footer.tsx +205 -205
  178. package/src/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-paragraph.tsx +51 -51
  179. package/src/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-section-in-group.tsx +96 -96
  180. package/src/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-section-in-table.tsx +145 -145
  181. package/src/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-table.tsx +117 -117
  182. package/src/abstract-document-exporters/__tests__/pdf/test-defs/date.tsx +66 -66
  183. package/src/abstract-document-exporters/__tests__/pdf/test-defs/group-no-keep-together.tsx +1287 -1287
  184. package/src/abstract-document-exporters/__tests__/pdf/test-defs/group-paragraphs.tsx +1291 -1291
  185. package/src/abstract-document-exporters/__tests__/pdf/test-defs/group-tables.tsx +1314 -1314
  186. package/src/abstract-document-exporters/__tests__/pdf/test-defs/group-too-big-for-one-page.tsx +272 -272
  187. package/src/abstract-document-exporters/__tests__/pdf/test-defs/header-and-footer.tsx +162 -162
  188. package/src/abstract-document-exporters/__tests__/pdf/test-defs/hello.tsx +45 -45
  189. package/src/abstract-document-exporters/__tests__/pdf/test-defs/hyperlink-intenal-link-target.tsx +831 -831
  190. package/src/abstract-document-exporters/__tests__/pdf/test-defs/hyperlink-internal.tsx +811 -811
  191. package/src/abstract-document-exporters/__tests__/pdf/test-defs/margins-header-body-footer.tsx +1008 -1008
  192. package/src/abstract-document-exporters/__tests__/pdf/test-defs/mixed-hyperlink-and-textrun-no-underline.tsx +114 -114
  193. package/src/abstract-document-exporters/__tests__/pdf/test-defs/mixed-hyperlink-and-textrun-with-underline.tsx +114 -114
  194. package/src/abstract-document-exporters/__tests__/pdf/test-defs/mixed-hyperlink-and-textrun.tsx +113 -113
  195. package/src/abstract-document-exporters/__tests__/pdf/test-defs/mixed-textrun-and-images.tsx +104 -104
  196. package/src/abstract-document-exporters/__tests__/pdf/test-defs/multiple-images-overflow.tsx +75 -75
  197. package/src/abstract-document-exporters/__tests__/pdf/test-defs/multiple-images.tsx +71 -71
  198. package/src/abstract-document-exporters/__tests__/pdf/test-defs/multiple-textrun-with-center-alignment.tsx +98 -98
  199. package/src/abstract-document-exporters/__tests__/pdf/test-defs/multiple-textrun-with-end-alignment.tsx +98 -98
  200. package/src/abstract-document-exporters/__tests__/pdf/test-defs/multiple-textrun-with-start-alignment-that-linebreaks.tsx +116 -116
  201. package/src/abstract-document-exporters/__tests__/pdf/test-defs/multiple-textrun-with-start-alignment.tsx +98 -98
  202. package/src/abstract-document-exporters/__tests__/pdf/test-defs/page-break-table-row-that-doesnt-fit-page.tsx +317 -317
  203. package/src/abstract-document-exporters/__tests__/pdf/test-defs/page-break-table-single-row.tsx +227 -227
  204. package/src/abstract-document-exporters/__tests__/pdf/test-defs/page-break-table-with-group.tsx +500 -500
  205. package/src/abstract-document-exporters/__tests__/pdf/test-defs/page-break-table-with-header.tsx +1555 -1555
  206. package/src/abstract-document-exporters/__tests__/pdf/test-defs/page-break-table-with-header2.tsx +824 -824
  207. package/src/abstract-document-exporters/__tests__/pdf/test-defs/page-break-table-with-margin-bottom.tsx +455 -455
  208. package/src/abstract-document-exporters/__tests__/pdf/test-defs/page-break-table-with-margin-top-single-table.tsx +354 -354
  209. package/src/abstract-document-exporters/__tests__/pdf/test-defs/page-break-table-with-margin-top.tsx +455 -455
  210. package/src/abstract-document-exporters/__tests__/pdf/test-defs/page-break-table-with-rowSpan-multipages.tsx +1567 -1567
  211. package/src/abstract-document-exporters/__tests__/pdf/test-defs/page-break-table-with-rowSpan.tsx +545 -545
  212. package/src/abstract-document-exporters/__tests__/pdf/test-defs/page-numbering.tsx +97 -97
  213. package/src/abstract-document-exporters/__tests__/pdf/test-defs/pagebreak.tsx +102 -102
  214. package/src/abstract-document-exporters/__tests__/pdf/test-defs/simple-table-all-auto-cell-widths.tsx +119 -119
  215. package/src/abstract-document-exporters/__tests__/pdf/test-defs/simple-table-all-fixed-cell-widths.tsx +119 -119
  216. package/src/abstract-document-exporters/__tests__/pdf/test-defs/simple-table-background.tsx +182 -182
  217. package/src/abstract-document-exporters/__tests__/pdf/test-defs/simple-table-cell-padding-image.tsx +200 -200
  218. package/src/abstract-document-exporters/__tests__/pdf/test-defs/simple-table-cell-padding-text.tsx +338 -338
  219. package/src/abstract-document-exporters/__tests__/pdf/test-defs/simple-table-center-alignment.tsx +114 -114
  220. package/src/abstract-document-exporters/__tests__/pdf/test-defs/simple-table-colSpan-and-rowSpan.tsx +425 -425
  221. package/src/abstract-document-exporters/__tests__/pdf/test-defs/simple-table-mix-auto-fix-cell-widths.tsx +119 -119
  222. package/src/abstract-document-exporters/__tests__/pdf/test-defs/simple-table-padding.tsx +115 -115
  223. package/src/abstract-document-exporters/__tests__/pdf/test-defs/simple-table-right-alignment.tsx +115 -115
  224. package/src/abstract-document-exporters/__tests__/pdf/test-defs/simple-table-row-alignment.tsx +297 -297
  225. package/src/abstract-document-exporters/__tests__/pdf/test-defs/simple-table-text-alignment-in-cell-wrapping.tsx +491 -491
  226. package/src/abstract-document-exporters/__tests__/pdf/test-defs/simple-table-text-alignment-in-cell.tsx +248 -248
  227. package/src/abstract-document-exporters/__tests__/pdf/test-defs/simple-table-with-default-colored-borders.tsx +223 -223
  228. package/src/abstract-document-exporters/__tests__/pdf/test-defs/simple-table-with-header.tsx +482 -482
  229. package/src/abstract-document-exporters/__tests__/pdf/test-defs/simple-table-with-multi-colored-borders.tsx +236 -236
  230. package/src/abstract-document-exporters/__tests__/pdf/test-defs/simple-table-with-single-colored-borders.tsx +236 -236
  231. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-figure.tsx +323 -323
  232. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-hyperlink-center.tsx +66 -66
  233. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-hyperlink-no-underline.tsx +70 -70
  234. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-hyperlink-right-aligned.tsx +66 -66
  235. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-hyperlink-with-underline.tsx +70 -70
  236. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-hyperlink.tsx +65 -65
  237. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-image-svg-color-hex.tsx +272 -272
  238. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-image-svg-color-name.tsx +272 -272
  239. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-image-svg-color-url.tsx +97 -97
  240. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-image-svg-dasharray.tsx +85 -85
  241. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-image.tsx +70 -70
  242. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-alphabetic.tsx +46 -46
  243. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-bottom.tsx +46 -46
  244. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-hanging.tsx +46 -46
  245. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-middle.tsx +46 -46
  246. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-top.tsx +46 -46
  247. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-super-subscript.tsx +98 -98
  248. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-with-center-alignment-that-linebreaks.tsx +81 -81
  249. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-with-center-alignment.tsx +66 -66
  250. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-with-end-alignment-that-linebreaks.tsx +81 -81
  251. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-with-end-alignment.tsx +66 -66
  252. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-with-justify-alignment.tsx +66 -66
  253. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-with-start-alignment-that-linebreaks.tsx +81 -81
  254. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-with-start-alignment.tsx +66 -66
  255. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun.tsx +45 -45
  256. package/src/abstract-document-exporters/__tests__/pdf/test-defs/table-of-content-separator.tsx +81 -81
  257. package/src/abstract-document-exporters/__tests__/pdf/test-defs/world.tsx +45 -45
  258. package/src/abstract-document-exporters/__tests__/pdf/tmp/Absolute position group.pdf +2 -2
  259. package/src/abstract-document-exporters/__tests__/pdf/tmp/Absolute position header and footer.pdf +2 -2
  260. package/src/abstract-document-exporters/__tests__/pdf/tmp/Absolute position paragraph.pdf +2 -2
  261. package/src/abstract-document-exporters/__tests__/pdf/tmp/Absolute position section in group.pdf +2 -2
  262. package/src/abstract-document-exporters/__tests__/pdf/tmp/Absolute position section in table.pdf +2 -2
  263. package/src/abstract-document-exporters/__tests__/pdf/tmp/Absolute position table.pdf +2 -2
  264. package/src/abstract-document-exporters/__tests__/pdf/tmp/Group Paragraphs.pdf +2 -2
  265. package/src/abstract-document-exporters/__tests__/pdf/tmp/Group Paratraphs.pdf +912 -0
  266. package/src/abstract-document-exporters/__tests__/pdf/tmp/Group Tables.pdf +2 -2
  267. package/src/abstract-document-exporters/__tests__/pdf/tmp/Group no keeptogether.pdf +2 -2
  268. package/src/abstract-document-exporters/__tests__/pdf/tmp/Group too big for one page.pdf +2 -2
  269. package/src/abstract-document-exporters/__tests__/pdf/tmp/Group.pdf +2 -2
  270. package/src/abstract-document-exporters/__tests__/pdf/tmp/Header and footer.pdf +2 -2
  271. package/src/abstract-document-exporters/__tests__/pdf/tmp/Hyperlink internal linktarget.pdf +2 -2
  272. package/src/abstract-document-exporters/__tests__/pdf/tmp/Hyperlink internal.pdf +2 -2
  273. package/src/abstract-document-exporters/__tests__/pdf/tmp/Margins header body footer.pdf +2 -2
  274. package/src/abstract-document-exporters/__tests__/pdf/tmp/Margins header body footer1.pdf +640 -0
  275. package/src/abstract-document-exporters/__tests__/pdf/tmp/Margins header body footer2.pdf +609 -0
  276. package/src/abstract-document-exporters/__tests__/pdf/tmp/Margins header body footer3.pdf +1188 -0
  277. package/src/abstract-document-exporters/__tests__/pdf/tmp/Margins header body footer4.pdf +1188 -0
  278. package/src/abstract-document-exporters/__tests__/pdf/tmp/Mixed hyperlink and textrun no underline.pdf +2 -2
  279. package/src/abstract-document-exporters/__tests__/pdf/tmp/Mixed hyperlink and textrun with underline.pdf +2 -2
  280. package/src/abstract-document-exporters/__tests__/pdf/tmp/Mixed hyperlink and textrun.pdf +2 -2
  281. 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
  282. package/src/abstract-document-exporters/__tests__/pdf/tmp/Multiple images overflow.pdf +0 -0
  283. package/src/abstract-document-exporters/__tests__/pdf/tmp/Multiple images.pdf +0 -0
  284. package/src/abstract-document-exporters/__tests__/pdf/tmp/Multiple textrun with Center alignment.pdf +2 -2
  285. package/src/abstract-document-exporters/__tests__/pdf/tmp/Multiple textrun with End alignment.pdf +2 -2
  286. package/src/abstract-document-exporters/__tests__/pdf/tmp/Multiple textrun with Start alignment that linebreaks.pdf +2 -2
  287. package/src/abstract-document-exporters/__tests__/pdf/tmp/Multiple textrun with Start alignment.pdf +2 -2
  288. package/src/abstract-document-exporters/__tests__/pdf/tmp/Page numbering.pdf +2 -2
  289. package/src/abstract-document-exporters/__tests__/pdf/tmp/Pagebreak table row that doesnt fit page.pdf +2 -2
  290. package/src/abstract-document-exporters/__tests__/pdf/tmp/Pagebreak table single row.pdf +2 -2
  291. package/src/abstract-document-exporters/__tests__/pdf/tmp/Pagebreak table with group.pdf +2 -2
  292. package/src/abstract-document-exporters/__tests__/pdf/tmp/Pagebreak table with header 2.pdf +2 -2
  293. package/src/abstract-document-exporters/__tests__/pdf/tmp/Pagebreak table with header.pdf +2 -2
  294. package/src/abstract-document-exporters/__tests__/pdf/tmp/Pagebreak table with margin bottom.pdf +2 -2
  295. package/src/abstract-document-exporters/__tests__/pdf/tmp/Pagebreak table with margin top single table.pdf +2 -2
  296. package/src/abstract-document-exporters/__tests__/pdf/tmp/Pagebreak table with margin top.pdf +2 -2
  297. package/src/abstract-document-exporters/__tests__/pdf/tmp/Pagebreak table with rowSpan multipages.pdf +2 -2
  298. package/src/abstract-document-exporters/__tests__/pdf/tmp/Pagebreak table with rowSpan.pdf +2 -2
  299. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table all auto.pdf +2 -2
  300. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table all fix.pdf +2 -2
  301. package/src/abstract-document-exporters/__tests__/pdf/tmp/{Paragraph numbering.pdf → Simple table auto.pdf } +18 -28
  302. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table background.pdf +2 -2
  303. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table cell padding of image.pdf +0 -0
  304. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table cell padding of text.pdf +2 -2
  305. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table center alignment.pdf +2 -2
  306. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table colSpan and rowSpan.pdf +2 -2
  307. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table mix auto fix.pdf +2 -2
  308. package/src/abstract-document-exporters/__tests__/pdf/tmp/{Single textrun with default alignment.pdf → Simple table one auto.pdf } +34 -14
  309. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table padding.pdf +2 -2
  310. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table padding1.pdf +133 -0
  311. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table right alignment.pdf +2 -2
  312. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table row alignment.pdf +2 -2
  313. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table text alignment in cell with wrapping.pdf +2 -2
  314. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table text alignment in cell.pdf +2 -2
  315. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table with default colored borders.pdf +2 -2
  316. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table with header.pdf +2 -2
  317. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table with multi colored borders.pdf +2 -2
  318. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table with single colored borders.pdf +2 -2
  319. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table.pdf +2 -2
  320. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single date.pdf +14 -14
  321. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single figure.pdf +2 -2
  322. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single hyperlink centered.pdf +2 -2
  323. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single hyperlink no underline.pdf +2 -2
  324. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single hyperlink right aligned.pdf +2 -2
  325. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single hyperlink.pdf +2 -2
  326. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single image svg color hex.pdf +2 -2
  327. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single image svg color name.pdf +2 -2
  328. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single image svg color url.pdf +2 -2
  329. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single image svg color.pdf +179 -0
  330. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single image svg dasharray.pdf +2 -2
  331. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single image.pdf +0 -0
  332. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun baseline alphabetic.pdf +2 -2
  333. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun baseline bottom.pdf +2 -2
  334. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun baseline hanging.pdf +2 -2
  335. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun baseline middle.pdf +2 -2
  336. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun baseline top.pdf +2 -2
  337. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun with Center alignment that linebreaks.pdf +2 -2
  338. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun with Center alignment.pdf +2 -2
  339. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun with End alignment that linebreaks.pdf +2 -2
  340. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun with End alignment.pdf +2 -2
  341. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun with Justify alignment.pdf +2 -2
  342. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun with Start alignment that linebreaks.pdf +2 -2
  343. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun with Start alignment.pdf +2 -2
  344. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun with super and subscripts.pdf +2 -2
  345. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun.pdf +2 -2
  346. package/src/abstract-document-exporters/__tests__/pdf/tmp/Table of content separator.pdf +2 -2
  347. package/src/abstract-document-exporters/__tests__/pdf/tmp/hello.pdf +2 -2
  348. package/src/abstract-document-exporters/__tests__/pdf/tmp/world.pdf +2 -2
  349. package/src/abstract-document-exporters/docx/document-container.ts +18 -18
  350. package/src/abstract-document-exporters/docx/docx-constants.ts +46 -46
  351. package/src/abstract-document-exporters/docx/docx-document-renderer.ts +1084 -1084
  352. package/src/abstract-document-exporters/docx/ref-container.ts +53 -53
  353. package/src/abstract-document-exporters/docx/string-utils.ts +39 -39
  354. package/src/abstract-document-exporters/docx/xml-writer.ts +333 -333
  355. package/src/abstract-document-exporters/docx2/render-image.ts +159 -159
  356. package/src/abstract-document-exporters/docx2/render.ts +496 -493
  357. package/src/abstract-document-exporters/index.ts +5 -5
  358. package/src/abstract-document-exporters/pdf/font.ts +76 -76
  359. package/src/abstract-document-exporters/pdf/measure.ts +418 -418
  360. package/src/abstract-document-exporters/pdf/paginate.ts +434 -434
  361. package/src/abstract-document-exporters/pdf/pre-process.ts +389 -389
  362. package/src/abstract-document-exporters/pdf/render-image.ts +217 -217
  363. package/src/abstract-document-exporters/pdf/render.ts +847 -847
  364. package/src/abstract-document-exporters/pdf/update-refs.ts +163 -163
  365. package/src/abstract-document-exporters/shared/get_resources.ts +71 -71
  366. package/src/abstract-document-jsx/index.ts +86 -86
  367. package/src/custom_typings/@textlint/markdown-to-ast/index.d.ts +1 -1
  368. package/src/custom_typings/json-diff/index.d.ts +1 -1
  369. package/src/custom_typings/markdown-parser/index.d.ts +1 -1
  370. package/src/custom_typings/pdf2json/index.d.ts +1 -1
  371. package/src/custom_typings/remark-parse/index.d.ts +1 -1
  372. package/src/custom_typings/remark-sub-super/index.d.ts +1 -1
  373. package/src/custom_typings/svg-to-pdfkit/index.d.ts +1 -1
  374. package/src/custom_typings/unified/index.d.ts +1 -1
  375. package/src/index.ts +5 -5
  376. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-hyperlink copy.d.ts.map +0 -1
  377. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-hyperlink copy.js.map +0 -1
  378. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-image-svg-color-hex copy.d.ts.map +0 -1
  379. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-image-svg-color-hex copy.js +0 -283
  380. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-image-svg-color-hex copy.js.map +0 -1
  381. package/src/abstract-document-exporters/__tests__/docx2/tmp/Table of content separator.docx +0 -0
  382. package/src/abstract-document-exporters/__tests__/pdf/tmp/Empty Paragraph.pdf +0 -91
  383. package/src/abstract-document-exporters/__tests__/pdf/tmp/Named destination.pdf +0 -1761
  384. package/src/abstract-document-exporters/__tests__/pdf/tmp/Pagebreak table with margin.pdf +0 -404
@@ -1,1084 +1,1084 @@
1
- //tslint:disable
2
-
3
- // import {
4
- // AbstractDoc,
5
- // Table, Paragraph, TextField, TextRun, TableCell,
6
- // PageStyle, SectionElement, Image, MasterPage, TextProperties,
7
- // Atom, TableCellProperties, TextAlignment, NumberingFormat, LayoutFoundation
8
- // } from "../../abstract-document/index";
9
- // import * as Color from "../../abstract-image/color";
10
- // import {DocumentContainer} from "./document-container";
11
- // import * as DocxConstants from "./docx-constants";
12
- //
13
- // import {AbstractImage} from "../../abstract-image/abstract-image";
14
- // import {XmlWriter} from "./xml-writer";
15
- // import {stringToUtf8ByteArray} from "./string-utils";
16
- // import * as JSZip from "jszip";
17
- //
18
- // export type ImageFormat = "PNG" | "SVG";
19
- //
20
- // export interface ExportedImage {
21
- // output: Uint8Array;
22
- // format: ImageFormat;
23
- // }
24
- //
25
- // export interface ExportAbstractImageFunc {
26
- // (format: ImageFormat, image: AbstractImage, scale: number): ExportedImage;
27
- // }
28
- //
29
- // export type ZipArchiveItem = ZipArchiveItemXmlString | ZipArchiveItemAbstractImage;
30
- //
31
- // export interface ZipArchiveItemXmlString {
32
- // type: "XmlString";
33
- // xml: string;
34
- // }
35
- //
36
- // export interface ZipArchiveItemAbstractImage {
37
- // type: "AbstractImage";
38
- // image: AbstractImage;
39
- // renderFormat: string;
40
- // renderScale: number;
41
- // }
42
- //
43
- // export interface ZipMap {
44
- // [key: string]: ZipArchiveItem;
45
- // }
46
- //
47
- // interface GetNewReferenceId {
48
- // (): string;
49
- // }
50
- //
51
- // interface State {
52
- // imageContentTypesAdded: Array<string>;
53
- // readonly imageHash: Map<string, any>;
54
- // readonly numberingDefinitionIdTranslation: Map<string, number>;
55
- // readonly numberingIdTranslation: Map<string, number>;
56
- // referenceId: number;
57
- // }
58
- //
59
- // export function exportToDocx(exportAbstractImageFunc: ExportAbstractImageFunc,
60
- // doc: AbstractDoc.AbstractDoc): Promise<Uint8Array> {
61
- //
62
- // // Create map that corresponds to zip file
63
- // const zipFiles = exportToZipMap(doc);
64
- //
65
- // // Convert all archive items to byte arrays
66
- // const convertedZipFiles = new Map<string, Uint8Array>();
67
- //
68
- // for (const itemKey of Object.keys(zipFiles)) {
69
- // const item = zipFiles[itemKey];
70
- // if (item) {
71
- // switch (item.type) {
72
- // case "AbstractImage":
73
- // const renderedImage = exportAbstractImageFunc("PNG", item.image, item.renderScale);
74
- // convertedZipFiles.set(itemKey, renderedImage.output);
75
- // break;
76
- // case "XmlString":
77
- // convertedZipFiles.set(itemKey, stringToUtf8ByteArray(item.xml));
78
- // break;
79
- // }
80
- // }
81
- // }
82
- //
83
- // // Write the zip
84
- // const zip = new JSZip();
85
- // for (const itemKey of Array.from(convertedZipFiles.keys())) {
86
- // const data = convertedZipFiles.get(itemKey);
87
- // zip.file(itemKey, data);
88
- // }
89
- // return zip.generateAsync({type: "uint8array"});
90
- //
91
- // }
92
- //
93
- // export function exportToZipMap(abstractDoc: AbstractDoc.AbstractDoc): ZipMap {
94
- //
95
- // // this._state.imageContentTypesAdded = [];
96
- // // this._state.imageHash.clear();
97
- //
98
- // const state: State = {
99
- // imageContentTypesAdded: [],
100
- // imageHash: new Map<string, any>(),
101
- // numberingDefinitionIdTranslation: new Map<string, number>(),
102
- // numberingIdTranslation: new Map<string, number>(),
103
- // referenceId: 0,
104
- // };
105
- //
106
- // const GetNewReferenceId = (state: State): string => {
107
- // state.referenceId += 1;
108
- // return "rId" + state.referenceId;
109
- // };
110
- //
111
- //
112
- // const zipFiles: ZipMap = {};
113
- //
114
- // const contentTypesDoc = new DocumentContainer();
115
- // contentTypesDoc.filePath = DocxConstants.ContentTypesPath;
116
- // contentTypesDoc.fileName = "[Content_Types].xml";
117
- // contentTypesDoc.XMLWriter.WriteStartDocument();
118
- // contentTypesDoc.XMLWriter.WriteStartElement("Types", DocxConstants.ContentTypeNamespace);
119
- //
120
- // const mainDoc = new DocumentContainer();
121
- // mainDoc.filePath = DocxConstants.DocumentPath;
122
- // mainDoc.fileName = "document.xml";
123
- // mainDoc.contentType = DocxConstants.MainContentType;
124
- // mainDoc.XMLWriter.WriteStartDocument(true);
125
- // mainDoc.XMLWriter.WriteComment("This file represents a print");
126
- // mainDoc.XMLWriter.WriteStartElement("document", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
127
- // mainDoc.XMLWriter.WriteStartElement("body", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
128
- //
129
- // if (Object.keys(abstractDoc.numberings).length > 0) {
130
- // const numberingDoc = new DocumentContainer();
131
- // numberingDoc.filePath = DocxConstants.NumberingPath;
132
- // numberingDoc.fileName = "numbering.xml";
133
- // numberingDoc.contentType = DocxConstants.NumberingContentType;
134
- // numberingDoc.XMLWriter.WriteStartDocument();
135
- // numberingDoc.XMLWriter.WriteStartElement("numbering", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
136
- //
137
- // // <w:abstractNum>
138
- // let wordNumberingDefinitionId: number = 1;
139
- // for (const key of Object.keys(abstractDoc.numberingDefinitions)) {
140
- // const numDef = abstractDoc.numberingDefinitions[key];
141
- // numberingDoc.XMLWriter.WriteStartElement("abstractNum", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
142
- // numberingDoc.XMLWriter.WriteAttributeString("abstractNumId", wordNumberingDefinitionId.toString(), DocxConstants.WordNamespace, DocxConstants.WordPrefix);
143
- //
144
- // // <w:lvl>
145
- // for (const numDefLevel of numDef.levels) {
146
- // //<w:lvl w:ilvl="0" w:tplc="041D0019">
147
- // // <w:start w:val="1"/>
148
- // // <w:numFmt w:val="lowerLetter"/>
149
- // // <w:lvlText w:val="%1."/>
150
- // // <w:lvlJc w:val="left"/>
151
- // // <w:pPr>
152
- // // <w:ind w:left="1440" w:hanging="360"/>
153
- // // </w:pPr>
154
- // //</w:lvl>
155
- // numberingDoc.XMLWriter.WriteStartElement("lvl", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
156
- // numberingDoc.XMLWriter.WriteAttributeString("ilvl", numDefLevel.level.toString(), DocxConstants.WordNamespace, DocxConstants.WordPrefix);
157
- // numberingDoc.XMLWriter.WriteStartElement("start", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
158
- // numberingDoc.XMLWriter.WriteAttributeString("val", numDefLevel.start.toString(), DocxConstants.WordNamespace, DocxConstants.WordPrefix);
159
- // numberingDoc.XMLWriter.WriteEndElement();
160
- // const numFmt = convertNumFormat(numDefLevel.format);
161
- // numberingDoc.XMLWriter.WriteStartElement("numFmt", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
162
- // numberingDoc.XMLWriter.WriteAttributeString("val", numFmt, DocxConstants.WordNamespace, DocxConstants.WordPrefix);
163
- // numberingDoc.XMLWriter.WriteEndElement();
164
- // numberingDoc.XMLWriter.WriteStartElement("lvlText", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
165
- // numberingDoc.XMLWriter.WriteAttributeString("val", numDefLevel.levelText, DocxConstants.WordNamespace, DocxConstants.WordPrefix);
166
- // numberingDoc.XMLWriter.WriteEndElement();
167
- //
168
- // numberingDoc.XMLWriter.WriteStartElement("lvlJc", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
169
- // numberingDoc.XMLWriter.WriteAttributeString("val", "left", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
170
- // numberingDoc.XMLWriter.WriteEndElement();
171
- //
172
- // numberingDoc.XMLWriter.WriteStartElement("pPr", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
173
- // numberingDoc.XMLWriter.WriteStartElement("ind", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
174
- // numberingDoc.XMLWriter.WriteAttributeString("left", numDefLevel.levelIndention.twips.toString(), DocxConstants.WordNamespace, DocxConstants.WordPrefix);
175
- // numberingDoc.XMLWriter.WriteAttributeString("hanging", "800", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
176
- // numberingDoc.XMLWriter.WriteEndElement();
177
- // numberingDoc.XMLWriter.WriteEndElement();
178
- //
179
- // //<w:rPr>
180
- // //var effectiveStyle = numDefLevel.GetEffectiveTextStyle(abstractDoc.Styles);
181
- // const textProperties = numDefLevel.textProperties;
182
- // if (textProperties != null) {
183
- // numberingDoc.XMLWriter.WriteStartElement("rPr", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
184
- // // <w:b/>
185
- // if (textProperties.bold)
186
- // numberingDoc.XMLWriter.WriteStartElement("b", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
187
- // numberingDoc.XMLWriter.WriteEndElement();
188
- // numberingDoc.XMLWriter.WriteEndElement();
189
- // // TODO: Support more of the TextStyle...
190
- // }
191
- //
192
- // numberingDoc.XMLWriter.WriteEndElement();
193
- // }
194
- // state.numberingDefinitionIdTranslation.set(key, wordNumberingDefinitionId++);
195
- // }
196
- //
197
- // numberingDoc.XMLWriter.WriteEndElement(); // abstractNum
198
- //
199
- // let wordNumberingId: number = 1;
200
- // for (const key of Object.keys(abstractDoc.numberings)) {
201
- // const value = abstractDoc.numberings[key];
202
- // numberingDoc.XMLWriter.WriteStartElement("num", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
203
- // numberingDoc.XMLWriter.WriteAttributeString("numId", wordNumberingId.toString(), DocxConstants.WordNamespace, DocxConstants.WordPrefix);
204
- // numberingDoc.XMLWriter.WriteStartElement("abstractNumId", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
205
- // const wordDefinitionId = state.numberingDefinitionIdTranslation.get(value.definitionId) as number;
206
- // numberingDoc.XMLWriter.WriteAttributeString("val", wordDefinitionId.toString(), DocxConstants.WordNamespace, DocxConstants.WordPrefix);
207
- // numberingDoc.XMLWriter.WriteEndElement();
208
- // numberingDoc.XMLWriter.WriteEndElement();
209
- // state.numberingIdTranslation.set(key, wordNumberingId++);
210
- // }
211
- // numberingDoc.XMLWriter.WriteEndElement();
212
- // const refid = GetNewReferenceId(state);
213
- // mainDoc.references.AddReference(refid, numberingDoc.filePath + numberingDoc.fileName,
214
- // DocxConstants.NumberingNamespace);
215
- // //mainDoc.references.AddReference2("rId1", numberingDoc.FileName, DocxConstants.NumberingNamespace);
216
- //
217
- // addDocumentToArchive(zipFiles, numberingDoc, contentTypesDoc, true);
218
- // }
219
- //
220
- //
221
- // //<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
222
- // //<w:numbering xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:w15="http://schemas.microsoft.com/office/word/2012/wordml" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape" mc:Ignorable="w14 w15 wp14">
223
- // // <w:abstractNum w:abstractNumId="0">
224
- // // <w:nsid w:val="00283020"/>
225
- // // <w:multiLevelType w:val="hybridMultilevel"/>
226
- // // <w:tmpl w:val="D6702D88"/>
227
- // // <w:lvl w:ilvl="0" w:tplc="041D0019">
228
- // // <w:start w:val="1"/>
229
- // // <w:numFmt w:val="lowerLetter"/>
230
- // // <w:lvlText w:val="%1."/>
231
- // // <w:lvlJc w:val="left"/>
232
- // // <w:pPr>
233
- // // <w:ind w:left="1440" w:hanging="360"/>
234
- // // </w:pPr>
235
- // // </w:lvl>
236
- // // <w:lvl w:ilvl="1" w:tplc="041D0019">
237
- // // <w:start w:val="1"/>
238
- // // <w:numFmt w:val="lowerLetter"/>
239
- // // <w:lvlText w:val="%2."/>
240
- // // <w:lvlJc w:val="left"/>
241
- // // <w:pPr>
242
- // // <w:ind w:left="2160" w:hanging="360"/>
243
- // // </w:pPr>
244
- // // </w:lvl>
245
- // // <w:lvl w:ilvl="2" w:tplc="041D001B" w:tentative="1">
246
- // // <w:start w:val="1"/>
247
- // // <w:numFmt w:val="lowerRoman"/>
248
- // // <w:lvlText w:val="%3."/>
249
- // // <w:lvlJc w:val="right"/>
250
- // // <w:pPr>
251
- // // <w:ind w:left="2880" w:hanging="180"/>
252
- // // </w:pPr>
253
- // // </w:lvl>
254
- // // </w:abstractNum>
255
- // // <w:num w:numId="2">
256
- // // <w:abstractNumId w:val="0"/>
257
- // // </w:num>
258
- // //</w:numbering>
259
- //
260
- // let lastMasterPage: MasterPage.MasterPage | null = null;
261
- // let currentHeader: DocumentContainer | null = null;
262
- // let lastHeader: DocumentContainer | null = null;
263
- // let pages = 0;
264
- // for (const section of abstractDoc.children) {
265
- // if (section.page.header != null && section.page.header.length > 0) {
266
- // lastHeader = currentHeader;
267
- //
268
- // currentHeader = new DocumentContainer();
269
- // const headerXmlWriter = currentHeader.XMLWriter;
270
- // headerXmlWriter.WriteStartDocument(true);
271
- // headerXmlWriter.WriteStartElement("hdr", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
272
- // const header = section.page.header;
273
- // for (const paragraph of header) {
274
- // addBaseParagraphDocX(abstractDoc, headerXmlWriter, zipFiles, currentHeader, contentTypesDoc, paragraph,
275
- // false, state.imageHash, state.imageContentTypesAdded, () => GetNewReferenceId(state), state.numberingIdTranslation);
276
- // }
277
- //
278
- // headerXmlWriter.WriteEndElement();
279
- //
280
- // const refid = GetNewReferenceId(state);
281
- // currentHeader.refId = refid;
282
- // currentHeader.filePath = DocxConstants.DocumentPath;
283
- // currentHeader.fileName = "Header_" + refid + ".xml";
284
- // currentHeader.contentType = DocxConstants.HeaderContentType;
285
- // mainDoc.references.AddReference(refid, currentHeader.filePath + currentHeader.fileName,
286
- // DocxConstants.HeaderNamespace);
287
- //
288
- // addDocumentToArchive(zipFiles, currentHeader, contentTypesDoc, true);
289
- // }
290
- // else {
291
- // lastHeader = currentHeader;
292
- //
293
- // currentHeader = new DocumentContainer();
294
- // const headerXmlWriter = currentHeader.XMLWriter;
295
- // headerXmlWriter.WriteStartDocument(true);
296
- //
297
- // headerXmlWriter.WriteStartElement("hdr", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
298
- // headerXmlWriter.WriteEndElement();
299
- //
300
- // const refid = GetNewReferenceId(state);
301
- // currentHeader.refId = refid;
302
- // currentHeader.filePath = DocxConstants.DocumentPath;
303
- // currentHeader.fileName = "Header_" + refid + ".xml";
304
- // currentHeader.contentType = DocxConstants.HeaderContentType;
305
- // mainDoc.references.AddReference(refid, currentHeader.filePath + currentHeader.fileName,
306
- // DocxConstants.HeaderNamespace);
307
- //
308
- // addDocumentToArchive(zipFiles, currentHeader, contentTypesDoc, true);
309
- // }
310
- //
311
- // if (lastMasterPage != null) {
312
- // insertPageSettingsParagraph(mainDoc.XMLWriter, lastMasterPage, lastHeader as DocumentContainer);
313
- // pages++;
314
- // }
315
- //
316
- // lastMasterPage = section.page;
317
- //
318
- // for (const paragraph of section.children)
319
- // addBaseParagraphDocX(abstractDoc, mainDoc.XMLWriter, zipFiles, mainDoc, contentTypesDoc, paragraph, false,
320
- // state.imageHash, state.imageContentTypesAdded, () => GetNewReferenceId(state), state.numberingIdTranslation);
321
- // }
322
- //
323
- // if (lastMasterPage != null) {
324
- // lastHeader = currentHeader;
325
- // insertPageSettings(mainDoc.XMLWriter, lastMasterPage, lastHeader as DocumentContainer);
326
- // }
327
- //
328
- // if (mainDoc.XMLWriter != null) {
329
- // mainDoc.XMLWriter.WriteEndElement();
330
- // mainDoc.XMLWriter.WriteEndElement();
331
- // mainDoc.XMLWriter.Flush();
332
- // addDocumentToArchive(zipFiles, mainDoc, contentTypesDoc, false);
333
- // addSupportFilesContents(zipFiles, contentTypesDoc);
334
- // }
335
- //
336
- // return zipFiles;
337
- // // // Write the zip
338
- // // const zipBytes = this._zipService.CreateZipFile(zipFiles);
339
- // // resultStream.Write(zipBytes, 0, zipBytes.length);
340
- // }
341
- //
342
- // function addBaseParagraphDocX(doc: AbstractDoc.AbstractDoc,
343
- // xmlWriter: XmlWriter,
344
- // zip: ZipMap,
345
- // currentDocument: DocumentContainer,
346
- // contentTypesDoc: DocumentContainer,
347
- // newSectionElement: SectionElement.SectionElement,
348
- // inTable: boolean,
349
- // imageHash: Map<string, any>, imageContentTypesAdded: Array<string>,
350
- // getNewReferenceId: GetNewReferenceId,
351
- // numberingIdTranslation: Map<string, number>): void {
352
- //
353
- // if (!newSectionElement) {
354
- // insertEmptyParagraph(xmlWriter);
355
- // return;
356
- // }
357
- //
358
- // switch (newSectionElement.type) {
359
- // case "Table":
360
- // insertTable(doc, xmlWriter, zip, currentDocument, contentTypesDoc, newSectionElement,
361
- // imageHash, imageContentTypesAdded, getNewReferenceId, numberingIdTranslation);
362
- // // Om man lägger in en tabell i en tabell så måste man lägga till en tom paragraf under...
363
- // if (inTable)
364
- // insertEmptyParagraph(xmlWriter);
365
- // return;
366
- // case "Paragraph":
367
- // insertParagraph(doc, xmlWriter, zip, currentDocument, contentTypesDoc, newSectionElement,
368
- // imageHash, imageContentTypesAdded, getNewReferenceId, numberingIdTranslation);
369
- // return;
370
- // case "KeepTogether":
371
- // for (const sectionElement of newSectionElement.children)
372
- // addBaseParagraphDocX(doc, xmlWriter, zip, currentDocument, contentTypesDoc, sectionElement, inTable,
373
- // imageHash, imageContentTypesAdded, getNewReferenceId, numberingIdTranslation);
374
- // return;
375
- // }
376
- //
377
- // throw new Error("The type has not been implemented in printer");
378
- // }
379
- //
380
- // function insertTable(doc: AbstractDoc.AbstractDoc, xmlWriter: XmlWriter, zip: ZipMap,
381
- // currentDocument: DocumentContainer,
382
- // contentTypesDoc: DocumentContainer, tPara: Table.Table,
383
- // imageHash: Map<string, any>, imageContentTypesAdded: Array<string>,
384
- // getNewReferenceId: GetNewReferenceId,
385
- // numberingIdTranslation: Map<string, number>): void {
386
- //
387
- // //var xml = doc.ToXml();
388
- //
389
- // xmlWriter.WriteStartElement("tbl", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
390
- // xmlWriter.WriteStartElement("tblPr", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
391
- // xmlWriter.WriteStartElement("tblW", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
392
- // xmlWriter.WriteAttributeString("w", "0", DocxConstants.WordNamespace);
393
- // xmlWriter.WriteAttributeString("type", "auto", DocxConstants.WordNamespace);
394
- // xmlWriter.WriteEndElement();
395
- // xmlWriter.WriteStartElement("tblLayout", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
396
- // xmlWriter.WriteAttributeString("type", "fixed", DocxConstants.WordNamespace);
397
- // xmlWriter.WriteEndElement();
398
- //
399
- // xmlWriter.WriteEndElement();
400
- // xmlWriter.WriteStartElement("tblGrid", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
401
- // for (const w of tPara.columnWidths) {
402
- // xmlWriter.WriteStartElement("gridCol", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
403
- // xmlWriter.WriteAttributeString("w", ((w * DocxConstants.PointOoXmlFactor)).toString(), DocxConstants.WordNamespace);
404
- // xmlWriter.WriteEndElement();
405
- // }
406
- // xmlWriter.WriteEndElement();
407
- //
408
- // for (let r = 0; r <= Table.nrOfRows(tPara) - 1; r++) {
409
- // xmlWriter.WriteStartElement("tr", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
410
- // xmlWriter.WriteStartElement("trPr", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
411
- //
412
- // if (!isNaN(tPara.children[r].height)) {
413
- // xmlWriter.WriteStartElement("trHeight", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
414
- // xmlWriter.WriteAttributeString("val", ((tPara.children[r].height * DocxConstants.PointOoXmlFactor)).toString(), DocxConstants.WordNamespace);
415
- // xmlWriter.WriteAttributeString("type", "atLeast", DocxConstants.WordNamespace);
416
- // xmlWriter.WriteEndElement();
417
- // }
418
- // xmlWriter.WriteStartElement("cantSplit", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
419
- // xmlWriter.WriteEndElement();
420
- // xmlWriter.WriteEndElement();
421
- //
422
- // let c = 0;
423
- // let tc = 0;
424
- // while (c < tPara.columnWidths.length) {
425
- // //var ptc = tPara.GetCell(r, tc);
426
- // let ptc = getCell(/*doc,*/ tPara, r, tc) as TableCell.TableCell;
427
- // let effectiveCellProps = TableCell.getEffectiveTableCellProperties(/*doc.styles,*/ tPara, ptc);
428
- //
429
- // // let effectiveTableProps = Table.getEffectiveTableProperties(doc.styles, tPara);
430
- //
431
- // //if (effectiveTableProps.BorderThickness.GetValueOrDefault(0) > double.Epsilon)
432
- // //{
433
- // //if (effectiveCellProps.Borders.Bottom == null)
434
- // // effectiveCellProps.Borders.Bottom = effectiveTableProps.BorderThickness;
435
- // //if (effectiveCellProps.Borders.Top == null)
436
- // // effectiveCellProps.Borders.Top = effectiveTableProps.BorderThickness;
437
- // //if (effectiveCellProps.Borders.Left == null)
438
- // // effectiveCellProps.Borders.Left = effectiveTableProps.BorderThickness;
439
- // //if (effectiveCellProps.Borders.Right == null)
440
- // // effectiveCellProps.Borders.Right = effectiveTableProps.BorderThickness;
441
- // //}
442
- //
443
- // xmlWriter.WriteStartElement("tc", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
444
- // xmlWriter.WriteStartElement("tcPr", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
445
- // if (effectiveCellProps.background && effectiveCellProps.background.a > 0) {
446
- // xmlWriter.WriteStartElement("shd", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
447
- // xmlWriter.WriteAttributeString("val", "clear", DocxConstants.WordNamespace);
448
- // xmlWriter.WriteAttributeString("color", "auto", DocxConstants.WordNamespace);
449
- // xmlWriter.WriteAttributeString("fill", Color.toString6Hex(effectiveCellProps.background), DocxConstants.WordNamespace);
450
- // xmlWriter.WriteEndElement();
451
- // }
452
- //
453
- // xmlWriter.WriteStartElement("gridSpan", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
454
- // xmlWriter.WriteAttributeString("val", ptc.columnSpan.toString(), DocxConstants.WordNamespace);
455
- // xmlWriter.WriteEndElement();
456
- // xmlWriter.WriteStartElement("tcBorders", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
457
- // if (effectiveCellProps) {
458
- // if (effectiveCellProps.borders.bottom || 0 > 0)
459
- // addBordersToCell(xmlWriter, effectiveCellProps.borders.bottom as number, "bottom");
460
- // if (effectiveCellProps.borders.left || 0 > 0)
461
- // addBordersToCell(xmlWriter, effectiveCellProps.borders.left as number, "left");
462
- // if (effectiveCellProps.borders.top || 0 > 0)
463
- // addBordersToCell(xmlWriter, effectiveCellProps.borders.top as number, "top");
464
- // if (effectiveCellProps.borders.right || 0 > 0)
465
- // addBordersToCell(xmlWriter, effectiveCellProps.borders.right as number, "right");
466
- // }
467
- // xmlWriter.WriteEndElement();
468
- //
469
- // xmlWriter.WriteStartElement("tcMar", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
470
- // let mTop = 0;
471
- // let mBottom = 0;
472
- // let mLeft = 0;
473
- // let mRight = 0;
474
- //
475
- // if (effectiveCellProps.padding.top)
476
- // mTop = effectiveCellProps.padding.top;
477
- // if (effectiveCellProps.padding.bottom)
478
- // mBottom = effectiveCellProps.padding.bottom;
479
- // if (effectiveCellProps.padding.left)
480
- // mLeft = effectiveCellProps.padding.left;
481
- // if (effectiveCellProps.padding.right)
482
- // mRight = effectiveCellProps.padding.right;
483
- //
484
- // xmlWriter.WriteStartElement("top", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
485
- // xmlWriter.WriteAttributeString("w", mTop.toString(), DocxConstants.WordNamespace);
486
- // xmlWriter.WriteAttributeString("type", "dxa", DocxConstants.WordNamespace);
487
- // xmlWriter.WriteEndElement();
488
- // xmlWriter.WriteStartElement("bottom", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
489
- // xmlWriter.WriteAttributeString("w", mBottom.toString(), DocxConstants.WordNamespace);
490
- // xmlWriter.WriteAttributeString("type", "dxa", DocxConstants.WordNamespace);
491
- // xmlWriter.WriteEndElement();
492
- // xmlWriter.WriteStartElement("right", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
493
- // xmlWriter.WriteAttributeString("w", mRight.toString(), DocxConstants.WordNamespace);
494
- // xmlWriter.WriteAttributeString("type", "dxa", DocxConstants.WordNamespace);
495
- // xmlWriter.WriteEndElement();
496
- // xmlWriter.WriteStartElement("left", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
497
- // xmlWriter.WriteAttributeString("w", mLeft.toString(), DocxConstants.WordNamespace);
498
- // xmlWriter.WriteAttributeString("type", "dxa", DocxConstants.WordNamespace);
499
- // xmlWriter.WriteEndElement();
500
- // xmlWriter.WriteEndElement();
501
- // xmlWriter.WriteEndElement();
502
- //
503
- // if (ptc.children.length == 0) {
504
- // insertEmptyParagraph(xmlWriter);
505
- // }
506
- // else {
507
- // for (const bp of ptc.children) {
508
- // // TODO: Detta kan ge lite konstiga resultat om man har en tabell först och sedan text...
509
- // // Borde kolla om det bara finns en och det är en tabell eller om det finns två men båra är tabeller osv.
510
- // addBaseParagraphDocX(doc, xmlWriter, zip, currentDocument, contentTypesDoc, bp, true,
511
- // imageHash, imageContentTypesAdded, getNewReferenceId, numberingIdTranslation);
512
- // }
513
- // }
514
- //
515
- // xmlWriter.WriteEndElement();
516
- // c += ptc.columnSpan;
517
- // tc += 1;
518
- // }
519
- // xmlWriter.WriteEndElement();
520
- // }
521
- //
522
- // xmlWriter.WriteEndElement();
523
- // }
524
- //
525
- // function insertParagraph(doc: AbstractDoc.AbstractDoc, xmlWriter: XmlWriter, zip: ZipMap,
526
- // currentDocument: DocumentContainer, contentTypesDoc: DocumentContainer, para: Paragraph.Paragraph,
527
- // imageHash: Map<string, any>, imageContentTypesAdded: Array<string>,
528
- // getNewReferenceId: GetNewReferenceId,
529
- // numberingIdTranslation: Map<string, number>): void {
530
- //
531
- // const effectiveParaProps = Paragraph.getEffectiveParagraphProperties(doc.styles, para);
532
- //
533
- // xmlWriter.WriteStartElement("p", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
534
- // xmlWriter.WriteStartElement("pPr", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
535
- // xmlWriter.WriteStartElement("wordWrap", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
536
- // xmlWriter.WriteAttributeString("val", "on", DocxConstants.WordNamespace);
537
- // xmlWriter.WriteEndElement();
538
- //
539
- // xmlWriter.WriteStartElement("spacing", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
540
- // if (effectiveParaProps.spacingBefore)
541
- // xmlWriter.WriteAttributeString("before", effectiveParaProps.spacingBefore.twips.toString(), DocxConstants.WordNamespace);
542
- // if (effectiveParaProps.spacingAfter)
543
- // xmlWriter.WriteAttributeString("after", effectiveParaProps.spacingAfter.twips.toString(), DocxConstants.WordNamespace);
544
- // xmlWriter.WriteEndElement();
545
- //
546
- // if (para.numbering != null) {
547
- // xmlWriter.WriteStartElement("numPr", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
548
- // xmlWriter.WriteStartElement("ilvl", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
549
- // xmlWriter.WriteAttributeString("val", para.numbering.level.toString(), DocxConstants.WordNamespace);
550
- // xmlWriter.WriteEndElement();
551
- // xmlWriter.WriteStartElement("numId", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
552
- // const wordNumberingId = getWordNumberingId(para.numbering.numberingId, numberingIdTranslation);
553
- // xmlWriter.WriteAttributeString("val", wordNumberingId.toString(), DocxConstants.WordNamespace);
554
- // xmlWriter.WriteEndElement();
555
- // xmlWriter.WriteEndElement();
556
- // }
557
- //
558
- // xmlWriter.WriteElementString("keepLines", "", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
559
- // //var effectiveStyle = para.GetEffectiveStyle(doc.Styles);
560
- // insertJc(xmlWriter, effectiveParaProps.alignment);
561
- // xmlWriter.WriteEndElement();
562
- //
563
- // for (const comp of para.children) {
564
- // insertComponent(doc, xmlWriter, zip, currentDocument, contentTypesDoc, comp,
565
- // imageHash, imageContentTypesAdded, getNewReferenceId);
566
- // }
567
- // xmlWriter.WriteEndElement();
568
- // }
569
- //
570
- // function getWordNumberingId(numberingId: string, numberingIdTranslation: Map<string, number>): number {
571
- // return numberingIdTranslation.get(numberingId) as number;
572
- // }
573
- //
574
- //
575
- // function insertComponent(doc: AbstractDoc.AbstractDoc, xmlWriter: XmlWriter, zip: ZipMap,
576
- // currentDocument: DocumentContainer, contentTypesDoc: DocumentContainer, bc: Atom.Atom,
577
- // imageHash: Map<string, any>, imageContentTypesAdded: Array<string>,
578
- // getNewReferenceId: GetNewReferenceId): void {
579
- //
580
- // switch (bc.type) {
581
- // case "TextField":
582
- // insertFieldComponent(doc, xmlWriter, bc);
583
- // break;
584
- // case "TextRun":
585
- // const effectiveTextProps = TextRun.getEffectiveTextProperties(doc.styles, bc);
586
- // insertTextComponent(/*doc,*/ xmlWriter, bc, effectiveTextProps);
587
- // break;
588
- // case "Image":
589
- // insertImageComponent(xmlWriter, zip, currentDocument, contentTypesDoc, bc, imageHash,
590
- // imageContentTypesAdded, getNewReferenceId);
591
- // break;
592
- // default:
593
- // throw new Error("Contents of job is not implemented in printer");
594
- // }
595
- //
596
- // }
597
- //
598
- //
599
- // function insertImageComponent(xmlWriter: XmlWriter, zip: ZipMap,
600
- // currentDocument: DocumentContainer, contentTypesDoc: DocumentContainer, image: Image.Image,
601
- // imageHash: Map<string, any>, imageContentTypesAdded: Array<string>,
602
- // getNewReferenceId: GetNewReferenceId): void {
603
- //
604
- // const renderedImageFormat = "PNG";
605
- //
606
- // // Lägg till referens
607
- // if (!imageHash.has(image.imageResource.id.toString())) {
608
- // const refId = getNewReferenceId();
609
- // addImageReference2(zip, contentTypesDoc, image, renderedImageFormat, imageContentTypesAdded, imageHash, refId);
610
- // }
611
- //
612
- // //Lägg till bilden i dokumentet
613
- // const rid = imageHash.get(image.imageResource.id.toString()).toString();
614
- //
615
- // //Behöver komma åt dokumentet som bilden tillhör
616
- // const filePath = DocxConstants.ImagePath + "image_" + rid + "." + renderedImageFormat;
617
- // currentDocument.references.AddReference(rid, filePath, DocxConstants.ImageNamespace);
618
- //
619
- // //Lägg till i MainPart
620
- // //Lägg till bilden i en run
621
- // xmlWriter.WriteStartElement("r", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
622
- // insertImage(xmlWriter, rid, image.width, image.height);
623
- // xmlWriter.WriteEndElement();
624
- // //}
625
- // }
626
- //
627
- // function convertNumFormat(format: NumberingFormat.NumberingFormat): string {
628
- // let wordNumFmt: string = "decimal";
629
- // switch (format) {
630
- // case "Decimal":
631
- // wordNumFmt = "decimal";
632
- // break;
633
- // case "DecimalZero":
634
- // wordNumFmt = "decimalZero";
635
- // break;
636
- // case "LowerLetter":
637
- // wordNumFmt = "lowerLetter";
638
- // break;
639
- // case "LowerRoman":
640
- // wordNumFmt = "lowerRoman";
641
- // break;
642
- // case "UpperLetter":
643
- // wordNumFmt = "upperLetter";
644
- // break;
645
- // case "UpperRoman":
646
- // wordNumFmt = "upperRoman";
647
- // break;
648
- // }
649
- // return wordNumFmt;
650
- // }
651
- //
652
- //
653
- // function addImageReference2(zip: ZipMap, contentTypesDoc: DocumentContainer,
654
- // image: Image.Image, renderedImageFormat: string, imageContentTypesAdded: Array<string>,
655
- // imageHash: Map<string, any>, refId: string): void {
656
- //
657
- // const filePath = DocxConstants.ImagePath + "image_" + refId + "." + renderedImageFormat;
658
- //
659
- // const mimeType = getMimeType(renderedImageFormat);
660
- // if (imageContentTypesAdded.indexOf(mimeType) === -1) {
661
- // insertImageContentType(renderedImageFormat, mimeType, contentTypesDoc);
662
- // imageContentTypesAdded.push(mimeType);
663
- // }
664
- //
665
- // addImageToArchive(zip, filePath, image.imageResource.abstractImage, image.imageResource.renderScale, "PNG");
666
- //
667
- // imageHash.set(image.imageResource.id.toString(), refId);
668
- // }
669
- //
670
- // function addSupportFilesContents(zip: ZipMap, contentTypesDoc: DocumentContainer): void {
671
- // addHeadRef(zip);
672
- // addContentTypes(zip, contentTypesDoc);
673
- // }
674
- //
675
- // function addContentTypes(zip: ZipMap, contentTypesDoc: DocumentContainer): void {
676
- // insertDefaultContentTypes(contentTypesDoc);
677
- // contentTypesDoc.XMLWriter.WriteEndElement(); //Avslutar types
678
- // addDocumentToArchive(zip, contentTypesDoc, contentTypesDoc, false);
679
- // }
680
- //
681
- //
682
- // function insertPageSettingsParagraph(xmlWriter: XmlWriter, ps: MasterPage.MasterPage, lastHeader: DocumentContainer): void {
683
- // xmlWriter.WriteStartElement("p", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
684
- // xmlWriter.WriteStartElement("pPr", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
685
- // insertPageSettings(xmlWriter, ps, lastHeader);
686
- // xmlWriter.WriteEndElement();
687
- // xmlWriter.WriteEndElement();
688
- // }
689
- //
690
- // function insertPageSettings(xmlWriter: XmlWriter, ps: MasterPage.MasterPage, lastHeader: DocumentContainer): void {
691
- // xmlWriter.WriteStartElement("sectPr", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
692
- // xmlWriter.WriteStartElement("footnotePr", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
693
- // xmlWriter.WriteStartElement("pos", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
694
- // xmlWriter.WriteAttributeString("val", "beneathText", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
695
- // xmlWriter.WriteEndElement();
696
- // xmlWriter.WriteEndElement();
697
- // if (lastHeader != null) {
698
- // xmlWriter.WriteStartElement("headerReference", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
699
- // xmlWriter.WriteAttributeString("type", "default", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
700
- // xmlWriter.WriteAttributeString("id", lastHeader.refId, DocxConstants.RelNamespace);
701
- // xmlWriter.WriteEndElement();
702
- // }
703
- // xmlWriter.WriteStartElement("pgSz", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
704
- // xmlWriter.WriteAttributeString("w", (PageStyle.getWidth(ps.style) * DocxConstants.PointOoXmlFactor).toString(), DocxConstants.WordNamespace, DocxConstants.WordPrefix);
705
- // xmlWriter.WriteAttributeString("h", (PageStyle.getHeight(ps.style) * DocxConstants.PointOoXmlFactor).toString(), DocxConstants.WordNamespace, DocxConstants.WordPrefix);
706
- // if (ps.style.orientation == "Landscape")
707
- // xmlWriter.WriteAttributeString("orient", "landscape", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
708
- // xmlWriter.WriteEndElement();
709
- // xmlWriter.WriteStartElement("pgMar", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
710
- // xmlWriter.WriteAttributeString("top", ((ps.style.margins.top * DocxConstants.PointOoXmlFactor)).toFixed(0), DocxConstants.WordNamespace, DocxConstants.WordPrefix);
711
- // xmlWriter.WriteAttributeString("bottom", ((ps.style.margins.bottom * DocxConstants.PointOoXmlFactor)).toFixed(0), DocxConstants.WordNamespace, DocxConstants.WordPrefix);
712
- // xmlWriter.WriteAttributeString("left", ((ps.style.margins.left * DocxConstants.PointOoXmlFactor)).toFixed(0), DocxConstants.WordNamespace, DocxConstants.WordPrefix);
713
- // xmlWriter.WriteAttributeString("right", ((ps.style.margins.right * DocxConstants.PointOoXmlFactor)).toFixed(0), DocxConstants.WordNamespace, DocxConstants.WordPrefix);
714
- // xmlWriter.WriteAttributeString("footer", "100", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
715
- // xmlWriter.WriteEndElement();
716
- // xmlWriter.WriteEndElement();
717
- // }
718
- //
719
- // function insertDateComponent(doc: AbstractDoc.AbstractDoc, xmlWriter: XmlWriter, tf: TextField.TextField): void {
720
- // xmlWriter.WriteStartElement("r", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
721
- // //var style = fc.GetEffectiveStyle(doc.Styles) ?? ps.TextProperties;
722
- // const textProperties = TextField.getEffectiveStyle(doc.styles, tf).textProperties;
723
- //
724
- // insertRunProperty(xmlWriter, textProperties);
725
- // xmlWriter.WriteStartElement("fldChar", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
726
- // xmlWriter.WriteAttributeString("fldCharType", "begin", DocxConstants.WordNamespace);
727
- // xmlWriter.WriteEndElement();
728
- // xmlWriter.WriteEndElement();
729
- // xmlWriter.WriteStartElement("r", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
730
- // insertRunProperty(xmlWriter, textProperties);
731
- // xmlWriter.WriteStartElement("instrText", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
732
- // xmlWriter.WriteAttributeString("space", "preserve", "", "xml");
733
- // xmlWriter.WriteString(" DATE \\@YYYY/MM/DD ");
734
- // //var fcText = new TextRun("{ DATE \\@YYYY/MM/DD }", tf.GetEffectiveStyle(doc.Styles));
735
- // const fcText = TextRun.create({text: "{ DATE \\@YYYY/MM/DD }", textProperties: TextField.getEffectiveStyle(doc.styles, tf).textProperties});
736
- //
737
- // xmlWriter.WriteEndElement();
738
- // xmlWriter.WriteEndElement();
739
- // xmlWriter.WriteStartElement("r", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
740
- // insertRunProperty(xmlWriter, textProperties);
741
- // xmlWriter.WriteStartElement("fldChar", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
742
- // xmlWriter.WriteAttributeString("fldCharType", "separate", DocxConstants.WordNamespace);
743
- // xmlWriter.WriteEndElement();
744
- // xmlWriter.WriteEndElement();
745
- // const effectiveStyle = TextField.getEffectiveStyle(doc.styles, tf);
746
- // insertTextComponent(/*doc,*/ xmlWriter, fcText, effectiveStyle.textProperties);
747
- // xmlWriter.WriteStartElement("r", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
748
- // insertRunProperty(xmlWriter, textProperties);
749
- // xmlWriter.WriteStartElement("fldChar", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
750
- // xmlWriter.WriteAttributeString("fldCharType", "end", DocxConstants.WordNamespace);
751
- // xmlWriter.WriteEndElement();
752
- // xmlWriter.WriteEndElement();
753
- // }
754
- //
755
- //
756
- // function insertTextComponent(/*doc: AbstractDoc, */xmlWriter: XmlWriter, tr: TextRun.TextRun, textProperties: TextProperties.TextProperties): void {
757
- // //var effectiveStyle = tc.GetEffectiveStyle(doc.Styles);
758
- // insertText(xmlWriter, tr.text, textProperties);
759
- // }
760
- //
761
- // function escape(text: string): string {
762
- // if (text === null || text === undefined) return "";
763
- //
764
- // const escapeMap: {[key: string]: string} = {
765
- // ">": "&gt;",
766
- // "<": "&lt;",
767
- // "'": "&apos;",
768
- // "\"": "&quot;",
769
- // "&": "&amp;",
770
- // }
771
- //
772
- // return text.replace(new RegExp("([&\"<>'])", "g"), (_str, item) => escapeMap[item])
773
- // }
774
- //
775
- //
776
- // function insertText(xmlWriter: XmlWriter, text: string, textProperties: TextProperties.TextProperties): void {
777
- // xmlWriter.WriteStartElement("r", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
778
- //
779
- // //var style = componentStyle ?? ps.TextProperties;
780
- // //var style = textProperties.TextProperties;
781
- // insertRunProperty(xmlWriter, textProperties);
782
- //
783
- // xmlWriter.WriteStartElement("t", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
784
- // xmlWriter.WriteAttributeString("space", "preserve", "", "xml");
785
- // xmlWriter.WriteString(escape(text));
786
- // xmlWriter.WriteEndElement();
787
- // xmlWriter.WriteEndElement();
788
- // }
789
- //
790
- // function insertEmptyParagraph(xmlWriter: XmlWriter): void {
791
- // xmlWriter.WriteStartElement("p", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
792
- // xmlWriter.WriteStartElement("pPr", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
793
- // xmlWriter.WriteStartElement("spacing", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
794
- // xmlWriter.WriteAttributeString("after", "0", DocxConstants.WordNamespace);
795
- // xmlWriter.WriteEndElement();
796
- // xmlWriter.WriteEndElement();
797
- // xmlWriter.WriteEndElement();
798
- // }
799
- //
800
- //
801
- // function getCell(/*abstractDoc: AbstractDoc,*/ table: Table.Table, r: number, c: number): TableCell.TableCell | null {
802
- //
803
- // if (r >= Table.nrOfRows(table))
804
- // return null;
805
- //
806
- // const row = table.children[r];
807
- // if (c < row.children.length)
808
- // return row.children[c];
809
- //
810
- // // Denna rad innehåller inte alla kolumner...
811
- // // Kolla om något element i denna rad innehåller ett element
812
- // let cs: TableCellProperties.TableCellProperties | undefined;
813
- // for (const ptc of row.children) {
814
- // if (ptc == null)
815
- // break;
816
- // //if (ptc.GetEffectiveStyle() != null)
817
- // cs = TableCell.getEffectiveTableCellProperties(/*abstractDoc.styles,*/ table, ptc);
818
- // }
819
- // if (!cs) {
820
- // // cs = new TableCellPropertiesBuilder().build();
821
- // cs = TableCellProperties.create({
822
- // borders: LayoutFoundation.create({top: 0, bottom: 0, left: 0, right: 0}),
823
- // padding: LayoutFoundation.create({top: 0, bottom: 0, left: 0, right: 0})
824
- // });
825
- // }
826
- // return TableCell.create({tableCellProperties: cs as TableCellProperties.TableCellProperties, columnSpan: 1, children: []});
827
- // }
828
- //
829
- // function insertFieldComponent(doc: AbstractDoc.AbstractDoc, xmlWriter: XmlWriter, fc: TextField.TextField): void {
830
- // switch (fc.fieldType) {
831
- // case "Date":
832
- // insertDateComponent(doc, xmlWriter, fc);
833
- // break;
834
- // case "PageNumber":
835
- // xmlWriter.WriteStartElement("r", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
836
- // //var style = fc.GetEffectiveStyle(doc.Styles) ?? ps.TextProperties;
837
- // const style = TextField.getEffectiveStyle(doc.styles, fc).textProperties;
838
- // insertRunProperty(xmlWriter, style);
839
- // xmlWriter.WriteElementString("pgNum", "", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
840
- // xmlWriter.WriteEndElement();
841
- // break;
842
- // default:
843
- // throw new Error(`Field type '${fc.fieldType}' has not been implemented in printer`);
844
- // }
845
- // }
846
- //
847
- // function addBordersToCell(xmlWriter: XmlWriter, borderdef: number, borderLocation: string): void {
848
- // xmlWriter.WriteStartElement(borderLocation, DocxConstants.WordNamespace, DocxConstants.WordPrefix);
849
- // xmlWriter.WriteAttributeString("val", "single", DocxConstants.WordNamespace);
850
- // xmlWriter.WriteAttributeString("sz", (borderdef * DocxConstants.PointOoXmlFactor).toString(), DocxConstants.WordNamespace);
851
- // xmlWriter.WriteAttributeString("space", "0", DocxConstants.WordNamespace);
852
- // xmlWriter.WriteAttributeString("color", "000000", DocxConstants.WordNamespace);
853
- // xmlWriter.WriteEndElement();
854
- // }
855
- //
856
- // function insertJc(xmlWriter: XmlWriter, ta: TextAlignment.TextAlignment | undefined): void {
857
- // xmlWriter.WriteStartElement("jc", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
858
- // if (ta == "Center")
859
- // xmlWriter.WriteAttributeString("val", "center", DocxConstants.WordNamespace);
860
- // else if (ta == "Start")
861
- // xmlWriter.WriteAttributeString("val", "left", DocxConstants.WordNamespace);
862
- // else if (ta == "End")
863
- // xmlWriter.WriteAttributeString("val", "right", DocxConstants.WordNamespace);
864
- // else
865
- // xmlWriter.WriteAttributeString("val", "left", DocxConstants.WordNamespace);
866
- // xmlWriter.WriteEndElement(); //jc
867
- // }
868
- //
869
- // function insertRunProperty(xmlWriter: XmlWriter, textProperties: TextProperties.TextProperties): void {
870
- // xmlWriter.WriteStartElement("rPr", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
871
- // if (textProperties.subScript || textProperties.superScript) {
872
- // xmlWriter.WriteStartElement("vertAlign", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
873
- // xmlWriter.WriteAttributeString("val", textProperties.subScript ? "subscript" : "superscript", DocxConstants.WordNamespace);
874
- // xmlWriter.WriteEndElement();
875
- // }
876
- //
877
- // xmlWriter.WriteStartElement("rFonts", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
878
- // xmlWriter.WriteAttributeString("ascii", "Arial", DocxConstants.WordNamespace);
879
- // xmlWriter.WriteAttributeString("hAnsi", "Arial", DocxConstants.WordNamespace);
880
- // xmlWriter.WriteEndElement();
881
- // xmlWriter.WriteStartElement("sz", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
882
- // xmlWriter.WriteAttributeString("val", ((((textProperties.fontSize) + 0.5)) * 2).toString(), DocxConstants.WordNamespace);
883
- // xmlWriter.WriteEndElement();
884
- // xmlWriter.WriteStartElement("szCs", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
885
- // xmlWriter.WriteAttributeString("val", ((((textProperties.fontSize) + 0.5)) * 2).toString(), DocxConstants.WordNamespace);
886
- // xmlWriter.WriteEndElement();
887
- // xmlWriter.WriteStartElement("color", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
888
- // xmlWriter.WriteAttributeString("val", textProperties.color != null ? textProperties.color.replace("#", "").substring(0, 6) : "000000", DocxConstants.WordNamespace);
889
- // xmlWriter.WriteEndElement();
890
- // xmlWriter.WriteStartElement("noProof", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
891
- // xmlWriter.WriteAttributeString("val", "true", DocxConstants.WordNamespace);
892
- // xmlWriter.WriteEndElement();
893
- // if (textProperties.bold) {
894
- // xmlWriter.WriteElementString("b", "", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
895
- // xmlWriter.WriteElementString("bCs", "", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
896
- // }
897
- // if (textProperties.italic) {
898
- // xmlWriter.WriteElementString("i", "", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
899
- // xmlWriter.WriteElementString("iCs", "", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
900
- // }
901
- // if (textProperties.underline) {
902
- // xmlWriter.WriteStartElement("u", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
903
- // xmlWriter.WriteAttributeString("val", "single", DocxConstants.WordNamespace);
904
- // xmlWriter.WriteEndElement();
905
- // }
906
- //
907
- // xmlWriter.WriteStartElement("lang", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
908
- // xmlWriter.WriteAttributeString("eastAsia", "en-US", DocxConstants.WordNamespace);
909
- // xmlWriter.WriteEndElement();
910
- // xmlWriter.WriteEndElement();
911
- // }
912
- //
913
- //
914
- // function insertImage(xmlWriter: XmlWriter, rid: string, width: number, height: number): void {
915
- // xmlWriter.WriteStartElement("pict", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
916
- // xmlWriter.WriteStartElement("shapetype", DocxConstants.VmlNamespace, DocxConstants.VmlPrefix);
917
- // xmlWriter.WriteAttributeString("coordsize", "21600,21600");
918
- // xmlWriter.WriteAttributeString("spt", "75", DocxConstants.OfficeNamespace, DocxConstants.OfficePrefix);
919
- // xmlWriter.WriteAttributeString("preferrelative", "t", DocxConstants.OfficeNamespace, DocxConstants.OfficePrefix);
920
- // xmlWriter.WriteAttributeString("path", "m@4@5l@4@11@9@11@9@5xe");
921
- // xmlWriter.WriteAttributeString("filled", "f");
922
- // xmlWriter.WriteAttributeString("stroked", "f");
923
- // xmlWriter.WriteStartElement("stroke", DocxConstants.VmlNamespace, DocxConstants.VmlPrefix);
924
- // xmlWriter.WriteAttributeString("joinstyle", "miter");
925
- // xmlWriter.WriteEndElement();
926
- // xmlWriter.WriteStartElement("formulas", DocxConstants.VmlNamespace, DocxConstants.VmlPrefix);
927
- // xmlWriter.WriteStartElement("f", DocxConstants.VmlNamespace, DocxConstants.VmlPrefix);
928
- // xmlWriter.WriteAttributeString("eqn", "if lineDrawn pixelLineWidth 0");
929
- // xmlWriter.WriteEndElement();
930
- // xmlWriter.WriteStartElement("f", DocxConstants.VmlNamespace, DocxConstants.VmlPrefix);
931
- // xmlWriter.WriteAttributeString("eqn", "sum @0 1 0");
932
- // xmlWriter.WriteEndElement();
933
- // xmlWriter.WriteStartElement("f", DocxConstants.VmlNamespace, DocxConstants.VmlPrefix);
934
- // xmlWriter.WriteAttributeString("eqn", "sum 0 0 @1");
935
- // xmlWriter.WriteEndElement();
936
- // xmlWriter.WriteStartElement("f", DocxConstants.VmlNamespace, DocxConstants.VmlPrefix);
937
- // xmlWriter.WriteAttributeString("eqn", "prod @2 1 2");
938
- // xmlWriter.WriteEndElement();
939
- // xmlWriter.WriteStartElement("f", DocxConstants.VmlNamespace, DocxConstants.VmlPrefix);
940
- // xmlWriter.WriteAttributeString("eqn", "prod @3 21600 pixelWidth");
941
- // xmlWriter.WriteEndElement();
942
- // xmlWriter.WriteStartElement("f", DocxConstants.VmlNamespace, DocxConstants.VmlPrefix);
943
- // xmlWriter.WriteAttributeString("eqn", "prod @3 21600 pixelHeight");
944
- // xmlWriter.WriteEndElement();
945
- // xmlWriter.WriteStartElement("f", DocxConstants.VmlNamespace, DocxConstants.VmlPrefix);
946
- // xmlWriter.WriteAttributeString("eqn", "sum @0 0 1");
947
- // xmlWriter.WriteEndElement();
948
- // xmlWriter.WriteStartElement("f", DocxConstants.VmlNamespace, DocxConstants.VmlPrefix);
949
- // xmlWriter.WriteAttributeString("eqn", "prod @6 1 2");
950
- // xmlWriter.WriteEndElement();
951
- // xmlWriter.WriteStartElement("f", DocxConstants.VmlNamespace, DocxConstants.VmlPrefix);
952
- // xmlWriter.WriteAttributeString("eqn", "prod @7 21600 pixelWidth");
953
- // xmlWriter.WriteEndElement();
954
- // xmlWriter.WriteStartElement("f", DocxConstants.VmlNamespace, DocxConstants.VmlPrefix);
955
- // xmlWriter.WriteAttributeString("eqn", "sum @8 21600 0");
956
- // xmlWriter.WriteEndElement();
957
- // xmlWriter.WriteStartElement("f", DocxConstants.VmlNamespace, DocxConstants.VmlPrefix);
958
- // xmlWriter.WriteAttributeString("eqn", "prod @7 21600 pixelHeight");
959
- // xmlWriter.WriteEndElement();
960
- // xmlWriter.WriteStartElement("f", DocxConstants.VmlNamespace, DocxConstants.VmlPrefix);
961
- // xmlWriter.WriteAttributeString("eqn", "sum @10 21600 0");
962
- // xmlWriter.WriteEndElement();
963
- // xmlWriter.WriteEndElement();
964
- // xmlWriter.WriteStartElement("path", DocxConstants.VmlNamespace, DocxConstants.VmlPrefix);
965
- // xmlWriter.WriteAttributeString("extrusionok", "f", DocxConstants.OfficeNamespace, DocxConstants.OfficePrefix);
966
- // xmlWriter.WriteAttributeString("gradientshapeok", "t");
967
- // xmlWriter.WriteAttributeString("connecttype", "rect", DocxConstants.OfficeNamespace, DocxConstants.OfficePrefix);
968
- // xmlWriter.WriteEndElement();
969
- // xmlWriter.WriteStartElement("lock", DocxConstants.OfficeNamespace, DocxConstants.OfficePrefix);
970
- // xmlWriter.WriteAttributeString("ext", "edit", DocxConstants.VmlNamespace, DocxConstants.VmlPrefix);
971
- // xmlWriter.WriteAttributeString("aspectratio", "t");
972
- // xmlWriter.WriteEndElement();
973
- // xmlWriter.WriteEndElement();
974
- //
975
- // xmlWriter.WriteStartElement("shape", DocxConstants.VmlNamespace, DocxConstants.VmlPrefix);
976
- // xmlWriter.WriteAttributeString("style",
977
- // stringFormat(DocxConstants.ImageStyle, width.toFixed(2), height.toFixed(2))
978
- // );
979
- // xmlWriter.WriteStartElement("imagedata", DocxConstants.VmlNamespace, DocxConstants.VmlPrefix);
980
- // xmlWriter.WriteAttributeString("id", rid, DocxConstants.RelNamespace, DocxConstants.RelPrefix);
981
- // xmlWriter.WriteAttributeString("title", "", DocxConstants.OfficeNamespace, DocxConstants.OfficePrefix);
982
- // xmlWriter.WriteEndElement();
983
- //
984
- // xmlWriter.WriteEndElement();
985
- // xmlWriter.WriteEndElement();
986
- // }
987
- //
988
- // function stringFormat(s: string, ...rest: any[]): string {
989
- // let result = s;
990
- // for (let i = 0; i < rest.length; i++) {
991
- // result = result.replace("{" + i + "}", rest[i]);
992
- // }
993
- // return result;
994
- // }
995
- //
996
- // function insertDocumentContentType(filename: string, contentType: string, contentTypesDoc: DocumentContainer): void {
997
- // contentTypesDoc.XMLWriter.WriteStartElement("Override");
998
- // filename = filename.replace("\\", "/");
999
- // if (filename.startsWith("/") == false)
1000
- // filename = "/" + filename;
1001
- // contentTypesDoc.XMLWriter.WriteAttributeString("PartName", filename);
1002
- // contentTypesDoc.XMLWriter.WriteAttributeString("ContentType", contentType);
1003
- // contentTypesDoc.XMLWriter.WriteEndElement(); //Override
1004
- // }
1005
- //
1006
- // function insertImageContentType(extension: string, mimeType: string, contentTypesDoc: DocumentContainer): void {
1007
- // contentTypesDoc.XMLWriter.WriteStartElement("Default");
1008
- // contentTypesDoc.XMLWriter.WriteAttributeString("Extension", extension);
1009
- // contentTypesDoc.XMLWriter.WriteAttributeString("ContentType", mimeType);
1010
- // contentTypesDoc.XMLWriter.WriteEndElement(); //Default
1011
- // }
1012
- //
1013
- // function insertDefaultContentTypes(contentTypesDoc: DocumentContainer): void {
1014
- // contentTypesDoc.XMLWriter.WriteStartElement("Default");
1015
- // contentTypesDoc.XMLWriter.WriteAttributeString("Extension", "xml");
1016
- // contentTypesDoc.XMLWriter.WriteAttributeString("ContentType", DocxConstants.MainContentType);
1017
- // contentTypesDoc.XMLWriter.WriteEndElement(); //Default
1018
- // contentTypesDoc.XMLWriter.WriteStartElement("Default");
1019
- // contentTypesDoc.XMLWriter.WriteAttributeString("Extension", "rels");
1020
- // contentTypesDoc.XMLWriter.WriteAttributeString("ContentType", DocxConstants.RelationContentType);
1021
- // contentTypesDoc.XMLWriter.WriteEndElement(); //Default
1022
- // }
1023
- //
1024
- // function getMimeType(format: string): string {
1025
- // switch (format.toLowerCase()) {
1026
- // case "gif":
1027
- // return "image/gif";
1028
- // case "jpeg":
1029
- // case "jpg":
1030
- // return "image/jpeg";
1031
- // case "png":
1032
- // return "image/png";
1033
- // case "bmp":
1034
- // return "image/bmp";
1035
- // default:
1036
- // throw new Error("Unknown ImageType");
1037
- // }
1038
- // }
1039
- //
1040
- // function addHeadRef(zip: ZipMap): void {
1041
- //
1042
- // // const headref = new MemoryStream();
1043
- // // const contents = Encoding.UTF8.GetBytes(DocxConstants.HeadRelXml);
1044
- // // headref.Write(contents, 0, contents.Length);
1045
- // //
1046
- // // AddToArchive(zip, DocxConstants.RefPath + ".rels", headref);
1047
- // // //headref.Close();
1048
- // // headref.Dispose();
1049
- //
1050
- // const contents = DocxConstants.HeadRelXml;
1051
- // addXmlStringToArchive(zip, DocxConstants.RefPath + ".rels", contents);
1052
- // }
1053
- //
1054
- // function addDocumentToArchive(zip: ZipMap, docToAdd: DocumentContainer,
1055
- // contentTypesDoc: DocumentContainer, insertContentType: boolean): void {
1056
- //
1057
- // // Add document
1058
- // const docToAddFullPath = docToAdd.filePath + docToAdd.fileName;
1059
- // addXmlStringToArchive(zip, docToAddFullPath, docToAdd.XMLWriter.getXml());
1060
- //
1061
- // // Add references document if it exists
1062
- // if (docToAdd.references.count > 0) {
1063
- // docToAdd.references.finish();
1064
- // addXmlStringToArchive(zip, docToAdd.filePath + DocxConstants.RefPath + docToAdd.fileName + ".rels",
1065
- // docToAdd.references.XMLWriter.getXml());
1066
- // docToAdd.references.XMLWriter.close();
1067
- // }
1068
- // docToAdd.XMLWriter.close();
1069
- //
1070
- // // What does this do? It mutates the contentTypesDoc...
1071
- // if (insertContentType) {
1072
- // insertDocumentContentType(docToAddFullPath, docToAdd.contentType, contentTypesDoc);
1073
- // }
1074
- //
1075
- // }
1076
- //
1077
- // function addXmlStringToArchive(zip: ZipMap, filePath: string, xml: string): void {
1078
- // //const ms = stringToUtf8ByteArray(xml);
1079
- // zip[filePath] = {type: "XmlString", xml: xml};
1080
- // }
1081
- //
1082
- // function addImageToArchive(zip: ZipMap, filePath: string, ms: AbstractImage, renderScale: number, renderFormat: string): void {
1083
- // zip[filePath] = {type: "AbstractImage", image: ms, renderScale, renderFormat};
1084
- // }
1
+ //tslint:disable
2
+
3
+ // import {
4
+ // AbstractDoc,
5
+ // Table, Paragraph, TextField, TextRun, TableCell,
6
+ // PageStyle, SectionElement, Image, MasterPage, TextProperties,
7
+ // Atom, TableCellProperties, TextAlignment, NumberingFormat, LayoutFoundation
8
+ // } from "../../abstract-document/index";
9
+ // import * as Color from "../../abstract-image/color";
10
+ // import {DocumentContainer} from "./document-container";
11
+ // import * as DocxConstants from "./docx-constants";
12
+ //
13
+ // import {AbstractImage} from "../../abstract-image/abstract-image";
14
+ // import {XmlWriter} from "./xml-writer";
15
+ // import {stringToUtf8ByteArray} from "./string-utils";
16
+ // import * as JSZip from "jszip";
17
+ //
18
+ // export type ImageFormat = "PNG" | "SVG";
19
+ //
20
+ // export interface ExportedImage {
21
+ // output: Uint8Array;
22
+ // format: ImageFormat;
23
+ // }
24
+ //
25
+ // export interface ExportAbstractImageFunc {
26
+ // (format: ImageFormat, image: AbstractImage, scale: number): ExportedImage;
27
+ // }
28
+ //
29
+ // export type ZipArchiveItem = ZipArchiveItemXmlString | ZipArchiveItemAbstractImage;
30
+ //
31
+ // export interface ZipArchiveItemXmlString {
32
+ // type: "XmlString";
33
+ // xml: string;
34
+ // }
35
+ //
36
+ // export interface ZipArchiveItemAbstractImage {
37
+ // type: "AbstractImage";
38
+ // image: AbstractImage;
39
+ // renderFormat: string;
40
+ // renderScale: number;
41
+ // }
42
+ //
43
+ // export interface ZipMap {
44
+ // [key: string]: ZipArchiveItem;
45
+ // }
46
+ //
47
+ // interface GetNewReferenceId {
48
+ // (): string;
49
+ // }
50
+ //
51
+ // interface State {
52
+ // imageContentTypesAdded: Array<string>;
53
+ // readonly imageHash: Map<string, any>;
54
+ // readonly numberingDefinitionIdTranslation: Map<string, number>;
55
+ // readonly numberingIdTranslation: Map<string, number>;
56
+ // referenceId: number;
57
+ // }
58
+ //
59
+ // export function exportToDocx(exportAbstractImageFunc: ExportAbstractImageFunc,
60
+ // doc: AbstractDoc.AbstractDoc): Promise<Uint8Array> {
61
+ //
62
+ // // Create map that corresponds to zip file
63
+ // const zipFiles = exportToZipMap(doc);
64
+ //
65
+ // // Convert all archive items to byte arrays
66
+ // const convertedZipFiles = new Map<string, Uint8Array>();
67
+ //
68
+ // for (const itemKey of Object.keys(zipFiles)) {
69
+ // const item = zipFiles[itemKey];
70
+ // if (item) {
71
+ // switch (item.type) {
72
+ // case "AbstractImage":
73
+ // const renderedImage = exportAbstractImageFunc("PNG", item.image, item.renderScale);
74
+ // convertedZipFiles.set(itemKey, renderedImage.output);
75
+ // break;
76
+ // case "XmlString":
77
+ // convertedZipFiles.set(itemKey, stringToUtf8ByteArray(item.xml));
78
+ // break;
79
+ // }
80
+ // }
81
+ // }
82
+ //
83
+ // // Write the zip
84
+ // const zip = new JSZip();
85
+ // for (const itemKey of Array.from(convertedZipFiles.keys())) {
86
+ // const data = convertedZipFiles.get(itemKey);
87
+ // zip.file(itemKey, data);
88
+ // }
89
+ // return zip.generateAsync({type: "uint8array"});
90
+ //
91
+ // }
92
+ //
93
+ // export function exportToZipMap(abstractDoc: AbstractDoc.AbstractDoc): ZipMap {
94
+ //
95
+ // // this._state.imageContentTypesAdded = [];
96
+ // // this._state.imageHash.clear();
97
+ //
98
+ // const state: State = {
99
+ // imageContentTypesAdded: [],
100
+ // imageHash: new Map<string, any>(),
101
+ // numberingDefinitionIdTranslation: new Map<string, number>(),
102
+ // numberingIdTranslation: new Map<string, number>(),
103
+ // referenceId: 0,
104
+ // };
105
+ //
106
+ // const GetNewReferenceId = (state: State): string => {
107
+ // state.referenceId += 1;
108
+ // return "rId" + state.referenceId;
109
+ // };
110
+ //
111
+ //
112
+ // const zipFiles: ZipMap = {};
113
+ //
114
+ // const contentTypesDoc = new DocumentContainer();
115
+ // contentTypesDoc.filePath = DocxConstants.ContentTypesPath;
116
+ // contentTypesDoc.fileName = "[Content_Types].xml";
117
+ // contentTypesDoc.XMLWriter.WriteStartDocument();
118
+ // contentTypesDoc.XMLWriter.WriteStartElement("Types", DocxConstants.ContentTypeNamespace);
119
+ //
120
+ // const mainDoc = new DocumentContainer();
121
+ // mainDoc.filePath = DocxConstants.DocumentPath;
122
+ // mainDoc.fileName = "document.xml";
123
+ // mainDoc.contentType = DocxConstants.MainContentType;
124
+ // mainDoc.XMLWriter.WriteStartDocument(true);
125
+ // mainDoc.XMLWriter.WriteComment("This file represents a print");
126
+ // mainDoc.XMLWriter.WriteStartElement("document", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
127
+ // mainDoc.XMLWriter.WriteStartElement("body", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
128
+ //
129
+ // if (Object.keys(abstractDoc.numberings).length > 0) {
130
+ // const numberingDoc = new DocumentContainer();
131
+ // numberingDoc.filePath = DocxConstants.NumberingPath;
132
+ // numberingDoc.fileName = "numbering.xml";
133
+ // numberingDoc.contentType = DocxConstants.NumberingContentType;
134
+ // numberingDoc.XMLWriter.WriteStartDocument();
135
+ // numberingDoc.XMLWriter.WriteStartElement("numbering", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
136
+ //
137
+ // // <w:abstractNum>
138
+ // let wordNumberingDefinitionId: number = 1;
139
+ // for (const key of Object.keys(abstractDoc.numberingDefinitions)) {
140
+ // const numDef = abstractDoc.numberingDefinitions[key];
141
+ // numberingDoc.XMLWriter.WriteStartElement("abstractNum", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
142
+ // numberingDoc.XMLWriter.WriteAttributeString("abstractNumId", wordNumberingDefinitionId.toString(), DocxConstants.WordNamespace, DocxConstants.WordPrefix);
143
+ //
144
+ // // <w:lvl>
145
+ // for (const numDefLevel of numDef.levels) {
146
+ // //<w:lvl w:ilvl="0" w:tplc="041D0019">
147
+ // // <w:start w:val="1"/>
148
+ // // <w:numFmt w:val="lowerLetter"/>
149
+ // // <w:lvlText w:val="%1."/>
150
+ // // <w:lvlJc w:val="left"/>
151
+ // // <w:pPr>
152
+ // // <w:ind w:left="1440" w:hanging="360"/>
153
+ // // </w:pPr>
154
+ // //</w:lvl>
155
+ // numberingDoc.XMLWriter.WriteStartElement("lvl", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
156
+ // numberingDoc.XMLWriter.WriteAttributeString("ilvl", numDefLevel.level.toString(), DocxConstants.WordNamespace, DocxConstants.WordPrefix);
157
+ // numberingDoc.XMLWriter.WriteStartElement("start", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
158
+ // numberingDoc.XMLWriter.WriteAttributeString("val", numDefLevel.start.toString(), DocxConstants.WordNamespace, DocxConstants.WordPrefix);
159
+ // numberingDoc.XMLWriter.WriteEndElement();
160
+ // const numFmt = convertNumFormat(numDefLevel.format);
161
+ // numberingDoc.XMLWriter.WriteStartElement("numFmt", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
162
+ // numberingDoc.XMLWriter.WriteAttributeString("val", numFmt, DocxConstants.WordNamespace, DocxConstants.WordPrefix);
163
+ // numberingDoc.XMLWriter.WriteEndElement();
164
+ // numberingDoc.XMLWriter.WriteStartElement("lvlText", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
165
+ // numberingDoc.XMLWriter.WriteAttributeString("val", numDefLevel.levelText, DocxConstants.WordNamespace, DocxConstants.WordPrefix);
166
+ // numberingDoc.XMLWriter.WriteEndElement();
167
+ //
168
+ // numberingDoc.XMLWriter.WriteStartElement("lvlJc", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
169
+ // numberingDoc.XMLWriter.WriteAttributeString("val", "left", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
170
+ // numberingDoc.XMLWriter.WriteEndElement();
171
+ //
172
+ // numberingDoc.XMLWriter.WriteStartElement("pPr", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
173
+ // numberingDoc.XMLWriter.WriteStartElement("ind", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
174
+ // numberingDoc.XMLWriter.WriteAttributeString("left", numDefLevel.levelIndention.twips.toString(), DocxConstants.WordNamespace, DocxConstants.WordPrefix);
175
+ // numberingDoc.XMLWriter.WriteAttributeString("hanging", "800", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
176
+ // numberingDoc.XMLWriter.WriteEndElement();
177
+ // numberingDoc.XMLWriter.WriteEndElement();
178
+ //
179
+ // //<w:rPr>
180
+ // //var effectiveStyle = numDefLevel.GetEffectiveTextStyle(abstractDoc.Styles);
181
+ // const textProperties = numDefLevel.textProperties;
182
+ // if (textProperties != null) {
183
+ // numberingDoc.XMLWriter.WriteStartElement("rPr", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
184
+ // // <w:b/>
185
+ // if (textProperties.bold)
186
+ // numberingDoc.XMLWriter.WriteStartElement("b", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
187
+ // numberingDoc.XMLWriter.WriteEndElement();
188
+ // numberingDoc.XMLWriter.WriteEndElement();
189
+ // // TODO: Support more of the TextStyle...
190
+ // }
191
+ //
192
+ // numberingDoc.XMLWriter.WriteEndElement();
193
+ // }
194
+ // state.numberingDefinitionIdTranslation.set(key, wordNumberingDefinitionId++);
195
+ // }
196
+ //
197
+ // numberingDoc.XMLWriter.WriteEndElement(); // abstractNum
198
+ //
199
+ // let wordNumberingId: number = 1;
200
+ // for (const key of Object.keys(abstractDoc.numberings)) {
201
+ // const value = abstractDoc.numberings[key];
202
+ // numberingDoc.XMLWriter.WriteStartElement("num", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
203
+ // numberingDoc.XMLWriter.WriteAttributeString("numId", wordNumberingId.toString(), DocxConstants.WordNamespace, DocxConstants.WordPrefix);
204
+ // numberingDoc.XMLWriter.WriteStartElement("abstractNumId", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
205
+ // const wordDefinitionId = state.numberingDefinitionIdTranslation.get(value.definitionId) as number;
206
+ // numberingDoc.XMLWriter.WriteAttributeString("val", wordDefinitionId.toString(), DocxConstants.WordNamespace, DocxConstants.WordPrefix);
207
+ // numberingDoc.XMLWriter.WriteEndElement();
208
+ // numberingDoc.XMLWriter.WriteEndElement();
209
+ // state.numberingIdTranslation.set(key, wordNumberingId++);
210
+ // }
211
+ // numberingDoc.XMLWriter.WriteEndElement();
212
+ // const refid = GetNewReferenceId(state);
213
+ // mainDoc.references.AddReference(refid, numberingDoc.filePath + numberingDoc.fileName,
214
+ // DocxConstants.NumberingNamespace);
215
+ // //mainDoc.references.AddReference2("rId1", numberingDoc.FileName, DocxConstants.NumberingNamespace);
216
+ //
217
+ // addDocumentToArchive(zipFiles, numberingDoc, contentTypesDoc, true);
218
+ // }
219
+ //
220
+ //
221
+ // //<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
222
+ // //<w:numbering xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:w15="http://schemas.microsoft.com/office/word/2012/wordml" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape" mc:Ignorable="w14 w15 wp14">
223
+ // // <w:abstractNum w:abstractNumId="0">
224
+ // // <w:nsid w:val="00283020"/>
225
+ // // <w:multiLevelType w:val="hybridMultilevel"/>
226
+ // // <w:tmpl w:val="D6702D88"/>
227
+ // // <w:lvl w:ilvl="0" w:tplc="041D0019">
228
+ // // <w:start w:val="1"/>
229
+ // // <w:numFmt w:val="lowerLetter"/>
230
+ // // <w:lvlText w:val="%1."/>
231
+ // // <w:lvlJc w:val="left"/>
232
+ // // <w:pPr>
233
+ // // <w:ind w:left="1440" w:hanging="360"/>
234
+ // // </w:pPr>
235
+ // // </w:lvl>
236
+ // // <w:lvl w:ilvl="1" w:tplc="041D0019">
237
+ // // <w:start w:val="1"/>
238
+ // // <w:numFmt w:val="lowerLetter"/>
239
+ // // <w:lvlText w:val="%2."/>
240
+ // // <w:lvlJc w:val="left"/>
241
+ // // <w:pPr>
242
+ // // <w:ind w:left="2160" w:hanging="360"/>
243
+ // // </w:pPr>
244
+ // // </w:lvl>
245
+ // // <w:lvl w:ilvl="2" w:tplc="041D001B" w:tentative="1">
246
+ // // <w:start w:val="1"/>
247
+ // // <w:numFmt w:val="lowerRoman"/>
248
+ // // <w:lvlText w:val="%3."/>
249
+ // // <w:lvlJc w:val="right"/>
250
+ // // <w:pPr>
251
+ // // <w:ind w:left="2880" w:hanging="180"/>
252
+ // // </w:pPr>
253
+ // // </w:lvl>
254
+ // // </w:abstractNum>
255
+ // // <w:num w:numId="2">
256
+ // // <w:abstractNumId w:val="0"/>
257
+ // // </w:num>
258
+ // //</w:numbering>
259
+ //
260
+ // let lastMasterPage: MasterPage.MasterPage | null = null;
261
+ // let currentHeader: DocumentContainer | null = null;
262
+ // let lastHeader: DocumentContainer | null = null;
263
+ // let pages = 0;
264
+ // for (const section of abstractDoc.children) {
265
+ // if (section.page.header != null && section.page.header.length > 0) {
266
+ // lastHeader = currentHeader;
267
+ //
268
+ // currentHeader = new DocumentContainer();
269
+ // const headerXmlWriter = currentHeader.XMLWriter;
270
+ // headerXmlWriter.WriteStartDocument(true);
271
+ // headerXmlWriter.WriteStartElement("hdr", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
272
+ // const header = section.page.header;
273
+ // for (const paragraph of header) {
274
+ // addBaseParagraphDocX(abstractDoc, headerXmlWriter, zipFiles, currentHeader, contentTypesDoc, paragraph,
275
+ // false, state.imageHash, state.imageContentTypesAdded, () => GetNewReferenceId(state), state.numberingIdTranslation);
276
+ // }
277
+ //
278
+ // headerXmlWriter.WriteEndElement();
279
+ //
280
+ // const refid = GetNewReferenceId(state);
281
+ // currentHeader.refId = refid;
282
+ // currentHeader.filePath = DocxConstants.DocumentPath;
283
+ // currentHeader.fileName = "Header_" + refid + ".xml";
284
+ // currentHeader.contentType = DocxConstants.HeaderContentType;
285
+ // mainDoc.references.AddReference(refid, currentHeader.filePath + currentHeader.fileName,
286
+ // DocxConstants.HeaderNamespace);
287
+ //
288
+ // addDocumentToArchive(zipFiles, currentHeader, contentTypesDoc, true);
289
+ // }
290
+ // else {
291
+ // lastHeader = currentHeader;
292
+ //
293
+ // currentHeader = new DocumentContainer();
294
+ // const headerXmlWriter = currentHeader.XMLWriter;
295
+ // headerXmlWriter.WriteStartDocument(true);
296
+ //
297
+ // headerXmlWriter.WriteStartElement("hdr", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
298
+ // headerXmlWriter.WriteEndElement();
299
+ //
300
+ // const refid = GetNewReferenceId(state);
301
+ // currentHeader.refId = refid;
302
+ // currentHeader.filePath = DocxConstants.DocumentPath;
303
+ // currentHeader.fileName = "Header_" + refid + ".xml";
304
+ // currentHeader.contentType = DocxConstants.HeaderContentType;
305
+ // mainDoc.references.AddReference(refid, currentHeader.filePath + currentHeader.fileName,
306
+ // DocxConstants.HeaderNamespace);
307
+ //
308
+ // addDocumentToArchive(zipFiles, currentHeader, contentTypesDoc, true);
309
+ // }
310
+ //
311
+ // if (lastMasterPage != null) {
312
+ // insertPageSettingsParagraph(mainDoc.XMLWriter, lastMasterPage, lastHeader as DocumentContainer);
313
+ // pages++;
314
+ // }
315
+ //
316
+ // lastMasterPage = section.page;
317
+ //
318
+ // for (const paragraph of section.children)
319
+ // addBaseParagraphDocX(abstractDoc, mainDoc.XMLWriter, zipFiles, mainDoc, contentTypesDoc, paragraph, false,
320
+ // state.imageHash, state.imageContentTypesAdded, () => GetNewReferenceId(state), state.numberingIdTranslation);
321
+ // }
322
+ //
323
+ // if (lastMasterPage != null) {
324
+ // lastHeader = currentHeader;
325
+ // insertPageSettings(mainDoc.XMLWriter, lastMasterPage, lastHeader as DocumentContainer);
326
+ // }
327
+ //
328
+ // if (mainDoc.XMLWriter != null) {
329
+ // mainDoc.XMLWriter.WriteEndElement();
330
+ // mainDoc.XMLWriter.WriteEndElement();
331
+ // mainDoc.XMLWriter.Flush();
332
+ // addDocumentToArchive(zipFiles, mainDoc, contentTypesDoc, false);
333
+ // addSupportFilesContents(zipFiles, contentTypesDoc);
334
+ // }
335
+ //
336
+ // return zipFiles;
337
+ // // // Write the zip
338
+ // // const zipBytes = this._zipService.CreateZipFile(zipFiles);
339
+ // // resultStream.Write(zipBytes, 0, zipBytes.length);
340
+ // }
341
+ //
342
+ // function addBaseParagraphDocX(doc: AbstractDoc.AbstractDoc,
343
+ // xmlWriter: XmlWriter,
344
+ // zip: ZipMap,
345
+ // currentDocument: DocumentContainer,
346
+ // contentTypesDoc: DocumentContainer,
347
+ // newSectionElement: SectionElement.SectionElement,
348
+ // inTable: boolean,
349
+ // imageHash: Map<string, any>, imageContentTypesAdded: Array<string>,
350
+ // getNewReferenceId: GetNewReferenceId,
351
+ // numberingIdTranslation: Map<string, number>): void {
352
+ //
353
+ // if (!newSectionElement) {
354
+ // insertEmptyParagraph(xmlWriter);
355
+ // return;
356
+ // }
357
+ //
358
+ // switch (newSectionElement.type) {
359
+ // case "Table":
360
+ // insertTable(doc, xmlWriter, zip, currentDocument, contentTypesDoc, newSectionElement,
361
+ // imageHash, imageContentTypesAdded, getNewReferenceId, numberingIdTranslation);
362
+ // // Om man lägger in en tabell i en tabell så måste man lägga till en tom paragraf under...
363
+ // if (inTable)
364
+ // insertEmptyParagraph(xmlWriter);
365
+ // return;
366
+ // case "Paragraph":
367
+ // insertParagraph(doc, xmlWriter, zip, currentDocument, contentTypesDoc, newSectionElement,
368
+ // imageHash, imageContentTypesAdded, getNewReferenceId, numberingIdTranslation);
369
+ // return;
370
+ // case "KeepTogether":
371
+ // for (const sectionElement of newSectionElement.children)
372
+ // addBaseParagraphDocX(doc, xmlWriter, zip, currentDocument, contentTypesDoc, sectionElement, inTable,
373
+ // imageHash, imageContentTypesAdded, getNewReferenceId, numberingIdTranslation);
374
+ // return;
375
+ // }
376
+ //
377
+ // throw new Error("The type has not been implemented in printer");
378
+ // }
379
+ //
380
+ // function insertTable(doc: AbstractDoc.AbstractDoc, xmlWriter: XmlWriter, zip: ZipMap,
381
+ // currentDocument: DocumentContainer,
382
+ // contentTypesDoc: DocumentContainer, tPara: Table.Table,
383
+ // imageHash: Map<string, any>, imageContentTypesAdded: Array<string>,
384
+ // getNewReferenceId: GetNewReferenceId,
385
+ // numberingIdTranslation: Map<string, number>): void {
386
+ //
387
+ // //var xml = doc.ToXml();
388
+ //
389
+ // xmlWriter.WriteStartElement("tbl", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
390
+ // xmlWriter.WriteStartElement("tblPr", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
391
+ // xmlWriter.WriteStartElement("tblW", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
392
+ // xmlWriter.WriteAttributeString("w", "0", DocxConstants.WordNamespace);
393
+ // xmlWriter.WriteAttributeString("type", "auto", DocxConstants.WordNamespace);
394
+ // xmlWriter.WriteEndElement();
395
+ // xmlWriter.WriteStartElement("tblLayout", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
396
+ // xmlWriter.WriteAttributeString("type", "fixed", DocxConstants.WordNamespace);
397
+ // xmlWriter.WriteEndElement();
398
+ //
399
+ // xmlWriter.WriteEndElement();
400
+ // xmlWriter.WriteStartElement("tblGrid", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
401
+ // for (const w of tPara.columnWidths) {
402
+ // xmlWriter.WriteStartElement("gridCol", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
403
+ // xmlWriter.WriteAttributeString("w", ((w * DocxConstants.PointOoXmlFactor)).toString(), DocxConstants.WordNamespace);
404
+ // xmlWriter.WriteEndElement();
405
+ // }
406
+ // xmlWriter.WriteEndElement();
407
+ //
408
+ // for (let r = 0; r <= Table.nrOfRows(tPara) - 1; r++) {
409
+ // xmlWriter.WriteStartElement("tr", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
410
+ // xmlWriter.WriteStartElement("trPr", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
411
+ //
412
+ // if (!isNaN(tPara.children[r].height)) {
413
+ // xmlWriter.WriteStartElement("trHeight", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
414
+ // xmlWriter.WriteAttributeString("val", ((tPara.children[r].height * DocxConstants.PointOoXmlFactor)).toString(), DocxConstants.WordNamespace);
415
+ // xmlWriter.WriteAttributeString("type", "atLeast", DocxConstants.WordNamespace);
416
+ // xmlWriter.WriteEndElement();
417
+ // }
418
+ // xmlWriter.WriteStartElement("cantSplit", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
419
+ // xmlWriter.WriteEndElement();
420
+ // xmlWriter.WriteEndElement();
421
+ //
422
+ // let c = 0;
423
+ // let tc = 0;
424
+ // while (c < tPara.columnWidths.length) {
425
+ // //var ptc = tPara.GetCell(r, tc);
426
+ // let ptc = getCell(/*doc,*/ tPara, r, tc) as TableCell.TableCell;
427
+ // let effectiveCellProps = TableCell.getEffectiveTableCellProperties(/*doc.styles,*/ tPara, ptc);
428
+ //
429
+ // // let effectiveTableProps = Table.getEffectiveTableProperties(doc.styles, tPara);
430
+ //
431
+ // //if (effectiveTableProps.BorderThickness.GetValueOrDefault(0) > double.Epsilon)
432
+ // //{
433
+ // //if (effectiveCellProps.Borders.Bottom == null)
434
+ // // effectiveCellProps.Borders.Bottom = effectiveTableProps.BorderThickness;
435
+ // //if (effectiveCellProps.Borders.Top == null)
436
+ // // effectiveCellProps.Borders.Top = effectiveTableProps.BorderThickness;
437
+ // //if (effectiveCellProps.Borders.Left == null)
438
+ // // effectiveCellProps.Borders.Left = effectiveTableProps.BorderThickness;
439
+ // //if (effectiveCellProps.Borders.Right == null)
440
+ // // effectiveCellProps.Borders.Right = effectiveTableProps.BorderThickness;
441
+ // //}
442
+ //
443
+ // xmlWriter.WriteStartElement("tc", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
444
+ // xmlWriter.WriteStartElement("tcPr", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
445
+ // if (effectiveCellProps.background && effectiveCellProps.background.a > 0) {
446
+ // xmlWriter.WriteStartElement("shd", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
447
+ // xmlWriter.WriteAttributeString("val", "clear", DocxConstants.WordNamespace);
448
+ // xmlWriter.WriteAttributeString("color", "auto", DocxConstants.WordNamespace);
449
+ // xmlWriter.WriteAttributeString("fill", Color.toString6Hex(effectiveCellProps.background), DocxConstants.WordNamespace);
450
+ // xmlWriter.WriteEndElement();
451
+ // }
452
+ //
453
+ // xmlWriter.WriteStartElement("gridSpan", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
454
+ // xmlWriter.WriteAttributeString("val", ptc.columnSpan.toString(), DocxConstants.WordNamespace);
455
+ // xmlWriter.WriteEndElement();
456
+ // xmlWriter.WriteStartElement("tcBorders", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
457
+ // if (effectiveCellProps) {
458
+ // if (effectiveCellProps.borders.bottom || 0 > 0)
459
+ // addBordersToCell(xmlWriter, effectiveCellProps.borders.bottom as number, "bottom");
460
+ // if (effectiveCellProps.borders.left || 0 > 0)
461
+ // addBordersToCell(xmlWriter, effectiveCellProps.borders.left as number, "left");
462
+ // if (effectiveCellProps.borders.top || 0 > 0)
463
+ // addBordersToCell(xmlWriter, effectiveCellProps.borders.top as number, "top");
464
+ // if (effectiveCellProps.borders.right || 0 > 0)
465
+ // addBordersToCell(xmlWriter, effectiveCellProps.borders.right as number, "right");
466
+ // }
467
+ // xmlWriter.WriteEndElement();
468
+ //
469
+ // xmlWriter.WriteStartElement("tcMar", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
470
+ // let mTop = 0;
471
+ // let mBottom = 0;
472
+ // let mLeft = 0;
473
+ // let mRight = 0;
474
+ //
475
+ // if (effectiveCellProps.padding.top)
476
+ // mTop = effectiveCellProps.padding.top;
477
+ // if (effectiveCellProps.padding.bottom)
478
+ // mBottom = effectiveCellProps.padding.bottom;
479
+ // if (effectiveCellProps.padding.left)
480
+ // mLeft = effectiveCellProps.padding.left;
481
+ // if (effectiveCellProps.padding.right)
482
+ // mRight = effectiveCellProps.padding.right;
483
+ //
484
+ // xmlWriter.WriteStartElement("top", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
485
+ // xmlWriter.WriteAttributeString("w", mTop.toString(), DocxConstants.WordNamespace);
486
+ // xmlWriter.WriteAttributeString("type", "dxa", DocxConstants.WordNamespace);
487
+ // xmlWriter.WriteEndElement();
488
+ // xmlWriter.WriteStartElement("bottom", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
489
+ // xmlWriter.WriteAttributeString("w", mBottom.toString(), DocxConstants.WordNamespace);
490
+ // xmlWriter.WriteAttributeString("type", "dxa", DocxConstants.WordNamespace);
491
+ // xmlWriter.WriteEndElement();
492
+ // xmlWriter.WriteStartElement("right", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
493
+ // xmlWriter.WriteAttributeString("w", mRight.toString(), DocxConstants.WordNamespace);
494
+ // xmlWriter.WriteAttributeString("type", "dxa", DocxConstants.WordNamespace);
495
+ // xmlWriter.WriteEndElement();
496
+ // xmlWriter.WriteStartElement("left", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
497
+ // xmlWriter.WriteAttributeString("w", mLeft.toString(), DocxConstants.WordNamespace);
498
+ // xmlWriter.WriteAttributeString("type", "dxa", DocxConstants.WordNamespace);
499
+ // xmlWriter.WriteEndElement();
500
+ // xmlWriter.WriteEndElement();
501
+ // xmlWriter.WriteEndElement();
502
+ //
503
+ // if (ptc.children.length == 0) {
504
+ // insertEmptyParagraph(xmlWriter);
505
+ // }
506
+ // else {
507
+ // for (const bp of ptc.children) {
508
+ // // TODO: Detta kan ge lite konstiga resultat om man har en tabell först och sedan text...
509
+ // // Borde kolla om det bara finns en och det är en tabell eller om det finns två men båra är tabeller osv.
510
+ // addBaseParagraphDocX(doc, xmlWriter, zip, currentDocument, contentTypesDoc, bp, true,
511
+ // imageHash, imageContentTypesAdded, getNewReferenceId, numberingIdTranslation);
512
+ // }
513
+ // }
514
+ //
515
+ // xmlWriter.WriteEndElement();
516
+ // c += ptc.columnSpan;
517
+ // tc += 1;
518
+ // }
519
+ // xmlWriter.WriteEndElement();
520
+ // }
521
+ //
522
+ // xmlWriter.WriteEndElement();
523
+ // }
524
+ //
525
+ // function insertParagraph(doc: AbstractDoc.AbstractDoc, xmlWriter: XmlWriter, zip: ZipMap,
526
+ // currentDocument: DocumentContainer, contentTypesDoc: DocumentContainer, para: Paragraph.Paragraph,
527
+ // imageHash: Map<string, any>, imageContentTypesAdded: Array<string>,
528
+ // getNewReferenceId: GetNewReferenceId,
529
+ // numberingIdTranslation: Map<string, number>): void {
530
+ //
531
+ // const effectiveParaProps = Paragraph.getEffectiveParagraphProperties(doc.styles, para);
532
+ //
533
+ // xmlWriter.WriteStartElement("p", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
534
+ // xmlWriter.WriteStartElement("pPr", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
535
+ // xmlWriter.WriteStartElement("wordWrap", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
536
+ // xmlWriter.WriteAttributeString("val", "on", DocxConstants.WordNamespace);
537
+ // xmlWriter.WriteEndElement();
538
+ //
539
+ // xmlWriter.WriteStartElement("spacing", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
540
+ // if (effectiveParaProps.spacingBefore)
541
+ // xmlWriter.WriteAttributeString("before", effectiveParaProps.spacingBefore.twips.toString(), DocxConstants.WordNamespace);
542
+ // if (effectiveParaProps.spacingAfter)
543
+ // xmlWriter.WriteAttributeString("after", effectiveParaProps.spacingAfter.twips.toString(), DocxConstants.WordNamespace);
544
+ // xmlWriter.WriteEndElement();
545
+ //
546
+ // if (para.numbering != null) {
547
+ // xmlWriter.WriteStartElement("numPr", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
548
+ // xmlWriter.WriteStartElement("ilvl", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
549
+ // xmlWriter.WriteAttributeString("val", para.numbering.level.toString(), DocxConstants.WordNamespace);
550
+ // xmlWriter.WriteEndElement();
551
+ // xmlWriter.WriteStartElement("numId", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
552
+ // const wordNumberingId = getWordNumberingId(para.numbering.numberingId, numberingIdTranslation);
553
+ // xmlWriter.WriteAttributeString("val", wordNumberingId.toString(), DocxConstants.WordNamespace);
554
+ // xmlWriter.WriteEndElement();
555
+ // xmlWriter.WriteEndElement();
556
+ // }
557
+ //
558
+ // xmlWriter.WriteElementString("keepLines", "", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
559
+ // //var effectiveStyle = para.GetEffectiveStyle(doc.Styles);
560
+ // insertJc(xmlWriter, effectiveParaProps.alignment);
561
+ // xmlWriter.WriteEndElement();
562
+ //
563
+ // for (const comp of para.children) {
564
+ // insertComponent(doc, xmlWriter, zip, currentDocument, contentTypesDoc, comp,
565
+ // imageHash, imageContentTypesAdded, getNewReferenceId);
566
+ // }
567
+ // xmlWriter.WriteEndElement();
568
+ // }
569
+ //
570
+ // function getWordNumberingId(numberingId: string, numberingIdTranslation: Map<string, number>): number {
571
+ // return numberingIdTranslation.get(numberingId) as number;
572
+ // }
573
+ //
574
+ //
575
+ // function insertComponent(doc: AbstractDoc.AbstractDoc, xmlWriter: XmlWriter, zip: ZipMap,
576
+ // currentDocument: DocumentContainer, contentTypesDoc: DocumentContainer, bc: Atom.Atom,
577
+ // imageHash: Map<string, any>, imageContentTypesAdded: Array<string>,
578
+ // getNewReferenceId: GetNewReferenceId): void {
579
+ //
580
+ // switch (bc.type) {
581
+ // case "TextField":
582
+ // insertFieldComponent(doc, xmlWriter, bc);
583
+ // break;
584
+ // case "TextRun":
585
+ // const effectiveTextProps = TextRun.getEffectiveTextProperties(doc.styles, bc);
586
+ // insertTextComponent(/*doc,*/ xmlWriter, bc, effectiveTextProps);
587
+ // break;
588
+ // case "Image":
589
+ // insertImageComponent(xmlWriter, zip, currentDocument, contentTypesDoc, bc, imageHash,
590
+ // imageContentTypesAdded, getNewReferenceId);
591
+ // break;
592
+ // default:
593
+ // throw new Error("Contents of job is not implemented in printer");
594
+ // }
595
+ //
596
+ // }
597
+ //
598
+ //
599
+ // function insertImageComponent(xmlWriter: XmlWriter, zip: ZipMap,
600
+ // currentDocument: DocumentContainer, contentTypesDoc: DocumentContainer, image: Image.Image,
601
+ // imageHash: Map<string, any>, imageContentTypesAdded: Array<string>,
602
+ // getNewReferenceId: GetNewReferenceId): void {
603
+ //
604
+ // const renderedImageFormat = "PNG";
605
+ //
606
+ // // Lägg till referens
607
+ // if (!imageHash.has(image.imageResource.id.toString())) {
608
+ // const refId = getNewReferenceId();
609
+ // addImageReference2(zip, contentTypesDoc, image, renderedImageFormat, imageContentTypesAdded, imageHash, refId);
610
+ // }
611
+ //
612
+ // //Lägg till bilden i dokumentet
613
+ // const rid = imageHash.get(image.imageResource.id.toString()).toString();
614
+ //
615
+ // //Behöver komma åt dokumentet som bilden tillhör
616
+ // const filePath = DocxConstants.ImagePath + "image_" + rid + "." + renderedImageFormat;
617
+ // currentDocument.references.AddReference(rid, filePath, DocxConstants.ImageNamespace);
618
+ //
619
+ // //Lägg till i MainPart
620
+ // //Lägg till bilden i en run
621
+ // xmlWriter.WriteStartElement("r", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
622
+ // insertImage(xmlWriter, rid, image.width, image.height);
623
+ // xmlWriter.WriteEndElement();
624
+ // //}
625
+ // }
626
+ //
627
+ // function convertNumFormat(format: NumberingFormat.NumberingFormat): string {
628
+ // let wordNumFmt: string = "decimal";
629
+ // switch (format) {
630
+ // case "Decimal":
631
+ // wordNumFmt = "decimal";
632
+ // break;
633
+ // case "DecimalZero":
634
+ // wordNumFmt = "decimalZero";
635
+ // break;
636
+ // case "LowerLetter":
637
+ // wordNumFmt = "lowerLetter";
638
+ // break;
639
+ // case "LowerRoman":
640
+ // wordNumFmt = "lowerRoman";
641
+ // break;
642
+ // case "UpperLetter":
643
+ // wordNumFmt = "upperLetter";
644
+ // break;
645
+ // case "UpperRoman":
646
+ // wordNumFmt = "upperRoman";
647
+ // break;
648
+ // }
649
+ // return wordNumFmt;
650
+ // }
651
+ //
652
+ //
653
+ // function addImageReference2(zip: ZipMap, contentTypesDoc: DocumentContainer,
654
+ // image: Image.Image, renderedImageFormat: string, imageContentTypesAdded: Array<string>,
655
+ // imageHash: Map<string, any>, refId: string): void {
656
+ //
657
+ // const filePath = DocxConstants.ImagePath + "image_" + refId + "." + renderedImageFormat;
658
+ //
659
+ // const mimeType = getMimeType(renderedImageFormat);
660
+ // if (imageContentTypesAdded.indexOf(mimeType) === -1) {
661
+ // insertImageContentType(renderedImageFormat, mimeType, contentTypesDoc);
662
+ // imageContentTypesAdded.push(mimeType);
663
+ // }
664
+ //
665
+ // addImageToArchive(zip, filePath, image.imageResource.abstractImage, image.imageResource.renderScale, "PNG");
666
+ //
667
+ // imageHash.set(image.imageResource.id.toString(), refId);
668
+ // }
669
+ //
670
+ // function addSupportFilesContents(zip: ZipMap, contentTypesDoc: DocumentContainer): void {
671
+ // addHeadRef(zip);
672
+ // addContentTypes(zip, contentTypesDoc);
673
+ // }
674
+ //
675
+ // function addContentTypes(zip: ZipMap, contentTypesDoc: DocumentContainer): void {
676
+ // insertDefaultContentTypes(contentTypesDoc);
677
+ // contentTypesDoc.XMLWriter.WriteEndElement(); //Avslutar types
678
+ // addDocumentToArchive(zip, contentTypesDoc, contentTypesDoc, false);
679
+ // }
680
+ //
681
+ //
682
+ // function insertPageSettingsParagraph(xmlWriter: XmlWriter, ps: MasterPage.MasterPage, lastHeader: DocumentContainer): void {
683
+ // xmlWriter.WriteStartElement("p", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
684
+ // xmlWriter.WriteStartElement("pPr", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
685
+ // insertPageSettings(xmlWriter, ps, lastHeader);
686
+ // xmlWriter.WriteEndElement();
687
+ // xmlWriter.WriteEndElement();
688
+ // }
689
+ //
690
+ // function insertPageSettings(xmlWriter: XmlWriter, ps: MasterPage.MasterPage, lastHeader: DocumentContainer): void {
691
+ // xmlWriter.WriteStartElement("sectPr", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
692
+ // xmlWriter.WriteStartElement("footnotePr", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
693
+ // xmlWriter.WriteStartElement("pos", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
694
+ // xmlWriter.WriteAttributeString("val", "beneathText", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
695
+ // xmlWriter.WriteEndElement();
696
+ // xmlWriter.WriteEndElement();
697
+ // if (lastHeader != null) {
698
+ // xmlWriter.WriteStartElement("headerReference", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
699
+ // xmlWriter.WriteAttributeString("type", "default", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
700
+ // xmlWriter.WriteAttributeString("id", lastHeader.refId, DocxConstants.RelNamespace);
701
+ // xmlWriter.WriteEndElement();
702
+ // }
703
+ // xmlWriter.WriteStartElement("pgSz", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
704
+ // xmlWriter.WriteAttributeString("w", (PageStyle.getWidth(ps.style) * DocxConstants.PointOoXmlFactor).toString(), DocxConstants.WordNamespace, DocxConstants.WordPrefix);
705
+ // xmlWriter.WriteAttributeString("h", (PageStyle.getHeight(ps.style) * DocxConstants.PointOoXmlFactor).toString(), DocxConstants.WordNamespace, DocxConstants.WordPrefix);
706
+ // if (ps.style.orientation == "Landscape")
707
+ // xmlWriter.WriteAttributeString("orient", "landscape", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
708
+ // xmlWriter.WriteEndElement();
709
+ // xmlWriter.WriteStartElement("pgMar", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
710
+ // xmlWriter.WriteAttributeString("top", ((ps.style.margins.top * DocxConstants.PointOoXmlFactor)).toFixed(0), DocxConstants.WordNamespace, DocxConstants.WordPrefix);
711
+ // xmlWriter.WriteAttributeString("bottom", ((ps.style.margins.bottom * DocxConstants.PointOoXmlFactor)).toFixed(0), DocxConstants.WordNamespace, DocxConstants.WordPrefix);
712
+ // xmlWriter.WriteAttributeString("left", ((ps.style.margins.left * DocxConstants.PointOoXmlFactor)).toFixed(0), DocxConstants.WordNamespace, DocxConstants.WordPrefix);
713
+ // xmlWriter.WriteAttributeString("right", ((ps.style.margins.right * DocxConstants.PointOoXmlFactor)).toFixed(0), DocxConstants.WordNamespace, DocxConstants.WordPrefix);
714
+ // xmlWriter.WriteAttributeString("footer", "100", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
715
+ // xmlWriter.WriteEndElement();
716
+ // xmlWriter.WriteEndElement();
717
+ // }
718
+ //
719
+ // function insertDateComponent(doc: AbstractDoc.AbstractDoc, xmlWriter: XmlWriter, tf: TextField.TextField): void {
720
+ // xmlWriter.WriteStartElement("r", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
721
+ // //var style = fc.GetEffectiveStyle(doc.Styles) ?? ps.TextProperties;
722
+ // const textProperties = TextField.getEffectiveStyle(doc.styles, tf).textProperties;
723
+ //
724
+ // insertRunProperty(xmlWriter, textProperties);
725
+ // xmlWriter.WriteStartElement("fldChar", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
726
+ // xmlWriter.WriteAttributeString("fldCharType", "begin", DocxConstants.WordNamespace);
727
+ // xmlWriter.WriteEndElement();
728
+ // xmlWriter.WriteEndElement();
729
+ // xmlWriter.WriteStartElement("r", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
730
+ // insertRunProperty(xmlWriter, textProperties);
731
+ // xmlWriter.WriteStartElement("instrText", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
732
+ // xmlWriter.WriteAttributeString("space", "preserve", "", "xml");
733
+ // xmlWriter.WriteString(" DATE \\@YYYY/MM/DD ");
734
+ // //var fcText = new TextRun("{ DATE \\@YYYY/MM/DD }", tf.GetEffectiveStyle(doc.Styles));
735
+ // const fcText = TextRun.create({text: "{ DATE \\@YYYY/MM/DD }", textProperties: TextField.getEffectiveStyle(doc.styles, tf).textProperties});
736
+ //
737
+ // xmlWriter.WriteEndElement();
738
+ // xmlWriter.WriteEndElement();
739
+ // xmlWriter.WriteStartElement("r", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
740
+ // insertRunProperty(xmlWriter, textProperties);
741
+ // xmlWriter.WriteStartElement("fldChar", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
742
+ // xmlWriter.WriteAttributeString("fldCharType", "separate", DocxConstants.WordNamespace);
743
+ // xmlWriter.WriteEndElement();
744
+ // xmlWriter.WriteEndElement();
745
+ // const effectiveStyle = TextField.getEffectiveStyle(doc.styles, tf);
746
+ // insertTextComponent(/*doc,*/ xmlWriter, fcText, effectiveStyle.textProperties);
747
+ // xmlWriter.WriteStartElement("r", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
748
+ // insertRunProperty(xmlWriter, textProperties);
749
+ // xmlWriter.WriteStartElement("fldChar", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
750
+ // xmlWriter.WriteAttributeString("fldCharType", "end", DocxConstants.WordNamespace);
751
+ // xmlWriter.WriteEndElement();
752
+ // xmlWriter.WriteEndElement();
753
+ // }
754
+ //
755
+ //
756
+ // function insertTextComponent(/*doc: AbstractDoc, */xmlWriter: XmlWriter, tr: TextRun.TextRun, textProperties: TextProperties.TextProperties): void {
757
+ // //var effectiveStyle = tc.GetEffectiveStyle(doc.Styles);
758
+ // insertText(xmlWriter, tr.text, textProperties);
759
+ // }
760
+ //
761
+ // function escape(text: string): string {
762
+ // if (text === null || text === undefined) return "";
763
+ //
764
+ // const escapeMap: {[key: string]: string} = {
765
+ // ">": "&gt;",
766
+ // "<": "&lt;",
767
+ // "'": "&apos;",
768
+ // "\"": "&quot;",
769
+ // "&": "&amp;",
770
+ // }
771
+ //
772
+ // return text.replace(new RegExp("([&\"<>'])", "g"), (_str, item) => escapeMap[item])
773
+ // }
774
+ //
775
+ //
776
+ // function insertText(xmlWriter: XmlWriter, text: string, textProperties: TextProperties.TextProperties): void {
777
+ // xmlWriter.WriteStartElement("r", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
778
+ //
779
+ // //var style = componentStyle ?? ps.TextProperties;
780
+ // //var style = textProperties.TextProperties;
781
+ // insertRunProperty(xmlWriter, textProperties);
782
+ //
783
+ // xmlWriter.WriteStartElement("t", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
784
+ // xmlWriter.WriteAttributeString("space", "preserve", "", "xml");
785
+ // xmlWriter.WriteString(escape(text));
786
+ // xmlWriter.WriteEndElement();
787
+ // xmlWriter.WriteEndElement();
788
+ // }
789
+ //
790
+ // function insertEmptyParagraph(xmlWriter: XmlWriter): void {
791
+ // xmlWriter.WriteStartElement("p", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
792
+ // xmlWriter.WriteStartElement("pPr", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
793
+ // xmlWriter.WriteStartElement("spacing", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
794
+ // xmlWriter.WriteAttributeString("after", "0", DocxConstants.WordNamespace);
795
+ // xmlWriter.WriteEndElement();
796
+ // xmlWriter.WriteEndElement();
797
+ // xmlWriter.WriteEndElement();
798
+ // }
799
+ //
800
+ //
801
+ // function getCell(/*abstractDoc: AbstractDoc,*/ table: Table.Table, r: number, c: number): TableCell.TableCell | null {
802
+ //
803
+ // if (r >= Table.nrOfRows(table))
804
+ // return null;
805
+ //
806
+ // const row = table.children[r];
807
+ // if (c < row.children.length)
808
+ // return row.children[c];
809
+ //
810
+ // // Denna rad innehåller inte alla kolumner...
811
+ // // Kolla om något element i denna rad innehåller ett element
812
+ // let cs: TableCellProperties.TableCellProperties | undefined;
813
+ // for (const ptc of row.children) {
814
+ // if (ptc == null)
815
+ // break;
816
+ // //if (ptc.GetEffectiveStyle() != null)
817
+ // cs = TableCell.getEffectiveTableCellProperties(/*abstractDoc.styles,*/ table, ptc);
818
+ // }
819
+ // if (!cs) {
820
+ // // cs = new TableCellPropertiesBuilder().build();
821
+ // cs = TableCellProperties.create({
822
+ // borders: LayoutFoundation.create({top: 0, bottom: 0, left: 0, right: 0}),
823
+ // padding: LayoutFoundation.create({top: 0, bottom: 0, left: 0, right: 0})
824
+ // });
825
+ // }
826
+ // return TableCell.create({tableCellProperties: cs as TableCellProperties.TableCellProperties, columnSpan: 1, children: []});
827
+ // }
828
+ //
829
+ // function insertFieldComponent(doc: AbstractDoc.AbstractDoc, xmlWriter: XmlWriter, fc: TextField.TextField): void {
830
+ // switch (fc.fieldType) {
831
+ // case "Date":
832
+ // insertDateComponent(doc, xmlWriter, fc);
833
+ // break;
834
+ // case "PageNumber":
835
+ // xmlWriter.WriteStartElement("r", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
836
+ // //var style = fc.GetEffectiveStyle(doc.Styles) ?? ps.TextProperties;
837
+ // const style = TextField.getEffectiveStyle(doc.styles, fc).textProperties;
838
+ // insertRunProperty(xmlWriter, style);
839
+ // xmlWriter.WriteElementString("pgNum", "", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
840
+ // xmlWriter.WriteEndElement();
841
+ // break;
842
+ // default:
843
+ // throw new Error(`Field type '${fc.fieldType}' has not been implemented in printer`);
844
+ // }
845
+ // }
846
+ //
847
+ // function addBordersToCell(xmlWriter: XmlWriter, borderdef: number, borderLocation: string): void {
848
+ // xmlWriter.WriteStartElement(borderLocation, DocxConstants.WordNamespace, DocxConstants.WordPrefix);
849
+ // xmlWriter.WriteAttributeString("val", "single", DocxConstants.WordNamespace);
850
+ // xmlWriter.WriteAttributeString("sz", (borderdef * DocxConstants.PointOoXmlFactor).toString(), DocxConstants.WordNamespace);
851
+ // xmlWriter.WriteAttributeString("space", "0", DocxConstants.WordNamespace);
852
+ // xmlWriter.WriteAttributeString("color", "000000", DocxConstants.WordNamespace);
853
+ // xmlWriter.WriteEndElement();
854
+ // }
855
+ //
856
+ // function insertJc(xmlWriter: XmlWriter, ta: TextAlignment.TextAlignment | undefined): void {
857
+ // xmlWriter.WriteStartElement("jc", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
858
+ // if (ta == "Center")
859
+ // xmlWriter.WriteAttributeString("val", "center", DocxConstants.WordNamespace);
860
+ // else if (ta == "Start")
861
+ // xmlWriter.WriteAttributeString("val", "left", DocxConstants.WordNamespace);
862
+ // else if (ta == "End")
863
+ // xmlWriter.WriteAttributeString("val", "right", DocxConstants.WordNamespace);
864
+ // else
865
+ // xmlWriter.WriteAttributeString("val", "left", DocxConstants.WordNamespace);
866
+ // xmlWriter.WriteEndElement(); //jc
867
+ // }
868
+ //
869
+ // function insertRunProperty(xmlWriter: XmlWriter, textProperties: TextProperties.TextProperties): void {
870
+ // xmlWriter.WriteStartElement("rPr", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
871
+ // if (textProperties.subScript || textProperties.superScript) {
872
+ // xmlWriter.WriteStartElement("vertAlign", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
873
+ // xmlWriter.WriteAttributeString("val", textProperties.subScript ? "subscript" : "superscript", DocxConstants.WordNamespace);
874
+ // xmlWriter.WriteEndElement();
875
+ // }
876
+ //
877
+ // xmlWriter.WriteStartElement("rFonts", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
878
+ // xmlWriter.WriteAttributeString("ascii", "Arial", DocxConstants.WordNamespace);
879
+ // xmlWriter.WriteAttributeString("hAnsi", "Arial", DocxConstants.WordNamespace);
880
+ // xmlWriter.WriteEndElement();
881
+ // xmlWriter.WriteStartElement("sz", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
882
+ // xmlWriter.WriteAttributeString("val", ((((textProperties.fontSize) + 0.5)) * 2).toString(), DocxConstants.WordNamespace);
883
+ // xmlWriter.WriteEndElement();
884
+ // xmlWriter.WriteStartElement("szCs", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
885
+ // xmlWriter.WriteAttributeString("val", ((((textProperties.fontSize) + 0.5)) * 2).toString(), DocxConstants.WordNamespace);
886
+ // xmlWriter.WriteEndElement();
887
+ // xmlWriter.WriteStartElement("color", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
888
+ // xmlWriter.WriteAttributeString("val", textProperties.color != null ? textProperties.color.replace("#", "").substring(0, 6) : "000000", DocxConstants.WordNamespace);
889
+ // xmlWriter.WriteEndElement();
890
+ // xmlWriter.WriteStartElement("noProof", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
891
+ // xmlWriter.WriteAttributeString("val", "true", DocxConstants.WordNamespace);
892
+ // xmlWriter.WriteEndElement();
893
+ // if (textProperties.bold) {
894
+ // xmlWriter.WriteElementString("b", "", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
895
+ // xmlWriter.WriteElementString("bCs", "", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
896
+ // }
897
+ // if (textProperties.italic) {
898
+ // xmlWriter.WriteElementString("i", "", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
899
+ // xmlWriter.WriteElementString("iCs", "", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
900
+ // }
901
+ // if (textProperties.underline) {
902
+ // xmlWriter.WriteStartElement("u", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
903
+ // xmlWriter.WriteAttributeString("val", "single", DocxConstants.WordNamespace);
904
+ // xmlWriter.WriteEndElement();
905
+ // }
906
+ //
907
+ // xmlWriter.WriteStartElement("lang", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
908
+ // xmlWriter.WriteAttributeString("eastAsia", "en-US", DocxConstants.WordNamespace);
909
+ // xmlWriter.WriteEndElement();
910
+ // xmlWriter.WriteEndElement();
911
+ // }
912
+ //
913
+ //
914
+ // function insertImage(xmlWriter: XmlWriter, rid: string, width: number, height: number): void {
915
+ // xmlWriter.WriteStartElement("pict", DocxConstants.WordNamespace, DocxConstants.WordPrefix);
916
+ // xmlWriter.WriteStartElement("shapetype", DocxConstants.VmlNamespace, DocxConstants.VmlPrefix);
917
+ // xmlWriter.WriteAttributeString("coordsize", "21600,21600");
918
+ // xmlWriter.WriteAttributeString("spt", "75", DocxConstants.OfficeNamespace, DocxConstants.OfficePrefix);
919
+ // xmlWriter.WriteAttributeString("preferrelative", "t", DocxConstants.OfficeNamespace, DocxConstants.OfficePrefix);
920
+ // xmlWriter.WriteAttributeString("path", "m@4@5l@4@11@9@11@9@5xe");
921
+ // xmlWriter.WriteAttributeString("filled", "f");
922
+ // xmlWriter.WriteAttributeString("stroked", "f");
923
+ // xmlWriter.WriteStartElement("stroke", DocxConstants.VmlNamespace, DocxConstants.VmlPrefix);
924
+ // xmlWriter.WriteAttributeString("joinstyle", "miter");
925
+ // xmlWriter.WriteEndElement();
926
+ // xmlWriter.WriteStartElement("formulas", DocxConstants.VmlNamespace, DocxConstants.VmlPrefix);
927
+ // xmlWriter.WriteStartElement("f", DocxConstants.VmlNamespace, DocxConstants.VmlPrefix);
928
+ // xmlWriter.WriteAttributeString("eqn", "if lineDrawn pixelLineWidth 0");
929
+ // xmlWriter.WriteEndElement();
930
+ // xmlWriter.WriteStartElement("f", DocxConstants.VmlNamespace, DocxConstants.VmlPrefix);
931
+ // xmlWriter.WriteAttributeString("eqn", "sum @0 1 0");
932
+ // xmlWriter.WriteEndElement();
933
+ // xmlWriter.WriteStartElement("f", DocxConstants.VmlNamespace, DocxConstants.VmlPrefix);
934
+ // xmlWriter.WriteAttributeString("eqn", "sum 0 0 @1");
935
+ // xmlWriter.WriteEndElement();
936
+ // xmlWriter.WriteStartElement("f", DocxConstants.VmlNamespace, DocxConstants.VmlPrefix);
937
+ // xmlWriter.WriteAttributeString("eqn", "prod @2 1 2");
938
+ // xmlWriter.WriteEndElement();
939
+ // xmlWriter.WriteStartElement("f", DocxConstants.VmlNamespace, DocxConstants.VmlPrefix);
940
+ // xmlWriter.WriteAttributeString("eqn", "prod @3 21600 pixelWidth");
941
+ // xmlWriter.WriteEndElement();
942
+ // xmlWriter.WriteStartElement("f", DocxConstants.VmlNamespace, DocxConstants.VmlPrefix);
943
+ // xmlWriter.WriteAttributeString("eqn", "prod @3 21600 pixelHeight");
944
+ // xmlWriter.WriteEndElement();
945
+ // xmlWriter.WriteStartElement("f", DocxConstants.VmlNamespace, DocxConstants.VmlPrefix);
946
+ // xmlWriter.WriteAttributeString("eqn", "sum @0 0 1");
947
+ // xmlWriter.WriteEndElement();
948
+ // xmlWriter.WriteStartElement("f", DocxConstants.VmlNamespace, DocxConstants.VmlPrefix);
949
+ // xmlWriter.WriteAttributeString("eqn", "prod @6 1 2");
950
+ // xmlWriter.WriteEndElement();
951
+ // xmlWriter.WriteStartElement("f", DocxConstants.VmlNamespace, DocxConstants.VmlPrefix);
952
+ // xmlWriter.WriteAttributeString("eqn", "prod @7 21600 pixelWidth");
953
+ // xmlWriter.WriteEndElement();
954
+ // xmlWriter.WriteStartElement("f", DocxConstants.VmlNamespace, DocxConstants.VmlPrefix);
955
+ // xmlWriter.WriteAttributeString("eqn", "sum @8 21600 0");
956
+ // xmlWriter.WriteEndElement();
957
+ // xmlWriter.WriteStartElement("f", DocxConstants.VmlNamespace, DocxConstants.VmlPrefix);
958
+ // xmlWriter.WriteAttributeString("eqn", "prod @7 21600 pixelHeight");
959
+ // xmlWriter.WriteEndElement();
960
+ // xmlWriter.WriteStartElement("f", DocxConstants.VmlNamespace, DocxConstants.VmlPrefix);
961
+ // xmlWriter.WriteAttributeString("eqn", "sum @10 21600 0");
962
+ // xmlWriter.WriteEndElement();
963
+ // xmlWriter.WriteEndElement();
964
+ // xmlWriter.WriteStartElement("path", DocxConstants.VmlNamespace, DocxConstants.VmlPrefix);
965
+ // xmlWriter.WriteAttributeString("extrusionok", "f", DocxConstants.OfficeNamespace, DocxConstants.OfficePrefix);
966
+ // xmlWriter.WriteAttributeString("gradientshapeok", "t");
967
+ // xmlWriter.WriteAttributeString("connecttype", "rect", DocxConstants.OfficeNamespace, DocxConstants.OfficePrefix);
968
+ // xmlWriter.WriteEndElement();
969
+ // xmlWriter.WriteStartElement("lock", DocxConstants.OfficeNamespace, DocxConstants.OfficePrefix);
970
+ // xmlWriter.WriteAttributeString("ext", "edit", DocxConstants.VmlNamespace, DocxConstants.VmlPrefix);
971
+ // xmlWriter.WriteAttributeString("aspectratio", "t");
972
+ // xmlWriter.WriteEndElement();
973
+ // xmlWriter.WriteEndElement();
974
+ //
975
+ // xmlWriter.WriteStartElement("shape", DocxConstants.VmlNamespace, DocxConstants.VmlPrefix);
976
+ // xmlWriter.WriteAttributeString("style",
977
+ // stringFormat(DocxConstants.ImageStyle, width.toFixed(2), height.toFixed(2))
978
+ // );
979
+ // xmlWriter.WriteStartElement("imagedata", DocxConstants.VmlNamespace, DocxConstants.VmlPrefix);
980
+ // xmlWriter.WriteAttributeString("id", rid, DocxConstants.RelNamespace, DocxConstants.RelPrefix);
981
+ // xmlWriter.WriteAttributeString("title", "", DocxConstants.OfficeNamespace, DocxConstants.OfficePrefix);
982
+ // xmlWriter.WriteEndElement();
983
+ //
984
+ // xmlWriter.WriteEndElement();
985
+ // xmlWriter.WriteEndElement();
986
+ // }
987
+ //
988
+ // function stringFormat(s: string, ...rest: any[]): string {
989
+ // let result = s;
990
+ // for (let i = 0; i < rest.length; i++) {
991
+ // result = result.replace("{" + i + "}", rest[i]);
992
+ // }
993
+ // return result;
994
+ // }
995
+ //
996
+ // function insertDocumentContentType(filename: string, contentType: string, contentTypesDoc: DocumentContainer): void {
997
+ // contentTypesDoc.XMLWriter.WriteStartElement("Override");
998
+ // filename = filename.replace("\\", "/");
999
+ // if (filename.startsWith("/") == false)
1000
+ // filename = "/" + filename;
1001
+ // contentTypesDoc.XMLWriter.WriteAttributeString("PartName", filename);
1002
+ // contentTypesDoc.XMLWriter.WriteAttributeString("ContentType", contentType);
1003
+ // contentTypesDoc.XMLWriter.WriteEndElement(); //Override
1004
+ // }
1005
+ //
1006
+ // function insertImageContentType(extension: string, mimeType: string, contentTypesDoc: DocumentContainer): void {
1007
+ // contentTypesDoc.XMLWriter.WriteStartElement("Default");
1008
+ // contentTypesDoc.XMLWriter.WriteAttributeString("Extension", extension);
1009
+ // contentTypesDoc.XMLWriter.WriteAttributeString("ContentType", mimeType);
1010
+ // contentTypesDoc.XMLWriter.WriteEndElement(); //Default
1011
+ // }
1012
+ //
1013
+ // function insertDefaultContentTypes(contentTypesDoc: DocumentContainer): void {
1014
+ // contentTypesDoc.XMLWriter.WriteStartElement("Default");
1015
+ // contentTypesDoc.XMLWriter.WriteAttributeString("Extension", "xml");
1016
+ // contentTypesDoc.XMLWriter.WriteAttributeString("ContentType", DocxConstants.MainContentType);
1017
+ // contentTypesDoc.XMLWriter.WriteEndElement(); //Default
1018
+ // contentTypesDoc.XMLWriter.WriteStartElement("Default");
1019
+ // contentTypesDoc.XMLWriter.WriteAttributeString("Extension", "rels");
1020
+ // contentTypesDoc.XMLWriter.WriteAttributeString("ContentType", DocxConstants.RelationContentType);
1021
+ // contentTypesDoc.XMLWriter.WriteEndElement(); //Default
1022
+ // }
1023
+ //
1024
+ // function getMimeType(format: string): string {
1025
+ // switch (format.toLowerCase()) {
1026
+ // case "gif":
1027
+ // return "image/gif";
1028
+ // case "jpeg":
1029
+ // case "jpg":
1030
+ // return "image/jpeg";
1031
+ // case "png":
1032
+ // return "image/png";
1033
+ // case "bmp":
1034
+ // return "image/bmp";
1035
+ // default:
1036
+ // throw new Error("Unknown ImageType");
1037
+ // }
1038
+ // }
1039
+ //
1040
+ // function addHeadRef(zip: ZipMap): void {
1041
+ //
1042
+ // // const headref = new MemoryStream();
1043
+ // // const contents = Encoding.UTF8.GetBytes(DocxConstants.HeadRelXml);
1044
+ // // headref.Write(contents, 0, contents.Length);
1045
+ // //
1046
+ // // AddToArchive(zip, DocxConstants.RefPath + ".rels", headref);
1047
+ // // //headref.Close();
1048
+ // // headref.Dispose();
1049
+ //
1050
+ // const contents = DocxConstants.HeadRelXml;
1051
+ // addXmlStringToArchive(zip, DocxConstants.RefPath + ".rels", contents);
1052
+ // }
1053
+ //
1054
+ // function addDocumentToArchive(zip: ZipMap, docToAdd: DocumentContainer,
1055
+ // contentTypesDoc: DocumentContainer, insertContentType: boolean): void {
1056
+ //
1057
+ // // Add document
1058
+ // const docToAddFullPath = docToAdd.filePath + docToAdd.fileName;
1059
+ // addXmlStringToArchive(zip, docToAddFullPath, docToAdd.XMLWriter.getXml());
1060
+ //
1061
+ // // Add references document if it exists
1062
+ // if (docToAdd.references.count > 0) {
1063
+ // docToAdd.references.finish();
1064
+ // addXmlStringToArchive(zip, docToAdd.filePath + DocxConstants.RefPath + docToAdd.fileName + ".rels",
1065
+ // docToAdd.references.XMLWriter.getXml());
1066
+ // docToAdd.references.XMLWriter.close();
1067
+ // }
1068
+ // docToAdd.XMLWriter.close();
1069
+ //
1070
+ // // What does this do? It mutates the contentTypesDoc...
1071
+ // if (insertContentType) {
1072
+ // insertDocumentContentType(docToAddFullPath, docToAdd.contentType, contentTypesDoc);
1073
+ // }
1074
+ //
1075
+ // }
1076
+ //
1077
+ // function addXmlStringToArchive(zip: ZipMap, filePath: string, xml: string): void {
1078
+ // //const ms = stringToUtf8ByteArray(xml);
1079
+ // zip[filePath] = {type: "XmlString", xml: xml};
1080
+ // }
1081
+ //
1082
+ // function addImageToArchive(zip: ZipMap, filePath: string, ms: AbstractImage, renderScale: number, renderFormat: string): void {
1083
+ // zip[filePath] = {type: "AbstractImage", image: ms, renderScale, renderFormat};
1084
+ // }