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..Cheque, 0..1] of extended = ((215.9, 279.4), { Letter } (215.9, 279.4), { Letter small } (279.4, 431.8), { Tabloid } (431.8, 279.4), { Ledger } (215.9, 355.6), { Legal } (139.7, 215.9), { Statement } (190.5, 254.0), { Executive } (297.0, 420.0), { A3 } (210.0, 297.0), { A4 } (210.0, 297.0), { A4 small } (148.0, 210.0), { A5 } (250.0, 354.0), { B4 } (182.0, 257.0), { B5 } (215.9, 330.2), { Folio } (215.0, 275.0), { Quarto } (254.0, 355.6), { 10X14 } (279.4, 431.8), { 11X17 } (215.9, 279.0), { Note } (98.43, 225.4), { Envelope #9 } (104.8, 241.3), { Envelope #10 } (114.3, 263.5), { Envelope #11 } (101.6, 279.4), { Envelope #12 - might be wrong !! } (127.0, 292.1), { Envelope #14 } (100.0, 100.0), { CSheet } (100.0, 100.0), { DSheet } (100.0, 100.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..Custom] of 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 valor, mirando 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..Custom] of string = ( SqrPaperSize0, SqrPaperSize1, SqrPaperSize2, SqrPaperSize3, SqrPaperSize4, SqrPaperSize5, SqrPaperSize6, SqrPaperSize7, SqrPaperSize8, SqrPaperSize9, SqrPaperSize10, SqrPaperSize11, SqrPaperSize12, SqrPaperSize13, SqrPaperSize14, SqrPaperSize15, SqrPaperSize16, SqrPaperSize17, SqrPaperSize18, SqrPaperSize19, SqrPaperSize20, SqrPaperSize21, SqrPaperSize22, SqrPaperSize23, SqrPaperSize24, SqrPaperSize25, SqrPaperSize26, SqrPaperSize27, SqrPaperSize28 { Esto eslo nuevo} ); begin Result := Names[Size]; end;
Recompilamos la libreria y la instalamos como de costumbre.
|