Spire.Office 10.1.0 已发布。在该版本中,Spire.Doc 支持判断和修改图片与形状中的超链接;Spire.XLS 支持 CSCH、RANDARRAY、COTH、SEQUENCE、EXPAND 等函数;Spire.PDF 增强了 XPS 到 PDF 和 PDF 到 PNG、HTML、SVG、OFD 、XPS 和 Excel 的转换;Spire.Presentation 支持获取嵌入 OLE 对象的文件名。
此外,该版本还成功修复了大量已知问题。详情请阅读以下内容。
版本信息如下:
https://www.e-iceblue.cn/Downloads/Spire-Office-NET.html
新功能:
foreach (Section section in doc.Sections)
{
foreach (Paragraph paragraph in section.Paragraphs)
{
foreach (DocumentObject documentObject in paragraph.ChildObjects)
{
if (documentObject is DocPicture)
{
DocPicture pic=documentObject as DocPicture;
if (pic.HasHyperlink)
{
pic.HRef = "";
}
}
if (documentObject is ShapeObject)
{
ShapeObject shape = documentObject as ShapeObject;
if (shape.HasHyperlink)
{
shape.HRef = "";
}
}
}
}
}问题修复:
新功能:
PrstGeomShapeCollection prstGeomShapeType = worksheet.PrstGeomShapes;
for (int i = 0; i < prstGeomShapeType.Count; i++)
{
XlsPrstGeomShape shape = (XlsPrstGeomShape)prstGeomShapeType[i];
shape.HyLink.Address = "https://www.baidu.com/";
}问题修复:
问题修复:
新功能:
IOleObject oleObject = shape as IOleObject;
oleObject.EmbeddedFileName问题修复:
Spire.Office for Java 10.1.0 已发布。在该版本中,Spire.Doc for Java 支持跟踪文档元素及文本内容的添加、删除和更改;Spire.PDF for Java 增强了使用 ChromeHtmlConverter 方案将 HTML 转换为 PDF 的功能;Spire.Barcode for Java 支持获取条码信息;Spire.OCR for Java 支持 macOS 10.15 及更高版本。此外,大量已知问题也在该版本中成功修复。详情请阅读以下内容。
获取 Spire.Office for Java 10.1.0,请点击:https://www.e-iceblue.cn/Downloads/Spire-Office-JAVA.html
新功能:
public void startTrackRevisions(String author);
public void startTrackRevisions(String author, Date date);
public void stopTrackRevisions();paragraph.getFormat().getNoSpaceBetweenParagraphsOfSameStyle();
paragraph.getFormat().setNoSpaceBetweenParagraphsOfSameStyle(true);bookmark.setName(String bookmarkName);问题修复:
问题修复:
问题修复:
问题修复:
新功能:
BarcodeInfo[] infos = BarcodeScanner.scanInfo("barcode.png");
Point[] loaction = infos[0].getVertexes();
BarCodeReadType barCodeReadType = infos[0].getReadType();
String dataString = infos[0].getDataString();String[] s = BarcodeScanner.scan("AZTEC.png",BarCodeType.Aztec);Public static String[] scan(BufferedImage bitmap, java.awt.Rectangle rect, BarCodeType barcodeType, boolean IncludeCheckSum)
Public static String[] scan(String fileName, BarCodeType barcodeType, boolean IncludeCheckSum)
Public static String scanOne(String fileName, BarCodeType barcodeType, boolean IncludeCheckSum)
Public static String scanOne(InputStream stream, BarCodeType barcodeType, boolean IncludeCheckSum)com.spire.barcode.publics.drawing.FontStyle
com.spire.barcode.publics.drawing.GraphicsUnit
com.spire.barcode.publics.drawing.StringAlignmentpublic java.awt.Font getTopTextFont()
public java.awt.Font getBottomTextFont()
public java.awt.Font getTextFont()public void setBottomTextFont(java.awt.Font value)->public void setBottomTextFont(String familyName, float fontSize)
public void setTopTextFont(java.awt.Font value)->public void setTopTextFont(String familyName, float fontSize)
public boolean showBottomText->public boolean isShowBottomText()
public void setShowBottomText(boolean value) -> public void isShowBottomText(boolean value)
public com.spire.barcode.GraphicsUnit getUnit() -> public com.spire.barcode.publics.drawing.GraphicsUnit getUnit()
public void setUnit(com.spire.barcode.GraphicsUnit value) -> public void setUnit(com.spire.barcode.publics.drawing.GraphicsUnit value)
public void setTextFont(java.awt.Font value) -> public void setTextFont(String familyName, float fontSize)
public float getLeftMargin() ->The default value adjusted from 5 to 4. public float getTopTextMargin()
public void setTopTextMargin(float value)
public int getAztecErrorCorrection()
public void setAztecErrorCorrection(int value)
public int getAztecLayers()
public void setAztecLayers(int value)
public DataMatrixSymbolShape getDataMatrixSymbolShape()
public void setDataMatrixSymbolShape(DataMatrixSymbolShape value)
public ITF14BorderType getITF14BearerBars()
public void setITF14BearerBars(ITF14BorderType value)
public void setTextFont(String familyName, float fontSize, com.spire.barcode.publics.drawing.FontStyle style)
public boolean isShowStartCharAndStopChar()
public void isShowStartCharAndStopChar(boolean value)public java.awt.Font getTextFont()
public java.awt.Font getTopTextFont()
public java.awt.Font getBottomTextFont()public void setTextFont(java.awt.Font value) -> public void setTextFont(String familyName, float sizePoints)
public com.spire.barcode.GraphicsUnit getUnit() -> public com.spire.barcode.publics.drawing.GraphicsUnit getUnit()
public void setUnit(com.spire.barcode.GraphicsUnit value) -> public void setUnit(com.spire.barcode.publics.drawing.GraphicsUnit value)
public com.spire.barcode.StringAlignment getTextAlignment() -> public com.spire.barcode.publics.drawing.StringAlignment getTextAlignment()
public void setTextAlignment(com.spire.barcode.StringAlignment value) -> public void setTextAlignment(com.spire.barcode.publics.drawing.StringAlignment value)
public com.spire.barcode.StringAlignment getTopTextAligment() -> public com.spire.barcode.publics.drawing.StringAlignment getTopTextAligment()
public void setTopTextAligment(com.spire.barcode.StringAlignment value) -> public void setTopTextAligment(com.spire.barcode.publics.drawing.StringAlignment value)
public void setBottomTextFont(java.awt.Font value) -> public void setBottomTextFont(String familyName, float fontSize)
public void setTopTextFont(java.awt.Font value) -> public void setTopTextFont(String familyName, float fontSize)
public boolean showBottomText->public boolean isShowBottomText()
public void setShowBottomText(boolean value) -> public void isShowBottomText(boolean value)
public com.spire.barcode.StringAlignment getBottomTextAlignment() -> public com.spire.barcode.publics.drawing.StringAlignment getBottomTextAlignment()
public void setBottomTextAlignment(com.spire.barcode.StringAlignment value) -> public void setBottomTextAlignment(com.spire.barcode.publics.drawing.StringAlignment value)
public float getLeftMargin() ->The default value adjusted from 5 to 4. public float getTopTextMargin()
public void setTopTextMargin(float value)
public void setTextFont(String familyName, float sizePoints, com.spire.barcode.publics.drawing.FontStyle style)
public void setTopTextFont(String familyName, float fontSize, com.spire.barcode.publics.drawing.FontStyle style)
public void setITF14BearerBars(ITF14BorderType value)
public boolean isShowStartCharAndStopChar()
public void isShowStartCharAndStopChar(boolean value)
public int getAztecLayers()
public void setAztecLayers(int value)
public int getAztecErrorCorrection()
public void setAztecErrorCorrection(int value)
public DataMatrixSymbolShape getDataMatrixSymbolShape()
public void setDataMatrixSymbolShape(DataMatrixSymbolShape value)
public void setBottomTextFont(String familyName, float fontSize, com.spire.barcode.publics.drawing.FontStyle style)新功能:
问题修复:
Spire.PDF for Java 11.1.2 现已正式发布。该版本增强了使用 ChromeHtmlConverter 方案将 HTML 转换为 PDF 的功能,并且还修复了一些在合并和打印 PDF 文件时遇到的问题。详情请查阅以下内容。
问题修复:
Spire.XLS for Java 15.1.3 现已正式发布。最新版本增强了 Excel 到图片和 PDF 的转换。此外,本次更新还成功修复了一些已知问题,比如使用 workbook.calculateAllValue() 计算值时程序抛出异常的问题。更多详情请查阅下面的内容。
问题修复:

