5 décembre 2015 - Auteur : - Catégories : Blog, FileMaker, Technique

Optimisation native des Pdf

Intro

Dans nos solutions FileMaker, en général du moins, nous ne soucions pas particulièrement de la taille des données textuelles, en revanche, nous accordons un intérêt certain pour la taille des données « multimédia » à intégrer dans les bases de données au sein des rubriques de type conteneur ou même directement placées sur les modèles.

Les fichiers Pdf que nous pouvons générer à partir de FileMaker occupent une place importante dans cette problématique liée à la taille des données, notamment sur les solutions « métier », où l’envoi et la sauvegarde des documents administratifs, commerciaux, contractuels, légaux, etc., ont une importance capitale.

Aujourd’hui, nous disposons de nombreuses techniques et solutions, plus ou moins efficaces, pour traiter les fichiers Pdf générés par FileMaker afin de réduire leur taille : plugins, lignes de commande, applications tierces et services en ligne. Malheureusement, la plupart de ces solutions sont souvent assez délicates à intégrer dans un flux de travail quand d’autres s’avèrent tout simplement complexes à implémenter dans nos projets.

Dans cet article je vous propose d’étudier ensemble, par des simples tests empiriques, quels sont les éléments de nos modèles qui, à coup sûr, influencent la taille des fichiers Pdf générés par FileMaker et, par conséquent, quelles solutions adopter pour les optimiser au mieux de manière totalement native, sans recourir à une quelconque technologie annexe.

L’étude exposée ici concerne plutôt les documents administratifs et de gestion, tels que les devis, factures, bons de commande, bons de livraisons, notes de frais, contrats, licences, condition générales, etc., c’est-à-dire, tous les documents où le texte occupe une place prépondérante par rapport aux éventuelles images existantes (généralement des logos ou pictos).

Tests et Solutions

Pour commencer, je vous invite à télécharger le fichier « Optimisation-Pdf.fmp12 » qui se trouve à la fin de cet article. Il s’agit tout simplement d’une base FileMaker issue des ses solutions de démarrage (version 14), à savoir, la solution « Facturation », qui dispose d’un modèle de facture que nous allons utiliser et modifier pour réaliser tous nos tests.

Tout ce que nous avons à faire, donc, c’est de travailler nos modèles d’impression, ou concevoir des modèles spécialement dédiés aux Pdf, de manière à les simplifier et à les alléger de tout ce qui pourrait impacter la taille des Pdf générés. Trois aspects sont particulièrement à considérer (par ordre croissant d’importance) :

  1. Les images
  2. La composition (la mise en page des modèles)
  3. Les textes

1. Les images

Et oui, ça peut paraître bizarre (voire paradoxal), mais les images ce sont les éléments qui, finalement, posent le moins de problèmes lors de la création des fichiers Pdf avec FileMaker.

Ceci tout simplement parce que, hélas, FileMaker ne dispose d’aucune fonctionnalité native pour travailler directement sur les images, aussi bien lorsqu’elles sont intégrées dans des rubriques de type conteneur que lorsqu’elles sont placées sur les modèles.

Même si, selon mes observations, il semblerait que le moteur de fabrication des Pdf utilisé par FileMaker tente d’optimiser les images, les résultats dépendent évidemment de la nature des images déjà présentes, il convient donc de les traiter en amont, avec des logiciels dédiés, afin d’optimiser leurs poids avec différentes manipulations, comme par exemple :

  • en les redimensionnant aux dimensions exactes requises sur les modèles ;
  • en supprimant les espaces, marges et bords inutiles ;
  • en réduisant le nombre de couleurs ;
  • en les passant en niveaux de gris si la couleur n’est pas nécessaire ;
  • en adoptant les bons formats de fichiers compatibles FileMaker : Jpeg, Png, Gif, etc. ;
  • en utilisant les taux de compression qui offrent le meilleur compromis poids/qualité ;
  • etc.

Pour illustrer cette optimisation, vous trouverez dans le fichier de test disponible à la fin de l’article, une icône en guise de logo placée dans les modèles d’impression. Le poids du fichier original de cette image, en couleurs, était de pratiquement 3 Ko (2 837 octets), après une optimisation dans un logiciel de traitement d’images, l’icône intégrée (en niveaux de gris) pesait moins de 1 Ko (879 octets).

Au final, ce qu’il faut retenir, c’est qu’une fois les images intégrées dans FileMaker, on ne pourra plus rien faire sur place, de manière native, pour réduire leurs poids respectifs afin d’optimiser nos Pdf, ce travail doit donc être fait en amont.

2. La composition

