Deutsch
SDK-Helfer/ Tools

PDF-Builder-DLL

 
- Seite 1 -



Jens-Arne
Reumschüssel
Guten Nachmittag,

ich war seit sehr langer Zeit auf der Suche nach einer Möglichkeit, selbst PDF-Dateien erzeugen zu können. Und zwar nicht, indem man eins der vielen Druckertreiber-Tools benutzt, bei denen am Ende einfach eine Grafik herauskommt, sondern so, dass man wirklich echte PDF-Dateien mit Textinhalt erzeugen kann, die dann auch durchsuchbar sind.

Dabei ist mir nun eine PureBasic-Library über den Weg gelaufen, die genau das kann (PurePDF). Sie ist zwar ziemlich alt und erzeugt PDFs nach dem Standard 1.5, also kann man z.B. keine PDF/As erzeugen, weil es die da noch nicht gab. Aber ansonsten bleibt eigentlich kein Wunsch offen.

Das Problem ist nur, dass PureBasic-Libraries nur genau mit der PureBasic-Version funktionieren, für die sie gemacht wurden. Ich musste also eine ziemlich alte Version installieren. Damit konnte ich nun aber eine Wrapper-DLL erzeugen (was wegen Freeware-Status von PurePDF auch geht). Für diese habe ich eine XProfan-INC-Datei und eine PH-Datei gebaut, sodass man einfach aus XProfan heraus nach Herzenslust PDF-Dateien mit Text, grafischen Elementen, Bildern und Links erzeugen kann. Dazu habe ich mir die Mühe gemacht, eine CHM-Hilfedatei zu schreiben, sodass eigentlich jeder damit klarkommen sollte.

Bevor es entsprechende Nachfragen gibt: Ich kann an den Funktionen der DLL nichts ändern, da ich die Sourcecodes zur PureBasic-Library nicht habe. Es ist und bleibt also so, wie es ist. Nur wenn es Fehler in den Profan-Dateien oder meiner Wrapper-DLL geben sollte, kann ich daran etwas ändern.

Viel Spaß beim Ausprobieren!

Jens-Arne

-----
12.03.2023:
PDF-Builder 2 ist fertig. Dies ist ein weiterentwickeltes Projekt, das auf der ursprünglichen PureBasic-Variante aufbaut.
Insbesondere sind nun ausfüllbare Formularfelder möglich.
PDF-Builder 2 ist aufgrund vielfältiger interner Änderungen leider nicht vollständig abwärtskompatibel zu PDF-Builder. Wenn ein Programm mit der ersten Variante läuft und keine Formularfelder benötigt werden, ist es daher nicht nötig und auch nicht empfehlenswert, auf die neue Version umzusteigen.
Die neue DLL gibt es jetzt auch als 64bit-Version. Diese ist natürlich nicht mit XProfan kompatibel, aber dafür mit anderen Programmiersprachen, die 64bit-Code erzeugen.
-----

HINWEISE:
- funktioniert nicht mit XPSE, weil darin noch keine Singles bekannt sind, die für die DLL aber benötigt werden (Singles sind 4-Byte-"Floats")
- sofern nicht JRPC3 benutzt wird, muss die ph-Datei vor der inc-Datei eingebunden werden
- bitte nicht wundern: sowohl die ph-Datei als auch die inc-Datei haben am Anfang ganz viele Leerzeilen, da ich den Eindruck habe, dass Scintilla innerhalb von XProfEd dann weniger häufig abstürzt, was dazu führt, dass man nichts mehr ändern und vor allem den Quellcode nicht speichern kann - das mache ich daher immer so (wer will, kann diese Leerzeilen natürlich gerne löschen)

169 kB
Bezeichnung:PDF-Builder
Version:1.02
Kurzbeschreibung: DLL zum Erzeugen von PDF-Dateien
Hochgeladen:30.01.2022
Ladeanzahl177
Herunterladen
1.504 kB
Bezeichnung:PDF-Builder 2
Version:1.03
Kurzbeschreibung: DLL zum Erzeugen von PDF-Dateien mit Formularfeldern
Hochgeladen:12.03.2023
Ladeanzahl102
Herunterladen
 
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
30.01.2022  
 



 
- Seite 1 -