在日常的数据分析、报表生成或系统导出中,我们经常会接触到 CSV 文件。这种以逗号分隔的纯文本格式简单、轻量,但缺乏可视化效果。而 PDF 文档 以其稳定的版式和跨平台兼容性,被广泛用于正式文件、报告、合同或存档等场景。
本文将介绍如何使用 Spire.XLS for .NET 在 C# 中实现 CSV 到 PDF 的高质量转换 。通过几个简单的步骤,你就能轻松地将原始 CSV 数据转成美观、可打印、可分享的 PDF 报告,并进一步调整格式与页面布局,让导出的文件更符合展示需求。
CSV(Comma-Separated Values)文件主要用于数据交换和轻量级存储。它在导出数据库、系统日志或财务明细时非常常见。然而,CSV 文件的缺点也十分明显:
相比之下,PDF 格式具有不可编辑、布局稳定、通用性强等优势,非常适合用来:
因此,将 CSV 转换为 PDF 不仅是格式变换,更是从数据到信息展示的一次升级。
Spire.XLS for .NET 是一款专业 Excel 操作组件,支持在 .NET 应用中对 Excel 文件进行创建、编辑、读取、打印和格式转换。它完全独立,不依赖 Microsoft Excel 环境,即可处理包括 XLS、XLSX、CSV、ODS 等多种文件格式。
借助 Spire.XLS,开发者不仅可以实现 CSV 到 PDF 的直接转换,还能灵活调整表格布局、字体样式、分页方向等,使导出的 PDF 更符合展示或打印要求。
安装方法非常简单:
在 Visual Studio 的 NuGet 控制台中执行命令:
Install-Package Spire.XLS
安装完成后,即可在项目中引用 Spire.Xls 命名空间并开始编码。
下面的示例展示了最基础的转换流程:加载一个 CSV 文件,并将其导出为 PDF。
using Spire.Xls;
namespace CsvToPdfBasicExample
{
class Program
{
static void Main(string[] args)
{
// 创建 Workbook 对象
Workbook workbook = new Workbook();
// 从 CSV 文件加载数据
workbook.LoadFromFile(@"C:\Users\Administrator\Desktop\input.csv", ",", 1, 1);
// 获取第一个工作表
Worksheet sheet = workbook.Worksheets[0];
// 将工作表保存为PDF
sheet.SaveToPdf("CsvToPdf.pdf");
// 释放资源
workbook.Dispose();
}
}
}
代码解析
这种方法快速高效,适合处理结构较为简单的 CSV 文件。但如果某列内容过长,可能会被截断;当列数较多时,表格也可能被分割到第二页,影响整体阅读效果。
效果图:

