Intégrer les polices en PDF
Je recueille de mauvais PDFs depuis le Manuel de référence 1. a été publié en 1993 et aujourd'hui j'ai recours à une base de données de plus de 100'000 fichiers PDF en monde réel avec toutes sortes de défauts dans eux. La grande majorité des problèmes est cependant liée aux polices. Mais pourquoi le traitement des polices dans les fichiers PDF s’avère-t-il si compliqué ?
Il est difficile de traiter des polices de caractères parce qu'un développeur doit digérer une quantité effroyable de documentation avant de pouvoir créer un logiciel de producteur de PDF qui gère correctement les polices, surtout celles embarquées. Tout d'abord, il faut comprendre les fontes simples et composées et les différents mécanismes d'encodage et de sélection de glyphes pour les fontes symboliques et non symboliques qui sont complètement indépendants des mécanismes d'extraction de texte et des Unicodes. Ensuite, on doit comprendre la structure interne des programmes de fonte Type 1, CFF, TrueType, OpenType. Enfin, on doit connaître les secrets de la construction correcte de sous-ensembles de polices de tous ces types. Ce n'est pas facile du tout et les fichiers PDF du monde réel révèlent toutes sortes de malentendus des concepts de base.
Mon expérience avec la formation des gens n'a pas vraiment aidé parce qu'elle ne facilitait pas la compréhension des structures de données des polices. De plus, la norme PDF ne peut pas être modifiée pour simplifier la gestion des polices en raison de la compatibilité avec les fichiers PDF existants.
Au cours de ma quête pour trouver une solution au problème, j'ai découvert que la plupart des problèmes liés aux polices et à l'intégration des polices sont principalement observés avec des documents avec des jeux de caractères latins. Des problèmes similaires se sont produits beaucoup moins dans les polices de caractères asiatiques. Comment cela peut-il se produire? Une des raisons pourrait être que nous avons plus de fichiers latins dans notre base de données. Une autre raison pourrait toutefois être que la norme PDF spécifie des CMAPs prédéfinis uniquement pour les jeux de caractères asiatiques mais pas pour les jeux de caractères latins. Je pense, qu'un CMAP prédéfini pour les jeux de caractères latins simplifierait considérablement la sélection de glyphes et la correspondance Unicode pour presque toutes les langues utilisées en Amérique et en Europe. Cela aiderait également à créer du texte invisible dans les applications OCR.