L’idée est d’optimiser la composition des nos modèles d’impression ou dédiés aux Pdf, avec comme but d’obtenir des mises en pages les plus simples possibles, qui nous permettront d’économiser encore quelques dizaines ou centaines d’octets.

Alors, disons-le tout de suite, ne vous attendez pas à réaliser des gains spectaculaires entre une composition « normale » et une mise en page optimisée, mais aucune économie étant à négliger, autant adopter les bonnes pratiques dès le début de chaque projet.

Évidemment, si vous avez déjà une multitude de modèles déjà réalisés dans vos solutions, la simplification de leur mise en page vous demandera de nombreuses heures de travail pour une optimisation assez minime de vos Pdf au final, je ne vous conseille donc pas de vous lancer dans de telles manipulations si peu rentables.

En revanche, pour tout nouveau projet, vous pouvez suivre les recommendations suivantes (sans ordre particulier d’importance) afin de soigner la mise en page de vos modèles d’impression et ainsi optimiser vos Pdf :

  • préférez les rubriques de fusion aux simples rubriques lorsque c’est possible ;
  • évitez autant que possible de multiplier les objets, simplifiez vos compositions ;
  • évitez également les éléments superposés quand ce n’est pas nécessaire ;
  • évitez les effets sur les objets quand ce n’est pas utile : ombres, contours pointillés, bords arrondis, dégradés, transparences, etc.
  • tentez de privilégier les attributs de paragraphes pour gérer les alignements et espacements des textes dans les blocs ;
  • lorsqu’il faut matérialiser des tableaux avec des colonnes de données, tentez d’utiliser la technique des tabulations pour séparer les données ;
  • évitez les couleurs quand ce n’est pas nécessaire, préférez l’utilisation des niveaux de gris pour gérer la mise en valeurs des objets et des textes.

Pour avoir une idée de ce qu’on obtient avec ce type d’optimisation, je vous invite à afficher côte-à-côte, en mode modèle bien-sûr, les modèles « Imprimer/envoyer facturation » et « Pdf-4-Mono-Test » du fichier de test présent à la fin de cet article.

Encore une fois, j’insiste, les gains de poids obtenus avec ces mises en pages simplifiées sont très modestes et ne justifient nullement de reprendre tous vos modèles existants, utilisez plutôt ces techniques pour vos nouvelles réalisations.

3. Les textes

Voilà le chapitre le plus intéressant car c’est en manipulant les textes que nous allons obtenir les optimisations les plus importantes sur nos Pdf.

De nombreux aspects sont à considérer, comme le nombre de polices des caractères utilisés, les choix des ces polices des caractères, la présence des enrichissements typographiques (gras, italique, etc.) et le nombre de caractères différents affichés (ce qui est difficilement maîtrisable). Le principe d’optimisation est très simple (par ordre croissant d’importance) :

– moins il y a de caractères différents affichés,
– moins il y a d’enrichissements typographiques appliqués,
– moins il y a de polices de caractères utilisées et mieux elles sont choisies,
= plus l’optimisation sera importante et donc la taille du Pdf réduite.

Les conseils à suivre sont donc évidents :

  • limiter autant que possible la quantité de caractère différents et l’utilisation des caractères hors alphabet classique (pas toujours possible, mais à tenir en compte au besoin) ;
  • éviter les enrichissements typographiques quand ils ne sont pas vraiment nécessaires : gras, italique, souligné, petites majuscules, etc., préférez jouer avec la taille des textes ;
  • éviter de multiplier les polices des caractères, une seule police de caractères peut souvent suffire à obtenir une mise en page claire et lisible ;
  • bien choisir sa police des caractères : suivant la police utilisée, la taille du Pdf peut varier quasiment du simple au triple (imaginez avec plusieurs polices).

Concernant l’impact que peut avoir l’utilisation des caractères différents, voici un simple petit test, que vous pouvez retrouver dans l’archive « Pdf-Caracteres.zip » à la fin de l’article, composé de 5 fichiers Pdf dont voici le détail :

  • Fichier « _vide.pdf » : Pdf vide (aucun texte, aucune police de caractères) = 5 Ko (5 110 octets) ;
  • Fichier « a.pdf » : juste une lettre « a » avec la police « Arial » = 42 Ko (42 422 octets) ;
  • Fichier « aaaaaa_26.pdf » : 26 lettres « a » avec la police « Arial » = 42 Ko (42 454 octets) ;
  • Fichier « alphabet_26.pdf » : alphabet de 26 caractères minuscules avec la police « Arial » = 52 Ko (51 586 octets) ;
  • Fichier « alphabet_ascii.pdf » : alphabet ASCII de 224 caractères avec la police « Arial » = 119 Ko (118 610 octets) ;

