Ver Mensaje Individual
  #8  
Antiguo 28-01-2005
jlmelida jlmelida is offline
Miembro
 
Registrado: ene 2005
Ubicación: Alicante, España
Posts: 42
Reputación: 0
jlmelida Va por buen camino
Mas complejos son los cambios a realizar en la unidad QRPrntr.pas, pero también secillos.


Código PHP:
type
  
All the known paper sizes }
  
TQRPaperSize = (Default,
                  
Letter,
                  
LetterSmall,
                  
Tabloid,
                  
Ledger,
                  
Legal,
                  
Statement,
                  
Executive,
                  
A3,
                  
A4,
                  
A4Small,
                  
A5,
                  
B4,
                  
B5,
                  
Folio,
                  
Quarto,
                  
qr10X14,
                  
qr11X17,
                  
Note,
                  
Env9,
                  
Env10,
                  
Env11,
                  
Env12,
                  
Env14,
                  
CSheet,
                  
DSheet,
                  
ESheet,
                  
Cheque// Este es el nuevo tipo definido
                  
Custom); 

Posteriormente definimos esta constante:

Código PHP:
const
.
.
dmpaper_cheque 123// Nuestro codigo para nuestro papel 
Ahora definimos las dimensiones:
Código PHP:
 
   cQRPaperSizeMetrics 
: array[Letter..Cheque0..1of extended =
      ((
215.9279.4), { Letter }
       (
215.9279.4), { Letter small }
       (
279.4431.8), { Tabloid }
       (
431.8279.4), { Ledger }
       (
215.9355.6), { Legal }
       (
139.7215.9), { Statement }
       (
190.5254.0), { Executive }
       (
297.0420.0), { A3 }
       (
210.0297.0), { A4 }
       (
210.0297.0), { A4 small }
       (
148.0210.0), { A5 }
       (
250.0354.0), { B4 }
       (
182.0257.0), { B5 }
       (
215.9330.2), { Folio }
       (
215.0275.0), { Quarto }
       (
254.0355.6), { 10X14 }
       (
279.4431.8), { 11X17 }
       (
215.9279.0), { Note }
       (
98.43225.4), { Envelope #9 }
       
(104.8241.3), { Envelope #10 }
       
(114.3263.5), { Envelope #11 }
       
(101.6279.4), { Envelope #12 - might be wrong !! }
       
(127.0292.1), { Envelope #14 }
       
(100.0100.0), { CSheet }
       (
100.0100.0), { DSheet }
       (
100.0100.0), { ESheet }
       (
175.0,  76.2)  { Cheque // Esta es nuestra definición
        
); 
Por último definimos el array para trasladar los tamaños del papel al codigo de la impresora


Código PHP:
   cQRPaperTranslate : array[Default..Customof integer =
       (
0,
       
dmpaper_Letter,
       
dmpaper_LetterSmall,
       
dmpaper_Tabloid,
       
dmpaper_Ledger,
       
dmpaper_Legal,
       
dmpaper_Statement,
       
dmpaper_Executive,
       
dmpaper_A3,
       
dmpaper_A4,
       
dmpaper_A4Small,
       
dmpaper_A5,
       
dmpaper_B4,
       
dmpaper_B5,
       
dmpaper_Folio,
       
dmpaper_Quarto,
       
dmpaper_10X14,
       
dmpaper_11X17,
       
dmpaper_Note,
       
dmpaper_Env_9,
       
dmpaper_Env_10,
       
dmpaper_Env_11,
       
dmpaper_Env_12,
       
dmpaper_Env_14,
       
dmpaper_CSheet,
       
dmpaper_DSheet,
       
dmpaper_ESheet,
       
dmpaper_cheque, { obtenemos este valormirando en el codigo de la impresora 
       $
100); 
Ya solo nos falta retocar la función :

Código PHP:
function QRPaperName(Size TQRPaperSize) : string;
const
  
Names : array[Default..Customof string = (
   
SqrPaperSize0SqrPaperSize1SqrPaperSize2SqrPaperSize3,
   
SqrPaperSize4SqrPaperSize5SqrPaperSize6SqrPaperSize7,
   
SqrPaperSize8SqrPaperSize9SqrPaperSize10SqrPaperSize11,
   
SqrPaperSize12SqrPaperSize13SqrPaperSize14SqrPaperSize15,
   
SqrPaperSize16SqrPaperSize17SqrPaperSize18SqrPaperSize19,
   
SqrPaperSize20SqrPaperSize21SqrPaperSize22SqrPaperSize23,
   
SqrPaperSize24SqrPaperSize25SqrPaperSize26SqrPaperSize27SqrPaperSize28 Esto eslo nuevo} );
 
begin
  Result 
:= Names[Size];
end

Recompilamos la libreria y la instalamos como de costumbre.
Responder Con Cita