在asp.net中,如何调用服务器上的虚拟打印机,并打印到文件?

lovemory 2004-12-20 11:18:54
服务器上安装了Adobe Acrobat 6.0 Standard,这样服务器上就有了个虚拟打印机Adobe PDF。

我的意图是这样的,我想通过虚拟打印机Adobe PDF 把excel,word文件打印输出为pdf文件。

这个怎样做呢?
...全文
464 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovemory 2004-12-24
  • 打赏
  • 举报
回复
圣诞结贴
lovemory 2004-12-21
  • 打赏
  • 举报
回复
帮我挺一下
lovemory 2004-12-21
  • 打赏
  • 举报
回复
但我把上面的代码移值到asp.net,编译通过,运行的时候出错了。
错误信息是弹出对话框,内容如下:
JIT调试失败,出错如下错误:拒绝访问。
JIT调试由用户帐号“NT AUTHORITY\NEWWORK SERVICE”启动。
有关跟多信息,请查看文档索引中的“实时调试,错误”。
asthlon 2004-12-21
  • 打赏
  • 举报
回复
学习
lovemory 2004-12-21
  • 打赏
  • 举报
回复
Sub Main()

' Define the postscript and .pdf file names.
Dim xlApp As Excel.Application '定义EXCEL类
Dim xlBook As Excel.Workbook '定义工件簿类
Dim xlsheet As Excel.Worksheet '定义工作表类

xlApp = CreateObject("Excel.Application") '创建EXCEL应用类
xlApp.Visible = False '设置EXCEL可见
xlBook = xlApp.Workbooks.Open("c:\kpi-0.xls") '打开EXCEL工作簿
xlsheet = xlBook.Worksheets(2) '打开EXCEL工作表
xlsheet.Activate() '激活工作表
xlsheet.Cells(1, 1) = "abc" '给单元格1行驶列赋值

Dim PSFileName As String
Dim PDFFileName As String
Dim joboptions As String
PSFileName = "c:\myPostScript.ps"
PDFFileName = "c:\myPDF.pdf"
joboptions = "c:\dd.joboptions"
' Print the Excel range to the postscript file
Dim MySheet As Excel.Worksheet
MySheet = xlsheet
MySheet.PrintOut(copies:=1, preview:=False, ActivePrinter:="Adobe PDF", printtofile:=True, collate:=True, prtofilename:=PSFileName)
' Convert the postscript file to .pdf
Dim myPDF As ACRODISTXLib.PdfDistiller
myPDF = New ACRODISTXLib.PdfDistiller
myPDF.FileToPDF(PSFileName, PDFFileName, joboptions)

myPDF = Nothing
xlBook.Close(False) '关闭EXCEL工作簿 
xlApp.Quit() '关闭EXCEL
xlApp = Nothing '释放EXCEL对象

End Sub
上面我是调用adobe的组件ACRODISTXLib.PdfDistiller进行excel到pdf的转化,
在应用程序中运行通过,运行的时候它会启动adobe pdf虚拟打印机 进行excel到pdf的转换。

但我把上面的代码移值到asp.net,编译通过,运行的时候出错了。


motional 2004-12-20
  • 打赏
  • 举报
回复
他显示什么错误?
zyq1215 2004-12-20
  • 打赏
  • 举报
回复
学习
wangxt 2004-12-20
  • 打赏
  • 举报
回复
帮你顶
lovemory 2004-12-20
  • 打赏
  • 举报
回复
Excel.Application excel=null;
Excel.Workbook wb=null;
Excel.Worksheet ws = null;
object missing=System.Reflection .Missing .Value ;
string excelFilePath = "c:\\dd2.xls";
excel = new Excel.ApplicationClass();
excel.Visible = false;
excel.Application.Workbooks.Open(
excelFilePath,missing,missing,
missing,missing,missing,missing,missing,missing,
missing,missing,missing,missing,missing,missing);//打开excel文件
wb = excel.Workbooks[1];
ws = (Excel.Worksheet)wb.Worksheets[1]; //实例化excel文件的一个sheet

object from =1;
object to = 1;
object pritofile = true;
ws.PrintOut(from,to,missing,missing,missing,pritofile,missing,"c:\\pdfreport.pdf");
上面的代码是把c:\\dd2.xls 打印到文件c:\\pdfreport.pdf。但是c:\\pdfreport.pdf打不开。我把Adobe PDf设为默认的打印机了。
lovemory 2004-12-20
  • 打赏
  • 举报
回复
tsq12345(月亮还在)
你所说的肯定可以了。

我要的是在程序里面后台控制打印
我想使这样的,在程序里,先打开一个word、excel文件,然后把文件打印输出文件。

tsq12345 2004-12-20
  • 打赏
  • 举报
回复
先这样试一下吧:打印一个word文件,在弹出打印对话框时,在其中选择虚拟打印机Adobe PDF进行打印.
如果能行,就可以调用打印函数实现.
wuyanhuiyishi 2004-12-20
  • 打赏
  • 举报
回复
与DDK有关吗?
lovemory 2004-12-20
  • 打赏
  • 举报
回复
神呀,救救我。。。
wuyanhuiyishi 2004-12-20
  • 打赏
  • 举报
回复
寻找答案中……

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