Pdf.js: Demande de fonctionnalités pour l'avenir: couches PDF

Créé le 17 juil. 2011  ·  32Commentaires  ·  Source: mozilla/pdf.js

C'est tout.

Le code semble vraiment prometteur!

1-core 2-feature

Commentaire le plus utile

Attendez-vous également à cette fonctionnalité. Obtenir des informations sur les couches / afficher la couche / masquer la couche

Tous les 32 commentaires

Pas clair ce que cela signifie. L'utilisateur n'est plus actif sur Github. Peut rouvrir si demandé.

Laisse-moi chercher ça sur Google pour toi.

http://www.google.com/search?q=site : adobe.com + pdf + layer
http://www.google.com/search?q=site : adobe.com + pdf +% 22optional + content + group% 22

Standard depuis la spécification PDF 1.5.
http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/pdf/pdfs/PDF32000_2008.pdf
section 8.11.3 «Rendre le contenu graphique facultatif»

Présent dans l'interface utilisateur de chaque visionneuse Adobe PDF depuis environ un milliard d'années maintenant.
Les calques PDF correspondent utilement aux calques du programme de dessin Illustrator (et similaires), aux calques de la sortie SIG, etc.

Je serais plus "actif" sur github (et avec d'autres logiciels libres) si j'aimais être giflé davantage. (J'ai arrêté d'utiliser Firefox depuis la "mise à jour" qui a tué le plugin http://code.google.com/p/firefox-mac-pdf/ vraiment utile, qui manquait également de prise en charge de la couche PDF mais fonctionnait très bien par ailleurs . Navigateur sans affichage PDF = inutile. Safari gère au moins cela, pour toutes ses autres crapitudes.)

Hé là, je ne voulais pas vous insulter! Nous procédons à un nettoyage des problèmes, alors pardonnez-nous de fermer le problème pour vous.

Et merci pour la réponse détaillée - cela a définitivement clarifié ce que vous vouliez dire.

Il est difficile de faire des doutes sur les demandes des utilisateurs laconiques - l'utilisateur voulait-il dire «couches» au niveau de l'interface utilisateur / du visualiseur, ou au niveau des spécifications (contenu facultatif), etc.? J'ai pensé à me renseigner ici, mais j'ai supposé à tort que les chances de réponse étaient faibles étant donné que votre seule activité sur Github était ce commentaire (nous sommes flattés! :)).

Comme je l'ai dit, la réouverture est définitivement une option - considérez-la comme terminée.

Merci encore.

J'ai téléchargé un petit fichier ici qui montre un comportement de rendu cassé pour les groupes de contenu optionnels et / ou les chemins de détourage (je ne suis pas sûr de la chose qui cause réellement le mauvais comportement). Si vous essayez d'ajouter #textLayer=visible à l'url, vous pouvez voir que pdf.js recherche et restitue correctement le texte, mais ne gère tout simplement pas correctement le reste du rendu.

(Ce PDF particulier est né de mon travail sur cette approche de rendu des liens dans LaTeX en utilisant la mise en évidence au lieu de boîtes. Le texte est rendu dans le chemin de détourage actuel ( 7 Tr ) plutôt que sous forme de texte normal ( 0 Tr ), puis le chemin de détourage est rempli avec la couleur de texte normale et, dans un groupe de contenu facultatif, rempli à nouveau en utilisant la couleur de surbrillance. IIRC, canvas.js#L982 déjà en charge l'ajout de texte au chemin de détourage , mais cela ne semble pas fonctionner ici ... Par conséquent, ce commentaire n'est peut-être pas applicable à 100% à son bug; n'hésitez pas à me rediriger vers un plus approprié s'il existe ;-))

@blerner Je pense que ce problème est différent de ce que vous demandez. Pouvez-vous ouvrir un nouveau problème avec votre commentaire ci-dessus?

Je recherche également la fonctionnalité OCG ... est-ce que c'est prévu? Quelqu'un peut-il m'indiquer la feuille de route?

Des nouvelles sur les couches de support? Serait incroyablement utile. Obtenir des noms d'objet serait également utile (comme dans les noms d'objets et de groupes que vous pouvez définir dans Illustrator)

Je suis également intéressé à savoir quand les couches seront prises en charge (en particulier en les affichant / les masquant).

Il n'y a pas encore d'implémentation pour cela et pour autant que je sache, personne n'y travaille. Si quelqu'un veut travailler là-dessus, n'hésitez pas à créer une pull request.

Fichiers avec OCG:
http://ims.er.usgs.gov/images/USTopo/
(pas tous, seulement les énormes)

Attendez-vous également à cette fonctionnalité. Obtenir des informations sur les couches / afficher la couche / masquer la couche

Salut, attendez-vous également à prendre en charge les OCG (couche). Un horaire?
@timvandermeij La pièce jointe est un fichier pdf exporté à partir d'un dessin d'architecture contenant des centaines de couches.
OCGs_demo.PDF

Actuellement, cette fonctionnalité n'est pas prévue pour être implémentée. Si quelqu'un souhaite y travailler, merci de nous le faire savoir. Si vous pouvez joindre plus d'exemples de fichiers PDF ici, cela aiderait les gens à démarrer et à vérifier leur travail.

En voici une simple:
PDFBOX-4103-OCG.pdf

un vieil exemple avec transparence et ocgs, ce serait bien si les ocgs pouvaient être sélectionnés à partir d'un navigateur / d'une page
_myChessboardv1.2_mockup_ImageArray_beta0.7 - public.pdf

J'essaye d'identifier du contenu de PDF.
Je comprends que je ne peux pas utiliser les couches car elles ne sont pas prises en charge.
Est-ce correct?
Et y a-t-il un autre moyen?

Je m'attends également à cette fonctionnalité. Obtenir des informations sur les couches / afficher la couche / masquer la couche Ce sera très utile pour l'utilisation de Solidworks / Inventor.

Salut, je me rends compte que ce problème a 8 ans, mais je voudrais juste ajouter au cas que ce serait une fonctionnalité très utile à avoir. Peut-être que les choses ont changé en 2 ans?

Veuillez mettre à jour l'état si quelqu'un a travaillé sur ce problème et l'a résolu.

Je vous remercie

+1

+1

Merci de ne pas publier de commentaires individuels "+1", mais de donner le commentaire original (https://github.com/mozilla/pdf.js/issues/269#issue-1238154) en utilisant le mécanisme de réaction de GitHub. Cela évite les chocs inutiles sur ce problème et nous permet de filtrer en fonction de la priorité de la communauté.

Bonjour, y a-t-il une mise à jour de la priorité de cette future demande? :)
Il semble que beaucoup d'articles en double référençant le même problème, qui pourraient ne pas être expliqués et montrés dans un bon exemple dans cet article?

Personne ne travaille actuellement là-dessus. Si quelqu'un souhaite contribuer, nous sommes toujours heureux d'examiner les demandes d'extraction.

La raison pour laquelle cela n'est pas encore implémenté est très probablement parce qu'il s'agit d'un sujet assez compliqué, étant donné la façon dont tout cela est décrit dans la spécification PDF.
En ignorant beaucoup d'autres spécificités entourant les OCG, la section "8.11.3.1 Général" des états de spécification (notez le deuxième point):

Lorsqu'un élément de contenu facultatif d'un fichier PDF est déterminé qu'il doit être masqué, les événements suivants se produisent:

  • Le contenu ne doit pas être dessiné.
  • Les opérations sur l'état des graphiques, telles que la définition de la couleur, la matrice de transformation et le découpage, doivent toujours être appliquées. En outre, les effets secondaires de l'état graphique qui résultent des opérateurs de dessin doivent être appliqués; en particulier, la position actuelle du texte doit être mise à jour même pour le texte enveloppé dans un contenu facultatif. En d'autres termes, les paramètres d'état des graphiques qui persistent au-delà de la fin d'une section à contenu marqué doivent être les mêmes, que le contenu facultatif soit visible ou non.

Hé là, j'ai essayé de trouver une solution à ce problème au cours de la semaine dernière et j'espérais que quelqu'un puisse me diriger dans la bonne direction.
Pour mon cas d'utilisation, il ne serait pas nécessaire de basculer des couches supplémentaires, je devrais simplement les masquer dans mon visualiseur.

Jusqu'à présent, j'ai pu identifier les calques "cachés" dans document.js comme ceci:

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

Mais je n'ai pas pu établir le lien entre les couches et le contenu réel rendu par pdf.js. Donc, si quelqu'un pouvait me donner un indice sur la façon de déterminer quelles données sont censées être cachées, je serais ravi de les utiliser.

@brendandahl comment fonctionne la nouvelle API? Qu'est-ce que le «contenu facultatif»? Ne pouvons-nous pas simplement scanner les couches existantes et les masquer? Merci!

Qu'est-ce que le «contenu facultatif»?

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

Ne pouvons-nous pas simplement scanner les couches existantes et les masquer?

Malheureusement, il est vraiment assez difficile de comprendre ce que vous demandez ici.
Remarque: Cette fonctionnalité n'a pas encore été intégrée à la visionneuse par défaut, mais cela sera traité dans # 12170.

Désolé, je voulais dire les détecter et avoir la possibilité de les manipuler (masquer, supprimer, etc.)

J'ai essayé la fonctionnalité et elle fonctionne comme prévu, c'est-à-dire qu'au lieu d'afficher toutes les couches, elle n'affiche que celles à visualiser.

@brendandahl comment fonctionne la nouvelle API? Qu'est-ce que le «contenu facultatif»? Ne pouvons-nous pas simplement scanner les couches existantes et les masquer? Merci!

L'API complète a encore besoin d'un peu plus de travail, mais vous pouvez pdfDoc.getOptionalContentConfig puis itérer sur les différents optionalContentConfig.groups et définir ceux que vous souhaitez masquer / afficher ( optionalContentGroup.visible ). Passez ensuite cette configuration dans votre appel à render une page.

Liens utiles:
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, ça a l'air très intéressant! Je testerai. Merci!

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

BrennanDuffey picture BrennanDuffey  ·  3Commentaires

SehyunPark picture SehyunPark  ·  3Commentaires

liuzhen2008 picture liuzhen2008  ·  4Commentaires

dmisdm picture dmisdm  ·  3Commentaires

PeterNerlich picture PeterNerlich  ·  3Commentaires