2 Punkte von GN⁺ 2024-05-04 | 1 Kommentare | Auf WhatsApp teilen
  • Stirling PDF ist eine Open-Source-Plattform zur PDF-Bearbeitung, mit der sich PDFs bearbeiten, signieren, schwärzen, konvertieren und automatisieren lassen, ohne Dokumente an externe Dienste zu senden
  • Es unterstützt eine persönliche Desktop-App, eine Browser-UI, das Deployment auf einem eigenen Server sowie eine private API und kann so passend zur jeweiligen Arbeitsumgebung ausgeführt werden
  • Es bietet mehr als 50 PDF-Tools, darunter Funktionen wie Zusammenführen, Teilen, OCR und Komprimierung sowie UI-basierte No-Code-Pipelines und API-Automatisierung
  • Für den Enterprise-Einsatz bietet es SSO, Auditing und On-Premises-Deployment; für die meisten Tools gibt es eine REST-API zur Integration in bestehende Systeme
  • Der Schnellstart erfolgt mit Docker über docker run -p 8080:8080 docker.stirlingpdf.com/stirlingtools/stirling-pdf; anschließend wird ` geöffnet

Was Stirling PDF bietet

  • Stirling PDF ist eine Open-Source-Plattform zur PDF-Bearbeitung, die als persönliche Desktop-App, Browser-UI oder auf einem selbst gehosteten Server ausgeführt werden kann
  • Beim Deployment auf einem eigenen Server kann eine private API genutzt werden, sodass PDF-Aufgaben verarbeitet werden können, ohne Dokumente an externe Dienste zu senden
  • Zu den Hauptaufgaben gehören Bearbeitung, Signieren, Schwärzen, Konvertierung und Automatisierung

Umfang der Hauptfunktionen

  • Es werden mehr als 50 PDF-Tools bereitgestellt
    • Bearbeiten
    • Zusammenführen
    • Teilen
    • Signieren
    • Schwärzen
    • Konvertieren
    • OCR
    • Komprimieren
  • Automatisierung und Workflows werden unterstützt
    • In der UI lassen sich No-Code-Pipelines erstellen
    • Über die API können Millionen von PDFs verarbeitet werden
  • Es umfasst auch den Charakter einer Entwicklerplattform
    • Für nahezu alle Tools wird eine REST-API bereitgestellt
    • Sie lassen sich in bestehende Systeme integrieren
  • Die UI ist in mehr als 40 Sprachen verfügbar
  • Die vollständige Funktionsliste ist in der Documentation zu finden

Deployment- und Ausführungsoptionen

  • Unterstützte Umgebungen sind Desktop-Client, Browser-UI und selbst gehosteter Server
  • Der Schnellstart ist mit dem Docker-Befehl möglich
docker run -p 8080:8080 docker.stirlingpdf.com/stirlingtools/stirling-pdf

Enterprise- und Betriebsfunktionen

  • Als Enterprise-Funktionen bietet es SSO, Auditing und flexibles On-Premises-Deployment
  • Informationen zu Server Plan und Enterprise finden sich unter Server Plan & Enterprise

Entwicklung, Beiträge und Support

  • Zentrale Ressourcen
  • Support-Kanäle
  • Für Beitragsrichtlinien gilt CONTRIBUTING.md
  • Für Build-, Entwicklungs- und Testbefehle wird Task als einheitlicher Kommando-Runner verwendet
    • Mit task dev wird der Start der Editor-Ausführung begonnen
    • Mit task lassen sich häufig verwendete Befehle anzeigen
    • Alle Details stehen in DeveloperGuide.md
  • Zum Hinzufügen weiterer Übersetzungen siehe devGuide/HowToAddNewLanguage.md
  • Die Lizenz ist Open Core; Details stehen in LICENSE

1 Kommentare

 
GN⁺ 2024-05-04
Hacker-News-Kommentare
  • Im PDF-Ökosystem fehlt meiner Meinung nach vor allem eines: Open-Source-Tools rund um Signaturen
    PDF-Signaturen sind in vielen Teilen der Welt rechtlich wichtig, unter anderem wegen Vorschriften wie eIDAS, aber abgesehen von Adobe oder dubiosen proprietären Tools ist es viel zu schwer, PDF-Dokumente kryptografisch zu signieren. Selbst wenn man herausfindet, wie man mit LibreOffice oder poppler signiert, ist es schwer, ohne viel Geld ein verifizierbares Zertifikat zu bekommen
    Wenn jemand für PDFs und S/MIME-Zertifikate so etwas wie Let's Encrypt bereitstellen würde, könnte das das öffentliche Vertrauen deutlich verbessern

    • Auch wenn man angeblich ein verifizierbares Zertifikat braucht, kommt man mit eingefügten Signaturbildern in macOS Preview überraschend weit
    • Stimme völlig zu. Ich baue so etwas bei einem Unternehmen, das im eIDAS-Jargon ein TRA und QTSP ist
      Eine großartige Open-Source-Bibliothek für PDFs und digitale Signaturen, einschließlich PDF-Signaturen: https://github.com/MatthiasValvekens/pyHanko
      Das DSS Tool der European Commission ist ebenfalls nützlich. Man muss nur ein einziges PDF einreichen und nicht sowohl die Original- als auch die signierte Version: https://ec.europa.eu/digital-building-blocks/DSS/webapp-demo...
      Das Unternehmen ist https://www.zealid.com/en/, und über https://my.zealid.com/en kann man nach kostenlosem Remote-Onboarding kostenlos qualifizierte Zertifikate herunterladen und hochladen, QES-Signaturen erstellen und PDFs herunterladen. Eine API-Integration ist ebenfalls möglich
    • Absolut richtig. Als ich unseren internen IT-Mitarbeiter, der sich gut mit Windows Server auskennt, gefragt habe, wie lange es dauern würde, eine grundlegende PKI für die Signierung interner Dokumente umzusetzen, schaute er mich an, als hätte ich zwei Köpfe
    • Erfüllt macOS Preview diese Anforderung nicht?
  • Ich hoste das zu Hause. Ich nutze es selbst nicht, weil ich einfach die zugrunde liegenden Linux-CLI-Tools verwende
    Aber ich finde es besser, wenn meine Frau PDF-Konvertierungen oder das Aufteilen von PDFs damit erledigt, statt beliebige Websites oder Apps hochzuladen. Diese Seiten verwenden am Ende oft dieselben Kommandozeilen-Tools
    Meiner Frau ist es so oder so ziemlich egal, und für ihren Anwendungsfall scheint es völlig auszureichen

    • Mich würden die zugrunde liegenden Linux-CLI-Tools interessieren. Ich habe dazu Folgendes gefunden: https://pdfbox.apache.org/2.0/commandline.html
      PDFBox ist eine Java-Anwendung und sollte nicht nur unter Linux, sondern plattformübergreifend laufen. Falls du etwas anderes meintest, wäre es gut, das zu wissen
    • Es ist besser, einfach ein PDF-Tool mit Dauerlizenz für 70 Dollar zu kaufen. Das ist das Geld wirklich wert. Am besten gleich noch eine portable exe-Version dazunehmen
  • Im README steht: „Stirling PDF initiiert keine externen Aufrufe zu Archivierungs- oder Tracking-Zwecken“, also ist die Sache damit wohl entschieden

    • Ich bin der Entwickler. Die Dokumentation ist da wohl etwas missverständlich. Es wurde nicht komplett mit ChatGPT gebaut
      Es begann letztes Jahr als 24-Stunden-Challenge, bei der ich testen wollte, wie gut ChatGPT 3.0 ist, indem ich innerhalb eines Zeitlimits die gesamte App mit ChatGPT erstelle
      Ich habe es auf Reddit gepostet, dort gab es viel Nachfrage, und daraus entwickelte sich dann die vollständige App. Ausschließlich ChatGPT kam nur in den ersten 24 Stunden zum Einsatz. Inzwischen ist über ein Jahr vergangen
    • Ich frage mich, was dieser Satz bedeuten soll. Ist das nur eingefügt worden, um auf HN wahrgenommen zu werden? Es wirkt ein bisschen so wie bei Produkten oder Services, die irgendetwas mit Daten zu tun haben und dann plötzlich irgendwo auf der Landingpage noch „übrigens, wir machen auch AI“ dazuschreiben
      Man schreibt ins README ja auch nicht „mit IntelliSense entwickelt“
    • Für mich bedeutet das zwei Dinge: nicht dem öffentlichen Internet aussetzen und keine nicht vertrauenswürdigen Eingaben verwenden
      Dadurch sinkt für mich der praktische Nutzen erheblich
    • Erstaunlich. Wir leben wirklich in bemerkenswerten Zeiten
    • Kann man dem also vertrauen?
  • Es wäre schön, wenn diese Funktion in Paperless integriert würde. Manchmal wird ein gescanntes Dokument verkehrt herum eingezogen und dann muss ich es erneut scannen
    Es wäre gut, einfach auf einen Rotationsknopf zu drücken, bei Bedarf die Reihenfolge zu ändern und es dann erneut verarbeiten zu lassen

    • In der letzten Minor-Version von paperless-ngx wurden Zusammenführen, Aufteilen und Rotieren hinzugefügt
      Quelle: https://docs.paperless-ngx.com/changelog/#paperless-ngx-270
    • Aktuelle Versionen von paperless-ngx unterstützen das Drehen von Dokumenten. Einfach mal nachsehen
    • Autsch. Man kann das Dokument im PDF-Reader drehen und dann als PDF drucken
  • In einem relativ aktuellen Firefox-Update wurde ein PDF-Editor hinzugefügt
    Ich habe das Gefühl, viele Leute haben noch ein Bild von Firefox im Kopf, das mehrere Versionen alt ist. Aus Sicht von jemandem, der ihn seit jeher täglich benutzt, hat sich Firefox in den letzten Jahren ziemlich stark weiterentwickelt
    Wenn man ihn eine Weile nicht benutzt hat, lohnt sich ein weiterer Blick

  • Beim Satz im README „Stirling PDF does not initiate any outbound calls for record-keeping or tracking purposes“ frage ich mich, ob potenzielle Nutzer das vorab verifizieren können, ohne den Code zu auditieren
    Vor allem braucht die App für ihren Betrieb zwar einige Web-Anfragen, aber falls sie zum Beispiel nur Anfragen an eine eingeschränkte URL-Liste stellen darf, die in einem Manifest wie einer Content-Security-Policy steht: Wie kann eine Web-App solche Behauptungen untermauern?
    Das ist eine ziemlich konkrete Frage, wenn man eine App bereitstellt, bei der Nutzer sensible Inhalte „hochladen“ müssen

    • Wenn man selbst hostet, kann Little Snitch helfen. Wenn man nicht selbst hostet, kann man es nicht garantieren, und die Grundhaltung lautet: „vom Schlimmsten ausgehen“
      https://www.obdev.at/products/littlesnitch/index.html
      Little Snitch ist eher ein macOS-zentriertes Tool. Es gibt sicher auch andere, aber ich kenne mich damit nicht besonders aus. So etwas sollte sich wie eine Funktion auf Betriebssystemebene anfühlen
    • Wenn man selbst auf Kubernetes hostet, kann man für das betreffende Deployment oder den Pod eine deny-all-egress-Netzwerkrichtlinie setzen. Dann werden alle ausgehenden Netzwerkaufrufe blockiert
    • Eine Web-App muss keine externen Web-Anfragen stellen, um zu funktionieren. Die Anfragen werden von Nutzern initiiert, die mit dem Web interagieren
      Man kann den Zugriff auf die App über einen HTTP-Proxy bereitstellen und die ausgehenden Anfragen der Web-App filtern oder sogar ganz darauf verzichten, Netzwerk-Routing für den Server zu konfigurieren, der die App hostet. Dann bleiben nur noch Anfragen übrig, die von JavaScript innerhalb der gerenderten Seite gestartet werden
    • Letztlich ist das ein Problem bei fast allen Paketen, Bibliotheken und Systemen, die wir nutzen
      Open Source basiert auf einem beträchtlichen Maß an Vertrauen, und wir alle sind Teil dieser Struktur
    • Man kann einfach einen Sniffer oder ein Netzwerk-Capture-Tool wie Wireshark dazwischenschalten. Zusätzlich kann man den Netzwerkzugriff der App auch vollständig auf das lokale Heimnetz beschränken
  • Ich arbeite an einem Produkt, das sich ähnlich beschreiben ließe
    CxReports: selbst gehostetes webbasiertes PDF-Reporting-Tool
    https://www.cx-reports.com

  • Als ich dieses Projekt vor ein paar Monaten gesehen habe, war ich sofort begeistert. Ich habe es installiert und angefangen, es tatsächlich zu nutzen, aber es gab viele Bugs, und einige Tools waren praktisch unbenutzbar
    Hoffentlich ist es inzwischen besser geworden

  • Ich habe das einmal benutzt, um den Kontrast in einer PDF-Datei mit gescannten Textformularen zu erhöhen. Der Scan war fast unsichtbar, also musste im Grunde nur alles Dunkle dunkler und wenn möglich etwas dicker gemacht werden, damit es besser lesbar wird
    Aber selbst bei so einer scheinbar simplen Aufgabe hat das Tool nicht wirklich geholfen, und die Verbesserung war sehr gering. Ich habe es mehrfach versucht, aber ab dem zweiten Durchgang gab es keinen sichtbaren Unterschied mehr, nur die Dateigröße änderte sich weiter

    • Das ist eigentlich kein Problem des PDFs selbst. In diesem Fall ist das PDF nur ein dünner Wrapper um ein Rasterbild
      Man kann das Bild extrahieren, dann mit GIMP oder ImageMagick den Kontrast erhöhen und anschließend ein neues PDF erzeugen. Wenn es viele Dateien sind, kann man das auch skripten
  • Ich schaue mir gerade die Liste an und suche nach einer API zum Extrahieren von Text aus PDFs
    Oder ob man ihn vielleicht als Vektoren oder in eingebetteter Form herausbekommen kann