Impresora
Primeramente, mi problema es que quiero cambiar el tamaño del papel de la impresora.
Hace tiempo que plantee este problema en otro hilo, y ahora después de seguir investigando encontré este link, directo del soporte técnico de Microsoft http://support.microsoft.com/default...0285#appliesto Aqui explican cómo usando la API es posible cambiar las propiedades de la impresión, pero... lo estuve trasladando a Pascal y tengo un problema: Código:
var PD: Nótese que según el soporte técnico de Microsoft, este código sirve para XP y NT, yo estoy usando XP Professional |
No tengo ni idea porque falla, pero a ver si los moderadores pueden echarle un vistazo, ya que es un tema interesante debido a que a mi me pasa con lo mismo ya que mi impresora laser no me permite definir un tamaño personalizado por estar mas abajo del minimo. Saludos y Animo.
|
Units
Las units que se están usando son:
Windows, Printers, sysutils, WinSpool |
Prueba este codigo y dime que tal, me lo paso un amigo lo que pasa es que no tengo tinta en mi impresora para probarlo.
var pcrDevice : array[0..255] of char; pcrDriver : array[0..255] of char; pcrPort : array[0..255] of char; lDMode : THandle; varPDMode : PDEVMODE; begin Printer.PrinterIndex := Printer.PrinterIndex; Printer.GetPrinter(pcrDevice, pcrDriver, pcrPort, lDMode); if (lDMode <> 0) then begin varPDMode := GlobalLock(lDMode); if (varPDMode <> nil) then begin varPDMode^.dmFields := (varPDMode^.dmFields or DM_PAPERSIZE or DM_PAPERWIDTH or DM_PAPERLENGTH); varPDMode^.dmPaperSize := DMPAPER_USER; varPDMode^.dmPaperWidth := 100; varPDMode^.dmPaperLength := 100; varPDMode^.dmFields := (varPDMode^.dmFields or DMBIN_MANUAL); varPDMode^.dmDefaultSource := DMBIN_MANUAL; GlobalUnlock(lDMode); end; end; end; |
Cambiar el ppp de una Impresora!!
Estoy haciendo una clase de impresion atraves del canvas,
y no encuentro cual es la forma de cambiar el "ppp" "puntos por pulgada" e visto que una impresora puede tener 600 o 300 por ejem. hp6620, permite seleccionar este dato "calidad de impresión" ... si se selecciona modo normal desde las propiedades imprime en 600, y si se selecciona "calidad borrador" imprimi en 300, pero como hacer esto mismo por codigo... He estado mirando PDEVMODE y no he encontrado cual de todos es... Alguna Idea? Gracias. _Willa |
La franja horaria es GMT +2. Ahora son las 14:04:31. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi