首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >服务器端是否支持System.Printing中的XPS打印路径?

服务器端是否支持System.Printing中的XPS打印路径?
EN

Stack Overflow用户
提问于 2009-08-20 02:58:57
回答 4查看 3.4K关注 0票数 1

这是一个分为两部分的问题:

1.

服务器端不支持原始的.NET打印类(在System.Drawing.Printing中)。(见http://msdn.microsoft.com/en-us/library/system.drawing.printing(VS.80).aspx

我认为服务器端支持更新的基于XPS的打印类(在System.Printing中),例如在ASP.NET应用程序和Windows中,但我无法证明这一点。微软也没有回答我的问题。

这里有人知道吗?

2

新的基于XPS的打印有时会将内部转换为GDI。在这种情况下,唯一可用的驱动程序是旧风格的驱动程序,即使应用程序正在使用新的打印类进行打印。见http://msdn.microsoft.com/en-us/library/ms742418.aspx。在这种情况下,服务器端使用的新类安全吗?

  • 澄清-这完全是关于服务器打印的东西。为了本讨论的目的,根本不涉及网页浏览器。服务器,无论是windows服务还是asp.net,都需要在附加到服务器的打印机上直接打印出文档。

谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-10-18 20:55:48

正如我在下面的注释中所指出的,在纯托管代码中没有支持服务器端打印的解决方案。

但是,Aspose刚刚发布了一些代码,允许您从托管代码中打印XPS文档(成功地使用PInvoke调用XPS打印API)。作为记录,我认为微软反对使用PInvoke调用PInvoke打印的最初建议仅仅是因为它是一个很难使用PInvoke的API。但是Aspose似乎已经成功了,这是个好消息,因为它消除了分离任何单独的非托管DLL的需要。

总之,Aspose解决方案看起来是从ASP.NET和Windows打印复杂文档的最简单的、完全支持的方法。

详细信息:http://www.aspose.com/documentation/.net-components/aspose.words-for-.net-and-java/howto-print-a-document-on-a-server-via-the-xpsprint-api.html

票数 4
EN

Stack Overflow用户

发布于 2009-08-21 04:25:52

在.Net中,支持是WPF的一部分。WPF在Windows中的使用是不受支持的(请参见MSDN),因此.Net的XPS打印,包括System.Printing的使用,也不支持服务。

同样的答案也适用于问题的“转换到GDI”部分,因为这个过程是自动发生的(如果XPS内容被打印到PrintQueue,而驱动程序不是XPS,则框架会自动将XPS内容转换为驱动程序所期望的DDI调用,如果基于GDI的应用程序正在打印)。

对于需要XPS打印的服务器端开发(服务),可以在Windows7中使用Win32 API。具体而言,请参阅XPSPrint API,它提供对XPS打印路径的访问,并支持对非XPS打印队列的自动转换,以及可用于处理XPS内容和处理打印票的API。

票数 0
EN

Stack Overflow用户

发布于 2009-08-20 03:04:01

如果你想让用户的浏览器从服务器代码中打印出来,那就算了吧。您应该希望的最好做法是向浏览器发送一个带有调用window.print()的javascript代码的页面。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1303722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档