Word 文档中的每个段落都有意或无意地使用着某一种段落样式。段落样式可以是内置样式,例如标题1和标题2,也可以是自定义样式。本文介绍了如何使用 Spire.Doc for Java 提取使用特定样式的段落。
下表列出了MS Word中的样式名称及其在 Spire.Doc 中的对应名称。简单判断的原则是编程返回的样式名称不包含空格。
| MS Word 的样式名称 | Spire.Doc 的样式名称 |
| Title | Title |
| Subtitle | Subtitle |
| Heading 1 | Heading1 |
| Heading 2 | Heading2 |
| Heading 3 | Heading3 |
| No Spacing | NoSpacing |
| Quote | Quote |
| Intense Quote | IntenseQuote |
| List Paragraph | ListParagraph |
| Normal | Normal |
| Custom Name | CustomName |
首先,您需要在 Java 程序中添加 Spire.Doc.jar 文件作为依赖项。JAR 文件可以从 此链接 下载。 如果您使用 Maven,则可以将以下代码添加到项目的 pom.xml 文件中,从而轻松地在应用程序中导入 JAR 文件。
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.doc</artifactId>
<version>14.9.5</version>
</dependency>
</dependencies>
您可以通过 Paragraph.getStyleName() 方法获取特定段落的样式名称。 如果段落的样式名称正好是您需要的,则可以使用 Paragraph.getText() 方法获取段落内容。以下是提取使用特定样式段落的步骤。
import com.spire.doc.Document;
import com.spire.doc.documents.Paragraph;
public class GetParagraphByStyleName {
public static void main(String[] args) {
//在初始化Document对象时加载示例Word文档
Document doc = new Document("C:\\Users\\Administrator\\Desktop\\sample.docx");
//声明一个变量
Paragraph paragraph;
//循环遍历各个节
for (int i = 0; i < doc.getSections().getCount(); i++) {
//循环遍历特定节的段落
for (int j = 0; j < doc.getSections().get(i).getParagraphs().getCount(); j++) {
//获取特定段落
paragraph = doc.getSections().get(i).getParagraphs().get(j);
//确定段落样式是否为“Heading 1”
if (paragraph.getStyleName().equals("Heading1")) {
//获取“Heading1”中段落的文本
System.out.println("Heading 1: " + paragraph.getText() + "\n");
}
//判断段落样式是否为“My Custom Style”
if (paragraph.getStyleName().equals("MyCustomStyle")) {
//获取“My Custom Style”中的段落文本
System.out.println("My Custom Style: " + paragraph.getText());
}
}
}
}
}
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请 该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。 获取有效期 30 天的临时许可证。
Spire.Presentation for Java 4.11.7已发布。该版本支持添加数学公式和检测shape是否包含数学公式,并且增强了PPT到图片,PPT到PDF的转换功能,还修复了图表图例”是否重叠“属性设置不生效等已知问题。详情请阅读以下内容。
新功能:
Presentation ppt = new Presentation();
ppt.loadFromFile("input.pptx");
String latexMathCode = "x^{2}+\\sqrt{x^{2}+1}=2";
IAutoShape shape = ppt.getSlides().get(0).getShapes().appendShape(ShapeType.RECTANGLE, new Rectangle2D.Float(30, 100, 400, 30));
shape.getTextFrame().getParagraphs().clear();
//Add math equation
ParagraphEx tp = shape.getTextFrame().getParagraphs().addParagraphFromLatexMathCode(latexMathCode);for (int i = 0; i<ppt.getSlides().get(0).getShapes().getCount(); i++)
{
//Check whether shape contains math equations
boolean containMathEquation = ((IAutoShape)ppt.getSlides().get(0).getShapes().get(i)).isContainMathEquation();
}
ppt.saveToFile("output.pptx", FileFormat.PPTX_2013);
ppt.dispose();
问题修复:
https://www.e-iceblue.cn/Downloads/Spire-Presentation-JAVA.html
在数据处理、自动化报表生成、业务数据整合等场景中,从 PDF 文件中提取表格是一项常见需求。PDF 作为通用文档格式,虽便于数据共享,但因底层以 “视觉布局” 而非 “结构化数据” 存储,导致编程提取表格时面临格式解析、数据对齐等难题。本文将介绍如何使用 Spire.PDF for .NET 库通过 C# 提取 PDF 中的表格,并将结果导出为 TXT 和 CSV 格式以便进一步分析。
目录:
Spire.PDF for .NET 是一个功能强大的库,用于在 C# 和 VB.NET 中处理 PDF 文件。它支持广泛的 PDF 操作,包括表格提取、文本提取、图像提取等。
推荐通过 NuGet 包管理器安装 Spire.PDF(最便捷,自动处理依赖)。步骤如下:
1. 打开 Visual Studio 并创建一个新的 C# 项目。(此处新建了一个控制台应用程序);
2. 在 Visual Studio 中,右键点击项目名称 → 选择 “管理 NuGet 程序包”;
3. 在 “浏览” 页搜索 Spire.PDF,选择最新稳定版 → 点击 “安装”。
在编写代码之前,让我们先弄清楚 PDF 是如何存储表格的。与 Excel(明确定义行 / 列)不同,PDF 无原生 “表格” 概念,仅通过 3 类视觉元素模拟表格:
Spire.PDF 的 PdfTableExtractor 类正是通过分析这些视觉元素,逆向推断出表格结构,从而实现结构化提取。
如果你需要快速预览表格数据(例如,开发调试或验证提取结果),可以直接通过控制台实时输出结果,无需生成额外文件,节省开发时间。
从 PDF 表格中提取数据的关键方法:
using Spire.Pdf;
using Spire.Pdf.Utilities;
namespace ExtractPdfTable
{
class Program
{
static void Main(string[] args)
{
// 创建PdfDocument对象
PdfDocument pdf = new PdfDocument();
// 加载PDF文件
pdf.LoadFromFile("表格.pdf");
// 初始化PdfTableExtractor类的实例
PdfTableExtractor extractor = new PdfTableExtractor(pdf);
// 循环遍历页面
for (int pageIndex = 0; pageIndex < pdf.Pages.Count; pageIndex++)
{
// 从特定页面提取表格
PdfTable[] tableList = extractor.ExtractTable(pageIndex);
// 判断表格列表是否为空
if (tableList != null && tableList.Length > 0)
{
int tableNumber = 1;
// 循环遍历列表中的表格
foreach (PdfTable table in tableList)
{
Console.WriteLine($"\n第 {pageIndex + 1} 页的第 {tableNumber} 个表格:");
Console.WriteLine("-----------------------------------");
// 获取特定表格的行数和列数
int row = table.GetRowCount();
int column = table.GetColumnCount();
// 循环遍历行和列
for (int i = 0; i < row; i++)
{
for (int j = 0; j < column; j++)
{
// 从特定单元格获取文本
string text = table.GetText(i, j);
// 将单元格文本打印到控制台并带有分隔符
Console.Write($"{text}\t");
}
// 每行后换行
Console.WriteLine();
}
tableNumber++;
}
}
}
// 关闭文档
pdf.Close();
}
}
}
适用场景
输出: 检索 PDF 表格数据并输出到控制台

