首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在C#中使用

如何在C#中使用
EN

Stack Overflow用户
提问于 2013-11-22 18:47:47
回答 3查看 6.8K关注 0票数 2

我在C# app.But中使用'process‘来打印pdf文件,我无法获得打印状态。我发现可以使用System.management和System.printing与打印机/队列进行交互。打印。我使用这两个命名空间做了很多尝试n错误,但无法打印file.Any示例如何使用它们将pdf文档打印到打印机?

EN

回答 3

Stack Overflow用户

发布于 2013-11-22 19:04:00

System.Printing不能用于打印PDF。PDF必须首先渲染为可打印的文件。

有关不同方法的详细概述,请参阅this question及其答案。

如果你在linux上,你可以很容易地调用lp命令。

票数 2
EN

Stack Overflow用户

发布于 2013-11-22 19:06:34

这个问题已经在这里得到了回答,How can I send a file document to the printer and have it print?

你不能用标准方法打印pdf,因为它需要首先渲染,你可以使用Ghostscript,Adobe Acrobat或其他方法。

编辑: Johan更快

票数 0
EN

Stack Overflow用户

发布于 2014-12-12 01:58:28

如果您有一个WPF应用程序,那么使用System.Printing

代码如下:

代码语言:javascript
复制
var file = File.ReadAllBytes(pdfFilePath);
var printQueue = LocalPrintServer.GetDefaultPrintQueue();

using (var job = printQueue.AddJob())
using (var stream = job.JobStream)
{
    stream.Write(file, 0, file.Length);
}

现在,此名称空间必须与WPF应用程序一起使用。它不能很好地与ASP.NETWindows Service配合使用。它不应该与Windows Forms一起使用,因为它有System.Drawing.Printing。使用上面的代码我的PDF打印没有任何问题,但我洗耳恭听,为什么它不适用于其他人。

我要提到的是,您必须有一台支持直接打印的打印机,因为您要将信息直接发送到打印机。在我的经验中,这已经在Brother HL系列和夏普企业打印机上工作过。我希望这能用在其他东西上,比如Excel文档,但它不能。幸运的是,这些东西很容易用其他方式打印。

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

https://stackoverflow.com/questions/20142979

复制
相关文章

相似问题

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