Par simple curiosité, après avoir vu le plus petit GIF , quel est le plus petit fichier PDF valide possible?
pdf
optimization
pdf-generation
maillé
la source
la source
Réponses:
C'est un problème intéressant. Prenant par le livre, vous pouvez commencer par ceci:
ce qui représente 291 octets de joie PDF. Acrobat l'ouvre, mais il se plaint un peu. Il y a une page dedans et c'est 3/72 "carré, le minimum autorisé par la spécification.
Cependant, Acrobat X ne se soucie même plus de la table de références croisées, nous pouvons donc supprimer cela:
Acrobat se plaint, mais l'ouvre. Nous sommes maintenant à 178 octets. Il s'avère que vous n'avez pas besoin de cela / Size dans la remorque. Nous sommes maintenant à 172:
Il s'avère que vous n'avez pas besoin de tous ces éléments embêtants / Type dans vos dictionnaires:
Nous sommes maintenant à 138 octets.
Il s'avère également que lorsque la spécification dit "doit être une référence indirecte" et que / Count est requis, et que l'en-tête "doit" être% PDF-1.0, ils font des suggestions vagues. C'est le plus petit que je pourrais le faire et le faire ouvrir dans Acrobat X:
70 octets.
Maintenant, mon éditeur utilise la discipline de nouvelle ligne Windows, mais Acrobat accepte les conventions Windows, Mac ou Unix, donc en utilisant un éditeur hexadécimal, j'ai remplacé le \ r \ n par \ r et supprimé complètement le dernier saut de ligne, ce qui me laisse 67 octets
J'ai essayé de retirer le dernier dictionnaire de fin (>>), mais Acrobat ne l'aurait pas. La lecture PDF intégrée à Google Chrome (FoxIt) ne l'ouvrira pas.
En tant que PostScript (HA! Voyez ce que j'ai fait là-bas?), Si vous consentez à ce qu'Acrobat "répare" le fichier, il augmente jusqu'à 3550 octets, la plupart étant des métadonnées facultatives, mais il laisse derrière lui un certain nombre de violations de spécifications claires.
la source
minimum allowed by the spec
, puis va au-delà. Excellente réponse, merci! :)\n
intégrée, et lorsque décodée en base64 ne donne pas le contenu de fichier correct.Je n'ai pas pu ouvrir l'exemple de Hello World.
Pour un petit fichier avec du texte:
la source
J'ai pensé faire un plus petit pdf qui affiche "Hello World". Le texte est dans le coin inférieur gauche. Désolé pour la police à 9 points, toute police plus grande coûterait un octet supplémentaire :)
172 octets pour Adobe Reader X (s'il est enregistré avec des sauts de ligne uniquement et sans saut de ligne à la fin ou octet nul):
120 octets pour la visionneuse PDF intégrée de Chrome:
Pour voir facilement cela dans Chrome, collez cet URI dans la barre d'adresse (SO ne me laisse pas le lien, et cela ne fonctionnera pas du tout dans les autres navigateurs):
la source
En Java, utilisez ceci:
puis
...
la source