C#调用WPS将文档转换成pdf进行预览
引用: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进行预览的更多相关文章
- word ppt excel文档转换成pdf
1.把word文档转换成pdf (1).添加引用 using Microsoft.Office.Interop.Word; 添加引用 (2).转换方法 /// <summary> /// ...
- C#实现文档转换成PDF
网上有很多将doc.ppt.xls等类型的文档转换成pdf的方法,目前了解到的有两大类: 1.使用虚拟打印机将doc.ppt.xls等类型的文档 2.使用OFFICE COM组件 我采用了第二种方法实 ...
- ASP.NET将word文档转换成pdf的代码
一.添加引用 using Microsoft.Office.Interop.Word; 二.转换方法 1.方法 C# 代码 /// <summary> /// 把Word文件转换成pdf文 ...
- asp.net将ppt文档转换成pdf
一.添加引用 using Microsoft.Office.Core;using Microsoft.Office.Interop.PowerPoint; 二.转换方法 C# 代码 复制 // ...
- Python将word文档转换成PDF文件
如题. 代码: ''' #將word文档转换为pdf文件 #用到的库是pywin32 #思路上是调用了windows和office功能 ''' #导入所需库 from win32com.client ...
- Java利用aspose-words将word文档转换成pdf(破解 无水印)
首先下载aspose-words-15.8.0-jdk16.jar包 http://pan.baidu.com/s/1nvbJwnv 引入jar包,编写Java代码 package doc; impo ...
- Java实现批量将word文档转换成PDF
先导入words的jar包 需要jar包的私聊我发你 代码如下:import com.aspose.words.Document;import java.io.File; public class W ...
- C# word文档转换成PDF格式文档
最近用到一个功能word转pdf,有个方法不错,挺方便的,直接调用即可,记录下 方法:ConvertWordToPdf(string sourcePath, string targetPath) so ...
- JAVA:借用OpenOffice将上传的Word文档转换成Html格式
为什么会想起来将上传的word文档转换成html格式呢?设想,如果一个系统需要发布在页面的文章都是来自word文档,一般会执行下面的流程:使用word打开文档,Ctrl+A,进入发布文章页面,Ctrl ...
随机推荐
- springboot 使用 freemarker 无法正常跳转的问题?
1.springboot 使用 freemarker 无法正常跳转的问题? 参考:https://blog.csdn.net/Lin_xiaofeng/article/details/79122053 ...
- C# 处理接口返回的XML格式数据
using System.Xml; //引入命名空间 //模拟接口返回的数据 string str=@"<JZD_Message xmlns:xsd=""http: ...
- layui + mvc + ajax 导出Excel功能
为了更方便,没基础的伙伴更容易理解,我尽量详细简便 省了很多代码,一步一步的试 自己引入文件 1. html 前端视图代码 Layui的数据绑定 全部代码 @{ Layout = null; } &l ...
- List的Clear方法与RemoveAll方法用法小结
转自:https://blog.csdn.net/yl2isoft/article/details/17059093 结果分析 执行List的Clear方法和RemoveAll方法,List将清除指定 ...
- 十:装饰器模式(io流)
定义:装饰模式是在不必改变原类文件和使用继承的情况下,动态的扩展一个对象的功能.它是通过创建一个包装对象,也就是装饰来包裹真实的对象. 这一个解释,引自百度百科,我们 ...
- colmap编译过程中出现,无法解析的外部符号错误 “__cdecl google::base::CheckOpMessageBuilder::ForVar1(void)”
错误提示: >colmap.lib(matching.obj) : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: cl ...
- 微信小程序自定义tabbar的实现
微信小程序自定义tabbar的实现 目的:当采用微信的自定义tabbar组件的时候,切换的时候会出现闪屏的效果:当使用微信默认的tabbar的时候,限制了tabbar的数量以及灵活配置. 方案:自己动 ...
- JavaScript深入浅出第5课:Chrome是如何成功的?
摘要: Chrome改变世界. <JavaScript深入浅出>系列: JavaScript深入浅出第1课:箭头函数中的this究竟是什么鬼? JavaScript深入浅出第2课:函数是一 ...
- 对Quene中的队列的状态进行操作
查看队列的状态(包括队列的满状态.空.元素个数等等) import multiprocessing quene = multiprocessing.Queue(3) quene.put(12) que ...
- c# 第19节 Arraylist数组
本节内容: 1:ArrayList是什么 2:ArrayList数组的添加 3:ArrayList的方法 4:ArrayList 的删除 4:ArrayList 的遍历与查找 1:ArrayList是 ...