abstract-document 6.5.0 → 6.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (314) hide show
  1. package/CHANGELOG.md +24 -2
  2. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-bold-italic.d.ts.map +1 -1
  3. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-bold-italic.js +1 -0
  4. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-bold-italic.js.map +1 -1
  5. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-bold.d.ts.map +1 -1
  6. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-bold.js +1 -0
  7. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-bold.js.map +1 -1
  8. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-empty-keepTogether.d.ts.map +1 -1
  9. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-empty-keepTogether.js +11 -0
  10. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-empty-keepTogether.js.map +1 -1
  11. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-header.d.ts.map +1 -1
  12. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-header.js +1 -0
  13. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-header.js.map +1 -1
  14. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-italic.d.ts.map +1 -1
  15. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-italic.js +1 -0
  16. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-italic.js.map +1 -1
  17. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-keepTogether.d.ts.map +1 -1
  18. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-keepTogether.js +11 -0
  19. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-keepTogether.js.map +1 -1
  20. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-subscript.d.ts.map +1 -1
  21. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-subscript.js +1 -0
  22. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-subscript.js.map +1 -1
  23. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-superscript.d.ts.map +1 -1
  24. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-superscript.js +1 -0
  25. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-superscript.js.map +1 -1
  26. package/lib/abstract-document/index.d.ts +3 -1
  27. package/lib/abstract-document/index.d.ts.map +1 -1
  28. package/lib/abstract-document/index.js +5 -1
  29. package/lib/abstract-document/index.js.map +1 -1
  30. package/lib/abstract-document/section-elements/group.d.ts +5 -1
  31. package/lib/abstract-document/section-elements/group.d.ts.map +1 -1
  32. package/lib/abstract-document/section-elements/group.js +24 -3
  33. package/lib/abstract-document/section-elements/group.js.map +1 -1
  34. package/lib/abstract-document/section-elements/paragraph.d.ts +2 -1
  35. package/lib/abstract-document/section-elements/paragraph.d.ts.map +1 -1
  36. package/lib/abstract-document/section-elements/paragraph.js +3 -2
  37. package/lib/abstract-document/section-elements/paragraph.js.map +1 -1
  38. package/lib/abstract-document/section-elements/section-element.d.ts +10 -5
  39. package/lib/abstract-document/section-elements/section-element.d.ts.map +1 -1
  40. package/lib/abstract-document/section-elements/section-element.js +32 -0
  41. package/lib/abstract-document/section-elements/section-element.js.map +1 -1
  42. package/lib/abstract-document/section-elements/table.d.ts +2 -1
  43. package/lib/abstract-document/section-elements/table.d.ts.map +1 -1
  44. package/lib/abstract-document/section-elements/table.js +3 -2
  45. package/lib/abstract-document/section-elements/table.js.map +1 -1
  46. package/lib/abstract-document/styles/group-style.d.ts +14 -0
  47. package/lib/abstract-document/styles/group-style.d.ts.map +1 -0
  48. package/lib/abstract-document/styles/group-style.js +41 -0
  49. package/lib/abstract-document/styles/group-style.js.map +1 -0
  50. package/lib/abstract-document/styles/paragraph-style.d.ts +3 -0
  51. package/lib/abstract-document/styles/paragraph-style.d.ts.map +1 -1
  52. package/lib/abstract-document/styles/paragraph-style.js +4 -3
  53. package/lib/abstract-document/styles/paragraph-style.js.map +1 -1
  54. package/lib/abstract-document/styles/position.d.ts +4 -0
  55. package/lib/abstract-document/styles/position.d.ts.map +1 -0
  56. package/lib/abstract-document/styles/position.js +29 -0
  57. package/lib/abstract-document/styles/position.js.map +1 -0
  58. package/lib/abstract-document/styles/table-style.d.ts +3 -0
  59. package/lib/abstract-document/styles/table-style.d.ts.map +1 -1
  60. package/lib/abstract-document/styles/table-style.js +4 -3
  61. package/lib/abstract-document/styles/table-style.js.map +1 -1
  62. package/lib/abstract-document/styles/text-style.d.ts +3 -0
  63. package/lib/abstract-document/styles/text-style.d.ts.map +1 -1
  64. package/lib/abstract-document/styles/text-style.js +2 -1
  65. package/lib/abstract-document/styles/text-style.js.map +1 -1
  66. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/{group.d.ts → absolute-position-group.d.ts} +1 -1
  67. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-group.d.ts.map +1 -0
  68. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-group.js +92 -0
  69. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-group.js.map +1 -0
  70. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-header-and-footer.d.ts +3 -0
  71. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-header-and-footer.d.ts.map +1 -0
  72. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-header-and-footer.js +199 -0
  73. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-header-and-footer.js.map +1 -0
  74. package/lib/abstract-document-exporters/__tests__/{docx2/test-defs/table-of-content-separator.d.ts → pdf/test-defs/absolute-position-paragraph.d.ts} +1 -1
  75. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-paragraph.d.ts.map +1 -0
  76. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-paragraph.js +68 -0
  77. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-paragraph.js.map +1 -0
  78. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-section-in-group.d.ts +3 -0
  79. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-section-in-group.d.ts.map +1 -0
  80. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-section-in-group.js +109 -0
  81. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-section-in-group.js.map +1 -0
  82. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-section-in-table.d.ts +3 -0
  83. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-section-in-table.d.ts.map +1 -0
  84. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-section-in-table.js +146 -0
  85. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-section-in-table.js.map +1 -0
  86. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/{simple-table.d.ts → absolute-position-table.d.ts} +1 -1
  87. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-table.d.ts.map +1 -0
  88. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-table.js +121 -0
  89. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-table.js.map +1 -0
  90. package/lib/abstract-document-exporters/__tests__/{docx2/test-defs/simple-table copy.d.ts → pdf/test-defs/group-no-keep-together.d.ts} +1 -1
  91. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/group-no-keep-together.d.ts.map +1 -0
  92. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/group-no-keep-together.js +1270 -0
  93. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/group-no-keep-together.js.map +1 -0
  94. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/mixed-hyperlink-and-textrun-no-underline.d.ts +3 -0
  95. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/mixed-hyperlink-and-textrun-no-underline.d.ts.map +1 -0
  96. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/{simple-table.js → mixed-hyperlink-and-textrun-no-underline.js} +32 -22
  97. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/mixed-hyperlink-and-textrun-no-underline.js.map +1 -0
  98. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/mixed-hyperlink-and-textrun-with-underline.d.ts +3 -0
  99. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/mixed-hyperlink-and-textrun-with-underline.d.ts.map +1 -0
  100. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/mixed-hyperlink-and-textrun-with-underline.js +114 -0
  101. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/mixed-hyperlink-and-textrun-with-underline.js.map +1 -0
  102. package/lib/{abstract-document/__tests__/markdown/test-defs/markdown.d.ts → abstract-document-exporters/__tests__/pdf/test-defs/single-figure.d.ts} +1 -1
  103. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-figure.d.ts.map +1 -0
  104. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-figure.js +238 -0
  105. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-figure.js.map +1 -0
  106. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-hyperlink copy.d.ts +3 -0
  107. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-hyperlink copy.d.ts.map +1 -0
  108. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/{group.js → single-hyperlink copy.js } +5 -23
  109. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-hyperlink copy.js.map +1 -0
  110. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/{page-break-table-with-margin.d.ts → single-hyperlink-no-underline.d.ts} +1 -1
  111. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-hyperlink-no-underline.d.ts.map +1 -0
  112. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-hyperlink-no-underline.js +85 -0
  113. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-hyperlink-no-underline.js.map +1 -0
  114. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-hyperlink-with-underline.d.ts +3 -0
  115. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-hyperlink-with-underline.d.ts.map +1 -0
  116. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-hyperlink-with-underline.js +85 -0
  117. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-hyperlink-with-underline.js.map +1 -0
  118. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-alphabetic.d.ts +3 -0
  119. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-alphabetic.d.ts.map +1 -0
  120. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-alphabetic.js +65 -0
  121. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-alphabetic.js.map +1 -0
  122. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-bottom.d.ts +3 -0
  123. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-bottom.d.ts.map +1 -0
  124. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-bottom.js +65 -0
  125. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-bottom.js.map +1 -0
  126. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-hanging.d.ts +3 -0
  127. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-hanging.d.ts.map +1 -0
  128. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-hanging.js +65 -0
  129. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-hanging.js.map +1 -0
  130. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-middle.d.ts +3 -0
  131. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-middle.d.ts.map +1 -0
  132. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-middle.js +65 -0
  133. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-middle.js.map +1 -0
  134. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-top.d.ts +3 -0
  135. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-top.d.ts.map +1 -0
  136. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-top.js +65 -0
  137. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-top.js.map +1 -0
  138. package/lib/abstract-document-exporters/pdf/measure.d.ts.map +1 -1
  139. package/lib/abstract-document-exporters/pdf/measure.js +7 -3
  140. package/lib/abstract-document-exporters/pdf/measure.js.map +1 -1
  141. package/lib/abstract-document-exporters/pdf/paginate.js +3 -2
  142. package/lib/abstract-document-exporters/pdf/paginate.js.map +1 -1
  143. package/lib/abstract-document-exporters/pdf/pre-process.js +2 -2
  144. package/lib/abstract-document-exporters/pdf/pre-process.js.map +1 -1
  145. package/lib/abstract-document-exporters/pdf/render-image.js +3 -2
  146. package/lib/abstract-document-exporters/pdf/render-image.js.map +1 -1
  147. package/lib/abstract-document-exporters/pdf/render.js +59 -28
  148. package/lib/abstract-document-exporters/pdf/render.js.map +1 -1
  149. package/package.json +3 -3
  150. package/src/abstract-document/__tests__/markdown/test-defs/markdown-bold-italic.tsx +1 -0
  151. package/src/abstract-document/__tests__/markdown/test-defs/markdown-bold.tsx +1 -0
  152. package/src/abstract-document/__tests__/markdown/test-defs/markdown-empty-keepTogether.tsx +11 -0
  153. package/src/abstract-document/__tests__/markdown/test-defs/markdown-header.tsx +1 -0
  154. package/src/abstract-document/__tests__/markdown/test-defs/markdown-italic.tsx +1 -0
  155. package/src/abstract-document/__tests__/markdown/test-defs/markdown-keepTogether.tsx +11 -0
  156. package/src/abstract-document/__tests__/markdown/test-defs/markdown-subscript.tsx +1 -0
  157. package/src/abstract-document/__tests__/markdown/test-defs/markdown-superscript.tsx +1 -0
  158. package/src/abstract-document/index.ts +4 -0
  159. package/src/abstract-document/section-elements/group.ts +11 -8
  160. package/src/abstract-document/section-elements/paragraph.ts +4 -2
  161. package/src/abstract-document/section-elements/section-element.ts +16 -5
  162. package/src/abstract-document/section-elements/table.ts +4 -2
  163. package/src/abstract-document/styles/group-style.ts +30 -0
  164. package/src/abstract-document/styles/paragraph-style.ts +9 -5
  165. package/src/abstract-document/styles/position.ts +8 -0
  166. package/src/abstract-document/styles/table-style.ts +10 -9
  167. package/src/abstract-document/styles/text-style.ts +4 -0
  168. package/src/abstract-document-exporters/__tests__/docx2/tmp/Group.docx +0 -0
  169. 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
  170. 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
  171. 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
  172. package/src/abstract-document-exporters/__tests__/docx2/tmp/Multiple images.docx +0 -0
  173. package/src/abstract-document-exporters/__tests__/docx2/tmp/Multiple tables.docx +0 -0
  174. package/src/abstract-document-exporters/__tests__/docx2/tmp/Multiple textrun with Center alignment.docx +0 -0
  175. package/src/abstract-document-exporters/__tests__/docx2/tmp/Multiple textrun with End alignment.docx +0 -0
  176. package/src/abstract-document-exporters/__tests__/docx2/tmp/Multiple textrun with Start alignment that linebreaks.docx +0 -0
  177. package/src/abstract-document-exporters/__tests__/docx2/tmp/Multiple textrun with Start alignment.docx +0 -0
  178. package/src/abstract-document-exporters/__tests__/docx2/tmp/Page numbering.docx +0 -0
  179. 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
  180. package/src/abstract-document-exporters/__tests__/docx2/tmp/Simple table without rows.docx +0 -0
  181. package/src/abstract-document-exporters/__tests__/docx2/tmp/Simple table.docx +0 -0
  182. package/src/abstract-document-exporters/__tests__/docx2/tmp/Single hyperlink.docx +0 -0
  183. package/src/abstract-document-exporters/__tests__/docx2/tmp/Single image.docx +0 -0
  184. package/src/abstract-document-exporters/__tests__/docx2/tmp/Single textrun with Center alignment that linebreaks.docx +0 -0
  185. package/src/abstract-document-exporters/__tests__/docx2/tmp/Single textrun with Center alignment.docx +0 -0
  186. package/src/abstract-document-exporters/__tests__/docx2/tmp/Single textrun with End alignment that linebreaks.docx +0 -0
  187. package/src/abstract-document-exporters/__tests__/docx2/tmp/Single textrun with End alignment.docx +0 -0
  188. package/src/abstract-document-exporters/__tests__/docx2/tmp/Single textrun with Start alignment that linebreaks.docx +0 -0
  189. package/src/abstract-document-exporters/__tests__/docx2/tmp/Single textrun with Start alignment.docx +0 -0
  190. package/src/abstract-document-exporters/__tests__/docx2/tmp/Single textrun.docx +0 -0
  191. package/src/abstract-document-exporters/__tests__/docx2/tmp/hello.docx +0 -0
  192. package/src/abstract-document-exporters/__tests__/docx2/tmp/world.docx +0 -0
  193. package/src/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-group.tsx +77 -0
  194. package/src/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-header-and-footer.tsx +197 -0
  195. package/src/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-paragraph.tsx +51 -0
  196. package/src/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-section-in-group.tsx +96 -0
  197. package/src/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-section-in-table.tsx +145 -0
  198. package/src/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-table.tsx +117 -0
  199. package/src/abstract-document-exporters/__tests__/pdf/test-defs/group-no-keep-together.tsx +1287 -0
  200. package/src/abstract-document-exporters/__tests__/pdf/test-defs/mixed-hyperlink-and-textrun-no-underline.tsx +114 -0
  201. package/src/abstract-document-exporters/__tests__/pdf/test-defs/mixed-hyperlink-and-textrun-with-underline.tsx +114 -0
  202. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-figure.tsx +323 -0
  203. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-hyperlink-no-underline.tsx +70 -0
  204. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-hyperlink-with-underline.tsx +70 -0
  205. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-alphabetic.tsx +46 -0
  206. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-bottom.tsx +46 -0
  207. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-hanging.tsx +46 -0
  208. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-middle.tsx +46 -0
  209. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-top.tsx +46 -0
  210. package/src/abstract-document-exporters/__tests__/pdf/tmp/Absolute position group.pdf +123 -0
  211. package/src/abstract-document-exporters/__tests__/pdf/tmp/Absolute position header and footer.pdf +173 -0
  212. package/src/abstract-document-exporters/__tests__/pdf/tmp/Absolute position paragraph.pdf +113 -0
  213. package/src/abstract-document-exporters/__tests__/pdf/tmp/Absolute position section in group.pdf +123 -0
  214. package/src/abstract-document-exporters/__tests__/pdf/tmp/Absolute position section in table.pdf +147 -0
  215. package/src/abstract-document-exporters/__tests__/pdf/tmp/Absolute position table.pdf +137 -0
  216. package/src/abstract-document-exporters/__tests__/pdf/tmp/Group Paragraphs.pdf +2 -2
  217. package/src/abstract-document-exporters/__tests__/pdf/tmp/Group Tables.pdf +2 -2
  218. package/src/abstract-document-exporters/__tests__/pdf/tmp/Group no keeptogether.pdf +912 -0
  219. package/src/abstract-document-exporters/__tests__/pdf/tmp/Group too big for one page.pdf +2 -2
  220. package/src/abstract-document-exporters/__tests__/pdf/tmp/Header and footer.pdf +2 -2
  221. package/src/abstract-document-exporters/__tests__/pdf/tmp/Hyperlink internal linktarget.pdf +250 -682
  222. package/src/abstract-document-exporters/__tests__/pdf/tmp/Hyperlink internal.pdf +250 -682
  223. package/src/abstract-document-exporters/__tests__/pdf/tmp/Margins header body footer.pdf +2 -2
  224. package/src/abstract-document-exporters/__tests__/pdf/tmp/Mixed hyperlink and textrun no underline.pdf +180 -0
  225. package/src/abstract-document-exporters/__tests__/pdf/tmp/Mixed hyperlink and textrun with underline.pdf +192 -0
  226. package/src/abstract-document-exporters/__tests__/pdf/tmp/Mixed hyperlink and textrun.pdf +34 -60
  227. 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
  228. package/src/abstract-document-exporters/__tests__/pdf/tmp/Multiple images overflow.pdf +0 -0
  229. package/src/abstract-document-exporters/__tests__/pdf/tmp/Multiple images.pdf +0 -0
  230. package/src/abstract-document-exporters/__tests__/pdf/tmp/Multiple textrun with Center alignment.pdf +2 -2
  231. package/src/abstract-document-exporters/__tests__/pdf/tmp/Multiple textrun with End alignment.pdf +2 -2
  232. package/src/abstract-document-exporters/__tests__/pdf/tmp/Multiple textrun with Start alignment that linebreaks.pdf +2 -2
  233. package/src/abstract-document-exporters/__tests__/pdf/tmp/Multiple textrun with Start alignment.pdf +2 -2
  234. package/src/abstract-document-exporters/__tests__/pdf/tmp/Page numbering.pdf +2 -2
  235. package/src/abstract-document-exporters/__tests__/pdf/tmp/Pagebreak table row that doesnt fit page.pdf +2 -2
  236. package/src/abstract-document-exporters/__tests__/pdf/tmp/Pagebreak table single row.pdf +2 -2
  237. package/src/abstract-document-exporters/__tests__/pdf/tmp/Pagebreak table with group.pdf +2 -2
  238. package/src/abstract-document-exporters/__tests__/pdf/tmp/Pagebreak table with header 2.pdf +2 -2
  239. package/src/abstract-document-exporters/__tests__/pdf/tmp/Pagebreak table with header.pdf +2 -2
  240. package/src/abstract-document-exporters/__tests__/pdf/tmp/Pagebreak table with margin bottom.pdf +2 -2
  241. package/src/abstract-document-exporters/__tests__/pdf/tmp/Pagebreak table with margin top single table.pdf +2 -2
  242. package/src/abstract-document-exporters/__tests__/pdf/tmp/Pagebreak table with margin top.pdf +2 -2
  243. package/src/abstract-document-exporters/__tests__/pdf/tmp/Pagebreak table with rowSpan multipages.pdf +2 -2
  244. package/src/abstract-document-exporters/__tests__/pdf/tmp/Pagebreak table with rowSpan.pdf +2 -2
  245. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table all auto.pdf +2 -2
  246. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table all fix.pdf +2 -2
  247. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table background.pdf +2 -2
  248. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table cell padding of image.pdf +0 -0
  249. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table cell padding of text.pdf +2 -2
  250. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table center alignment.pdf +2 -2
  251. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table colSpan and rowSpan.pdf +2 -2
  252. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table mix auto fix.pdf +2 -2
  253. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table padding.pdf +2 -2
  254. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table right alignment.pdf +2 -2
  255. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table row alignment.pdf +2 -2
  256. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table text alignment in cell with wrapping.pdf +2 -2
  257. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table text alignment in cell.pdf +2 -2
  258. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table with default colored borders.pdf +2 -2
  259. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table with header.pdf +2 -2
  260. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table with multi colored borders.pdf +2 -2
  261. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table with single colored borders.pdf +2 -2
  262. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single date.pdf +3 -3
  263. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single figure.pdf +204 -0
  264. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single hyperlink centered.pdf +29 -43
  265. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single hyperlink no underline.pdf +146 -0
  266. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single hyperlink right aligned.pdf +29 -43
  267. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single hyperlink.pdf +29 -43
  268. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single image svg color hex.pdf +2 -2
  269. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single image svg color name.pdf +2 -2
  270. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single image svg color url.pdf +2 -2
  271. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single image.pdf +0 -0
  272. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun baseline alphabetic.pdf +113 -0
  273. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun baseline bottom.pdf +113 -0
  274. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun baseline hanging.pdf +113 -0
  275. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun baseline middle.pdf +113 -0
  276. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun baseline top.pdf +113 -0
  277. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun with Center alignment that linebreaks.pdf +2 -2
  278. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun with Center alignment.pdf +2 -2
  279. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun with End alignment that linebreaks.pdf +2 -2
  280. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun with End alignment.pdf +2 -2
  281. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun with Justify alignment.pdf +2 -2
  282. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun with Start alignment that linebreaks.pdf +2 -2
  283. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun with Start alignment.pdf +2 -2
  284. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun with super and subscripts.pdf +2 -2
  285. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun.pdf +2 -2
  286. package/src/abstract-document-exporters/__tests__/pdf/tmp/Table of content separator.pdf +26 -40
  287. package/src/abstract-document-exporters/__tests__/pdf/tmp/hello.pdf +2 -2
  288. package/src/abstract-document-exporters/__tests__/pdf/tmp/world.pdf +2 -2
  289. package/src/abstract-document-exporters/pdf/measure.ts +11 -3
  290. package/src/abstract-document-exporters/pdf/paginate.ts +3 -2
  291. package/src/abstract-document-exporters/pdf/pre-process.ts +2 -1
  292. package/src/abstract-document-exporters/pdf/render-image.ts +8 -2
  293. package/src/abstract-document-exporters/pdf/render.ts +68 -37
  294. package/lib/abstract-document/__tests__/markdown/test-defs/markdown.d.ts.map +0 -1
  295. package/lib/abstract-document/__tests__/markdown/test-defs/markdown.js +0 -14
  296. package/lib/abstract-document/__tests__/markdown/test-defs/markdown.js.map +0 -1
  297. package/lib/abstract-document/primitives/layout-foundation.js copy.map +0 -1
  298. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/simple-table copy.d.ts.map +0 -1
  299. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/simple-table copy.js +0 -195
  300. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/simple-table copy.js.map +0 -1
  301. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/table-of-content-separator.d.ts.map +0 -1
  302. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/table-of-content-separator.js +0 -18
  303. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/table-of-content-separator.js.map +0 -1
  304. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/group.d.ts.map +0 -1
  305. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/group.js.map +0 -1
  306. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/page-break-table-with-margin.d.ts.map +0 -1
  307. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/page-break-table-with-margin.js +0 -56
  308. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/page-break-table-with-margin.js.map +0 -1
  309. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/simple-table.d.ts.map +0 -1
  310. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/simple-table.js.map +0 -1
  311. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-date.d.ts +0 -1
  312. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-date.d.ts.map +0 -1
  313. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-date.js +0 -70
  314. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-date.js.map +0 -1