Manfred
Barei
Hura, so was habe ich schon die ganze Zeit gesucht "Eine Freeware PDF.DLL" aber nichts gefunden.
Werde ich demnächst ausprobieren sobalt ich Zeit habe.
 
XProfan X2
Zu wenig Wissen ist gefärlich, zu viel auch.(XProfan X4) | Win 10 Pro 64 | Win7 Ultimate 32/64 | AMD FX-8320, 16GB, GeForce GT 630 |
30.01.2022  
 




Jens-Arne
Reumschüssel
Ich habe jetzt ENUM aus der PH-Datei entfernt, damit auch Leute ohne JRPC3 diese direkt verwenden können.
 
XProfan X4
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
30.01.2022  
 




Thomas
Freier
Muß ich unbedingt mal testen.
Hatte vor Jahren ohne Drucker nur PDF-Dateien im Schreibmaschinenstil hinbekommen. Reichte aber.

3 kB
Hochgeladen:31.01.2022
Ladeanzahl132
Herunterladen
 
Gruß Thomas
Windows XP SP2, XProfan X2
31.01.2022  
 




Sven
Bader
Vielen Dank für diese schöne DLL!

In Web-Projekten habe ich häufig mit der PDF-Generierung zu tun, unter Windows musste dagegen immer die Druckfunktion herhalten.

Ich hatte zuerst Probleme mit der Hilfe Datei (Inhalte wurden nicht gezeigt), das habe ich so gelöst:



Und hier der Beispielcode, den Jens-Arne in Rolands Forum geposted hat:
 $H PDF-Builder.ph'muss für reines Profan ohne JRPC3 zuerst kommen; das war im ersten Anlauf dieses Beitrages noch nicht so, sorry
 $I PDF-Builder.inc
declare i%,AktSeite%

PROC PDF_HeaderProc

    inc AktSeite%
    PDF_PushFont
    PDF_PushFillColor
    PDF_SetFont("Times New Roman",~PDF_Font_Bold,16)
    PDF_SetFillColor(@rgb(220,220,220))
    PDF_Cell(0,15,"Kundendatenbank",~PDF_Cell_Frame,~PDF_Cell_Ln_LineFeed,~PDF_Align_Center,~PDF_Fill_Opaque)
    PDF_LineFeed(10)
    PDF_SetFont("Times New Roman",~PDF_Font_Bold,12)
    PDF_Cell(60,7,"Name",~PDF_Cell_Frame,~PDF_Cell_Ln_Right,~PDF_Align_Left,~PDF_Fill_Transparent)
    PDF_Cell(60,7,"Straße, Hnr.",~PDF_Cell_Frame,~PDF_Cell_Ln_Right,~PDF_Align_Left,~PDF_Fill_Transparent)
    PDF_Cell(0,7,"PLZ, Wohnort",~PDF_Cell_Frame,~PDF_Cell_Ln_LineFeed,~PDF_Align_Left,~PDF_Fill_Transparent)
    PDF_SetFont("Times New Roman",0,12)
    PDF_Text(185,285,"Seite "+@str$(AktSeite%))
    PDF_PopFont
    PDF_PopFillColor

ENDPROC

cls
AktSeite%=0
PDF_Init
PDF_Create(~PDF_Orientation_Portrait,~PDF_Unit_mm,~PDF_Format_A4)
PDF_SetFont("Times New Roman",0,12)
PDF_SetProcHeader(@procaddr("PDF_HeaderProc",0))'bei jedem Seitenumbruch soll die HeaderProc aufgerufen werden
PDF_SetMargins(15,10,10)
PDF_SetAutoPageBreak(1,20)
PDF_AddPage()
for i%,1,250
PDF_Cell(60,7,"Mustername "+@str$(i%),~PDF_Cell_Frame,~PDF_Cell_Ln_Right,~PDF_Align_Left,~PDF_Fill_Transparent)
PDF_Cell(60,7,"Musterstraße "+@str$(i%),~PDF_Cell_Frame,~PDF_Cell_Ln_Right,~PDF_Align_Left,~PDF_Fill_Transparent)
PDF_Cell(0,7,"12345 Musterstadt",~PDF_Cell_Frame,~PDF_Cell_Ln_LineFeed,~PDF_Align_Left,~PDF_Fill_Transparent)
endfor'i%
PDF_Save("test.pdf")
PDF_DeInit
@shellexec("test.pdf","open",1)
waitinput
end

