我有一个位图对象,我想使用卡西欧 IT 9000 手持终端打印(我们使用紧凑型框架的原因)
我可以打印位图,但由于某种原因,它会在不同的设备上放大。我在某个测试程序中发现了解决此问题的"垂直分辨率"设置,但我找不到如何使用此值。
互联网告诉我使用
位图.设置分辨率
函数,但在紧凑框架 3.5 中不存在 SetResolution 。
我发现的另一种解决方法是调整位图的大小,但我们原始的位图会在内存中创建一个 4 MB 的对象。我们处于内存使用限制,因此我无法分配另一个位图对象,而不会持续抛出"内存不足异常"设备。
所以我目前能想到的选择是, 1 以某种方式设置位图分辨率或 2 调整位图的大小而不分配另一个。
有没有其他方法可以做到这一点,或者如何使用垂直分辨率设置
问题是,如何打印位图。Windows CE 5.x 或 Windows Mobile 6.x 设备没有真正的打印机驱动程序。因此,您需要使用打印机的本机打印机语言直接打印到打印机端口,或者使用一种打印机驱动程序和库(如 PrinterCE)。此处缺少有关如何打印的信息。
要使用流缩放位图,您可以使用 openNetCF 的库(ImageHelper 类,有关示例,请参阅 在 OpenNetCF 上使用 ImageHelper 调整图像大小的问题和 HTC T3333)。
由于没有真正的驱动程序,因此缩放大部分由应用程序完成,除了可以自行扩展的打印机语言(即PostScript)。在移动世界和移动打印机中,打印的位图大小主要取决于打印机的分辨率。因此,如果位图为 250x250 像素,并以 100dpi 的打印分辨率"打印"到打印机(使用本机打印机语言,例如 ESC/P),则位图将以 2x2 英寸打印。如果打印机的原始分辨率为 200dpi,则打印的位图将为 ~1x1 英寸。您或多或少地使用位图逐个设置每个打印点。此类打印机不关心位图分辨率值,因为某些位图格式(如 TIFF 或 JPG)可用。例如,这些分辨率值表示位图的分辨率为 150dpi。如果使用该分辨率打印,位图将以"原始"大小显示。如果位图在 150dpi 下具有 300x300 像素,则其原始大小为 ~2x2 英寸。但是,如果在本地哑 300dpi 打印机(不支持缩放)上打印,它将以 1x1 英寸打印。