comment imprimer avec C++ Builder - Programmation
Marsh Posté le 19-07-2001 à 18:03:52
C'est normal, si tu imprime en 300 dpi ( 300 point par pouce) qui est ne général la résolution de l'imprimante, ton dessin en de 600 point fait 2 pouces ~= 5cm
Utilise la fonction TCustomForm::Print()
Marsh Posté le 20-07-2001 à 22:37:22
Et y'aurrait pas moyen d'utiliser un QuickReport (sans pour autant utiliser un BDD) ?
Marsh Posté le 19-07-2001 à 17:46:02
J'utilise C++ Builder pour développer une appli, mais je ne réussit pas à faire une impression correcte :
je voudrait imprimer le contenu d'un objet de type TPageControl alors j'ai fait un joli copier-coller de l'exemple donné dans l'aide (cf ci-dessous) mais les impressions ne mesure gère plus de 5 cm x 5 cm alors que la taille du contrôle est de l'ordre de 600 x 600. Conclusion mon impression est illisible.
Si vous avez la solution, n'hésitez pas ==> grosminet@mageos.com Merci.
voici l'exemple de l'aide de C++ Builder :
Cet exemple utilise une fiche contenant un bouton, un contrôle pages et une boîte de dialogue d'impression. Lorsque l'utilisateur clique sur le bouton, la boîte de dialogue d'impression est affichée. L'utilisateur peut sélectionner n'importe quel sous-ensemble de pages dans le contrôle de pages pour l'impression. Les pages sélectionnées sont alors imprimées.
Pour exécuter cet ensemble, vous devez inclure <Printers.hpp> dans votre fichier unité.
// ----------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
PrintDialog1->Options.Clear();
PrintDialog1->Options << poPageNums << poSelection;
PrintDialog1->FromPage = 1;
PrintDialog1->MinPage = 1;
PrintDialog1->ToPage = PageControl1->PageCount;
PrintDialog1->MaxPage = PageControl1->PageCount;
if (PrintDialog1->Execute())
{
int Start, Stop;
// détermine l'intervalle souhaité pour l'impression
switch (PrintDialog1->PrintRange)
{
case prSelection:
Start = PageControl1->ActivePage->PageIndex;
Stop = Start;
break;
case prPageNums:
Start = PrintDialog1->FromPage - 1;
Stop = PrintDialog1->ToPage - 1;
break;
default: // prAllPages
Start = PrintDialog1->MinPage - 1;
Stop = PrintDialog1->MaxPage - 1;
break;
}
// imprime les pages
Printer()->BeginDoc();
for (int i = Start; i <= Stop; i++)
{
PageControl1->Pages[i]->PaintTo(Printer()->Handle, 10, 10);
if (i != Stop)
Printer()->NewPage();
}
Printer()->EndDoc();
}
}
// ----------------------------------------------------------------
[edtdd]--Message édité par grrosminet--[/edtdd]