Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Neuen Beitrag zur Code-Library hinzufügen (https://www.delphipraxis.net/33-neuen-beitrag-zur-code-library-hinzufuegen/)
-   -   TPrintPreview und SynPDF - unvollständige Ausgabe (https://www.delphipraxis.net/206736-tprintpreview-und-synpdf-unvollstaendige-ausgabe.html)

gullatrulla 23. Jan 2021 20:31

TPrintPreview und SynPDF - unvollständige Ausgabe
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Delphi Folks

Ich verwende TPrintPreview für die Anzeige von Textausgaben auf dem Bildschirm.
In TPrintPreview besteht die Möglichkeit mittels SYNPDF den Inhalt des Bildschirms in ein PDF zu speichern.
Soweit funktioniert alles einwandfrei.

Nun habe ich einen Fall bei welchem die Ausgabe unvollständig gespeichert wird.
Die Ausgabe auf den Bildschirm ist korrekt, aber bei der Speicherung des Pdf-Files
wird die 2. Zeile unvollständig ausgegeben (oder einfach abgebrochen).

Es muss mit der Funktion DrawText(... zu tun haben.
Keine Ahnung wieso die unvollständige Ausgabe in PDF erfolgt.

Ich weiss schlicht nicht ob es an SYNPDF liegt oder an TPrintPreview.

Ich habe die neueste Version von TPrintPreview (5.93) und auch die neuste Version von SYNPDF.

Ich habe mein Testprojekt angehängt.
Evtl. hat jemand von Euch einmal Zeit sich dies anzuschauen.

Herzlichen Dank für Eure Hilfe oder Tipps
Roli

mytbo 24. Jan 2021 12:44

AW: TPrintPreview und SynPDF - unvollständige Ausgabe
 
Deine Frage kann ich leider nicht beantworten. Folgende Anmerkung: Es kursieren noch ältere Versionen von SynPDF als ZIP-Datei im Netz zum Herunterladen. Hast du die letzte Version aus dem Github Repository (mORMot) geladen? Letzter Stand SynPdf.pas ist vom 30.12.2020. Wenn ja, würde ich die Frage direkt im mORMot Forum stellen. Arnaud Bouchez liest dort täglich mit und beantwortet Frage zu seinen Libraries zügig.

Bis bald...
Thomas

gullatrulla 24. Jan 2021 14:35

AW: TPrintPreview und SynPDF - unvollständige Ausgabe
 
Herzlichen Dank für die Info.

Ja, ich habe die neueste Version von SYNPDF.
Ich versuche es zusätzlich noch mal im mORMot Forum.
Danke für den Tipp.

Gruss
Roland

Sigi Sandl 24. Jan 2021 19:04

AW: TPrintPreview und SynPDF - unvollständige Ausgabe
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo, Roland !

Mir ist aufgefallen, daß Du bei drawtext das Textflag "TA_Left" übergibst, drawtext erwartet hier ein "Dt_Left"-Flag, ich könnte mir vorstellen, daß die beiden Werte nicht identisch sind.

Außerdem, drawtext schneidet Text ab, der länger ist als das lpRect, das kannst Du abstellen, wenn Du zusätzlich das TextFlag "Dt_Noclip" angibst.

Und, ich würde das Erstellen der Druckausgabe und des Pdf nicht in einer Prozedur abhandeln.

Im Anhang meine Lösung, allerdings nur in Delphi7.

Grüße
Sigi

gullatrulla 24. Jan 2021 21:30

AW: TPrintPreview und SynPDF - unvollständige Ausgabe
 
Hallo Sigi

Herzlichen Dank für Deinen Hinweis.

Deine Variante funktioniert. Doch leider benötige ich die Clipping-Funktion.
Der Text SOLL nach einer gewissen Breite einfach abgeschnitten werden.

Die Funktion "DrawText(PrintPreview1.Canvas.Handle, PChar(WhatPrint), -1,R, DT_LEFT)" funktioniert sauber im TPrintPreview.
Doch in SYNPDF wird der Text nicht abgeschnitten.

Evtl. kann ich mit der Funktion ExtTextOut etwas basteln.
Ich bleibe dran und schaue weiter.

Für weitere Tipps der Community bin ich dankbar.
Wenn ich vorher eine Lösung finde, werde ich diese hier selbstverständlich posten.

Vielen Dank
Roland

Sigi Sandl 26. Jan 2021 09:27

AW: TPrintPreview und SynPDF - unvollständige Ausgabe
 
Hallo, Roland,

alternativ zu SynPdf und zum Testen kannst Du auch die DsPdf.dll einbinden, die hast Du gekriegt mit der PrintPreview-Komponente und liegt in einem der DemoVerzeichnisse.
In der Preview.pas muß Du die Synopse-Direktive auskommentieren, dann wird das Pdf über die DLL erstellt.

Wenn das PDF nur Text enthält, ist die DLL ausreichend und zuverlässig, mit Bildern wird die Datei aber sehr schnell sehr groß.

Grüße
Sigi

gullatrulla 27. Jan 2021 13:38

AW: TPrintPreview und SynPDF - unvollständige Ausgabe
 
Hallo Sigi

Herzlichen Dank für die Info.

Ich habe schon früher mit DsPdf.dll gearbeitet.

Doch leider scheint die DLL mit gewissen Schriftarten so ihre Mühe zu haben.
Deshalb bin ich eigentlich erst auf SYNPDF gekommen.

Aber ich gebe DsPdf.dll gerne noch einmal eine Chance und versuche
es noch einmal.

Gruss
Roland


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf