html-docx-js-typescript
Version:
Convert HTML documents to docx format.
59 lines (55 loc) • 2.5 kB
text/typescript
export const defaultMargins = {
top: 1440,
right: 1440,
bottom: 1440,
left: 1440,
header: 720,
footer: 720,
gutter: 0,
}
export type Margins = typeof defaultMargins
export type Orient = 'landscape' | 'portrait'
export const documentTemplate = (width: number, height: number, orient: string, margins: Margins) => {
return `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<w:document
xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"
xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math"
xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"
xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing"
xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main"
xmlns:ns6="http://schemas.openxmlformats.org/schemaLibrary/2006/main"
xmlns:c="http://schemas.openxmlformats.org/drawingml/2006/chart"
xmlns:ns8="http://schemas.openxmlformats.org/drawingml/2006/chartDrawing"
xmlns:dgm="http://schemas.openxmlformats.org/drawingml/2006/diagram"
xmlns:pic="http://schemas.openxmlformats.org/drawingml/2006/picture"
xmlns:ns11="http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing"
xmlns:dsp="http://schemas.microsoft.com/office/drawing/2008/diagram"
xmlns:ns13="urn:schemas-microsoft-com:office:excel"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:w10="urn:schemas-microsoft-com:office:word"
xmlns:ns17="urn:schemas-microsoft-com:office:powerpoint"
xmlns:odx="http://opendope.org/xpaths"
xmlns:odc="http://opendope.org/conditions"
xmlns:odq="http://opendope.org/questions"
xmlns:odi="http://opendope.org/components"
xmlns:odgm="http://opendope.org/SmartArt/DataHierarchy"
xmlns:ns24="http://schemas.openxmlformats.org/officeDocument/2006/bibliography"
xmlns:ns25="http://schemas.openxmlformats.org/drawingml/2006/compatibility"
xmlns:ns26="http://schemas.openxmlformats.org/drawingml/2006/lockedCanvas">
<w:body>
<w:altChunk r:id="htmlChunk" />
<w:sectPr>
<w:pgSz w:w="${width}" w:h="${height}" w:orient="${orient}" />
<w:pgMar w:top="${margins.top}"
w:right="${margins.right}"
w:bottom="${margins.bottom}"
w:left="${margins.left}"
w:header="${margins.header}"
w:footer="${margins.footer}"
w:gutter="${margins.gutter}"/>
</w:sectPr>
</w:body>
</w:document>
`
}