2017-06-15 5 views
1

ich ein Bitmap-Objekt, das ich will Casio drucken mit IT 9000 Handterminal (Der Grund, warum wir Compact Framework verwenden)Wie kann ich Bitmap-Auflösung im kompakten Rahmen

ich die Bitmap drucken kann aber aus irgendeinem Grunde Es skaliert auf verschiedenen Geräten. Ich habe bei einigen Testprogrammen die Einstellung 'Vertikale Auflösung' gefunden, die das Problem behebt, aber ich konnte den Wert nicht finden.

Internet sagt mir

Bitmap.SetResolution

Funktion zu verwenden, aber SetResolution existiert nicht auf Compact Framework 3.5.

Eine andere Problemumgehung, die ich gefunden habe, ist die Größe der Bitmap ändern, aber unsere ursprüngliche Bitmap erstellt ein 4 MB-Objekt im Speicher. Wir sind an der Grenze der Speichernutzung, so dass ich kein anderes Bitmap-Objekt zuweisen kann, ohne dass das "Out of Memory Exception" -Element konsistent ausgelöst wird.

Also meine aktuellen Optionen, die ich mir vorstellen kann, sind 1 Bitmap-Auflösung irgendwie setzen oder 2 Größe der Bitmap ohne Zuordnung ein anderes.

Gibt es eine andere Möglichkeit, dies zu tun, oder wie kann ich die vertikale Auflösung verwenden

Antwort

1

Die Frage Einstellung ist, wie Sie die Bitmap drucken. Es gibt keine echten Druckertreiber mit Windows CE 5.x oder Windows Mobile 6.x-Geräten. Sie müssen entweder direkt über die native Druckersprache des Druckers an den Druckeranschluss drucken oder Sie verwenden eine Art Druckertreiber und eine Bibliothek wie PrinterCE. Die Informationen zum Drucken fehlen hier.

Um eine Bitmap mit einem Stream zu skalieren, können Sie die Bibliotheken von openNetCF verwenden (ImageHelper-Klasse, siehe Problems using ImageHelper to resize images on OpenNetCF with HTC T3333 für ein Beispiel).

Da es keine echten Treiber gibt, wird die Skalierung am besten von der Anwendung durchgeführt, außer für Druckersprachen, die sich skalieren können (zB PostScript). In der mobilen Welt und bei mobilen Druckern hängt die gedruckte Bitmap-Größe hauptsächlich von der Druckerauflösung ab. Wenn also eine Bitmap 250x250 Pixel groß ist und mit 100 dpi Druckauflösung auf einen Drucker (mit nativer Druckersprache, z. B. ESC/P) "gedruckt" wird, wird die Bitmap mit 2x2 Zoll gedruckt. Wenn der Drucker eine native Auflösung von 200 dpi hat, beträgt die gedruckte Bitmap ~ 1 x 1 Zoll. Sie setzen mehr oder weniger jeden Druckpunkt mit der Bitmap nacheinander. Solche Drucker interessieren sich nicht für einen Bitmap-Auflösungswert, wie er bei einigen Bitmap-Formaten wie TIFF oder JPG zur Verfügung steht. Diese Auflösungswerte sagen beispielsweise, dass die Bitmap eine Auflösung von 150 dpi aufweist. Wenn mit dieser Auflösung gedruckt wird, wird die Bitmap in der Originalgröße ausgegeben. Wenn die Bitmap 300x300 Pixel bei 150 dpi hat, ist die Originalgröße ~ 2x2 Zoll. Aber wenn das nativ auf einem dummen 300dpi-Drucker (keine Skalierungsunterstützung) gedruckt wird, wird es bei 1x1 Zoll gedruckt.

Verwandte Themen