c# – 打印到网络(共享)打印机 – Word Interop
我需要在服务器端将word文档打印到网络打印机.我的网页将文档和文件位置发送到服务器以打开和替换邮件合并项,然后将文档打印到首选(非默认)网络打印机.在网页上选择文档更改时,首选打印机名称会更改
我在Windows Server 2008 R2上使用Word 14.0对象库,Asp.Net MVC 4.0,.Net Framework 4.0,IIS 7.在IIS上,我创建了一个在特定帐户Identity(accountName @ DomainName)上运行的应用程序池.将用户配置文件设置为true以将网络打印机连接加载到注册表中.我允许帐户有权运行COM互操作服务这个词.我成功打开文档并替换邮件合并字段并将其另存为pdf,以将文件作为附件发送到电子邮件. 应用程序一词在其ActivePrinter属性中具有默认打印机,因此我也可以打印到默认打印机.但我的最终目标是在关闭单词应用程序和活动文档之前将单词打印到首选网络打印机. 如果我尝试更改ActivePrinter属性,以下两个方法会导致异常. Word.Application wordApp = new Word.Application(); 第一种方法: wordApp.ActivePrinter = "preferredPrinterName"; 第二种方法; object[] oWordDialogParams = { "<serverName>&;PrinterName>",true }; string[] argNames = { "Printer","DoNotSetAsSysDefault" }; object wordBasic = wordApp.WordBasic; wordBasic.GetType().InvokeMember("FilePrintSetup",System.Reflection.BindingFlags.InvokeMethod,null,wordBasic,oWordDialogParams,argNames); 我发现Word应用程序对象没有加载安装到用户帐户的所有打印机.它只加载默认打印机.我假设当上述两种方法试图更改或添加首选打印机到应用程序对象时,这是异常的原因,因为我试图设置的打印机从未在活动打印机列表中找到. 如何在Word应用程序对象中加载用户配置文件下的所有已安装的共享打印机? 解决方法
MS不支持在服务器方案中使用Office互操作(如ASP.NET,Windows服务等) – 请参阅
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q257757#kb2
此外,自Windows Vista以来已经发生了一些与安全相关的更改,这基本上使得在Windows服务中执行“类似桌面”的操作变得非常困难(IIS / ASP.NET在这方面只是Windows服务的特例). 另一点是从服务器场景“打印”可能会导致问题,因为IIS是(特殊)Windows服务… Windows服务通常没有“完整/真实”桌面,而桌面又需要强大的打印… 我不认为你的方案有一个简单的解决方案…… 我会把它分解成不同的组件: > Word文档处理(例如Aspose.Words) 对于您的方案,这将是一个强大且受支持的选项…… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 图像处理 – 如何在Swift for iOS中的像素级加载和编辑位图
- plsql – 如何使用每日预定作业调用oracle中的存储过程?
- ruby-on-rails – Rails错误消息 – 参数2的错误数量为1
- React技术栈实现大众点评Demo-项目结构探究
- 使xcodebuild -exportLocalizations知道如何解析自定义NSLo
- Swift 中 ViewController 默认构造方法不关联同名的xib文件
- 2018年第九届蓝桥杯 C++省赛B组 第三题:乘积尾零
- Flex加载flash_as3_swf,并响应其中的按钮事件
- c – 这个功能是英特尔SIMD的理想选择吗?
- vue2.0 better-scroll 实现移动端滑动的示例代码