Pdf.js: Solicitud de funciones para el futuro: capas de PDF

Creado en 17 jul. 2011  ·  32Comentarios  ·  Fuente: mozilla/pdf.js

Eso es todo.

¡El código parece realmente prometedor!

1-core 2-feature

Comentario más útil

También espere esta característica. Obtener información de capas / mostrar capa / ocultar capa.

Todos 32 comentarios

No está claro qué significa esto. El usuario ya no está activo en Github. Puede reabrir si se le solicita.

Déjame googlear eso por ti.

http://www.google.com/search?q=site : adobe.com + pdf + layer
http://www.google.com/search?q=site : adobe.com + pdf +% 22 + contenido + opcional + grupo% 22

Estándar desde la especificación PDF 1.5.
http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/pdf/pdfs/PDF32000_2008.pdf
sección 8.11.3 "Hacer que el contenido gráfico sea opcional"

Presente en la interfaz de usuario de todos los visores de PDF de Adobe durante aproximadamente mil millones de años.
Las capas de PDF se corresponden de manera útil con las capas del programa de dibujo de Illustrator (y similares), con las capas de la salida GIS, etc.

Sería más "activo" en github (y con otro software gratuito) si disfrutara que me abofetearan más. (Dejé de usar Firefox desde la "actualización" que eliminó el complemento http://code.google.com/p/firefox-mac-pdf/ realmente útil, que también carecía de compatibilidad con la capa PDF, pero por lo demás funcionaba muy bien. . Navegador sin visualización de PDF = inútil. Safari al menos lo logra, a pesar de todas sus otras tonterías).

¡Oye, no quise insultarlos! Estamos limpiando el problema, así que perdóneme por cerrar el problema.

Y gracias por la respuesta detallada, definitivamente aclaró lo que quería decir.

Es difícil adivinar las solicitudes de usuario concisas: ¿se refería el usuario a "capas" en el nivel de interfaz de usuario / espectador, o en el nivel de especificación (contenido opcional), etc.? Pensé en preguntar aquí, pero asumí erróneamente que las probabilidades de una respuesta eran bajas dado que tu única actividad en Github era este comentario (¡nos sentimos halagados! :)).

Como dije, la reapertura es definitivamente una opción, considérelo hecho.

Gracias de nuevo.

He subido un pequeño archivo aquí que demuestra un comportamiento de renderizado defectuoso para grupos de contenido opcionales y / o rutas de recorte (no estoy seguro de qué cosa está causando el mal comportamiento). Si intenta agregar #textLayer=visible a la URL, puede ver que pdf.js está encontrando y renderizando correctamente el texto, pero simplemente no está manejando el resto de la renderización correctamente.

