Spire.XLS for Java 13.6.5 已发布。该版本增强了 Excel 到 PDF 的转换。此外,该版本还修复了一些已知问题,如修复了添加水印后chart的横坐标发生改变的问题。详情请阅读以下内容。
问题修复:
Spire.PDF for Java 9.6.2 已发布。本次更新增强了 PDF 到 Word 和 Excel 以及 OFD 到 PDF 的转换。此外,一些已知问题在该版本中被成功修复,如用 WPS 工具打开文档不显示添加的文本框的问题。详情请阅读以下内容。
问题修复:
将 PDF 文件转换为图片是文档管理系统、电子档案平台或在线预览工具中的常见需求,广泛应用于缩略图生成、跨平台内容展示及历史文档存档等业务场景。对于.NET开发人员来说,Spire.PDF库提供了一种强大而有效的方法来实现PDF到图像的高保真转换。其主要优势包括
在本文中,您将学习如何使用 Spire.PDF for .NET库在 C# 中将 PDF 转换为 JPG 或 PNG 图片,包括安装指南、实用代码片段和转换优化技巧等。
在开始使用 C# 将 PDF 转换为 PNG 或 PDF 转换为 JPG 之前,需要先安装 Spire.PDF for .NET 库。您可以通过 NuGet 包管理器进行安装:
或者,使用程序包管理器控制台:
PM> Install-Package Spire.PDF
PdfDocument 类的 SaveAsImage(int pageIndex, PdfImageType type) 方法可用于将指定的 PDF 页面转换为图片。其中的两个参数:
1、 pageIndex (Int32)
2、 Type (PdfImageType)
以下C#代码演示了如何使用 Spire.PDF 将PDF文档的第一页转换为JPEG图像:
using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;
using System.Drawing.Imaging;
namespace PDFtoJPG
{
class Program
{
static void Main(string[] args)
{
// 创建PdfDocument 对象
PdfDocument pdf = new PdfDocument();
// 加载示例PDF 文档
pdf.LoadFromFile("示例.pdf");
// 将第二页转换为 bitmap 图片
Image image = pdf.SaveAsImage(1, PdfImageType.Bitmap);
// 将图片保存为JPG 格式
image.Save("Pdf转JPG.jpg", ImageFormat.Jpeg);
// 释放资源
pdf.Dispose();
}
}
}

Spire.PDF 提供了另一种 SaveAsImage() 方法的重载,该方法需要四个参数:页面索引、图片类型、水平分辨率(dpiX) 和垂直分辨率(dpiY)。 使用该方法,您可以通过自定义DPI设置来控制输出图像的质量和大小。
下面的C#代码示例将PDF的第一页转换为高分辨率的PNG图像(300 DPI):
using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;
using System.Drawing.Imaging;
namespace PDFtoImage
{
class Program
{
static void Main(string[] args)
{
// 创建PdfDocument 对象
PdfDocument pdf = new PdfDocument();
// 加载示例PDF 文档
pdf.LoadFromFile("示例.pdf");
// 将第二页转换为指定分辨率的图片
Image image = pdf.SaveAsImage(1, PdfImageType.Bitmap, 300, 300);
// 将图片另存为PNG 格式
image.Save("Pdf转PNG.png", ImageFormat.Png);
// 释放资源
pdf.Dispose();
}
}
}

