¿Por qué el contenido de un PDF está en un idioma extraño cuando lo abro con el bloc de notas?

Gracias por A2A.

PostScript sin procesar es mayormente legible por humanos. Es principalmente un lenguaje de texto basado en FORTH.

El problema que enfrenta cuando mira un archivo PDF en el bloc de notas es que divide automáticamente los caracteres de varios bytes en caracteres individuales de 8 bits. Sin embargo, debido a la forma en que PostScript manejó inicialmente los caracteres extendidos, incluso ç debería ser identificable por la presencia de c y the, aunque no puedo garantizar esto en los días de Unicode.

En los días de DOS, MS Word envió un archivo de encabezado grande antes de un documento para enseñar a una impresora PostScript cómo entender su propio lenguaje MSPrint pre-PostScript que fue escrito con la previsión de fuentes escalables y la anticipación de la salida a Linotype maquinas.

Si bien ese archivo de encabezado era bastante incomprensible de un vistazo, el documento real generado por MSPrint podría volver a cargarse en un editor de texto y el texto del documento original podría extraerse con fines de reconstrucción.

Es cierto que si las personas detrás de convertir PostScript a MSPrint hubieran escrito un controlador PostScript directo , la sobrecarga de memoria en una impresora PostScript se habría reducido significativamente. Imagine que tiene una computadora antigua de 8 bits que ejecuta BASIC en el inicio y, dentro de ella, desea escribir un nuevo programa que pueda ejecutar C ++. Eso es lo que el archivo de encabezado original le hizo a una impresora PostScript.

Es cierto que el controlador de impresora PostScript que se envió con DOS Word solo era capaz de usar las fuentes incorporadas, y estaba limitado a tamaños de punto completo.

También se escribe una fuente PostScript adecuada en el lenguaje PostScript, de modo que se puedan descargar nuevas fuentes a la impresora si aún no están presentes. Si bien el lenguaje y el intérprete PostScript estaban extremadamente bien escritos, las fuentes emergentes no lo estaban. En lugar de confiar en la capacidad de PostScript para dibujar, estirar y distorsionar un círculo básico (o cualquier parte del arco de ese círculo), junto con la capacidad de trazar una curva precisa de acuerdo con una ecuación matemática, muchos escritores de controladores anteriores a Windows solo dependía de la capacidad de dibujar líneas, y un círculo (u otra curva) se definiría mediante múltiples comandos de línea a línea, y nunca se encontraría un comando de arcto . Esto dio como resultado bordes irregulares que eran obviamente visibles, incluso en las fuentes, particularmente cuando se ampliaron.

PostScript originalmente solo se escribió para manejar blanco y negro, y el sombreado gris se realizó con puntos de diferentes tamaños, de la misma manera que se creó una vieja foto de periódico.

Había un protocolo específico para descargar imágenes de mapa de bits a la impresora que, de nuevo, se entregaba en números legibles por humanos.

Le doy crédito a la Mac por hacer que PostScript sea convencional, incluso si el porcentaje de impresoras PostScript conectadas a Windows es mucho mayor.

Mac ha llegado a dominar en los campos de Video y Fotografía, pero la PC y Windows todavía tienen un control absoluto sobre todo lo demás en el mercado.

Windows no usa PostScript. Las fuentes Truetype y Opentype ni siquiera usan las mismas reglas que las fuentes PostScript, sino que dependen de las curvas de Bezier. Las curvas de Bezier son una forma perezosa de definir más o menos una curva que la computadora puede procesar más rápidamente; solo intente dibujar un círculo apropiado con las curvas de Bezier y verá que es casi imposible.

Por ejemplo, imprime una página “Bookman.ps” B “en una impresora de inyección de tinta, y luego hace lo mismo para una Bookman.ttf” B “, si solo encuentra discrepancias menores, significa que ambos archivos de fuentes se han dominado por una persona Si una fuente ps ha sido traducida por computadora a una fuente ttf, el mismo ejercicio revelará variaciones significativas .

Incluso cuando se llama una fuente incorporada en una impresora PostScript, y luego se escala, el motor crea una imagen de mapa de bits de la fuente en ese tamaño. Como se requiere cada carácter para imprimir, copia el mapa de bits en su lugar. Cuando cambia el tamaño de fuente, este proceso se repite para el nuevo tamaño. A menos que tenga poca memoria, la impresora generalmente retendrá estas representaciones de mapa de bits hasta que finalmente reciba el comando {EndDocument}, o puede descartar una representación de mapa de bits anterior a favor de la actual.

Windows usa su propio lenguaje pseudo-PostScript para manejar fuentes y escalar. Cuando imprime una página, la salida se genera en este pseudo-idioma que luego se traduce directamente al formulario de mapa de bits mediante el controlador de impresora de Windows seleccionado. Lo mismo se aplica a la generación de un archivo PDF. El pseudo-lenguaje de Windows debe traducirse a PostScript real para que un visor de PDF pueda leerlo. Para lograr esto, Windows a menudo inserta representaciones de mapa de bits de fuentes en el tamaño de punto deseado.

Originalmente, había tres tipos básicos de archivos para PostScript. Un archivo de fuente, un archivo PDF (Formato de documento portátil) y un archivo EPS (PostScript encapsulado). Un EPS puede considerarse equivalente a un solo carácter PostScript, incluso si contiene un gráfico masivamente detallado. Esto se puede colocar en cualquier lugar de una página y aumentar o disminuir su tamaño, y la impresora se encarga del resto.

Mientras que los archivos .ps y .eps no han cambiado drásticamente, PDF sí. En lugar de ser solo una copia en lenguaje PostScript de un documento que puede imprimirse o visualizarse, se ha convertido en un documento interactivo propio. Es por eso que puede completar formularios PDF antes de imprimir. Algunos de estos formularios son tan complejos que la selección de una opción puede “crear” o “eliminar” una sección del documento oculta pero incrustada.

Como señalé anteriormente, la mayoría de estos PDF habrá sido generada por Windows. Desde los días de DOS, cuando “Nadie necesitará más de 640kB *”, MS ha sido bastante descuidado en su codificación. Si toma el primer programa tan estándar que la gente escribió en sus máquinas domésticas:
* A menudo atribuido a Bill Gates, aunque niega haberlo dicho alguna vez.

10 CLS
20 IMPRIME “HOLA MUNDO”

Casi no ocupa espacio en forma de código fuente. Cuando se somete a un compilador BASIC, termina con un archivo exe de 50kB + que está lleno de rutinas de manejo de errores de DOS sin referencia que aún serían manejadas por DOS en lugar de su programa original.

Este mismo descuido se aplica a Word. Cree un solo párrafo y expórtelo como HTML. El resultado será una gran cantidad de material innecesario (¿dónde está mi párrafo original en todo eso?), Cuando un buen escritor de HTML podría hacer todo desde cero, resultando en algo solo un poco más grande que su párrafo original.

Si bien PostScript, como lenguaje, intenta mantener su legibilidad humana, los PDF generados a través de Windows (y probablemente versiones posteriores de MacOS) generalmente tendrán encabezados incomprensibles y material extraño incrustado, porque ya nadie sabe cómo escribir código apretado . Además, si el sistema operativo se redujera a un código básico, la aplicación utilizada para crear la fuente del PDF aún podría estar insertando su propio material innecesario.

¿La respuesta más simple? Debido a que el Bloc de notas no sabe cómo se presentan los elementos internos de un PDF, solo está destinado a archivos de texto en los que cada carácter se sigue entre sí en grupos de 8 bits (es decir, un byte a un carácter). Por lo tanto, interpreta todos los códigos en un PDF como si estuvieran dispuestos como números largos de 8 bits que representan caracteres en la tabla ASCII.

Esto ni siquiera está cerca de cómo se definen las partes internas de un PDF. Por lo tanto, nunca podría mostrarlo correctamente.

En cambio, un PDF se basa en el estándar de datos PostScript (Post Script Reference) omitiendo algunas características y agregando otras, luego también comprimido usando algo similar a ZIP. PDF de referencia. Si no se comprimió, entonces el Bloc de notas puede haber tenido una ligera esperanza de intentar mostrar el PostScript similar al código fuente del programa que describe cómo organizar el texto, las imágenes, los enlaces, los archivos adjuntos, etc. contenidos dentro del PDF. Pero debido a que está comprimido, no hay posibilidad de que un byte contenga incluso un solo carácter igual al contenido original.

Debido a esto, el Bloc de notas es simplemente la herramienta incorrecta para abrir archivos PDF. Simplemente no puede hacerlo ya que no está diseñado para hacerlo. Si desea abrir un PDF, obtenga una herramienta que “sepa” cómo funciona un PDF. Lista de software PDF – Wikipedia

Los archivos PDF no son texto ASCII (que es lo que el bloc de notas puede leer): contienen todo tipo de información de formato, datos de fuente, imágenes, etc.

El Bloc de notas solo puede manejar letras, números y signos de puntuación, sin formatear información, etc.

Como han dicho otros, no es un lenguaje extraño, sino el resultado del bloc de notas tratando de leer el contenido del archivo PDF como si fueran simplemente una serie de caracteres ASCII, básicamente letras y otros dígitos.

El archivo PDF no es simplemente una secuencia de letras y símbolos, sino una descripción compleja de un conjunto de texto, imágenes y demás, con un formato y diseño específicos.

Es un poco como tener a alguien que solo sabe chino escribir una descripción detallada de un documento escrito en árabe, y luego pedirle a alguien que solo hable inglés que lo interprete.

El resultado es más o menos el mismo, es decir, basura.

Porque es binario. Cuando lo abres en el Bloc de notas, ves la representación ASCII del binario.

Por ejemplo, el binario 1000101010000000 se mostrará como Š € (caracteres ASCII 138 y 128 respectivamente) en el Bloc de notas

No está en un “lenguaje extraño”: está viendo una representación de texto ASCII de código de computadora.

Un PDF no es un documento de texto, es un formato de datos complejo que admite imágenes, texto, diseño y todo tipo de otras cosas.

Simplemente no es “legible por humanos”.

La respuesta se puede encontrar en wikipedia.
En resumen, es un formato binario. PDF es una representación binaria de fragmentos de textos con sus coordenadas, dirección y escala; Las imágenes también pueden estar presentes. Probablemente no podrá leer el texto, porque está comprimido. Pero en Internet hay herramientas en línea que le permiten descifrar un pdf. Por ejemplo, si algunas partes del texto están “redactadas” (cubiertas por cuadrados negros “), no elimina el texto, y el texto puede extraerse fácilmente usando estas herramientas en línea.