(Este PDF en particular surgió debido a mi trabajo en este enfoque para renderizar enlaces en LaTeX usando resaltado en lugar de cuadros. El texto se representa en la ruta de recorte actual ( 7 Tr ) en lugar de como texto normal ( 0 Tr ), luego el trazado de recorte se rellena con el color de texto normal y, dentro de un grupo de contenido opcional, se vuelve a rellenar con el color de resaltado. IIRC, canvas.js#L982 ya tiene algún soporte para agregar texto al trazado de recorte , pero no parece estar funcionando aquí ... Como resultado, este comentario puede no ser 100% aplicable a este error; no dude en redirigirme a uno más apropiado si existe ;-))

@blerner Creo que este problema es diferente de lo que estás preguntando. ¿Puede abrir un nuevo problema con su comentario anterior?

También estoy buscando la funcionalidad OCG ... ¿está en los planes? ¿Alguien puede indicarme la hoja de ruta?

¿Alguna noticia sobre las capas de soporte? Sería increíblemente útil. Obtener nombres de objetos también sería útil (como en los nombres de objetos y grupos que puede configurar en Illustrator)

También me interesa saber cuándo se admitirán las capas (específicamente mostrarlas / ocultarlas).

Todavía no hay implementación para esto y, hasta donde yo sé, nadie está trabajando en esto. Si alguien quiere trabajar en esto, no dude en crear una solicitud de extracción.

Archivos con OCG:
http://ims.er.usgs.gov/images/USTopo/
(no todos, solo los enormes)

También espere esta característica. Obtener información de capas / mostrar capa / ocultar capa.

Hola, también espero que los OCG (capa) sean compatibles. ¿Algún horario?
@timvandermeij El archivo adjunto es un archivo pdf exportado de un dibujo arquitectónico que contiene cientos de capas.
OCGs_demo.PDF

Actualmente, esta función no está prevista para implementarse. Si alguien quiere trabajar en esto, háganoslo saber. Si puede adjuntar más archivos PDF de ejemplo aquí, ayudaría a que las personas comiencen y verifiquen su trabajo.

Aquí hay uno simple:
PDFBOX-4103-OCG.pdf

un ejemplo antiguo con transparencia y ocgs, sería bueno si los ocgs fueran seleccionables desde dentro de un navegador / página
_myChessboardv1.2_mockup_ImageArray_beta0.7 - public.pdf

Estoy intentando identificar algún contenido de PDF.
Entiendo que no puedo usar las capas porque no son compatibles.
¿Eso es correcto?
¿Y hay otra forma?

También espero esta característica. Obtener información de capas / mostrar capa / ocultar capa. Esto será muy útil para el uso de Solidworks / Inventor.

Hola, me doy cuenta de que este problema tiene 8 años, pero me gustaría agregar al caso que esta sería una característica muy útil. ¿Quizás las cosas hayan cambiado en 2 años?

Actualice el estado si alguien ha trabajado en este problema y lo ha resuelto.

Gracias

+1

+1

Por favor, no publique comentarios "+1" individuales, pero dé el comentario original (https://github.com/mozilla/pdf.js/issues/269#issue-1238154) con el pulgar hacia arriba usando el mecanismo de reacción de GitHub. Esto evita problemas innecesarios en este tema y nos permite filtrar según la prioridad de la comunidad.

Hola, ¿hay alguna actualización de la prioridad de esta futura solicitud? :)
Parece que hay muchas publicaciones duplicadas que hacen referencia al mismo problema, lo que podría no explicarse y mostrarse en un buen ejemplo en esta publicación.

Nadie está trabajando en esto actualmente. Si alguien quiere contribuir, siempre estaremos encantados de revisar las solicitudes de extracción.

La razón por la que esto aún no se ha implementado es probablemente porque es un tema bastante complicado, dada la forma en que todo esto se describe en la especificación PDF.
Ignorando muchos de los otros aspectos específicos que rodean a los OCG, la sección "8.11.3.1 General" de la especificación establece (tenga en cuenta el segundo punto):

Cuando se determina que un fragmento de contenido opcional en un archivo PDF debe estar oculto, ocurre lo siguiente:

  • No se dibujará el contenido.
  • Las operaciones de estado de gráficos, como la configuración del color, la matriz de transformación y el recorte, se seguirán aplicando. Además, se aplicarán los efectos secundarios del estado de los gráficos que surjan de los operadores de dibujo; en particular, la posición actual del texto se actualizará incluso para el texto envuelto en contenido opcional. En otras palabras, los parámetros de estado de los gráficos que persisten más allá del final de una sección de contenido marcado serán los mismos tanto si el contenido opcional es visible como si no.

Hola, he estado tratando de encontrar una solución para este problema durante la última semana y esperaba que alguien pudiera indicarme la dirección correcta.
Para mi caso de uso, no sería necesario alternar capas adicionales, simplemente tendría que ocultarlas en mi visor.

Hasta ahora pude identificar las capas "ocultas" dentro de document.js de esta manera:

const hiddenLayers = this.xref.root._map.OCProperties._map.D.get("OFF");

Pero no pude establecer la conexión entre las capas y el contenido real que representa pdf.js. Entonces, si alguien pudiera darme una pista sobre cómo averiguar qué datos se supone que deben estar ocultos, me encantaría usarlos.

@brendandahl ¿cómo funciona la nueva API? ¿Qué es el "contenido opcional"? ¿No podemos simplemente escanear capas existentes y ocultarlas? ¡Gracias!

¿Qué es el "contenido opcional"?

Ver https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/PDF32000_2008.pdf#G7.3858031

¿No podemos simplemente escanear capas existentes y ocultarlas?

Desafortunadamente, es muy difícil entender lo que pregunta aquí.
Nota: esta funcionalidad aún no se ha integrado en el visor predeterminado, sin embargo, se abordará en el # 12170.

Lo siento, me refería a detectarlos y tener la opción de manipularlos (ocultarlos, eliminarlos, etc.)

Probé la función y funciona como se esperaba, que es que en lugar de mostrar todas las capas, solo muestra las que se pueden ver.

@brendandahl ¿cómo funciona la nueva API? ¿Qué es el "contenido opcional"? ¿No podemos simplemente escanear capas existentes y ocultarlas? ¡Gracias!

La API completa aún necesita un poco más de trabajo, pero puede pdfDoc.getOptionalContentConfig luego iterar sobre los distintos optionalContentConfig.groups y establecer cuáles desea ocultar / mostrar ( optionalContentGroup.visible ). Luego pase esa configuración a su llamada a render a página.

Enlaces útiles:
https://github.com/mozilla/pdf.js/blob/63e33a5895bb730ce0e6a65e4d0de12ed043b649/src/display/api.js#L779

https://github.com/mozilla/pdf.js/blob/63e33a5895bb730ce0e6a65e4d0de12ed043b649/src/display/optional_content_config.js#L25

https://github.com/mozilla/pdf.js/blob/63e33a5895bb730ce0e6a65e4d0de12ed043b649/src/display/api.js#L958

@brendandahl ¡ oh, esto se ve muy interesante! Lo intentaré. ¡Gracias!

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

Temas relacionados

BrennanDuffey picture BrennanDuffey  ·  3Comentarios

jigskpatel picture jigskpatel  ·  3Comentarios

timvandermeij picture timvandermeij  ·  4Comentarios

aaronshaf picture aaronshaf  ·  3Comentarios

azetutu picture azetutu  ·  4Comentarios