• IT-Karriere:
  • Services:

pdf.js

Mozillas Javascript-PDF-Renderer arbeitet pixelperfekt

Das von den Mozilla-Entwicklern Chris Jones und Andreas Gal gestartete Projekt pdf.js hat seinen ersten Meilenstein erreicht. Der komplett in Javascript geschriebene PDF-Renderer kann Mozillas Tracemonkey-PDF pixelgenau im Browser darstellen.

Artikel veröffentlicht am ,
pdf.js 0.2 mit Vorschauleiste
pdf.js 0.2 mit Vorschauleiste (Bild: pdf.js)

Eigentlich sollte pdf.js erst angekündigt werden, wenn der in Javascript realisierte PDF-Renderer in der Lage ist, ein 2009 veröffentlichtes Dokument über Trace Compilation "pixel-perfekt" zu rendern. Doch das Interesse an dem Projekt, begleitet durch eine wachsende Unterstützung anderer Entwickler, war groß und so stellten Chris Jones und Andreas Gal schon Mitte Juni 2011 ihr Projekt pdf.js vor. Nun, zwei Wochen später, ist der einst gesetzte Meilenstein erreicht und pdf.js liegt in der Version 0.2 vor.

Stellenmarkt
  1. über InterSearch Personalberatung GmbH & Co. KG, Großraum Berlin / Brandenburg
  2. medac Gesellschaft für klinische Spezialpräparate mbH, Wedel

Wichtigste Neuerung von pdf.js 0.2 ist die Möglichkeit, Type-1-Fonts zu laden. In der ersten Version war noch ein einzelner Font fest verdrahtet worden, weshalb die Unterschiede in den Screenshots nicht ganz so dramatisch ausfallen. Umgesetzt hat dies Vivien Nicolas.

  • pdf.js 0.2 mit Vorschauleiste (unten) im Vergleich mit pdf.js 0.1 (oben)
  • pdf.js 0.2 (unten) im Vergleich mit pdf.js 0.1 (oben)
  • pdf.js 0.2 (unten) im Vergleich mit pdf.js 0.1 (oben)
  • pdf.js 0.2 (unten) im Vergleich mit pdf.js 0.1 (oben)
  • pdf.js 0.2 (unten) im Vergleich mit pdf.js 0.1 (oben)
pdf.js 0.2 mit Vorschauleiste (unten) im Vergleich mit pdf.js 0.1 (oben)

Darüber hinaus unterstützt pdf.js gestrichelte Linien, wozu eine API-Erweiterung des Canvas-Elements von Firefox genutzt wird, die derzeit auf dem Wege der Standardisierung ist.

Justin D'Arcangelo hat das Userinterface von pdf.js überarbeitet und unter anderem eine Vorschauleiste integriert. Sie taucht auf, wenn man mit der Maus über die dunkle Leiste am linken Rand des Fensters fährt.

Golem Akademie
  1. IT-Sicherheit für Webentwickler
    31. Mai - 1. Juni 2021, online
  2. Einführung in die Programmierung mit Rust
    21.-24. September 2021, online
Weitere IT-Trainings

Zudem wurde bereits Unterstützung für verschlüsselte PDFs und eingebettete JPEGs umgesetzt und Julian Vierec hat ein Web-Worker-Backend gebaut, das in einer der kommenden pdf.js-Versionen zum Einsatz kommen soll.

Nach Angaben von Chris Jones sind mit dem pixelgeauen Rendering des Tracemonky-PDFs die größten Herausforderungen gelöst und es sei nicht mehr damit zu rechnen, dass neue Probleme das gesamte Projekt infrage stellen. Wobei das pixelgenaue Rendern noch leicht übertrieben ist, denn dies stimmt nur für die aktuellen Entwicklerversionen von Firefox und Windows 7 mit Direct2D und DirectWrite, sofern man von einem Bug in Directwrite absieht. In anderen Firefox-Versionen und auch anderen Browsern und unter anderen Betriebssystemen sieht das Ergebnis deutlich schlechter aus.

Für die kommende Version von pdf.js sollen weitere PDF-Funktionen integriert werden. So haben sich die Entwickler das Ziel gesetzt, die Spezifikation PDF 1,7 pixelgenau zu rendern. Die Arbeiten daran haben schon begonnen. Zudem soll die Architektur von pdf.js überarbeitet und die Verarbeitung mittels Web Workers parallelisiert werden. So sollen rechenintensive Aufgaben in den Hintergrund verlagert werden, damit sie den Hauptthread nicht blockieren.

Mozilla will pdf.js künftig zur Anzeige von PDF-Dokumenten im Browser einsetzen, so dass PDF-Dateien ohne Plugins dargestellt werden können. Aber auch andere Browser und Projekte sollen pdf.js nutzen können. Dazu steht der Code unter der sehr liberalen BSD-Lizenz.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed


Anzeige
Hardware-Angebote
  1. (u. a. Ryzen 7 5800X für 469€)
  2. (u. a. Ryzen 5 5600X 358,03€)

Bankai 06. Jul 2011

und was willst du uns jetzt damit sagen? Das dieser 3 klassige Konverter das auch kann...

GodsBoss 06. Jul 2011

Warum in JS?

Trockenobst 06. Jul 2011

Wir nutzen PDF X-Change Viewer von TrackerSoftware fürs PDF schauen. 20 MB statt 150 wie...

Thread-Anzeige 05. Jul 2011

Pixelisten hilft sowas halt. Bis der Chef mit seinem Ipad ankommt oder andere Top-Manager...

LX 05. Jul 2011

Problem? Gruß, LX


Folgen Sie uns
       


VLC-Gründer Jean-Baptiste Kempf im Interview

Wir haben uns mit dem Präsidenten der VideoLAN-Nonprofit-Organisation unterhalten.

VLC-Gründer Jean-Baptiste Kempf im Interview Video aufrufen
Programm für IT-Jobeinstieg: Hoffen auf den Klebeeffekt
Programm für IT-Jobeinstieg
Hoffen auf den Klebeeffekt

Aktuell ist der Jobeinstieg für junge Ingenieure und Informatiker schwer. Um ihnen zu helfen, hat das Land Baden-Württemberg eine interessante Idee: Es macht sich selbst zur Zeitarbeitsfirma.
Ein Bericht von Peter Ilg

  1. Arbeitszeit Das Sechs-Stunden-Experiment bei Sipgate
  2. Neuorientierung im IT-Job Endlich mal machen!
  3. IT-Unternehmen Die richtige Software für ein Projekt finden

Weclapp-CTO Ertan Özdil: Wir dürfen nicht in Schönheit und Perfektion untergehen!
Weclapp-CTO Ertan Özdil
"Wir dürfen nicht in Schönheit und Perfektion untergehen!"

Der CTO von Weclapp träumt von smarter Software, die menschliches Eingreifen in der nächsten ERP-Generation reduziert. Deutschen Perfektionismus hält Ertan Özdil aber für gefährlich.
Ein Interview von Maja Hoock


    Fiat 500 als E-Auto im Test: Kleinstwagen mit großem Potenzial
    Fiat 500 als E-Auto im Test
    Kleinstwagen mit großem Potenzial

    Fiat hat einen neuen 500er entwickelt. Der Kleine fährt elektrisch - und zwar richtig gut.
    Ein Test von Peter Ilg

    1. Vierradlenkung Elektrischer GMC Hummer SUV fährt im Krabbengang seitwärts
    2. MG Cyberster MG B Roadster mit Lasergürtel und Union Jack
    3. Elektroauto E-Auto-Prämie übersteigt in 2021 schon Vorjahressumme

      •  /