zoukankan      html  css  js  c++  java
  • C# wps转pdf(word、ppt、excel),在线预览pdf

    wps转pdf

      注:我是在wps试用期专业版,windows10系统  vs2019 webform(.net framework4.5)测试。

      前提:需要下载安装wps专业版、企业版。

      项目中需要引用wps的com组件

        com组件Upgrade WPS Spreadsheets 3.0 Object Library (Beta)  ,对应“Excel”,C:WINDOWSassemblyGAC_32Kingsoft.Office.Interop.Etapi3.0.0.0__15d99fb7f8fe5cb4Kingsoft.Office.Interop.Etapi.dll

        com组件 Upgrade WPS Presentation 3.0 Object Library (Beta),对应“PowerPoint”,C:WINDOWSassemblyGAC_32Kingsoft.Office.Interop.Wppapi3.0.0.0__15d99fb7f8fe5cb4Kingsoft.Office.Interop.Wppapi.dll

        com组件Upgrade Kingsoft WPS 3.0 Object Library (Beta),对应“Word”,C:WINDOWSassemblyGAC_32Kingsoft.Office.Interop.Wpsapi3.0.0.0__15d99fb7f8fe5cb4Kingsoft.Office.Interop.Wpsapi.dll

        public static class WpsToPdf
        {
            /// <summary>
            /// word转pdf
            /// </summary>
            /// <param name="source">源<see cref="string"/>.</param>
            /// <param name="newFilePath">新文件路径<see cref="string"/>.</param>
            /// <returns>The <see cref="bool"/>.</returns>
            public static bool WordWpsToPdf(string source, string newFilePath)
            {
                if (source == null) throw new ArgumentNullException(nameof(source));
                if (newFilePath == null) throw new ArgumentNullException(nameof(newFilePath));
    
                var type = Type.GetTypeFromProgID("KWps.Application");
                dynamic wps = Activator.CreateInstance(type);
                try
                {
                    //用wps打开word不显示界面
                    dynamic doc = wps.Documents.Open(source, Visible: false);
    
                    //转pdf
                    doc.ExportAsFixedFormat(newFilePath, WdExportFormat.wdExportFormatPDF);
    
                    //设置隐藏菜单栏和工具栏
                    //wps.setViewerPreferences(PdfWriter.HideMenubar | PdfWriter.HideToolbar);
                    doc.Close();
                }
                catch (Exception e)
                {
                    //添加你的日志代码
                    return false;
                }
                finally
                {
                    wps.Quit();
                    GC.Collect();
                    GC.WaitForPendingFinalizers();
                }
    
                return true;
            }
    
            /// <summary>
            /// excel转pdf
            /// </summary>
            /// <param name="source">源<see cref="string"/>.</param>
            /// <param name="newFilePath">新文件路径<see cref="string"/>.</param>
            /// <returns>The <see cref="bool"/>.</returns>
            public static bool ExcelToPdf(string source, string newFilePath)
            {
                if (source == null) throw new ArgumentNullException(nameof(source));
                if (newFilePath == null) throw new ArgumentNullException(nameof(newFilePath));
    
                var type = Type.GetTypeFromProgID("KET.Application");
                dynamic wps = Activator.CreateInstance(type);
                try
                {
                    var targetType = XlFixedFormatType.xlTypePDF;
                    var missing = Type.Missing;
                    //转pdf
                    var doc = wps.Application.Workbooks.Open(source, missing, missing, missing, missing, missing,
                        missing, missing, missing, missing, missing, missing, missing, missing, missing);
                    doc.ExportAsFixedFormat(targetType, newFilePath, XlFixedFormatQuality.xlQualityStandard, true, false,
                        missing, missing, missing, missing);
                    doc.Close();
                }
                catch (Exception e)
                {
                    //添加你的日志代码
                    return false;
                }
                finally
                {
                    wps.Quit();
                    GC.Collect();
                    GC.WaitForPendingFinalizers();
                }
                return true;
            }
    
            /// <summary>
            /// ppt转pdf
            /// </summary>
            /// <param name="source">源<see cref="string"/>.</param>
            /// <param name="newFilePath">新文件路径<see cref="string"/>.</param>
            /// <returns>The <see cref="bool"/>.</returns>
            public static bool PptToPdf(string source, string newFilePath)
            {
                var type = Type.GetTypeFromProgID("KWPP.Application");
                dynamic wps = Activator.CreateInstance(type);
                try
                {
                    //转pdf
                    var doc = wps.Presentations.Open(source, MsoTriState.msoCTrue, MsoTriState.msoCTrue,
                        MsoTriState.msoCTrue);
                    doc.SaveAs(newFilePath, PpSaveAsFileType.ppSaveAsPDF, MsoTriState.msoTrue);
                    doc.Close();
                }
                catch (Exception e)
                {
                    //添加你的日志代码
                    return false;
                }
                finally
                {
                    wps.Quit();
                    GC.Collect();
                    GC.WaitForPendingFinalizers();
                }
                return true;
            }
        }

     在线预览pdf

      以前一直搜索不到“在线预览pdf方法,后来在使用Aspose时发现了在线预览的秘密,跟大家分享下。

      注意:在线预览pdf主要使针对比较现代化的浏览器。

      

          后台输出pdf时要设置输出

      

  • 相关阅读:
    CSS流式布局 仿京东
    Flex 实现仿 携程网 手机端布局
    JS 实现 微信随机发红包思路
    记录gradle 使用笔记
    springBoot入门
    支付宝当面付扫码支付功能详解
    微信验证以及登录流程
    Nginx配置文件详细说明
    crontab定时任务打包备份文件并删除过期文件
    关于List比较好玩的操作
  • 原文地址:https://www.cnblogs.com/youlicc/p/12699412.html
Copyright © 2011-2022 走看看