2017-06-15 68 views
1

我有一个位图对象位图的决议,我想用打印卡西欧IT 9000手持终端我如何可以设置紧凑的框架

我可以打印位图,但由于某种原因(我们之所以使用Compact Framework中)它在不同的设备上扩展。我在某些测试程序中发现了一个“垂直分辨率”设置,它修复了这个问题,但我找不到如何使用这个值。

互联网告诉我使用

Bitmap.SetResolution

功能,但SetResolution并不在Compact Framework的3.5存在。

我发现的另一个解决方法是调整位图的大小,但我们的原始位图在内存中创建一个4 MB的对象。我们正处于内存使用的限制,所以我无法分配另一个Bitmap对象,而不会发生“内存不足”设备一直抛出。

所以我目前的选择我可以想到的是, 1以某种方式设置位图分辨率或 2调整位图的大小而不分配另一个。

是否有任何其他方式做到这一点,或者我如何使用垂直分辨率设置

回答

1

的问题是,你如何打印的位图。 Windows CE 5.x或Windows Mobile 6.x设备没有真正的打印机驱动程序。因此,您需要使用打印机的本地打印机语言直接打印到打印机端口,或使用PrinterCE等打印机驱动程序和库。有关如何打印的信息在此处不存在。

要使用流缩放位图,可以使用openNetCF的库(ImageHelper类,参见Problems using ImageHelper to resize images on OpenNetCF with HTC T3333的示例)。

由于没有真正的驱动程序,缩放大部分都是由应用程序完成的,除了可以缩放自己的打印机语言(即PostScript)之外。在移动世界和移动打印机中,打印的位图大小主要取决于打印机的分辨率。因此,如果位图是250x250像素并以100dpi的打印分辨率“打印”到打印机(使用本地打印机语言,例如ESC/P),则位图将以2x2英寸打印。如果打印机的原始分辨率为200dpi,则打印的位图将为〜1x1英寸。你或多或少地用位图逐个设置每个打印点。这些打印机不关心像TIFF或JPG等位图格式可用的位图分辨率值。例如,这些分辨率值表示位图的分辨率为150dpi。如果以该分辨率打印,位图将以“原始”尺寸出来。如果位图在150dpi时具有300x300像素,则其原始尺寸为〜2x2英寸。但是,如果它本身打印在笨哑的300dpi打印机上(不支持缩放),它将以1x1英寸的速度打印。

相关问题