Spire.PDF 9.9.9已发布。该版本增强了从PDF到图像,以及从OFD到PDF的转换功能。此外,还修复了一系列其他已知问题,例如拆分后的文档的大小不正确的问题。详情请阅读以下内容。
问题修复:
在创建 Word 文档的过程中,经常会遇到许多空行。这些空白的空间会打乱文档内容的连贯性,使布局变得混乱,并且降低文档的整体视觉效果。为了提升文档的阅读体验,确保文档有良好的结构,消除空白行十分重要。本文将演示如何使用 Spire.Doc for Python 通过 Python 程序从 Word 文档中的删除空白行。
本教程需要用到 Spire.Doc for Python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.Doc如果您不确定如何安装,请参考此教程:如何在 Windows 中安装 Spire.Doc for Python
Word 文档中的空白行以段落的形式出现在文档中,而段落是节的子对象。因此,删除空白行只需遍历文档各节,识别并删除其中的空白段落即可。具体步骤如下:
from spire.doc import *
from spire.doc.common import *
# 创建 Document 类的对象
doc = Document()
# 加载 Word 文档
doc.LoadFromFile("示例.docx")
# 遍历文档中的每个节
for i in range(doc.Sections.Count):
section = doc.Sections.get_Item(i)
j = 0
# 遍历节中的每个子对象
while j < section.Body.ChildObjects.Count:
# 检查子对象是否为段落类型
if section.Body.ChildObjects[j].DocumentObjectType == DocumentObjectType.Paragraph:
objItem = section.Body.ChildObjects[j]
# 检查子对象是否为 Paragraph 类的实例
if isinstance(objItem, Paragraph):
paraObj = Paragraph(objItem)
# 检查段落文本是否为空
if len(paraObj.Text) == 0:
# 如果段落文本为空,则从节的子对象列表中移除该对象
section.Body.ChildObjects.Remove(objItem)
j -= 1
j += 1
# 保存文档
doc.SaveToFile("output/删除空白行.docx")

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
簇状柱形图和堆叠柱形图是柱形图的两种常见变体。簇状柱形图可以直接比较不同类别的值,而堆叠柱形图既可以显示每个类别的总数,也可以显示其各个组成部分的比例。 本文将介绍如何使用 Spire.XLS for Python 通过代码 在 Excel 中生成簇状或堆叠柱形图。
本方案需要 Spire.XLS for Python 和 plum-dispatch v1.7.4。您可以通过以下 pip 命令将它轻松安装到 Windows 中。
pip install Spire.XLS如果您不清楚如何安装,请参考此教程: 如何在 Windows 中安装 Spire.XLS for Python
Spire.XLS for Python 提供的 Worksheet.Charts.Add(ExcelChartType chartType) 方法支持在工作表中添加图表。其中的 ExcelChartType 枚举包含 MS Excel 中预定义的各种图表类型。具体步骤如下:
from spire.xls import *
from spire.xls.common import *
# 创建 Workbook 对象
workbook = Workbook()
# 获取第一个工作表
sheet = workbook.Worksheets[0]
# 设置图表数据
sheet.Range["A1"].Value = "产品"
sheet.Range["A2"].Value = "短裤"
sheet.Range["A3"].Value = "牛仔裤"
sheet.Range["A4"].Value = "帽子"
sheet.Range["A5"].Value = "T恤"
sheet.Range["B1"].Value = "店铺1"
sheet.Range["B2"].NumberValue = 35000
sheet.Range["B3"].NumberValue = 46000
sheet.Range["B4"].NumberValue = 28000
sheet.Range["B5"].NumberValue = 51000
sheet.Range["C1"].Value = "店铺2"
sheet.Range["C2"].NumberValue = 41000
sheet.Range["C3"].NumberValue = 32000
sheet.Range["C4"].NumberValue = 38000
sheet.Range["C5"].NumberValue = 40000
# 设置单元格样式
sheet.Range["A1:C1"].RowHeight = 15
sheet.Range["A1:C1"].Style.Color = Color.get_Black()
sheet.Range["A1:C1"].Style.Font.Color = Color.get_White()
sheet.Range["A1:C1"].Style.VerticalAlignment = VerticalAlignType.Center
sheet.Range["A1:C1"].Style.HorizontalAlignment = HorizontalAlignType.Center
# 添加一个簇状柱形图到工作表
chart = sheet.Charts.Add(ExcelChartType.ColumnClustered)
# 设置图表数据范围
chart.DataRange = sheet.Range["A1:C5"]
chart.SeriesDataFromRange = False
# 设置图表位置
chart.LeftColumn = 5
chart.TopRow = 1
chart.RightColumn = 14
chart.BottomRow = 21
# 设置图表标题
chart.ChartTitle = "店铺各产品销售情况"
chart.ChartTitleArea.IsBold = True
chart.ChartTitleArea.Size = 12
# 设置坐标轴标题
chart.PrimaryCategoryAxis.Title = "产品"
chart.PrimaryCategoryAxis.Font.IsBold = True
chart.PrimaryCategoryAxis.TitleArea.IsBold = True
chart.PrimaryValueAxis.Title = "销量"
chart.PrimaryValueAxis.HasMajorGridLines = False
chart.PrimaryValueAxis.TitleArea.IsBold = True
chart.PrimaryValueAxis.TitleArea.TextRotationAngle = 90
# 设置图表系列的颜色、重叠、间隙宽度和数据标签
series = chart.Series
for i in range(len(series)):
cs = series[i]
cs.Format.Options.IsVaryColor = True
cs.Format.Options.Overlap = -50
cs.Format.Options.GapWidth = 350
cs.DataPoints.DefaultDataPoint.DataLabels.HasValue = True
# 设置图例位置
chart.Legend.Position = LegendPositionType.Top
# 保存结果文档
workbook.SaveToFile("簇状柱形图.xlsx", ExcelVersion.Version2016)
创建堆叠柱形图的过程与创建簇状柱形图类似。唯一不同的是,你需要将 Excel 图表类型从 ColumnClustered 更改为 ColumnStacked。具体步骤如下:
from spire.xls import *
from spire.xls.common import *
# 创建 Workbook 对象
workbook = Workbook()
# 获取第一个工作表
sheet = workbook.Worksheets[0]
# 设置图表数据
sheet.Range["A1"].Value = "产品"
sheet.Range["A2"].Value = "短裤"
sheet.Range["A3"].Value = "牛仔裤"
sheet.Range["A4"].Value = "帽子"
sheet.Range["A5"].Value = "T恤"
sheet.Range["B1"].Value = "店铺1"
sheet.Range["B2"].NumberValue = 35000
sheet.Range["B3"].NumberValue = 46000
sheet.Range["B4"].NumberValue = 28000
sheet.Range["B5"].NumberValue = 51000
sheet.Range["C1"].Value = "店铺2"
sheet.Range["C2"].NumberValue = 41000
sheet.Range["C3"].NumberValue = 32000
sheet.Range["C4"].NumberValue = 38000
sheet.Range["C5"].NumberValue = 40000
# 设置单元格样式
sheet.Range["A1:C1"].RowHeight = 15
sheet.Range["A1:C1"].Style.Color = Color.get_Black()
sheet.Range["A1:C1"].Style.Font.Color = Color.get_White()
sheet.Range["A1:C1"].Style.VerticalAlignment = VerticalAlignType.Center
sheet.Range["A1:C1"].Style.HorizontalAlignment = HorizontalAlignType.Center
# 添加一个堆叠柱形图到工作表
chart = sheet.Charts.Add(ExcelChartType.ColumnStacked)
# 设置图表数据范围
chart.DataRange = sheet.Range["A1:C5"]
chart.SeriesDataFromRange = False
# 设置图表位置
chart.LeftColumn = 5
chart.TopRow = 1
chart.RightColumn = 14
chart.BottomRow = 21
# 设置图表标题
chart.ChartTitle = "店铺各产品销售情况"
chart.ChartTitleArea.IsBold = True
chart.ChartTitleArea.Size = 12
# 设置坐标轴标题
chart.PrimaryCategoryAxis.Title = "产品"
chart.PrimaryCategoryAxis.Font.IsBold = True
chart.PrimaryCategoryAxis.TitleArea.IsBold = True
chart.PrimaryValueAxis.Title = "销量"
chart.PrimaryValueAxis.HasMajorGridLines = False
chart.PrimaryValueAxis.TitleArea.IsBold = True
chart.PrimaryValueAxis.TitleArea.TextRotationAngle = 90
# 设置图表系列的颜色、重叠、间隙宽度和数据标签
series = chart.Series
for i in range(len(series)):
cs = series[i]
cs.Format.Options.IsVaryColor = True
cs.Format.Options.GapWidth = 270
cs.DataPoints.DefaultDataPoint.DataLabels.HasValue = True
cs.DataPoints.DefaultDataPoint.DataLabels.Position = DataLabelPositionType.Inside
# 设置图例位置
chart.Legend.Position = LegendPositionType.Top
# 保存结果文档
workbook.SaveToFile("堆叠柱形图.xlsx", ExcelVersion.Version2016)
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
图片提供了一种直观的方式来传达信息,能够补充和增强文字内容。通过在 Word 文档中插入适当的图片,可以提高文档的可读性,同时也能使内容更具吸引力和趣味性。本文将介绍如何使用 Spire.Doc for Python 通过代码在 Word 文档中插入图片。
本教程需要用到 Spire.Doc for Python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.Doc如果您不确定如何安装,请参考此教程:如何在 Windows 中安装 Spire.Doc for Python
Spire.Doc for Python 提供的 Paragraph.AppendPicture() 方法可以将图片插入到 Word 文档中. 具体步骤如下:
from spire.doc import *
from spire.doc.common import *
# 创建 Document 类的对象
document = Document()
# 添加一节
section = document.AddSection()
# 添加一个段落
paragraph1 = section.AddParagraph()
# 向段落中添加文本并设置格式
tr = paragraph1.AppendText("Spire.Doc for Python 是一款独立专业的 Python Word 开发组件,开发人员可以使用它轻松地将 Word 文档的创建、读取、编辑和转换等功能集成到自己的 Python 应用程序中。为一款完全独立的组件,Spire.Doc for Python 的运行环境无需安装 Microsoft Word。")
tr.CharacterFormat.FontName = "宋体"
tr.CharacterFormat.FontSize = 11
paragraph1.Format.LineSpacing = 15
paragraph1.Format.BeforeSpacing = 10
paragraph1.Format.AfterSpacing = 10
# 添加另一个段落
paragraph2 = section.AddParagraph()
tr = paragraph2.AppendText("Spire.Doc for Python 能执行多种 Word 文档处理任务,包括生成、读取、和转换 Word 文档,插入图片,添加页眉页脚,创建表格,添加表单域和邮件合并域,加密和解密 Word 文档,添加文本和图片水印,设置背景颜色和背景图片,添加脚注和尾注,添加超链接等。")
# 向段落中添加文本并设置格式
tr.CharacterFormat.FontName = "宋体"
tr.CharacterFormat.FontSize = 11
paragraph2.Format.LineSpacing = 15
# 在指定段落插入一个图片
picture = paragraph1.AppendPicture("Spire.Doc.jpg")
# 设置图片尺寸
picture.Width = 100
picture.Height = 100
# 设置图片的文字环绕样式
picture.TextWrappingStyle = TextWrappingStyle.Square
# 保存结果文档
document.SaveToFile("Word图片.docx", FileFormat.Docx)
document.Close()
如果想要将图片插入到 Word 文档中的指定位置,可以通过 DocPicture.HorizontalPosition 和 DocPicture.VerticalPosition 属性设置图片的位置。具体步骤如下:
from spire.doc import *
from spire.doc.common import *
# 创建 Document 类的对象
doc = Document()
# 添加一节
section = doc.AddSection()
# 添加一个段落
paragraph = section.AddParagraph()
# 向段落中添加文本并设置格式
paragraph.AppendText("此示例演示如何在Word文档中的指定位置插入图片。")
paragraph.ApplyStyle(BuiltinStyle.Heading1)
# 插入一个图片到该段落
picture = paragraph.AppendPicture("pic.jpg")
# 设置图片位置
picture.HorizontalPosition = 150.0
picture.VerticalPosition = 60.0
# 设置图片尺寸
picture.Width = 120.0
picture.Height = 180.0
# 设置图片的文字环绕样式(注意当文字环绕样式为Inline时位置设置不适用)
picture.TextWrappingStyle = TextWrappingStyle.Through
# 保存结果文档
doc.SaveToFile("插入图片.docx", FileFormat.Docx)
doc.Close()
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Spire.Doc for Java 11.9.5 已发布。本次更新优化了读取本身存在问题的文档的机制,让其抛出异常结束程序从而避免导致内存溢出。本次更新还优化了 Word 到 PDF 和 HTML 以及 HTML 到 Docx 的转换功能。此外,一些已知问题也在该版本被修复,如使用正则表达式查找文本失败的问题。详情请阅读以下内容。
新功能:
问题修复:
Excel 工作簿是一种功能强大的电子表格,可以通过多种方式创建、操作和分析数据。隐藏或取消隐藏工作表是工作簿提供的实用功能之一。隐藏工作表有助于保护敏感或机密信息、减少杂乱内容以及更有效地组织数据。当用户需要重新显示隐藏的工作表时,也可以通过简单的操作取消隐藏。本文将介绍如何使用 Sprie.XLS for Python 通过 Python 程序隐藏或取消隐藏 Excel 工作簿中的工作表。
本方案需要 Spire.XLS for Python 和 plum-dispatch v1.7.4。您可以通过以下 pip 命令将它轻松安装到 Windows 中。
pip install Spire.XLS如果您不清楚如何安装,请参考此教程: 如何在 Windows 中安装 Spire.XLS for Python
Spire.XLS for Python 中的 Worksheet.Visibility 属性可用于设置工作表的可见性。通过为该属性赋值 WorksheetVisibility.Hidden 或 WorksheetVisibility.StrongHidden,用户可以将工作表的可见性改为隐藏或强隐藏(强隐藏的工作表在 Excel 中完全不显示,只能通过代码解除隐藏)。
隐藏工作表的详细步骤如下:
from spire.common import *
from spire.xls.common import *
# 创建 Workbook 类的对象
workbook = Workbook()
# 加载 Excel 工作簿
workbook.LoadFromFile("示例.xlsx")
# 隐藏第一个工作表
workbook.Worksheets[0].Visibility = WorksheetVisibility.Hidden
# 将第二个工作表设置为非常隐藏
workbook.Worksheets[1].Visibility = WorksheetVisibility.StrongHidden
# 保存工作簿
workbook.SaveToFile("output/隐藏工作表.xlsx")
取消隐藏工作表可以通过将 WorksheetVisibility.Visible 赋值给 Workbook.Worksheets[].Visibility 属性来实现。具体步骤如下:
from spire.common import *
from spire.xls.common import *
# 创建Workbook类的对象
workbook = Workbook()
# 加载Excel工作簿
workbook.LoadFromFile("output/隐藏工作表.xlsx")
# 取消隐藏第二个工作表
workbook.Worksheets[1].Visibility = WorksheetVisibility.Visible
# 保存工作簿
workbook.SaveToFile("output/解除工作表隐藏.xlsx")
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Spire.XLS 13.9.1已发布。该版本新增支持将形状保存为图片。此外,一些已知问题也在该版本中被成功修复,如将Excel转换为CSV后,数据换行不正确的问题。详情请阅读以下内容。
新功能:
Workbook workbook = new Workbook();
workbook.LoadFromFile(inputFile);
Worksheet sheet = workbook.Worksheets[0];
//将形状转换为图片
SaveShapeTypeOption shapelist = new SaveShapeTypeOption();
//将工作表中的形状保存为图片
shapelist.SaveAll = true;
Dictionary<IShape,Bitmap> images = sheet.SaveAndGetShapesToImage(shapelist);
foreach (KeyValuePair<IShape, Bitmap> pair in images)
{
IShape shape = pair.Key;
Bitmap bitmap = pair.Value;
bitmap.Save(outputFile+shape.Name + "_" + shape.Height + "_" + shape.Width +"_" + shape.ShapeType + ".png");
}问题修复:
Word 文档中的水印是与文档内容叠加展示的半透明文本或图片,通常用来表示文档的状态和性质,也可以对文档内容提供一定的保护,或美化文档。虽然水印有诸多用处,但在展示或编辑文档时,水印往往会成为一种阻碍。水印可能会分散读者注意力,影响文档可读性,并可能降低文档的整体质量。本文将介绍如何使用 Spire.Doc for Python 通过 Python 程序中去除 Word 文档中的水印。
本教程需要用到 Spire.Doc for Python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.Doc如果您不确定如何安装,请参考此教程:如何在 Windows 中安装 Spire.Doc for Python
Spire.Doc for Python 提供的 Document.Watermark 属性来帮助用户处理 Word 文档的水印。用户可以给该属性赋一个空值来移除 Word 文档的水印。具体步骤如下:
from spire.doc import *
from spire.doc.common import *
# 创建一个 Document 类的对象
doc = Document()
# 加载一个 Word 文档
doc.LoadFromFile("示例.docx")
# 移除水印
doc.Watermark = None
# 保存文档
doc.SaveToFile("output/移除水印.docx", FileFormat.Auto)
doc.Close()
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。

