引用:https://www.jianshu.com/p/445996126c75

vs启动项目可以生成wps实例

本地iis部署的站点却不行

原因是vs是管理员权限,而iis没有权限

解决方法

启动IIS,应用程序池-“选定的应用程序池”-高级设置-进程模型-标识:设置为管理员账号administrator

 
 

代码

1.安装WPS 2016 专业版

2.方法一:在项目中引用etapi.dll,wpsapi.dll,wppapi.dll,在WPS的安装目录中,如C:\Program Files (x86)\Kingsoft\WPS Office\10.8.2.6666\office6

方法二:根据实际需要科添加下面的COM引用

原文:https://blog.csdn.net/xqf222/article/details/81237915

添加引用 -> COM -> Kingsoft Add-In Designer

添加引用 -> COM -> Microsoft Office 11.0 Object Library

添加引用 -> COM -> Upgrade WPS Office 3.0 Object Library(Beta)

添加引用 -> COM -> Upgrade WPS Presentation 3.0 Object Library(Beta)

添加引用 -> COM -> Upgrade Kingsoft WPS 3.0 Object Library(Beta)

添加引用 -> COM -> Kingsoft WPS Extend Apo 1.0 Object Library(Beta)

public class ToPdfHelper : IDisposable

{

dynamic wps;

public ToPdfHelper(string typeName)

{

if (typeName == "xls")

typeName = "KET.Application";

else if (typeName == "ppt")

typeName = "KWPP.Application";

else

typeName = "KWps.Application";

//创建wps实例,需提前安装wps

Type type = Type.GetTypeFromProgID(typeName);

if (type == null)

type = Type.GetTypeFromProgID("wps.Application");

wps = Activator.CreateInstance(type);

}

/// <summary>

/// 使用wps将Word转PDF

/// </summary>

/// <param name="saveUrl">文件路径</param>

/// <param name="targetPath">源文件路径</param>

/// <returns></returns>

public string WordWpsToPdf(string saveUrl, string targetPath)

{

if (targetPath == null)

{

throw new ArgumentNullException("wpsFilename");

}

var wordPath = saveUrl + targetPath;

var pdfPath = Path.ChangeExtension(wordPath, "pdf");

try

{

//用wps 打开word不显示界面

dynamic doc = wps.Documents.Open(wordPath, Visible: false);

//doc 转pdf

doc.ExportAsFixedFormat(pdfPath, WdExportFormat.wdExportFormatPDF);

//设置隐藏菜单栏和工具栏

//wps.setViewerPreferences(PdfWriter.HideMenubar | PdfWriter.HideToolbar);

doc.Close();

doc = null;

}

catch (Exception e)

{

targetPath = GetEXCELtoPDF.CreatePDFs(saveUrl, targetPath);

}

finally

{

Dispose();

}

return Path.ChangeExtension(targetPath, "pdf");

}

/// <summary>

/// 使用wps将xls转PDF

/// </summary>

/// <param name="saveUrl">文件路径</param>

/// <param name="targetPath">源文件路径</param>

/// <returns></returns>

public string XlsWpsToPdf(string saveUrl, string targetPath)

{

if (targetPath == null)

{

throw new ArgumentNullException("wpsFilename");

}

var wordPath = saveUrl + targetPath;

var pdfPath = Path.ChangeExtension(wordPath, "pdf");

try

{

XlFixedFormatType targetType = XlFixedFormatType.xlTypePDF;

object missing = Type.Missing;

//xls 转pdf

dynamic doc = wps.Application.Workbooks.Open(wordPath, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing);

doc.ExportAsFixedFormat(targetType, pdfPath, XlFixedFormatQuality.xlQualityStandard, true, false, missing, missing, missing, missing);

//设置隐藏菜单栏和工具栏

//wps.setViewerPreferences(PdfWriter.HideMenubar | PdfWriter.HideToolbar);

doc.Close();

doc = null;

}

catch (Exception e)

{

targetPath = GetEXCELtoPDF.CreatePDFs(saveUrl, targetPath);

}

finally

{

Dispose();

}

return Path.ChangeExtension(targetPath, "pdf");

}

/// <summary>

/// 使用ppt将xls转PDF

/// </summary>

/// <param name="saveUrl">文件路径</param>

/// <param name="targetPath">源文件路径</param>

/// <returns></returns>

public string PptWpsToPdf(string saveUrl, string targetPath)

{

if (targetPath == null)

{

throw new ArgumentNullException("wpsFilename");

}

var wordPath = saveUrl + targetPath;

var pdfPath = Path.ChangeExtension(wordPath, "pdf");

try

{

//ppt 转pdf

dynamic doc = wps.Presentations.Open(wordPath, MsoTriState.msoCTrue,

MsoTriState.msoCTrue, MsoTriState.msoCTrue);

object missing = Type.Missing;

//doc.ExportAsFixedFormat(pdfPath, PpFixedFormatType.ppFixedFormatTypePDF,

//    PpFixedFormatIntent.ppFixedFormatIntentPrint,

//    MsoTriState.msoCTrue, PpPrintHandoutOrder.ppPrintHandoutHorizontalFirst,

//    PpPrintOutputType.ppPrintOutputBuildSlides,

//      MsoTriState.msoCTrue, null, PpPrintRangeType.ppPrintAll,"",

//      false, false, false, false, false, missing);

doc.SaveAs(pdfPath, PpSaveAsFileType.ppSaveAsPDF, MsoTriState.msoTrue);

//设置隐藏菜单栏和工具栏

//wps.setViewerPreferences(PdfWriter.HideMenubar | PdfWriter.HideToolbar);

doc.Close();

doc = null;

}

catch (Exception e)

{

targetPath = GetEXCELtoPDF.CreatePDFs(saveUrl, targetPath);

}

finally

{

Dispose();

}

return Path.ChangeExtension(targetPath, "pdf");

}

public void Dispose()

{

if (wps != null) { wps.Quit(); wps = null; }

}

}

