WPViewPDF: Seitenüberschrift drucken

  • Moin,

    ich versuche gerade eine Seitenüberschrift beim Ausdruck vom PDF-Dateien zu drucken, aber es kommt nichts!

    Quellcode:

    // z.B. für Beispiel für dynamisches Drucken von PDF'S

    procedure PrintPDF(APrinterIndex: Integer; AFileName: String; APrintTitle: String);

    var

    vForm: TForm;

    vWpViewPDF: TWPViewPDF;

    begin

    vForm := TForm.Create(nil);

    vForm.Visible := False;

    vWpViewPDF := TWPViewPDF.Create(vForm);

    vWpViewPDF.Parent := vForm;

    try

    vWpViewPDF.filename := AFileName;

    vWPViewPDF.BeginPrint(Printer.Printers[APrinterIndex]);

    vWpViewPDF.CommandStr(COMPDF_SetPrintTitle, APrintTitle); // Hierum geht's: COMPDF_SetPrintTitle !!!

    vWPViewPDF.PrintPages(1, vWpViewPDF.PageCount);

    vWPViewPDF.EndPrint;

    finally

    FreeAndNil(vWpViewPDF);

    FreeAndNil(vForm);

    end;

    end;


    Was mache ich falsch?

    ...und gibt es evtl. ein paar Delphi-DEMOs, die sich mit der Drucksteuerung beschäftigen (z.B. Umschalten auf A3-Druck, bin-Ansteuerung, in Druckbereich einpassen etc.).


    Heute habe ich Ihr Beispiel aus dem Handbuch Seite 145 (Kapitel 6.7.2) eingegeben...als Ausdruck kommt auch nur eine leere Seite!


    VG

    Bernd

  • COMPDF_SetPrintTitle muss vor BeginPrint aufgerufen werden. Es setzt aber nicht einen Titel über den Seiten sondern einzig und allein den Namen der im Druckertreiber verwendet wird.


    Wenn nicht gedruckt wird, liegt es vielleicht daran, dass das WPViewPDF (noch) nicht sichtbar ist.


    Bitte LoadFromFile verwenden, damit eine PDF geladen wird.

  • OK, nächster Versuch für eine geladene PDF eine Überschrift (HEADER) zu drucken:


    PDF: TWPViewPDF;
    ………..


    procedure TfrmMain.mnuDruckClick(Sender: TObject);

    var

    i : Integer;

    b : Boolean;

    cText : string;

    begin

    cText := 'Auftrag 4711';

    with dlgPrint do begin

    MinPage := 1;

    MaxPage := PDF.PageCount;

    FromPage := 1;

    ToPage := PDF.PageCount;

    if Execute then begin

    PDF.BeginPrint(Printer.Printers[Printer.PrinterIndex]);

    // gibt es hier PDF-Commands für das Drucken einer Überschrift Links Mittig Rechts etc. ???

    PDF.PrintPages(dlgPrint.FromPage, dlgPrint.ToPage);

    PDF.EndPrint;

    end;

    end;

    end;


    Das Beispiel funktioniert soweit, bis auf die Überschriften.

    Bitte mit kurzem Beispiel, Danke.

  • Danke für den Hinweis, aber ohne Beispiel in Delphi kann ich damit nichts anfangen...Bitte.


    In der Dokumentation stehen immer nur die Rudimentären Befehlsstrukturen der einzelnen Kommandos,

    aber wie man die sinnvoll einsetzt fehlt an allen Ecken und Enden.

  • Ein Ausschnitt aus der Demo "PDFEdit"



    Hier wird ein Editor für den stamp text verwendet, man kann den Text von oben natürlich direkt zuweisen.


    Code
    1. var StampScript : String = '@cleartext' + #13 +
    2. 'PageNo=ALL' + #13 +
    3. '115,14=Hier steht eine Kopfzeile';
    4. WPViewPDF1.CommandStrEx(  COMPDF_StampText,  StampScript, 0  );
  • OK, das funktioniert.

    Danke.

    Aber ich werde für das Drucken einer Überschrift doch wohl eher die Funktion "pdfPrintW" mit den Optionen nutzen.

    Damit kann man besser z.B. oben links den Benuzternamen, rechts das Druckdatum und am Seitenende eine eventuelle

    Seitennummerirung drucken.

    Grüße aus Hannover