AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Frage zu "Foxit Quick PDF Library and Debenu Product Line End-of-Life announcement"
Thema durchsuchen
Ansicht
Themen-Optionen

Frage zu "Foxit Quick PDF Library and Debenu Product Line End-of-Life announcement"

Ein Thema von slemke76 · begonnen am 11. Dez 2021 · letzter Beitrag vom 5. Apr 2022
Antwort Antwort
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.560 Beiträge
 
Delphi 12 Athens
 
#1

AW: Frage zu "Foxit Quick PDF Library and Debenu Product Line End-of-Life announcemen

  Alt 12. Dez 2021, 14:15
Leider kenne ich nur die Quick-PDF Library, die mit ca. 1000 API-Funktionen recht umfangreich ist und mir da eigentlich nichts unmöglich mit scheint.

Falls man mir morgen die Source-Version nicht mehr (zudem wie von mir gewollt zu einem vergünstigten Upgrade-Preis) verkaufen sollte, stehe ich erst mal mit der bisherigen Lösung da (Einzel Quick-PDF-Lizenzen auf DLL-Basis) da, die dann aber Ende 2022 endgültig tot ist.

Ich bräuchte also irgendwann bald einen Ersatz mit entsprechendem Leistungsumfang und zwar für die Plattformen Windows, MAC und Linux und das auch halbwegs erschwinglich (also gerne deutlich unter 1000 Euro).

Wenn es nur für Windows ist scheidet es aus...

Unter pdfbox finde ich übrigens nichts vernünftiges / eindeutiges. Was ist damit genau gemeint?