C#调用WPS将文档转换成pdf进行预览的更多相关文章

  1. word ppt excel文档转换成pdf

    1.把word文档转换成pdf (1).添加引用 using Microsoft.Office.Interop.Word; 添加引用 (2).转换方法 /// <summary> /// ...

  2. C#实现文档转换成PDF

    网上有很多将doc.ppt.xls等类型的文档转换成pdf的方法,目前了解到的有两大类: 1.使用虚拟打印机将doc.ppt.xls等类型的文档 2.使用OFFICE COM组件 我采用了第二种方法实 ...

  3. ASP.NET将word文档转换成pdf的代码

    一.添加引用 using Microsoft.Office.Interop.Word; 二.转换方法 1.方法 C# 代码 /// <summary> /// 把Word文件转换成pdf文 ...

  4. asp.net将ppt文档转换成pdf

    一.添加引用 using Microsoft.Office.Core;using Microsoft.Office.Interop.PowerPoint; 二.转换方法   C# 代码   复制 // ...

  5. Python将word文档转换成PDF文件

    如题. 代码: ''' #將word文档转换为pdf文件 #用到的库是pywin32 #思路上是调用了windows和office功能 ''' #导入所需库 from win32com.client ...

  6. Java利用aspose-words将word文档转换成pdf(破解 无水印)

    首先下载aspose-words-15.8.0-jdk16.jar包 http://pan.baidu.com/s/1nvbJwnv 引入jar包,编写Java代码 package doc; impo ...

  7. Java实现批量将word文档转换成PDF

    先导入words的jar包 需要jar包的私聊我发你 代码如下:import com.aspose.words.Document;import java.io.File; public class W ...

  8. C# word文档转换成PDF格式文档

    最近用到一个功能word转pdf,有个方法不错,挺方便的,直接调用即可,记录下 方法:ConvertWordToPdf(string sourcePath, string targetPath) so ...

  9. JAVA:借用OpenOffice将上传的Word文档转换成Html格式

    为什么会想起来将上传的word文档转换成html格式呢?设想,如果一个系统需要发布在页面的文章都是来自word文档,一般会执行下面的流程:使用word打开文档,Ctrl+A,进入发布文章页面,Ctrl ...

随机推荐

  1. Python urlib 模块

    Python urlib 模块 urlib 模块 当前再爬虫领域使用的比较少,不过它对图片爬取处理会比较方便.这里我们只使用它的图片爬取. 使用 urlib.request.urlretrieve(u ...

  2. Laravel 运行php artisan serve命令时提示No application encryption key has been specified

    创建了新的laravel项目后, 运行提示:No application encryption key has been specified 解决方法: 这个是由于没有配置好 APP_KEY 在终端上 ...

  3. 从webkit内核简单看css样式和css规则优先级(权重)

    目录 webkit中样式相关类及类间关系 样式规则匹配 权重(优先级)计算 权重相同时的覆盖原则 webkit中样式相关类及类间关系 资料来源: <webkit技术内幕> 结构相关类: 1 ...

  4. 3.dubbo 负载均衡策略和集群容错策略都有哪些?动态代理策略呢?

    作者:中华石杉 面试题 dubbo 负载均衡策略和集群容错策略都有哪些?动态代理策略呢? 面试官心理分析 继续深问吧,这些都是用 dubbo 必须知道的一些东西,你得知道基本原理,知道序列化是什么协议 ...

  5. Codeforces F. Maxim and Array(构造贪心)

    题目描述: Maxim and Array time limit per test 2 seconds memory limit per test 256 megabytes input standa ...

  6. 第15节_BLE协议GATT层

    学习资料:官方手册 Vol 3: Core System Package [Host volume] Part G: Generic Attribute Profile (GATT) 这篇文章格式比较 ...

  7. Python获取帮助的3种方式(转载)

    我们可以很容易的通过Python解释器获取帮助.如果想知道一个对象(object)更多的信息,那么可以调用help(object)!另外还有一些有用的方法,dir(object)会显示该对象的大部分相 ...

  8. CF1045B Space Isaac

    原题链接 DOWNLOAD AS PDF 题目大意 \(0\sim m-1\)的数被分成两个集合,你可以分别从两个集合中取一个数相加并对\(m\)取模,求一不能构造出的数. 题解 感觉如果\(\col ...

  9. Python内容

    1.Python介绍.计算机硬件.网络.变量.数据类型:列表+元组+字典+布尔值+字符串+数字+集合.格式化输出.if判断.for循环.while循环. 2.三元运算.字符编码.文件处理:r/rb(读 ...

  10. 批处理教程之cls、pause命令

    cls 命令     清除屏幕.执行该命令后,屏幕上的所有信息都被清除,光标重新定位至屏幕左上角. REM 和 :: REM为注释命令,一般用来给程序加上注解,该命令后的内容不被执行,但能回显. 其次 ...