office-viewer 0.1.0 → 0.1.3

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 (436) hide show
  1. package/README.md +7 -2
  2. package/esm/OpenXML.d.ts +19 -0
  3. package/esm/OpenXML.js +43 -2
  4. package/esm/Word.d.ts +132 -15
  5. package/esm/Word.js +233 -54
  6. package/esm/openxml/ContentType.js +20 -6
  7. package/esm/openxml/Settings.d.ts +10 -0
  8. package/esm/openxml/Settings.js +93 -0
  9. package/esm/openxml/Style.d.ts +1 -1
  10. package/esm/openxml/Style.js +12 -12
  11. package/esm/openxml/Theme.js +30 -6
  12. package/esm/openxml/Types.d.ts +179 -2472
  13. package/esm/openxml/drawing/Blip.d.ts +7 -0
  14. package/esm/openxml/{word/drawing → drawing}/Blip.js +2 -1
  15. package/{lib/openxml/word → esm/openxml}/drawing/BlipFill.d.ts +1 -1
  16. package/esm/openxml/{word/drawing → drawing}/BlipFill.js +1 -1
  17. package/esm/openxml/drawing/CustomGeom.d.ts +9 -0
  18. package/esm/openxml/drawing/CustomGeom.js +17 -0
  19. package/esm/openxml/drawing/Drawing.d.ts +35 -0
  20. package/esm/openxml/drawing/Drawing.js +169 -0
  21. package/esm/openxml/drawing/Geom.d.ts +11 -0
  22. package/esm/openxml/drawing/Geom.js +34 -0
  23. package/esm/openxml/drawing/Path.d.ts +37 -0
  24. package/esm/openxml/drawing/Pic.d.ts +16 -0
  25. package/esm/openxml/drawing/Pic.js +26 -0
  26. package/esm/openxml/drawing/Shape.d.ts +20 -0
  27. package/esm/openxml/drawing/ShapeProperties.d.ts +22 -0
  28. package/esm/openxml/drawing/ShapeProperties.js +119 -0
  29. package/{lib/openxml/word → esm/openxml}/drawing/Transform.d.ts +2 -1
  30. package/esm/openxml/{word/drawing → drawing}/Transform.js +7 -3
  31. package/esm/openxml/drawing/diagram/Diagram.d.ts +7 -0
  32. package/esm/openxml/drawing/diagram/Diagram.js +24 -0
  33. package/esm/openxml/drawing/diagram/Sp.d.ts +2 -0
  34. package/esm/openxml/drawing/diagram/SpTree.d.ts +5 -0
  35. package/esm/openxml/drawing/presetShape.d.ts +3 -0
  36. package/esm/openxml/drawing/presetShape.js +38785 -0
  37. package/esm/openxml/drawing/svg/arcToA.d.ts +13 -0
  38. package/esm/openxml/drawing/svg/arcToA.js +88 -0
  39. package/esm/openxml/drawing/svg/formulas.d.ts +29 -0
  40. package/esm/openxml/drawing/svg/formulas.js +103 -0
  41. package/esm/openxml/drawing/svg/generateDefines.d.ts +12 -0
  42. package/esm/openxml/drawing/svg/generateDefines.js +144 -0
  43. package/esm/openxml/drawing/svg/presetVal.d.ts +43 -0
  44. package/esm/openxml/drawing/svg/presetVal.js +53 -0
  45. package/esm/openxml/drawing/svg/shapeToSVG.d.ts +9 -0
  46. package/esm/openxml/drawing/svg/shapeToSVG.js +151 -0
  47. package/esm/openxml/math/OMath.d.ts +5 -0
  48. package/esm/openxml/math/OMath.js +12 -0
  49. package/esm/openxml/math/convertOOML.d.ts +4 -0
  50. package/esm/openxml/math/convertOOML.js +13 -0
  51. package/esm/openxml/math/xsl.d.ts +4 -0
  52. package/esm/openxml/math/xsl.js +8 -0
  53. package/esm/openxml/word/Body.js +11 -7
  54. package/esm/openxml/word/Break.js +1 -3
  55. package/esm/openxml/word/Font.d.ts +16 -0
  56. package/esm/openxml/word/Font.js +78 -0
  57. package/esm/openxml/word/FontTable.d.ts +9 -0
  58. package/esm/openxml/word/FontTable.js +34 -0
  59. package/esm/openxml/word/Header.d.ts +11 -0
  60. package/esm/openxml/word/Header.js +54 -0
  61. package/esm/openxml/word/Hyperlink.d.ts +1 -0
  62. package/esm/openxml/word/Hyperlink.js +7 -3
  63. package/esm/openxml/word/InlineText.js +1 -1
  64. package/esm/openxml/word/NoBreakHyphen.d.ts +2 -0
  65. package/esm/openxml/word/NoBreakHyphen.js +7 -0
  66. package/esm/openxml/word/Note.d.ts +12 -0
  67. package/esm/openxml/word/Note.js +48 -0
  68. package/esm/openxml/word/Paragraph.d.ts +2 -2
  69. package/esm/openxml/word/Paragraph.js +10 -9
  70. package/esm/openxml/word/Pict.d.ts +1 -2
  71. package/esm/openxml/word/Pict.js +5 -3
  72. package/esm/openxml/word/Ruby.js +1 -1
  73. package/esm/openxml/word/Run.d.ts +7 -3
  74. package/esm/openxml/word/Run.js +28 -4
  75. package/esm/openxml/word/Section.d.ts +18 -5
  76. package/esm/openxml/word/Section.js +46 -2
  77. package/esm/openxml/word/Separator.d.ts +5 -0
  78. package/esm/openxml/word/Separator.js +10 -0
  79. package/esm/openxml/word/SoftHyphen.d.ts +5 -0
  80. package/esm/openxml/word/SoftHyphen.js +10 -0
  81. package/esm/openxml/word/Table.d.ts +4 -9
  82. package/esm/openxml/word/Table.js +0 -235
  83. package/esm/openxml/word/WDocument.d.ts +1 -2
  84. package/esm/openxml/word/WDocument.js +53 -7
  85. package/esm/openxml/word/numbering/AbstractNum.js +4 -2
  86. package/esm/openxml/word/numbering/Lvl.js +10 -4
  87. package/esm/openxml/word/numbering/Num.js +12 -4
  88. package/esm/openxml/word/numbering/NumberProperties.js +2 -2
  89. package/esm/openxml/word/numbering/Numbering.js +1 -1
  90. package/esm/openxml/word/table/Tc.d.ts +1 -22
  91. package/esm/openxml/word/table/Tc.js +1 -221
  92. package/esm/openxml/word/table/Tr.d.ts +0 -5
  93. package/esm/openxml/word/table/Tr.js +0 -97
  94. package/esm/openxml/word/wps/WPG.d.ts +5 -0
  95. package/esm/openxml/word/wps/WPS.d.ts +18 -0
  96. package/esm/openxml/word/wps/WPS.js +147 -0
  97. package/esm/openxml/word/wps/WPSStyle.d.ts +10 -0
  98. package/esm/openxml/word/wps/WPSStyle.js +42 -0
  99. package/esm/package/PackageParser.d.ts +1 -1
  100. package/esm/package/XMLPackageParser.d.ts +3 -3
  101. package/esm/package/ZipPackageParser.d.ts +1 -1
  102. package/esm/package/ZipPackageParser.js +7 -8
  103. package/esm/parse/Footnotes.d.ts +3 -0
  104. package/esm/parse/Footnotes.js +25 -0
  105. package/esm/parse/colorNameMap.d.ts +6 -0
  106. package/esm/parse/colorNameMap.js +201 -0
  107. package/esm/parse/jcToTextAlign.js +1 -0
  108. package/esm/parse/mergeSdt.d.ts +4 -0
  109. package/esm/parse/mergeSdt.js +57 -0
  110. package/esm/parse/modifyColor.d.ts +1 -0
  111. package/esm/parse/modifyColor.js +106 -0
  112. package/esm/parse/parseBorder.js +2 -21
  113. package/esm/parse/parseCellMargin.d.ts +2 -0
  114. package/esm/parse/parseCellMargin.js +38 -0
  115. package/esm/parse/parseChildColor.d.ts +5 -0
  116. package/esm/parse/parseChildColor.js +66 -0
  117. package/esm/parse/parseColor.d.ts +4 -0
  118. package/esm/parse/parseColor.js +41 -46
  119. package/esm/parse/parseEndnotes.d.ts +3 -0
  120. package/esm/parse/parseEndnotes.js +25 -0
  121. package/esm/parse/parseFont.js +1 -1
  122. package/esm/parse/parseInsideBorders.d.ts +9 -0
  123. package/esm/parse/parseInsideBorders.js +24 -0
  124. package/esm/parse/parsePr.d.ts +3 -0
  125. package/esm/parse/parsePr.js +108 -11
  126. package/esm/parse/parseRelationship.js +1 -1
  127. package/esm/parse/parseSdt.d.ts +5 -0
  128. package/esm/parse/parseShape.d.ts +10 -0
  129. package/esm/parse/parseShape.js +239 -0
  130. package/esm/parse/parseSize.d.ts +2 -1
  131. package/esm/parse/parseSize.js +7 -1
  132. package/esm/parse/parseSpacing.js +1 -1
  133. package/esm/parse/parseTable.d.ts +3 -0
  134. package/esm/parse/parseTable.js +62 -0
  135. package/esm/parse/parseTablePr.d.ts +3 -0
  136. package/esm/parse/parseTablePr.js +185 -0
  137. package/esm/parse/parseTblWidth.d.ts +4 -0
  138. package/esm/parse/parseTblWidth.js +23 -0
  139. package/esm/parse/parseTc.d.ts +10 -0
  140. package/esm/parse/parseTc.js +64 -0
  141. package/esm/parse/parseTcPr.d.ts +5 -0
  142. package/esm/parse/parseTcPr.js +99 -0
  143. package/esm/parse/parseTextDirection.js +4 -6
  144. package/esm/parse/parseTr.d.ts +6 -0
  145. package/esm/parse/parseTr.js +49 -0
  146. package/esm/parse/parseTrPr.d.ts +3 -0
  147. package/esm/parse/parseTrPr.js +59 -0
  148. package/esm/render/fixAbsolutePosition.d.ts +8 -0
  149. package/esm/render/renderBody.d.ts +6 -2
  150. package/esm/render/renderBody.js +184 -30
  151. package/esm/render/renderBr.d.ts +2 -1
  152. package/esm/render/renderBr.js +4 -1
  153. package/esm/render/renderCustGeom.d.ts +4 -0
  154. package/esm/render/renderCustGeom.js +10 -0
  155. package/esm/render/renderDocument.d.ts +2 -2
  156. package/esm/render/renderDocument.js +2 -2
  157. package/esm/render/renderDrawing.d.ts +3 -2
  158. package/esm/render/renderDrawing.js +129 -24
  159. package/esm/render/renderFont.d.ts +5 -0
  160. package/esm/render/renderFont.js +39 -0
  161. package/esm/render/renderGeom.d.ts +4 -0
  162. package/esm/render/renderGeom.js +14 -0
  163. package/esm/render/renderHeader.d.ts +6 -0
  164. package/esm/render/renderHeader.js +40 -0
  165. package/esm/render/renderHyperLink.js +4 -1
  166. package/esm/render/renderInlineText.js +1 -1
  167. package/esm/render/renderInstrText.js +1 -1
  168. package/esm/render/renderMath.d.ts +3 -0
  169. package/esm/render/renderMath.js +7 -0
  170. package/esm/render/renderNoBreakHyphen.d.ts +1 -0
  171. package/esm/render/renderNoBreakHyphen.js +9 -0
  172. package/esm/render/renderNotes.d.ts +5 -0
  173. package/esm/render/renderNotes.js +77 -0
  174. package/esm/render/renderNumbering.js +8 -10
  175. package/esm/render/renderParagraph.d.ts +1 -1
  176. package/esm/render/renderParagraph.js +26 -29
  177. package/esm/render/renderPict.js +5 -10
  178. package/esm/render/renderRuby.js +1 -1
  179. package/esm/render/renderRun.d.ts +4 -2
  180. package/esm/render/renderRun.js +35 -10
  181. package/esm/render/renderSection.d.ts +3 -2
  182. package/esm/render/renderSection.js +79 -5
  183. package/esm/render/renderSeparator.d.ts +1 -0
  184. package/esm/render/renderSeparator.js +9 -0
  185. package/esm/render/renderSoftHyphen.d.ts +1 -0
  186. package/esm/render/renderSoftHyphen.js +9 -0
  187. package/esm/render/renderStyle.js +36 -35
  188. package/esm/render/renderTab.d.ts +1 -0
  189. package/esm/render/renderTab.js +4 -6
  190. package/esm/render/renderTable.js +23 -20
  191. package/esm/render/setElementStyle.js +7 -2
  192. package/esm/render/zindex.d.ts +1 -0
  193. package/esm/util/blob.js +1 -10
  194. package/esm/util/color.d.ts +48 -0
  195. package/esm/util/color.js +211 -0
  196. package/esm/util/createObject.d.ts +10 -0
  197. package/esm/util/createObject.js +48 -0
  198. package/esm/util/dom.d.ts +8 -4
  199. package/esm/util/dom.js +21 -4
  200. package/esm/util/mergeRun.js +1 -1
  201. package/esm/util/parseSides.d.ts +11 -0
  202. package/esm/util/print.d.ts +5 -0
  203. package/esm/util/print.js +54 -0
  204. package/esm/util/replaceVar.d.ts +10 -0
  205. package/esm/util/replaceVar.js +214 -0
  206. package/esm/util/xml.js +4 -1
  207. package/lib/OpenXML.d.ts +19 -0
  208. package/lib/OpenXML.js +44 -1
  209. package/lib/Word.d.ts +132 -15
  210. package/lib/Word.js +238 -59
  211. package/lib/openxml/ContentType.js +20 -6
  212. package/lib/openxml/Settings.d.ts +10 -0
  213. package/lib/openxml/Settings.js +97 -0
  214. package/lib/openxml/Style.d.ts +1 -1
  215. package/lib/openxml/Style.js +15 -15
  216. package/lib/openxml/Theme.js +31 -7
  217. package/lib/openxml/Types.d.ts +179 -2472
  218. package/lib/openxml/drawing/Blip.d.ts +7 -0
  219. package/lib/openxml/{word/drawing → drawing}/Blip.js +2 -1
  220. package/{esm/openxml/word → lib/openxml}/drawing/BlipFill.d.ts +1 -1
  221. package/lib/openxml/{word/drawing → drawing}/BlipFill.js +1 -1
  222. package/lib/openxml/drawing/CustomGeom.d.ts +9 -0
  223. package/lib/openxml/drawing/CustomGeom.js +21 -0
  224. package/lib/openxml/drawing/Drawing.d.ts +35 -0
  225. package/lib/openxml/drawing/Drawing.js +173 -0
  226. package/lib/openxml/drawing/Geom.d.ts +11 -0
  227. package/lib/openxml/drawing/Geom.js +38 -0
  228. package/lib/openxml/drawing/Path.d.ts +37 -0
  229. package/lib/openxml/drawing/Pic.d.ts +16 -0
  230. package/lib/openxml/drawing/Pic.js +30 -0
  231. package/lib/openxml/drawing/Shape.d.ts +20 -0
  232. package/lib/openxml/drawing/ShapeProperties.d.ts +22 -0
  233. package/lib/openxml/drawing/ShapeProperties.js +123 -0
  234. package/{esm/openxml/word → lib/openxml}/drawing/Transform.d.ts +2 -1
  235. package/lib/openxml/{word/drawing → drawing}/Transform.js +7 -3
  236. package/lib/openxml/drawing/diagram/Diagram.d.ts +7 -0
  237. package/lib/openxml/drawing/diagram/Diagram.js +28 -0
  238. package/lib/openxml/drawing/diagram/Sp.d.ts +2 -0
  239. package/lib/openxml/drawing/diagram/SpTree.d.ts +5 -0
  240. package/lib/openxml/drawing/presetShape.d.ts +3 -0
  241. package/lib/openxml/drawing/presetShape.js +38789 -0
  242. package/lib/openxml/drawing/svg/arcToA.d.ts +13 -0
  243. package/lib/openxml/drawing/svg/arcToA.js +92 -0
  244. package/lib/openxml/drawing/svg/formulas.d.ts +29 -0
  245. package/lib/openxml/drawing/svg/formulas.js +108 -0
  246. package/lib/openxml/drawing/svg/generateDefines.d.ts +12 -0
  247. package/lib/openxml/drawing/svg/generateDefines.js +148 -0
  248. package/lib/openxml/drawing/svg/presetVal.d.ts +43 -0
  249. package/lib/openxml/drawing/svg/presetVal.js +57 -0
  250. package/lib/openxml/drawing/svg/shapeToSVG.d.ts +9 -0
  251. package/lib/openxml/drawing/svg/shapeToSVG.js +155 -0
  252. package/lib/openxml/math/OMath.d.ts +5 -0
  253. package/lib/openxml/math/OMath.js +16 -0
  254. package/lib/openxml/math/convertOOML.d.ts +4 -0
  255. package/lib/openxml/math/convertOOML.js +17 -0
  256. package/lib/openxml/math/xsl.d.ts +4 -0
  257. package/lib/openxml/math/xsl.js +12 -0
  258. package/lib/openxml/word/Body.js +11 -7
  259. package/lib/openxml/word/Break.js +1 -3
  260. package/lib/openxml/word/Font.d.ts +16 -0
  261. package/lib/openxml/word/Font.js +83 -0
  262. package/lib/openxml/word/FontTable.d.ts +9 -0
  263. package/lib/openxml/word/FontTable.js +38 -0
  264. package/lib/openxml/word/Header.d.ts +11 -0
  265. package/lib/openxml/word/Header.js +58 -0
  266. package/lib/openxml/word/Hyperlink.d.ts +1 -0
  267. package/lib/openxml/word/Hyperlink.js +8 -4
  268. package/lib/openxml/word/InlineText.js +2 -2
  269. package/lib/openxml/word/NoBreakHyphen.d.ts +2 -0
  270. package/lib/openxml/word/NoBreakHyphen.js +11 -0
  271. package/lib/openxml/word/Note.d.ts +12 -0
  272. package/lib/openxml/word/Note.js +52 -0
  273. package/lib/openxml/word/Paragraph.d.ts +2 -2
  274. package/lib/openxml/word/Paragraph.js +11 -10
  275. package/lib/openxml/word/Pict.d.ts +1 -2
  276. package/lib/openxml/word/Pict.js +5 -3
  277. package/lib/openxml/word/Ruby.js +4 -4
  278. package/lib/openxml/word/Run.d.ts +7 -3
  279. package/lib/openxml/word/Run.js +29 -5
  280. package/lib/openxml/word/Section.d.ts +18 -5
  281. package/lib/openxml/word/Section.js +47 -3
  282. package/lib/openxml/word/Separator.d.ts +5 -0
  283. package/lib/openxml/word/Separator.js +14 -0
  284. package/lib/openxml/word/SoftHyphen.d.ts +5 -0
  285. package/lib/openxml/word/SoftHyphen.js +14 -0
  286. package/lib/openxml/word/Table.d.ts +4 -9
  287. package/lib/openxml/word/Table.js +0 -235
  288. package/lib/openxml/word/WDocument.d.ts +1 -2
  289. package/lib/openxml/word/WDocument.js +53 -7
  290. package/lib/openxml/word/numbering/AbstractNum.js +5 -3
  291. package/lib/openxml/word/numbering/Lvl.js +11 -5
  292. package/lib/openxml/word/numbering/Num.js +12 -4
  293. package/lib/openxml/word/numbering/NumberProperties.js +2 -2
  294. package/lib/openxml/word/numbering/Numbering.js +3 -3
  295. package/lib/openxml/word/table/Tc.d.ts +1 -22
  296. package/lib/openxml/word/table/Tc.js +0 -224
  297. package/lib/openxml/word/table/Tr.d.ts +0 -5
  298. package/lib/openxml/word/table/Tr.js +0 -97
  299. package/lib/openxml/word/wps/WPG.d.ts +5 -0
  300. package/lib/openxml/word/wps/WPS.d.ts +18 -0
  301. package/lib/openxml/word/wps/WPS.js +151 -0
  302. package/lib/openxml/word/wps/WPSStyle.d.ts +10 -0
  303. package/lib/openxml/word/wps/WPSStyle.js +46 -0
  304. package/lib/package/PackageParser.d.ts +1 -1
  305. package/lib/package/XMLPackageParser.d.ts +3 -3
  306. package/lib/package/ZipPackageParser.d.ts +1 -1
  307. package/lib/package/ZipPackageParser.js +7 -8
  308. package/lib/parse/Footnotes.d.ts +3 -0
  309. package/lib/parse/Footnotes.js +29 -0
  310. package/lib/parse/colorNameMap.d.ts +6 -0
  311. package/lib/parse/colorNameMap.js +205 -0
  312. package/lib/parse/jcToTextAlign.js +1 -0
  313. package/lib/parse/mergeSdt.d.ts +4 -0
  314. package/lib/parse/mergeSdt.js +61 -0
  315. package/lib/parse/modifyColor.d.ts +1 -0
  316. package/lib/parse/modifyColor.js +110 -0
  317. package/lib/parse/parseBorder.js +3 -22
  318. package/lib/parse/parseCellMargin.d.ts +2 -0
  319. package/lib/parse/parseCellMargin.js +42 -0
  320. package/lib/parse/parseChildColor.d.ts +5 -0
  321. package/lib/parse/parseChildColor.js +70 -0
  322. package/lib/parse/parseColor.d.ts +4 -0
  323. package/lib/parse/parseColor.js +41 -45
  324. package/lib/parse/parseEndnotes.d.ts +3 -0
  325. package/lib/parse/parseEndnotes.js +29 -0
  326. package/lib/parse/parseFont.js +2 -2
  327. package/lib/parse/parseInsideBorders.d.ts +9 -0
  328. package/lib/parse/parseInsideBorders.js +28 -0
  329. package/lib/parse/parsePr.d.ts +3 -0
  330. package/lib/parse/parsePr.js +109 -12
  331. package/lib/parse/parseRelationship.js +2 -2
  332. package/lib/parse/parseSdt.d.ts +5 -0
  333. package/lib/parse/parseShape.d.ts +10 -0
  334. package/lib/parse/parseShape.js +247 -0
  335. package/lib/parse/parseSize.d.ts +2 -1
  336. package/lib/parse/parseSize.js +7 -0
  337. package/lib/parse/parseSpacing.js +1 -1
  338. package/lib/parse/parseTable.d.ts +3 -0
  339. package/lib/parse/parseTable.js +66 -0
  340. package/lib/parse/parseTablePr.d.ts +3 -0
  341. package/lib/parse/parseTablePr.js +189 -0
  342. package/lib/parse/parseTblWidth.d.ts +4 -0
  343. package/lib/parse/parseTblWidth.js +27 -0
  344. package/lib/parse/parseTc.d.ts +10 -0
  345. package/lib/parse/parseTc.js +68 -0
  346. package/lib/parse/parseTcPr.d.ts +5 -0
  347. package/lib/parse/parseTcPr.js +104 -0
  348. package/lib/parse/parseTextDirection.js +4 -6
  349. package/lib/parse/parseTr.d.ts +6 -0
  350. package/lib/parse/parseTr.js +53 -0
  351. package/lib/parse/parseTrPr.d.ts +3 -0
  352. package/lib/parse/parseTrPr.js +63 -0
  353. package/lib/render/fixAbsolutePosition.d.ts +8 -0
  354. package/lib/render/renderBody.d.ts +6 -2
  355. package/lib/render/renderBody.js +183 -29
  356. package/lib/render/renderBr.d.ts +2 -1
  357. package/lib/render/renderBr.js +4 -1
  358. package/lib/render/renderCustGeom.d.ts +4 -0
  359. package/lib/render/renderCustGeom.js +14 -0
  360. package/lib/render/renderDocument.d.ts +2 -2
  361. package/lib/render/renderDocument.js +2 -2
  362. package/lib/render/renderDrawing.d.ts +3 -2
  363. package/lib/render/renderDrawing.js +129 -24
  364. package/lib/render/renderFont.d.ts +5 -0
  365. package/lib/render/renderFont.js +43 -0
  366. package/lib/render/renderGeom.d.ts +4 -0
  367. package/lib/render/renderGeom.js +18 -0
  368. package/lib/render/renderHeader.d.ts +6 -0
  369. package/lib/render/renderHeader.js +44 -0
  370. package/lib/render/renderHyperLink.js +5 -2
  371. package/lib/render/renderInlineText.js +2 -2
  372. package/lib/render/renderInstrText.js +2 -2
  373. package/lib/render/renderMath.d.ts +3 -0
  374. package/lib/render/renderMath.js +11 -0
  375. package/lib/render/renderNoBreakHyphen.d.ts +1 -0
  376. package/lib/render/renderNoBreakHyphen.js +13 -0
  377. package/lib/render/renderNotes.d.ts +5 -0
  378. package/lib/render/renderNotes.js +81 -0
  379. package/lib/render/renderNumbering.js +9 -11
  380. package/lib/render/renderParagraph.d.ts +1 -1
  381. package/lib/render/renderParagraph.js +26 -29
  382. package/lib/render/renderPict.js +5 -10
  383. package/lib/render/renderRuby.js +3 -3
  384. package/lib/render/renderRun.d.ts +4 -2
  385. package/lib/render/renderRun.js +34 -9
  386. package/lib/render/renderSection.d.ts +3 -2
  387. package/lib/render/renderSection.js +79 -5
  388. package/lib/render/renderSeparator.d.ts +1 -0
  389. package/lib/render/renderSeparator.js +13 -0
  390. package/lib/render/renderSoftHyphen.d.ts +1 -0
  391. package/lib/render/renderSoftHyphen.js +13 -0
  392. package/lib/render/renderStyle.js +37 -36
  393. package/lib/render/renderTab.d.ts +1 -0
  394. package/lib/render/renderTab.js +4 -6
  395. package/lib/render/renderTable.js +25 -22
  396. package/lib/render/setElementStyle.js +6 -1
  397. package/lib/render/zindex.d.ts +1 -0
  398. package/lib/util/blob.js +0 -10
  399. package/lib/util/color.d.ts +48 -0
  400. package/lib/util/color.js +215 -0
  401. package/lib/util/createObject.d.ts +10 -0
  402. package/lib/util/createObject.js +54 -0
  403. package/lib/util/dom.d.ts +8 -4
  404. package/lib/util/dom.js +24 -5
  405. package/lib/util/mergeRun.js +5 -5
  406. package/lib/util/parseSides.d.ts +11 -0
  407. package/lib/util/print.d.ts +5 -0
  408. package/lib/util/print.js +58 -0
  409. package/lib/util/replaceVar.d.ts +10 -0
  410. package/lib/util/replaceVar.js +219 -0
  411. package/lib/util/xml.js +4 -0
  412. package/package.json +17 -6
  413. package/esm/node_modules/tslib/tslib.es6.js +0 -120
  414. package/esm/openxml/Types.js +0 -1003
  415. package/esm/openxml/word/CustomXml.d.ts +0 -8
  416. package/esm/openxml/word/SmartTag.d.ts +0 -8
  417. package/esm/openxml/word/SmartTag.js +0 -18
  418. package/esm/openxml/word/drawing/Blip.d.ts +0 -6
  419. package/esm/openxml/word/drawing/Drawing.d.ts +0 -6
  420. package/esm/openxml/word/drawing/Drawing.js +0 -15
  421. package/esm/openxml/word/drawing/Pic.d.ts +0 -8
  422. package/esm/openxml/word/drawing/Pic.js +0 -16
  423. package/esm/openxml/word/drawing/ShapeProperties.d.ts +0 -9
  424. package/esm/openxml/word/drawing/ShapeProperties.js +0 -20
  425. package/lib/node_modules/tslib/tslib.es6.js +0 -129
  426. package/lib/openxml/Types.js +0 -1005
  427. package/lib/openxml/word/CustomXml.d.ts +0 -8
  428. package/lib/openxml/word/SmartTag.d.ts +0 -8
  429. package/lib/openxml/word/SmartTag.js +0 -22
  430. package/lib/openxml/word/drawing/Blip.d.ts +0 -6
  431. package/lib/openxml/word/drawing/Drawing.d.ts +0 -6
  432. package/lib/openxml/word/drawing/Drawing.js +0 -19
  433. package/lib/openxml/word/drawing/Pic.d.ts +0 -8
  434. package/lib/openxml/word/drawing/Pic.js +0 -20
  435. package/lib/openxml/word/drawing/ShapeProperties.d.ts +0 -9
  436. package/lib/openxml/word/drawing/ShapeProperties.js +0 -24
package/lib/Word.js CHANGED
@@ -2,7 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var tslib_es6 = require('./node_modules/tslib/tslib.es6.js');
5
+ var tslib = require('tslib');
6
+ var FontTable = require('./openxml/word/FontTable.js');
6
7
  var parseRelationship = require('./parse/parseRelationship.js');
7
8
  var ContentType = require('./openxml/ContentType.js');
8
9
  var Style = require('./openxml/Style.js');
@@ -17,20 +18,38 @@ var WDocument = require('./openxml/word/WDocument.js');
17
18
  var renderRun = require('./render/renderRun.js');
18
19
  var ZipPackageParser = require('./package/ZipPackageParser.js');
19
20
  var xml = require('./util/xml.js');
21
+ var Font = require('./openxml/word/Font.js');
22
+ var renderFont = require('./render/renderFont.js');
23
+ var replaceVar = require('./util/replaceVar.js');
24
+ var Footnotes = require('./parse/Footnotes.js');
25
+ var parseEndnotes = require('./parse/parseEndnotes.js');
26
+ var renderNotes = require('./render/renderNotes.js');
27
+ var print = require('./util/print.js');
28
+ var Settings = require('./openxml/Settings.js');
20
29
 
21
- /**
22
- * 总入口,它将包括所有 word 文档信息,后续渲染的时候依赖它来获取关联信息
23
- */
24
30
  var defaultRenderOptions = {
25
- imageDataURL: false,
26
31
  classPrefix: 'docx-viewer',
27
- inWrap: true,
32
+ page: false,
33
+ pageWrap: true,
28
34
  bulletUseFont: true,
29
35
  ignoreHeight: true,
30
- ignoreWidth: true,
36
+ ignoreWidth: false,
31
37
  minLineHeight: 1.0,
32
38
  enableVar: false,
33
- debug: false
39
+ debug: false,
40
+ pageWrapPadding: 20,
41
+ pageMarginBottom: 20,
42
+ pageShadow: true,
43
+ pageBackground: '#FFFFFF',
44
+ pageWrapBackground: '#ECECEC',
45
+ printWaitTime: 100,
46
+ zoomFitWidth: false,
47
+ renderHeader: true,
48
+ renderFooter: true,
49
+ data: {},
50
+ evalVar: function (t) {
51
+ return t;
52
+ }
34
53
  };
