AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Druckt PowerPDF Komponente fehlerhaft?

Ein Thema von Perlsau · begonnen am 26. Mär 2012 · letzter Beitrag vom 1. Apr 2012
 
Perlsau
(Gast)

n/a Beiträge
 
#1

Druckt PowerPDF Komponente fehlerhaft?

  Alt 26. Mär 2012, 10:16
Hallo,

ich befasse mich seit einigen Tagen mit verschiedenen Möglichkeiten, aus Delphi heraus PDF-Dateien zu erzeugen, ohne einen PDF-Drucker einzusetzen. Dabei bin ich auf die Komponente PowerPDF gestoßen, die mir für mein Vorhaben passend schien.

In meinem Testprogramm verwende ich eine ListBox zum Sammeln einiger JPG-Dateien, mit denen die PDF-Datei erzeugt werden soll (siehe Bild im Anhang). In einer Scrollbox rechts im Formular befindet sich eine TPRPage, darauf ein PRLayoutPanel und auf diesem wiederum ein TPRJpegImage und unten (nicht sichtbar) ein TPRText. Wenn ich nun zum PDF-Drucken meine Listbox-Items durchgehe und einmal das dort angegebene JPG in die TPRJpegImage-Komponente lade, des weiteren den String aus der Listbox in die Komponente TPRText, entsteht ein PDF mit der richtigen Seitenanzahl, aber mit immer demselben ersten JPG-Bild. Der Text unten wiederum enthält den gewünschten String. Steht das Property SharedImage der Komponente TPRJpegImage auf FALSE, bleiben die Seiten im PDF außer der ersten ganz leer ...

Meine PDF-Druck-Methode sieht so aus:
Delphi-Quellcode:
// PDF erstellen
procedure TFormMain.Button2Click(Sender: TObject);
VAR
   i : Integer;
begin
     IF ListBox1.Count = 0 THEN EXIT;

     PReport1.BeginDoc;

     FOR i := 0 TO ListBox1.Count -1 DO
     BEGIN
          PRJpegImage1.Picture.LoadFromFile(ListBox1.Items[i]); // JPG einlesen
          PRJpegImage1.Repaint; // auffrischen
          PRText1.Text := ListBox1.Items[i]; // String einlesen
          PRText1.Repaint; // auffrischen

          PReport1.Print(PRPage1); // Seite in Report erstellen
     END;

     PReport1.EndDoc;

     IF Dialogs.MessageDlg('Erzeugte PDF-Datei mit Adobe Reader anschauen?',
                           mtConfirmation, [mbYes, mbNo], 0, mbYes) = mrYes THEN

     ShellExecute(Handle, nil, PWideChar(PReport1.FileName), nil, nil, SW_SHOW);
end;
Seltsam dabei ist, daß die verschiedenen JPG-Dateien durchaus in die Komponente TPRJpegImage geladen werden, beim Druckversuch ebenso wie beim Zuweisen via ListBox1Click:

Delphi-Quellcode:
procedure TFormMain.ListBox1Click(Sender: TObject);
begin
     PRJpegImage1.Picture.LoadFromFile(ListBox1.Items[ListBox1.ItemIndex]);
     PRJpegImage1.Repaint;
     PRText1.Text := ListBox1.Items[ListBox1.ItemIndex];
     PRText1.Repaint;
end;
Bestimmt mache ich irgend etwas grundsätzlich falsch ... wenn ich nur wüßte was ...
Das komplette Testprojekt kann man sich runterladen:
http://www.delphiman.de/Test/PowerPDFTest.zip
Angehängte Grafiken
Dateityp: jpg Testprogramm.jpg (28,6 KB, 38x aufgerufen)
Angehängte Dateien
Dateityp: pdf TestPDF AlleGleich.pdf (60,7 KB, 25x aufgerufen)
Dateityp: pdf TestPDF.pdf (1,33 MB, 23x aufgerufen)
Dateityp: zip PowerPDFTest.zip (4,24 MB, 24x aufgerufen)

Geändert von TBx (30. Mär 2012 um 11:07 Uhr) Grund: Testprojekt angehängt
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:17 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 by Thomas Breitkreuz