Word目录第一行和最后一行格式不对(首行缩进)的解决方案

【转载请注明出处: http://blog.csdn.net/lzl124631x

最近又在写word文档,愈发觉得之前对word了解得太皮毛了,word实际上有很多功能自己都没开发过。但是我同时觉得word做得不够人性化,否则很多问题不至于这么让人抓狂。

我发现“word目录首行末行有不明原因的缩进”这一问题有很多人问过,但是一直没有很好的解决方案,一般都是手动取消首行缩进,然后就不敢自动更新了(因为自动更新后缩进又会回来)。现在我介绍我自己想出来的一个自动化方法。


如上图所示,目录的第一行和最后一行都莫名其妙地缩进了两个字母,导致第一个Tab(在第一章和绪论中间有一个Tab)无法正确对应到对齐制表位,而是对应到了第二个对齐制表位(这个制表位本来是应该对应第二个Tab的,即绪论和页码6之间的Tab)。这是我对问题的分析。

经过一番让人尿血的乱试,我发现“正文”样式会对这个问题有影响!因为我在段落设置中将没有首行缩进的样式设置为默认时,这个问题就解决了!但是“正文”的样式也变成没有首行缩进的了!我觉得可能是目录的首末行受到了默认样式,即“正文”样式的影响。

解决方法:

1) 取消“正文”样式的首行缩进2个字符。

(a) 若“正文”样式在“快捷样式库”中,可以直接右键“正文”样式,修改;


(b) 若(a)不成立,点击“开始>样式”右下角的小按钮,或者按“Ctrl+Alt+Shift+S",打开“样式”菜单,右键点击“正文”,点击“修改”;



在弹出的“修改样式”对话框中,选择左下角“格式”下拉列表中的“段落”,在弹出的“段落”对话框中将“特殊格式”设置为“(无)”,即取消“首行缩进”。这样一来,“正文”样式就没有首行缩进了。



2)添加一个首行缩进2个字符的自定义样式“正文 中文”。

先将一段文字调成你想要的(首行缩进2个字符)正文样式,在“样式”中选择“将所选内容保存为新快速样式”,修改你想要的正文样式名称(如“正文 中文”),“确定”即可。


以后都将这个“正文 中文”当作正文样式即可!目录以后怎么刷新都没问题了!


如果你想在标题之后按回车直接进入“正文 中文”样式,只需要将标题样式中的“后续段落样式”修改为“正文 中文”即可。


希望对大家有帮助!如果有问题的话可以留言,我去补血了。

在Vue2中,可以使用js-export-word库将HTML导出为Word文档。如果在导出过程中出现了首行缩进和行高不生效的问题,可以尝试如下解决方法: 1. 设置样式 在HTML中设置样式,如下所示: ```html <p style="text-indent: 2em; line-height: 2;">这是一段带有首行缩进和行高的文本。</p> ``` 2. 使用docx.js库 如果js-export-word库无法解决问题,可以使用docx.js库来创建Word文档,这个库可以让你在前端创建Word文档,支持添加文本、表格、图像、列表等元素,并将其导出为.docx文件。 以下是使用docx.js创建带有首行缩进和行高的文本的示例代码: ```javascript const docx = require('docx'); const doc = new docx.Document(); const paragraph = new docx.Paragraph({ text: '这是一段带有首行缩进和行高的文本。', style: 'customStyle', }); doc.Styles.createParagraphStyle('customStyle', 'Custom Style') .basedOn('Normal') .next('Normal') .quickFormat() .font('Calibri') .size(22) .spacing({ line: 360 }) .indent({ left: 720, hanging: 360 }); const packer = new docx.Packer(); packer.toBlob(doc).then((blob) => { const url = window.URL.createObjectURL(blob); const link = document.createElement('a'); link.href = url; link.download = 'document.docx'; link.click(); }); ``` 在上面的代码中,自定义了一个名为customStyle的样式,其中通过indent方法设置首行缩进,通过spacing方法设置行高。 最后通过Packer将文档导出为.docx文件,并通过创建一个a标签实现下载。需要注意的是,这里使用的是toBlob方法,需要在浏览器中支持Blob对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值