@@ -16,19 +16,6 @@ endobj
16
16
  /F 4
17
17
  >>
18
18
  endobj
19
- 11 0 obj
20
- <<
21
- /align /left
22
- /Subtype /Underline
23
- /QuadPoints [0 840 22.78 840 0 828.44 22.78 828.44]
24
- /Contents ()
25
- /Type /Annot
26
- /Rect [0 828.44 22.78 840]
27
- /Border [0 0 0]
28
- /C [0 0 1]
29
- /Align /left
30
- >>
31
- endobj
32
19
  7 0 obj
33
20
  <<
34
21
  /Type /Page
@@ -36,7 +23,7 @@ endobj
36
23
  /MediaBox [0 0 595 842]
37
24
  /Contents 5 0 R
38
25
  /Resources 6 0 R
39
- /Annots [9 0 R 11 0 R]
26
+ /Annots [9 0 R]
40
27
  >>
41
28
  endobj
42
29
  6 0 obj
@@ -77,20 +64,20 @@ Q
77
64
 
78
65
  endstream
79
66
  endobj
80
- 13 0 obj
67
+ 12 0 obj
81
68
  (PDFKit)
82
69
  endobj
83
- 14 0 obj
70
+ 13 0 obj
84
71
  (PDFKit)
85
72
  endobj
86
- 15 0 obj
87
- (D:20220105111759Z)
73
+ 14 0 obj
74
+ (D:20220216073733Z)
88
75
  endobj
89
- 12 0 obj
76
+ 11 0 obj
90
77
  <<
91
- /Producer 13 0 R
92
- /Creator 14 0 R
93
- /CreationDate 15 0 R
78
+ /Producer 12 0 R
79
+ /Creator 13 0 R
80
+ /CreationDate 14 0 R
94
81
  >>
95
82
  endobj
96
83
  10 0 obj
@@ -128,30 +115,29 @@ endobj
128
115
  >>
129
116
  endobj
130
117
  xref
131
- 0 16
118
+ 0 15
132
119
  0000000000 65535 f
133
- 0000001335 00000 n
134
- 0000001392 00000 n
135
- 0000001273 00000 n
136
- 0000001252 00000 n
137
- 0000000574 00000 n
138
- 0000000484 00000 n
139
- 0000000357 00000 n
120
+ 0000001128 00000 n
121
+ 0000001185 00000 n
122
+ 0000001066 00000 n
123
+ 0000001045 00000 n
124
+ 0000000367 00000 n
125
+ 0000000277 00000 n
126
+ 0000000157 00000 n
140
127
  0000000015 00000 n
141
128
  0000000051 00000 n
