C# 如何将Word、Excel、PPT转成PDF文件(使用Spire提供的组件)学习
第一步:新建一个winform项目,下载Spire组件dll
下载Spire.Doc、Spire.XLS、Spire.Presentation ,路径:工具--NuGet包管理器--管理解决方案NuGet程序包
1)Spire.Doc:word转成其它文件(excel、ppt、pdf)所用,使用版本是10.11.0,在NuGet解决方案下载,需要单独下载
2)Spire.XLS:excel转成其它文件(word、ppt、pdf)所用,使用版本是12.10.1,在NuGet解决方案下载,需要单独下载
3)Spire.Presentation:PPT转成其它文件(word、excel、pdf)所用,使用版本是7.11.1,在NuGet解决方案下载,需要单独下载
4) Spire.pdf:PDF转成其它文件(word、excel、html)使用,使用版本是8.11.0.0,下载Spire.Doc或Spire.XLS会连带下载,不需要单独下载
第二步:新增Form1窗体,添加六个按钮
1)第一组:Word、Excel、PPT转成PDF
2)第二组:PDF转成Word、Excel、HTML(未找到PPT,改成HTML)
第三步:编写Form1窗体按钮事件
public partial class Form1 : Form { public Form1() { InitializeComponent(); } /** * 注意:Spire所用的组件dll都是需要收费的,生成的文件有“Evaluation Warning : The document was created with Spire.PDF for .NET”警告,还有文件页码限制(如:PPT转成PDF:有水印,只能打印到10页)。 * 若如果只要学习使用,可下载FreeSpire.Doc、FreeSpire.XLS、FreeSpire.Presentation 进行使用(如:PPT转成PDF:无水印,只能打印到3页) * Spire dll说明 * Spire.Doc:word转成其它文件(excel、ppt、pdf)所用,使用版本是10.11.0,在NuGet解决方案下载,需要单独下载 * Spire.XLS:excel转成其它文件(word、ppt、pdf)所用,使用版本是12.10.1,在NuGet解决方案下载,需要单独下载 * Spire.Presentation:PPT转成其它文件(word、excel、pdf)所用,使用版本是7.11.1,在NuGet解决方案下载,需要单独下载 * Spire.pdf:PDF转成其它文件(word、excel、html)使用,使用版本是8.11.0.0,下载Spire.Doc或Spire.XLS会连带下载,不需要单独下载 * **/ #region Word、Excel、PPT转成 PDF 文件 /// <summary> /// word转换PDF /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button1_Click(object sender, EventArgs e) { Spire.Doc.Document doc = new Spire.Doc.Document(); doc.LoadFromFile(@"D:\Work\Study\Files\Source\test1.doc"); doc.SaveToFile(@"D:\Work\Study\Files\Target\test1.pdf", Spire.Doc.FileFormat.PDF); MessageBox.Show("word转换PDF成功"); } /// <summary> /// Excel转换PDF /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button2_Click(object sender, EventArgs e) { Spire.Xls.Workbook wok = new Spire.Xls.Workbook(); wok.LoadFromFile(@"D:\Work\Study\Files\Source\test2.xlsx"); wok.SaveToFile(@"D:\Work\Study\Files\Target\test2.pdf", Spire.Xls.FileFormat.PDF); MessageBox.Show("Excel转换PDF成功"); } /// <summary> /// PPT转换PDF /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button3_Click(object sender, EventArgs e) { Spire.Presentation.Presentation pre = new Spire.Presentation.Presentation(); pre.LoadFromFile(@"D:\Work\Study\Files\Source\test3.pptx"); pre.SaveToFile(@"D:\Work\Study\Files\Target\test3.pdf", Spire.Presentation.FileFormat.PDF); MessageBox.Show("PPT转换PDF成功"); } #endregion #region PDF转成 Word、Excel、Html 文件 /// <summary> /// PDF转换Word /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button4_Click(object sender, EventArgs e) { Spire.Pdf.PdfDocument pdf = new Spire.Pdf.PdfDocument(); pdf.LoadFromFile(@"D:\Work\Study\Files\Source\作品分享说明.pdf"); pdf.SaveToFile(@"D:\Work\Study\Files\Target\作品分享说明.doc", Spire.Pdf.FileFormat.DOC); MessageBox.Show("PDF转换Word成功"); } /// <summary> /// PDF转换Excel /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button5_Click(object sender, EventArgs e) { Spire.Pdf.PdfDocument pdf = new Spire.Pdf.PdfDocument(); pdf.LoadFromFile(@"D:\Work\Study\Files\Source\作品分享说明.pdf"); pdf.SaveToFile(@"D:\Work\Study\Files\Target\作品分享说明.xlsx", Spire.Pdf.FileFormat.XLSX); MessageBox.Show("PDF转换Excel成功"); } /// <summary> /// PDF转换HTML /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button6_Click(object sender, EventArgs e) { Spire.Pdf.PdfDocument pdf = new Spire.Pdf.PdfDocument(); pdf.LoadFromFile(@"D:\Work\Study\Files\Source\作品分享说明.pdf"); pdf.SaveToFile(@"D:\Work\Study\Files\Target\作品分享说明.html", Spire.Pdf.FileFormat.HTML); MessageBox.Show("PDF转换HTML成功"); } #endregion }
第四步:准备来源文件夹的文件(test1.doc、test.xlsx、test3.pptx、作品分享说明.pdf),如下所示
第五步:运行窗口,点击对应按钮事件,查看目标文件夹的文件
注意:上面Spire.Presentation 和Spire.XLS默认引用Spire.pdf,导致程序报错,需要单独引用后,在测试
严重性 代码 说明 项目 文件 行 禁止显示状态 警告 发现无法解析的“Spire.Pdf”的不同版本之间存在冲突。 “Spire.Pdf, Version=8.11.0.0, Culture=neutral, PublicKeyToken=663f351905198cb3”与“Spire.Pdf, Version=8.11.2.0, Culture=neutral, PublicKeyToken=663f351905198cb3”之间存在冲突。 已选择“Spire.Pdf, Version=8.11.0.0, Culture=neutral, PublicKeyToken=663f351905198cb3”,因为它是主版本而“Spire.Pdf, Version=8.11.2.0, Culture=neutral, PublicKeyToken=663f351905198cb3”不是。 依赖于“Spire.Pdf, Version=8.11.0.0, Culture=neutral, PublicKeyToken=663f351905198cb3”[D:\Work\Study\StudyWinForm\packages\Spire.Doc.10.11.0\lib\net40\Spire.Pdf.dll]的引用。 D:\Work\Study\StudyWinForm\packages\Spire.Doc.10.11.0\lib\net40\Spire.Pdf.dll 导致引用“D:\Work\Study\StudyWinForm\packages\Spire.Doc.10.11.0\lib\net40\Spire.Pdf.dll”的项目文件项 Include 特性。 Spire.Pdf, Version=8.11.0.0, Culture=neutral, PublicKeyToken=663f351905198cb3, processorArchitecture=MSIL Spire.Doc, Version=10.11.0.0, Culture=neutral, PublicKeyToken=663f351905198cb3, processorArchitecture=MSIL Spire.XLS, Version=12.10.1.0, Culture=neutral, PublicKeyToken=663f351905198cb3, processorArchitecture=MSIL D:\Work\Study\StudyWinForm\packages\Spire.Doc.10.11.0\lib\net40\Spire.Doc.dll 导致引用“D:\Work\Study\StudyWinForm\packages\Spire.Doc.10.11.0\lib\net40\Spire.Doc.dll”的项目文件项 Include 特性。 Spire.Doc, Version=10.11.0.0, Culture=neutral, PublicKeyToken=663f351905198cb3, processorArchitecture=MSIL D:\Work\Study\StudyWinForm\packages\Spire.XLS.12.10.1\lib\net40\Spire.XLS.dll 导致引用“D:\Work\Study\StudyWinForm\packages\Spire.XLS.12.10.1\lib\net40\Spire.XLS.dll”的项目文件项 Include 特性。 Spire.XLS, Version=12.10.1.0, Culture=neutral, PublicKeyToken=663f351905198cb3, processorArchitecture=MSIL 依赖于“Spire.Pdf, Version=8.11.2.0, Culture=neutral, PublicKeyToken=663f351905198cb3”[D:\Work\Study\StudyWinForm\packages\Spire.Presentation.7.11.1\lib\net40\Spire.Pdf.dll]的引用。 D:\Work\Study\StudyWinForm\packages\Spire.Presentation.7.11.1\lib\net40\Spire.Presentation.dll 导致引用“D:\Work\Study\StudyWinForm\packages\Spire.Presentation.7.11.1\lib\net40\Spire.Presentation.dll”的项目文件项 Include 特性。 Spire.Presentation, Version=7.11.1.0, Culture=neutral, PublicKeyToken=663f351905198cb3, processorArchitecture=MSIL StudyWinForm
第六步:打开生成的文件
参考网站:https://blog.csdn.net/swk795795/article/details/126834264