AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ÜberPdf Struktur

Ein Thema von Rollo62 · begonnen am 2. Jan 2018 · letzter Beitrag vom 2. Jan 2018
Antwort Antwort
Rollo62

Registriert seit: 15. Mär 2007
4.094 Beiträge
 
Delphi 12 Athens
 
#1

ÜberPdf Struktur

  Alt 2. Jan 2018, 08:32
Hallo zusammen,

noch ein frohes Neues Jahr euch Allen.

Zum neuen Jahr gibt es ein schönes Neues PDF Framework.
Ihr habt das sicher auch schon entdeckt

Es ist wohl FPC basiert, mit Bindungen zu Delphi.
Die Libraries selbst basieren aud C/C++, und ich frage mich im Moment wie diese Bindungen zustande kommen.
Mit FPC kenne ich mich nicht aus, aber ich habe schon solche wilden Konstrukte bei denen mal öfters gesehen.
Anscheinend ist dieses Framework für alle möglichen Platformen kompatibel, und bindet sich dann als Pascal in Delphi ein.

Ich frage mich wo die Typen herkommen, z.B. diese hier

Delphi-Quellcode:

//------------------------------------------------------------------------------
#ifdef UBERPDFSDK_DYNAMIC_BINDING
//------------------------------------------------------------------------------
  typedef UBER_INT (UBERAPI *fn_UberPdfSdk_File_Io_OpenForReadingA) (
                                                                       CONST_LP_UBER_CSTR lpFilePathA,
                                                                       UBER_SIZE_T cchlpFilePathBufferSize,
                                                                       LP_UBERPDFSDK_FILE_IO_HANDLE lpUberPdfSdkFileIoH
                                                                    );
//------------------------------------------------------------------------------
#else
//------------------------------------------------------------------------------
  UBER_INT UBERAPI UberPdfSdk_File_Io_OpenForReadingA (
                                                         CONST_LP_UBER_CSTR lpFilePathA,
                                                         UBER_SIZE_T cchlpFilePathBufferSize,
                                                         LP_UBERPDFSDK_FILE_IO_HANDLE lpUberPdfSdkFileIoH
                                                      );
//------------------------------------------------------------------------------
#endif
//------------------------------------------------------------------------------
kommt aus einem C/C++ Header, und wird anscheinend so 1:1 in Pascal verwendet.

Delphi-Quellcode:
//------------------------------------------------------------------------------
// uberpdfsdk_file_io
//------------------------------------------------------------------------------
  {$ifndef UBER_DEFINED_COMPILER_REQUIRES_FILE_IO_LESS}
  UberPdfSdk_File_Io_OpenForReadingA : fn_UberPdfSdk_File_Io_OpenForReadingA;
  {$ifdef UBER_DEFINED_COMPILER_SUPPORTS_WIDECHAR}
  UberPdfSdk_File_Io_OpenForReadingW : fn_UberPdfSdk_File_Io_OpenForReadingW;
  {$endif} //UBER_DEFINED_COMPILER_SUPPORTS_WIDECHAR
  UberPdfSdk_File_Io_OpenForWritingA : fn_UberPdfSdk_File_Io_OpenForWritingA;
  ...
Eine gesonderte Typdefinition für Pascal dafür habe ich jetzt nicht gefunden, kann aber sein das ich es überlesen habe.
Vielleicht kommt ja FPC damit klar, und auch Typdefinitionen aus Headern zu lesen, aber ich denke Delphi kann das nicht.
Oder irre ich mich da ?

Könnte ja auch sein das hier am Ende per FPC nur Delphi-kompatible Libraries rauskommen, für die man dann noch Interfaces/Wrapper schreiben muss ?

Jedenfalls sieht das für mich wie ein sehr interessanter Crossplatform-Ansatz von C/C++ auf alle möglichen Zielplattformen zu sein, was ein gewisses Potential hat.

Kennt sich jemand mit dieser Art Crossplatfom-Entwicklung aus, und könnte mir auf die Sprünge helfen wie das wohl unter Delphi korrekt eingebunden werden könnte ?

Die Frage wäre auch wie das unter MacOs gehandhabt wird, da gibt es doch kein C/C++, oder etwa doch (ObjectiveC ist ja etwas aus einem anderen Universum).

Rollo
  Mit Zitat antworten Zitat
Fritzew

Registriert seit: 18. Nov 2015
Ort: Kehl
678 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: ÜberPdf Struktur

  Alt 2. Jan 2018, 09:55
Es gibt 2 Files für die Einbindung:

// Dynamisch also als Dll:
libuberpdfsdkdyn_pascal.pas

// Fest gelinkt:
uberpdfsdk_pascal.pas

Und dann noch jeden Menge *.inc Files

Zu MacOS: klar geht da C/C++ Objective C id nur eine Obermenge davon und eigntlich ein präprozessor
XCode kann prima mit C/C++ umgehen

Das ÜberPDF is allerdings in der veröffentlichten Form schon wirklich hart.......
Wenn Du nicht genau weist was Du tust kommst Du so damit nicht weit, da hilft es das PDF32000_2008.pdf anzuschauen
das als TestFile mit dabei ist.
Aktuell is das alles wirklich Low-Level.
Es soll ja aber auch noch eine High-Level Package kommen:
ÜberPDF-Utils™: (to be released next)
Ich denke dann wird es wirklich interessant
Fritz Westermann
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.094 Beiträge
 
Delphi 12 Athens
 
#3

AW: ÜberPdf Struktur

  Alt 2. Jan 2018, 11:34
Hallo Fritzew,

dankesehr für die Info.
Ich dachte das diese Struktur womöglich "Standard" unter FPC ist,
also ist es deiner Meinung nach wohl auch etwas extrem

Gut, muss ich mich mal tiefer mit beschäftigen, auch generell mit de Thema CrossPlatform und FPC.
Hast du da vielleicht einen guten Tipp wo man FPC CrossPlatform Infos findet (also in komprimierter Form, nicht die üblichen Verdächtigen) ?

Z.B. hat wohl auch CastleGame Engine einen Generator für verschiedene Platformen,
das ist wohl ähnlich extrem, aber womöglich interessant

Vielleicht gibt es ja auch einen mehr oder weniger "offiziellen" Weg bei Lazarus, FPC und Co.
Mich würde mal interessieren wie man FPC mit Delphi einbinden kann, und wie man die Zertifikate und Ähnliches dort löst.
Schliesslich kam FMX ja ursprünglich auch mal via FPC auf den Mac.
Jedenfalls finde ich da ziemlich wenig konkrete Info drüber (ist wohl eine Geheimwissenschaft).

Rollo
  Mit Zitat antworten Zitat
Fritzew

Registriert seit: 18. Nov 2015
Ort: Kehl
678 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: ÜberPdf Struktur

  Alt 2. Jan 2018, 17:50
Nun ja letztendlich ist das halt einfach eine C-Api.
Hier ist es halt über includes geregelt, aber ansonsten ja immer das selbe.
Zu FPC kann ich nicht wirklich etwas sagen, irgendwie werde ich nicht warm damit. Für Crossplatform verwende ich den
Elements-Compiler. Aber das hängt damit zusammen das ich gerne die Original-Gui Elemente benutze.
Fritz Westermann
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:31 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