PureBoard
http://forums.purebasic.com/german/

Quick PDF Library - .dll benutzen?
http://forums.purebasic.com/german/viewtopic.php?f=16&t=31566
Seite 1 von 1

Autor:  oO0XX0Oo [ 05.07.2019 12:09 ]
Betreff des Beitrags:  Quick PDF Library - .dll benutzen?

Hallo,

weiß jemand, wie man eine der .dll Dateien von:
https://www.debenu.com/products/develop ... f-library/

in PB aktuell benutzt?

Die .dlls liegen nach der Installation unter:
C:\Program Files (x86)\Debenu\PDF Library 16\DLL\

Ich hätte gerne Zugriff auf eine (welche?) der beiden 32-bit Versionen,
DebenuPDFLibraryCPDLL1613.dll
DebenuPDFLibraryDLL1613.dll

die nach der Installation in das Verzeichnis, in dem das .pb script liegt,
kopiert wurden.

Möchte damit .pdf Formulare ausfüllen...

Autor:  RSBasic [ 05.07.2019 12:27 ]
Betreff des Beitrags:  Re: Quick PDF Library - .dll benutzen?

Ganz schön teuer für eine Lizenz. Dann müsste ja dein Projekt was kommerzielles sein, damit sich das rentiert.
Da ist es einfacher und günstiger, wenn man einen C#-Wrapper für PB erstellt.

Gibt es vom Hersteller Beispielcodes (z.B. in C++), die man nach PB portieren könnte?

Autor:  oO0XX0Oo [ 05.07.2019 13:08 ]
Betreff des Beitrags:  Re: Quick PDF Library - .dll benutzen?

Ja, in diesem Fall ist das ein kommerzielles Projekt (Excel Tabellen werden ausgelesen und die Daten in Formulare eingetragen).

Man kann auch z.B. pdftk zum Ausfüllen verwenden, aber das hat seine eigenen Probleme (Unicode Pfade/Dateinamen, Unicodezeichen in Formulareinträgen, etc.). Deshalb ist das hier zwar eine relativ teure Alternative, aber wenigstens ist die Lizenz lebenslang (zumindest wenn einem die gekaufte Version(snummer) ausreicht) und sie ist nicht an die Anzahl der Projekte gebunden.

Es gibt vom Hersteller durchaus sample codes:
https://www.debenu.com/products/develop ... p/samples/

Auch für C++.
Lädt man es herunter und entpackt es
https://www.debenu.com/downloads/code-s ... sample.zip

wird die .dll Datei in dieser .cpp Datei eingebunden und verwendet:
Hello WorldDlg.cpp

Autor:  oO0XX0Oo [ 07.07.2019 13:28 ]
Betreff des Beitrags:  Re: Quick PDF Library - .dll benutzen?

Keiner eine Idee?

Autor:  Sicro [ 07.07.2019 19:43 ]
Betreff des Beitrags:  Re: Quick PDF Library - .dll benutzen?

Ungetestet:
Code:

; http://www.debenu.com/wp-content/uploads/Foxit_Quick_PDF_Library_15_DLL_GettingStarted.pdf

EnableExplicit

Define library, instanceID
Define tempFile$

tempFile$ = GetTemporaryDirectory() + "Test.pdf"

library = OpenLibrary(#PB_Any, "<INSERT PATH TO THE LIBRARY>")
If Not library
  Debug "Error"
  End
EndIf

instanceID = CallCFunction(library, "DPLCreateLibrary")

If CallCFunction(library, "DPLUnlockKey", instanceID, @"your license key") = #True
  CallCFunction(library, "DPLDrawText", instanceID, 100, 500, @"Hello world")
  CallCFunction(library, "DPLSaveToFile", instanceID, @tempFile$)
  RunProgram(tempFile$)
EndIf

CallCFunction(InstanceID, "DPLReleaseLibrary", instanceID)
CloseLibrary(library)

Autor:  oO0XX0Oo [ 07.07.2019 20:31 ]
Betreff des Beitrags:  Re: Quick PDF Library - .dll benutzen?

Hallo Sicro,

danke sehr für die Hilfe!

Leider funktioniert es nicht wie erhofft.

Ich hab diese beiden .dlls ausprobiert:
C:\Program Files (x86)\Debenu\PDF Library 16\DLL\DebenuPDFLibraryCPDLL1613.dll
C:\Program Files (x86)\Debenu\PDF Library 16\DLL\DebenuPDFLibraryDLL1613.dll

Ich verwende zum Testen den 32-bit Compiler (5.71 beta 2)

Ich bekomme beim Erreichen der Zeile:
Code:
If CallCFunction(library, "DPLUnlockKey", instanceID, @"<mein_originaler_lizenzschluessel>") = #True


diese Fehlermeldung:
Code:
[20:27:28] [ERROR] Invalid memory access. (write error at address 5012270)

Autor:  Mijikai [ 08.07.2019 07:37 ]
Betreff des Beitrags:  Re: Quick PDF Library - .dll benutzen?

Funktioniert der erste Aufruf?
Code:
instanceID = CallCFunction(library, "DPLCreateLibrary")


Meine Empfehlung ist alle Tests erst einmal mit x64 durchzuführen (einheitliche Aufrufkonventionen).
Wenn es eine *.lib gibt können die Funktionen eventuell richtig importiert werden ohne den Umweg über LoadLibrary.

Autor:  oO0XX0Oo [ 08.07.2019 08:22 ]
Betreff des Beitrags:  Re: Quick PDF Library - .dll benutzen?

@Mijikai

Zitat:
Funktioniert der erste Aufruf?

Ja, tut es, auch unter 32-bit

Zitat:
Meine Empfehlung ist alle Tests erst einmal mit x64 durchzuführen (einheitliche Aufrufkonventionen).

Ui. Mit dem 64-bit Compiler und dieser .dll:
C:\Program Files (x86)\Debenu\PDF Library 16\DLL\DebenuPDFLibrary64CPDLL1613.dll

funktioniert es, das .pdf Dokument wird korrekt erstellt.

Allerdings muss die App auch als 32-bit Variante vorliegen (es gibt noch einige sehr alte Win 7 Systeme, auf denen immer noch ein 32-bittiges OS läuft).

Was muss man denn umstellen, damit es auch unter 32-bit funktioniert?

Autor:  Mijikai [ 08.07.2019 08:51 ]
Betreff des Beitrags:  Re: Quick PDF Library - .dll benutzen?

Versuch mal den String ("your license key") für die 32bit Version als Ascii zu übergeben.
Teste CallCFunction() & CallFunction().

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/