Spire.Doc for Python 14.6.1 现已正式发布。该版本完善了多项文档处理与图表操作能力,主要功能包括获取图表的 X 轴和 Y 轴数据值,将 Word 直接保存为 XLSX 格式, 以及在段落中追加 SmartArt 图形等。此外,还成功修复了一个在转换 Word 到 PDF 时出现的问题。详情请查阅以下内容。
新功能:
- CharacterFormat 类新增 Kerning 属性,支持设置字符的字距调整。
- Chart 类新增获取图表 X 轴数据值的方法,ChartSeries 类新增获取图表系列 Y 轴数据值的方法。
- ChartDataLabel 与 ChartDataLabelCollection 类均新增 Position 属性,支持设置图表数据标签的位置。
- CompareOptions 类新增多个比较选项属性用于在文档比较时灵活忽略各类元素或格式变更。
- Document 类新增 GetRevisionInfos 方法和 RevisionsView 属性,支持获取文档修订信息及控制修订视图。
- SaveToFile 方法新增一个参数,支持将 Word 直接保存为 XLSX 格式。
- Document 类新增 CompatibilityOptions 属性,支持获取文档的兼容性选项。
- Fill 类新增 SetImage 方法和 FillType 属性,支持设置填充图片及获取填充类型。
- Paragraph 类新增 AppendSmartArt 方法,支持在段落中追加 SmartArt 图形。
- ParagraphFormat 类新增 AdjustRightIndent 方法,支持控制是否自动调整段落的右缩进。
- Shape 类新增 HasSmartArt 属性和 SmartArt 属性,支持判断形状是否包含 SmartArt 并获取该对象。
- TableRow 类新增 Hidden 属性,支持设置或获取表格行的隐藏状态。
- ToPdfParameterList 类新增 GeneratorName 属性,支持在转换 Word 到 PDF 时自定义设置生成器名称。
textRange.CharacterFormat.Kerning = kerningValue
doc = Document()
doc.LoadFromFile(inputFile)
sb = []
number = 1
for i in range(doc.Sections.Count):
sec = doc.Sections.get_Item(i)
for j in range(sec.Paragraphs.Count):
paragraph = sec.Paragraphs.get_Item(j)
for k in range(paragraph.ChildObjects.Count):
obj = paragraph.ChildObjects[k]
if isinstance(obj, ShapeObject):
shape = obj
chart = shape.Chart
sb.append("\r\n\r\n第" + str(number) + "页:\r\n" + "获取所有X轴数据:")
# X 轴
for x in range(chart.XValues.Count):
xVal = chart.XValues[x]
sb.append(str(xVal.StringValue) + " ")
# 第一个系列 Y 轴
series = chart.Series[0]
sb.append("\r\n获取Y轴数据:")
for i in range(series.YValues.Count):
yVal = series.YValues.get_Item(i)
sb.append(str(yVal.Value) + " ")
number += 1
# 写入文件
File.WriteAllText(outputFile, "".join(sb))
doc.Dispose()
chart.Series[0].DataLabels.Position = position
doc1 = Document()
doc1.LoadFromFile(inputFile_1)
doc2 = Document()
doc2.LoadFromFile(inputFile_2)
options = CompareOptions()
options = CompareOptions()
options.IgnoreCaseChanges = True
options.IgnoreComments = True
options.IgnoreFields = True
options.IgnoreFootnotes = True
options.IgnoreTables = True
options.IgnoreTextboxes = True
doc1.Compare(doc2, "user", DateTime(), options)
# 保存比较后的文档
doc1.SaveToFile(outputFile, FileFormat.Docx2013)
doc1.Close()
doc2.Close()
doc = Document()
doc.LoadFromFile(inputFile)
revisionInfoCollection = doc.GetRevisionInfos()
sb = []
for revisionIndex in range(revisionInfoCollection.Count):
revisionInfo = revisionInfoCollection.get_Item(revisionIndex)
if revisionInfo.RevisionType == RevisionType.FormatChange:
if isinstance(revisionInfo.OwnerObject, TextRange):
text_range = revisionInfo.OwnerObject
sb.append("文本范围:" + text_range.Text + "\r\n")
doc.RevisionsView = RevisionsView.Original
sb.append("原始样式: " + "是否加粗: " + str(text_range.CharacterFormat.Bold) + "; " + "文本颜色: " + text_range.CharacterFormat.TextColor.ToString() + ", 高亮颜色: " + text_range.CharacterFormat.HighlightColor.ToString() + ", 字体名称: " + str(text_range.CharacterFormat.FontName) + ", 下划线样式: " + str(text_range.CharacterFormat.UnderlineStyle) + "\r\n")
doc.RevisionsView = RevisionsView.Final
sb.append("最终样式: " + "是否加粗: " + str(text_range.CharacterFormat.Bold) + "; " + "文本颜色: " + text_range.CharacterFormat.TextColor.ToString() + ", 高亮颜色: " + text_range.CharacterFormat.HighlightColor.ToString() + ", 字体名称: " + str(text_range.CharacterFormat.FontName) + ", 下划线样式: " + str(text_range.CharacterFormat.UnderlineStyle) + "\r\n")
File.WriteAllText(outputFile, "\n".join(sb))
doc.Close()
# 加载Word文档
document = Document()
document.LoadFromFile(inputFile)
# 保存为XLSX格式
document.SaveToFile(outputFile, FileFormat.XLSX)
document.Close()
options = doc.CompatibilityOptions
# 添加节点
node_new = smartArt.Nodes.Add()
node_new.Text = "地图"
shapeProperties = node_new.ShapeProperties[0]
# 设置图形的填充颜色
shapeProperties.Fill.FillType = FillType.Picture
picFileStream = Stream("Image/0.jpg")
# 设置图片填充
shapeProperties.Fill.SetImage(picFileStream)
shape = paragraph.AppendSmartArt(SmartArtType.RepeatingBendingProcess, 432, 252)
paragraph.Format.AdjustRightIndent = True
hasSmartArt=shape.HasSmartArt
smartArt = shape.SmartArt
firstRow.Hidden = True
doc = Document()
toPdf = ToPdfParameterList()
toPdf.GeneratorName = genName
doc.LoadFromFile(inputFile)
doc.SaveToFile(outputFile, toPdf)
问题修复:
- 修复了转换 Word 到 PDF,程序抛出 “Arg_NullReferenceException” 异常的问题。
获取 Spire.Doc for Python 14.6.1 请点击:







