PDF-Spezifikationen für Programmierer: Adobe oder ISO?

Lesezeit: 7 Minuten

Ich möchte eine Anwendung codieren, die ein PDF-Dokument lesen und decodieren kann; Wo soll ich jetzt die Spezifikationen für dieses Dateiformat bekommen? Das PDF-Format ist von der ISO-Gruppe standardisiert, aber es ist mir nicht klar, wo die zuverlässigste Quelle ist, um diese Art von Informationen zu erhalten.

Was ist eine gute Quelle, um mit diesem Dateiformat zu beginnen?

  • @Thomas kennst du eine C/C++ Bibliothek, die winzig und kompakt ist? Es gibt viele schreckliche Bibliotheken …

    – Benutzer1824407

    1. Januar 2013 um 16:03 Uhr


  • @all_those_who_vote_to_close_question_as_not_constructive (Daniel Fischer, Flexo, C. Ross, Bo Persson, Matthew Lundberg): Diese Frage war sehr gültig, und das Schließen war tatsächlich sehr unkonstruktiv. Und die Begründung, die Sie dafür gewählt haben, ist lächerlich. Keiner von euch hat bisher nennenswerte Reputationspunkte mit gesammelt [pdf] — also warum überlässt du diese Frage nicht Leuten, die sich mit dem Thema besser auskennen als du?!?

    – Kurt Pfeifle

    2. Januar 2013 um 2:52 Uhr


  • @DanielFischer: SO ist auch für Neuling Entwickler. Und selbst der erfahrenste C#- oder Haskell-Experte wird vielleicht zum ersten Mal damit beauftragt, Software zu entwickeln, die mit PDF-Dokumenten umgehen muss. An wen sonst als an SO sollte er sich also wenden, um eine solche Frage zu stellen? Bitte?

    – Kurt Pfeifle

    4. Januar 2013 um 11:03 Uhr

  • @DanielFischer: Nun, (auch wenn ich Ihr Argument akzeptieren würde) in diesem Fall haben Sie keinen hilfreichen Kommentar gepostet, aber trotzdem dafür gestimmt, ihn zu schließen. 🙁 –

    – Kurt Pfeifle

    4. Januar 2013 um 11:21 Uhr

  • Ich fand das eine wirklich gute Frage. Ja, bei SO geht es um Entwicklungsfragen, aber die Person, die diese Frage gestellt hat, war tatsächlich schlau genug, sich nach dem Rahmen um seine Entwicklung zu erkundigen, anstatt in die Dinge zu stolpern und 10 dumme Fragen zu SO zu stellen, weil sie nicht nachgedacht haben, bevor sie angefangen haben. Vergessen wir nicht, dass die Entwicklung mit Ihrer Forschung beginnt; Ich würde jemandem, der erst nachdenkt, Extrapunkte geben. Fragen zu den Grundlagen Ihrer Entwicklung qualifizieren sich für mich definitiv als Entwicklungsfragen… Oh, und es ist eine schlau Frage!

    – David van Driessche

    5. Januar 2013 um 13:42 Uhr

Benutzer-Avatar
David van Driessche

Sie können tatsächlich beide Quellen verwenden, die Sie erwähnt haben; Die Verwirrung ist historisch.

Adobe hat PDF erfunden und es hat die Acrobat-Produktfamilie erfunden, die zusammen damit verwendet werden kann. Die verschiedenen PDF-Versionen wurden zusammen mit den wichtigsten Acrobat-Versionen veröffentlicht (PDF 1.3 beispielsweise wurde zusammen mit Acrobat 4 veröffentlicht).

Aufgrund der Übernahme des PDF-Formats und weil eine Reihe von ISO-Standards geschrieben wurden, die tatsächlich vom proprietären PDF-Dateiformat abhängig waren (keine einfache Sache für einen ISO-Standard), entschied sich Adobe, das PDF-Format an ISO zu übergeben.

Von diesem Zeitpunkt an und bis heute gibt es ein ISO-Komitee, das für die Bearbeitung der PDF-Spezifikation und die Erstellung neuer Versionen verantwortlich ist. Der ISO-Standard für PDF ist ISO 32000.

Denken Sie auch daran, dass je nachdem, wo Sie PDF verwenden möchten, eine Reihe anderer ISO-Standards sehr nützlich oder unverzichtbar sein können. Zu den am häufigsten verwendeten gehören PDF/X (für den Austausch von PDF-Dateien in der Publishing-Community) und PDF/A (für die Erstellung von PDF-Dateien, die langfristig archiviert werden müssen). Diese Spezifikationen beziehen sich auf eine bestimmte Version des PDF-Standards und fügen zusätzliche Anforderungen und Einschränkungen hinzu.

Was die Spezifikation betrifft, können Sie alle Dokumente direkt von der ISO erhalten. Für PDF selbst können Sie es jedoch auch von Adobe erhalten, und dieses Dokument ist identisch. Weitere Informationen finden Sie auf der Adobe DevNet-Website zu Acrobat:

http://www.adobe.com/devnet/acrobat.html

Laden Sie einfach das Acrobat SDK herunter und erhalten Sie die dazugehörige Dokumentation.

Lassen Sie mich ein Wort der Vorsicht zum “Zielen auf die PDF-Spezifikation” im Code hinzufügen. Ich rate Ihnen wirklich, wirklich, wirklich, genauer zu spezifizieren, was Ihre Anforderungen an PDF sind (Bearbeiten, Generieren, Qualitätskontrolle (Preflight)) und dann nach einer bestehenden Bibliothek zu suchen oder nach einer bestehenden Bibliothek zu fragen, die diese Anforderungen erfüllt oder erweitert werden kann, um sie zu erfüllen Deine Bedürfnisse.

Etwas zu schreiben, das “PDF” im Allgemeinen unterstützt, wird eine entmutigende Aufgabe sein. Die PDF-Spezifikation ist groß, kompliziert und voller … naja … Feinheiten. Es gibt Drachen!


Aktualisieren:

Direkter Link zum PDF-1.7-Spezifikationsdokument von Adobe (erste Ausgabe, kostenlos zum Download, hier:

Der Inhalt dieses Dokuments wurde später offiziell als ISO-Standard für allgemeines PDF, ISO 32000-1, übernommen.

Beachten Sie jedoch, dass es einige Unterschiede zu der von ISO verfügbaren PDF-Datei gibt:

Wenn Sie mit der Entwicklung von PDF-Software beginnen, reicht es aus, das (kostenlose) PDF von obigem Adobe-Link zu haben.


Aktualisierung: 2021

Erwähnenswert ist, dass ISO inzwischen eine neue Version der PDF-Spezifikation namens ISO 32000-2 veröffentlicht hat. Informationen dazu auf der ISO-Site. Diese neue Version wurde 2017 veröffentlicht und erhielt im Dezember 2020 ein Update.

Während das Dokument PDF nicht dramatisch verändert und die meisten allgemeinen Informationen über PDF aus beispielsweise der kostenlosen Adobe-Version der Spezifikation immer noch korrekt sind, gibt es definitiv Änderungen:

  • Viele Dinge, insbesondere zutiefst technische Dinge wie alles zur Transparenz, wurden aktualisiert, hauptsächlich um die bestehende Sprache zu klären (und Informationen hinzuzufügen, die bisher mehr oder weniger implizit waren). Diese Aktualisierungen kann Auswirkungen darauf haben, wie diese Teile des Standards zu implementieren oder zu verwenden sind.
  • Neue Funktionen wurden in den Standard aufgenommen.

Wenn Sie PDF-Dateien schreiben, insbesondere einfachere, sollte die Adobe-Spezifikation immer noch in Ordnung sein, um Sie zum Laufen zu bringen. Wenn Sie alles im PDF-Standard unterstützen möchten, müssen Sie für die neueste ISO-Version bezahlen (aber das ist sowieso eine große Herausforderung).

Benutzer-Avatar
Matt Petersson

PDF ist kein leichtgewichtiges Format. Es ist im Grunde Postscript mit Komprimierung an der Spitze. Eine vorhandene Bibliothek ist bestimmt was Sie verwenden möchten, schreiben Sie nicht Ihr eigenes. Es ist eine riesige Aufgabe.

Oder besorgen Sie sich eine vorhandene PDF-Writer-Anwendung und starten Sie sie aus Ihrem Programm heraus.

Ich habe es mir noch nicht so genau angeschaut, aber libgnupdf sieht ok aus.

Entsprechend Wikipedia PDF kombiniert drei Technologien:

  • Eine Teilmenge der PostScript-Seitenbeschreibungs-Programmiersprache zum Generieren des Layouts und der Grafiken.
  • Ein System zum Einbetten/Ersetzen von Schriftarten, damit Schriftarten mit den Dokumenten transportiert werden können.
  • Ein strukturiertes Speichersystem, um diese Elemente und alle zugehörigen Inhalte in einer einzigen Datei zu bündeln, gegebenenfalls mit Datenkomprimierung.

  • Soweit ich weiß, kann das PDF-Dateiformat viele andere Dinge enthalten, die nicht wirklich PS-gleich sind, wie Bitmap-Bilder und Videos. PS ist im Grunde eine Sprache für Drucker, die auf Monitore beschränkt war, aber ich denke, dass PDF eher ein Container ist.

    – Benutzer1824407

    1. Januar 2013 um 16:28 Uhr

  • auch dass gnupdf GPLv3 ist, also ist es nutzlos.

    – Benutzer1824407

    1. Januar 2013 um 16:29 Uhr

  • Das Problem ist nicht, dass es Open Source ist (eigentlich ist es ein +1), das Problem ist die GPL und ihre virale Lizenz.

    – Benutzer1824407

    1. Januar 2013 um 16:38 Uhr

  • Es gibt tatsächlich RIESIGE Unterschiede zwischen PostScript und PDF. Das Aufrufen von PostScript-PDF mit Komprimierung an der Spitze würdigt keine der beiden Sprachen. Der größte Unterschied besteht vielleicht darin, dass PostScript eine echte Programmiersprache ist, PDF jedoch nicht. Das ist ein enormer Unterschied und erklärt, warum PDF heute das verwendete Format ist (es gibt natürlich auch andere Gründe), während PostScript verschwindet.

    – David van Driessche

    1. Januar 2013 um 23:04 Uhr

  • Nein, das tust du eigentlich nicht. Das Problem mit PostScript ist, dass es sich tatsächlich um eine Programmiersprache handelt und Sie Code benötigen, der das Programm ausführt (was jede PostScript-Datei ist) und es ihm ermöglicht, seine Ausgabe zu generieren. PDF ist viel, viel einfacher und enthält nur sehr einfache Anweisungen wie “Textursprung verschieben”, “Rechteck zeichnen”, “Füllfarbe festlegen”, “Schriftart festlegen” … Es ist wirklich ein ganz anderes Tier. (und ich habe gerade eine Hintergrundantwort auf die Spezifikation geschrieben, die ihm helfen sollte :))

    – David van Driessche

    1. Januar 2013 um 23:15 Uhr

1012270cookie-checkPDF-Spezifikationen für Programmierer: Adobe oder ISO?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy