web-docx
v0.1.5
Published
HTML to DOCX converter
Maintainers
Readme
web docx
[![NPM Version][npm-image]][npm-url]
Convert HTML to Microsoft Word document
Base on html-to-docx
Installation
npm i web-docxor
yarn add web-docxUsage
import HtmlToDocx from 'web-docx';
await HtmlToDocx(htmlString, documentOptions, headerHTMLString, footerHTMLString);full fledged examples can be found under example/
Parameters
htmlString<[String]> clean html string equivalent of document content.headerHTMLString<[String]> clean html string equivalent of header. Defaults to<p></p>if header flag istrue.documentOptions<?[Object]>orientation<"portrait"|"landscape"> defines the general orientation of the document. Defaults to portrait.pageSize<?[Object]> Defaults to U.S. letter portrait orientation.width<[Number]> width of the page for all pages in this section in [TWIP]. Defaults to 12240. Maximum 31680. Supports equivalent measurement in [pixel], [cm] or [inch].height<[Number]> height of the page for all pages in this section in [TWIP]. Defaults to 15840. Maximum 31680. Supports equivalent measurement in [pixel], [cm] or [inch].
margins<?[Object]>top<[Number]> distance between the top of the text margins for the main document and the top of the page for all pages in this section in [TWIP]. Defaults to 1440. Supports equivalent measurement in [pixel], [cm] or [inch].right<[Number]> distance between the right edge of the page and the right edge of the text extents for this document in [TWIP]. Defaults to 1800. Supports equivalent measurement in [pixel], [cm] or [inch].bottom<[Number]> distance between the bottom of text margins for the document and the bottom of the page in [TWIP]. Defaults to 1440. Supports equivalent measurement in [pixel], [cm] or [inch].left<[Number]> distance between the left edge of the page and the left edge of the text extents for this document in [TWIP]. Defaults to 1800. Supports equivalent measurement in [pixel], [cm] or [inch].header<[Number]> distance from the top edge of the page to the top edge of the header in [TWIP]. Defaults to 720. Supports equivalent measurement in [pixel], [cm] or [inch].footer<[Number]> distance from the bottom edge of the page to the bottom edge of the footer in [TWIP]. Defaults to 720. Supports equivalent measurement in [pixel], [cm] or [inch].gutter<[Number]> amount of extra space added to the specified margin, above any existing margin values. This setting is typically used when a document is being created for binding in [TWIP]. Defaults to 0. Supports equivalent measurement in [pixel], [cm] or [inch].
title<?[String]> title of the document.subject<?[String]> subject of the document.creator<?[String]> creator of the document. Defaults tohtml-to-docxkeywords<?[Array]<[String]>> keywords associated with the document. Defaults to ['html-to-docx'].description<?[String]> description of the document.lastModifiedBy<?[String]> last modifier of the document. Defaults tohtml-to-docx.revision<?[Number]> revision of the document. Defaults to1.createdAt<?[Date]> time of creation of the document. Defaults to current time.modifiedAt<?[Date]> time of last modification of the document. Defaults to current time.headerType<"default"|"first"|"even"> type of header. Defaults todefault.header<?[Boolean]> flag to enable header. Defaults tofalse.footerType<"default"|"first"|"even"> type of footer. Defaults todefault.footer<?[Boolean]> flag to enable footer. Defaults tofalse.font<?[String]> font name to be used. Defaults toTimes New Roman.fontSize<?[Number]> size of font in HIP(Half of point). Defaults to22. Supports equivalent measure in [pt].complexScriptFontSize<?[Number]> size of complex script font in HIP(Half of point). Defaults to22. Supports equivalent measure in [pt].table<?[Object]>row<?[Object]>cantSplit<?[Boolean]> flag to allow table row to split across pages. Defaults tofalse.
pageNumber<?[Boolean]> flag to enable page number in footer. Defaults tofalse. Page number works only if footer flag is set astrue.skipFirstHeaderFooter<?[Boolean]> flag to skip first page header and footer. Defaults tofalse.lineNumber<?[Boolean]> flag to enable line numbering. Defaults tofalse.lineNumberOptions<?[Object]>start<[Number]> start of the numbering - 1. Defaults to0.countBy<[Number]> skip numbering in how many lines in between + 1. Defaults to1.restart<"continuous"|"newPage"|"newSection"> numbering restart strategy. Defaults tocontinuous.
numbering<?[Object]>defaultOrderedListStyleType<?[String]> default ordered list style type. Defaults todecimal.
decodeUnicode<?[Boolean]> flag to enable unicode decoding of header, body and footer. Defaults tofalse.lang<?[String]> language localization code for spell checker to work properly. Defaults toen-US.
footerHTMLString<[String]> clean html string equivalent of footer. Defaults to<p></p>if footer flag istrue.
Returns
<[Promise]<[Buffer]|[Blob]>>
Notes
Currently page break can be implemented by having div with classname "page-break" or style "page-break-after" despite
the values of the "page-break-after", and contents inside the div element will be ignored.
<div class="page-break" style="page-break-after: always;"></div>
CSS list-style-type for <ol> element are now supported. Just do something like this in the HTML:
<ol style="list-style-type:lower-alpha;">
<li>List item</li>
...
</ol>List of supported list-style-types:
- upper-alpha, will result in
A. List item - lower-alpha, will result in
a. List item - upper-roman, will result in
I. List item - lower-roman, will result in
i. List item - lower-alpha-bracket-end, will result in
a) List item - decimal-bracket-end, will result in
1) List item - decimal-bracket, will result in
(1) List item - decimal, (the default) will result in
1. List item
Also you could add attribute data-start="n" to start the numbering from the n-th.
<ol data-start="2"> will start the numbering from ( B. b. II. ii. 2. )
Font family doesnt work consistently for all word processor softwares
- Word Desktop work as intended
- LibreOffice ignores the fontTable.xml file, and finds a font by itself
- Word Online ignores the fontTable.xml file, and finds closest font in their font library
License
MIT
