Pdf.js: IOS kann bestimmte PDFs nicht rendern

Erstellt am 16. März 2018  ·  4Kommentare  ·  Quelle: mozilla/pdf.js

16391_49885.pdf

Aufbau:

Webbrowser und seine Version: Safari Latest
Betriebssystem und es
s-Version: iOS 11.1.1
PDF.js-Version: neueste
Schritte zum Reproduzieren des Problems:

Laden Sie die angehängte Datei in einen beliebigen pdf.js-Renderer oder -Viewer.
Was ist das erwartete Verhalten? (Screenshot hinzufügen)
Rendern von PDF

Was schief gelaufen ist? (Screenshot hinzufügen)
Anstelle der PDF-Datei wird eine leere weiße Leinwand angezeigt.
Dies geschieht nur in iOS-Browsern. Es funktioniert auf allen Browsern für Windows und allen Browsern für MacOS. Es funktioniert auch in Google Chrome auf einem Android-Gerät.

1-core 4-os-ios

Alle 4 Kommentare

Ich habe die pdf oben in aufgelistet Web Viewer

Zuerst überprüfe ich, ob es mit anderen pdfs mit diesem pdf funktioniert:

Bei Safari:

In Google Chrome:

Dann versuche ich, das angegebene Dokument in Safari zu öffnen:

Versuchen Sie, das angegebene Dokument in Google Chrome zu öffnen

Ich habe auch festgestellt, dass, wenn ich versuche, das Arbeits-PDF mit dem Web Viewer zu öffnen, nachdem ich versucht habe, das PDF von hanyan123 zu öffnen, das Arbeits-PDF nicht mehr gerendert wird.

Bei Safari:

29634560_10208553894044613_2131570870_o

In Google Chrome:

Dieses Problem ist auch bei einem anderen Dokument auf iOS aufgetreten: https://tcpdf.org/files/examples/example_033.pdf (1-seitiges PDF)

Nach der Untersuchung haben wir einige zusätzliche Informationen zu diesem Fehler erhalten:

  • Es ist auch in Desktop-Safari (v. 11.0.3 (12604.5.6.1.1), macOS 10.12.6) mit dem gehosteten Viewer unter https://mozilla.github.io/pdf.js/web/viewer.html reproduzierbar
  • Die Dokumente werden geladen (sowohl das oben verlinkte als auch das von @hanyan123 verlinkte), aber es dauert sehr lange (ca. 5-10 Minuten).

Ich habe ähnliches beobachtet, obwohl ich in meinem Fall die Dokumentenanzeige auch nach dem Warten nie gesehen habe. Ich habe meine Beobachtungen zu StackOverflow beschrieben - ich werde meine Frage hier zusammen mit der überzeugenden Antwort von jemandem wiederholen:

Ich habe ein zweiseitiges PDF-Dokument, das weder in Safari noch in Chrome unter iOS mit pdf.js gerendert wird. Es gibt zwei Seiten, aber beide sind leer. Wenn ich das Dokument mit CutePDF in ein anderes PDF "drucke", wird es gerendert! Aber wenn ich mit Acrobat PRO optimiere, wird es nicht gerendert. Ich habe irgendwo gelesen, dass, wenn ich mit Acrobat PRO als Postscript rendere und dann als PDF erneut speichere, das linearisiert wird; immer noch keine Liebe. Ich zeige alle vier Aromen hier - die Miniatur zeigt die PDF - Metadaten, zusammen mit der Dateigröße. Nur die CutePDF-Version rendert, obwohl sie nicht die kleinste ist. Abgesehen davon, dass ich einfach jedes PDF, das ich auf meiner Website habe, mit CutePDF neu ausdrucke - kann mir jemand sagen, worüber pdf.js unzufrieden ist?

Hinweis: Alle vier Geschmacksrichtungen rendern unter Windows. Nur iOS hat das Problem, mit drei der vier.

Hier die Antwort:

Bei allen nicht funktionierenden Versionen wird die Bitmap als einzelnes großes XObject gezeichnet, das in ein Muster eingeschlossen ist. Die Arbeitsversion hat die Bitmap in viele kleinere Bilder geschnitten, die direkt in den Seiteninhalt gezeichnet werden. Vielleicht möchten Sie nach Problemen mit pdf.js suchen, die mit diesen Faktoren zusammenhängen.

CutePDF bietet nicht die Möglichkeit, die Bitmap auf diese Weise zu steuern - es tut es einfach. Was hat pdf.js mit einem "einzelnen großen XObject in einem Muster" nicht zu tun - und wie kann ich beispielsweise steuern, dass Acrobat PRO so rendert, wie es CutePDF tut (wenn das die Problemumgehung ist)?

Ich habe ähnliches beobachtet, obwohl ich in meinem Fall die Dokumentenanzeige auch nach dem Warten nie gesehen habe. Ich habe meine Beobachtungen zu StackOverflow beschrieben - ich werde meine Frage hier zusammen mit der überzeugenden Antwort von jemandem wiederholen:

Ich habe ein zweiseitiges PDF-Dokument, das weder in Safari noch in Chrome unter iOS mit pdf.js gerendert wird. Es gibt zwei Seiten, aber beide sind leer. Wenn ich das Dokument mit CutePDF in ein anderes PDF "drucke", wird es gerendert! Aber wenn ich mit Acrobat PRO optimiere, wird es nicht gerendert. Ich habe irgendwo gelesen, dass, wenn ich mit Acrobat PRO als Postscript rendere und dann als PDF erneut speichere, das linearisiert wird; immer noch keine Liebe. Ich zeige alle vier Aromen hier - die Miniatur zeigt die PDF - Metadaten, zusammen mit der Dateigröße. Nur die CutePDF-Version rendert, obwohl sie nicht die kleinste ist. Abgesehen davon, dass ich einfach jedes PDF, das ich auf meiner Website habe, mit CutePDF neu ausdrucke - kann mir jemand sagen, worüber pdf.js unzufrieden ist?
Hinweis: Alle vier Geschmacksrichtungen rendern unter Windows. Nur iOS hat das Problem, mit drei der vier.

Hier die Antwort:

Bei allen nicht funktionierenden Versionen wird die Bitmap als einzelnes großes XObject gezeichnet, das in ein Muster eingeschlossen ist. Die Arbeitsversion hat die Bitmap in viele kleinere Bilder geschnitten, die direkt in den Seiteninhalt gezeichnet werden. Vielleicht möchten Sie nach Problemen mit pdf.js suchen, die mit diesen Faktoren zusammenhängen.

CutePDF bietet nicht die Möglichkeit, die Bitmap auf diese Weise zu steuern - es tut es einfach. Was hat pdf.js mit einem "einzelnen großen XObject in einem Muster" nicht zu tun - und wie kann ich beispielsweise steuern, dass Acrobat PRO so rendert, wie es CutePDF tut (wenn das die Problemumgehung ist)?

Irgendein Update zu diesem Thema? Ich bin auch darauf gestoßen.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

azetutu picture azetutu  ·  4Kommentare

PeterNerlich picture PeterNerlich  ·  3Kommentare

xingxiaoyiyio picture xingxiaoyiyio  ·  3Kommentare

anggikolo11 picture anggikolo11  ·  3Kommentare

dmisdm picture dmisdm  ·  3Kommentare