Installer une police automatiquement
olivier555
Membre
Bonjour,
J'ai un problème avec mon soft. Je me sers d'une police de caractère .ttf, et mon installer (meta package) dispose d'un package qui va copier cette font dans le dossier Macintosh HD/Bibliothèque/Fonts. Tout va bien jusqu'au moment ou l'utilisateur lance l'appli à partir d'un autre compte. Là le soft ne trouve plus la font, alors qu'elle est présente. J'ai remarqué qu'il fallait lancer le fichier .ttf et cliquer sur 'Installer la police' pour que ça fonctionne (elle n'est pas installée par défaut sur les comptes secondaires mais elle l'est sur l'admin, or le fichier est présent sur tous les comptes).
Savez-vous comment installer la police automatiquement? Soit je fais un script qui lors de l'installation 'installe' la font sur tous les compte, soit au premier lancement du soft c'est le logiciel qui l'installe. Mais je ne sais pas comment faire. Avez-vous des idées?
Merci!
J'ai un problème avec mon soft. Je me sers d'une police de caractère .ttf, et mon installer (meta package) dispose d'un package qui va copier cette font dans le dossier Macintosh HD/Bibliothèque/Fonts. Tout va bien jusqu'au moment ou l'utilisateur lance l'appli à partir d'un autre compte. Là le soft ne trouve plus la font, alors qu'elle est présente. J'ai remarqué qu'il fallait lancer le fichier .ttf et cliquer sur 'Installer la police' pour que ça fonctionne (elle n'est pas installée par défaut sur les comptes secondaires mais elle l'est sur l'admin, or le fichier est présent sur tous les comptes).
Savez-vous comment installer la police automatiquement? Soit je fais un script qui lors de l'installation 'installe' la font sur tous les compte, soit au premier lancement du soft c'est le logiciel qui l'installe. Mais je ne sais pas comment faire. Avez-vous des idées?
Merci!
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Dans ce cas, c'est à ta charge (dans l'initialisation de l'appli) de la charger et de l'activer.
.
Je me permets de remonter ce fil car j'ai besoin d'utiliser une police qui ne fait pas partie de celle fournies par Apple (Il s'agit d'une police du domaine public permettant d'imprimer des codes barres).
Je l'ai bien copiée dans le répertoire Resources du bundle de l'application mais cette dernière se crashe lamentablement sur une machine où la police n'est pas installée.
Bru, tu parles de "charger et d'activer" la police. Qu'est-ce que cela signifie? Comment réaliser cela?
Si tu regardes un peu la doc de Apple Type Services, tu verras qu'il faut activer la fonte, en utilisant la fonction ATSFontActivateFromFileReference() ou une de ses cousines.
Un lien qui devrait beaucoup t'intéresser (le dernier listing). La méthode active les fontes présentes dans le répertoire /font des ressources.
Edit:
Au bas de la page, il est écrit qu'il suffit de déclarer la clé
ATSApplicationFontsPath
dans ton info.plist.
À tester en premier.
Merci beaucoup pour tes recherches.
j'ai vu cela mais cela ne fonctionne pas. Je pense avoir tout vérifié:
-J'ai bien ma police dans mon Bundle (Resources/Fonts/maPolice.ttf)
-J'ai créé une nouvelle ligne dans mon fichier info.plist:
Application fonts resources path ---> Fonts
-J'ai vérifier le fichier info.plist dans le bundle, il indique les chose correctement:
L'application crashe toujours. Quand j'édite le fichier log, j'ai l'erreur suivante:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSCFDictionary setObject:forKey:]: attempt to insert nil value (key: NSFont)'
Je précise que l'application fonctionne très bien si la police est installée avec toutes les autres.
Pas mieux :-\\
Oui, ça "devrait".
Le plus curieux est que cela fonctionne sous différentes sessions sur la même machine (bien évidemment, la police n'est pas présente dans le répertoire Fonts de la session) mais dés que l'on change de machine, boom.
J'abandonne pour le moment. Je te remercie beaucoup pour tes recherches et le temps passé.