Spire.PDF for Java 4.6.8已发布。该版本支持合并PDF文档后保存到流,增强了转换PDF到图片/Excel流的功能。同时,本次更新还修复了替换图片时出现的问题。详情请阅读以下内容。
新功能:
PdfDocumentBase pdfDocumentBase = PdfDocument.mergeFiles(inputFiles);
pdfDocumentBase.save(outputStream);
问题修复:

将Word文档转换为PDF是许多C#应用程序中的常见需求,但依赖于Microsoft Office Interop可能会显得繁琐且低效。幸运的是,像Spire.Doc for .NET这样的第三方库提供了一种强大且无缝的替代方案,可以高质量地进行转换,而 无需依赖Interop 。无论是需要 保留格式 、 用密码保护PDF ,还是 优化文件大小 ,Spire.Doc都能提供灵活的解决方案,代码量极少。
在本指南中,我们将探讨如何使用Spire.Doc在 C#中将Word转换为PDF ,涵盖基本转换、高级自定义和最佳实践,以获得最佳效果。
Spire.Doc for .NET是一个功能强大的API,允许开发者以编程方式创建、编辑和转换Word文档。它支持将Word(DOC、DOCX)转换为PDF,同时保留格式、图像、超链接等元素。
使用Spire.Doc,您可以获得以下优势:
开始前,请从官网下载Spire.Doc并将DLL引用到您的项目中。或者,您可以通过以下NuGet命令安装它:
PM> Install-Package Spire.Doc
使用默认设置将Word文档转换为PDF非常简单,以下示例展示了如何加载一个DOCX文件并将其保存为PDF:
using Spire.Doc;
namespace ConvertWordToPdf
{
class Program
{
static void Main(string[] args)
{
// 创建一个Document对象
Document doc = new Document();
// 加载Word文档
doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Input.docx");
// 将文档保存为PDF
doc.SaveToFile("ToPDF.pdf", FileFormat.PDF);
// 释放资源
doc.Dispose();
}
}
}
结果:

为了更好地控制转换过程,Spire.Doc提供了ToPdfParameterList类。使用此类,您可以:
以下是可用选项的总结:
| 选项 | 实现方式 |
|---|---|
| 转换为PDF/A | PdfConformanceLevel |
| 用密码保护PDF | PdfSecurity |
| 限制权限(例如,打印) | PdfSecurity |
| 嵌入所有字体 | IsEmbeddedAllFonts |
| 嵌入特定字体 | EmbeddedFontNameList |
| 保留书签 | CreateWordsBookmarks |
| 从标题创建书签 | CreateWordBookmarksUsingHeadings |
| 禁用超链接 | DisableLink |
以下代码通过设置打开密码对输出的PDF文件进行加密,确保文档免受未经授权的访问:
using Spire.Doc;
namespace ConvertWordToPasswordProtectedPdf
{
class Program
{
static void Main(string[] args)
{
// 创建一个Document对象
Document doc = new Document();
// 加载Word文档
doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Input.docx");
// 创建一个ToPdfParameterList对象
ToPdfParameterList parameters = new ToPdfParameterList();
// 设置打开密码
parameters.PdfSecurity.Encrypt("openPsd");
// 将Word保存为PDF
doc.SaveToFile("PasswordProtected.pdf", parameters);
// 释放资源
doc.Dispose();
}
}
}
结果:

以下代码将Word文档中使用的所有字体嵌入生成的PDF中,确保文档在任何查看者的系统字体下都能保持其预期外观:
using Spire.Doc;
namespace EmbedFonts
{
class Program
{
static void Main(string[] args)
{
// 创建一个Document对象
Document doc = new Document();
// 加载Word文档
doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Sample.docx");
// 创建一个ToPdfParameterList对象
ToPdfParameterList parameters = new ToPdfParameterList();
// 在生成的PDF中嵌入Word中使用的所有字体
parameters.IsEmbeddedAllFonts = true;
// 将文档保存为PDF
doc.SaveToFile("EmbedFonts.pdf", parameters);
// 释放资源
doc.Dispose();
}
}
}
结果:

为了实现最佳的PDF输出,您可能需要在转换之前准备您的Word文档。考虑以下调整:
以下代码将图像质量降低到50%,从而生成更小的PDF:
using Spire.Doc;
namespace SetImageQualityWhenConverting
{
class Program
{
static void Main(string[] args)
{
// 创建一个Document对象
Document doc = new Document();
// 加载Word文档
doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Input.docx");
// 将图像质量降低到50%
doc.JPEGQuality = 50;
// 将文档保存为PDF
doc.SaveToFile("CompressImage.pdf", FileFormat.PDF);
// 释放资源
doc.Dispose();
}
}
}
在C#中将Word文档转换为PDF并不复杂——Spire.Doc for .NET简化了这一过程,并提供了广泛的自定义选项。从基本转换到高级功能,如PDF加密、字体嵌入和图像压缩,全部无需Interop。
通过遵循本指南中概述的技术,您可以高效地将Word到PDF的功能集成到您的应用程序中。如需进一步帮助,请查阅Spire.Doc的在线教程或利用其免费试用版测试其功能。
您可以在代码中创建一个循环来一次处理多个文件。例如:
string[] files = Directory.GetFiles("input_folder", "*.docx");
foreach (string file in files)
{
Document document = new Document();
document.LoadFromFile("Sample.docx");
document.SaveToFile(Path.ChangeExtension(file, ".pdf"), FileFormat.PDF);
document.Dispose();
}
您可以先合并Word文件(使用Spire.Doc),然后将合并后的文档转换为PDF。例如:
Document mergedDoc = new Document();
string[] filesToMerge = Directory.GetFiles("input_folder ", "*.docx");
foreach (string file in filesToMerge)
{
mergedDoc.InsertTextFromFile(file, FileFormat.Docx);
}
mergedDoc.SaveToFile("Merged.pdf", FileFormat.PDF);
mergedDoc.Dispose();
这个问题可能是由于系统缺少自定义字体导致的。为了解决此问题,请在执行转换的机器上安装所需的字体。或者,您可以在使用Spire.Doc进行转换时直接将字体嵌入PDF中。
我司提供另外一个产品Spire.PDF for .NET,支持将PDF转回Word,请参考:如何使用C#将PDF转换为Word
如果您需要去除生成文档中的评估提示或解除功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Spire.Office 6.6已发布。本次更新带来一些新的功能,比如:Spire.PDF 支持转换 PDF 为透明背景的图片,同时还支持PDF签名添加时间戳时设置用户名和密码;Spire.XLS支持转换 Excel 到 PDF 时指定字体目录;Spire.Doc 支持添加跨整个页面的横线等等。同时,该版本还修复了大量已知问题。详情请阅读以下内容。
该版本涵盖了最新版的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
新功能:
PdfDocument doc = new PdfDocument();
doc.LoadFromFile("input.pdf");
doc.ConvertOptions.SetPdfToImageOptions(0);
Image image = doc.SaveAsImage(0);
image.Save("output.png", ImageFormat.Png);
static void Main(string[] args)
{
X509Certificate2 x509 = new X509Certificate2(inputFile_pfx, password);
PdfDocument doc = new PdfDocument();
doc.LoadFromFile(inputFile);
PdfPKCS7Formatter formatter = new PdfPKCS7Formatter(x509, false);
formatter.TimestampService = new TSAHttpService("http://time.certum.pl");
PdfOrdinarySignatureMaker signatureMaker = new PdfOrdinarySignatureMaker(doc, formatter);
IPdfSignatureAppearance signatureAppearance = new PdfCustomSignatureAppearance();
signatureMaker.MakeSignature("sign", doc.Pages[0], 100, 100, 100, 100, signatureAppearance);
doc.SaveToFile(outputFile, FileFormat.PDF);
doc.Close();
}
public class PdfCustomSignatureAppearance : IPdfSignatureAppearance
{
public void Generate(PdfCanvas g)
{
float fontSize = 10;
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial", fontSize), true);
g.DrawString("AAAAAAAAAAA", font, PdfBrushes.Red, new PointF(0, 0));
}
}
string url = "http://test1.tsa.cn/tsa";
signature.ConfigureTimestamp(url, "tsademo", "tsademo");
doc.LoadFromSvg(Stream stream);
问题修复:
新功能:
sheet.GetColumnIsHide(columnIndex)
sheet.GetRowIsHide(rowIndex)
workbook.CustomFontFileDirectory = new string[] { "./Data/Font" };
问题修复:
新功能:
Document doc = new Document();
Section section = doc.AddSection();
section.AddParagraph().AppendHorizonalLine();
doc.SaveToFile("result.docx", FileFormat.Docx);
问题修复:
问题修复:
问题修复:
问题修复:
Spire.Office for Java 4.6.3已发布。本次更新带来了一些新功能,比如:Spire.Doc for Java支持转换了Word 到 TIFF的功能;Spire.Presentation for Java优化了合并文档花费的时间。此外,该版本还修复了大量问题。详情请阅读以下内容。
获取Spire.Office for Java 4.6.4请点击:https://www.e-iceblue.cn/Downloads/Spire-Office-JAVA.html
新功能:
Document doc = new Document();
doc.loadFromFile(inputPath);
doc.saveToTiff(outputPath);
问题修复:
优化:
问题修复:
Spire.OfficeViewer 6.6已发布。本次更新主要修复了Word水印显示不完整的问题。详情请阅读以下内容。
问题修复:
https://www.e-iceblue.cn/Downloads/Spire-OfficeViewer-NET.html
Spire.Doc 9.6.10已发布。该版本增强了转换Word到PDF的功能并且修复了打印和加载Word文档时出现的问题。详情请阅读以下内容。
问题修复:
Spire.Doc for Java 4.6.2已发布。该版本支持了转换Word到TIFF的功能,修复了转换Word到PDF/图片/XML的功能。此外,本次更新还修复了添加公司不正确的问题。详情请阅读以下内容。
新功能:
Document doc = new Document();
doc.loadFromFile(inputPath);
doc.saveToTiff(outputPath);
问题修复:
Spire.PDF for Android via Java 3.6.2已发布。本次更新主要修复了给PDF文档添加标注失败的问题。详情请阅读以下内容。
问题修复:
https://www.e-iceblue.cn/Downloads/pdf-for-android-via-java.html
Spire.PDFViewer 6.6已发布。该版本修复了打开、放大查看PDF文档时出现的诸问题。详情请阅读以下内容。
问题修复:
Spire.Presentation for Java 提供了多种方法供开发者调用将 PowerPoint 幻灯片转为其他文件格式,如 PDF、图片、SVG、XPS、OFD 等。在实际开发场景中,当需要将幻灯片转为 HTML 用于网页端呈现时,可参考使用本文介绍的转换方法。本次转换,将分别从以下两个 demo 示例来展示实现转换的详细方法,即:
首先,您需要在 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>
转换时,需要获取指定幻灯片,然后保存为 HTML 到指定路径。代码步骤如下:
import com.spire.presentation.*;
public class PPTtoHTML {
public static void main(String[] args)throws Exception {
//创建Presentation类的对象
Presentation ppt = new Presentation();
//加载幻灯片文档
ppt.loadFromFile("input.pptx");
//获取第4张幻灯片,保存为HTML到指定路径
ISlide slide = ppt.getSlides().get(3);
slide.saveToFile("SlideToHtml.html",FileFormat.HTML);
}
}
加载幻灯片文档后,可直接调用 Presentation.saveToFile() 方法将整个幻灯片文档保存为 HTML 到指定路。代码步骤如下:
import com.spire.presentation.*;
public class PPTtoHTML {
public static void main(String[] args)throws Exception {
//创建Presentation类的对象
Presentation ppt = new Presentation();
//加载幻灯片文档
ppt.loadFromFile("input.pptx");
//保存为HTML格式文档到指定路径
ppt.saveToFile("FileToHtml.html", FileFormat.HTML);
ppt.dispose();
}
}
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。