142
- 0000001154 00000 n
143
- 0000000157 00000 n
144
- 0000001078 00000 n
145
- 0000000992 00000 n
146
- 0000001017 00000 n
147
- 0000001042 00000 n
129
+ 0000000947 00000 n
130
+ 0000000871 00000 n
131
+ 0000000785 00000 n
132
+ 0000000810 00000 n
133
+ 0000000835 00000 n
148
134
  trailer
149
135
  <<
150
- /Size 16
136
+ /Size 15
151
137
  /Root 3 0 R
152
- /Info 12 0 R
153
- /ID [<aff467c850a90b8753d7857e8c793026> <aff467c850a90b8753d7857e8c793026>]
138
+ /Info 11 0 R
139
+ /ID [<c1e3831a0a1cfe23bb4add233cb8639c> <c1e3831a0a1cfe23bb4add233cb8639c>]
154
140
  >>
155
141
  startxref
156
- 1439
142
+ 1232
157
143
  %%EOF
@@ -79,7 +79,7 @@ endobj
79
79
  (PDFKit)
80
80
  endobj
81
81
  15 0 obj
82
- (D:20220105111758Z)
82
+ (D:20220216073732Z)
83
83
  endobj
84
84
  12 0 obj
85
85
  <<
@@ -145,7 +145,7 @@ trailer
145
145
  /Size 16
