Spire.Presentation for Java 支持将 PowerPoint 幻灯片文档转成其他多种格式,如 PDF、图片、HTML、SVG、XPS 等,从 4.12.3 版本开始,可支持转换为 OFD 格式。下面,将通过 Java 程序代码展示如何实现转换。
首先,您需要在 Java 程序中添加 Spire.Presentation.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.presentation</artifactId>
<version>10.11.4</version>
</dependency>
</dependencies>
实现转换的步骤如下:
import com.spire.presentation.*;
public class PPTtoOFD {
public static void main(String[] args) throws Exception {
//实例化Presentation类的对象,并加载PPT幻灯片文档
Presentation ppt = new Presentation();
ppt.loadFromFile("inputfile.pptx");
//保存为OFD格式
ppt.saveToFile("toOFD.ofd",FileFormat.OFD);
ppt.dispose();
}
}执行程序后,生成的 OFD 文档如图效果:

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请 该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。 获取有效期 30 天的临时许可证。
假设有两个 PowerPoint 文档,您想将一个文档中某张幻灯片复制到另一个文档的指定位置,可以选择手动复制粘贴,但使用 Java 代码进行自动操作更快更有效。本文将向您展示如何使用 Spire.Presentation for Java 在两个不同的 PowerPoint 文档之间以编程方式复制幻灯片。
首先,您需要在 Java 程序中添加 Spire.Presentation.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.presentation</artifactId>
<version>10.11.4</version>
</dependency>
</dependencies>
以下是将一个 PowerPoint 文档中的幻灯片复制到另一个文档的指定位置或末尾的详细步骤。
import com.spire.presentation.FileFormat;
import com.spire.presentation.Presentation;
public class CopySlidesBetweenPPT {
public static void main(String[] args) throws Exception {
//创建一个Presentation对象,加载示例文档1
Presentation pptOne= new Presentation();
pptOne.loadFromFile("C:\\Users\\Administrator\\Desktop\\sample1.pptx");
//创建另一个Presentation对象,加载示例文档2
Presentation pptTwo = new Presentation();
pptTwo.loadFromFile("C:\\Users\\Administrator\\Desktop\\sample2.pptx");
//将文档1的特定幻灯片插入文档2的指定位置
pptTwo.getSlides().insert(0,pptOne.getSlides().get(0));
//将文档1的特定幻灯片添加到文档2的末尾
pptTwo.getSlides().append(pptOne.getSlides().get(3));
//将文档2保存为另一个文件
pptTwo.saveToFile("output/CopySlidesBetweenPPT.pptx", FileFormat.PPTX_2013);
}
}
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请 该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。 获取有效期 30 天的临时许可证。
Spire.PDF for Android via Java 3.12.2已发布。该版本修复了应用License加密PDF后,无法打开加密的PDF文档以及获取的部分元数据不正确的问题。详情请阅读以下内容。
问题修复:
https://www.e-iceblue.cn/Downloads/pdf-for-android-via-java.html
Spire.Doc 9.12.12已发布。该版本修复了邮件合并后数字格式不正确及加载Word文档抛异常等已知问题。详情请阅读以下内容。
问题修复:
Spire.Presentation for Java 4.12.3已发布。该版本支持将PPT文件转换为OFD,并且支持获取PPT文件中图片的路径。此外还修复了将幻灯片保存为图像后内容丢失等已知问题。详情请阅读以下内容:
新功能:
Presentation ppt = new Presentation();
ppt.loadFromFile(inputFile);
//将PPT文档保存为OFD格式
ppt.saveToFile(outputFile, FileFormat.OFD);
ppt.dispose();
ImageCollection images = ppt.getImages();
for (int i = 0; i < images.size(); i++)
{
IImageData imageData = images.get(i);
String path = imageData.getRelativePath();
}
问题修复:
https://www.e-iceblue.cn/Downloads/Spire-Presentation-JAVA.html
Spire.Doc for Java 4.12.13已发布。该版本支持为段落设置"允许拉丁文本在单词中间换行",并且增强了Word到PDF,XML到PDF的转换功能。此外还修复了获取的文本不正确等已知问题。详情请阅读以下内容:
新功能:
Paragraph pa = document.getSections().get(0).getParagraphs().get(0);
pa.getFormat().setWordWrap(false);
pa.getFormat().getWordWrap();
问题修复:
OFD 是一种开放版式文档(Open Fixed-layout Document)的英文缩写,是我国国家版式文档格式标准。Spire.XLS for Java 从 4.12.2 版本开始支持将 Excel 转为 OFD,本文将通过 Java 后端程序代码展示如何实现转换,方法及步骤如下。
首先,您需要在 Java 程序中添加 Spire.Xls.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.xls</artifactId>
<version>15.11.3</version>
</dependency>
</dependencies>
格式转换仅需三行代码即可实现,即
import com.spire.xls.*;
public class ExcelToOFD {
public static void main(String[] args) {
//加载Excel
Workbook workbook = new Workbook();
workbook.loadFromFile("input.xlsx");
//保存为OFD
workbook.saveToFile("output.ofd", FileFormat.OFD);
}
}执行程序后生成OFD文档,如图效果:

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请 该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。 获取有效期 30 天的临时许可证。
Spire.Presentation 6.12.4已发布。该版本支持添加设置以转换高质量图像,支持获取幻灯片背景的类型和颜色,并且包含.NET6.0。另外该版本还增强了PPT到PDF,PPT到图片的转换功能,修复了获取的表格单元格文本显示颜色不正确等已知问题。详情请阅读以下内容。
新功能:
ISlide sld = ppt.Slides[0] as ISlide;
FillFormat bg = sld.DisplaySlideBackground.GetBackgroundFillFormat(sld as ActiveSlide);
switch (bg.FillType)
{
case FillFormatType.Solid:
sb.AppendLine("type:" + bg.FillType + "\tcolor:" + bg.SolidColor.Color);
break;
case FillFormatType.Gradient:
sb.AppendLine("type:" + bg.FillType);
foreach (GradientStop stop in bg.Gradient.GradientStops)
{
sb.AppendLine("position:" + stop.Position + "\tcolor:" + stop.Color.Color);
}
break;
default:
sb.AppendLine("type:" + bg.FillType);
break;
}
Presentation.HighQualityImage = true;
问题修复:
https://www.e-iceblue.cn/Downloads/Spire-Presentation-NET.html
图片水印通常是出现在数字文档背景上的图标或记号,表明内容的版权所有者。添加图片水印可以防止您的数据被重复使用或修改。本文演示了如何使用 Spire.PDF for .NET 在 C# 和 VB.NET 中为 PDF 添加图片水印。
首先,您需要添加 Spire.PDF for .NET 包中包含的 DLL 文件作为 .NET 项目中的引用。DLL 文件可以从此链接下载或通过 NuGet 安装。
PM> Install-Package Spire.PDF以下是为 PDF 文档添加图片水印的主要步骤。
using Spire.Pdf;
using System.Drawing;
namespace AddImageWatermark
{
class Program
{
static void Main(string[] args)
{
//创建一个PdfDocument对象
PdfDocument document = new PdfDocument();
//加载示例PDF文档
document.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.pdf");
//加载图片
Image image = Image.FromFile(@"C:\Users\Administrator\Desktop\logo.png");
//获取图片宽度和高度
int imgWidth = image.Width;
int imgHeight = image.Height;
//遍历页面
for (int i = 0; i < document.Pages.Count; i++)
{
//获取页面宽度和高度
float pageWidth = document.Pages[i].ActualSize.Width;
float pageHeight = document.Pages[i].ActualSize.Height;
//设置背景不透明度
document.Pages[i].BackgroudOpacity = 0.3f;
//设置当前页面的背景图片
document.Pages[i].BackgroundImage = image;
//将背景图片置于页面中央
Rectangle rect = new Rectangle((int)(pageWidth - imgWidth) / 2, (int)(pageHeight - imgHeight) / 2, imgWidth, imgHeight);
document.Pages[i].BackgroundRegion = rect;
}
//保存文档
document.SaveToFile("AddImageWatermark.pdf");
document.Close();
}
}
}Imports Spire.Pdf
Imports System.Drawing
Namespace AddImageWatermark
Class Program
Shared Sub Main(ByVal args() As String)
'创建一个PdfDocument对象
Dim document As PdfDocument = New PdfDocument()
'加载示例PDF文档
document.LoadFromFile(""C:\Users\Administrator\Desktop\sample.pdf"")
'加载图片
Dim image As Image = Image.FromFile(""C:\Users\Administrator\Desktop\logo.png"")
'获取图片宽度和高度
Dim imgWidth As Integer = image.Width
Dim imgHeight As Integer = image.Height
'遍历页面
Dim i As Integer
For i = 0 To document.Pages.Count - 1 Step i + 1
'获取页面宽度和高度
Dim pageWidth As Single = document.Pages(i).ActualSize.Width
Dim pageHeight As Single = document.Pages(i).ActualSize.Height
'设置背景不透明度
document.Pages(i).BackgroudOpacity = 0.3F
'设置当前页面的背景图片
document.Pages(i).BackgroundImage = image
'将背景图片置于页面中央
Dim rect As Rectangle = New Rectangle(CInt((pageWidth - imgWidth) / 2), CInt((pageHeight - imgHeight) / 2), imgWidth, imgHeight)
document.Pages(i).BackgroundRegion = rect
Next
'保存文档
document.SaveToFile(""AddImageWatermark.pdf"")
document.Close()
End Sub
End Class
End Namespace
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请 该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。 获取有效期 30 天的临时许可证。
Spire.Office for Java 4.12.2已发布。该版本带来了一些新功能,比如:Spire.Doc for Java支持转换Word到OFD格式,支持设置修订作者,支持在进行比较时设置“忽略格式”;Spire.PDF for Java支持转换PDF为线性PDF,并且支持转换PDF到Excel单元格文本不换行的功能;Spire.Presentation for Java支持添加数学公式和检测shape是否包含数学公式;Spire.XLS for Java支持将excel转换为OFD,并且支持“分类汇总”功能。此外还修复了其它一些已知问题,详情请阅读以下内容。
获取Spire.Office for Java 4.12.2请点击:https://www.e-iceblue.cn/Downloads/Spire-Office-JAVA.html
新功能:
Document document = new Document();
document.loadFromFile("https://cdn.e-iceblue.cn/input.docx");
document.saveToFile("output.ofd", FileFormat.OFD);
Document doc = new Document();
doc.loadFromFile(inputFile);
doc.setTrackChanges(true);
TextRange range = doc.getLastParagraph().appendText("123413");
range.getInsertRevision().setAuthor("user");
doc.saveToFile(outputFile);
doc.dispose();
Document.compare(Document document, String author, CompareOptions options);
Document.compare(Document document, String author, Date date, CompareOptions options);
CompareOptions.setIgnoreFormatting(true);
问题修复:
新功能:
PdfToLinearizedPdfConverter converter = new PdfToLinearizedPdfConverter(inputPath);
converter.toLinearizedPdf(OutputPath);
//第四个参数控制着是否让文本换行
doc.getConvertOptions().setPdfToXlsxOptions(new XlsxLineLayoutOptions(false, false, false, false));
问题修复:
新功能:
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();
问题修复:
新功能:
Workbook workbook = new Workbook();
workbook.loadFromFile("input.xlsx");
workbook.saveToFile("output.ofd", FileFormat.OFD);
Workbook workbook = new Workbook();
workbook.loadFromFile(inputFile);
Worksheet sheet = workbook.getWorksheets().get(0);
//选择数据范围
CellRange range = sheet.getRange().get("A1:B18");
//选择的分类汇总
sheet.subtotal(range, 0, new int[] { 1 }, SubtotalTypes.Sum, true, false, true);
//保存文档
workbook.saveToFile(outputFile, ExcelVersion.Version2010);
workbook.dispose();
问题修复: