mirror of
https://github.com/siyuan-note/siyuan.git
synced 2026-02-14 03:04:21 +01:00
🎨 支持合并子文档导出 Word/PDF https://github.com/siyuan-note/siyuan/issues/3219
This commit is contained in:
parent
8400173cba
commit
2f9f9ec360
8 changed files with 34 additions and 3 deletions
|
|
@ -70,6 +70,7 @@ const renderPDF = (id: string) => {
|
|||
pageSize: "A4",
|
||||
removeAssets: true,
|
||||
keepFold: false,
|
||||
mergeSubdocs: false,
|
||||
}));
|
||||
const servePath = window.location.protocol + "//" + window.location.host;
|
||||
const isDefault = (window.siyuan.config.appearance.mode === 1 && window.siyuan.config.appearance.themeDark === "midnight") || (window.siyuan.config.appearance.mode === 0 && window.siyuan.config.appearance.themeLight === "daylight");
|
||||
|
|
@ -204,6 +205,13 @@ const renderPDF = (id: string) => {
|
|||
<span class="fn__hr"></span>
|
||||
<input id="keepFold" class="b3-switch" type="checkbox" ${localData.keepFold ? "checked" : ""}>
|
||||
</label>
|
||||
<label class="b3-label">
|
||||
<div>
|
||||
${window.siyuan.languages.exportPDF6}
|
||||
</div>
|
||||
<span class="fn__hr"></span>
|
||||
<input id="mergeSubdocs" class="b3-switch" type="checkbox" ${localData.mergeSubdocs ? "checked" : ""}>
|
||||
</label>
|
||||
<div class="fn__flex">
|
||||
<div class="fn__flex-1"></div>
|
||||
<button class="b3-button b3-button--cancel">${window.siyuan.languages.cancel}</button>
|
||||
|
|
@ -316,6 +324,7 @@ const renderPDF = (id: string) => {
|
|||
fetchPost("/api/export/exportPreviewHTML", {
|
||||
id: "${id}",
|
||||
keepFold: ${localData.keepFold},
|
||||
merge: ${localData.mergeSubdocs},
|
||||
}, response => {
|
||||
if (response.code === 1) {
|
||||
alert(response.msg)
|
||||
|
|
@ -359,10 +368,19 @@ const renderPDF = (id: string) => {
|
|||
const actionElement = document.getElementById('action');
|
||||
const keepFoldElement = actionElement.querySelector('#keepFold');
|
||||
keepFoldElement.addEventListener('change', () => {
|
||||
previewElement.innerHTML = '<div class="fn__loading" style="left:0"><img width="48px" src="${servePath}/stage/loading-pure.svg"></div>'
|
||||
refreshPreview();
|
||||
});
|
||||
const mergeSubdocsElement = actionElement.querySelector('#mergeSubdocs');
|
||||
mergeSubdocsElement.addEventListener('change', () => {
|
||||
refreshPreview();
|
||||
});
|
||||
|
||||
const refreshPreview = () => {
|
||||
previewElement.innerHTML = '<div class="fn__loading" style="left:0"><img width="48px" src="${servePath}/stage/loading-pure.svg"></div>'
|
||||
fetchPost("/api/export/exportPreviewHTML", {
|
||||
id: "${id}",
|
||||
keepFold: keepFoldElement.checked,
|
||||
merge: mergeSubdocsElement.checked,
|
||||
}, response2 => {
|
||||
if (response2.code === 1) {
|
||||
alert(response2.msg)
|
||||
|
|
@ -371,7 +389,8 @@ const renderPDF = (id: string) => {
|
|||
setPadding();
|
||||
renderPreview(response2.data.content);
|
||||
})
|
||||
})
|
||||
};
|
||||
|
||||
actionElement.querySelector("#scale").addEventListener("input", () => {
|
||||
actionElement.querySelector("#scaleTip").innerText = actionElement.querySelector("#scale").value;
|
||||
})
|
||||
|
|
@ -406,6 +425,7 @@ const renderPDF = (id: string) => {
|
|||
pageSize: actionElement.querySelector("#pageSize").value,
|
||||
},
|
||||
keepFold: keepFoldElement.checked,
|
||||
mergeSubdocs: mergeSubdocsElement.checked,
|
||||
removeAssets: actionElement.querySelector("#removeAssets").checked,
|
||||
rootId: "${id}",
|
||||
rootTitle: response.data.name,
|
||||
|
|
|
|||
|
|
@ -374,7 +374,8 @@ const initWindow = () => {
|
|||
const msgId = showMessage(window.siyuan.languages.exporting, -1);
|
||||
localStorage.setItem(Constants.LOCAL_EXPORTPDF, JSON.stringify(Object.assign(ipcData.pdfOptions, {
|
||||
removeAssets: ipcData.removeAssets,
|
||||
keepFold: ipcData.keepFold
|
||||
keepFold: ipcData.keepFold,
|
||||
merge: ipcData.mergeSubdocs,
|
||||
})));
|
||||
try {
|
||||
window.siyuan.printWin.webContents.printToPDF(ipcData.pdfOptions).then((pdfData) => {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue