使用 python-docx 将整页图像添加到 docx
Prepending a full-page image to docx using python-docx
我正在尝试使用 python-docx 为现有的 docx 添加整页图像,没有边距。
据我了解,代码应该是这样的(使用建议的解决方案 )
from docx import Document
from docx.shared import Inches
document = Document('existing.docx')
new_doc = Document()
new_section = new_doc.add_section()
new_section.left_margin = Inches(0.3)
new_doc.add_picture('frontpage.jpg', width=Inches(8.0))
for element in document.element.body:
new_doc.element.body.append(element)
# for section in new_doc.sections[1:]:
# section.left_margin = Inches(1.0)
new_doc.save('new.docx')
这有两个问题:
- 按原样,脚本会更改整个文档的左边距。取消注释最后两行后,首页的边距变回 1 英寸。
- 新部分创建了脚本的开头,在文档的开头创建了一个空白页。
我该如何正确操作?谢谢
调用 .add_section()
会在文档末尾追加一个新节,以分页符分隔。
使用现有部分设置第一部分的属性,然后添加第二部分并根据文档其余部分的需要调整其属性。
新默认文档中现有的单个部分可在 document.sections[0]
上使用。
from docx import Document
from docx.shared import Inches
target_document = Document()
target_document.sections[0].left_margin = Inches(0.3)
target_document.add_picture('frontpage.jpg', width=Inches(8.0))
new_section = target_document.add_section()
new_section.left_margin = Inches(1.0)
source_document = Document('existing.docx')
for paragraph in source_document.paragraphs:
target_document.add_paragraph(paragraph.text)
new_doc.save('new.docx')
我正在尝试使用 python-docx 为现有的 docx 添加整页图像,没有边距。
据我了解,代码应该是这样的(使用建议的解决方案
from docx import Document
from docx.shared import Inches
document = Document('existing.docx')
new_doc = Document()
new_section = new_doc.add_section()
new_section.left_margin = Inches(0.3)
new_doc.add_picture('frontpage.jpg', width=Inches(8.0))
for element in document.element.body:
new_doc.element.body.append(element)
# for section in new_doc.sections[1:]:
# section.left_margin = Inches(1.0)
new_doc.save('new.docx')
这有两个问题:
- 按原样,脚本会更改整个文档的左边距。取消注释最后两行后,首页的边距变回 1 英寸。
- 新部分创建了脚本的开头,在文档的开头创建了一个空白页。
我该如何正确操作?谢谢
调用 .add_section()
会在文档末尾追加一个新节,以分页符分隔。
使用现有部分设置第一部分的属性,然后添加第二部分并根据文档其余部分的需要调整其属性。
新默认文档中现有的单个部分可在 document.sections[0]
上使用。
from docx import Document
from docx.shared import Inches
target_document = Document()
target_document.sections[0].left_margin = Inches(0.3)
target_document.add_picture('frontpage.jpg', width=Inches(8.0))
new_section = target_document.add_section()
new_section.left_margin = Inches(1.0)
source_document = Document('existing.docx')
for paragraph in source_document.paragraphs:
target_document.add_paragraph(paragraph.text)
new_doc.save('new.docx')