2015-04-02 3 views
4

Conformément à la spécification PDF 1.7, section 3.4 (http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/pdf_reference_1-7.pdf page 90):Comment les fichiers PDF peuvent-ils être partiellement affichés lors du téléchargement?

Les sections précédentes décrivent la syntaxe des objets individuels. Cette section décrit comment les objets sont organisés dans un fichier PDF pour un accès aléatoire efficace et une mise à jour incrémentielle. Un fichier PDF canonique initialement se compose de quatre éléments (voir figure 3.2):

  • un en-tête d'une ligne identifiant la version de la spécification PDF pour laquelle le fichier est conforme

  • un corps contenant le des objets qui composent le document contenu dans le fichier

  • Une table de référence croisée contenant des informations sur les objets indirects dans le fichier

  • Une remorque donnant l'emplacement de la table de références croisées et de certains objets spéciaux dans le corps du fichier

Fondamentalement, la structure présente l'en-tête, suivi par le contenu du corps, puis la table de références croisées, et enfin la bande-annonce qui donne l'emplacement de la table xréf. La partie clé ici est que les tables trailer et xref sont à la fin du fichier, et la table xref contient les métadonnées pertinentes du contenu du corps (principalement le décalage d'octets à 10 chiffres).

Étant donné que la table xref lui-même est situé à la fin d'un fichier PDF:

  • Comment est-ce que mon navigateur (Google Chrome) a pu afficher partiellement le fichier PDF (le premier une centaine de pages) avant que le téléchargement du fichier ne soit terminé?

Voir capture d'écran de mon fichier PDF partiellement téléchargé:

Partially downloaded PDF file

+1

Rechercher "linéarisé" dans la référence, ou voir [cette description ultra-courte] (https://docs.oracle.com/cd/E51711_01/TSG/FAQ/What%20are%20linearized%20PDF % 20files_.html). – usr2564301

Répondre

4

Le type de fichiers PDF l'OP décrit est également connu sous le nom "web optimisé" (terme de marketing) ou « linéarisé " (terme technique dans le langage PDF).

Il est à noter qu'il ne fonctionne que si deux conditions supplémentaires (au-dessus de la fonction de linéarisation des fichiers) sont remplies:

  1. Le lecteur de PDF doit être en mesure de traiter ces types de PDF et profitez de la fonction de linéarisation.
  2. L'hôte (distant) desservant les fichiers PDF linéarisés doit prendre en charge "flux d'octets".

Si octet en continu est pas pris en charge par le serveur ou si le fichier PDF ne linéarisé, soit complètement téléchargé le fichier entier encore besoins avant qu'il le spectateur peut afficher une page.

La description de la structure de fichier PDF citée par le PO ne s'applique pas aux fichiers PDF linéarisés. Ceux-ci sont organisés de manière légèrement différente:

  1. Il existe des règles spéciales pour la commande d'objets PDF (les fichiers PDF "standard" peuvent avoir des objets dans n'importe quel ordre).
  2. Le document PDF doit contenir des structures supplémentaires appelées "tables d'indices" qui garantissent une navigation efficace en son sein (même s'il n'est pas encore complètement téléchargé).

En ce qui concerne les structures supplémentaires, un PDF linéarisé contient ses objets en deux groupes:

  1. Dans le premier groupe est le catalogue de documents, tous les objets au niveau du document, et tous les objets appartenant à la première -à afficher la page (pas nécessairement "page 0"!). Les objets doivent être numérotés séquentiellement.

  2. Le deuxième groupe contient tous les autres objets.

Ces groupes sont indexés par deuxxref sections de table.

  1. La section xref du premier groupe apparaît immédiatement après le premier objet indirect, très proche du début du fichier.
  2. La section xref du second groupe est positionnée à la fin du fichier (comme dans les fichiers PDF standard non linéarisés).

Le premier objet immédiatement après la ligne d'en-tête %PDF-1.x doit contenir une clé de dictionnaire indiquant la propriété /Linearized du fichier.

Cette structure globale permet un lecteur conforme à apprendre la liste complète des adresses d'objets très rapidement, sans avoir besoin de télécharger le fichier complet du début à la fin:

  • Le spectateur peut afficher la première page (s) très rapide, avant que le fichier complet soit téléchargé. L'utilisateur peut cliquer sur un aperçu de la page de vignettes (ou un lien dans la ToC du fichier) pour accéder, par exemple, à la page 445, immédiatement après l'affichage de la première ou des premières pages, et à la page 445 Le téléspectateur peut alors demander tous les objets requis pour la page 445 en demandant au serveur distant via des demandes de gamme d'octets de les livrer "hors service" afin que le téléspectateur puisse afficher cette page plus rapidement. (Pendant que l'utilisateur lit les pages en désordre, le téléchargement du document complet continuera en arrière-plan ...)

Les détails techniques PDF « Linéarisation » se trouvent dans l'annexe« normative » F Adobe's original PDF 1.7 Specification (environ 11 Mo - ce qui en soi est un exemple d'un tel PDF linéarisé fichier!)