office-viewer 0.1.0 → 0.1.4

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