PowerPoint(PPT 或 PPTX)是一种广泛用于演示和内容展示的文件格式,但在文件共享、打印或长期归档等场景中,PDF 格式往往更为理想。将 PowerPoint 转换为 PDF 不仅能保持原始排版,还能提升文件的便携性、稳定性和专业性。
本文将介绍如何使用 Python 和 Spire.Presentation for Python 高效实现 PowerPoint 到 PDF 的转换。内容涵盖默认转换方法及高级自定义转换设置,如导出特定幻灯片、调整幻灯片尺寸、导出隐藏幻灯片、生成符合PDF/A标准的文件等,帮助开发者根据不同场景灵活定制导出效果,满足多样化的文档处理需求。
将 PowerPoint 文件保存为 PDF 有很多优势,例如:
Spire.Presentation for Python 是一款功能全面的 PowerPoint 文件处理库,支持在不安装 Microsoft PowerPoint 的环境中创建、读取、编辑及导出 PPT/PPTX等文件。
在开始转换前,请使用以下命令通过 pip 安装该库:
pip install Spire.Presentation
如需安装帮助,请参考此教程:如何在 Windows 上安装 Spire.Presentation for Python_
使用 Spire.Presentation将 PowerPoint 文件转换为 PDF 十分简便,只需几行代码。下面的示例展示了如何加载 PowerPoint文件并直接保存为 PDF,适用于快速转换且对转换效果无特殊定制要求的场景。
from spire.presentation import *
# 创建 Presentation 对象
presentation = Presentation()
# 加载 PowerPoint 文件
presentation.LoadFromFile("示例.pptx")
# 将文件保存为 PDF 格式
presentation.SaveToFile("output/PPT转PDF.pdf", FileFormat.PDF)
# 释放资源
presentation.Dispose()

