fix 保存后编号空格问题

This commit is contained in:
赵霄
2024-04-24 10:16:01 +08:00
parent dd4e68ed04
commit e402f62fcd
4 changed files with 202 additions and 314 deletions
+51 -162
View File
@@ -6,15 +6,7 @@
<a-button @click="handleClickTwo1()">项二</a-button> <a-button @click="handleClickTwo1()">项二</a-button>
<a-button @click="handleClick('space')">字母列项</a-button> <a-button @click="handleClick('space')">字母列项</a-button>
<a-button @click="handleClickTwo">数字列项</a-button> <a-button @click="handleClickTwo">数字列项</a-button>
<!-- <a-button @click="handleClick('tab')">插入一级列项('tab')</a-button>-->
<!-- <a-button @click="handleClick('none')">插入一级列项('none')</a-button>-->
</a-button-group> </a-button-group>
<!-- <a-button-group>-->
<!-- <a-button @click="handleClickEn">插入一级列项()</a-button>-->
<!-- </a-button-group>-->
<!-- <a-button-group>-->
<!-- <a-button @click="handleTestChapter">添加章节测试</a-button>-->
<!-- </a-button-group>-->
</div> </div>
</template> </template>
@@ -29,30 +21,30 @@
const oDocument = Api.GetDocument() const oDocument = Api.GetDocument()
let oNumbering = oDocument.CreateNumbering('numbered') let oNumbering = oDocument.CreateNumbering('numbered')
const oNumLvl = oNumbering.GetLevel(0) const oNumLvl = oNumbering.GetLevel(0)
oNumLvl.SetCustomType('decimalZero', "——", "right") oNumLvl.SetCustomType('decimalZero', '——', 'right')
oNumLvl.SetSuff("tab"); oNumLvl.SetSuff('none')
var oParaPr = oNumLvl.GetParaPr(); var oParaPr = oNumLvl.GetParaPr()
oParaPr.SetSpacingLine(280, "auto"); oParaPr.SetSpacingLine(280, 'auto')
oParaPr.SetIndFirstLine(0); oParaPr.SetIndFirstLine(0)
const oParagraph = Api.CreateParagraph() const oParagraph = Api.CreateParagraph()
oParagraph.SetNumbering(oNumLvl) oParagraph.SetNumbering(oNumLvl)
oParagraph.SetContextualSpacing(true) oParagraph.SetContextualSpacing(true)
oParagraph.SetFontFamily('宋体') oParagraph.SetFontFamily('宋体')
oParagraph.SetFontSize(21) oParagraph.SetFontSize(21)
oParagraph.SetHighlight(255, 255, 0); oParagraph.SetHighlight(255, 255, 0)
oParagraph.SetIndLeft(840); oParagraph.SetIndLeft(840)
oDocument.InsertContent([oParagraph]) oDocument.InsertContent([oParagraph])
let text = oParagraph.GetText() let text = oParagraph.GetText()
if (text) { if (text) {
let aSearch = oParagraph.Search(text); let aSearch = oParagraph.Search(text)
if (aSearch && aSearch.length > 0) { if (aSearch && aSearch.length > 0) {
aSearch[0].SetFontFamily('宋体') aSearch[0].SetFontFamily('宋体')
aSearch[0].SetFontSize(10.5) aSearch[0].SetFontSize(10.5)
} }
} }
let GetNext = oParagraph.GetNext() // let GetNext = oParagraph.GetNext()
GetNext.Delete() // GetNext.Delete()
} catch (error) { } catch (error) {
console.error(error) console.error(error)
} }
@@ -78,19 +70,19 @@
oParagraph.SetContextualSpacing(true) oParagraph.SetContextualSpacing(true)
oParagraph.SetFontFamily('宋体') oParagraph.SetFontFamily('宋体')
oParagraph.SetFontSize(21) oParagraph.SetFontSize(21)
oParagraph.SetHighlight(255, 255, 0); oParagraph.SetHighlight(255, 255, 0)
oParagraph.SetIndFirstLine(420); oParagraph.SetIndFirstLine(420)
oDocument.InsertContent([oParagraph]) oDocument.InsertContent([oParagraph])
let text = oParagraph.GetText() let text = oParagraph.GetText()
if (text) { if (text) {
let aSearch = oParagraph.Search(text); let aSearch = oParagraph.Search(text)
if (aSearch && aSearch.length > 0) { if (aSearch && aSearch.length > 0) {
aSearch[0].SetFontFamily('宋体') aSearch[0].SetFontFamily('宋体')
aSearch[0].SetFontSize(10.5) aSearch[0].SetFontSize(10.5)
} }
} }
let GetNext = oParagraph.GetNext() // let GetNext = oParagraph.GetNext()
GetNext.Delete() // GetNext.Delete()
} catch (error) { } catch (error) {
console.error(error) console.error(error)
} }
@@ -104,29 +96,30 @@
const oDocument = Api.GetDocument() const oDocument = Api.GetDocument()
let oNumbering = oDocument.CreateNumbering('bullet') let oNumbering = oDocument.CreateNumbering('bullet')
const oNumLvl = oNumbering.GetLevel(0) const oNumLvl = oNumbering.GetLevel(0)
oNumLvl.SetSuff('tab') oNumLvl.SetSuff('none')
const oParagraph = Api.CreateParagraph() const oParagraph = Api.CreateParagraph()
var oParaPr = oNumLvl.GetParaPr(); var oParaPr = oNumLvl.GetParaPr()
oParaPr.SetSpacingLine(280, "auto"); oParaPr.SetSpacingLine(280, 'auto')
// oParaPr.SetIndRight(80) // oParaPr.SetIndRight(80)
// oParaPr.SetIndFirstLine(120); // oParaPr.SetIndFirstLine(120);
oParagraph.SetNumbering(oNumLvl) oParagraph.SetNumbering(oNumLvl)
oParagraph.SetContextualSpacing(true) oParagraph.SetContextualSpacing(true)
oParagraph.SetFontFamily('宋体') oParagraph.SetFontFamily('宋体')
oParagraph.SetFontSize(21) oParagraph.SetFontSize(21)
oParagraph.SetIndLeft(1270); oParagraph.SetIndLeft(1270)
oParagraph.SetHighlight(255, 255, 0); oParagraph.SetHighlight(255, 255, 0)
oParagraph.AddText(' ')
oDocument.InsertContent([oParagraph]) oDocument.InsertContent([oParagraph])
let text = oParagraph.GetText() let text = oParagraph.GetText()
if (text) { if (text) {
let aSearch = oParagraph.Search(text); let aSearch = oParagraph.Search(text)
if (aSearch && aSearch.length > 0) { if (aSearch && aSearch.length > 0) {
aSearch[0].SetFontFamily('宋体') aSearch[0].SetFontFamily('宋体')
aSearch[0].SetFontSize(10.5) aSearch[0].SetFontSize(10.5)
} }
} }
let GetNext = oParagraph.GetNext() // let GetNext = oParagraph.GetNext()
GetNext.Delete() // GetNext.Delete()
} catch (error) { } catch (error) {
console.error(error) console.error(error)
} }
@@ -138,60 +131,36 @@
this.ctx.callCommand(() => { this.ctx.callCommand(() => {
try { try {
const oDocument = Api.GetDocument() const oDocument = Api.GetDocument()
// const allElement = oDocument.GetElementsCount()
let numbering = null let numbering = null
// let currentNumbering = null
// for (let index = 0; index < allElement; index++) {
// const element = oDocument.GetElement(index)
// if ("paragraph" === element.GetClassType()) {
// const getNumbering = element.GetNumbering()
// const text = element.GetSpacingBefore()
// if (getNumbering !== null) {
// if (text == 1) {
// currentNumbering = getNumbering
// break
// }
// }
// }
// }
// if (!numbering) {
// if (currentNumbering) {
// numbering = currentNumbering.GetNumbering().GetLevel(0)
// } else {
// let oNumbering = oDocument.CreateNumbering('numbered')
// numbering = oNumbering.GetLevel(0)
// numbering.SetTemplateType('a)')
// }
// }
let oNumbering = oDocument.CreateNumbering('numbered') let oNumbering = oDocument.CreateNumbering('numbered')
numbering = oNumbering.GetLevel(0) numbering = oNumbering.GetLevel(0)
numbering.SetTemplateType('a)') numbering.SetTemplateType('a)')
numbering.SetSuff('none')
const oParagraph = Api.CreateParagraph() const oParagraph = Api.CreateParagraph()
// oParagraph.SetSpacingLine(400, "auto"); let oTextPr = numbering.GetTextPr()
let oTextPr = numbering.GetTextPr(); oTextPr.SetFontFamily('宋体')
oTextPr.SetFontFamily("宋体"); var oParaPr = numbering.GetParaPr()
var oParaPr = numbering.GetParaPr(); oParaPr.SetSpacingLine(240, 'auto')
oParaPr.SetSpacingLine(240, "auto"); oParaPr.SetJc('none')
oParaPr.SetJc("tab"); oParaPr.SetIndFirstLine(-420)
oParaPr.SetIndFirstLine(-420);
// oParaPr.SetIndFirstLine(0);
oParagraph.SetNumbering(numbering) oParagraph.SetNumbering(numbering)
oParagraph.SetContextualSpacing(true) oParagraph.SetContextualSpacing(true)
oParagraph.SetFontFamily('宋体') oParagraph.SetFontFamily('宋体')
oParagraph.SetIndLeft(840); oParagraph.SetIndLeft(840)
oParagraph.SetFontSize(21) oParagraph.SetFontSize(21)
oParagraph.SetHighlight(255, 255, 0); oParagraph.SetHighlight(255, 255, 0)
oParagraph.AddText(' ')
oDocument.InsertContent([oParagraph]) oDocument.InsertContent([oParagraph])
let text = oParagraph.GetText() let text = oParagraph.GetText()
if (text) { if (text) {
let aSearch = oParagraph.Search(text); let aSearch = oParagraph.Search(text)
if (aSearch && aSearch.length > 0) { if (aSearch && aSearch.length > 0) {
aSearch[0].SetFontFamily('宋体') aSearch[0].SetFontFamily('宋体')
aSearch[0].SetFontSize(10.5) aSearch[0].SetFontSize(10.5)
} }
} }
let GetNext = oParagraph.GetNext() // let GetNext = oParagraph.GetNext()
GetNext.Delete() // GetNext.Delete()
// oNumbering = oParagraph.GetNumbering().GetNumbering() // oNumbering = oParagraph.GetNumbering().GetNumbering()
} catch (error) { } catch (error) {
console.error(error) console.error(error)
@@ -207,126 +176,46 @@
const allElement = oDocument.GetElementsCount() const allElement = oDocument.GetElementsCount()
let numbering = null let numbering = null
let currentNumbering = null let currentNumbering = null
// for (let index = 0; index < allElement; index++) {
// const element = oDocument.GetElement(index)
// if ("paragraph" === element.GetClassType()) {
// const getNumbering = element.GetNumbering()
// const text = element.GetSpacingBefore()
// if (getNumbering !== null) {
// if (text == 2) {
// currentNumbering = getNumbering;
// break
// }
// }
// }
// }
if (!numbering) { if (!numbering) {
if (currentNumbering) { if (currentNumbering) {
numbering = currentNumbering.GetNumbering().GetLevel(0) numbering = currentNumbering.GetNumbering().GetLevel(0)
} else { } else {
let oNumbering = oDocument.CreateNumbering('numbered') let oNumbering = oDocument.CreateNumbering('numbered')
numbering = oNumbering.GetLevel(0) numbering = oNumbering.GetLevel(0)
// numbering.SetTemplateType('1)') numbering.SetCustomType('decimal', '%1)', 'left')
numbering.SetCustomType('decimal', "%1)", "left")
// numbering.SetSuff('tab')
} }
} }
let oTextPr = numbering.GetTextPr(); numbering.SetSuff('none')
oTextPr.SetFontFamily("宋体"); let oTextPr = numbering.GetTextPr()
const oParaPr = numbering.GetParaPr(); oTextPr.SetFontFamily('宋体')
const oParaPr = numbering.GetParaPr()
// oParaPr.SetIndLeft(1310) // oParaPr.SetIndLeft(1310)
oParaPr.SetJc("left"); oParaPr.SetJc('left')
oParaPr.SetSpacingLine(240, "auto"); oParaPr.SetSpacingLine(240, 'auto')
oParaPr.SetIndFirstLine(-420); oParaPr.SetIndFirstLine(-420)
const oParagraph = Api.CreateParagraph() const oParagraph = Api.CreateParagraph()
oParagraph.SetNumbering(numbering) oParagraph.SetNumbering(numbering)
oParagraph.SetContextualSpacing(true) oParagraph.SetContextualSpacing(true)
oParagraph.SetFontFamily('宋体') oParagraph.SetFontFamily('宋体')
oParagraph.SetFontSize(21) oParagraph.SetFontSize(21)
oParagraph.SetIndLeft(1260); oParagraph.SetIndLeft(1260)
oParagraph.SetHighlight(255, 255, 0); oParagraph.SetHighlight(255, 255, 0)
oParagraph.AddText(' ')
oDocument.InsertContent([oParagraph]) oDocument.InsertContent([oParagraph])
let text = oParagraph.GetText() let text = oParagraph.GetText()
if (text) { if (text) {
let aSearch = oParagraph.Search(text); let aSearch = oParagraph.Search(text)
if (aSearch && aSearch.length > 0) { if (aSearch && aSearch.length > 0) {
aSearch[0].SetFontFamily('宋体') aSearch[0].SetFontFamily('宋体')
aSearch[0].SetFontSize(10.5) aSearch[0].SetFontSize(10.5)
} }
} }
let GetNext = oParagraph.GetNext() // let GetNext = oParagraph.GetNext()
GetNext.Delete() // GetNext.Delete()
} catch (error) { } catch (error) {
console.error(error) console.error(error)
} }
}, false) }, false)
},
handleClickEn() {
window.Asc.scope.guid = window.Asc.plugin.info.guid
this.ctx.callCommand(() => {
try {
const oDocument = Api.GetDocument()
let oNumbering = oDocument.CreateNumbering('numbered')
const oNumLvl = oNumbering.GetLevel(0)
oNumLvl.SetTemplateType('a)')
oNumLvl.SetSuff('space')
for (let nLvl = 1; nLvl < 4; nLvl++) {
const oParagraph = Api.CreateParagraph()
oParagraph.AddText('Custom numbered')
oParagraph.SetNumbering(oNumLvl)
oParagraph.SetContextualSpacing(true)
oParagraph.SetFontFamily('Arial')
oParagraph.SetFontSize(21)
oDocument.InsertContent([oParagraph])
oNumbering = oParagraph.GetNumbering().GetNumbering()
}
} catch (error) {
console.error(error)
}
}, false)
},
handleClick2() {
this.ctx.executeMethod('InputText', ['wx', 'wx2'])
},
handleTestChapter() {
this.ctx.callCommand(() => {
try {
const oDocument = Api.GetDocument()
const allParagraph = oDocument.Document.GetAllNumberedParagraphs()
console.log(allParagraph)
let oNumbering
if (allParagraph.length > 0) {
// oNumbering = oDocument.CreateNumbering('numbered')
const currentParagraph = allParagraph[0]
console.log(currentParagraph)
oNumbering = currentParagraph.GetCurrentParagraph()
console.log(oNumbering)
} else {
oNumbering = oDocument.CreateNumbering('numbered')
console.log('创建的:', oNumbering)
}
const oParagraph = Api.CreateParagraph()
oNumLvl = oNumbering.GetLevel(oNumbering.GetLevel(0).GetLevelIndex());
oNumLvl.SetRestart(false)
oParagraph.AddText('Custom numbered')
oParagraph.SetNumbering(oNumLvl)
oDocument.InsertContent([oParagraph])
let text = oParagraph.GetText()
if (text){
let aSearch = oParagraph.Search(text);
if (aSearch && aSearch.length > 0){
aSearch[0].SetFontFamily('宋体')
aSearch[0].SetFontSize(10.5)
}
}
let GetNext = oParagraph.GetNext()
GetNext.Delete()
} catch (e) {
console.log(e)
}
})
} }
} }
} }
@@ -406,6 +406,7 @@ export default {
} }
} }
} }
oNumLvl.SetSuff('none')
const oNewDocumentStyle = oDocument.GetStyle('List Paragraph') const oNewDocumentStyle = oDocument.GetStyle('List Paragraph')
const oTextPr3 = oNewDocumentStyle.GetTextPr() const oTextPr3 = oNewDocumentStyle.GetTextPr()
oTextPr3.SetFontFamily('黑体') oTextPr3.SetFontFamily('黑体')
@@ -420,6 +421,7 @@ export default {
oParagraph.SetFontFamily('黑体') oParagraph.SetFontFamily('黑体')
oParagraph.SetSpacingAfter(34, false) oParagraph.SetSpacingAfter(34, false)
oParagraph.SetNumbering(oNumLvl) oParagraph.SetNumbering(oNumLvl)
oParagraph.AddText(' ')
oDocument.InsertContent([oParagraph]) oDocument.InsertContent([oParagraph])
// let GetNext = oParagraph.GetNext() // let GetNext = oParagraph.GetNext()
// GetNext.Delete() // GetNext.Delete()
+4 -8
View File
@@ -1,12 +1,8 @@
<template> <template>
<div> <div>
<a-button-group style="margin-bottom: 10px"> <a-button-group style="margin-bottom: 10px">
<!-- <a-button @click="handleCreateCover">封面</a-button>-->
<a-button @click="catalogueClick">插入ics</a-button> <a-button @click="catalogueClick">插入ics</a-button>
<a-button @click="terminationLine">终止线</a-button> <a-button @click="terminationLine">终止线</a-button>
<!-- <a-button @click="handleInit">初始化正文</a-button>-->
<!-- <a-button @click="handleReplace">数据替换</a-button>-->
<!-- <a-button @click="addSeal">添加发布认可章</a-button>-->
</a-button-group> </a-button-group>
<a-button-group style="margin-bottom: 10px"> <a-button-group style="margin-bottom: 10px">
@@ -945,10 +941,10 @@ export default {
const oDocument = Api.GetDocument() const oDocument = Api.GetDocument()
// 处理编号格式,.SetSuff('none')为关键代码,不然会出现标题后面的空格变大的问题 // 处理编号格式,.SetSuff('none')为关键代码,不然会出现标题后面的空格变大的问题
const aNumberedParagraphs = oDocument.GetAllNumberedParagraphs() const aNumberedParagraphs = oDocument.GetAllNumberedParagraphs()
for (let i = 0; i < aNumberedParagraphs.length; i++) { // for (let i = 0; i < aNumberedParagraphs.length; i++) {
const oNumLvl = aNumberedParagraphs[i].GetNumbering() // const oNumLvl = aNumberedParagraphs[i].GetNumbering()
oNumLvl.SetSuff('none') // oNumLvl.SetSuff('none')
} // }
const AllContentControls = oDocument.GetAllContentControls() const AllContentControls = oDocument.GetAllContentControls()
let flag = false let flag = false
for (let i = 0; i < AllContentControls.length; i++) { for (let i = 0; i < AllContentControls.length; i++) {
@@ -593,6 +593,7 @@ export default {
} }
} }
} }
oNumLvl.SetSuff('none')
const oNewDocumentStyle = oDocument.GetStyle('List Paragraph') const oNewDocumentStyle = oDocument.GetStyle('List Paragraph')
const oTextPr3 = oNewDocumentStyle.GetTextPr() const oTextPr3 = oNewDocumentStyle.GetTextPr()
oTextPr3.SetFontFamily('黑体') oTextPr3.SetFontFamily('黑体')