25 Punkte von GN⁺ 2025-08-16 | 1 Kommentare | Auf WhatsApp teilen
  • EmbedPDF ist ein Open-Source-PDF-Viewer, der sich einfach in jedes JavaScript-Projekt integrieren lässt
  • Kompatibel mit verschiedenen Frontend-Frameworks wie React, Vue, Svelte, Preact und Vanilla JS
  • Enthält umfangreiche Funktionen wie Anmerkungen, Hervorhebungen, echte Textentfernung (Redaction), Suche, Zoom und Drehung
  • Unterstützt dank virtuellem Scrollen und einer Plugin-Struktur sowohl bessere Performance als auch Erweiterbarkeit
  • Unter MIT-Lizenz frei nutzbar und offen für Beiträge

Überblick über das Open-Source-PDF-Viewer-Projekt EmbedPDF

  • EmbedPDF ist ein frameworkunabhängiger Open-Source-PDF-Viewer, der sich mühelos in jedes JavaScript-Projekt einbetten lässt
  • Steht unter der MIT-Lizenz und bietet starke Kompatibilität mit modernen Frontend-Frameworks wie React, Vue, Svelte, Preact und Vanilla JS
  • Bietet ein modernes Leseerlebnis und eine entwicklerfreundliche API

Hauptfunktionen

  • Unterstützung für Anmerkungen: Bietet verschiedene Kommentarfunktionen wie Hervorhebungen, Sticky Notes, Freitext und Ink
  • Echte Redaction: Bei Verwendung der Redaction-Funktion werden die tatsächlichen Inhalte im Dokument vollständig entfernt – als Sicherheitsfunktion
  • Enthält zentrale PDF-Funktionen wie Suche, Textauswahl, Zoom und Drehung
  • Durch flüssiges, virtualisiertes Scrollen können auch große Dokumente ohne Leistungseinbußen angezeigt werden
  • Plugin-basierte Architektur und tree-shakeable Plugins schließen unnötigen Code aus und erleichtern Erweiterungen

Dokumentation und Demo

  • Offizielle Dokumentation, Installationsanleitung, API-Referenz und Beispiele sind unter https://www.embedpdf.com verfügbar
  • In der Live-Demo können PDF-Dateien direkt hochgeladen oder Funktionen mit Beispieldokumenten ausprobiert werden

Open Source und Lizenz

  • Unter MIT-Lizenz ist der Quellcode frei nutzbar, und Beiträge sind willkommen
  • Enthält PDFium; dieser Teil unterliegt der Apache License 2.0

Community und Beiträge

  • Die Teilnahme der Open-Source-Community sowie verschiedenste Beiträge sind willkommen
  • Entwicklerkommunikation ist über den Contributing-Guide und Github Discussions möglich

Bedeutung und Alleinstellungsmerkmale des Projekts

  • Als Alternative zu bestehenden kommerziellen PDF-Viewern lässt sich die PDF-Viewer-Funktion damit frei und einfach in interne Systeme oder SaaS integrieren
  • Die hohe Kompatibilität mit verschiedenen Frameworks sowie die moderne, modulare Struktur heben das Projekt hervor
  • Ein seltenes Beispiel dafür, dass Open Source fortgeschrittene PDF-Verarbeitungsfunktionen wie Redaction bereitstellt

1 Kommentare

 
GN⁺ 2025-08-16
Hacker-News-Kommentare
  • Die eigentlich wichtige Arbeit findet in PDFium statt; es wird darauf hingewiesen, dass PDFium ein Projekt ist, das Google nach der Übernahme von Foxit weiter selbst entwickelt hat und das derzeit in Chrome eingesetzt wird. (Damit soll die gerade viel diskutierte Arbeit nicht herabgewürdigt werden, es wird nur erwähnt, dass es sich nicht um einen vollständig neu geschriebenen PDF-Parser handelt.)
    • Vermutlich basieren viele PDF-Viewer, einschließlich kommerzieller Produkte, auf PDFium.
  • Es wird gefragt, warum dieses Projekt entwickelt wurde, obwohl es Mozilla PDF.js bereits gibt https://github.com/mozilla/pdf.js. (Das ist keine Kritik, sondern einfach Neugier, weil es viele Gründe geben kann, etwas Bestehendes noch einmal neu zu bauen.)
    • Das Hauptziel war, einen PDF-Viewer zu schaffen, den Entwickler leicht in Websites integrieren können; PDF.js ist in manchen Anwendungsfällen schwer oder komplex anzupassen und zu erweitern.
    • Wenn PDF-Markup wie Anmerkungen, Formen oder Kommentare benötigt wird, bleibt entweder ein Eigenbau oder ein ziemlich teurer PDF-Editor im Abo übrig; Teams, die tatsächlich Apryse integriert haben, berichten, dass allein die Kosten für einfache PDF-Bearbeitungsunterstützung sehr hoch sind.
    • Schon auf den ersten Blick ist erkennbar, dass es Funktionen wie Anmerkungskommentare gibt, die sich von bestehenden Produkten unterscheiden.
    • Wer das Demo-Dokument auf einem iPad oder iPhone öffnet, wird feststellen, dass die Print-Preview-Funktion nur auf Desktop-Geräten funktioniert.
    • Ein Blick auf 402 offene Issues lässt die enorme Komplexität von PDF und den Aufwand erahnen, der nötig ist, um all diese Funktionen zu unterstützen.
  • Jemand hat früher ein Side-Project mit eingebettetem PDF-Viewer gebaut; in der ersten Version wurde pdf.js verwendet, aber bei schnellem Zoomen ruckelte es und es war schwer, den Fokus zu halten. Deshalb wurde es direkt mit C++-pdfium und Metal-Rendering umgesetzt. Das ist im Demo-Video zu sehen. Dabei wurde ein Tiling-Verfahren verwendet, um ein Gleichgewicht zwischen Speicherverbrauch und Performance zu erreichen. Es überrascht, dass pdfium sogar in WebAssembly so leistungsfähig ist; tatsächlich ist UI-Entwicklung im Web angenehmer als in C++.
    • Ehrlich gesagt wirkt die Demo viel schneller und flüssiger; das Zoom-Verhalten ist wirklich sehr sauber umgesetzt. Das weckt den Wunsch, selbst wieder in die Entwicklung einzusteigen und die Performance zu verbessern.
  • Jemand nutzt pdf.js und teilt Probleme aus Tests mit einem PDF mit 17 MB, 158 Seiten und vielen Bildern unter Windows:
    • Links funktionieren nicht.
    • Lesezeichen werden angezeigt, funktionieren aber nicht.
    • In Firefox ist keine Textauswahl möglich.
    • In Chrome führt ein Mittelklick zum Scrollen stattdessen zur Textauswahl.
    • In pdf.js ist das Scrollen in Ordnung, aber in diesem Produkt wirkt der Bildschirm beim Scrollen mehrere hundert bis tausend Millisekunden lang unscharf, mit starkem Qualitätsverlust; wenn mit der Ende-Taste oder ähnlich über mehrere Seiten gesprungen wird, ist nur ein weißer Bildschirm zu sehen.
    • In Firefox funktionieren Pfeil hoch/runter, Bild auf/ab, Pos1/Ende nicht (links/rechts funktioniert).
  • Es wurde kurz getestet, und in Firefox funktionierte die Anmerkungsfunktion überhaupt nicht; in Chrome wurde dagegen bestätigt, dass alle Anmerkungsfunktionen wie Unterstreichen und Hervorheben normal funktionieren.
    • Eine Antwort bedankt sich für den Hinweis, da Anmerkungen in Firefox noch nicht getestet wurden; gut zu hören, dass es in Chrome ohne Probleme funktioniert, und es soll bald überprüft werden.
  • Es wird gefragt, ob die Bearbeitung eingebetteter Outlines/Lesezeichen unterstützt wird; das sei bei PDF-Viewern und -Editoren immer eine der am meisten vermissten Funktionen, und immer wenn ein PDF ohne Outline ankommt, fehle genau diese Funktion.
  • Unter Linux + Firefox funktionieren im Demo weder die Werkzeuge für Anmerkungen noch für Schwärzung (redaction); in Chromium auf derselben Maschine funktioniert es dagegen.
    • Es wird mitgeteilt, dass das Problem in Firefox gerade behoben wurde und Anmerkungs- sowie Schwärzungsfunktionen nun sowohl unter Linux + Firefox als auch unter Chromium normal funktionieren.
  • Die Dokumentation sei ebenfalls ausgezeichnet, und das Konzept einer headless React-Bibliothek gefalle besonders; dadurch lassen sich Custom UI und Funktionen leicht ergänzen. Es wird gefragt, wie schwierig es ist, bestimmte Begriffe automatisch hervorzuheben oder zu unterstreichen und beim Klicken oder Hover eine Custom-Komponente anzuzeigen.
    • Das ist sehr einfach möglich; eine solche Funktion ist bereits implementiert. In der AnnotationLayer können selectionMenu und Custom-Komponenten direkt gerendert werden. Wer tiefer einsteigen möchte, kann im Discord-Kanal nachfragen.
  • Das Produkt wirkt beeindruckend. Gefragt wird, wie die Entwicklung eines so funktionsreichen kostenlosen PDF-Viewers langfristig fortgeführt werden soll und ob Funktionen für Enterprise, PDF-Hosting oder andere Monetarisierungsmodelle geplant sind.
    • Auf die Frage wird auf alles mit „Ja“ geantwortet: Der clientseitige PDF-Viewer bleibt kostenlos und unter MIT-Lizenz, zusätzliche Funktionen wie PDF-Hosting sowie Analytics und Zugriffskontrolle für Enterprise sollen jedoch als kostenpflichtige Dienste angeboten werden.
  • Insgesamt funktioniere alles gut, aber beim Wechsel in den Ansichtsmodus mit aktivem Schwärzungswerkzeug (rote Linie aktiv) blieb redaction weiterhin aktiv, sodass Scrollen nicht möglich war; ein Neuladen löste das Problem.
    • Die Antwort darauf: gutes Feedback, das werde bald behoben. Auf Mobilgeräten ist deaktiviertes Scrollen im Schwärzungsmodus beabsichtigt, weil die präzise Bereichsauswahl so einfacher ist. Beim Wechsel auf den View-Tab sollte der Schwärzungsmodus jedoch in jedem Fall beendet werden; danke für den Fund.