Druckvorschau wie in Word



  • Gibt es eine Komponente, mit der man einen beliebigen Text, verschiedene Fonts, Größen usw. auf eine Fläche zeichnet (oder so ähnlich) und sich das dann - in Abhängigkeit vom verwendeten Druckertreiber des Systems - als Word-vergleichbare Druckvorschau ausgeben lassen kann?
    So wie ich das sehe, ist der QuickReport doch dafür nicht allzu geeignet.



  • üblicherweise doch der Quickreport



  • QuickReport ist ´ne Krücke. Ich verwende für Vorschau und Druck List & Label. L&L hat einfache VCL-Komponenten, lässt sich relativ leicht ansteuern und ist auch bei großen Datenmengen super schnell.

    OK, hier der Link zur Website von List & Label: http://www.combit.net/reporting/page609.aspx



  • Da diese nicht regulär dabei sind, wäre ein Link nicht schlecht



  • Kann mir jemand ein Beispiel für eine Druckvorschau aus einen RichEdit geben? Komme damit noch nicht klar.



  • Womit kommst du nicht klar?

    Mit

    - dem Quickreport?
    - den empfohlenen zusätzlichen Komponenten?
    - ??



  • Achso ja, mit dem List&Label meine ich.



  • Hi,

    RichEdit1->Print(""); //mehr dazu in der Borland-Hilfe
    

    In Examples\Apps\RichEdit
    gibt es ein Beispiel Projekt.

    Grüsse



  • Was könnte

    RichEdit1->Print("");

    "mit dem List&Label meine ich." und einer Druckvorschau

    nun gemein haben?

    Zumal die PRint-Methode das Ding "irgendwo" hin klatscht, und eine gewünschte Druckvorschau nicht realisiert?

    @druki

    Da es sich um kommerzielle Komponenten handelt, die nicht jeder hat, wird hier kaum einer was dazu sagen können. Kann dir der Support nciht weiterhelfen, gibt es dort ein Forum, kann man beim Support Beispiele bekommen?



  • Hi,

    Achso die Druckvorschau 🙄 sorry
    so könnte es auch fuktionieren:

    void Ttext::rtf_rect_back(int x1, int y1, int x2, int y2, TCanvas *back) 
    { 
     //x1...y2 sind die Koordinaten vom Ziel-Canvas
     //        also die linke obere Ecke sowie rechte unter Ecke von 
     //       (Paintbox->Canvas, TImage->Bitmap->Canvas .... ====== back)   
    
     TRichEdit *edi=RichEdit1; 
    
     TFormatRange fmt;      //edi Canvas Übertragung auf back vorbereiten! 
     fmt.hdc = back->Handle;  
     fmt.hdcTarget = fmt.hdc; 
     fmt.rc = Rect(
                   x1*1440/this->PixelsPerInch, //rect needs to be specified 
                   y1*1440/this->PixelsPerInch, //in twips (1/1440 inch) as unit 
                   x2*1440/this->PixelsPerInch, //erst inch in pixel (oder so) 
                   y2*1440/this->PixelsPerInch); 
     fmt.rcPage = fmt.rc; 
     fmt.chrg.cpMin = 0;                       //vom anfang 
     fmt.chrg.cpMax = edi->GetTextLen();       //bis ende (kompletter Text bitte) 
    
     edi->Perform(EM_FORMATRANGE,1,int(&fmt)); //mit 1,fmt) Canvas übertragen! 
     edi->Perform(EM_FORMATRANGE,0,0);         //mit 0,0) Hintergrund Buffer deleten!! 
    }//---------------------------------------------------------------------------
    

    Muss eigentlich auch funktionieren.

    Grüsse



  • Wie kann ich dem QRPreview1 den inhalt aus meinem RichEdit übergeben???


Log in to reply