对于轻量级的数据存档,将表格保存到文本文件是理想的选择。此方法使用 StringBuilder 高效地编译表格数据,保留换行符以提高可读性。
将 PDF 表格导出到 TXT 的主要优势:
using Spire.Pdf;
using Spire.Pdf.Utilities;
using System.Text;
namespace ExtractTableToTxt
{
class Program
{
static void Main(string[] args)
{
// 创建PdfDocument对象
PdfDocument pdf = new PdfDocument();
// 加载PDF文件
pdf.LoadFromFile("表格.pdf");
// 创建StringBuilder对象
StringBuilder builder = new StringBuilder();
// 初始化PdfTableExtractor类的实例
PdfTableExtractor extractor = new PdfTableExtractor(pdf);
// 声明PdfTable数组
PdfTable[] tableList = null;
// 循环遍历页面
for (int pageIndex = 0; pageIndex < pdf.Pages.Count; pageIndex++)
{
// 从特定页面提取表格
tableList = extractor.ExtractTable(pageIndex);
// 判断表格列表是否为空
if (tableList != null && tableList.Length > 0)
{
// 循环遍历列表中的表格
foreach (PdfTable table in tableList)
{
// 获取特定表格的行数和列数
int row = table.GetRowCount();
int column = table.GetColumnCount();
// 循环遍历行和列
for (int i = 0; i < row; i++)
{
for (int j = 0; j < column; j++)
{
// 从特定单元格获取文本
string text = table.GetText(i, j);
// 将文本添加到字符串生成器
builder.Append(text + " ");
}
builder.Append("\r\n");
}
}
}
}
// 写入.txt文件
File.WriteAllText("提取PDF表格.txt", builder.ToString());
}
}
}
适用场景
输出: 提取 PDF 表格数据并保存到文本文件。

