Spire.PDF for Java 9.11.3 已发布。本次更新增强了 PDF 到 Word 以及 PPTX 的转换功能。此外,一些已知问题也在改版本中成功修复,如提取PDF中表格的内容失败的问题。详情请阅读以下内容。
问题修复:
PowerPoint 中的水印是以微妙的叠加形式放置在幻灯片上的。它们可以是文本或图片,常见的应用包括展示版权信息、公司徽标、保密声明或其他相关标识。通过在 PPT 幻灯片中插入水印,可以提高文档的专业性、强化品牌形象,并阻止未经授权使用或分发资料。在本文中,您将学习如何使用 Spire.Presentation for Python 在 Python 中为 PPT 文档添加文本水印或图片水印。
本教程需要用到 Spire.Presentation for Python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.Presentation如果您不确定如何安装,请参考此教程:如何在 Windows 中安装 Spire.Presentation for Python
与 MS Word 不同,PowerPoint 没有内置的添加水印的功能。不过,您可以使用 ISlide.Shapes.AppendShape() 方法将带有文本或图片的形状添加到幻灯片中来模拟水印效果。为防止形状与幻灯片上的现有内容重叠,最好将其置于底层。
以下是使用 Spire.Presentation for Python 为 PPT 幻灯片添加文本水印的步骤。
from spire.presentation.common import *
from spire.presentation import *
# 创建Presentation对象
presentation = Presentation()
# 加载PPT文档
presentation.LoadFromFile("工作总结.pptx")
# 定义一个矩形
left = (presentation.SlideSize.Size.Width - 350.0) / 2
top = (presentation.SlideSize.Size.Height - 110.0) / 2
rect = RectangleF(left, top, 350.0, 110.0)
for i in range(0, presentation.Slides.Count):
# 将该矩形形状添加到幻灯片中
shape = presentation.Slides[i].Shapes.AppendShape(
ShapeType.Rectangle, rect)
# 设置形状的样式
shape.Fill.FillType = FillFormatType.none
shape.ShapeStyle.LineColor.Color = Color.get_Transparent()
shape.Rotation = -35
shape.Locking.SelectionProtection = True
shape.Line.FillType = FillFormatType.none
# 在形状中添加文字
shape.TextFrame.Text = "内部文件"
textRange = shape.TextFrame.TextRange
# 设置文本范围的样式
textRange.Fill.FillType = FillFormatType.Solid
textRange.Fill.SolidColor.Color = Color.FromArgb(120, Color.get_Red().R, Color.get_Red().G, Color.get_Red().B)
textRange.FontHeight = 60
textRange.LatinFont = TextFont("微软雅黑")
# 将形状置于底层
shape.SetShapeArrange(ShapeArrange.SendToBack)
# 保存结果文件
presentation.SaveToFile("Output/添加文本水印.pptx", FileFormat.Pptx2013)
presentation.Dispose()
要添加图片水印,首先需要创建一个与图片大小相同的矩形,然后用图片填充该形状并将其置于幻灯片的中心。为防止形状与幻灯片上的现有内容重叠,还需将其置于底部。
以下是使用 Spire.Presentation for Python 为 PPT 幻灯片添加图片水印的步骤。
from spire.presentation.common import *
from spire.presentation import *
# 创建Presentation对象
presentation = Presentation()
# 加载PPT文件
presentation.LoadFromFile("工作总结.pptx")
# 加载图片
stream = Stream("图标.jpg")
image = presentation.Images.AppendStream(stream)
stream.Close()
# 获取图像的宽度和高度
width = (float)(image.Width)
height = (float)(image.Height)
# 获取幻灯片尺寸
slideSize = presentation.SlideSize.Size
# 遍历所有幻灯片
for i in range(0, presentation.Slides.Count):
# 获取指定幻灯片
slide = presentation.Slides[i]
# 在幻灯片中添加一个形状
shape = slide.Shapes.AppendShape(ShapeType.Rectangle, RectangleF((slideSize.Width - width )/2, (slideSize.Height - height)/2, width, height))
# 用图像填充形状
shape.Line.FillType = FillFormatType.none
shape.Locking.SelectionProtection = True
shape.Fill.FillType = FillFormatType.Picture
shape.Fill.PictureFill.FillType = PictureFillType.Stretch
shape.Fill.PictureFill.Picture.EmbedImage = image
# 将形状置于底层
shape.SetShapeArrange(ShapeArrange.SendToBack)
# 保存结果文件
presentation.SaveToFile("Output/添加图片水印.pptx", FileFormat.Pptx2013)
presentation.Dispose()
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Spire.Office 8.11.0 已发布。在该版本中,Spire.PDF 新增支持按阅读顺序获取分栏文档的文本坐标;Spire.Doc 新增转换 Word 到 PDF 时文本整形的功能;Spire.XLS 新增支持自定义透视表字段的名称;Spire.Presentation 新增支持获取形状内文本的位置信息的功能。此外,许多已知问题也在该版本中成功修复。详情请阅读以下内容。
该版本涵盖了最新版的 Spire.Doc,Spire.PDF,Spire.XLS,Spire.Email,Spire.DocViewer,Spire.PDFViewer,Spire.Presentation,Spire.Spreadsheet,Spire.OfficeViewer,Spire.Barcode,Spire.DataExport。
版本信息如下:
https://www.e-iceblue.cn/Downloads/Spire-Office-NET.html
新功能:
PdfDocument doc = new PdfDocument();
doc.LoadFromFile(input);
PdfPageBase pdfPageBase = doc.Pages[0];
PdfTextFinder finder = new PdfTextFinder(pdfPageBase);
finder.Options.Strategy = PdfTextStrategy.Simple;PdfDocument doc = new PdfDocument();
PdfPageBase page = doc.Pages.Add();
string text = "Please add the code picture BehindText=true to set the picture behind text";
PdfSolidBrush solidBrush = new PdfSolidBrush (new PdfRGBColor(Color.Black));
PdfStringFormat format = new PdfStringFormat():
format.HorizontalScalingFactor = 80;
PdfFont font = new PdfFont(PdfFontFamily.TimesRoman, 14f, PdfFontStyle.Regular);
PdfGraphicsState state = page.Canvas.Save();
page.Canvas.DrawString(text, font, solidBrush, 0, 0, format);
page.Canvas.Restore(state):
doc.SaveToFile(outputFile);
doc.Close();PdfDocument doc = new PdfDocument();
doc.LoadFromFile(inputFile);
doc.ConvertOptions.ApplyPermissionsOptions(true);
StringBuilder sb = new StringBuilder();
foreach (FileFormat type in Enum.GetValues(typeof(FileFormat)))
{
try
{
if (type.ToString().Equals("PDF"))
{
doc.SaveToFile(outputFile_P, type);
}
else
{
doc.SaveToFile(outputFile, type);
}
}
catch (Exception ex)
{
sb.AppendLine("save to: "+ type +" :"+ ex.Message);
}
}
File.AppendAllText(outputFile,sb.ToString());
doc.Dispose();问题修复:
新功能:
Document doc = new Document();
doc.LoadFromFile(https://cdn.e-iceblue.cn/fileName);
doc.LayoutOptions.UseHarfBuzzTextShaper = true;
doc.SaveToFile(pdfFileName, Spire.Doc.FileFormat.PDF)问题修复:
新功能:
sheet.PivotTables[0].RowFields[0].CustomName = "rowName";
sheet.PivotTables[0].ColumnFields[0].CustomName = "colName";
sheet.PivotTables[0].PivotFields[0].CustomName = "fieldName1";
sheet.PivotTables[0].DataFields[0].CustomName = "dataName";问题修复:
新功能:
Presentation ppt = new Presentation();
ppt.LoadFromFile(inputFile);
StringBuilder sb = new StringBuilder();
ISlide slide = ppt.Slides[0];
for (int i = 0; i < slide.Shapes.Count; i++)
{
IShape shape = slide.Shapes[i];
if (shape is IAutoShape)
{
IAutoShape autoshape = slide.Shapes[i] as IAutoShape;
string text = autoshape.TextFrame.Text;
//obtain the text position information
PointF point = autoshape.TextFrame.GetTextLocation();
sb.AppendLine("Shape " + i + ":" + text + "\r\n" + "location:" + point.ToString());
}
}
File.AppendAllText(outputFile, sb.ToString());
ppt.Dispose();Presentation ppt = new Presentation();
ppt.LoadFromFile(inputFile);
ISlide slide = ppt.Slides[0];
IAutoShape autoshape = slide.Shapes[0] as IAutoShape;
IList<LineText> lines = autoshape.TextFrame.GetLayoutLines();
for (int i = 0; i < lines.Count; i++)
{
float ascent= lines[i].Ascent;
float descent = lines[i].Descent;
}Presentation ppt = new Presentation();
ppt.LoadFromFile("FreeForm.pptx");
ISlide slide = ppt.Slides[0];
int num = 0;
foreach (IShape shape in slide.Shapes)
{
byte[] svgByte = shape.SaveAsSvg();
FileStream fs = new FileStream("shape_" + num + ".svg",FileMode.Create);
fs.Write(svgByte, 0, svgByte.Length);
fs.Close();
num++;
}问题修复:
Microsoft PowerPoint 中的 SmartArt 是一个非常有用的工具,它允许用户创建视觉吸引人的图表和图形来表达信息和概念。通过将普通文本转化为视觉上引人注目的图像,SmartArt 为观众提供了一种快速简便的方式,使他们更容易理解和记忆所呈现的信息。在本文中,我们将演示如何使用 Spire.Presentation for Python 在 Python 中创建、读取和删除 PowerPoint 中的 SmartArt。
本教程需要用到 Spire.Presentation for Python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.Presentation如果您不确定如何安装,请参考此教程:如何在 Windows 中安装 Spire.Presentation for Python
Spire.Presentation for Python 提供了 ISlide.Shapes.AppendSmartArt() 方法来为 PowerPoint 中的特定幻灯片添加 SmartArt 图形。详细步骤如下:
from spire.presentation.common import *
from spire.presentation import *
# 创建Presentation类的对象
presentation = Presentation()
# 加载PowerPoint演示文稿
presentation.LoadFromFile("Sample.pptx")
# 获取第一张幻灯片
slide = presentation.Slides[0]
# 添加一个SmartArt (组织架构图) 图形到该幻灯片
smartArt = slide.Shapes.AppendSmartArt(200, 60, 500, 430, SmartArtLayoutType.OrganizationChart)
# 设置SmartArt的样式和颜色
smartArt.Style = SmartArtStyleType.ModerateEffect
smartArt.ColorStyle = SmartArtColorType.ColorfulAccentColors5to6
# 删除SmartArt的默认节点
list = []
for node in smartArt.Nodes:
list.append(node)
for subnode in list:
smartArt.Nodes.RemoveNode(subnode)
# 给SmartArt添加一个节点
node = smartArt.Nodes.AddNode()
# 给刚加的节点添加两个子节点
subNode1 = node.ChildNodes.AddNode()
subNode2 = node.ChildNodes.AddNode()
# 给第一个子节点添加两个子节点
subsubNode1 = subNode1.ChildNodes.AddNode()
subsubNode2 = subNode1.ChildNodes.AddNode()
# 给第二个子节点添加两个子节点
subsubNode3 = subNode2.ChildNodes.AddNode()
subsubNode4 = subNode2.ChildNodes.AddNode()
# 为SmartArt中的节点和子节点设置文本内容和文本的字体大小
node.TextFrame.Text = "总经理"
node.TextFrame.TextRange.FontHeight = 14.0
subNode1.TextFrame.Text = "开发部经理"
subNode1.TextFrame.TextRange.FontHeight = 12.0
subNode2.TextFrame.Text = "测试部经理"
subNode2.TextFrame.TextRange.FontHeight = 12.0
subsubNode1.TextFrame.Text = "开发者A"
subsubNode1.TextFrame.TextRange.FontHeight = 12.0
subsubNode2.TextFrame.Text = "开发者B"
subsubNode2.TextFrame.TextRange.FontHeight = 12.0
subsubNode3.TextFrame.Text = "测试者A"
subsubNode3.TextFrame.TextRange.FontHeight = 12.0
subsubNode4.TextFrame.Text = "测试者B"
subsubNode4.TextFrame.TextRange.FontHeight = 12.0
# 保存结果文档
presentation.SaveToFile("创建SmartArt.pptx", FileFormat.Pptx2016)
presentation.Dispose()
要读取 PowerPoint 幻灯片上 SmartArt 图形的内容,你需要找到幻灯片上的所有 SmartArt 形状,然后遍历每个 SmartArt 形状的所有节点,并通过 ISmartArtNode.TextFrame.Text 属性获取每个节点的文本。具体步骤如下:
from spire.presentation.common import *
from spire.presentation import *
# 创建Presentation类的对象
presentation = Presentation()
# 加载PowerPoint演示文稿
presentation.LoadFromFile("创建SmartArt.pptx")
# 获取第一张幻灯片
slide = presentation.Slides[0]
# 创建一个列表来存储提取的文本
str = []
str.append("从 SmartArt 中提取的文本:")
# 遍历幻灯片上的所有形状,找到SmartArt形状
for shape in slide.Shapes:
if isinstance(shape, ISmartArt):
smartArt = shape
# 从SmartArt中获取文本并将文本追加到列表中
for node in smartArt.Nodes:
str.append(node.TextFrame.Text)
# 将列表中的文本写入文本文件
with open("SmartArt文本.txt", "w", encoding = "utf-8") as text_file:
for text in str:
text_file.write(text + "\n")
presentation.Dispose()
要从 PowerPoint 幻灯片中删除 SmartArt 图形,你需要遍历幻灯片上的所有形状,找到 SmartArt 形状,然后使用 ISlide.Shapes.Remove() 方法从幻灯片中删除它们。具体步骤如下:
from spire.presentation.common import *
from spire.presentation import *
# 创建Presentation类的对象
presentation = Presentation()
# 加载PowerPoint演示文稿
presentation.LoadFromFile("创建SmartArt.pptx")
# 获取第一张幻灯片
slide = presentation.Slides[0]
# 创建一个列表来存储SmartArt图形
list = []
# 遍历该幻灯片上的所有形状
for shape in slide.Shapes:
# 找到SmartArt形状并将它们追加到列表
if isinstance (shape, ISmartArt):
list.append(shape)
# 从幻灯片中删除SmartArt形状
for smartArt in list:
slide.Shapes.Remove(smartArt)
# 保存结果文档
presentation.SaveToFile("删除SmartArt.pptx", FileFormat.Pptx2016)
presentation.Dispose()如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。

在 Python 中将 HTML 文件转换为 Word 文档,是开发者在构建文档管理系统、生成报表工具或将网页内容转换为可离线编辑格式时的常见需求。虽然 HTML 更适合用于网页展示,但 Word 文档在脱机访问、内容协作、格式排版以及专业文档呈现方面具有更强的灵活性和兼容性。
本文将详细介绍如何在 Python 中使用 Spire.Doc for Python 库将 HTML 文件或 HTML 字符串转换为 Word(.doc/.docx)文档。该库支持保留 HTML 的原始结构和样式,确保转换后的 Word 文档在格式和排版上与源内容高度一致,适用于多种文档处理场景。
虽然 HTML 非常适合用于网页内容的展示,但在需要格式排版、内容审阅、文档打印或脱机访问等场景中,将 HTML 转换为 Word 文档更具优势,具体体现在以下几个方面:
Spire.Doc for Python 是一款功能强大且易于集成的文档处理库,专为帮助开发者在 Python 应用中直接创建、读取、转换和操作 Word 文档而设计。它支持将 HTML 内容高保真地转换为 Word 文件,并在转换过程中完整保留 HTML 的结构、CSS 样式和页面布局。
您可以使用以下命令轻松通过PyPI安装该库:
pip install spire.doc
如需详细安装指导,请参考教程:如何在Windows上安装Spire.Doc for Python。
如果您已经有一个 HTML 文件(如网页保存的文件或自动生成的 HTML 报告)时,只需几行简单的代码即可快速将其转换为 Word 文档。
from spire.doc import *
from spire.doc.common import *
# 创建Document类的对象
document = Document()
# 加载一个HTML文件
document.LoadFromFile("sample.html", FileFormat.Html, XHTMLValidationType.none)
# 将HTML文件保存为.docx格式
document.SaveToFile("Html转Word.docx", FileFormat.Docx2016)
document.Close()
代码说明:
以上示例展示了如何将 .html 文件内容转换为 Word 文档。以下是主要用到的方法和属性说明:
如果需要将HTML保存为 .doc 格式,可将 FileFormat.Docx2016 替换为 FileFormat.Doc。
输出效果:
下图展示了 HTML 文件转换后的 Word 文档效果:

在某些场景中,HTML 内容可能并非来自本地文件,而是以字符串的形式存在,例如网页爬虫抓取的内容,或程序在运行时动态生成的 HTML 片段。使用 Spire.Doc,您可以直接将 HTML 字符串插入到 Word 文档中,无需将其事先保存为 HTML 文件。
from spire.doc import *
from spire.doc.common import *
# 创建Document类的对象
document = Document()
# 在文档中添加一节
sec = document.AddSection()
# 在该节中添加一个段落
paragraph = sec.AddParagraph()
# 指定HTML字符串
htmlString = """
<html>
<head>
<title>HTML转Word示例</title>
<style>
body {
font-family: 微软雅黑, sans-serif;
}
h1 {
color: #FF5733;
font-size: 24px;
margin-bottom: 20px;
}
p {
color: #333333;
font-size: 16px;
margin-bottom: 10px;
}
ul {
list-style-type: disc;
margin-left: 20px;
margin-bottom: 15px;
}
li {
font-size: 14px;
margin-bottom: 5px;
}
table {
border-collapse: collapse;
width: 100%;
margin-bottom: 20px;
}
th, td {
border: 1px solid #CCCCCC;
padding: 8px;
text-align: left;
}
th {
background-color: #F2F2F2;
font-weight: bold;
}
td {
color: #0000FF;
}
</style>
</head>
<body>
<h1>这是标题示例</h1>
<p>将 HTML 转换为 Word 文档的段落示例。</p>
<p>下面是一个无序列表的示例:</p>
<ul>
<li>项目 1</li>
<li>项目 2</li>
<li>项目 3</li>
</ul>
<p>表格示例:</p>
<table>
<tr>
<th>产品</th>
<th>数量</th>
<th>价格</th>
</tr>
<tr>
<td>长裤</td>
<td>30</td>
<td>¥150</td>
</tr>
<tr>
<td>毛衣</td>
<td>2</td>
<td>¥99</td>
</tr>
</table>
</body>
</html>
"""
# 将 HTML 字符串添加到段落中
paragraph.AppendHTML(htmlString)
# 保存结果文件
document.SaveToFile("HtmlStringToWord.docx", FileFormat.Docx2016)
document.Close()
代码说明:
该代码示例展示了如何将 HTML 字符串直接插入到 Word 文档中。以下是主要用到的方法说明:
该方法适用于将邮件正文、CMS 内容管理系统中的内容,或运行时生成的 HTML 片段转换为 Word 文档的场景。
输出效果:
下图展示了将上述 HTML 字符串插入 Word 后的实际效果:

使用 Spire.Doc for Python,不仅可以将 HTML 转换为 Word 文档,还能导出为多种其他格式,例如:
Spire.Doc for Python 为开发者提供了强大而高效的 HTML 转 Word 解决方案。无论是完整的 HTML 文件,还是动态生成的 HTML 字符串,它都能轻松完成转换,并精准保留原始文档的结构、样式和布局。其独立运行的特性无需依赖 Microsoft Word,极大地简化了部署和使用流程。凭借高保真的转换效果和丰富的功能支持,Spire.Doc for Python 成为构建自动化文档生成、报表制作及内容管理系统的理想选择。
Q1:是否可以在不安装 Microsoft Word 的情况下完成转换?
A1:可以。Spire.Doc 是一个独立组件,无需依赖 Microsoft Word 或 Office 环境。
Q2:CSS 样式和表格能否完整保留?
A2:可以。该库能够保留 CSS 样式、表格、图像、列表、字体及布局格式,确保文档效果一致。
Q3:是否支持批量转换多个 HTML 文件?
A3:支持。您可以遍历文件夹,对每个 HTML 文件应用相同的转换逻辑,实现批量处理。
Q4:除了 Word 格式,HTML 还能导出为哪些格式?
A4:支持导出为 .doc、.docx、.pdf、图片格式、.rtf、.xml 等多种常见格式。
Q5:是否提供免费试用许可证?
A5:提供。您可以申请 30 天的试用许可证,充分体验产品功能。
Spire.XLS for Python 13.11.1 已发布。本次更新新增 IPivotTableOptions.ReportLayout get/set 方法和 ConverterSetting.ToImageWithoutMargins get/set 方法。此外,大量已知问题在该版本中得到修复,如页眉图片显示为全黑色的问题。详情请阅读以下内容。
新功能:
问题修复:
在 PDF 文档中,通过使用鲜明的颜色来突出显示重要文本是一种常用内容导航和强调方法。特别是在较长的 PDF 文档中,强调关键信息有助于读者快速理解文档内容,从而提高阅读效率。而利用 Python 程序可以轻松快捷地执行突出显示文本的操作,提升 PDF 文档创建及修改的效率。本文将介绍如何使用 Spire.PDF for Python 通过 Python 程序在 PDF 文档中查找并突出显示文本。
本教程需要用到 Spire.PDF for Python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.PDF如果您不确定如何安装,请参考此教程:如何在 Windows 中安装 Spire.PDF for Python
利用 Spire.PDF for Python,用户可以使用 PdfTextFinder 类来定位页面内的特定文本。并通过使用 PdfTextFinder.Options.Parameter 属性设置搜索选项,如 WholeWord(全词匹配)。一旦匹配到文本,便可以应用高亮效果以在视觉上区分文本。以下是在 PD F中查找并高亮显示文本的步骤:
from spire.pdf import *
from spire.pdf.common import*
# 创建PdfDocument类对象并加载PDF文档
pdf = PdfDocument()
pdf.LoadFromFile("示例.pdf")
# 循环遍历PDF文档中的页面
for i in range(pdf.Pages.Count):
page = pdf.Pages.get_Item(i)
# 为当前页面创建一个PdfTextFinder对象
pdfTextFinder = PdfTextFinder(page)
# 设置查找选项
pdfTextFinder.Options.Parameter = TextFindParameter.WholeWord
# 查找页面上特定文本的所有出现位置
result = pdfTextFinder.Find("云服务器")
# 突出显示所有查找到的文本
for find in result:
find.HighLight(Color.get_Cyan())
# 保存文档
pdf.SaveToFile("output/查找并突出显示.pdf")
# 对象释放
pdf.Close()
为了在文档中突出显示特定部分的关键信息,可以在 PDF 文档页面的矩形区域内查找并高亮指定的文本。该矩形区域可以通过 PdfTextFinder.Options.Area 来定义。具体操作步骤如下:
from spire.pdf import *
from spire.pdf.common import*
# 创建PdfDocument类对象并加载PDF文档
pdf = PdfDocument()
pdf.LoadFromFile("示例.pdf")
# 获取第一页
page = pdf.Pages.get_Item(0)
# 定义一个矩形区域
rctg = RectangleF(0.0, 0.0, page.ActualSize.Width, 300.0)
# 为当前页面创建一个PdfTextFinder对象
pdfTextFinder = PdfTextFinder(page)
# 设置查找选项并应用指定区域
pdfTextFinder.Options.Parameter = TextFindParameter.WholeWord
pdfTextFinder.Options.Area = rctg
# 查找文本
result = pdfTextFinder.Find("云服务器")
# 突出显示所有查找到的文本
for find in result:
find.HighLight(Color.get_Green())
# 保存文档
pdf.SaveToFile("output/查找并突出显示.pdf")
# 对象释放
pdf.Close()
在实际应用中,需要使用正则表达式在文档中灵活地匹配相应文本。Spire.PDF for Python 同样也支持使用正则表达式来匹配,只需要将 TextFindParameter 设置为 Regex 类型。以下是使用正则表达式在 PDF 中匹配查找并高亮文本的步骤。具体步骤如下:
from spire.pdf import *
from spire.pdf.common import*
# 创建PdfDocument类对象并加载PDF文档
pdf = PdfDocument()
pdf.LoadFromFile("示例.pdf")
# 获取第一页
page = pdf.Pages.get_Item(0)
# 为当前页面创建一个PdfTextFinder对象
pdfTextFinder = PdfTextFinder(page)
# 设置查找选项
pdfTextFinder.Options.Parameter = TextFindParameter.Regex
# 指定匹配数字以及百分数的正则表达式
pattern = r'\d+(?:\.\d+)?%?'
# 使用指定的正则表达式在页面上查找匹配的文本
result = pdfTextFinder.Find(pattern)
# 突出显示所有查找到的文本
for find in result:
find.HighLight(Color.get_DeepPink())
# 保存文档
pdf.SaveToFile("output/查找并突出显示.pdf")
# 对象释放
pdf.Close()
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
超链接是一种通常嵌入在文本或图像中的可点击元素。它可以将用户从当前位置引导到另一个网页或文档的特定位置。通过在 PPT 幻灯片中添加超链接,用户可以在演示过程中快速访问其他相关页面或幻灯片。本文将介绍如何使用 Spire.Presentation for Python 通过代码在 PowerPoint 中添加超链接 。
本教程需要用到 Spire.Presentation for Python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.Presentation如果您不确定如何安装,请参考此教程:如何在 Windows 中安装 Spire.Presentation for Python
Spire.Presentation for Python 提供的 TextRange.ClickAction.Address 属性允许用户将文本超链接轻松添加到 PPT 幻灯片中。具体步骤如下:
from spire.presentation.common import *
from spire.presentation import *
# 创建一个PowerPoint演示文稿
presentation = Presentation()
# 为第一张幻灯片设置背景图
ImageFile = "背景.png"
rect = RectangleF.FromLTRB (0, 0, presentation.SlideSize.Size.Width, presentation.SlideSize.Size.Height)
presentation.Slides[0].Shapes.AppendEmbedImageByPath (ShapeType.Rectangle, ImageFile, rect)
# 在第一张幻灯片上添加新形状
shape = presentation.Slides[0].Shapes.AppendShape(ShapeType.Rectangle, RectangleF.FromLTRB (80, 200, 650, 400))
shape.Fill.FillType = FillFormatType.none
shape.ShapeStyle.LineColor.Color = Color.get_White()
# 在形状中添加一些段落
para1 = TextParagraph()
tr = TextRange("Spire.Presentation for Python")
tr.Fill.FillType = FillFormatType.Solid
tr.Fill.SolidColor.Color = Color.get_Black()
para1.TextRanges.Append(tr)
para1.Alignment = TextAlignmentType.Left
shape.TextFrame.Paragraphs.Append(para1)
shape.TextFrame.Paragraphs.Append(TextParagraph())
para2 = TextParagraph()
tr1 = TextRange("这是一个专业的演示文稿处理 API,与 PowerPoint 高度兼容。作为一个完全独立的 Python 开发组件,"
+"开发人员可以使用它来高效地创建、编辑、转换和保存 PPT 演示文稿,而无需安装 Microsoft PowerPoint。")
tr1.Fill.FillType = FillFormatType.Solid
tr1.Fill.SolidColor.Color = Color.get_Black()
para2.TextRanges.Append(tr1)
shape.TextFrame.Paragraphs.Append(para2)
shape.TextFrame.Paragraphs.Append(TextParagraph())
# 添加带有超链接的文本
para3 = TextParagraph()
tr2 = TextRange("了解更多关于 Spire.Presentation for Python 的信息。")
tr2.ClickAction.Address = "https://www.e-iceblue.cn/Introduce/Spire-Presentation-Python.html"
para3.TextRanges.Append(tr2)
shape.TextFrame.Paragraphs.Append(para3)
shape.TextFrame.Paragraphs.Append(TextParagraph())
# 设置段落文本的字体
for para in shape.TextFrame.Paragraphs:
if len(para.Text) != 0:
para.TextRanges[0].LatinFont = TextFont("宋体")
para.TextRanges[0].FontHeight = 16
# 保存结果文件
presentation.SaveToFile("添加文本超链接.pptx", FileFormat.Pptx2013)
presentation.Dispose()
Spire.Presentation for Python 还支持给图片添加超链接。您可以使用 ClickHyperlink 类创建超链接,然后使用 IEmbedImage.Click 属性将其添加到图片中。具体步骤如下:
from spire.presentation.common import *
from spire.presentation import *
# 创建Presentation对象
presentation = Presentation()
# 加载一个PPT文档
presentation.LoadFromFile("添加文本超链接.pptx")
# 获取第一张幻灯片
slide = presentation.Slides[0]
# 添加一张图片到此幻灯片
rect = RectangleF.FromLTRB (250, 70, 400, 210)
image = slide.Shapes.AppendEmbedImageByPath (ShapeType.Rectangle, "产品.jpg", rect)
# 为图片添加超链接
hyperlink = ClickHyperlink("https://www.e-iceblue.cn/Introduce/Spire-Presentation-Python.html")
image.Click = hyperlink
# 保存结果文件
presentation.SaveToFile("添加图片超链接.pptx", FileFormat.Pptx2013)
presentation.Dispose()
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Excel 电子表格被广泛用于组织和分析数据,而 CSV 文件则是一种更简单、更通用的数据交换格式。通过在这两个格式之间进行互相转换,可以更灵活地在不同平台和应用程序之间处理数据。本文将介绍如何使用 Spire.XLS for Python 在 Python 中将 Excel 转换为 CSV,或将 CSV 转换为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.SaveToFile() 方法,允许用户将 Excel 工作簿中的某个工作表导出为单独的 CSV 文件。将 Excel 工作表转换为 CSV 的具体步骤如下:
from spire.xls import *
from spire.xls.common import *
# 创建Workbook对象
workbook = Workbook()
# 加载Excel文档
workbook.LoadFromFile("C:\\Users\\Administrator\\Desktop\\示例.xlsx")
# 获取第一张工作表
sheet = workbook.Worksheets[0]
# 将工作表转为CSV格式
sheet.SaveToFile("Output/Excel转CSV.csv", ",", Encoding.get_UTF8())
workbook.Dispose()
Spire.XLS for Python 提供的 Workbook.LoadFromFile() 方法不仅能加载 Excel 文件,还能加载 CSV 文件。加载 CSV 文件后,可以使用 Workbook.SaveToFile() 方法将其保存为 Excel 文档。将 CSV 文件转换为 Excel 的具体步骤如下:
from spire.xls import *
from spire.xls.common import *
# 创建Workbook对象
workbook = Workbook()
# 加载CSV文件
workbook.LoadFromFile("C:\\Users\\Administrator\\Desktop\\CSV.csv", ",", 1, 1)
# 获取第一张工作表
sheet = workbook.Worksheets[0]
# 将数字显示为文本
sheet.AllocatedRange.IgnoreErrorOptions = IgnoreErrorType.NumberAsText
# 自动调整列宽
sheet.AllocatedRange.AutoFitColumns()
# 将CSV文件保存为Excel
workbook.SaveToFile("Output/CSV转Excel.xlsx", ExcelVersion.Version2016)如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Spire.Presentation for Java 8.11.1已发布。该版本增强了从幻灯片到SVG的转换功能。此外,一些已知问题也在该版本中被成功修复,如插入的HTML文本的下划线丢失的问题。详情请阅读以下内容。
问题修复:
https://www.e-iceblue.cn/Downloads/Spire-Presentation-JAVA.html