146
146
  /Root 3 0 R
147
147
  /Info 12 0 R
148
- /ID [<0ff0e795ffbd1e504a7e1c674a4e4be6> <0ff0e795ffbd1e504a7e1c674a4e4be6>]
148
+ /ID [<0046ebbe049c3b87cb2a8ef4f7428b9f> <0046ebbe049c3b87cb2a8ef4f7428b9f>]
149
149
  >>
150
150
  startxref
151
151
  1212
@@ -43,7 +43,7 @@ endobj
43
43
  (PDFKit)
44
44
  endobj
45
45
  12 0 obj
46
- (D:20220105111759Z)
46
+ (D:20220216073733Z)
47
47
  endobj
48
48
  9 0 obj
49
49
  <<
@@ -106,7 +106,7 @@ trailer
106
106
  /Size 13
107
107
  /Root 3 0 R
108
108
  /Info 9 0 R
109
- /ID [<34aa326327ae950341773bad4e6b0ff8> <34aa326327ae950341773bad4e6b0ff8>]
109
+ /ID [<ccc074c40e75f05e59796219d4826e2d> <ccc074c40e75f05e59796219d4826e2d>]
110
110
  >>
111
111
  startxref
112
112
  837
@@ -98,7 +98,7 @@ function measureParagraph(
98
98
  paragraph.styleName,
99
99
  resources
100
100
  ) as AD.ParagraphStyle.ParagraphStyle;