Spire.Presentation 还为开发者提供了多种高级导出选项,使开发者可以灵活控制导出的内容与效果,以满足专业展示和长期归档等不同场景的需求。这些选项包括:
在某些应用场景中,你可能只需导出演示文稿中的某几页内容,而非整个幻灯片文件。Spire.Presentation 支持将指定幻灯片单独保存为 PDF,适用于提取重点内容、生成专题汇报,或按需共享特定幻灯片。
from spire.presentation import *
# 创建 Presentation 对象
presentation = Presentation()
# 加载 PowerPoint 文件
presentation.LoadFromFile("示例.pptx")
# 获取第 2 张幻灯片
slide = presentation.Slides[1]
# 将幻灯片保存为 PDF 格式
slide.SaveToFile("output/幻灯片转PDF.pdf", FileFormat.PDF)
# 释放资源
presentation.Dispose()

为了确保生成的 PDF 满足打印规格或者页面排版需求,你可以在转换前调整幻灯片的尺寸。Spire.Presentation 不仅支持设置标准幻灯片尺寸,还允许自定义幻灯片大小,从而保证输出的 PDF 与目标使用场景高度匹配。
from spire.presentation import *
# 创建 Presentation 对象
presentation = Presentation()
# 加载 PowerPoint 文件
presentation.LoadFromFile("示例.pptx")
# 将幻灯片尺寸调整为 A4
presentation.SlideSize.Type = SlideSizeType.A4
# 或自定义幻灯片尺寸(单位为磅)
# presentation.SlideSize.Size = SizeF(720.0, 540.0)
# 自动调整内容以适应新尺寸
presentation.SlideSizeAutoFit = True
# 保存文件为 PDF 格式
presentation.SaveToFile("output/PPT转A4页面PDF.pdf", FileFormat.PDF)
# 释放资源
presentation.Dispose()

