Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Debenu PDF Library (https://www.delphipraxis.net/194577-debenu-pdf-library.html)

zeras 8. Dez 2017 12:11

Debenu PDF Library
 
Ich habe ein Projekt, wo ich eine ältere Version (11.12) von Debenu PDF Library nutze. Das Projekt wurde unter XE5 entwickelt. Nun habe ich den Rechner neu gemacht und nur noch Seattle und Tokyo drauf. Das Projekt wollte ich nun auf Tokyo hochziehen, aber die IDE meldet, dass die Unit "DebenuPDFLibrary" nicht aufgelöst werden kann.
Im Suchpfad ist der Pfad aber drin. Dort liegen aber nur die DCU's. Mache ich etwas falsch oder merkt die IDE, dass die DCU's nur für ältere Versionen compiliert wurden?

Delphi-Quellcode:
unit DebenuPDFLibrary; --->> hier kommt beim Drüberziehen mit der Maus, dass die Unit nicht aufgelöst werden kann.

interface

uses
  DebenuPDFLibrary1112;

const
  LibVer: AnsiString = '11.12';
  LibVerNum = 11.12;

type
  TDebenuPDFLibrary = class(TDebenuPDFLibrary1112);

implementation

end.

DeddyH 8. Dez 2017 12:14

AW: Debenu PDF Library
 
DCUs sind versionsabhängig, d.h. sie lassen sich nur in der Version verwenden, unter der sie auch kompiliert wurden. Versuch doch mal, den Source-Ordner (sofern vorhanden) dem Bibliothekspfad hinzuzufügen.

mkinzler 8. Dez 2017 12:14

AW: Debenu PDF Library
 
DCUs sind compilerabhängig

Mavarik 8. Dez 2017 12:16

AW: Debenu PDF Library
 
Mit dem alten Delphi einen Wrapper für eine DLL bauen und dann im neuen Delphi die DLL nutzen. Oder neu kaufen.

zeras 8. Dez 2017 12:42

AW: Debenu PDF Library
 
Zitat:

Zitat von DeddyH (Beitrag 1388302)
DCUs sind versionsabhängig, d.h. sie lassen sich nur in der Version verwenden, unter der sie auch kompiliert wurden. Versuch doch mal, den Source-Ordner (sofern vorhanden) dem Bibliothekspfad hinzuzufügen.

Ich habe nur eine Quelldatei, wie oben gezeigt. Alles andere sind nur DCU's.

Zitat:

Zitat von Mavarik (Beitrag 1388304)
Mit dem alten Delphi einen Wrapper für eine DLL bauen und dann im neuen Delphi die DLL nutzen. Oder neu kaufen.

Ich habe nur ein Projekt, was ich pflegen will. Habe zwar den Hersteller angeschrieben wegen eines Updates, aber mehr als 100€ kann ich nicht investieren. Das wird wohl nicht drin sein.
Das andere mit der DLL würde mich schon interessieren, aber da weiß ich noch nicht, wie ich das bewerkstelligen soll. Gibt es da Ansätze?

Mavarik 8. Dez 2017 12:54

AW: Debenu PDF Library
 
Zitat:

Zitat von zeras (Beitrag 1388307)
Das andere mit der DLL würde mich schon interessieren, aber da weiß ich noch nicht, wie ich das bewerkstelligen soll. Gibt es da Ansätze?

Erzeuge Dir ein Interface für "ALLE" Funktionen die Du brauchst. (1:1 von den Parametern außer bei String da nimmst Du WideStrings)

Dann erzeuge aus dem Interface einen Wrapper in der DLL.

Compilieren mit XE5.

Dann kannst Du die DLL über Deine Interface in jedem Delphi verwenden.

Mavarik

hoika 8. Dez 2017 13:09

AW: Debenu PDF Library
 
Hallo,
da QuickPDF sehr viele Funktionen hat, würde ich das mit dem Wrapper nicht machen.

Ich würde einfach mal schauen, was der alte Code so macht:
geg: Parameter
ges: PDF

Und dann in eine Dll auslagern.
Zum Erzeugen der Dll brauchst du aber auf jeden Fall das alte Delphi (XE5).

Mavarik 8. Dez 2017 13:28

AW: Debenu PDF Library
 
Zitat:

Zitat von hoika (Beitrag 1388313)
Hallo,
da QuickPDF sehr viele Funktionen hat, würde ich das mit dem Wrapper nicht machen.

Ich würde einfach mal schauen, was der alte Code so macht:
geg: Parameter
ges: PDF

Und dann in eine Dll auslagern.
Zum Erzeugen der Dll brauchst du aber auf jeden Fall das alte Delphi (XE5).

LOL... Und was ist jetzt daran anders? Wie lagerst Du den in die DLL aus?

zeras 8. Dez 2017 13:46

AW: Debenu PDF Library
 
An sich brauche ich nicht viele Funktionen der Bib.
Ich suche nur alle Seiten einer PDF Datei durch und trage dann Sprungziele ein. So habe ich das noch in Erinnerung.
Sollten also nicht so viele Funktionen sein.

Das XE5 wollte ich eigentlich nicht mehr installieren. Aber da könnte ich einen anderen Rechner nehmen, wo ich das Aufspielen könnte.

Wenn ich euch recht verstehe, baue ich eine DLL, die dann möglicherweise noch eine DLL von Debenu aufruft. Ich habe jedenfalls noch eine DLL in den zugehörigen Pfaden gefunden.

Danke erst einmal für eure Funktionen.

Raible 8. Dez 2017 14:17

AW: Debenu PDF Library
 
such mal in den QuickPDF Quellen unter
...\DLL\Import\Delphi\DebenuPDFLibraryDLL1112.pas
Damit solltest Du die DLL direkt einbinden können.

zeras 8. Dez 2017 14:45

AW: Debenu PDF Library
 
Zitat:

Zitat von Raible (Beitrag 1388327)
such mal in den QuickPDF Quellen unter
...\DLL\Import\Delphi\DebenuPDFLibraryDLL1112.pas
Damit solltest Du die DLL direkt einbinden können.

Danke für den Tipp. Die PAS Datei habe ich nun gefunden. Da hatte ich vorher garnicht gesucht.
Es kommen nun andere Fehlermeldungen, aber vielleicht komme ich dadurch weiter.

zeras 9. Dez 2017 08:07

AW: Debenu PDF Library
 
Ich habe nun ein Angebot für eine Upgrade bekommen. Man hätte wahrscheinlich Aktien von der Firma kaufen sollen.
Innerhalb von ca. 4 Jahren soll ich den doppelten Preis nur für eine Upgrade bezahlen und die Subscription kostet so viel, wie ich damals für eine Vollversion bezahlt habe.
Das nennt man Rendite.
Ich werde deshalb die Vorschläge von euch umsetzen müssen.

Bernhard Geyer 9. Dez 2017 09:19

AW: Debenu PDF Library
 
Zitat:

Zitat von zeras (Beitrag 1388331)
Es kommen nun andere Fehlermeldungen, aber vielleicht komme ich dadurch weiter.

Welche Fehlermeldungen kommen?
Wenn Du die Quelldateien für den Zugriff auf die Debenu-DLLs hast, so sollten dies relativ einfach (Du kommst ja von XE5) auf ein aktuelle 10.1/10.2 anpassbar sein.
vermutlich musst du nur die IFDEFs (liegen oft in einer *.inc-Datei) um die Compilerversionen VER310/VER320 (10.1/10.2) ergänzen an der stelle an der du ein {$IFDEF VER260}

Ist m.E. sinnvoller um eine Wrapper-DLL zu schreiben die nicht weiter mach um eine Wrapper-Unit für eine DLL zu wrappen.

zeras 9. Dez 2017 17:02

AW: Debenu PDF Library
 
Vielen Dank für eure Informationen. Dadurch kann ich höchstwahrscheinlich das Upgrade sparen.

Zitat:

Zitat von Bernhard Geyer (Beitrag 1388367)
Welche Fehlermeldungen kommen?

Das Scannen aller Seiten und das Eintragen der Ziele scheint zu gehen.
Was aber nicht geht, ist der Aufruf von

Delphi-Quellcode:
ViewPrintQP.RenderPageToStream(DPI, ViewPrintPageNum, 0, MS);
wobei ViewPrintQP vom Typ TDebenuPDFLibrary ist.

Es erscheint Undeklarierter Bezeichner: 'RenderPageToStream'.

Zusatz:
Ich habe jetzt einen DLL Viewer gestartet und finde dort aber keine Funktion mit dem Namen RenderPageToStream, sondern nur RenderPageToDC, RenderPageToDCClip, RenderPageToFile und RenderPageToString.

Somit muss die Funktion zum Rendern in einen Stream nicht direkt durch die DLL durchgeführt werden. Offenbar muss ich eine Funktion schreiben, die eine andere Funktion der DLL aufruft und dann in einen Stream wandelt.

zeras 10. Dez 2017 10:24

AW: Debenu PDF Library
 
Ich nutze nun die vorhandene Funktion
Delphi-Quellcode:
DebenuPDFLibraryRenderPageToFile
, um die Seite als Datei temporär zu speichern, um diese dann in einen Stream zu laden.
Das geht erst einmal als Workaround.

Danke nochmals allen. So konnte ich das Update für ca. 1000 US$ sparen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:38 Uhr.

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