101
- const contentAvailableWidth = availableSize.width - (style.margins.left + style.margins.left);
101
+ const contentAvailableWidth = availableSize.width - (style.margins.left + style.margins.right);
102
102
  const contentAvailableHeight = availableSize.height - (style.margins.top + style.margins.bottom);
103
103
  const contentAvailableSize = AD.Size.create(contentAvailableWidth, contentAvailableHeight);
104
104
 
@@ -216,7 +216,9 @@ export function measureTable(
216
216
  const elementSizes = measureSectionElement(pdf, resources, elementAvailableSize, element);
217
217
  elementSizes.forEach((v, k) => desiredSizes.set(k, v));
218
218
  const elementSize = getDesiredSize(element, desiredSizes);
219
- cellDesiredHeight += elementSize.height;
219
+ if (!AD.Position.isPositionAbsolute(element)) {
220
+ cellDesiredHeight += elementSize.height;
221
+ }
220
222
  }
221
223
 
222
224
  desiredSizes.set(cell, AD.Size.create(cellWidth, cellDesiredHeight));
@@ -253,7 +255,13 @@ function measureGroup(
253
255
  let desiredSizes = mergeMaps(
254
256
  keepTogether.children.map((e) => measureSectionElement(pdf, resources, availableSize, e))
255
257
  );
256
- let desiredHeight = R.reduce((sum, e) => sum + getDesiredSize(e, desiredSizes).height, 0.0, keepTogether.children);
258
+ let desiredHeight = R.reduce(
259
+ (sum, e) => {
260
+ return sum + (AD.Position.isPositionAbsolute(e) ? 0 : getDesiredSize(e, desiredSizes).height);
261
+ },
262
+ 0.0,
263
+ keepTogether.children
264
+ );
257
265
  desiredSizes.set(keepTogether, AD.Size.create(availableSize.width, desiredHeight));
258
266
  return desiredSizes;
259
267
  }
@@ -75,9 +75,10 @@ function splitSection(
75
75
  i--;
76
76
  continue;
77
77
  }
78
+ const isPositionAbsolute = AD.Position.isPositionAbsolute(element);
78
79
 
79
80
  elements.push(element);
80
- elementsHeight += elementSize.height;
81
+ elementsHeight += isPositionAbsolute ? 0 : elementSize.height;
81
82
 
82
83
  const [leadingSpace, trailingSpace] = getLeadingAndTrailingSpace(resources, section, elements);
83
84
  const availableHeight = contentRect.height + leadingSpace + trailingSpace;