你可能喜欢:使用 C# 实现 Excel 与 CSV 相互转换
在实际项目中,我们通常需要让 PDF 更具可读性。Spire.XLS 提供了多种格式控制选项,帮助开发者优化导出的文档外观。以下列举常见的五种改进方法。
自动适配列宽能确保数据不会被截断,同时设定合适的行高可以让文本显示更均匀。
// 自动调整所有列宽
for (int i = 1; i <= sheet.Columns.Length; i++)
{
sheet.AutoFitColumn(i);
}
// 设置默认行高
sheet.DefaultRowHeight = 18;
若要将报表打印为标准文件,可以将页面设置为 A4 并调整页边距。
// 设置纸张大小为 A4
sheet.PageSetup.PaperSize = PaperSizeType.PaperA4;
// 设置页边距(英寸)
sheet.PageSetup.LeftMargin = 0.5;
sheet.PageSetup.RightMargin = 0.5;
sheet.PageSetup.TopMargin = 0.5;
sheet.PageSetup.BottomMargin = 0.5;
对于列数较多的表格,可启用 “自适应页面宽度” 功能,使内容在单页内完整显示。
// 保留纸张大小
workbook.ConverterSetting.SheetFitToPageRetainPaperSize = true;
// 适应页面宽度
workbook.ConverterSetting.SheetFitToWidth = true;
显示网格线能让表格更清晰,特别是当数据较多时,可以显著提升可读性。
// 显示网格线 (转换或打印均生效)
sheet.PageSetup.IsPrintGridlines = true;
通过统一的对齐方式,可以让数据在视觉上更加整齐、美观。
// Set horizontal alignment
sheet.AllocatedRange.Style.HorizontalAlignment = HorizontalAlignType.Left;
// Set vertical alignment
sheet.AllocatedRange.Style.VerticalAlignment = VerticalAlignType.Center;
经过这些简单设置,生成的 PDF 报告将更接近 Excel 的布局,既整洁又专业。
效果图:

你可能喜欢:使用 C# 将 Excel 转换为 PDF
常见问题速查表
| 问题现象 | 主要原因 | 解决方案 |
|---|---|---|
| PDF出现乱码或中文显示异常 | CSV文件编码格式不匹配 | 确保CSV文件使用UTF-8编码。 |
| 列数过多,内容被分割到多页 | 默认页面宽度不足 | 启用SheetFitToWidth = true使内容自适应页面宽度,或尝试将页面方向设置为横向。 |
| 长文本内容被截断 | 列宽固定,不足以显示全部内容 | 使用AutoFitColumn方法自动调整列宽,或手动设置合适的列宽。 |
| 转换大量数据时性能较慢 | 单次处理数据量过大 | 对于大型CSV文件,可考虑分批次处理,并及时调用Dispose()释放资源。 |
实用技巧汇总表
| 技巧分类 | 技巧说明 | 目的与好处 |
|---|---|---|
| 批量处理 | 遍历目录下的所有CSV文件,并为每个输出文件生成唯一名称(如附加时间戳)。 | 提高效率,实现自动化批量转换。 |
| 样式优化 | 为单元格设置字体、颜色、边框,特别是为表头行设置特殊样式(如加粗、背景色)。 | 提升文档美观度和专业性与可读性。 |
| 页面布局 | 根据内容量选择纸张大小(如A4, A3),并设置合理的页边距。 | 确保打印效果,使页面布局更合理。 |
| 健壮性提升 | 在代码中添加文件存在性检查,并使用try-catch块捕获和处理异常。 | 增强程序稳定性,防止因意外错误导致程序崩溃。 |
| 高级功能 | 添加页眉/页脚(如标题、页码),或设置打印区域以控制输出范围。 | 满足更复杂的文档需求,生成符合正式规范的报告。 |
通过本文的介绍,我们可以看到,使用 C# 和 Spire.XLS for .NET 库将 CSV 转换为 PDF 是一个直接且高效的过程。这不仅是一次简单的格式转换,更是将原始、杂乱的数据提升为结构清晰、易于分发和打印的正式文档的关键步骤。
核心价值在于 :您无需依赖 Microsoft Excel 环境,仅通过几行代码即可自动化完成这一转换任务,极大地提升了在报表生成、数据归档和文件共享等场景下的工作效率。
从方法上看 ,我们了解到:
总而言之,掌握这项技能为处理数据展示需求提供了一个强大而灵活的解决方案。无论是简单的数据导出还是复杂的报表生成,您都可以通过文中介绍的方法,轻松打造出既美观又专业的 PDF 文档。
不需要。它是完全独立的 .NET 组件,可在任意环境运行。
可通过 Directory.GetFiles() 遍历文件夹中的所有 CSV,再依次调用转换方法批量输出 PDF。
可以。Spire.XLS 导出的 PDF 保留文本信息,可被搜索、复制与选中。
支持。可以通过 CellRange.Style 属性设置单元格样式,或者通过 创建自定义样式并应用到指定单元格区域。
如果您需要去除生成文档中的评估提示或解除功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
在 Word 文档中,图片和形状可以添加超链接,用于跳转到外部网站、文件,或文档中的特定位置。然而,随着外部资源的变动或文档结构的调整,超链接指向的目标地址或文件路径可能会发生变化。这种情况下,如果不及时更新超链接,可能会导致链接失效,进而影响文档的正常使用和用户体验。这篇文章将介绍如何使用 Spire.Doc for .NET 在 C# 中以编程方式修改 Word 文档中图片和形状的超链接。
首先,您需要将 Spire.Doc for.NET 包含的 DLL 文件作为引用添加到您的 .NET 项目中。DLL 文件可以从此链接下载,也可以通过 NuGet 安装。
PM> Install-Package Spire.Doc
Spire.Doc for .NET 提供了 DocPicture.HasHyperlink 属性,用于检测图片是否包含超链接。一旦检测到超链接,可以通过 DocPicture.HRef 属性来更新或修改超链接。详细步骤如下:
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
namespace UpdateHyperlinkForImage
{
internal class Program
{
static void Main(string[] args)
{
// 创建 Document 类的实例
Document doc = new Document();
// 加载 Word 文档
doc.LoadFromFile("示例1.docx");
// 遍历文档中的所有节
foreach (Section section in doc.Sections)
{
// 遍历节中的所有段落
foreach (Paragraph paragraph in section.Paragraphs)
{
// 遍历段落中的所有子对象
foreach (DocumentObject documentObject in paragraph.ChildObjects)
{
// 检查子对象是否为 DocPicture 类型
if (documentObject is DocPicture)
{
DocPicture pic = documentObject as DocPicture;
// 检查该图片是否包含超链接
if (pic.HasHyperlink)
{
// 更新图片超链接(若需删除超链接,将值设置为空)
pic.HRef = "https://www.e-iceblue.cn/";
}
}
}
}
}
// 保存修改后的文档到指定路径
doc.SaveToFile("修改图片超链接.docx", FileFormat.Docx2016);
// 关闭文档,释放资源
doc.Close();
}
}
}