扩展应用:对于VB.NET代码示例,请使用我们的 C#⇆VB.NET 转换器直接转换上述代码。
CSV(逗号分隔值)是表格数据的行业标准,与 Excel、Google Sheets 和数据库兼容。此方法通过引用单元格和处理特殊字符,将提取的表格格式化为有效的 CSV 文件。
提取 PDF 表格到 CSV 的主要特点:
using Spire.Pdf;
using Spire.Pdf.Utilities;
using System.Text;
namespace ExtractTableToCsv
{
class Program
{
static void Main(string[] args)
{
// 创建PdfDocument对象
PdfDocument pdf = new PdfDocument();
// 加载PDF文件
pdf.LoadFromFile("表格.pdf");
// 创建StreamWriter对象以高效写入CSV
using (StreamWriter csvWriter = new StreamWriter("PDF表格.csv", false, Encoding.UTF8))
{
// 创建PdfTableExtractor对象
PdfTableExtractor extractor = new PdfTableExtractor(pdf);
// 循环遍历页面
for (int pageIndex = 0; pageIndex < pdf.Pages.Count; pageIndex++)
{
// 从特定页面提取表格
PdfTable[] tableList = extractor.ExtractTable(pageIndex);
// 判断表格列表是否为空
if (tableList != null && tableList.Length > 0)
{
// 循环遍历列表中的表格
foreach (PdfTable table in tableList)
{
// 获取特定表格的行数和列数
int row = table.GetRowCount();
int column = table.GetColumnCount();
// 循环遍历行
for (int i = 0; i < row; i++)
{
// 创建列表存储数据
List<string> rowData = new List<string>();
// 循环遍历列
for (int j = 0; j < column; j++)
{
// 从表格单元格检索文本
string cellText = table.GetText(i, j).Replace("\"", "\"\"");
// 将单元格文本添加到列表并用双引号括起来
rowData.Add($"\"{cellText}\"");
}
// 用逗号连接单元格并写入CSV
csvWriter.WriteLine(string.Join(",", rowData));
}
}
}
}
}
}
}
}
适用场景
输出: 解析 PDF 表格数据并导出到 CSV 文件。

