![]() |
TPrintpreview / sdPDF Frage wegen Fehler
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich teste gerade diese Komponente Ohne Erfahrung mit der Sache:? Ich lege mein Bild in Printpreview einfach so:
Delphi-Quellcode:
Das Bild erscheint nun in Printpreview Form
procedure TForm1.Button1Click(Sender: TObject);
var Rect1: TRect; begin with Form2.PrintPreview do begin BeginDoc; try Rect1 := Rect(40,40, Image1.width*40, Image1.Height*40); Canvas.StretchDraw(Rect1, Image1.Picture.Graphic); finally EndDoc; end; end; Form2.Show; // preview Form end; Nun möchte ich das Bild als PDF speichern, indem Ich auf PDF Symbole in Preview Form Klicke Preview unit wo Fehler erscheint :
Delphi-Quellcode:
...
procedure TPrintPreview.SaveAsPDF(const FileName: String); var PageNo: Integer; {$IFDEF SYNOPSE} pdf: TPdfDocument; {$ELSE} AnyPageRendered: Boolean; {$ENDIF} begin {$IFDEF SYNOPSE} pdf := TPdfDocument.Create; try ChangeState(psSavingPDF); try pdf.Info.CreationDate := Now; pdf.Info.Creator := PDFDocumentInfo.Creator; pdf.Info.Author := PDFDocumentInfo.Author; pdf.Info.Subject := PDFDocumentInfo.Subject; pdf.Info.Title := PDFDocumentInfo.Title; pdf.DefaultPageWidth := ConvertX(PaperWidth, Units, mmPoints); pdf.DefaultPageHeight := ConvertY(PaperHeight, Units, mmPoints); pdf.NewDoc; DoProgress(0, TotalPages); for PageNo := 1 to TotalPages do begin case DoPageProcessing(PageNo) of pcAccept: begin pdf.AddPage; pdf.Canvas.RenderMetaFile(Pages[PageNo]); end; pcCancellAll: Exit; end; DoProgress(PageNo, TotalPages); end; pdf.SaveToFile(FileName); finally ChangeState(psReady); end; finally pdf.Free; end; {$ELSE} if dsPDF.Exists then begin ChangeState(psSavingPDF); try dsPDF.BeginDoc(AnsiString(FileName)); try dsPDF.SetDocumentInfoEx(PDFDocumentInfo); AnyPageRendered := False; DoProgress(0, TotalPages); for PageNo := 1 to TotalPages do begin case DoPageProcessing(PageNo) of pcAccept: begin if AnyPageRendered then dsPDF.NewPage; dsPDF.SetPage(PaperType, Orientation, ConvertX(PaperWidth, Units, mmHiMetric), ConvertY(PaperHeight, Units, mmHiMetric)); dsPDF.RenderMetaFile(Pages[PageNo]); AnyPageRendered := True; end; pcCancellAll: Exit; end; DoProgress(PageNo, TotalPages); end; finally dsPDF.EndDoc; // Fehler wird hier markiert end; finally ChangeState(psReady); end; end else raise EPDFLibraryError.Create(SdsPDFError); {$ENDIF} end; |
AW: TPrintpreview / sdPDF Frage wegen Fehler
Er kann wohl die Datei nicht erzeugen. Woran das liegt, musst Du selbst herausfinden, möglicherweise ein Layer 8-Error :mrgreen:
|
AW: TPrintpreview / sdPDF Frage wegen Fehler
Das Liegt nicht an dsPDF selbe sondern an meinen Code, wie ich das Bild in Printpreview lade
Ich teste das Demo von dem Autor ohne Änderung. Ich wollte nur mein eignes Bild als PDF speichern und nicht das Bild von dem Demo |
AW: TPrintpreview / sdPDF Frage wegen Fehler
Ich sehe dort aber keinen Anhaltspunkt für dein Bild
|
AW: TPrintpreview / sdPDF Frage wegen Fehler
Nun wäre interessant zu wissen, was in FileName steht.
|
AW: TPrintpreview / sdPDF Frage wegen Fehler
Hast Du Dir diese zusätzlichen pdf-Komponenten heruntergeladen und zugänglich gemacht.
Ggf den Schalter für SYNOPSE ein- oder ausgeschaltet? [EDIT] Nee, das wird es nicht sein. Er kann die Datei wohl nicht schreiben. |
AW: TPrintpreview / sdPDF Frage wegen Fehler
Das Problem lag wie ich gedacht habe, an die Methode, wie ich das Bild in Printpreview Form lade
Nun verwende ich die Printpreview Funktion :
Delphi-Quellcode:
Dann erscheint keine Fehlermeldung
procedure TForm2.DrawImageOnlyPage;
var PR: TRect; begin with PrintPreview do begin PR := PageBoundsAfterMargin; ... PaintGraphicEx(PR, Form1.Image1.Picture.Graphic, True, False, True); end; end; |
AW: TPrintpreview / sdPDF Frage wegen Fehler
Richtig, für Bitmaps usw brauchst Du dies PaintGraphicEx, sonst kannst Du aber das Canvas von Printpreview einfach benutzen. Ich schreibe da z.B. direkt mit Textout drauf, Linien gehen auch.
|
AW: TPrintpreview / sdPDF Frage wegen Fehler
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz