C#调用WPS将文档转换成pdf进行预览

时间:2023-03-09 18:00:46
C#调用WPS将文档转换成pdf进行预览

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

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

本地iis部署的站点却不行

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

解决方法

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

C#调用WPS将文档转换成pdf进行预览

代码

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.****.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; }

}

}