35
54
  var Word = /** @class */ (function () {
36
55
  /**
@@ -55,11 +74,21 @@ var Word = /** @class */ (function () {
55
74
  */
56
75
  this.styleIdNum = 0;
57
76
  this.wrapClassName = 'docx-viewer-wrapper';
77
+ this.footNotes = {};
78
+ this.endNotes = {};
58
79
  this.inited = false;
80
+ /**
81
+ * 分页标记,如果为 true,那么在渲染的时候会强制分页
82
+ */
83
+ this.breakPage = false;
59
84
  parser.load(docFile);
60
85
  this.id = Word.globalId++;
61
86
  this.parser = parser;
62
- this.renderOptions = tslib_es6.__assign(tslib_es6.__assign({}, defaultRenderOptions), renderOptions);
87
+ this.renderOptions = tslib.__assign(tslib.__assign({}, defaultRenderOptions), renderOptions);
88
+ if (this.renderOptions.page) {
89
+ this.renderOptions.ignoreHeight = false;
90
+ this.renderOptions.ignoreWidth = false;
91
+ }
63
92
  }
64
93
  /**
65
94
  * 初始化一些公共资源,比如
@@ -70,10 +99,14 @@ var Word = /** @class */ (function () {
70
99
  }
71
100
  // 这个必须在最前面,因为后面很多依赖它来查找文件的
72
101
  this.initContentType();
102
+ // relation 需要排第二
103
+ this.initRelation();
104
+ this.initSettings();
73
105
  this.initTheme();
106
+ this.initFontTable();
74
107
  this.initStyle();
75
- this.initRelation();
76
108
  this.initNumbering();
109
+ this.initNotes();
77
110
  this.inited = true;
78
111
  };
79
112
  /**
@@ -82,7 +115,7 @@ var Word = /** @class */ (function () {
82
115
  Word.prototype.initTheme = function () {
83
116
  var e_1, _a;
84
117
  try {
85
- for (var _b = tslib_es6.__values(this.conentTypes.overrides), _c = _b.next(); !_c.done; _c = _b.next()) {
118
+ for (var _b = tslib.__values(this.conentTypes.overrides), _c = _b.next(); !_c.done; _c = _b.next()) {
86
119
  var override = _c.value;
87
120
  if (override.partName.startsWith('/word/theme')) {
88
121
  var theme = this.parser.getXML(override.partName);
@@ -104,7 +137,7 @@ var Word = /** @class */ (function () {
104
137
  Word.prototype.initStyle = function () {
105
138
  var e_2, _a;
106
139
  try {
107
- for (var _b = tslib_es6.__values(this.conentTypes.overrides), _c = _b.next(); !_c.done; _c = _b.next()) {
140
+ for (var _b = tslib.__values(this.conentTypes.overrides), _c = _b.next(); !_c.done; _c = _b.next()) {
108
141
  var override = _c.value;
109
142
  if (override.partName.startsWith('/word/styles.xml')) {
110
143
  this.styles = Style.parseStyles(this, this.parser.getXML('/word/styles.xml'));
@@ -119,6 +152,48 @@ var Word = /** @class */ (function () {
119
152
  finally { if (e_2) throw e_2.error; }
120
153
  }
121
154
  };
155
+ /**
156
+ * 解析全局配置
157
+ */
158
+ Word.prototype.initSettings = function () {
159
+ var e_3, _a;
160
+ try {
161
+ for (var _b = tslib.__values(this.conentTypes.overrides), _c = _b.next(); !_c.done; _c = _b.next()) {
162
+ var override = _c.value;
163
+ if (override.partName.startsWith('/word/settings.xml')) {
164
+ this.settings = Settings.Settings.parse(this, this.parser.getXML('/word/settings.xml'));
165
+ }
166
+ }
167
+ }
168
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
169
+ finally {
170
+ try {
171
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
172
+ }
173
+ finally { if (e_3) throw e_3.error; }
174
+ }
175
+ };
176
+ /**
177
+ * 解析字体表
178
+ */
179
+ Word.prototype.initFontTable = function () {
180
+ var e_4, _a;
181
+ try {
182
+ for (var _b = tslib.__values(this.conentTypes.overrides), _c = _b.next(); !_c.done; _c = _b.next()) {
183
+ var override = _c.value;
184
+ if (override.partName.startsWith('/word/fontTable.xml')) {
185
+ this.fontTable = FontTable.FontTable.fromXML(this, this.parser.getXML('/word/fontTable.xml'));
186
+ }
187
+ }
188
+ }
189
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
190
+ finally {
191
+ try {
192
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
193
+ }
194
+ finally { if (e_4) throw e_4.error; }
195
+ }
196
+ };
122
197
  /**
123
198
  * 解析关系
124
199
  */
@@ -127,11 +202,17 @@ var Word = /** @class */ (function () {
127
202
  if (this.parser.fileExists('/_rels/.rels')) {
128
203
  rels = parseRelationship.parseRelationships(this.parser.getXML('/_rels/.rels'), 'root');
129
204
  }
205
+ this.relationships = rels;
130
206
  var documentRels = {};
131
207
  if (this.parser.fileExists('/word/_rels/document.xml.rels')) {
132
208
  documentRels = parseRelationship.parseRelationships(this.parser.getXML('/word/_rels/document.xml.rels'), 'word');
133
209
  }
134
- this.relationships = tslib_es6.__assign(tslib_es6.__assign({}, rels), documentRels);
210
+ this.documentRels = documentRels;
211
+ var fontTableRels = {};
212
+ if (this.parser.fileExists('/word/_rels/fontTable.xml.rels')) {
213
+ fontTableRels = parseRelationship.parseRelationships(this.parser.getXML('/word/_rels/fontTable.xml.rels'), 'word');
214
+ }
215
+ this.fontTableRels = fontTableRels;
135
216
  };
136
217
  /**
137
218
  * 解析全局配置
@@ -144,9 +225,9 @@ var Word = /** @class */ (function () {
144
225
  * 解析 numbering
145
226
  */
146
227
  Word.prototype.initNumbering = function () {
147
- var e_3, _a;
228
+ var e_5, _a;
148
229
  try {
149
- for (var _b = tslib_es6.__values(this.conentTypes.overrides), _c = _b.next(); !_c.done; _c = _b.next()) {
230
+ for (var _b = tslib.__values(this.conentTypes.overrides), _c = _b.next(); !_c.done; _c = _b.next()) {
150
231
  var override = _c.value;
151
232
  if (override.partName.startsWith('/word/numbering')) {
152
233
  var numberingData = this.parser.getXML(override.partName);
@@ -154,32 +235,88 @@ var Word = /** @class */ (function () {
154
235
  }
155
236
  }
156
237
  }
157
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
238
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
158
239
  finally {
159
240
  try {
160
241
  if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
161
242
  }
162
- finally { if (e_3) throw e_3.error; }
243
+ finally { if (e_5) throw e_5.error; }
244
+ }
245
+ };
246
+ Word.prototype.initNotes = function () {
247
+ var e_6, _a;
248
+ try {
249
+ for (var _b = tslib.__values(this.conentTypes.overrides), _c = _b.next(); !_c.done; _c = _b.next()) {
250
+ var override = _c.value;
251
+ if (override.partName.startsWith('/word/footnotes.xml')) {
252
+ var notesData = this.parser.getXML(override.partName);
253
+ this.footNotes = Footnotes.parseFootnotes(this, notesData);
254
+ }
255
+ if (override.partName.startsWith('/word/endnotes.xml')) {
256
+ var notesData = this.parser.getXML(override.partName);
257
+ this.endNotes = parseEndnotes.parseEndnotes(this, notesData);
258
+ }
259
+ }
260
+ }
261
+ catch (e_6_1) { e_6 = { error: e_6_1 }; }
262
+ finally {
263
+ try {
264
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
265
+ }
266
+ finally { if (e_6) throw e_6.error; }
163
267
  }
164
268
  };
165
269
  /**
166
- * 根据 id 获取关系
270
+ * 获取全局关系
167
271
  */
168
272
  Word.prototype.getRelationship = function (id) {
169
- if (id) {
273
+ if (id && this.relationships) {
170
274
  return this.relationships[id];
171
275
  }
172
276
  return null;
173
277
  };
174
278
  /**
175
- * 进行文本替换
279
+ * 获取文档对应的关系
280
+ */
281
+ Word.prototype.getDocumentRels = function (id) {
282
+ if (id && this.documentRels) {
283
+ return this.documentRels[id];
284
+ }
285
+ return null;
286
+ };
287
+ /**
288
+ * 获取字体对应的关系
289
+ */
290
+ Word.prototype.getFontTableRels = function (id) {
291
+ if (id && this.fontTableRels) {
292
+ return this.fontTableRels[id];
293
+ }
294
+ return null;
295
+ };
296
+ /**
297
+ * 进行单个文本替换
176
298
  */
177
299
  Word.prototype.replaceText = function (text) {
178
- if (this.renderOptions.enableVar === false ||
179
- !this.renderOptions.replaceText) {
300
+ if (this.renderOptions.enableVar === false) {
180
301
  return text;
181
302
  }
182
- return this.renderOptions.replaceText(text);
303
+ var data = this.renderOptions.data;
304
+ if (text.indexOf('{{') !== -1) {
305
+ text = text.replace(/^{{/g, '').replace(/}}$/g, '');
306
+ var result = this.renderOptions.evalVar(text, data);
307
+ if (typeof result === 'undefined') {
308
+ return '';
309
+ }
310
+ return String(result);
311
+ }
312
+ return text;
313
+ };
314
+ Word.prototype.loadWordRelXML = function (relation) {
315
+ var path = relation.target;
316
+ if (relation.part === 'word') {
317
+ path = 'word/' + path;
318
+ }
319
+ return this.getXML(path);
183
320
  };
184
321
  /**
185
322
  * 加载图片
@@ -191,14 +328,22 @@ var Word = /** @class */ (function () {
191
328
  }
192
329
  var data = this.parser.getFileByType(path, 'blob');
193
330
  if (data) {
194
- if (this.renderOptions.imageDataURL) {
195
- return blob.blobToDataURL(data);
196
- }
197
- else {
198
- return new Promise(function (resolve, reject) {
199
- resolve(URL.createObjectURL(data));
200
- });
201
- }
331
+ return URL.createObjectURL(data);
332
+ }
333
+ return null;
334
+ };
335
+ Word.prototype.loadFont = function (rId, key) {
336
+ var relation = this.getFontTableRels(rId);
337
+ if (!relation) {
338
+ return null;
339
+ }
340
+ var path = relation.target;
341
+ if (relation.part === 'word') {
342
+ path = 'word/' + path;
343
+ }
344
+ var data = this.parser.getFileByType(path, 'uint8array');
345
+ if (data) {
346
+ return URL.createObjectURL(new Blob([Font.deobfuscate(data, key)]));
202
347
  }
203
348
  return null;
204
349
  };
@@ -237,8 +382,9 @@ var Word = /** @class */ (function () {
237
382
  * 添加新样式,主要用于表格的单元格样式
238
383
  */
239
384
  Word.prototype.appendStyle = function (style) {
240
- var styleElement = document.createElement('style');
241
- styleElement.innerHTML = style;
385
+ if (style === void 0) { style = ''; }
386
+ var styleElement = dom.createElement('style');
387
+ styleElement.textContent = style;
242
388
  this.rootElement.appendChild(styleElement);
243
389
  };
244
390
  /**
@@ -257,6 +403,13 @@ var Word = /** @class */ (function () {
257
403
  }
258
404
  return classNames;
259
405
  };
406
+ /**
407
+ * 根据 id 获取样式
408
+ * @param styleId
409
+ */
410
+ Word.prototype.getStyle = function (styleId) {
411
+ return this.styles.styleMap[styleId];
412
+ };
260
413
  /**
261
414
  * 渲染时的 css 类前缀
262
415
  */
@@ -264,11 +417,28 @@ var Word = /** @class */ (function () {
264
417
  return "".concat(this.renderOptions.classPrefix, "-").concat(this.id);
265
418
  };
266
419
  /**
267
- * 获取主题色,目前基于 css 变量实现,方便动态修改
420
+ * 获取主题色
268
421
  */
269
422
  Word.prototype.getThemeColor = function (name) {
270
- return "var(--docx-".concat(this.id, "-theme-").concat(name, "-color)");
423
+ var _a, _b, _c;
424
+ if (this.settings.clrSchemeMapping) {
425
+ name = this.settings.clrSchemeMapping[name] || name;
426
+ }
427
+ if (this.themes && this.themes.length > 0) {
428
+ var theme = this.themes[0];
429
+ var color = (_c = (_b = (_a = theme.themeElements) === null || _a === void 0 ? void 0 : _a.clrScheme) === null || _b === void 0 ? void 0 : _b.colors) === null || _c === void 0 ? void 0 : _c[name];
430
+ if (color) {
431
+ return color;
432
+ }
433
+ else {
434
+ console.warn('unknown theme color: ' + name);
435
+ }
436
+ }
437
+ return '';
271
438
  };
439
+ /**
440
+ * 添加类,自动加上前缀
441
+ */
272
442
  Word.prototype.addClass = function (element, className) {
273
443
  element.classList.add("".concat(this.getClassPrefix(), "-").concat(className));
274
444
  };
@@ -276,9 +446,7 @@ var Word = /** @class */ (function () {
276
446
  * 更新页面中的变量,这个要在 render 后运行
277
447
  */
278
448
  Word.prototype.updateVariable = function () {
279
- if (!this.rootElement ||
280
- this.renderOptions.enableVar === false ||
281
- !this.renderOptions.replaceText) {
449
+ if (!this.rootElement || this.renderOptions.enableVar === false) {
282
450
  return;
283
451
  }
284
452
  renderRun.updateVariableText(this);
@@ -289,12 +457,13 @@ var Word = /** @class */ (function () {
289
457
  Word.prototype.download = function (fileName) {
290
458
  if (fileName === void 0) { fileName = 'document.docx'; }
291
459
  var documentData = this.getXML('word/document.xml');
292
- if (this.renderOptions.enableVar && this.renderOptions.replaceText) {
460
+ if (this.renderOptions.enableVar) {
293
461
  mergeRun.mergeRun(this, documentData);
462
+ replaceVar.replaceVar(this, documentData);
294
463
  // 对文本进行替换
295
464
  var ts = documentData.getElementsByTagName('w:t');
296
465
  for (var i = 0; i < ts.length; i++) {
297
- ts[i].textContent = this.replaceText(ts[i].textContent || '');
466
+ replaceVar.replaceT(this, ts[i], this.renderOptions.data);
298
467
  }
299
468
  }
300
469
  var blob$1 = this.parser.generateZip(xml.buildXML(documentData));
@@ -304,26 +473,28 @@ var Word = /** @class */ (function () {
304
473
  * 打印功能
305
474
  */
306
475
  Word.prototype.print = function () {
307
- var _a, _b;
308
- return tslib_es6.__awaiter(this, void 0, void 0, function () {
309
- var iframe;
310
- return tslib_es6.__generator(this, function (_c) {
311
- switch (_c.label) {
476
+ return tslib.__awaiter(this, void 0, void 0, function () {
477
+ var iframe, printDocument;
478
+ return tslib.__generator(this, function (_a) {
479
+ switch (_a.label) {
312
480
  case 0:
313
481
  iframe = document.createElement('iframe');
314
482
  iframe.style.position = 'absolute';
315
483
  iframe.style.top = '-10000px';
316
484
  document.body.appendChild(iframe);
317
- (_a = iframe.contentDocument) === null || _a === void 0 ? void 0 : _a.write('<div id="print"></div>');
318
- return [4 /*yield*/, this.render((_b = iframe.contentDocument) === null || _b === void 0 ? void 0 : _b.getElementById('print'))];
485
+ printDocument = iframe.contentDocument;
486
+ if (!printDocument) {
487
+ console.warn('printDocument is null');
488
+ return [2 /*return*/, null];
489
+ }
490
+ printDocument.write("<style>\n html, body { margin:0; padding:0 }\n @page { size: auto; margin: 0mm; }\n </style>\n <div id=\"print\"></div>");
491
+ return [4 /*yield*/, this.render(printDocument.getElementById('print'), tslib.__assign({ page: true, pageWrap: false, pageShadow: false, pageMarginBottom: 0, pageWrapPadding: undefined, zoom: 1 }, this.renderOptions.printOptions))];
319
492
  case 1:
320
- _c.sent();
493
+ _a.sent();
321
494
  setTimeout(function () {
322
- var _a, _b;
323
495
  iframe.focus();
324
- (_a = iframe.contentWindow) === null || _a === void 0 ? void 0 : _a.print();
325
- (_b = iframe.parentNode) === null || _b === void 0 ? void 0 : _b.removeChild(iframe);
326
- }, 100);
496
+ print.printIframe(iframe);
497
+ }, this.renderOptions.printWaitTime || 100); // 需要等一下图片渲染
327
498
  window.focus();
328
499
  return [2 /*return*/];
329
500
  }
@@ -334,32 +505,40 @@ var Word = /** @class */ (function () {
334
505
  * 渲染文档入口
335
506
  *
336
507
  * @param root 渲染的根节点
508
+ * @param renderOptionsOverride 临时覆盖某些渲选项
337
509
  */
338
- Word.prototype.render = function (root) {
339
- return tslib_es6.__awaiter(this, void 0, void 0, function () {
510
+ Word.prototype.render = function (root, renderOptionsOverride) {
511
+ if (renderOptionsOverride === void 0) { renderOptionsOverride = {}; }
512
+ return tslib.__awaiter(this, void 0, void 0, function () {
340
513
  var renderOptions, isDebug, documentData, document, documentElement;
341
- return tslib_es6.__generator(this, function (_a) {
514
+ return tslib.__generator(this, function (_a) {
342
515
  this.init();
343
- renderOptions = this.renderOptions;
516
+ this.currentPage = 0;
517
+ renderOptions = tslib.__assign(tslib.__assign({}, this.renderOptions), renderOptionsOverride);
344
518
  isDebug = renderOptions.debug;
345
519
  isDebug && console.log('init', this);
346
520
  this.rootElement = root;
347
521
  root.innerHTML = '';
348
522
  documentData = this.getXML('word/document.xml');
349
523
  isDebug && console.log('documentData', documentData);
350
- if (renderOptions.enableVar && renderOptions.replaceText) {
524
+ if (renderOptions.enableVar) {
351
525
  mergeRun.mergeRun(this, documentData);
526
+ replaceVar.replaceVar(this, documentData);
352
527
  // 这里不进行变量替换,方便后续进行局部替换来更新变量
353
528
  }
354
529
  document = WDocument.WDocument.fromXML(this, documentData);
355
530
  isDebug && console.log('document', document);
356
- documentElement = renderDocument["default"](this, document);
531
+ documentElement = renderDocument["default"](root, this, document, renderOptions);
357
532
  root.classList.add(this.getClassPrefix());
358
- if (renderOptions.inWrap) {
533
+ if (renderOptions.page && renderOptions.pageWrap) {
359
534
  root.classList.add(this.wrapClassName);
535
+ root.style.padding = "".concat(renderOptions.pageWrapPadding || 0, "pt");
536
+ root.style.background = renderOptions.pageWrapBackground || '#ECECEC';
360
537
  }
361
538
  dom.appendChild(root, renderStyle.renderStyle(this));
539
+ dom.appendChild(root, renderFont.renderFont(this.fontTable));
362
540
  dom.appendChild(root, documentElement);
541
+ dom.appendChild(root, renderNotes.renderNotes(this));
363
542
  return [2 /*return*/];
364
543
  });
365
544
  });
@@ -2,17 +2,31 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ var tslib = require('tslib');
6
+
5
7
  /**
6
8
  * 解析 [Content_Types].xml
7
9
  */
8
10
  function parseContentType(doc) {
11
+ var e_1, _a;
9
12
  var types = { overrides: [] };
10
- doc.querySelectorAll('Override').forEach(function (item) {
11
- types.overrides.push({
12
- partName: item.getAttribute('PartName'),
13
- contentType: item.getAttribute('ContentType')
14
- });
15
- });
13
+ var overrides = [].slice.call(doc.getElementsByTagName('Override'));
14
+ try {
15
+ for (var overrides_1 = tslib.__values(overrides), overrides_1_1 = overrides_1.next(); !overrides_1_1.done; overrides_1_1 = overrides_1.next()) {
16
+ var item = overrides_1_1.value;
17
+ types.overrides.push({
18
+ partName: item.getAttribute('PartName'),
19
+ contentType: item.getAttribute('ContentType')
20
+ });
21
+ }
22
+ }
23
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
24
+ finally {
25
+ try {
26
+ if (overrides_1_1 && !overrides_1_1.done && (_a = overrides_1.return)) _a.call(overrides_1);
27
+ }
28
+ finally { if (e_1) throw e_1.error; }
29
+ }
16
30
  return types;
17
31
  }
18
32
 
@@ -0,0 +1,10 @@
1
+ /**
2
+ * 解析 settings.xml,只支持一小部分
3
+ *
4
+ */
5
+ import Word from '../Word';
6
+ export declare class Settings {
7
+ clrSchemeMapping: Record<string, string>;
8
+ autoHyphenation: boolean;
9
+ static parse(word: Word, doc: Document): Settings;
10
+ }
@@ -0,0 +1,97 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib = require('tslib');
6
+ var OpenXML = require('../OpenXML.js');
7
+
8
+ /**
9
+ * 解析 settings.xml,只支持一小部分
10
+ *
11
+ */
12
+ /**
13
+ * 解析颜色映射
14
+ * http://webapp.docx4java.org/OnlineDemo/ecma376/WordML/clrSchemeMapping.html
15
+ */
16
+ function parseClrSchemeMapping(element) {
17
+ var e_1, _a;
18
+ var clrSchemeMapping = {};
19
+ try {
20
+ for (var _b = tslib.__values(element.attributes), _c = _b.next(); !_c.done; _c = _b.next()) {
21
+ var attribute = _c.value;
22
+ var name_1 = attribute.name.replace('w:', '');
23
+ var value = attribute.value;
24
+ // 文档里也说了这个等于 lt1
25
+ if (value === 'light1') {
26
+ value = 'lt1';
27
+ }
28
+ else if (value === 'light2') {
29
+ value = 'lt2';
30
+ }
31
+ else if (value === 'dark1') {
32
+ value = 'dk1';
33
+ }
34
+ else if (value === 'dark2') {
35
+ value = 'dk2';
36
+ }
37
+ clrSchemeMapping[name_1] = value;
38
+ }
39
+ }
40
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
41
+ finally {
42
+ try {
43
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
44
+ }
45
+ finally { if (e_1) throw e_1.error; }
46
+ }
47
+ if (!clrSchemeMapping.bg1) {
48
+ clrSchemeMapping.bg1 = 'lt1';
49
+ }
50
+ if (!clrSchemeMapping.bg2) {
51
+ clrSchemeMapping.bg2 = 'lt2';
52
+ }
53
+ if (!clrSchemeMapping.tx1) {
54
+ clrSchemeMapping.tx1 = 'dk1';
55
+ }
56
+ return clrSchemeMapping;
57
+ }
58
+ var Settings = /** @class */ (function () {
59
+ function Settings() {
60
+ this.clrSchemeMapping = {};
61
+ this.autoHyphenation = false;
62
+ }
63
+ Settings.parse = function (word, doc) {
64
+ var e_2, _a;
65
+ var settings = new Settings();
66
+ var rootElement = doc;
67
+ if (doc.firstElementChild &&
68
+ doc.firstElementChild.tagName === 'w:settings') {
69
+ rootElement = doc.getElementsByTagName('w:settings').item(0);
70
+ }
71
+ try {
72
+ for (var _b = tslib.__values(Array.from(rootElement.children)), _c = _b.next(); !_c.done; _c = _b.next()) {
73
+ var child = _c.value;
74
+ var tag = child.tagName;
75
+ switch (tag) {
76
+ case 'w:clrSchemeMapping':
77
+ settings.clrSchemeMapping = parseClrSchemeMapping(child);
78
+ break;
79
+ case 'w:autoHyphenation':
80
+ settings.autoHyphenation = OpenXML.getValBoolean(child, false);
81
+ break;
82
+ }
83
+ }
84
+ }
85
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
86
+ finally {
87
+ try {
88
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
89
+ }
90
+ finally { if (e_2) throw e_2.error; }
91
+ }
92
+ return settings;
93
+ };
94
+ return Settings;
95
+ }());
96
+
97
+ exports.Settings = Settings;
@@ -9,7 +9,7 @@ import { TablePr } from './word/Table';
9
9
  import { TcPr } from './word/table/Tc';
10
10
  import { TrPr } from './word/table/Tr';
11
11
  export interface CSSStyle {
12
- [key: string]: string;
12
+ [key: string]: string | number;
13
13
  }
14
14
  export interface TblStylePrStyle {
15
15
  rPr?: RunPr;