请注意:DPI 越高,图像质量越好,但转换速度越慢。
遍历PDF 中的所有页面,然后将每个页面转换为单独的图片:
// 遍历PDF中所有页面
for (int i = 0; i < pdf.Pages.Count; i++)
{
// 将每页转换为单独的图片并设置Dpi
Image image = pdf.SaveAsImage(i, PdfImageType.Bitmap, 300, 300);
// 将图片保存为PNG格式
string file = string.Format("Image\\ToImage-{0}.png", i);
image.Save(file, ImageFormat.Png);
}
通过更改 Image.Save() 方法的 ImageFormat 参数,可以将 PDF 转换为 JPG、PNG、BMP 或 Gif 格式:
// 保存为 JPEG 格式
image.Save("PDFtoJPG.jpg", ImageFormat.Jpeg);
// 保存为 PNG 格式
image.Save("PDFtoPNG.png", ImageFormat.Png);
// 保存为 BMP 格式
image.Save("PDFtoBMP.bmp", ImageFormat.Bmp);
// 保存为 EMF 格式
image.Save("PDFtoEMF.emf", ImageFormat.Emf);
// 保存为 GIF 格式
image.Save("PDFtoGIF.gif", ImageFormat.Gif);
对于需要处理数据流的情况,可参考以下代码:
// 创建 MemoryStream 对象
MemoryStream ms = new MemoryStream();
// 将第一页转换为图片并设置dpi
Image image = pdf.SaveAsImage(0, PdfImageType.Bitmap, 300, 300);
// 以 PNG 格式将图像保存到流
image.Save(ms, ImageFormat.Png);
// 将Stream对象写入字节数组,以便进一步处理
byte[] imageBytes = ms.ToArray();
Spire.PDF 为 C# 开发者提供了一种高效的方式来将 PDF 文件转换为图片。其强大的功能集、高质量的渲染效果以及对多种图像格式的支持,使其成为处理简单或复杂 PDF 转图片任务的理想选择。通过本文提供的示例,您可以在.NET 应用程序中快速集成 PDF 转换功能。
答:您可以申请30天免费试用许可证,以去除红色水印并全面评估Spire.PDF库。或者您也可以使用免费版(有一定的页面限制)。
答:可以!官方详细教程请参阅: 使用C#将PDF转换为TIFF
答:可以!Spire.PDF for .NET提供了 SaveToFile(String, FileFormat.SVG) 方法,用于将PDF文件转换为SVG文件。完整示例可以查看这篇文章。
Spire.Office for Java 8.6.0 已发布。在该版本中,Spire.Doc for Java支持了设置装订线位置和内容控件的颜色;Spire.XLS for Java增强了 Excel 到 PDF 和图片的转换。此外,许多已知问题也在该版本中被成功修复。详情请阅读以下内容。
获取 Spire.Office for Java 8.6.0请点击:https://www.e-iceblue.cn/Downloads/Spire-Office-JAVA.html
新功能:
section.getPageSetup().isTopGutter(boolean value);document.getMailMerge().executeWidthRegion(InputStream stream);for (Object docObj : doc.getSections().get(0).getBody().getChildObjects()) {
if (docObj instanceof StructureDocumentTag) {
DocumentObject Obj = (DocumentObject) docObj;
SDTProperties sdtProperties = ((StructureDocumentTag) Obj).getSDTProperties();
switch (sdtProperties.getSDTType()) {
case Rich_Text:
sdtProperties.setColor(Color.ORANGE);
break;
case Text:
sdtProperties.setColor(Color.green);
break;
}
}
}问题修复:
问题修复:
Spire.Doc for Java 11.6.0 已发布。该版本支持设置装订线位置和内容控件的颜色。该版本还增强了 Word 到 PDF 和 OFD 的转换功能。此外,一些已知问题在该版本中被成功修复,如接受修订后多出空白段落的问题。详情请阅读以下内容。
新功能:
section.getPageSetup().isTopGutter(boolean value);document.getMailMerge().executeWidthRegion(InputStream stream);for (Object docObj : doc.getSections().get(0).getBody().getChildObjects()) {
if (docObj instanceof StructureDocumentTag) {
DocumentObject Obj = (DocumentObject) docObj;
SDTProperties sdtProperties = ((StructureDocumentTag) Obj).getSDTProperties();
switch (sdtProperties.getSDTType()) {
case Rich_Text:
sdtProperties.setColor(Color.ORANGE);
break;
case Text:
sdtProperties.setColor(Color.green);
break;
}
}
}问题修复:
Spire.PDFViewer 7.11.0 已发布。该版本修复了文档内容显示不完整的问题。同时,该版本还修复了一些已知问题,如修复了滚动页面时,文档内容无法流畅加载的问题。详情请阅读以下内容。
问题修复:
现今,将 PDF 文档转换为 Word 文件已经相对容易。然而,如果您需要在转换过程中保留原始的布局和字体格式,那么并非所有的软件都能够胜任这项任务。在此方面,Spire.PDF for Java 表现得十分出色,它在用 Java 将 PDF 转换为 Word 时为用户提供了以下两种转换模式,以便更好地满足用户的需求:
固定布局模式转换速度快,有利于最大程度保持 PDF 文件的原貌。但是,生成的文档的可编辑性将受到限制,因为 PDF 中的每一行文本将在生成的 Word 文档中显示在单独的框架中。
流动形态是一种完整的识别模式。转换后的内容不会以框架形式呈现,并且生成的文档的结构是可流动的。生成的 Word 文档很容易重新编辑,但看起来可能与原始 PDF 文件不同。
首先,您需要在 Java 程序中添加 Spire.Pdf.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.pdf</artifactId>
<version>11.11.11</version>
</dependency>
</dependencies>
Spire.PDF for Java 拥有强大的文档转换功能,仅需三步即可实现将 PDF 转换为固定布局的 Doc/Docx 文档。详细步骤如下:
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
public class ConvertPdfToWordWithFixedLayout {
public static void main(String[] args) {
//创建PdfDocument对象
PdfDocument doc = new PdfDocument();
//加载PDF文件
doc.loadFromFile("https://cdn.e-iceblue.cn/C:\\Users\\Administrator\\Desktop\\示例文档.pdf");
//将PDF转换为Doc文档并保存到指定的路径
doc.saveToFile("ToDoc.doc", FileFormat.DOC);
//将PDF转换为Docx文档并保存到指定的路径
doc.saveToFile("ToDocx.docx", FileFormat.DOCX);
doc.close();
}
}Spire.PDF for Java 提供了 PdfDocument.getConvertOptions().setConvertToWordUsingFlow() 方法,可以将 PDF 文档转换为流动形态的 Doc/Docx 文档。详细步骤如下:
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
public class ConvertPdfToWordWithFlowableStructure {
public static void main(String[] args) {
//创建PdfDocument对象
PdfDocument doc = new PdfDocument();
//加载PDF文件
doc.loadFromFile("示例文档.pdf");
//将PDF转换为具有流动结构的Word
doc.getConvertOptions().setConvertToWordUsingFlow(true);
//将PDF转换为Doc格式文件并保存
doc.saveToFile("ToDoc.doc", FileFormat.DOC);
//将PDF转换为Docx格式文件并保存
doc.saveToFile("ToDocx.docx", FileFormat.DOCX);
doc.close();
}
}Spire.PDF for Java 还提供了 PdfToWordConverter 类来直接进行 PDF 到 Word 文档的转换。开发者可以直接使用文件路径或 Stream 实例作为参数创建 PdfToWordConverter 实例,然后使用 PdfToWordConverter.saveToDocx() 方法直接将 PDF 文件转换为 Word 文档并保存为文件或 Stream 实例。以下是操作步骤:
import com.spire.pdf.conversion.PdfToWordConverter;
public class Test {
public static void main(String[] args) throws Exception {
// 使用PDF文件路径或流创建一个PdfToWordConverter实例
PdfToWordConverter converter = new PdfToWordConverter("Sample.pdf");
// 将PDF文件转换为Word文档,并保存到文件或流中
converter.saveToDocx("output/PDFToWord.docx");
// 释放资源
converter.dispose();
}
}
转换结果:

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Spire.Doc 11.6.1 已发布。改版本增强了 Word 到 PDF 和 HTML 的转换。此外,许多已知问题也在本次更新中被成功修复,如更新邮件合并域失败的问题。详情请阅读以下内容。
问题修复:
Spire.XLS for Java 13.6.0 已发布。该版本增强了 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>13.12.2</version>
</dependency>
</dependencies>
由于 Word 文档中的变量是域的一种,我们可以直接使用插入域的 Paragraph.appendField(String fieldName, FieldType.Field_Doc_Variable) 方法来插入变量到 Word 文档中,然后再使用 VariableCollection.add() 方法来给变量赋值。需要注意的是,在给变量赋值后,还需要更新文档中的域,赋的值才会在打开 Word 文档时显示出来。插入变量的详细操作步骤如下:
import com.spire.doc.*;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.formatting.CharacterFormat;
public class AddVariables {
public static void main(String[] args) {
//创建Document
Document document = new Document();
//添加一个节
Section section = document.addSection();
//添加一个段落
Paragraph paragraph = section.addParagraph();
//设置文本格式
CharacterFormat characterFormat = paragraph.getStyle().getCharacterFormat();
characterFormat.setFontName("微软雅黑");
characterFormat.setFontSize(14);
//设置页边距
section.getPageSetup().getMargins().setTop(80f);
//添加变量到段落
paragraph.appendField("物理量", FieldType.Field_Doc_Variable);
paragraph.appendText("是物质的永恒运动、变化的持续性、顺序性的表现,包含时刻和时段两个概念。\r\n");
paragraph.appendField("物理量", FieldType.Field_Doc_Variable);
paragraph.appendText("是人类用以描述物质运动过程或事件发生过程的一个参数,确定");
paragraph.appendField("物理量", FieldType.Field_Doc_Variable);
paragraph.appendText(",是靠不受外界影响的物质周期变化的规律。");
//获取变量集合
VariableCollection variableCollection = document.getVariables();
//给添加的变量赋值
variableCollection.add("物理量", "时间");
//更新文档中的域
document.isUpdateFields(true);
//保存文档
document.saveToFile("添加变量.docx", FileFormat.Auto);
document.dispose();
}
}
Spire.Doc for Java 提供的 VariableCollection.set() 可以更改指定变量的值。而在更改变量的值后,只需要更新文档中的域,文档中的所有此变量就会显示新的值,从而实现快速精确地替换的文本。以下是详细操作步骤:
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
import com.spire.doc.VariableCollection;
public class ChangeVariableValue {
public static void main(String[] args) {
//创建Document的对象
Document document = new Document();
//载入Word文档
document.loadFromFile("添加变量.docx");
//获取变量集合
VariableCollection variableCollection = document.getVariables();
//给指定变量分配一个新的值
variableCollection.set("物理量", "Time");
//更新文档中的域
document.isUpdateFields(true);
//保存文档
document.saveToFile("更改变量.docx", FileFormat.Auto);
document.dispose();
}
}
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。