默认情况下,隐藏幻灯片在导出为 PDF 时不会被包含。如果你需要保留完整的演示内容,Spire.Presentation 提供了相应的设置,支持将隐藏幻灯片一并导出至 PDF 文件中。
from spire.presentation import *
# 创建 Presentation 对象
presentation = Presentation()
# 加载 PowerPoint 文件
presentation.LoadFromFile("示例.pptx")
# 获取 PDF 导出选项
option = presentation.SaveToPdfOption
# 设置包含隐藏幻灯片,确保隐藏幻灯片也会被导出
option.ContainHiddenSlides = True
# 保存为 PDF 文件
presentation.SaveToFile("output/导出隐藏幻灯片.pdf", FileFormat.PDF)
# 释放资源
presentation.Dispose()
PDF/A 是一种专用于长期数字存储的标准化格式,旨在确保文档在未来多年内依然可读且内容完整。Spire.Presentation 提供导出 PDF/A 文件的功能,帮助生成符合长期保存规范的演示文档,适用于政府、公文、档案管理等专业场景。
from spire.presentation import *
# 创建 Presentation 对象
presentation = Presentation()
# 加载 PowerPoint 文件
presentation.LoadFromFile("示例.pptx")
# 获取 PDF 导出选项
option = presentation.SaveToPdfOption
# 设置导出符合 PDF/A-1a 长期归档标准
option.PdfConformanceLevel = PdfConformanceLevel.Pdf_A1A
# 保存为 PDF/A 格式的文件
presentation.SaveToFile("output/PDFA文件.pdf", FileFormat.PDF)
# 释放资源
presentation.Dispose()
Spire.Presentation for Python 提供了强大而灵活的 PowerPoint 转 PDF 功能,适用于从快速转换到高阶定制的各类使用场景。无论是导出单张幻灯片,还是生成符合归档标准的 PDF/A 文件,均可通过简单代码实现,极大提升开发效率与文档质量。
A1:可以,Spire.Presentation 是一款独立运行的库,无需安装 Office 或 PowerPoint。
A2:支持。可通过编写循环脚本批量读取文件并进行转换。
A3:不止支持 PDF/A-1a,还支持包括 PDF/A-1b、PDF/A-2a、PDF/A-2b、PDF/A-3a、PDF/A-3b 在内的多个合规级别。
如需完整体验 Spire.Presentation for Python 的全部功能,可该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。(30 天无功能限制)。
Spire.OCR 1.9.0 已发布。本次更新修复了在 Linux 环境下多次执行引入了 Spire.OCR.dll 的项目时报错的问题。详情请阅读以下内容。
问题修复: