Pdf.js: agregar tamaño de papel a la información del documento

Creado en 15 feb. 2016  ·  29Comentarios  ·  Fuente: mozilla/pdf.js

¿Sería posible agregar tamaño de papel a la información del documento?

Esto es importante para saber si el documento utiliza papel de tamaño carta o A4 (entre otros).

1-viewer 2-feature

Comentario más útil

No puedo codificar, por lo que los programadores experimentados pueden dar mejores consejos.

Estoy seguro de que los colaboradores principales tendrán la mente abierta sobre la forma en que se abordará este problema. La principal preocupación aquí es que una solución no debe ser compleja y no agregar una carga en el mantenimiento futuro del proyecto.

Personalmente, como primer paso, simplemente agregaría información sobre el tamaño de la página sin nombres "agradables" (para evitar su localización), tal vez (automáticamente) detectar unidades. El segundo paso sería la discusión del nombre y la orientación del tamaño de la página.

Todos 29 comentarios

¿Y puede incluir retrato / paisaje?

¿Cuál es el comportamiento esperado si se utilizan varios tamaños / orientaciones de página, es decir, algunas páginas son en formato A4 vertical, pero otras son A3 horizontal, por ejemplo? ¿Cómo hacen eso otros espectadores?

y también tenemos que ocuparnos de la internacionalización y la localización, por ejemplo

  • Es necesario traducir "A4" o "Carta"
  • 10cm × 15cm será en pulgadas para EE. UU.

Re: rotación. Voy a comprobar qué hace el PR 8043 por mí. Eso puede solucionar mi problema. Parece que realmente necesito leer PR 8043 y # 6103 correctamente, y asegurarme de que estoy en una versión tardía con esas correcciones aplicadas.

Re: varios tamaños. No sé si alguno de los backends de impresión lo admite sin dividir la impresión en varios trabajos de impresión. Si no divide el trabajo de impresión, tiene "imprimir en el más grande" o "escalar al más pequeño" como opciones sensatas.

Cups incluye un encabezado de tamaño de medio con cada trabajo de impresión, por lo que Linux y MacOS están limitados a un tamaño por trabajo de impresión, hasta donde yo sé.

Re: localización.
La impresora tiene una lista de tamaños de papel posibles y disponibles.
El cuadro de diálogo de impresión del sistema operativo conoce la ubicación del usuario y una lista de impresoras.
El cuadro de diálogo de impresión del SO no conoce el tamaño del original.
El visor de PDF conoce la ubicación, pero no una lista de impresoras, por lo que no una lista de papel disponible.
El visor de PDF conoce el tamaño del PDF original.
El generador de pdf conoce las configuraciones regionales del servidor y del cliente.
El usuario odia la "letra de carga de la PC"

Re: rotación. Voy a comprobar qué hace el PR 8043 por mí.
Re: varios tamaños. No sé si algún backend de impresión lo admite sin dividir la impresión i ..
Re: localización ... La impresora tiene una lista de tamaños de papel posibles y disponibles ...

@berenddeschouwer No creo que nada de lo anterior esté relacionado con el OP

¿Cuál es el comportamiento esperado si se utilizan varios tamaños / orientaciones de página, es decir, algunas páginas son en formato A4 vertical, pero otras son A3 horizontal, por ejemplo? ¿Cómo hacen eso otros espectadores?

@timvandermeij , SumatraPDF muestra el tamaño de la página navegada (la que tiene el número en la barra de herramientas).

y también tenemos que ocuparnos de la internacionalización y la localización, por ejemplo

  • Es necesario traducir "A4" o "Carta"
  • 10cm × 15cm será en pulgadas para EE. UU.

@yurydelendik , no creo que A4 deba traducirse.

Y hasta donde yo sé, las dimensiones de la página se especifican en puntos dentro del documento PDF. Por lo tanto, PDF.js debería usar la unidad de dimensión predeterminada del sistema operativo.

@ousia ¿cuál es el tamaño de página esperado para el documento en https://github.com/mozilla/pdf.js/blob/master/test/pdfs/sizes.pdf ?

@ousia ¿cuál es el tamaño de página esperado para el documento en https://github.com/mozilla/pdf.js/blob/master/test/pdfs/sizes.pdf?

@yurydelendik , no entiendo tu pregunta.

El tamaño es una propiedad relacionada con la página real, no con el documento.

en términos de PDF, /MediaBox es una entrada en el diccionario /Page , no en /Catalog ( /Pages es la entrada allí).

¿Cuál debería ser el tamaño de página del documento que mencionas?

_Acrobat Reader_ muestra las dimensiones de la página mostrada. Aqui lo tienes.

pageone

pagetwo

pagethree

¡Gracias por proporcionar esta información! Ahora que esto está claro, creo que debería ser bueno implementarlo. Estoy marcando esto como un buen error para principiantes, ya que no debería ser demasiado difícil.