26 kB
Hochgeladen:01.02.2022
Ladeanzahl93
Herunterladen
 
01.02.2022  
 




Georg
Teles
Nabend,

eine super DLL vielen Dank !
 
XProfan X2
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

21.02.2022  
 




Jens-Arne
Reumschüssel
Es gibt eine neue Version, in der in der INC-Datei ein Bug behoben wurde, der unter bestimmten Umständen zu einem "arithmetic overflow error" führen konnte.
 
XProfan X4
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
05.08.2022  
 




Erasmus.Herold
Hallo zusammen.

Ist ja der Hammer. Danke!

Gruß Erasmus
 
04.01.2023  
 




Normann
Strübli
Hi,
Manchmal wird man doch echt noch überrascht.
Toll - werde ich tatsächlich wieder eine Projekt umsetzen können.
Vielen Dank.
 
29.01.2023  
 




Jens-Arne
Reumschüssel
Jetzt sind die sporadischen Gleitkommaüberlauf-Fehler von XProfan in der INC-Datei endgültig beseitigt. Es handelte sich um einen Bug in XProfan X4 bei der Übergabe von single-Werten als Prozedurparameter.
 
XProfan X4
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
05.03.2023  
 




Jens-Arne
Reumschüssel
PDF-Builder 2 ist fertig. Siehe Einführungstext ganz oben (neu: Formularfelder und 64bit-Version).
 
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
12.03.2023  
 




Rainer
Hoefs
Hallo,

das ist wirklich einen tolle Übersetzung der PureBAsic-Lib, die ich auch in PureBasic benutze.

Kompliment!

Allerdings passiert bei mir im XProfan-Programm etwas, was bei PureBasic nicht passiert:

Wenn ich die PDF-Datei aus meinem Programm heraus generiere und die entsprechende Proc über den MenueButton/Hotkey aufrufe wird die Hintergrundfarbe des Hauptfensters von hellem Grau in weiß verändert. Nach Ablauf der Proc wird sie auch nicht mehr richtig in hellem Grau angezeigt.

Bin im Moment vollkommen ratlos wo das passiert und wie ich es ändern kann.

Hilfe wäre super schön!
Danke im voraus
Rainer

EDIT!

Habe den Fehler gefunden, war irgendwo im Code ein CLS! Das stammte noch aus dem Testprogramm-Code.
 
06.06.2023  
 



 
- Seite 2 -



Jens-Arne
Reumschüssel
PDF-Builder 2 V1.03 hochgeladen:

Es gibt jetzt bei PDF_Create und PDF_AddPage zwei weitere optionale Parameter, mit denen man die Größe der PDF-Seiten frei wählen kann. Bisher waren nur die gängigen Formate wie z.B. DIN A4 möglich. So kann man nun z.B. eine PDF-Seite erzeugen, die genauso groß ist, wie etwa ein gescanntes Foto.

Die Details stehen in der Hilfedatei.

Achtung: Wer die DLL direkt (also nicht die inc-Datei) benutzt, muss seinen Code anpassen! Die beiden genannten Funktionen haben jetzt zwei Parameter mehr. Werden diese beim Funktionsaufruf nicht an die DLL übergeben, gibt es einen Absturz. In der inc-Datei ist dies automatisch berücksichtigt; dort können die neuen Parameter auch weggelassen werden, sodass keine Codeanpassung erforderlich ist.
 
XProfan X4
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
vor 23 Tagen  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

4.350 Betrachtungen

Unbenanntvor 0 min.
Walter vor 4 Tagen
Uwe Lang vor 4 Tagen
R.Schneider vor 7 Tagen
ByteAttack vor 10 Tagen
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie