Pdf.js: IOS não consegue renderizar certos PDFs

Criado em 16 mar. 2018  ·  4Comentários  ·  Fonte: mozilla/pdf.js

16391_49885.pdf

Configuração:

Navegador da web e sua versão: Safari Latest
Sistema operacional e isso
versão s: iOS 11.1.1
Versão PDF.js: mais recente
Etapas para reproduzir o problema:

Carregue o arquivo anexado em qualquer renderizador ou visualizador de pdf.js.
Qual é o comportamento esperado? (adicionar captura de tela)
Renderização de PDF

O que deu errado? (adicionar captura de tela)
Uma tela em branco em branco é exibida em vez do pdf.
Isso só acontece em navegadores iOS. Funciona em todos os navegadores para Windows e em todos os navegadores para MacOS. Ele também funciona no Google Chrome em um dispositivo Android.

1-core 4-os-ios

Todos 4 comentários

Eu verifiquei o pdf listado acima no visualizador da web

Primeiro verifico se funciona com outros pdfs com este pdf :

No Safari:

No Google Chrome:

Em seguida, tento abrir o documento especificado no Safari:

Tentativa de abrir o documento especificado no Google Chrome

Também descobri que se tento abrir o pdf de trabalho com o visualizador da web depois de tentar abrir o pdf do hanyan123, o pdf de trabalho não é mais renderizado.

No Safari:

29634560_10208553894044613_2131570870_o

No Google Chrome:

Também encontramos esse problema com outro documento no iOS: https://tcpdf.org/files/examples/example_033.pdf (PDF de 1 página)

Após a investigação, obtivemos algumas informações adicionais sobre este erro:

  • Também é reproduzível no Safari para desktop (v. 11.0.3 (12604.5.6.1.1), macOS 10.12.6) usando o visualizador hospedado em https://mozilla.github.io/pdf.js/web/viewer.html .
  • Os documentos são carregados (o link acima e o link por @ hanyan123), mas leva muito tempo (aproximadamente 5-10 minutos).

Tenho observado algo semelhante, embora, no meu caso, nunca tenha visto a exibição do documento, mesmo depois de esperar. Descrevi minhas observações sobre StackOverflow - repetirei minha pergunta aqui, junto com a resposta convincente de alguém:

Eu tenho um documento PDF de duas páginas que não é renderizado no Safari ou Chrome no iOS, usando pdf.js; existem duas páginas, mas ambas estão em branco. Se eu "imprimir" o documento com CutePDF em outro pdf, ele renderiza! Mas se eu otimizar usando o Acrobat PRO, ele não renderiza. Li em algum lugar que, se renderizar como PostScript com o Acrobat PRO e depois salvar novamente como pdf, isso se lineariza; ainda sem amor. Eu mostro todos os quatro sabores aqui - a miniatura mostra os metadados em PDF, junto com o tamanho do arquivo. Apenas a versão CutePDF é renderizada, embora não seja a menor. Além de simplesmente reimprimir todos os PDFs que tenho em meu site com CutePDF - alguém pode me dizer por que o pdf.js está insatisfeito?

NB: Todos os quatro sabores são renderizados no Windows. É apenas o iOS que tem o problema, com três dos quatro.

Aqui está a resposta:

Todas as versões não funcionais têm o bitmap desenhado como um único XObject grande envolto em um padrão. A versão de trabalho tem o bitmap cortado em muitas imagens menores desenhadas diretamente no conteúdo da página. Você pode querer procurar os problemas do pdf.js relacionados a esses fatores.

CutePDF não fornece a opção de controlar o bitmap dessa forma - ele apenas o faz. O que há sobre um "único XObject grande envolto em um padrão" que o pdf.js não gosta - e, como posso controlar, por exemplo, o Acrobat PRO para renderizar como o CutePDF faz (se essa for a solução alternativa)?

Tenho observado algo semelhante, embora, no meu caso, nunca tenha visto a exibição do documento, mesmo depois de esperar. Descrevi minhas observações sobre StackOverflow - repetirei minha pergunta aqui, junto com a resposta convincente de alguém:

Eu tenho um documento PDF de duas páginas que não é renderizado no Safari ou Chrome no iOS, usando pdf.js; existem duas páginas, mas ambas estão em branco. Se eu "imprimir" o documento com CutePDF em outro pdf, ele renderiza! Mas se eu otimizar usando o Acrobat PRO, ele não renderiza. Li em algum lugar que, se renderizar como PostScript com o Acrobat PRO e depois salvar novamente como pdf, isso se lineariza; ainda sem amor. Eu mostro todos os quatro sabores aqui - a miniatura mostra os metadados em PDF, junto com o tamanho do arquivo. Apenas a versão CutePDF é renderizada, embora não seja a menor. Além de simplesmente reimprimir todos os PDFs que tenho em meu site com CutePDF - alguém pode me dizer por que o pdf.js está insatisfeito?
NB: Todos os quatro sabores são renderizados no Windows. É apenas o iOS que tem o problema, com três dos quatro.

Aqui está a resposta:

Todas as versões não funcionais têm o bitmap desenhado como um único XObject grande envolto em um padrão. A versão de trabalho tem o bitmap cortado em muitas imagens menores desenhadas diretamente no conteúdo da página. Você pode querer procurar os problemas do pdf.js relacionados a esses fatores.

CutePDF não fornece a opção de controlar o bitmap dessa forma - ele apenas o faz. O que há sobre um "único XObject grande envolto em um padrão" que o pdf.js não gosta - e, como posso controlar, por exemplo, o Acrobat PRO para renderizar como o CutePDF faz (se essa for a solução alternativa)?

Alguma atualização sobre este problema? Eu também encontrei isso.

Esta página foi útil?
0 / 5 - 0 avaliações