02
2020
07

wps 转 pdf C# 实现

项目需求:不打算用office自带的组件实现word转pdf操作

环境需求:安装wps2016专业版

  1. 新建一个控制台应用程序

  2. 添加引用:在COM下 Kingsoft Add-In Designer和Upgrade Kingsoft WPS 3.0 Object Library(Beta)

  3. 引用中出现了Word引用图标,右键---属性---嵌入互操作类型 改为False

  4. 创建转换工具类 

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");
        }


« 上一篇下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。