Geändert von Harry Stahl (12. Dez 2021 um 14:19 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.222 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Frage zu "Foxit Quick PDF Library and Debenu Product Line End-of-Life announcemen

  Alt 12. Dez 2021, 15:35
Unter pdfbox finde ich übrigens nichts vernünftiges / eindeutiges. Was ist damit genau gemeint?
Das PDF-Box: https://pdfbox.apache.org/
Ist zwar Java-Code, aber da wir bei uns eh schon die Jara-Runtime zu unserem Delphi-Programm mitliefern (wegen DB-Zugriffskomponenten) war die Integration der Lib (hier nur für 2 Funktionen als Kommandozeilenaufruf) auch kein Hexenwerk mehr.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.560 Beiträge
 
Delphi 12 Athens
 
#3

AW: Frage zu "Foxit Quick PDF Library and Debenu Product Line End-of-Life announcemen

  Alt 12. Dez 2021, 16:52
Unter pdfbox finde ich übrigens nichts vernünftiges / eindeutiges. Was ist damit genau gemeint?
Das PDF-Box: https://pdfbox.apache.org/
Ist zwar Java-Code, aber da wir bei uns eh schon die Jara-Runtime zu unserem Delphi-Programm mitliefern (wegen DB-Zugriffskomponenten) war die Integration der Lib (hier nur für 2 Funktionen als Kommandozeilenaufruf) auch kein Hexenwerk mehr.
Danke für den ergänzenden Hinweis. Freut mich, dass es für Euch passt, aber Java möchte ich nicht verwenden (und die Java-Runtime dürfe ja einiges an Umfang haben). Ich stehe da mehr auf schlankere Programmvarianten...
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.222 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Frage zu "Foxit Quick PDF Library and Debenu Product Line End-of-Life announcemen

  Alt 12. Dez 2021, 17:37
Danke für den ergänzenden Hinweis. Freut mich, dass es für Euch passt, aber Java möchte ich nicht verwenden (und die Java-Runtime dürfe ja einiges an Umfang haben). Ich stehe da mehr auf schlankere Programmvarianten...
Ja, Java ist einiges an Overhead.
Aber für uns ideal, da die Online-Variante eh mit Java läuft und damit auch Teile des Code einen Reuse erfahren können.
Auf jedenfall war mit Ablösung von Gnostice eine doch schon mehr als nervige Fehlerquelle weg.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von gubbe
gubbe

Registriert seit: 8. Okt 2005
Ort: Schleswig-Holstein
150 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Frage zu "Foxit Quick PDF Library and Debenu Product Line End-of-Life announcemen

  Alt 12. Dez 2021, 20:29
Wenn man nach PDF-Lösungen für Delphi sucht, findet man oft nur QuickPDF oder Gnostice und übersieht eine sehr gute Alternative.
Ich kann DynaPDF sehr empfehlen. Das ist zwar nicht in Delphi geschrieben, aber es gibt eine Delphi-Unit zur Einbindung der DLL.
Sehr mächtige Bibliothek zu Bearbeitung und Anzeige von PDF-Dateien. Quelltext (C++) in der Enterprise-Version erhältlich, deutscher Hersteller, guter Support und vor allem für so ziemlich alle Plattformen verfügbar.

Ich habe auch QuickPDF, aber da war nach meinem Endruck schon länger absehbar, dass das nicht mehr lange unterstützt wird seitdem es von Foxit übernommen wurden. Der Support hatte mich auch nicht überzeugt. Was habe ich von einem Bugfix, der erst mit dem nächsten offiziellen Release kommt? Bei DynaPDF dagegen gibt es häufige Updates. Schaut mal im Download-Bereich nach dem Datum der verschiedenen Versionen. Teilweise 1-2 neue Versionen pro Monat.

Wenn man die Erfahrungen mit Gnostice so liest, nützt es doch auch nichts, wenn das Produkt in Delphi geschrieben ist, wenn die Qualität nicht überzeugt. Bei DynaPDF liegt dann eben noch eine DLL im Programmverzeichnis, aber QuickPDF war auch schon länger nicht mehr nur reines Delphi, seit für das Rendering PDFium eingebaut wurde.

Ansonsten hat aber auch Winsoft ein paar Lösungen, auf den verschiedenen Plattformen die nativen PDF-Bibliotheken einzubinden oder auch PDFium unter Windows.
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.560 Beiträge
 
Delphi 12 Athens
 
#6

AW: Frage zu "Foxit Quick PDF Library and Debenu Product Line End-of-Life announcemen

  Alt 12. Dez 2021, 22:23
Ich kann DynaPDF sehr empfehlen. Das ist zwar nicht in Delphi geschrieben, aber es gibt eine Delphi-Unit zur Einbindung der DLL.
Sehr mächtige Bibliothek zu Bearbeitung und Anzeige von PDF-Dateien.
Hey, danke für diese Info.

Hier gibt es eine gute Feature-Übersicht dafür: https://www.dynaforms.com/de/features.html

Scheint im Prinzip alles dabei zu sein, was man auch mit Quick-PDF machen kann. Dass es eine DLL ist, würde mich nicht stören, habe bislang auch nur auf dieser Basis mit Quick-PDF gearbeitet (hat auch durchaus einige Vorteile).
  Mit Zitat antworten Zitat
win568

Registriert seit: 8. Sep 2008
134 Beiträge
 
#7

AW: Frage zu "Foxit Quick PDF Library and Debenu Product Line End-of-Life announcemen

  Alt 13. Dez 2021, 06:14
Hi

Wir verwenden GDPicture von Orpalis. Komplette Integration per TLB in Delphi. Durch SideBySide Loading kann das Framework ohne Registrierung verwendet werden.
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.560 Beiträge
 
Delphi 12 Athens
 
#8

AW: Frage zu "Foxit Quick PDF Library and Debenu Product Line End-of-Life announcemen

  Alt 13. Dez 2021, 23:41
W
Ich kann DynaPDF sehr empfehlen. Das ist zwar nicht in Delphi geschrieben, aber es gibt eine Delphi-Unit zur Einbindung der DLL.
Ich teste gerade mal, lädt PDF-Dateien sehr schnell. Was ich noch nicht ganz verstanden habe, wie ich pdf.RenderpageToImage anwende, wenn ich das Image nicht als datei auf die Festplatte speichern, sonder in den Imagebuffer (Memory) schreiben möchte.

Und wie lese ich den (mit GetImageBuffer) wieder aus?

Hast Du da evtl. ein Beispiel zur Hand?
  Mit Zitat antworten Zitat
swestner

Registriert seit: 31. Aug 2012
Ort: Hallstadt
85 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Frage zu "Foxit Quick PDF Library and Debenu Product Line End-of-Life announcemen

  Alt 14. Dez 2021, 00:58
Hallo,

wir haben einen langen Leidensweg mit PDF-Verarbeitung / Anzeige hinter uns:

Gnostice, Synapse (wegen PDF/A), PDFIum (Winsoft), PDFKit unter iOS usw.

Das QuickPDF hatten wir uns auch mal angesehen aber die Firma Foxit hat Anfragen nicht beantwortet usw. Wenig vertrauenserweckend.

Das ganze PDF-Thema war ein ständiges Elend. Unsere Anforderungen sind umfangreich:
PDFs zusammenführen, Wasserzeichen anbringen, PDFs verschlüsseln, PDFs splitten, GUI um PDFs anzuzeigen und Annotations darauf zu zeichnen, Seiten extrahieren, Inhalte von PDFs ändern, PDF von Scratch auf erstellen, Bilder einfügen / extrahieren / ersetzen, PDF/A, das ganze Threadsafe (!) und noch zig anderes Zeug mehr.

Vor drei Monaten hatten wir dann Kontakt zu DynaPDF aufgenommen.

Der Hersteller hat uns dann im Rahmen eines Kundenprojekts die Delphi-Bibliotheken angepaßt und den bereits vorhandenen Viewer um die Funktionen zur Anbringung von Annotations auf dem PDF ergänzt.

Vorerst nur unter VCL aber für Frühjahr ist FMX geplant.

Unter VCL sind wir aber schon mit der aktuell verfügbaren Lösung sämtliche Probleme los und die Bibliothek ist rasend schnell.

Selbst in unseren in C# geschriebenen Webservices haben wir das iText rausgeworden und durch DynaPDf ersetzt. Keine Problem mehr insbesondere bei kaputten PDFs.

Wenn wir jetzt das FMX im Frühjahr noch umgesetzt bekommen dann haben wir eine Bibliothek für VCL, FMX und .Net und sparen uns eine Menge Arbeit bei der Verwaltung von Drittkomponenten und können Wissen bündeln und wiederverwenden und sind die ganzen Probleme mit Gnostice, PDFium usw. endlich los.

Vor dem Hintergrund kann ich jedem nur raten, einen ähnlichen Weg zu gehen wie wir.

https://www.dynaforms.com/de/home.html

Die Enterprise-Lizenz für etwas mehr als 1000 Euro ist wirklich gut angelegtes Geld.

Ein Wartungsvertrag wird empfohlen.

Grüße

Stefan
Stefan Westner
  Mit Zitat antworten Zitat
Benutzerbild von gubbe
gubbe

Registriert seit: 8. Okt 2005
Ort: Schleswig-Holstein
150 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Frage zu "Foxit Quick PDF Library and Debenu Product Line End-of-Life announcemen

  Alt 14. Dez 2021, 10:56
Ich teste gerade mal, lädt PDF-Dateien sehr schnell. Was ich noch nicht ganz verstanden habe, wie ich pdf.RenderpageToImage anwende, wenn ich das Image nicht als datei auf die Festplatte speichern, sonder in den Imagebuffer (Memory) schreiben möchte.

Und wie lese ich den (mit GetImageBuffer) wieder aus?

Hast Du da evtl. ein Beispiel zur Hand?
Ich verwende die Funktion nicht, sondern zeichne mit einem Rasterizer in einen Device Context. Dazu gibt es bei DynaPDF auch Beispiele in Delphi.

Wenn Du mit RenderPageToImage arbeiten willst, müsstest Du den Rückgabewert von GetImageBuffer direkt als Bild im angegebenen Format weiterverarbeiten.
Ich habe das mal versucht und das Beispiel (render_page_to_image) so abgewandelt, dass das Bild im Speicher erzeugt wird:

Delphi-Quellcode:
procedure RenderPageToImage(Image: TImage);
var
  w: Integer;
  pdf: TPDF;
  BufSize: Cardinal;
  Buffer: PAnsiChar;
  Stream: TMyStream;
begin
  pdf := nil;
  try
    pdf := TPDF.Create;
    pdf.CreateNewPDF('');
    pdf.SetImportFlags(ifImportAll or ifImportAsPage);
    if pdf.OpenImportFile('test.pdf', ptOpen, '') < 0 then
    begin
      pdf.Free;
      Exit;
    end;
    pdf.Append;
    pdf.ImportPageEx(1, 1.0, 1.0);
    pdf.EndPage;
    w := 1024;
    if pdf.RenderPageToImage(1, '', 0, w, 0, rfDefault, pxfRGB, cfFlate,
      ifmPNG) then
    begin
      buffer := pdf.GetImageBuffer(BufSize);
      Stream := TMyStream.Create;
      try
        Stream.SetPointer(Buffer, BufSize);
        Image.Picture.LoadFromStream(Stream);
      finally
        pdf.FreeImageBuffer;
        Stream.Free;
      end;
    end;
  except
    on E: Exception do
    begin
      Showmessage(E.Message);
    end;
  end;
  if pdf <> nil then
    pdf.Free;
end;
MyStream ist einfach ein MemoryStream in der gleichen Unit, damit man die Protected-Funktion "setPointer" aufrufen kann:

Delphi-Quellcode:
type
  TMyStream = class(TMemoryStream)
  end;
Zum Testen braucht man nur ein TImage im Form und ruft bei ButtonClick die Funktion auf. Die DLL muss neben der Exe liegen und natürlich eine test.pdf.

Vielleicht hat auch jemand eine bessere Idee hat, wie man das Bild aus dem Buffer laden kann?
  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 18:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz