Spire.Office for Python 11.11.0 已正式发布。在该版本中,Spire.Doc for Python 新增两段落对象对比方法。Spire.PDF for Python 新增了对多种 PDF 注释类型的支持,并且新增了流式添加内容模块。 Spire.XLS for Python 支持宏(VBA)功能,包括添加、获取和删除 VBA 工程。Spire.Presentation for Python 支持将 PPTX 保存为视频。 此外,一些在转换、处理和保存 Word/ Excel/ PDF/PowerPoint 文件时出现的问题也已成功被修复。更多新功能及问题修复详情如下。
获取 pire.Office for Python 11.11.0,请点击:
https://www.e-iceblue.cn/Downloads/Spire-Office-Python.html
Spire.Doc for Python
新功能:
- 新增 Paragraph.ReferenceEquals 方法,实现两个段落之间的对象对比功能。
问题修复:
- 修复了跟踪修订状态下添加批注抛出异常的问题。
- 修复了 AppendChart 方法抛出 AttributeError 异常的问题。
- 修复了回复批注格式不正确的问题。
- 修复了添加回复批注(ReplyComment)结果不正确的问题。
- 修复删除 Word 文档页面时,会误删除多余页面的问题。
- 修复 Word 转 PDF 过程中部分 Symbol 字体字符丢失的问题。
Spire.XLS for PythonPython
新功能:
- 支持宏(VBA)功能,包括添加、获取和删除 VBA 工程。
- 支持转换 Excel 到 PDF 时,配置 PDF 加密。
//1.Add
workbook = Workbook()
# Add VBA project to document
vbaProject = workbook.VbaProject
vbaProject.Name = "SampleVBAMacro"
text = "Code page before modification: " + str(vbaProject.CodePage) + "\n"
vbaProject.CodePage = 936 # Set encoding to support Chinese characters
text += "Code page after modification: " + str(vbaProject.CodePage) + "\n"
File.WriteAllText(outputFile_TXT, text)
vbaModule = vbaProject.Modules.Add("SampleModule", VbaModuleType.Module)
# Does not support Chinese characters
vbaModule.SourceCode = """
Sub ExampleMacro()
' Declare variables
Dim ws As Worksheet
Dim i As Integer
' Set reference to active worksheet
Set ws = ActiveSheet
' Clear worksheet content (optional)
ws.Cells.Clear
' Fill sample data
With ws
' Write header row
.Range("A1: C1").Value = Array("Serial No.", "Project Name", "Amount")
' Loop to fill 10 rows of data
For i = 1 To 10
.Cells(i + 1, 1).Value = i ' Serial number column
.Cells(i + 1, 2).Value = "Project " & i ' Project name column
.Cells(i + 1, 3).Value = i * 100 ' Amount column (sample calculation)
Next i
' Auto-fit column widths
.Columns("A:C").AutoFit
' Format header row
With.Range("A1:C1")
.Font.Bold = True
.Interior.Color = RGB(200, 220, 255) ' Light blue background
End With
' Format amount column
.Range("C2:C11").NumberFormat = "$#,##0.00"
End With
' Show completion message
MsgBox "Data population complete!", vbInformation, "Operation Prompt"
End Sub"""
workbook.SaveToFile(outputFile_Xls, FileFormat.Version97to2003)
workbook.SaveToFile(outputFile_Xlsb, FileFormat.Xlsb2007)
workbook.SaveToFile(outputFile_Xlsm, FileFormat.Xlsm)
workbook.SaveToFile(outputFile_Xltm, FileFormat.XLTM)
workbook.Dispose()
//2.Obtain and modify
workbook = Workbook()
workbook.LoadFromFile(inputFile)
worksheet = workbook.Worksheets[0]
vbaProject = workbook.VbaProject
// Modify worksheet module
mod = vbaProject.Modules.GetWorksheetModule(worksheet)
mod.Name = "IVbaModule"
mod.SourceCode = "Dim lRow As Long"
mod.Type = VbaModuleType.Module
// Save file
workbook.SaveToFile(outputFile)
workbook.Dispose()
//3. Delete
workbook1 = Workbook()
workbook1.LoadFromFile(inputFile_Module)
vbaProject1 = workbook1.VbaProject
vbaProject1.Modules.Remove("SampleModule")
workbook1.SaveToFile(outputFile_1)
workbook1.Dispose()
workbook = Workbook()
#Load a excel document
workbook.LoadFromFile(inputFile)
#Set permission password and permissions to encrypt converted pdf
workbook.ConverterSetting.PdfSecurity.Encrypt("123", PdfPermissionsFlags.Print)
#Convert excel to pdf
workbook.SaveToFile(outputFile, FileFormat.PDF)
workbook.Dispose()
问题修复:
- 修复了 CopyRangeOptions 多个枚举值组合使用时报错的问题。
Spire.Presentation for Python
新功能:
- 支持将 PPTX 保存为视频(.mp4/.wmv)。
ppt = Presentation()
ppt.LoadFromFile(inputFile)
SaveToVideoOption saveOption = new SaveToVideoOption(ffmpegDir)
ppt.SaveToVideoOption=saveOption
ppt.SaveToFile(outputFile_mp4, FileFormat.MP4)
ppt.SaveToFile(outputFile_wmv, FileFormat.WMV)
ppt.Dispose()
问题修复:
- 修复了 PPT 转图片时,程序挂起的问题。
- 修复了加载 PPT 文件报错的问题。
Spire.PDF for Python
新功能:
- 新增对 CaretAnnotation 注释的支持。
- 新增对 CircleAnnotation 注释的支持。
- 新增对 SquareAnnotation 注释的支持。
- 新增对 FileAttachmentAnnotation 注释的支持。
- 新增对 MovieAnnotation 注释的支持。
- 新增对 ScreenAnnotation 注释的支持。
- 新增对 RichMediaAnnotation 注释的支持。
- 新增对 WidgetAnnotation 注释的支持。
- 新增 PdfCode128ABarcode 接口对 Code 128 条形码绘制的支持。
- 新增流式添加内容模块,主要包括:
- 自动分页:内容超出页面时自动跨页拆分。
- 页面模板:页眉、页脚、水印、页边距、自定义纸张尺寸。
- 多节文档:一份文档可含多个章节,各自独立排版。
- 标题与目录:三级标题,自动生成目录、书签和跳转链接。
- 段落与列表:内联文本/图片/超链接,项目符号列表、编号列表、代码块。
- 表格:表头表尾、合并单元格、固定/比例/自动列宽、嵌套表格。
- 图片与排版:图片旁文字环绕、多列并排面板。
- 图表:柱状图、折线图、饼图、散点图、直方图、堆叠柱状图。
- 条形码:Code128、Code39、EAN-13、QR Code 等 14 种。
- 无障碍 PDF:一键生成带标签(Tagged)PDF。
rect = RectangleF(100.0, 100.0, 10.0, 15.0)
annotation = PdfCaretAnnotation(page, rect)
annotation.Title = "CaretTest"
annotation.Contents = "A caret annotation with default (None) symbol."
annotation.Color = PdfRGBColor(0, 0, 255)
annotation.Border.Width = 1
annotation.Intent = "ParaCaret"
PdfAnnotationCollection.Create(page).Add(annotation)
annotation = PdfCircleAnnotation(page, rect)
annotation.Color = PdfRGBColor(128, 0, 128)
annotation.InteriorColor = PdfRGBColor(255, 255, 200)
annotation.Border.Width = 2
annotation.Border.Style = PdfBorderStyle.Solid
annotation.Border.Effect = PdfBorderEffect.Cloudy
annotation.Border.EffectIntensity = 2
PdfAnnotationCollection.Create(page).Add(annotation)
annotation = PdfSquareAnnotation(page, rect)
annotation.Color = PdfRGBColor(128, 0, 128)
annotation.InteriorColor = PdfRGBColor(255, 255, 200)
annotation.Border.Width = 2
annotation.Border.Style = PdfBorderStyle.Dashed
PdfAnnotationCollection.Create(page).Add(annotation)
fileSpecification = PdfFileSpecification("SalesReportChart.png", data)
annotation = PdfFileAttachmentAnnotation(page, bounds, fileSpecification)
annotation.Icon = PdfFileIcon.Graph
annotation.Color = PdfRGBColor(Color.get_Teal())
PdfAnnotationCollection.Create(page).Add(annotation)
annotation = PdfMovieAnnotation(page, rect, "sample.wmv")
annotation.Title = "My Movie Player"
annotation.Movie.Poster = False
annotation.Movie.Aspect = SizeF(16.0, 9.0)
PdfAnnotationCollection.Create(page).Add(annotation)
annotation = PdfScreenAnnotation(page, rect)
annotation.Title = "ScreenWithBorder"
annotation.Border.Width = 3.0
annotation.Border.Style = PdfBorderStyle.Dashed
PdfAnnotationCollection.Create(page).Add(annotation)
annotation = PdfRichMediaAnnotation(page, rect, content)
annotation.Content = PdfRichMediaContent()
annotation.Color = PdfRGBColor(Color.get_Green())
PdfAnnotationCollection.Create(page).Add(annotation)
doc.LoadFromFile("widget.pdf")
a = PdfAnnotationCollection.Create(page).get_Item(0)
a.Characteristics.BackgroundColor
a.Characteristics.BorderColor
a.Flatten()
message = '0123456789'
Code128 = PdfCode128ABarcode(message)
Code128.BarcodeToTextGapHeight = 1.0
Code128.TextDisplayLocation = TextLocation.Bottom
Code128.TextColor = PdfRGBColor(Color.get_Blue())
Code128.Draw(page, PointF(0.0, y))
from spire.pdf import *
pdf = PdfDocument()
builder = PdfContentBuilder(pdf)
template = PdfPageTemplate()
template.SetHeader("Product Manual", PdfTextAlignment.Center)
template.SetFooter("Page {page} of {totalPages}", PdfTextAlignment.Center)
section = builder.AddSection(template)
section.AddHeading1("1. Introduction")
section.AddParagraph("内容自动跨页排版。")
section.AddBulletList(["快速", "稳定", "易用"])
builder.Build()
pdf.SaveToFile("output.pdf")
pdf.Close()
问题修复:
- 修复了向 PDF 文档添加附件后附件无法打开的问题。
- 修复了文本替换失败的问题。
- 修复了提取文本时出现多余空格的问题。
- 修复了使用 PdfTextWidget 接口绘制文本后位置不正确的问题。
- 优化了转换 PDF 到 Word 时速度慢的问题。







