Hallo allerseits,
um meine VO-Appls auf X# portieren zu können, sehe ich momentan nur noch ein einziges Problem:
Wie erzeuge ich schnell und elegant PDF-Dokumente? In VO hatte ich ein Tool, dass es schon lange nicht mehr gibt (ISedQuickPDF). Es soll aber angeblich einen Nachfolger geben (QuickPDF von Foxit). Hat jemand Erfahrung mit QuickPDF unter X#, resp. funktioniert das überhaupt? Wenn nein, welche Alternativen gibt es? Ich möchte natürlich, wenn es irgendwie geht, den Aufwand vermeiden, die z.T. komplexen PDFs Zeile für Zeile neu programmieren zu müssen.
Dankbar für jede erhellende Antwort.
Silvio
PDF erzeugen
Moderator: wriedmann
PDF erzeugen
Hallo Silvio
In XSharp und .NET verwende ich die Library "PdfSharp". Funktioniert einwandfrei und ist im Quellcode verfügbar.
NuGetPackage
Die DLL's habe ich in .NET erstellt und verwende diese dann in XSharp und .NET. Sogar .Net Core funktioniert.
Gruss Heinrich
In XSharp und .NET verwende ich die Library "PdfSharp". Funktioniert einwandfrei und ist im Quellcode verfügbar.
NuGetPackage
Die DLL's habe ich in .NET erstellt und verwende diese dann in XSharp und .NET. Sogar .Net Core funktioniert.
Gruss Heinrich
-
- Posts: 774
- Joined: Wed May 17, 2017 8:50 am
- Location: Germany
PDF erzeugen
Hallo Silvio,
es kommt darauf an ob Du bei Deiner VO -> X# Umstellung die ISedQuickPDF.dll zuerst einmal beibehalten willst oder nicht ? Bestehende ISed Deklarationen kannst Du mehr oder weniger 1:1 übernehmen. Beispiel:
kompiliert ohne Änderung mit X#.
Gibt die ISed dll allerdings floats zurück würde eine VO Deklaration zum Beispiel ja so aussehen:
mit X# reicht diese Deklaration - was auch eher dem gesunden Menschenverstand entspricht
Sowohl mit VO als auch mit X# zeigt mir bei einem DIN A4 Format dieser Aufruf das gleiche Ergebnis an:
zu Foxit nur so viel: Complety over priced !.
Gruß
Karl-Heinz
es kommt darauf an ob Du bei Deiner VO -> X# Umstellung die ISedQuickPDF.dll zuerst einmal beibehalten willst oder nicht ? Bestehende ISed Deklarationen kannst Du mehr oder weniger 1:1 übernehmen. Beispiel:
Code: Select all
_DLL FUNCTION iSEDAddImageFromFile ( sFileName AS PSZ, iOptions AS INT ) AS INT PASCAL:iSEDQuickPDF.iSEDAddImageFromFile
Gibt die ISed dll allerdings floats zurück würde eine VO Deklaration zum Beispiel ja so aussehen:
Code: Select all
FUNCTION iSEDPageHeight () AS REAL8 PASCAL
LOCAL r8Value AS REAL8
__iSEDPageHeight()
r8Value := _PopI87Real8()
RETURN r8Value
_DLL FUNCTION __iSEDPageHeight() AS REAL8 PASCAL:iSEDQuickPDF.iSEDPageHeight
Code: Select all
_DLL FUNCTION iSEDPageHeight() AS REAL8 PASCAL:iSEDQuickPDF.iSEDPageHeight
Code: Select all
? iSEDPageHeight() // ---> 297.00
Gruß
Karl-Heinz
PDF erzeugen
Es kommt natürlich auch drauf an, was genau das erzeugte PDF können muß. Wenn der Output eines "PDF-Druckers" reicht, verwende ich seit Jahren den FreePDFPrinter von Bull. (https://www.bullzip.com/products/pdf/info.php)
Regards
Karl
(on Win8.1/64, Xide32 2.20, X#2.20.0.3)
Karl
(on Win8.1/64, Xide32 2.20, X#2.20.0.3)
-
- Posts: 774
- Joined: Wed May 17, 2017 8:50 am
- Location: Germany
PDF erzeugen
Du sprichst in Rätseln ?FFF wrote:Es kommt natürlich auch drauf an, was genau das erzeugte PDF können muß. Wenn der Output eines "PDF-Druckers" reicht, verwende ich seit Jahren den FreePDFPrinter von Bull. (https://www.bullzip.com/products/pdf/info.php)
Die isedquickpdf.dll ist *kein* PDF-Druckertreiber, sondern eine ganz normale win32 dll die Funktionen beinhaltet mit der man PDFs erstellen kann. In eine Klasse gepackt, sieht der code für das PDF im Anhang so aus:
Code: Select all
FUNCTION Start( ) AS VOID
LOCAL oPDF AS RptPDFPruef
LOCAL i AS DWORD
LOCAL dVon, dBis AS Date
oPDF := RptPDFPruef{"D:Testprüf.pdf"}
IF oPDF:Init
dVon := ConDate ( 2019 , 1 , 1 )
dBis := ConDate ( 2019 , 12 , 31 )
oPDF:Slot := "Prüfung"
oPDF:BeginPrint( PDF_PAPER_A4 ,TRUE )
FOR i := 1 UPTO 1000
oPDF:Qout ( PadL ( i , 4 , "0" ) + Chr ( 9 ) + "Street " + NTrim ( i ) + Chr ( 9 ) + ;
DToC ( dVon ) + Chr ( 9 ) + DToC ( dBis ) )
NEXT
oPDF:EndPrint()
oPDF:Close()
ENDIF
RETURN
Gruß
Karl-Heinz
- Attachments
-
- prüf.pdf
- (186.49 KiB) Downloaded 56 times
PDF erzeugen
Hallo Silvio
Im Anhang die Klasse MDPdf und eine Beispiel Routine.
Du musst dann aber schon die Pdfs wieder neu erstellen.
Die Klasse kannst du ja deine Bedürfnissen anpassen. Ist klein aber fein.
Gruss
Horst
Im Anhang die Klasse MDPdf und eine Beispiel Routine.
Du musst dann aber schon die Pdfs wieder neu erstellen.
Die Klasse kannst du ja deine Bedürfnissen anpassen. Ist klein aber fein.
Gruss
Horst
- Attachments
-
- pdf.zip
- (13.91 KiB) Downloaded 47 times