问题标签 [printer-properties]

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 投票
3 回答
1471 浏览

c# - 查找打印机的默认双面打印选项

对于给定的打印文档PrintSettings,该Duplex值可能(并且可能)设置为Duplex.Default.

我如何确定这是否意味着所选打印机将或不会进行双面打印?

如何找到已安装打印机支持的行为的默认值?

0 投票
0 回答
2830 浏览

windows - ResetDC() 什么都不做(用于 Windows 的打印后台处理程序 API)

我已经为Windows 的 print spooler APIs编写了包装类,这些类主要工作......

唯一不起作用的是应用打印机设置

首先,我调用DocumentProperties()以成功获取和使用打印机设置。

然后我尝试使用ResetDC()应用这些设置,但没有任何反应。该函数接受一个有效句柄,并返回相同的有效句柄,这意味着它应该已经应用了设置。但是,似乎什么也没发生:打印输出不受打印机设置更改的影响。

我什至尝试将SetPrinter()level 9一起使用,但也没有效果。

这项任务变得相当紧迫。有什么建议么?

使用 Delphi XE2,Windows 7 64 位。


好的,跳过所有大型 OO 包装器。这是一个精简的程序版本。(请注意,您必须为其提供 XPS 文件。)

正在应用打印机设置更改(使用 Info2_Apply() 时)并且可以在 MS Word 中看到。他们只是在打印时被忽略。这就是奥秘。

我已经尝试了很多东西,以至于我已经没有选择了。帮助将......非常感谢。


我终于没有选择了。

这是我的测试代码的最后一个版本。它是自给自足的,包含的功能比你需要的多——这是拼命尝试我能想到的任何东西的结果。

如果其他人可以使打印机设置正常工作,请告诉我吗?

使用打印机名称填充组合框:

打印程序(我的测试代码):

0 投票
1 回答
8846 浏览

c# - 配置虚拟打印机端口重定向

我需要配置一个虚拟打印机端口以通过 c# 代码将其重定向到外部程序(.exe 文件)。现在我可以安装一个带有一些自定义的虚拟端口(感谢bghh代码)。附图说明了要求。任何帮助将不胜感激。

手动配置虚拟打印机端口重定向

0 投票
1 回答
3697 浏览

windows - 默认打印机设置被忽略

使用 Windows Print Spooler API,我们可以打印出 XPS 文件。

问题是打印后台处理程序忽略默认打印机设置

(我们已经放弃尝试应用打印机设置。默认打印机设置就足够了。)

例如......无论控制面板中的设置如何,打印输出始终以彩色打印,每页一张纸:黑白/彩色,双面/非双面,每张纸多页/单页每张纸。

MS Word 和 Adob​​e 等其他应用程序遵循默认打印机设置。

我们使用的是 Delphi XE2 和 Windows 7 64 位。

此测试代码是自包含的,因此您可以将其粘贴到其中进行测试...

使用打印机名称填充组合框:

打印程序:

0 投票
0 回答
511 浏览

windows - 以编程方式访问打印机属性(剩余纸张数)

我有一个可以拍照和打印的照相亭。自助服务终端在早上自动启动,晚上使用 Windows 的计划任务自动关闭。现在我正在尝试向信息亭系统添加电子邮件警报,以便当打印机的纸张不足时,将发送一封电子邮件通知支持人员放置新的纸卷。目前,我正在使用一个 hack,它通过使用 AutoHotKey 从打印机实用程序中获取文本来从打印机实用程序中检索剩余的纸张计数(参见打印机实用程序的图像,它是一个 500kb 的单个可执行文件)。我还与打印机供应商核实过,但他们没有任何我可以以编程方式调用的库。

具有剩余纸张计数的打印机实用程序

我想知道的是,是否有办法通过 Windows 下的通用打印 API 检索打印机属性,或者通过使用 USB Sniffer 复制从实用程序发送的命令的任何方式,我尝试嗅探连接打印机的 USB 端口使用USBSnoopUSBlyzer但还不知道如何调用该命令。有任何想法吗?

更新 1:这是我用来从窗口中获取文本的自动热键代码。

更新 2:尝试了WinAPIOverride32,但它没有显示任何 DLL 调用。

0 投票
2 回答
3352 浏览

c# - 如何在 C# 中获取唯一/不同的打印机型号名称?

我正在尝试做的事情:

我正在创建计算机上安装的所有打印机的数据库。

使用PrinterSetting.PrinterNamePrinterSettings.InstalledPrinters我得到PrinterName.

我也尝试过winapi Win32_Printer,但这和我上面的代码有问题。

问题

问题是可以使用不同的名称安装单个打印机,例如 HP LasetJet 1020、HP LasetJet 1020(副本 1)、HP LasetJet 1020(副本 2)等。打印机名称是用户定义的,可以是任何名称。甚至可能一台打印机可以安装2个这样不同的名称,它们的名称之间没有相似之处。

这就是为什么我认为即使一台打印机以不同的名称安装,打印机型号名称也应该是唯一的。

问题:

如何提取该打印机模式名称?或者可能是 Win_32 中唯一的、用户不可编辑的且可用于识别打印机的任何其他属性。

或者

可能是注册表可以对此有所帮助。如果此模型信息在注册表中(很可能会在)在哪里可以找到?

0 投票
1 回答
2344 浏览

java - 使用 Java,如何让用户在不使用打印对话框的情况下设置打印机选项?

我正在开发一个应用程序作为大学项目。它(几乎)完整,大多数功能都可以正常工作。

该应用程序记录访客信息并为每位访客打印访客证。访客通过用户友好的界面将他们的信息输入系统,完成后会自动打印访客证,并将他们的详细信息保存到数据库中。

这一切都很好!我们已经得到了我们的成绩,我们得到了最高分,再高兴不过了!!

但是,管理屏幕上的打印机选项对于标签打印机来说非常有限。在管理屏幕上,您可以搜索数据库并使用典型的打印对话框打印结果,或者您可以将数据保存到逗号分隔的 CSV 文件中。

都好!但是由于标签打印机仅从程序的前端运行,没有可用的打印对话框,我需要在管理屏幕上提供对打印机选项的访问权限,然后保存它们以供以后在标签打印机运行时使用。目前我们可以选择用于打印访客证卡的打印机,我们可以从管理页面设置和保存页面设置信息 - 但我不知道如何访问打印机设置在不使用打印对话框的情况下向管理员提供访问权限的选项。

任何建议将不胜感激。

0 投票
1 回答
41 浏览

c# - BaseDevModeType:这两个枚举有什么区别?

BaseDevModeType 定义了两个枚举:

  1. 打印机默认。
  2. 用户默认值。

我了解 devmode 基本结构是根据枚举填充的。

但是,这两种开发模式有何不同?

每个开发模式会有哪些不同的示例?

0 投票
1 回答
661 浏览

c# - Crystal Report PrintToPrint方法安装软件后未连接打印机挂机?

在我的项目方法中,水晶报表的 PrintToPrint 工作正常,但是在打印机未连接到机器时安装软件后,此方法使我的软件进程挂起。谁能帮我解决这个问题?

0 投票
0 回答
1861 浏览

wpf - 在 WPF 中以超过 96 dpi 打印

让我解释一下这个问题,我陷入了困境

如果我从虚拟打印机(如 PDF Creator)或任何允许更改此设置的打印机的打印首选项对话框中更改 dpi 设置,然后设置如下代码所示的断点:

我可以看到属性 printDialog.PrintTicket.PageResolution.X; 和 printDialog.PrintTicket.PageResolution.Y 正确更改,而 printDialog.PrintTicket.PageMediaSize.Width 和 printDialog.PrintTicket.PageMediaSize.Height 尽管打印机分辨率发生变化,但不会改变......纵向模式下的 A4 纸将始终具有 PageMediaSize.Height = 1122.5196850393702 和 PageMediaSize.Width = 793.70078740157476 无论之前设置了哪个分辨率.....对于 WPF,这些尺寸的单位大小设置为 1/96 英寸,但什么时候在屏幕上可以,因为默认屏幕分辨率是 96 dpi打印机的另一面是错误的,因为它具有不同的分辨率,

最后一点,在我的具体情况下,我不能使用 RenderTargetBitmap 然后调整所有大小以匹配打印机的纸张高度和宽度设置,因为我正在打印高清条形码图像,它会导致图像重新缩放,导致条形码在最终纸张上不可读,因为我创建它的目的是使用 300dpi 的分辨率进行打印,如果不调整大小将导致超出范围,因为 WPF 告诉我打印纸尺寸的单位尺寸错误(1/96 英寸),尽管之前设置了真正的 dpi打印机

希望已经足够澄清问题,

提前致谢,

戴夫