项目中用到word转pdf 的功能 ,刚开始的要求是做一个应用程序来转 主要代码如下: using PDF =PDFMAKERAPILib;
string wordPath =string.Empty;
stringpdfPath = string.Empty;
PDF.PDFMakerAppapp = new PDFMAKERAPILib.PDFMakerApp();
int iReslut= app.CreatePDF(wordPath, pdfPath,PDF.PDFMakerSettings.kConvertAllPages, true, false, true,System.Type.Missing);
if (iReslut == 0)
{
this.lblInfo.Text = "转换成功!";
}
else
{
//转换失败!
this.lblInfo.Text = Enum.GetName(typeof(PDF.PDFMakerRetVals),iReslut);
}
后来要求改变 必须用ASP.NET 来调用 心想,代码复制到Web窗体里面不就行了吗?
在用WebDev.WebServer.exe 时候OK,没问题,当用IIS时,就是转换不成功,花了点时间,发现原因是两个的用户不同,一个是管理员,一个是Asp.net帐户或者是network Service 看IIS是5.0还是6.0。想通过更改设置权限来解决,改了不少,效果是从一个错误,变成了另一个错误!
后来从网上查资料,受了点启发:(我做COM测试的时候喜欢用VB.NET 代码简练。)
Imports Word = Microsoft.Office.Interop.Word
Imports PDF = ACRODISTXLib DimRange As New Object()
Range= Word.WdPrintOutRange.wdPrintAllDocument
DimItem As New Object()
Item= Word.WdPrintOutItem.wdPrintDocumentContent
DimPageType As New Object()
PageType= Word.WdPrintOutPages.wdPrintAllPages
DimManualDuplexPrint As New Object()
ManualDuplexPrint= False
DimOutPutFileName As String = "C:\Topdf\123456.ps"
DimwordApp As New Word.Application()
wordApp.Documents.Open("C:\Topdf\123456.doc",False, False, False, "", "", False, "", "",Word.WdOpenFormat.wdOpenFormatAuto, , , , , , "")
wordApp.Documents.Save()
wordApp.ActivePrinter= "Adobe PDF"
wordApp.PrintOut(False,, Range, OutPutFileName, , , Item, 1, "", PageType, False, True,"", , False, 0, 0, 0, 0)
wordApp.Quit()
Dimpdftest = New PDF.PdfDistiller()
pdftest.bShowWindow= 0
pdftest.FileToPDF(OutPutFileName,"C:\Topdf\123456.pdf", "")
pdftest= Nothing