推荐:与 Spire.XLS for .NET 集成,直接提取 PDF 表格到 Excel 文档。
本文提供了三种在 C# 中提取 PDF 表格的有效方法。通过利用 Spire.PDF for .NET 库,开发者可以快速实现 PDF 表格的结构化提取,同时兼顾效率与兼容性。根据实际需求选择合适的导出格式,能大幅提升数据处理效率,减少人工录入成本。
如需进一步探索 PDF 处理功能(如 PDF 生成、水印添加、页面合并),可参考 Spire.PDF 官方文档;若需商业场景测试,可获取 30 天免费试用许可证。
答: Spire.PDF 提供了专用的 PdfTableExtractor 类,该类基于视觉提示(边框、间距和文本对齐)检测表格,简化了从 PDF 解析结构化数据的过程。
答: 不能。此.NET PDF 库仅支持文本型 PDF(文本可选中、复制)。对于扫描的 PDF,请使用 Spire.OCR (OCR 文字识别库)先提取文本,然后再解析表格。
答:可通过 Directory.GetFiles() 遍历文件夹中的所有 PDF,循环执行提取逻辑,示例代码如下:
string[] pdfFiles = Directory.GetFiles(@"C:\Invoices\", "*.pdf");
foreach (string file in pdfFiles)
{
// 表格提取的代码
}
答: 对于大型 PDF(100 + 页),通过以下方式优化性能:
using if (tableList == null || tableList.Length == 0))。Spire.Office 6.11.2已发布。本次更新带来了一些新的功能,例如:Spire.XLS支持给数据栏设置边框的功能以及给折线图和面积图设置垂直线;Spire.Doc新增了两个方法;Spire.PDF支持获取附件所在的页码和转换线性化PDF;Spire.Presentation支持获取表格单元格的填充颜色。此外,该版本还修复了大量已知的问题。详情请阅读以下内容。
该版本涵盖了最新版的Spire.Doc, Spire.PDF, Spire.XLS, Spire.Presentation, Spire.Email, Spire.DocViewer, Spire.PDFViewer, Spire.Spreadsheet, Spire.OfficeViewer, Spire.DataExport, Spire.Barcode。
版本信息如下:
https://www.e-iceblue.cn/Downloads/Spire-Office-NET.html
新功能:
workbook.Worksheets[0].PageSetup.SetCustomPaperSize(width, height);
chart.Series[0].HasDroplines = true;
XlsConditionalFormats cfs = sheet.ConditionalFormats[0];
IConditionalFormat cf = cfs[0];
Spire.Xls.DataBar dataBar1 = cf.DataBar;
dataBar1.BarBorder.Type = Spire.Xls.Core.Spreadsheet.ConditionalFormatting.DataBarBorderType.DataBarBorderSolid;
dataBar1.BarBorder.Color = Color.GreenYellow;
问题修复:
新功能:
int page = pdf.Attachments.GetAttachmentPage("attachmentFileName");
PdfToLinearizedPdfConverter converter = new PdfToLinearizedPdfConverter("inputFile");
converter.ToLinearizedPdf("outputFile");
问题修复:
新功能:
table.SetColumnWidth(int columnIndex, float columnWidth, CellWidthType columnWidthType);
Document doc = new Document();
doc.LoadFromFile("input.docx");
doc.UseNewEngine = true;
doc.SaveToFile("result.pdf", FileFormat.PDF);
问题修复:
//Old method
//tableCell.Width //Deprecated
//tableCell.CellWidthType //Deprecated
//New method
tableCell.SetCellWidth(float width, CellWidthType widthType);
新功能:
table.TableRows[i][j].DisplayColor;
Presentation ppt = new Presentation();
IChart chart = ppt.Slides[0].Shapes.AppendChart(ChartType.ColumnStacked, new RectangleF(100, 100, 500, 400));
CellRange cellRange = chart.ChartData["F1"];
cellRange.Text = "aaa";
cellRange = chart.ChartData["F2"];
cellRange.Text = "bbb";
cellRange = chart.ChartData["F3"];
cellRange.Text = "ccc";
cellRange = chart.ChartData["F4"];
cellRange.Text = "ddd";
chart.Series[0].DataLabelRanges = chart.ChartData["F1", "F4"];
ChartDataLabel dataLabel1 = chart.Series[0].DataLabels.Add();
dataLabel1.ID = 0;
dataLabel1.LabelValueVisible = true;
dataLabel1.ShowDataLabelsRange = true;
foreach (AnimationEffect effect in shape.Slide.Timeline.MainSequence)
{
if (effect.ShapeTarget.Equals(shape as Spire.Presentation.Shape))
{
MotionPath path = ((AnimationMotion)effect.CommonBehaviorCollection[0]).Path;
foreach (MotionCmdPath motionCmdPath in path)
{
PointF[] points = motionCmdPath.Points;
MotionCommandPathType type = motionCmdPath.CommandType;
}
}
}
Image image = shape.SaveAsImage();
table[0, 0].BorderLeftDisplayColor;
table[0, 0].BorderTopDisplayColor;
table[0, 0].BorderRightDisplayColor;
table[0, 0].BorderBottomDisplayColor;
问题修复:
问题修复:
Spire.XLS 11.11.2已发布。该版本带来了一些新功能,如支持转换excel文件到pdf文件设置自定义纸张尺寸的问题,支持了给数据栏设置边框的功能以及给折线图和面积图设置垂直线的功能。此外还增强了Excel到HTML,Excel到PDF的转换功能,并且修复了MS Excel打开保存后的xlsx文件失败等已知问题。详情请阅读以下内容。
新功能:
workbook.Worksheets[0].PageSetup.SetCustomPaperSize(width, height);
chart.Series[0].HasDroplines = true;
XlsConditionalFormats cfs = sheet.ConditionalFormats[0];
IConditionalFormat cf = cfs[0];
Spire.Xls.DataBar dataBar1 = cf.DataBar;
dataBar1.BarBorder.Type = Spire.Xls.Core.Spreadsheet.ConditionalFormatting.DataBarBorderType.DataBarBorderSolid;
dataBar1.BarBorder.Color = Color.GreenYellow;
问题修复:
Spire.XLS for Java 4.11.3已发布。该版本增强了Excel到PDF的转换,并且修复了获取的日期格式单元格值错误等已知问题。详情请阅读以下内容。
问题修复:
在操作 Word 文档的过程中,有时会有一些重要信息需要保密,我们可以将它们隐藏以确保机密。本文展示如何使用 Spire.Doc for Java 在 Word 文档中隐藏特定段落。
首先,您需要在 Java 程序中添加 Spire.Doc.jar 文件作为依赖项。JAR 文件可以从 此链接 下载。 如果您使用 Maven,则可以将以下代码添加到项目的 pom.xml 文件中,从而轻松地在应用程序中导入 JAR 文件。
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.doc</artifactId>
<version>14.9.5</version>
</dependency>
</dependencies>
Spire.Doc for Java 支持使用 TextRange.getCharacterFormat().setHidden(boolean value) 方法来隐藏 Word 中的特定段落。以下是在 Word 中隐藏特定段落的详细步骤。
import com.spire.doc.*;
import com.spire.doc.documents.*;
import com.spire.doc.fields.*;
public class HideParagraph {
public static void main(String[] args) {
//创建document实例
Document document = new Document();
//加载示例Word文档
document.loadFromFile("C:\\Users\\Administrator\\Desktop\\sample.docx");
//获取第一节
Section sec = document.getSections().get(0);
//获取第一节中的第三段
Paragraph para;
para = sec.getParagraphs().get(2);
//循环遍历段落的子对象
for (Object docObj : para.getChildObjects()) {
DocumentObject obj = (DocumentObject)docObj;
//如果是子对象则将其转换为文本区域
if ((obj instanceof TextRange)) {
TextRange range = ((TextRange)(obj));
//隐藏文本区域
range.getCharacterFormat().setHidden(true);
}
}
//将文档保存为新文件
document.saveToFile("output/hideParagraph.docx", FileFormat.Docx_2013);
}
}
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请 该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。 获取有效期 30 天的临时许可证。
Spire.Presentation 6.11.4已发布。该版本支持获取表格单元格边框的显示颜色,还增强了PowerPoint到图片,PowerPoint到PDF的转换。同时还修复了获取的文本字体大小不正确等已知问题。详情请阅读以下内容。
新功能:
table[0, 0].BorderLeftDisplayColor;
table[0, 0].BorderTopDisplayColor;
table[0, 0].BorderRightDisplayColor;
table[0, 0].BorderBottomDisplayColor;
问题修复:
https://www.e-iceblue.cn/Downloads/Spire-Presentation-NET.html
OFD(Open Fixed-layout Document 的简称,即开放式版式文档),是我国自主可控的电子文件格式。OFD 版式文件常用于电子文档发布、数字化信息传播和存档。前面我们介绍了将 PDF 文件格式转换为 OFD。 从 V9.11.3 开始,Spire.XLS for .NET 支持将 Excel 文件保存为 OFD 格式。本文将展示如何将 Excel 文件保存为 OFD 电子文件格式。
首先,您需要将 Spire.XLS for .NET 包含的 DLL 文件作为引用添加到您的 .NET 项目中。您可以从 下载页面 获取 dll文件,也可以通过 NuGet 安装。
PM> Install-Package Spire.XLS使用 Spire.XLS for .NET 来转换 Excel(以 .xlsx 格式为例)为 OFD 格式,只需要简单三行代码即可:
using Spire.Xls;
namespace ExceltoOFD
{
class Program
{
static void Main(string[] args)
{
//实例化Workbook类的对象
Workbook workbook = new Workbook();
//加载示例文档
workbook.LoadFromFile("Sample.xlsx");
//保存为OFD格式
workbook.SaveToFile("toOFD.OFD", FileFormat.OFD);
}
}
}Imports Spire.Xls
Namespace ExceltoOFD
Class Program
Private Shared Sub Main(ByVal args() As String)
'新建Workbook实例
Dim workbook As Workbook = New Workbook
'加载示例文档
workbook.LoadFromFile("Sample.xlsx")
'保存为OFD格式
workbook.SaveToFile("toOFD.OFD", FileFormat.OFD)
End Sub
End Class
End Namespace
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请 该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。 获取有效期 30 天的临时许可证。
LaTeX 是一个强大的排版数学公式的工具,它支持多种数学符号来创建数学公式,如分数、积分、矩阵等。Spire.Presentation for .NET 提供了使用 LaTeX 代码创建并添加数学公式到 PowerPoint 幻灯片的方法,可供开发者创建多种类型的复杂公式,本文将对此做详细介绍。
首先,您需要将 Spire.Presentation for.NET 包含的 DLL 文件作为引用添加到您的 .NET 项目中。DLL 文件可以从 此链接 下载,也可以通过 NuGet 安装。
PM> Install-Package Spire.Presentation 下面是实现公式添加的详细步骤:
using Spire.Presentation;
using Spire.Presentation.Drawing;
using System.Drawing;
namespace AddFormula
{
class Program
{
static void Main(string[] args)
{
//定义LaTeX公式代码
string latexCode1 = @"x^{2} + \sqrt{x^{2}+1}=2";
string latexCode2 = @"F(x) &= \int^a_b \frac{1}{3}x^3";
string latexCode3 = @"\alpha + \beta \geq \gamma";
string latexCode4 = @"\overrightarrow{abc}";
string latexCode5 = @"\begin{bmatrix} 1 & 0 & \cdots & 0\\ 1 & 0 & \cdots & 0\\ \vdots & \vdots & \ddots & \vdots\\ 1 & 0 & 0 & 0 \end{bmatrix}";
string latexCode6 = @"\log_a{b}";
//创建Presentation类的实例
Presentation ppt = new Presentation();
//获取第一张幻灯片
ISlide slide = ppt.Slides[0];
//添加形状到幻灯片
IAutoShape shape = slide.Shapes.AppendShape(ShapeType.Rectangle, new RectangleF(30, 100, 200, 30));
shape.TextFrame.Paragraphs.Clear();
//使用LaTeX代码添加数学公式到形状
shape.TextFrame.Paragraphs.AddParagraphFromLatexMathCode(latexCode1);
//重复以上操作,添加形状,并添加公式到形状
shape = slide.Shapes.AppendShape(ShapeType.Rectangle, new RectangleF(240, 100, 200, 40));
shape.TextFrame.Paragraphs.Clear();
shape.TextFrame.Paragraphs.AddParagraphFromLatexMathCode(latexCode2);
shape = slide.Shapes.AppendShape(ShapeType.Rectangle, new RectangleF(30, 180, 200, 40));
shape.TextFrame.Paragraphs.Clear();
shape.TextFrame.Paragraphs.AddParagraphFromLatexMathCode(latexCode3);
shape = slide.Shapes.AppendShape(ShapeType.Rectangle, new RectangleF(240, 180, 200, 40));
shape.TextFrame.Paragraphs.Clear();
shape.TextFrame.Paragraphs.AddParagraphFromLatexMathCode(latexCode4);
shape = slide.Shapes.AppendShape(ShapeType.Rectangle, new RectangleF(30, 280, 200, 70));
shape.TextFrame.Paragraphs.Clear();
shape.TextFrame.Paragraphs.AddParagraphFromLatexMathCode(latexCode5);
shape = slide.Shapes.AppendShape(ShapeType.Rectangle, new RectangleF(240, 280, 200, 40));
shape.TextFrame.Paragraphs.Clear();
shape.TextFrame.Paragraphs.AddParagraphFromLatexMathCode(latexCode6);
//设置形状边框和填充类型
for (int i = 0; i < slide.Shapes.Count; i++)
{
slide.Shapes[i].Fill.FillType = FillFormatType.None;
slide.Shapes[i].Line.FillType = FillFormatType.None;
}
//保存文档
ppt.SaveToFile("MathEquations.pptx", FileFormat.Pptx2013);
}
}
}Imports Spire.Presentation
Imports Spire.Presentation.Drawing
Imports System.Drawing
Namespace AddFormula
Class Program
Private Shared Sub Main(args As String())
'定义LaTeX公式代码
Dim latexCode1 As String = "x^{2} + \sqrt{x^{2}+1}=2"
Dim latexCode2 As String = "F(x) &= \int^a_b \frac{1}{3}x^3"
Dim latexCode3 As String = "\alpha + \beta \geq \gamma"
Dim latexCode4 As String = "\overrightarrow{abc}"
Dim latexCode5 As String = "\begin{bmatrix} 1 & 0 & \cdots & 0\\ 1 & 0 & \cdots & 0\\ \vdots & \vdots & \ddots & \vdots\\ 1 & 0 & 0 & 0 \end{bmatrix}"
Dim latexCode6 As String = "\log_a{b}"
'创建Presentation类的实例
Dim ppt As New Presentation()
'获取第一张幻灯片
Dim slide As ISlide = ppt.Slides(0)
'添加形状到幻灯片
Dim shape As IAutoShape = slide.Shapes.AppendShape(ShapeType.Rectangle, New RectangleF(30, 100, 200, 30))
shape.TextFrame.Paragraphs.Clear()
'使用LaTeX代码添加数学公式到形状
shape.TextFrame.Paragraphs.AddParagraphFromLatexMathCode(latexCode1)
'重复以上操作,添加形状,并添加公式到形状
shape = slide.Shapes.AppendShape(ShapeType.Rectangle, New RectangleF(240, 100, 200, 40))
shape.TextFrame.Paragraphs.Clear()
shape.TextFrame.Paragraphs.AddParagraphFromLatexMathCode(latexCode2)
shape = slide.Shapes.AppendShape(ShapeType.Rectangle, New RectangleF(30, 180, 200, 40))
shape.TextFrame.Paragraphs.Clear()
shape.TextFrame.Paragraphs.AddParagraphFromLatexMathCode(latexCode3)
shape = slide.Shapes.AppendShape(ShapeType.Rectangle, New RectangleF(240, 180, 200, 40))
shape.TextFrame.Paragraphs.Clear()
shape.TextFrame.Paragraphs.AddParagraphFromLatexMathCode(latexCode4)
shape = slide.Shapes.AppendShape(ShapeType.Rectangle, New RectangleF(30, 280, 200, 70))
shape.TextFrame.Paragraphs.Clear()
shape.TextFrame.Paragraphs.AddParagraphFromLatexMathCode(latexCode5)
shape = slide.Shapes.AppendShape(ShapeType.Rectangle, New RectangleF(240, 280, 200, 40))
shape.TextFrame.Paragraphs.Clear()
shape.TextFrame.Paragraphs.AddParagraphFromLatexMathCode(latexCode6)
'设置形状边框和填充类型
For i As Integer = 0 To slide.Shapes.Count - 1
slide.Shapes(i).Fill.FillType = FillFormatType.None
slide.Shapes(i).Line.FillType = FillFormatType.None
Next
'保存文档
ppt.SaveToFile("MathEquations.pptx", FileFormat.Pptx2013)
End Sub
End Class
End Namespace公式添加效果:

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请 该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。 获取有效期 30 天的临时许可证。