11
2019
06

C#调用WPS2016转换Word、Excel、PPT文件为PDF

阿里云主机推荐

C#调用WPS2016转换Word、Excel、PPT文件为PDF,耗时稍微长一点,但是文件转换格式不存在问题。

需要安装WPS2016  下载地址:https://pan.baidu.com/s/1ajC7OABqZiaoFzwGLDfo_w (8it2)

using System;
using Excel;
using PowerPoint;
using Word;

namespace SharePint.Code
{
    public class FileTransform
    {
        /// <summary>
        /// Word转PDF
        /// </summary>
        /// <param name="pWordFile">word文件地址</param>
        /// <param name="pSavePdf">保存PDF地址</param>
        /// <returns></returns>
        public static bool WordToPdf(string pWordFile, string pSavePdf)
        {
            var type = Type.GetTypeFromProgID("KWps.Application");
            dynamic wps = Activator.CreateInstance(type);
            try
            {
                var doc = wps.Documents.Open(pWordFile, Visible: false);
                doc.ExportAsFixedFormat(pSavePdf, WdExportFormat.wdExportFormatPDF);
                doc.Close();
            }
            catch (Exception e)
            {
                return false;
            }
            finally
            {
                wps.Quit();
                GC.Collect();
                GC.WaitForPendingFinalizers();
                GC.Collect();
                GC.WaitForPendingFinalizers();
            }
            return true;
        }

        /// <summary>
        /// Excel转PDF
        /// </summary>
        /// <param name="pExcelFile">Excel文件地址</param>
        /// <param name="pSavePdf">保存PDF地址</param>
        /// <returns></returns>
        public static bool ExcelToPdf(string pExcelFile, string pSavePdf)
        {
            var type = Type.GetTypeFromProgID("KET.Application");
            dynamic wps = Activator.CreateInstance(type);
            try
            {
                var targetType = XlFixedFormatType.xlTypePDF;
                var missing = Type.Missing;
                var doc = wps.Application.Workbooks.Open(pExcelFile, missing, missing, missing, missing, missing,
                    missing, missing, missing, missing, missing, missing, missing, missing, missing);
                doc.ExportAsFixedFormat(targetType, pSavePdf, XlFixedFormatQuality.xlQualityStandard, true, false,
                    missing, missing, missing, missing);
                doc.Close();
            }
            catch (Exception e)
            {
                return false;
            }
            finally
            {
                wps.Quit();
                GC.Collect();
                GC.WaitForPendingFinalizers();
                GC.Collect();
                GC.WaitForPendingFinalizers();
            }
            return true;
        }

        /// <summary>
        /// PPT转PDF
        /// </summary>
        /// <param name="pPptFile">PPT文件地址</param>
        /// <param name="pSavePdf">保存PDF地址</param>
        /// <returns></returns>
        public static bool PptToPdf(string pPptFile, string pSavePdf)
        {
            var type = Type.GetTypeFromProgID("KWPP.Application");
            dynamic wps = Activator.CreateInstance(type);
            try
            {
                var doc = wps.Presentations.Open(pPptFile, MsoTriState.msoCTrue, MsoTriState.msoCTrue,
                    MsoTriState.msoCTrue);
                doc.SaveAs(pSavePdf, PpSaveAsFileType.ppSaveAsPDF, MsoTriState.msoTrue);
                doc.Close();
            }
            catch (Exception e)
            {
                return false;
            }
            finally
            {
                wps.Quit();
                GC.Collect();
                GC.WaitForPendingFinalizers();
                GC.Collect();
                GC.WaitForPendingFinalizers();
            }
            return true;
        }


    }
}


本文标题:C#调用WPS2016转换Word、Excel、PPT文件为PDF
本文链接:https://masoft.cn/post/87.html
作者授权:除特别说明外,本文由 智汇软件 原创编译并授权 北京,深圳,重庆,大连,青岛,济南软件设计与定制 刊载发布。
版权声明:本文使用「署名-非商业使用-禁止演绎 4.0 国际」创作共享协议,转载或使用请遵守署名协议。

« 上一篇 下一篇 »

发表评论:

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

分享:

支付宝

微信