Spire.Doc for Python 12.2.1 已发布。本次更新新增支持通过固定布局获取页的内容。详情请阅读以下内容。
新功能:
- 支持通过固定布局获取页的内容。
def WriteAllText(fpath:str,content:str):
with open(fpath,'w',encoding="utf-8") as fp:
fp.write(content)
# 指定文件路径
inputFile = "./Data/Sample.docx"
outputFile = "output.txt"
# 创建一个新的 Document 实例
doc = Document()
# 从指定文件加载文档
doc.LoadFromFile(inputFile, FileFormat.Docx)
# 使用加载的文档创建一个 FixedLayoutDocument 对象
layoutDoc = FixedLayoutDocument(doc)
result = ''
# 获取第一页第一列的第一行
line = layoutDoc.Pages[0].Columns[0].Lines[0]
result += "行: "
result += line.Text
result += "\n"
# 获取与该行关联的原始段落
para = line.Paragraph
result += "段落文本: "
result += para.Text
result += "\n"
# 获取以纯文本格式显示在第一页上的所有文本(包括页眉和页脚)。
pageText = layoutDoc.Pages[0].Text
result += pageText
result += "\n"
# 遍历文档中的每一页,并打印每页上出现的行数。
pages = layoutDoc.Pages
for i in range(pages.Count):
page = pages[i]
lines = page.GetChildEntities(LayoutElementType.Line, True)
result += "第 "
result += str(page.PageIndex)
result += " 页有 "
result += str(lines.Count)
result += " 行。"
result += "\n"
# 对第一个段落执行反向查找布局实体
result += "\n"
result += "第一个段落的行:"
result += "\n"
tempChild = doc.FirstChild
section = Section(tempChild)
para = section.Body.Paragraphs[0]
paragraphLines = layoutDoc.GetLayoutEntitiesOfNode(para)
for i in range(paragraphLines.Count):
tempLine = paragraphLines[i]
paragraphLine = FixedLayoutLine(tempLine)
result += (paragraphLine.Text).strip()
result += "\n"
result += paragraphLine.Rectangle.ToString()
result += "\n"
result += "\n"
# 将提取的文本写入文件
WriteAllText(outputFile, result)
# 释放文档资源
doc.Dispose()
获取 Spire.Doc for Python 12.2.1请点击:
https://www.e-iceblue.cn/Downloads/Spire-Presentation-Python.html