PDA

View Full Version : [Borland C++] stampa in PDF (e non solo)


Brigno
24-07-2006, 09:07
Utilizzando la libreria Printers.hpp riesco a stampare delle pagine grafiche ma non con tutte le stampanti

Con alcune funziona:
HP 4P, HP 5P, Phaser 8400 (LAN)

ma con altre NO :muro: :
Acrobat Distiller, NRG D422 (LAN), NRG D420 (LAN)
mi stampa le pagine vuote ! :cry: :cry:

if (PrintDialog1->Execute())
{
TRect r=Rect(left,top,right,bottom);
Image1->Canvas->CopyMode = cmSrcCopy;
Image1->Canvas->CopyRect(r,FormMain->Canvas,r);
Image->Canvas->CopyMode = cmNotSrcCopy;
Image->Canvas->CopyRect(r,FormMain->Canvas,r);
TRect r2 = Rect(100,(int)(Prntr->PageHeight/20),Prntr->PageWidth-100,(int)(Prntr->PageHeight*9/20));
FormMain->Canvas->CopyMode = cmSrcCopy;
FormMain->Canvas->CopyRect(r,Image1->Canvas,r);
Prntr->BeginDoc();
Prntr->Canvas->CopyRect(r2,Image->Canvas,r);
Prntr->EndDoc();
}

Qualche idea ? dove sbaglio ? devo aggiungere qualche cosa ?

Brigno
25-07-2006, 06:14
Aiutoooooo :help:

Mi serve qualche dritta :mc:

ilsensine
25-07-2006, 13:46
Provo...ho avuto una esperienza simile parecchi anni fa, col Delphi (usa la stessa VCL del Builder)

Avevo osservato che su alcuni driver (forse anche col Distiller, vatti a ricordare), certi parametri dell'oggetto TPrinter erano 0. Forse proprio PageWidth e PageHeight, che tu usi.

Non ho mai capito il motivo, e ora non mi sovviene il workaround che ho usato (forse ho utilizzato le dimensioni della TCanvas nella TPrinter)

Brigno
25-07-2006, 14:58
Considerando che siamo a fine luglio non posso far altro che ringraziare anticipatamente !!! :ave: :mano: :sperem:

Brigno
27-07-2006, 07:24
PageWidth e PageHeight durante il debug hanno valori alti tipo 14xxx e rotti

Cosa intendi per "forse ho utilizzato le dimensioni della TCanvas nella TPrinter" ?

Ancora grazie

ilsensine
27-07-2006, 08:34
PageWidth e PageHeight durante il debug hanno valori alti tipo 14xxx e rotti

Cosa intendi per "forse ho utilizzato le dimensioni della TCanvas nella TPrinter" ?

Anche la canvas ha le sue dimensioni, che dovrebbero coincidere con PageWidth e PageHeight.

Comunque nel mio casob avevo trovato dei valori "vitali" a 0, purtroppo non ricordo quali erano.