项目需求:不打算用office自带的组件实现word转pdf操作
环境需求:安装wps2016专业版
- 新建一个控制台应用程序
- 添加引用:在COM下 Kingsoft Add-In Designer和Upgrade Kingsoft WPS 3.0 Object Library(Beta)
- 引用中出现了Word引用图标,右键---属性---嵌入互操作类型 改为False
- 创建转换工具类
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Word; namespace wpswordtopdf
{
public class Wps2Pdf : IDisposable
{
dynamic wps; public Wps2Pdf()
{
//这里创建wps实例不知道用了什么骚操作就没有报错过 本机安装的是wps2016 var type = Type.GetTypeFromProgID("KWps.Application");
wps = Activator.CreateInstance(type);
}
public void ToPdf(string wpsFilename, string pdfFilename = null)
{
if (wpsFilename == null) { throw new ArgumentNullException("wpsFilename"); }
if (pdfFilename == null)
{
pdfFilename = Path.ChangeExtension(wpsFilename, "pdf");
}
Console.WriteLine($@"正在转换 [{wpsFilename}]-> [{pdfFilename}]"); dynamic doc = wps.Documents.Open(wpsFilename, Visible: false);//这句大概是用wps 打开 word 不显示界面
doc.ExportAsFixedFormat(pdfFilename, WdExportFormat.wdExportFormatPDF);//doc 转pdf
doc.Close();
} public void Dispose()
{
throw new NotImplementedException();
}
}
}
主应用调用
static void Main(string[] args)
{
Wps2Pdf wps2 = new Wps2Pdf();
wps2.ToPdf(@"D://1.docx");
}
完成!!!!