Ce test nous montre clairement que, pour chaque police de caractères utilisée, le nombre de caractères différents présents dans le modèle influence la taille finale des Pdf. Malheureusement, mis à part une bonne information auprès des utilisateurs, il n’y a pas vraiment de technique efficace pour limiter le nombre de caractères différents sans risquer de dénaturer les données.

Dans le fichier FileMaker de tests, vous trouverez, dans la zone de navigation en haut du modèle « Détails facturation », un petit bouton-popover « PDF » qui vous permettra de générer des fichiers Pdf à partir de différents modèles, tous issus du modèle d’impression original, mais qui ont été modifiés afin de pouvoir visualiser la taille des Pdf produits en changeant un ou plusieurs aspects de cette optimisation des textes.

Pdf-Popover

Deux options possibles :

  1. Exemples : permet de générer des Pdf d’exemples, cela produit 7 fichiers Pdf pour illustrer l’impact important qu’ont les polices des caractères et le formatage des textes sur la taille des Pdf ;
  2. Polices : permet de générer des Pdf selon une police de caractères choisie, cela produit 3 fichiers Pdf pour comparer leurs tailles respectives avec les Pdf analogues d’une autre police de caractères.

Le choix des polices de caractères de ces tests est volontairement limité à celles qui sont les plus utilisées et compatibles avec les plate-formes Mac et Pc. D’autre part, vous trouverez dans ce panneau popover un petit bouton d’aide « ? » vous donnant accès à une description du nommage choisi pour les fichiers Pdf générés et leurs signification.

Pour que vous puissiez avoir une idée de la taille des différents Pdf générés par l’option « Polices », voici un tableau comparatif qui présente assez bien les polices des caractères les plus légères à privilégier dans vos réalisations :

Polices de caractères Avec 1 Sans 2 Test 3
Arial 139 Ko 63 Ko 62 Ko
ComicSans 51 Ko 34 Ko 33 Ko
Courrier 71 Ko 36 Ko 34 Ko
Georgia 83 Ko 40 Ko 39 Ko
Helvetica 96 Ko 42 Ko 41 Ko
Lucida 89 Ko 52 Ko 51 Ko
Palatino 80 Ko 39 Ko 37 Ko
Tahoma 88 Ko 52 Ko 51 Ko
Times 87 Ko 40 Ko 38 Ko
Trebuchet 60 Ko 32 Ko 31 Ko
Verdana 64 Ko 32 Ko 31 Ko

1. Avec = modèle PDF avec des textes qui ont des enrichissements typographiques (gras ou italique).
2. Sans = modèle PDF avec des textes qui n’ont aucun enrichissement typographiques (gras ou italique).
3. Test = modèle PDF de test avec composition simplifiée et textes sans aucun enrichissement typographiques.

Nous pouvons voir dans ce tableau que la police de caractères « Arial » est la plus « encombrante » dans tous les cas, alors que certaines polices, suivant l’application des formatages ou pas, produisent des Pdf extrêment légers avec des gains très intéressants, il convient donc de bien les choisir dans nos modèles pour une meilleure optimisation de nos Pdf.

Attention tout-de-même, ces valeurs sont rélatives aux polices présentes dans chaque système d’exploitation, dès lors, un modèle réalisé avec la police « Arial », par exemple, peut produire des Pdf de tailles très différentes d’un ordinateur à un autre, il est donc important d’effectuer des tests lors du développement mais aussi, surtout, chez l’utilisateur final.

Conclusion

Nous avons vu que la taille des Pdf est directement liée aux contenus des nos modèles d’impression et à leur formatage, alors, bien qu’il soit difficile de tout maîtriser, si nous observons les trois préceptes suivants, nous allons pouvoir obtenir nativement des fichiers Pdf de taille très réduite, ce qui n’empêche nullement, au besoin, d’opérer d’autres optimisations avec des technologies annexes :

  • Optimiser les images avant de les intégrer dans nos solutions ;
  • Simplifier au maximum la mise en page de nos modèles ;
  • Utiliser le minimum de polices de caractères et appliquer le minimum de formatages (idéalement : une seule police de caractères et aucun formatage typographique).

Voici le fichier FileMaker de tests à télécharger : Optimisation-Pdf Optimisation-Pdf.fmp12

Voici l’archive avec les tests des caractères : Pdf-Caracteres Pdf-Caracteres.zip

Merci pour votre lecture, toutes remarques, commentaires et questions sont les bienvenues.

Article précédent/suivant

Add comment

Ce site est protégé par reCAPTCHA et la Politique de confidentialité, ainsi que les Conditions de service Google s’appliquent.