问题标签 [system.printing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
7886 浏览

.net - 如何让 System.Printing.PrintServer.GetPrintQueues 从远程服务器返回打印队列列表?

问题

我正在尝试获取远程服务器上可用的打印队列列表

最终这将需要从 ASP.NET 执行,但现在我会满足于控制台应用程序的工作。

当我使用远程服务器的路径创建System.Printing.PrintServer类的实例时,我能够获取有关打印服务器的基本信息。但是当我调用GetPrintQueues 方法时,我只得到在本地盒子上定义的队列。无论我使用什么远程设备。

代码

例子:

假设以下配置

  • \\local(定义了 3 个打印队列的本地计算机,1 个是远程连接
    • LPrinter1
    • LPrinter2
    • \\远程\RPrinter1
  • \\remote(定义了 2 个打印队列的远程计算机
    • R打印机1
    • RPrinter2
  • \\other(定义了 1 个打印队列的其他计算机
    • 打印机

结果是:

我最好的猜测是 GetPrintQueues() 方法内部发生了一些事情,导致打印服务器被重置为本地框,因为只要它是网络上的有效计算机,打印服务器名称是什么并不重要。

0 投票
1 回答
2020 浏览

wpf - System.Printing.PrintQueue QueueStatus 未更新

有没有办法更新PrintQueue对象中包含的打印队列状态信息?

我尝试在PrintQueue对象上调用Refresh ,但这并没有真正做任何事情。例如,我已经关闭了打印机并且控制面板正确地将打印机显示为“离线”,但是QueueStatus属性以及 IsOffline 属性并没有反映出这一点——无论我在两者上调用了多少次 Refresh有问题的PrintServerPrintQueue

我已经看到了如何使用 WMI 查询获取状态信息的示例,但我想知道 - 因为这些属性在PrintQueue对象上可用 - 是否有任何方法可以使用它们。

0 投票
2 回答
1654 浏览

c# - .net 4 的复杂打印任务支持

我一直在寻找允许将文档(pdf、txt、doc 等)发送到网络打印机的工具。

我知道 PrintDocument,Graphics 将文本打印到打印机。我正在寻找的是实现它的简单且噪音更低的解决方案

IE

是否有任何开源或第 3 方工具可用于简化 dotnet 4.. winform/wpf 中的打印。或任何实现它的想法。

编辑 理想情况下,我想在服务器上安装此打印应用程序,然后按要求在网络打印机上完成打印请求。

0 投票
2 回答
2252 浏览

c# - 将 PaperKind 转换为 PageMediaSizeName

我手动将 PaperKind 转换为 PageMediaSizeName,如下所示:

但是有人对如何做到这一点有更好的想法吗?我使用旧的表单打印对话框来获取/设置打印机设置,但想要打印 WPF FixedDocument 并且需要知道 PrintTicket 的媒体。

0 投票
1 回答
6703 浏览

.net - 在 .NET 中使用自定义边距打印

我正在使用 vb.Net 和标准 .NET 打印例程通过 Dymo 打印机打印标签,但我的应用程序必须支持任何类型的标签打印机。因为 dymo 驱动程序在控制面板中没有可访问的边距,并且无论如何我的大多数用户都限制了控制面板,所以我正在使用应用程序设置页边距。

我使用应用程序中设置的边距替换 PrintDocument 中的边距,这很好,但我也有一些代码用于根据可打印区域的宽度计算文本大小和格式。我永远无法让可打印区域改变大小?边距设置所做的就是根据上下边距将整个Graphic向下和向右分流,图形对象中的可打印区域和VisibleClipBounds永远不会改变?发生这种情况时,文本只会从页面的右侧和底部流出,因此它根本不会遵守右侧和底部边距。

这是正常行为吗?我是否必须在应用程序中进行更多处理才能根据我的边距和初始页面大小自行计算可打印区域?


解决了。我的例程只是使用图形对象,而不是打印事件的完整事件参数。

print 事件包含在MarginBounds应用边距后返回大小为矩形的属性,因此可以完美运行。

0 投票
1 回答
3351 浏览

c# - C# 批量绘图应用程序(PrintServer 和 PrintQueue 问题)

我有一个需要帮助的问题。对于我当前的项目,我需要制作一个 Batch Plot 应用程序。该应用程序将有大约 2000 个需要打印的 AutoCAD 图纸。

该应用程序需要 5 台打印机,每种格式 1 台,从 A4 到 A0。到目前为止还没有问题。

现在我们都明白了,我们不能同时排队 2000 张图纸而没有某种麻烦。我在网上进行了研究,并找到了查看当前打印机队列的方法。使用PrintServer和 PrintQueue。

这是问题开始的地方。首先,我无法找到我需要的网络打印机。打印机位于以下网络地址:192.168.0.14 (\vps01w2k8)。

按照 MSDN 的指南:

这没有给我任何打印机。尝试 LocalPrintServer (或者只是 PrintServer 没有传递任何参数)。给我我的本地打印机(显然)而不是我的网络打印机。

我的下一步是找到一种方法来查找我安装的所有打印机,using System.Drawing.Printing;而不是using System.Printing;.

这个简单的代码为我提供了我拥有的所有打印机,包括联网的打印机。但是,现在我被困在 .NET 2.0 和 3.0(及更高版本)之间。PrinterSettings 和 PrintServer/PrintQueue 类没有连接。

最后,我尝试使用WMI 方法访问打印机队列。查询给我结果的 Win32_PrintJob。不幸的是,这些伴随着 10 秒的锁定来检索这些结果。

我没主意了。我正在寻找 PrintServer 的修复程序以正确返回我的联网打印机,或者寻找任何建议来使用 PrinterSettings 类进行批量绘图的类似技术。

提前致谢,

乔迪

0 投票
2 回答
1911 浏览

python - 使用win32和python直接打印时隐藏文本文件的页眉和页脚

使用此代码直接打印到文本文件时,我被困在这里

它总是打印页眉“datafile.txt”和页脚“Page1”。在连续表格纸上打印时,我想隐藏或删除它。我不想安装其他第三方软件。请帮我。谢谢。

0 投票
1 回答
2046 浏览

apache-flex - 如何使用 mx PrintDataGrid 打印 flex spark datagrid?或者有没有其他方法可以在不使用 mx PrintDataGrid 的情况下实现这一点?

这是我第一次在这里提问,因为我的问题在 adobe flex 论坛中无法回答。所以至少最后,我来这里管理它。

好吧,Flex 4.5+ 我想现在每个人都在努力,所以我问了这个问题,因为我还没有发现spark datagrid 和 mx printdatagrid 组件一起工作。

我想要实现的是在我的 spark 数据网格中打印所有数据。因此,当我进行研究时,我们使用 PrintJob 或 FlexPrintJob 类。它工作正常,但是当我需要打印多个页面时,因为我的 spark 数据网格上的数据很长,我无法以某种方式找到如何做到这一点。打印输出仅达到我的 spark 数据网格的高度。所以在我的研究中,他们以某种方式管理它以使用 mx:PrintDataGrid 组件。但遗憾的是,他们也使用 mx:DataGrid 做到了这一点。现在我的问题来了 -如何使用 mx:PrintDataGrid 和 s:DataGrid

所以拜托,这里有人可以帮我吗?如果无法将 spark datagrid 列转换为 mx datagrid 列,有没有办法可以使用多页打印 spark datagrid 上的所有数据?

提前非常感谢

-泰德

0 投票
1 回答
68 浏览

c# - 试图将我要发送到 printPreview 的文档的文本放在前面?

我尝试使用事件PrintPageEventHandler将文本放在即将发送到 PrintPreview 的文档上。使用此代码:

然后我使用代码:

这样做时,文本在文档后面结束。我猜它是因为在System.Printing在打印区域上绘制文档的其余部分之前触发了事件。如果我想要可打印文档前面的文本,有人有什么建议吗?

0 投票
2 回答
1203 浏览

c# - 在 C# 中使用 Windows 窗体进行批量打印

我想创建一个 Windows 窗体应用程序,它将位于我们的本地服务器上,并每隔 30 分钟将发票打印到网络打印机。

有人可以确认您绝对不能使用控制台应用程序进行打印(发票将包括徽标图像等)。我问的原因是,当不需要一个 GUI 时,拥有一个 GUI 似乎毫无意义。如果可以的话,一个让我前进的简单资源会很棒。

此外,我似乎无法找到一个易于遵循的关于 .net 打印基础(定位数据等)的教程。整个概念根本没有下沉的那一刻!