Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Frage zu "Foxit Quick PDF Library and Debenu Product Line End-of-Life announcement" (https://www.delphipraxis.net/209469-frage-zu-foxit-quick-pdf-library-debenu-product-line-end-life-announcement.html)

swestner 14. Dez 2021 00:58

AW: Frage zu "Foxit Quick PDF Library and Debenu Product Line End-of-Life announcemen
 
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

gubbe 14. Dez 2021 08:03

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

Zitat von fred.ahrens (Beitrag 1499056)
Ich kann aber empfehlen, sich mit dem Foxit Support in Verbindung zu setzen. Man ist dort um Unterstützung bemüht. Jetzt wo die Situation geklärt ist, antworten sie ja auch wieder :-D

Danke für den Hinweis. Ich werde dort mal nachfragen, welche Optionen es jetzt gibt.

haentschman 14. Dez 2021 08:29

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

DynaPDF
...verwendet die Bibliothek gsdll32.dll oder ist das ganze nativ? :gruebel:

gubbe 14. Dez 2021 08:35

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

Zitat von haentschman (Beitrag 1499070)
...verwendet die Bibliothek gsdll32.dll oder ist das ganze nativ? :gruebel:

Nein, DynaPDF verwendet kein Ghostscript. Es steckt alles in einer DLL ohne weitere Abhängigkeiten.

haentschman 14. Dez 2021 08:35

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

gubbe 14. Dez 2021 10:56

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

Zitat von Harry Stahl (Beitrag 1499058)
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?

Harry Stahl 14. Dez 2021 15:43

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

Zitat von gubbe (Beitrag 1499082)
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:

Herzlichen Dank!

Funktioniert prima.

Meine Tochter hat mir aus ihrer Studienzeit (Architektur) mal so ein paar Monster PDF-Dateien (zig tausende Elemente, Blattmaße 42x80 cm) zum Testen gegeben. Hier rendert Dynapdf die Seiten im Vergleich zu QPDF 2-3 mal so schnell, das ist doch ein deutlicher Unterschied (statt 6 nur 2 Sekunden warten).

Kleines Update: Dyna-PDF funktioniert auch unter Linux und macOS.

bytecook 5. Apr 2022 09:05

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

ich habe jetzt gerade wieder mal probiert, den Debenu Support zu erreichen. Ich habe eine aktive "Premium Upgrade Protection Subscription [Delphi Source Code License]", die noch bis 08/22 läuft.
Ich frage regelmäßig bei Foxit wegen des aktuellen Sourcecodes nach, jedoch erhalte ich seit Monaten keine Antwort auf meine Anfragen. Bevor ich jetzt meinen Anwalt einschalte wollte ich nochmal nachfragen, ob es ggf eine andere Adresse von Foxit als <<support@foxitsoftware.com>> gibt.

Lg,
Peter

gubbe 5. Apr 2022 09:12

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

schreib mal direkt an leonardo_martello (statt support). Zumindest habe ich von ihm zuletzt im Dezember den aktuellen Quelltext bekommen.

bytecook 5. Apr 2022 09:41

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

Zitat von gubbe (Beitrag 1504264)
Hallo Peter,

schreib mal direkt an leonardo_martello (statt support). Zumindest habe ich von ihm zuletzt im Dezember den aktuellen Quelltext bekommen.

Danke, habe ich eben gemacht!

NACHTRAG: Hat endlich funktioniert, habe 18.22 erhalten (6.12.2021). Gehe davon aus, das dies der letzte war :).


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:31 Uhr.
Seite 3 von 4     123 4      

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