Methods
(async) WHtml2docx(fpInHtml, fpOutDocx, optopt) → {Promise}
- Description:
Html檔轉Docx檔
轉檔由套件內之htmlToDocx.exe調用本機Microsoft Word(win32com)完成,故須於Windows且已安裝Word之機器執行。htmlToDocx.exe若不存在(安裝時npm封鎖scripts致postinstall未執行)會於轉檔當下自動下載,下載失敗則reject並帶網址與落點。 轉檔器內部失敗(Word未安裝、模板無法開啟、另存失敗等)一律reject並帶轉檔器回報之原因;resolve前另確認輸出檔已產生且非空。輸出資料夾不存在時自動建立
- Source:
Example
import w from 'wsemi'
import WHtml2docx from './src/WHtml2docx.mjs'
//import WHtml2docx from 'w-html2docx/src/WHtml2docx.mjs'
//import WHtml2docx from 'w-html2docx'
async function test() {
let fpIn = `./test/ztmp.html`
let fpOut = `./test/ztmp.docx`
let opt = {
imgRatioWidthMax: 0.5,
}
let r = await WHtml2docx(fpIn, fpOut, opt)
console.log(r)
// => ok
w.fsDeleteFile(fpOut)
}
test()
.catch((err) => {
console.log('catch', err)
})
Parameters:
| Name | Type | Attributes | Default | Description | |||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
fpInHtml |
String | 輸入來源Html檔位置字串 |
|||||||||||||||||||||||||||||||||||||
fpOutDocx |
String | 輸入轉出Docx檔位置字串 |
|||||||||||||||||||||||||||||||||||||
opt |
Object |
<optional> |
{}
|
輸入設定物件,預設{} Properties
|
Returns:
回傳Promise,resolve回傳'ok',reject回傳錯誤訊息字串
- Type
- Promise
(async) autoDownloadFiles() → {Promise}
- Description:
自動定位htmlToDocx.exe,若無檔案則自動下載,回傳htmlToDocx.exe的絕對路徑
依序偵測當前工作路徑的src/與node_modules/w-html2docx/src/,皆無htmlToDocx.exe時, 代表安裝時npm封鎖scripts致postinstall未執行,故自動調用downloadFiles重新下載
下載係先寫入暫存檔
htmlToDocx.exe.download,完成後才改名為htmlToDocx.exe,故下載中途斷線或程序被終止時不會留下截斷之htmlToDocx.exe,下次呼叫會重新下載; 下載失敗(斷網、代理不可達、非2xx回應、中途斷線)時reject字串failed to download url[網址] to file[落點]: 原因供w-html2docx自身與其他依賴w-html2docx的套件調用,無須各自實作偵測與下載邏輯
因htmlToDocx.exe只能用於Windows作業系統,故調用前須自行檢核作業系統
- Source:
Example
import autoDownloadFiles from 'w-html2docx/src/autoDownloadFiles.mjs'
async function test() {
//autoDownloadFiles, 無htmlToDocx.exe時自動下載, 下載失敗則reject
let { fpExe } = await autoDownloadFiles()
console.log('fpExe', fpExe)
// fpExe D:\xxx\node_modules\w-html2docx\src\htmlToDocx.exe
}
test()
.catch((err) => {
console.log('catch', err)
})
Returns:
回傳Promise,resolve回傳執行檔路徑物件,內含fpExe為htmlToDocx.exe的絕對路徑字串,reject回傳錯誤訊息
- Type
- Promise