@@ -85,7 +86,7 @@ function splitSection(
85
86
  if (element.type === "Table" && element.children.length > 1) {
86
87
  //Remove last element
87
88
  elements.pop();
88
- elementsHeight -= elementSize.height;
89
+ elementsHeight -= elementSize.height; //TODO: handle absolute positioned elements
89
90
 
90
91
  //Try to split table
91
92
  const [tableHead, tableTail] = splitTable(
@@ -373,11 +373,12 @@ function preProcessGroup(
373
373
  const children = R.unnest<AD.SectionElement.SectionElement>(
374
374
  group.children.map((e) => preProcessSectionElement(e, parentResources))
375
375
  );
376
- if (group.keepTogether || AD.Resources.hasResources(group)) {
376
+ if (group.keepTogether || AD.Resources.hasResources(group) || group.style.position === "absolute") {
377
377
  return [
378
378
  AD.Group.create(
379
379
  {
380
380
  keepTogether: group.keepTogether,
381
+ style: group.style,
381
382
  ...AD.Resources.extractResources(group),
382
383
  },
383
384
  children
@@ -115,13 +115,19 @@ function abstractComponentToPdf(
115
115
  .stroke(colorToRgb(component.strokeColor));
116
116
  break;
117
117
  case "text":
118
+ const font = getFontName(
119
+ component.fontFamily,
120
+ component.fontWeight === "bold",
121
+ component.italic,
122
+ component.fontWeight === "mediumBold"
123
+ );
118
124
  if (component.clockwiseRotationDegrees !== 0) {
119
125
  pdf.save();
120
126
  pdf.rotate(component.clockwiseRotationDegrees, {
121
127
  origin: [component.position.x, component.position.y],
122
128
  });
123
129
  }
124
- pdf.font(component.fontFamily).fontSize(component.fontSize);
130
+ pdf.font(font).fontSize(component.fontSize);
125
131
  const stringWidth = pdf.widthOfString(component.text);
126
132
  const stringHeight = pdf.currentLineHeight();
127
133
  const dx =
@@ -137,7 +143,7 @@ function abstractComponentToPdf(
137
143
  ? -stringHeight * 0.5
138
144
  : 0;
139
145
  pdf
140
- .font(component.fontFamily)
146
+ .font(font)
141
147
  .fontSize(component.fontSize)
142
148
  .fillColor(colorToRgb(component.textColor))
143
149
  .text(component.text, component.position.x + dx, component.position.y + dy, { lineBreak: false });
@@ -94,17 +94,21 @@ function renderPage(
94
94
  });
95
95
 
96
96
  const headerX = style.headerMargins.left;
97
- let headerY = style.headerMargins.top;
97
+ const headerStart = style.headerMargins.top;
98
+ let headerY = headerStart;
98
99
  for (let element of page.header) {
99
100
  const elementSize = getDesiredSize(element, desiredSizes);
101
+ const isAbsolute = AD.Position.isPositionAbsolute(element);
100
102
  renderSectionElement(
101
103
  resources,
102
104
  pdf,
103
105
  desiredSizes,
104
- AD.Rect.create(headerX, headerY, elementSize.width, elementSize.height),
106
+ AD.Rect.create(headerX, isAbsolute ? headerStart : headerY, elementSize.width, elementSize.height),
105
107
  element
106
108
  );
107
- headerY += elementSize.height;
109
+ if (!isAbsolute) {
110
+ headerY += elementSize.height;
111
+ }
108
112
  }
109
113
  headerY += style.headerMargins.bottom;
110
114
 
@@ -113,30 +117,38 @@ function renderPage(
113
117
  style.footerMargins.top + style.footerMargins.bottom
114
118
  );
115
119
  const footerX = style.footerMargins.left;
116
- let footerY = pageHeight - (footerHeight - style.footerMargins.top);
120
+ const footerStart = pageHeight - (footerHeight - style.footerMargins.top);
121
+ let footerY = footerStart;
117
122
  for (let element of page.footer) {
118
123
  const elementSize = getDesiredSize(element, desiredSizes);
124
+ const isAbsolute = AD.Position.isPositionAbsolute(element);
119
125
  renderSectionElement(
120
126
  resources,
121
127
  pdf,
122
128
  desiredSizes,
123
- AD.Rect.create(footerX, footerY, elementSize.width, elementSize.height),
129
+ AD.Rect.create(footerX, isAbsolute ? footerStart : footerY, elementSize.width, elementSize.height),
124
130
  element
125
131
  );
126
- footerY += elementSize.height;
132
+ if (!isAbsolute) {
133
+ footerY += elementSize.height;
134
+ }
127
135
  }
128
136
 
129
- let y = contentRect.y;
137
+ const elementStart = contentRect.y;
138
+ let y = elementStart;
130
139
  for (const element of page.elements) {
131
140
  const elementSize = getDesiredSize(element, desiredSizes);
141
+ const isAbsolute = AD.Position.isPositionAbsolute(element);
132
142
  renderSectionElement(
133
143
  resources,
134
144
  pdf,
135
145
  desiredSizes,
136
- AD.Rect.create(contentRect.x, y, elementSize.width, elementSize.height),
146
+ AD.Rect.create(contentRect.x, isAbsolute ? elementStart : y, elementSize.width, elementSize.height),
137
147
  element
138
148
  );
139
- y += elementSize.height;
149
+ if (!isAbsolute) {
150
+ y += elementSize.height;
151
+ }
140
152
  }
141
153
  }
142
154
 
@@ -189,17 +201,22 @@ function renderGroup(
189
201
  finalRect: AD.Rect.Rect,
190
202
  group: AD.Group.Group
191
203
  ): void {
192
- let y = finalRect.y;
204
+ const finalX = finalRect.x + group.style.margins.left;
205
+ const startY = finalRect.y + group.style.margins.top;
206
+ let y = startY;
193
207
  for (const element of group.children) {
194
208
  const elementSize = getDesiredSize(element, desiredSizes);
209
+ const isAbsolute = AD.Position.isPositionAbsolute(element);
195
210
  renderSectionElement(
196
211
  resources,
197
212
  pdf,
198
213
  desiredSizes,
199
- AD.Rect.create(finalRect.x, y, elementSize.width, elementSize.height),
214
+ AD.Rect.create(finalX, isAbsolute ? startY : y, elementSize.width, elementSize.height),
200
215
  element
201
216
  );
202
- y += elementSize.height;
217
+ if (!isAbsolute) {
218
+ y += elementSize.height;
219
+ }
203
220
  }
204
221
  }
205
222
 
@@ -283,6 +300,12 @@ function renderParagraph(
283
300
  const rowWidth = row.reduce((a, b) => a + getDesiredSize(b, desiredSizes).width, 0);
284
301
  let x = finalRect.x;
285
302
 
303
+ if (style.alignment === "Start" || style.alignment === "Justify") {
304
+ x += style.margins.left;
305
+ } else if (style.alignment === "End") {
306
+ x -= style.margins.right;
307
+ }
308
+
286
309
  if (row.length > 1 || row[0].type === "Image") {
287
310
  // Using continued with alignment "center" or "right" is broken:
288
311
  // https://github.com/foliojs/pdfkit/issues/240
@@ -490,33 +513,34 @@ function drawHyperLink(
490
513
  // so always set alignment to left and handle it through an x offset
491
514
  // if its just a single atom then we can use its alignment to partially support multi-line texts for other alignments
492
515
  if (isFirstAtom || alignment !== "left") {
493
- pdf
494
- .text(hyperLink.text, finalRect.x, finalRect.y, {
495
- width: availableWidth,
496
- underline: textStyle.underline || false,
497
- align: isSingleAtom ? alignment : "left",
498
- goTo: isInternalLink ? hyperLink.target.substr(1) : undefined,
499
- indent: textStyle.indent || 0,
500
- continued: alignment !== "left" ? false : !isLastAtom,
501
- ...(textStyle.lineGap !== undefined ? { lineGap: textStyle.lineGap } : {}),
502
- })
503
- .underline(xUnderline, finalRect.y + 2, finalRect.width, finalRect.height, {
516
+ pdf.text(hyperLink.text, finalRect.x, finalRect.y, {
517
+ width: availableWidth,
518
+ align: isSingleAtom ? alignment : "left",
519
+ goTo: isInternalLink ? hyperLink.target.substr(1) : undefined,
520
+ indent: textStyle.indent || 0,
521
+ continued: alignment !== "left" ? false : !isLastAtom,
522
+ baseline: textStyle.baseline || "top",
523
+ ...(textStyle.lineGap !== undefined ? { lineGap: textStyle.lineGap } : {}),
524
+ });
525
+ if (textStyle.underline === undefined ? true : textStyle.underline) {
526
+ pdf.underline(xUnderline, finalRect.y + 2, finalRect.width, finalRect.height, {
504
527
  align: isSingleAtom ? alignment : "left",
505
528
  color: "blue",
506
529
  });
530
+ }
507
531
  } else {
508
- pdf
509
- .text(hyperLink.text, {
510
- underline: textStyle.underline || false,
511
- align: "left",
512
- goTo: isInternalLink ? hyperLink.target.substr(1) : undefined,
513
- indent: textStyle.indent || 0,
514
- continued: !isLastAtom,
515
- ...(textStyle.lineGap !== undefined ? { lineGap: textStyle.lineGap } : {}),
516
- })
517
- .underline(xUnderline, finalRect.y + 2, finalRect.width, finalRect.height, {
532
+ pdf.text(hyperLink.text, {
533
+ align: "left",
534
+ goTo: isInternalLink ? hyperLink.target.substr(1) : undefined,
535
+ indent: textStyle.indent || 0,
536
+ continued: !isLastAtom,
537
+ ...(textStyle.lineGap !== undefined ? { lineGap: textStyle.lineGap } : {}),
538
+ });
539
+ if (textStyle.underline === undefined ? true : textStyle.underline) {
540
+ pdf.underline(xUnderline, finalRect.y + 2, finalRect.width, finalRect.height, {
518
541
  color: "blue",
519
542
  });
543
+ }
520
544
  }
521
545
 
522
546
  resetTextOffset(pdf, textStyle);
@@ -557,6 +581,7 @@ function drawText(
557
581
  align: isSingleAtom ? alignment : "left",
558
582
  indent: textStyle.indent || 0,
559
583
  continued: alignment !== "left" ? false : !isLastAtom,
584
+ baseline: textStyle.baseline || "top",
560
585
  ...(textStyle.lineGap !== undefined ? { lineGap: textStyle.lineGap } : {}),
561
586
  });
562
587
  } else {
@@ -704,8 +729,11 @@ function renderCell(
704
729
 
705
730
  let x = finalRect.x + style.padding.left;
706
731
  const availableHeight = finalRect.height;
707
- let contentHeight = cell.children.map((c) => getDesiredSize(c, desiredSizes).height).reduce((a, b) => a + b, 0);
708
- let y = finalRect.y + style.padding.top;
732
+ let contentHeight = cell.children
733
+ .map((c) => (AD.Position.isPositionAbsolute(c) ? 0 : getDesiredSize(c, desiredSizes).height))
734
+ .reduce((a, b) => a + b, 0);
735
+ const startY = finalRect.y + style.padding.top;
736
+ let y = startY;
709
737
  if (style.verticalAlignment === "Middle")
710
738
  y += 0.5 * (availableHeight - contentHeight - style.padding.top - style.padding.bottom);
711
739
  else if (style.verticalAlignment === "Bottom")
@@ -713,9 +741,12 @@ function renderCell(
713
741
 
714
742
  for (const element of cell.children) {
715
743
  const elementSize = getDesiredSize(element, desiredSizes);
716
- const elementRect = AD.Rect.create(x, y, elementSize.width, elementSize.height);
744
+ const isAbsolute = AD.Position.isPositionAbsolute(element);
745
+ const elementRect = AD.Rect.create(x, isAbsolute ? startY : y, elementSize.width, elementSize.height);
717
746
  renderSectionElement(resources, pdf, desiredSizes, elementRect, element);
718
- y += elementSize.height;
747
+ if (!isAbsolute) {
748
+ y += elementSize.height;
749
+ }
719
750
  }
720
751
 
721
752
  //Needed to counter aliasing caused by the cells background fill
@@ -1 +0,0 @@
1
- {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../../../../src/abstract-document/__tests__/markdown/test-defs/markdown.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,eAAO,MAAM,IAAI,EAAE,aAIlB,CAAC"}
@@ -1,14 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.test = void 0;
7
- const react_1 = __importDefault(require("react"));
8
- const abstract_document_jsx_1 = require("../../../../abstract-document-jsx");
9
- exports.test = {
10
- name: "Markdown",
11
- abstractDocJsx: react_1.default.createElement(abstract_document_jsx_1.Markdown, { text: "H~2~O 2^10^ *Italic* **Bold** ***Italic and Bold***" }),
12
- expectedMarkdown: {},
13
- };
14
- //# sourceMappingURL=markdown.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../../../../src/abstract-document/__tests__/markdown/test-defs/markdown.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAE1B,6EAA6D;AAEhD,QAAA,IAAI,GAAkB;IACjC,IAAI,EAAE,UAAU;IAChB,cAAc,EAAE,8BAAC,gCAAQ,IAAC,IAAI,EAAC,qDAAqD,GAAG;IACvF,gBAAgB,EAAE,EAAE;CACrB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"layout-foundation.js","sourceRoot":"","sources":["../../../src/abstract-document/primitives/layout-foundation.ts"],"names":[],"mappings":";;;AAcA,SAAgB,MAAM,CAAC,KAA6B;IAClD,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,KAAK,IAAI,EAAE,CAAC;IACjE,OAAO;QACL,GAAG;QACH,MAAM;QACN,IAAI;QACJ,KAAK;KACN,CAAC;AACJ,CAAC;AARD,wBAQC;AAED,SAAgB,YAAY,CAC1B,SAAuC,EACvC,UAAwC;IAExC,MAAM,CAAC,GAAG,SAAS,IAAI,MAAM,EAAE,CAAC;IAChC,MAAM,CAAC,GAAG,UAAU,IAAI,MAAM,EAAE,CAAC;IACjC,OAAO,MAAM,CAAC;QACZ,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG;QACnB,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM;QAC5B,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI;QACtB,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK;KAC1B,CAAC,CAAC;AACL,CAAC;AAZD,oCAYC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"simple-table copy.d.ts","sourceRoot":"","sources":["../../../../../src/abstract-document-exporters/__tests__/docx2/test-defs/simple-table copy.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAWnD,eAAO,MAAM,IAAI,EAAE,aAqMlB,CAAC"}