Puedo eliminar esto si nadie está trabajando en ello.

@loganhuskins ¡ Es tuyo!

Creo que estoy bastante cerca, quiero usar getPagesOverview() de base_viewer .

¿Debo importar import { BaseViewer } from './base_viewer'; en pdf_document_properties y luego hacer BaseViewer.getPagesOverview()[0] como el valor del valor de pageSize que estoy planeando mostrar? De alguna manera, esto no parece funcionar, ¿hay algún otro método util que pueda reutilizar para obtener esta información? Perdón por robarle esto a Logan.

He estado ocupado con el trabajo, así que si te haces cargo de esto, estoy bien.

Hola,
¿Es esto lo que estás buscando hacer?

compressed tracemonkey pldi 09 pdf

@ linton-Portman, en ese caso agregar _Letter, portrait_ sería genial.

Quiero decir, con tamaños de papel estándar, es útil proporcionar el nombre del papel estándar.

Mira lo que hace _Evince_:

evince-properties

Y _SumatraPDF_:

sumatrapdf-properties

Quiero decir, con tamaños de papel estándar, es útil proporcionar el nombre del papel estándar.

Eso significa que debemos localizar correctamente todos estos nombres. ¿Existe una breve lista de tamaños de papel populares?

Hola,
Por lo que he leído hasta ahora, las diferencias están en el tamaño del papel (carta de EE. UU. = 8,50 x 11,00 pulgadas y A4 de Reino Unido = 8,26 x 11,69 pulgadas) ... La forma en que iba a abordarlo era usando una serie de declaraciones if / else comprobando estos tamaños. Entonces esto determinará qué texto se muestra ... Al usar también estos tamaños, también puede determinar si es vertical u horizontal ...

Esta será una gran cantidad de declaraciones if / else dependiendo de cuántos tamaños de papel se atiendan ...
Soy un principiante / novato, así que tal vez haya una mejor manera :)

a4 portrait pdf
letter portrait pdf

Tenga en cuenta que es mejor expresar el tamaño A4 en mm, por ejemplo, 210 mm x 297 mm

@yurydelendik Oh, sí, también puedo hacer eso.

Aquí tienes una lista (que adapté de ConTeXt).

Tamaños de papel europeos estándar:

[A0] [ancho = 841 mm, alto = 1189 mm]
[A1] [ancho = 594 mm, alto = 841 mm]
[A2] [ancho = 420 mm, alto = 594 mm]
[A3] [ancho = 297 mm, alto = 420 mm]
[A4] [ancho = 210 mm, alto = 297 mm]
[A5] [ancho = 148 mm, alto = 210 mm]
[A6] [ancho = 105 mm, alto = 148 mm]
[A7] [ancho = 74 mm, alto = 105 mm]
[A8] [ancho = 52 mm, alto = 74 mm]
[A9] [ancho = 37 mm, alto = 52 mm]
[A10] [ancho = 26 mm, alto = 37 mm]

Tamaños de papel estándar europeos menos comunes:

[B0] [ancho = 1000 mm, alto = 1414 mm]
[B1] [ancho = 707 mm, alto = 1000 mm]
[B2] [ancho = 500 mm, alto = 707 mm]
[B3] [ancho = 353 mm, alto = 500 mm]
[B4] [ancho = 250 mm, alto = 353 mm]
[B5] [ancho = 176 mm, alto = 250 mm]
[B6] [ancho = 125 mm, alto = 176 mm]
[B7] [ancho = 88 mm, alto = 125 mm]
[B8] [ancho = 62 mm, alto = 88 mm]
[B9] [ancho = 44 mm, alto = 62 mm]
[B10] [ancho = 31 mm, alto = 44 mm]

Tamaños de sobres europeos estándar:

[C0] [ancho = 917 mm, alto = 1297 mm]
[C1] [ancho = 648 mm, alto = 917 mm]
[C2] [ancho = 458 mm, alto = 648 mm]
[C3] [ancho = 324 mm, alto = 458 mm]
[C4] [ancho = 229 mm, alto = 324 mm]
[C5] [ancho = 162 mm, alto = 229 mm]
[C6] [ancho = 114 mm, alto = 162 mm]
[C7] [ancho = 81 mm, alto = 114 mm]
[C8] [ancho = 57 mm, alto = 81 mm]
[C9] [ancho = 40 mm, alto = 57 mm]
[C10] [ancho = 28 mm, alto = 40 mm]

Tamaño del papel de la portada del CD:

[CD] [ancho = 120 mm, alto = 120 mm]

Tamaños de papel estándar americano:

[letra] [ancho = 8,5 pulgadas, alto = 11 pulgadas]
[libro mayor] [ancho = 11 pulgadas, alto = 17 pulgadas]
[tabloide] [ancho = 17 pulgadas, alto = 11 pulgadas]

[legal] [ancho = 8.5 pulgadas, alto = 14 pulgadas]
[folio] [ancho = 8,5 pulgadas, alto = 13 pulgadas]
[ejecutivo] [ancho = 7.25 pulgadas, alto = 10.5 pulgadas]

Diferentes juegos de sobres:

[sobre 9] [ancho = 8.88 pulgadas, alto = 3.88 pulgadas]
[sobre 10] [ancho = 9.5 pulgadas, alto = 4.13 pulgadas]
[sobre 11] [ancho = 10,38 pulgadas, alto = 4,5 pulgadas]
[sobre 12] [ancho = 11.0 pulgadas, alto = 4.75 pulgadas]
[sobre 14] [ancho = 11,5 pulgadas, alto = 5,0 pulgadas]
[monarca] [ancho = 7.5 pulgadas, alto = 3.88 pulgadas]
[comprobar] [ancho = 8.58 pulgadas, alto = 3.88 pulgadas]
[DL] [ancho = 110 mm, alto = 220 mm]
[E4] [ancho = 280 mm, alto = 400 mm]

Creo que es útil agregar si la orientación es vertical u horizontal.

@ linton-Portman, por lo que veo en sus capturas de pantalla, tengo una pregunta:

¿No sería mejor la siguiente información?

Letter, portrait (8.5  × 11 in)

Quiero decir, estas siguientes adaptaciones:

  • Utilice primero el nombre del papel.

  • Seguido de _portrait_ o _landscape_.

    Por cierto, si la separación anterior es una coma, creo que la palabra debería comenzar con una letra minúscula.

  • Escribe las dimensiones entre paréntesis.

    • Es mejor usar el signo Unicode apropiado _ × _ (en lugar de _x_).

    • Qué tamaño de papel requiere qué dimensiones se especifica en la lista anterior.

    • Creo que es mejor usar abreviaturas para unidades de longitud (_in_ o _mm_ en este caso).

Si eso no fuera posible, _portrait_ o _landscape_ deberían ir entre paréntesis.

Muchas gracias por tu aporte.

@ linton-Portman, usar switch podría ser una mejor alternativa a las declaraciones if... else .

No puedo codificar, por lo que los programadores experimentados pueden dar mejores consejos. (Simplemente respondí a su pregunta, ya que quedó sin respuesta).

Aquí tienes una lista (que adapté de ConTeXt).

Todo eso necesita ser traducido. Personalmente, prefiero encontrar de 5 a 10 tamaños de página más usados ​​y darles nombres.

Carta, retrato (8,5 × 11 pulg.)

Por eso: "8.5 x 11 pulg., Carta / Retrato" o simplemente "100 mm x 200 mm" puede parecer una mejor opción aquí.

Es mejor usar el signo Unicode adecuado × (en lugar de x).

Sí, pero también depende de los localizadores de una cultura específica

No puedo codificar, por lo que los programadores experimentados pueden dar mejores consejos.

Estoy seguro de que los colaboradores principales tendrán la mente abierta sobre la forma en que se abordará este problema. La principal preocupación aquí es que una solución no debe ser compleja y no agregar una carga en el mantenimiento futuro del proyecto.

Personalmente, como primer paso, simplemente agregaría información sobre el tamaño de la página sin nombres "agradables" (para evitar su localización), tal vez (automáticamente) detectar unidades. El segundo paso sería la discusión del nombre y la orientación del tamaño de la página.

Lo probé, ya que no ha habido comunicación aquí desde hace 2 meses aproximadamente. Se disculpa si debería haber preguntado antes.
El RP agrega la vista Tamaño de página en pt, lo cual es un comienzo. Los siguientes pasos (como se describe aquí) serían convertirlos a cm / mm / pulgadas / ... e intentar encontrar un tamaño de documento estándar que coincida. Ambos no están implementados en este PR.

La solicitud de extracción anterior implementó la mayor parte de esta función. Lo que queda por hacer es mostrar el tamaño de página de la página visible actualmente en lugar de solo la primera. Opcionalmente, se pueden agregar tamaño de página predeterminado (como A4) y carta / retrato, pero no lo veo como obligatorio para resolver este problema.

Se han realizado más mejoras en # 9577, que también se implementó mostrando el tamaño de página de la página visible actualmente. Para este problema, solo quedan los tamaños de página predeterminada y carta / retrato.

La parte final se implementa mediante la solicitud de extracción anterior (orientación de la página y nombres de tamaño de página). Cerrando como fijo.

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

Temas relacionados

SehyunPark picture SehyunPark  ·  3Comentarios

sujit-baniya picture sujit-baniya  ·  3Comentarios

brandonros picture brandonros  ·  3Comentarios

timvandermeij picture timvandermeij  ·  4Comentarios

PeterNerlich picture PeterNerlich  ·  3Comentarios