Pdf.js: Times New Roman PS mal renderizado

Creado en 22 mar. 2019  ·  3Comentarios  ·  Fuente: mozilla/pdf.js

Adjunte (recomendado) o enlace al archivo PDF aquí:
EMG8 -Cambridge Essentail Gold Maths 8-B 117.pdf

Configuración:

  • Navegador web y su versión: Chrome 73
  • Sistema operativo y su versión: * Macos 10.14.1 *
  • Versión PDF.js :
  • Es una extensión de navegador: No

Pasos para reproducir el problema:


  1. Abra el PDF (es una sola página extraída de un libro) y vea las fuentes mal renderizadas

image

¿Cuál es el comportamiento esperado? (agregar captura de pantalla)
En cualquier otro lector de PDF funciona bien:
image

Enlace a un visor (si está alojado en un sitio que no sea mozilla.github.io/pdf.js o como extensión de Firefox / Chrome):
Visor de páginas de github actual: https://mozilla.github.io/pdf.js/web/viewer.html

Notas:
Logramos que funcione editando las fuentes dentro del PDF. Actualmente es "Times New Roman PS", volver a renderizarlo con solo "Times New Roman" parece arreglarlo.

No hay errores de consola ni ningún otro signo visible de soluciones, como CMaps faltantes.

Lamentablemente, no se nos permite alterar los archivos PDF, por lo que volver a renderizar cada uno no es una solución viable.

Si alguien puede darnos una idea de esto y una posible solución, se lo agradecería enormemente 🤠

4-font-conversion

Comentario más útil

El PDF define las mismas fuentes muchas veces. Por ejemplo, la fuente LULQLP+TimesLTStd-Roman se define nueve veces. Cada uno se refiere al mismo FontDescriptor y al mismo flujo de datos CFF incrustado.

Hay un cálculo de hash de fuente en PartialEvaluator.prototype.preEvaluateFont() en core / evaluator.js. Agrega entradas Codificación, ToUnicode y Anchuras en el hash. Algunas fuentes en el PDF obtienen códigos hash idénticos porque todas las entradas mencionadas son idénticas, incluso anchos. Solo las entradas FirstChar y LastChar difieren. Si las fuentes obtienen códigos hash idénticos, ¿podría hacer que se omita una fuente para que no se convierta a OpenType?

Aquí hay un PDF reducido que contiene dos fuentes del PDF original
número10665_reduced.pdf

Todos 3 comentarios

El PDF define las mismas fuentes muchas veces. Por ejemplo, la fuente LULQLP+TimesLTStd-Roman se define nueve veces. Cada uno se refiere al mismo FontDescriptor y al mismo flujo de datos CFF incrustado.

Hay un cálculo de hash de fuente en PartialEvaluator.prototype.preEvaluateFont() en core / evaluator.js. Agrega entradas Codificación, ToUnicode y Anchuras en el hash. Algunas fuentes en el PDF obtienen códigos hash idénticos porque todas las entradas mencionadas son idénticas, incluso anchos. Solo las entradas FirstChar y LastChar difieren. Si las fuentes obtienen códigos hash idénticos, ¿podría hacer que se omita una fuente para que no se convierta a OpenType?

Aquí hay un PDF reducido que contiene dos fuentes del PDF original
número10665_reduced.pdf

Hay un cálculo de hash de fuente en PartialEvaluator.prototype.preEvaluateFont() en core / evaluator.js. Agrega entradas Codificación, ToUnicode y Anchuras en el hash. Algunas fuentes en el PDF obtienen códigos hash idénticos porque todas las entradas mencionadas son idénticas, incluso anchos. Solo las entradas FirstChar y LastChar difieren.

Realmente excelente análisis, gracias; ¡Esto hizo que el error fuera fácil de solucionar!

Si las fuentes obtienen códigos hash idénticos, ¿podría hacer que se omita una fuente para que no se convierta a OpenType?

En algunos archivos PDF mal generados puede haber grandes cantidades de fuentes idénticas, y el propósito de preEvaluateFont era simplemente evitar tener que cargar / analizar los duplicados. Por lo tanto, loadFont comparará hash es y, si es posible, utilizará una fuente ya cargada / analizada.
Obviamente, todo esto depende del hecho de que los hash es en realidad son correctos / únicos, pero afortunadamente ha habido relativamente pocos errores en ese código a lo largo de los años.

¡Esto es increíble, muchas gracias por la ayuda!

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

liuzhen2008 picture liuzhen2008  ·  4Comentarios

patelsumit5192 picture patelsumit5192  ·  3Comentarios

sujit-baniya picture sujit-baniya  ·  3Comentarios

hp011235 picture hp011235  ·  4Comentarios

xingxiaoyiyio picture xingxiaoyiyio  ·  3Comentarios