与修改图片超链接类似,你可以使用 ShapeObject.HasHyperlink 属性检测形状是否包含超链接,并通过 ShapeObject.HRef 属性更新或修改超链接。详细步骤如下:
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
namespace UpdateHyperlinkForShape
{
internal class Program
{
static void Main(string[] args)
{
// 创建 Document 类的实例
Document doc = new Document();
// 加载 Word 文档
doc.LoadFromFile("示例2.docx");
// 遍历文档中的所有节
foreach (Section section in doc.Sections)
{
// 遍历节中的所有段落
foreach (Paragraph paragraph in section.Paragraphs)
{
// 遍历段落中的所有子对象
foreach (DocumentObject documentObject in paragraph.ChildObjects)
{
// 检查子对象是否为 ShapeObject 类型
if (documentObject is ShapeObject)
{
ShapeObject shape = documentObject as ShapeObject;
// 检查该形状是否包含超链接
if (shape.HasHyperlink)
{
// 更新形状超链接(若需删除超链接,将值设置为空)
shape.HRef = "https://www.e-iceblue.cn/";
}
}
}
}
}
// 保存修改后的文档到指定路径
doc.SaveToFile("修改形状超链接.docx", FileFormat.Docx2016);
// 关闭文档,释放资源
doc.Close();
}
}
}

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
在团队协作中,批注是非常有效的沟通工具,它能够清晰地标示出需要关注的部分,从而避免误解和遗漏。当演示文稿包含多个文本时,直接在特定文本上添加批注,可以帮助审阅者准确指出需要修改或优化的内容。例如,当团队成员发现幻灯片中的某些信息不清晰或有待修改时,他们可以在相关文本上直接添加批注,而无需更改幻灯片的原始内容。这种做法不仅提高了反馈的准确性,还能节省时间,让每个人能够更迅速地理解需要改动的地方,并及时进行处理。在这篇文章中,我们将探讨如何使用 Spire.Presentation for Java 和 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>11.9.10</version>
</dependency>
</dependencies>
Spire.Presentation for Java 提供了 ParagraphEx.addStrComment(ICommentAuthor commentAuthor, ISlide slide, IAutoShape shape, String ex, String commentText) 方法,支持给特定形状的段落中的匹配文本添加批注。详细步骤如下:
import com.spire.presentation.*;
public class AddCommentToTextInShape {
public static void main(String[] args) throws Exception {
// 加载PowerPoint演示文稿
Presentation ppt = new Presentation();
ppt.loadFromFile("测试.pptx");
// 获取第一个幻灯片和幻灯片上第一个形状
ISlide slide = ppt.getSlides().get(0);
IShape shape = slide.getShapes().get(0);
// 获取形状中的文本段落
ParagraphEx paragraphEx = ((IAutoShape) shape).getTextFrame().getTextRange().getParagraph();
// 定义目标文本和作者
String targetText = "翩翩起舞";
ICommentAuthor author = ppt.getCommentAuthors().addAuthor("作者", "1");
// 为形状中匹配的文本添加批注
paragraphEx.addStrComment(author, slide, (IAutoShape) shape, targetText, "形容雪花在空中轻盈、优美地飘落的状态。");
// 保存修改后的结果文档
ppt.saveToFile("为特定形状中的匹配文本添加批注.pptx", FileFormat.PPTX_2013);
}
}

如果需要为整个 PowerPoint 演示文稿中匹配的添加批注,可以遍历所有幻灯片和形状,并使用 ParagraphEx.addStrComment() 方法为每个形状中匹配的文本添加批注。具体步骤如下:
import com.spire.presentation.*;
public class AddCommentToTextInPPT {
public static void main(String[] args) throws Exception {
// 加载PowerPoint演示文稿
Presentation ppt = new Presentation();
ppt.loadFromFile("测试.pptx");
// 定义目标文本
String targetText = "翩翩起舞";
// 遍历所有幻灯片和形状
for (int i = 0; i < ppt.getSlides().getCount(); i++) {
ISlide slide = ppt.getSlides().get(i);
for (int j = 0; j < slide.getShapes().getCount(); j++) {
IShape shape = slide.getShapes().get(j);
// 检查形状是否包含文本
if (shape instanceof IAutoShape && ((IAutoShape) shape).getTextFrame() != null) {
// 获取形状中的文本段落
ParagraphEx paragraphEx = ((IAutoShape) shape).getTextFrame().getTextRange().getParagraph();
// 为形状中匹配的文本添加批注
ICommentAuthor author = ppt.getCommentAuthors().addAuthor("作者", String.valueOf(j + 1));
paragraphEx.addStrComment(author, slide, (IAutoShape) shape, targetText, "形容雪花在空中轻盈、优美地飘落的状态。");
}
}
}
// 保存修改后结果文档
ppt.saveToFile("为PPT文档中的匹配文本添加批注.pptx", FileFormat.PPTX_2013);
}
}

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Spire.PDF 11.1.5 已发布。本次更新增强了 PDF 到 XPS、灰度 PDF 和 Excel 的转换功能。此外,一些已知问题也在该版本中成功修复,如替换文本导致部分文本丢失的问题。详情请阅读以下内容。
问题修复:
将 RTF 转换为 HTML 有助于提高文档访问性,因为 HTML 文档可以在网络浏览器中轻松显示,能让全球的用户都访问到。而将 RTF 转换为图片有助于保留文档布局,因为图片可以准确呈现原始文档,包括字体、颜色和图形。在本文中,您将学习如何使用 Spire.Doc for Java 在 Java 中将 RTF 转换为 HTML 或图片。
首先,您需要在 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>
将 RTF 转换为 HTML 可确保在任何现代网络浏览器中轻松查看和编辑文档,而无需任何其他软件。使用 Spire.Doc for Java,您可以通过 Document.saveToFile(String fileName, FileFormat.Html) 方法实现 RTF 到 HTML 的转换。以下是详细步骤:
import com.spire.doc.*;
public class RTFToHTML {
public static void main(String[] args) {
// 创建Document对象
Document document = new Document();
// 加载RTF文档
document.loadFromFile("示例.rtf", FileFormat.Rtf);
// 保存为HTML格式
document.saveToFile("Rtf转Html.html", FileFormat.Html);
document.dispose();
}
}

要将 RTF 转换为图片,可以使用 Document.saveToImages() 方法将 RTF 文件转换为单个位图或图元文件图像,然后再将它们进一步保存为 BMP、EMF、JPEG、PNG、GIF 或 WMF 格式文件。以下是详细步骤:
import com.spire.doc.*;
import com.spire.doc.documents.*;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
public class RTFtoImage {
public static void main(String[] args) throws Exception{
// 创建Document 类的对象
Document document = new Document();
// 加载RTF 文档
document.loadFromFile("input.rtf", FileFormat.Rtf);
// 将RTF 文档转换为图片
BufferedImage[] images = document.saveToImages(ImageType.Bitmap);
// 遍历图片集合
for (int i = 0; i < images.length; i++) {
// 获取指定图片
BufferedImage image = images[i];
//将图像保存为 png 格式
File file = new File(String.format(("RTF转图-%d.png"), i));
ImageIO.write(image, "PNG", file);
}
}
}

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Spire.Doc for Java 13.1.3 现已正式发布。该版本支持跟踪文档元素和文本内容的添加、删除和更改,还支持更改书签名。此外,它还修复了一些在 Word 转 PDF/HTML、HTML 转 Word/PDF、替换书签以及更新目录域时出现的问题。 更多详情如下。
新功能:
public void startTrackRevisions(String author);
public void startTrackRevisions(String author, Date date);
public void stopTrackRevisions();paragraph.getFormat().getNoSpaceBetweenParagraphsOfSameStyle();
paragraph.getFormat().setNoSpaceBetweenParagraphsOfSameStyle(true);bookmark.setName(String bookmarkName);问题修复: