即用来复制原文档的加粗、斜体,下划线,颜色等属性的,官方没有提供paragraph的复制接口,只能自己实现:
# paragraph 的复制
def get_para_data(output_doc_name, paragraph):
Write the run to the new file and then set its font, bold, alignment, color etc. data.
output_para = output_doc_name.add_paragraph()
for run in paragraph.runs:
output_run = output_para.add_run(run.text)
# Run's bold data
output_run.bold = run.bold
# Run's italic data
output_run.italic = run.italic
# Run's underline data
output_run.underline = run.underline
# Run's color data
output_run.font.color.rgb = run.font.color.rgb
# Run's font data
output_run.style.name = run.style.name
# Paragraph's alignment data
output_para.paragraph_format.alignment = paragraph.paragraph_format.alignment
2、删除paragraph
网上有用clear()的,实际不行。 我删除一个空行paragraph,用clear不行,还是后来用了下面这个接口才解决:
def delete_paragraph(paragraph):
p = paragraph._element
p.getparent().remove(p)
p._p = p._element = None
3、插入图片和paragraph行高设置
由于默认的行高限制,我的使用中遇到了麻烦,插入的图片的时候,图片部分只能显示一部分。后来,找到了一个办法设置行高属性:
from docx.enum.text import WD_LINE_SPACING
paragraph.paragraph_format.line_spacing_rule = WD_LINE_SPACING.MULTIPLE #根据实际大小
output_run = paragraph.add_run("")
output_run.add_picture('{}.png'.format(ownerName), width=Pt(50), height=Pt(15))
from
docx
import Document
from
docx
.oxml.ns import qn
from
docx
.shared import Pt,RGBColor
如果不进行字体手动
设置
的话,生成的文字字体格式就会千奇百怪,如下图
Doc = Document()
Doc.add_heading("刚来csdn,这就是博客么,I了")
Doc.add_
paragraph
("
Python
")
Doc.add_
paragraph
("
Python
对word进行
操作
")
Doc.save("
Python
_word.
docx
")
可以看到自动配置的字体不是我们平
使用
python-docx
编辑一个
docx
文档时, 对添加的方法使用很多, 但有时候也会用到
删除
和修改
python-docx
中并没有提供delete()方法, github上给出了解决方法:
https://github.com/
python
-openxml/
python-docx
/issues/33
def delete_
paragraph
(
paragraph
):
p =
paragraph
._element
p.getparent().remove(p)
# p._p
首先,需要使用
python-docx
库来读取和
操作
word 文档。具体实现方法如下:
安装
python-docx
库:在终端中运行 pip install
python-docx
安装。
导入库:在代码中使用 import
docx
导入库。
读取源文档并获取要
复制
的页面:使用
docx
.Document() 创建一个文档对象,然后使用 document.add_
paragraph
(...
在
python
中
删除
word文档中的空白页,可以使用
python-docx
库中的Document.remove_page()方法,代码如下:from
docx
import Documentdoc = Document('my_word_document.
docx
')for page in doc.page_margins:
doc.remove_page(page)doc.save('m...
def copy_
paragraph
(source_doc, target_doc,
paragraph
_index):
source_
paragraph
= source_doc.
paragraph
s[
paragraph
_index]
target_doc.add_
paragraph
(source_
paragraph
.text, source_
paragraph
.style)
# 示例用法
source_doc = Document('source.
docx
') # 替换成你的源文档路径
target_doc = Document()
#
复制
第一个段落到目标文档
copy_
paragraph
(source_doc, target_doc, 0)
# 保存目标文档
target_doc.save('target.
docx
')
这段代码使用了
python-docx
库,首先打开源文档和目标文档,然后通过`copy_
paragraph
`函数
复制
指定索引的段落内容和样式到目标文档中。你可以根据自己的需求修改或扩展这段代码。