09/06/07

une icône mimetype PDF... et PDFView

PDF

Ajouter une icône modifiée basée sur l'icône PDF issue de Crystal Clear[1] par Everaldo au visualisateur de documents PDF PDFView grâce à l'édition et la modification du fichier Info.plist.

Modification du fichier Info.plist

Le fichier Info.plist[2] ouvert avec Carbon Emacs, par exemple, devrait ressembler à çà, après modification :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>CFBundleDevelopmentRegion</key>
	<string>English</string>
	<key>CFBundleDocumentTypes</key>
	<array>
		<dict>
			<key>CFBundleTypeExtensions</key>
			<array>
				<string>pdf</string>
				<string>PDF</string>
			</array>
			<key>CFBundleTypeIconFile</key>
			<string>document.icns</string>
			<key>CFBundleTypeMIMETypes</key>
			<array>
				<string>application/pdf</string>
			</array>
			<key>CFBundleTypeName</key>
			<string>PDF</string>
			<key>CFBundleTypeOSTypes</key>
			<array>
				<string>PDF </string>
			</array>
			<key>CFBundleTypeRole</key>
			<string>Editor</string>
			<key>LSTypeIsPackage</key>
			<false/>
			<key>NSDocumentClass</key>
			<string>MyPDFDocument</string>
		</dict>
	</array>
	<key>CFBundleExecutable</key>
	<string>PDFView</string>
	<key>CFBundleIconFile</key>
	<string>pdfview.icns</string>
	<key>CFBundleIdentifier</key>
	<string>net.sourceforge.pdfview</string>
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundleName</key>
	<string>PDFView</string>
	<key>CFBundlePackageType</key>
	<string>APPL</string>
	<key>CFBundleSignature</key>
	<string>????</string>
	<key>CFBundleVersion</key>
	<string>0.14.3</string>
	<key>NSAppleScriptEnabled</key>
	<string>YES</string>
	<key>NSMainNibFile</key>
	<string>MainMenu</string>
	<key>NSPrincipalClass</key>
	<string>NSApplication</string>
	<key>OSAScriptingDefinition</key>
	<string>PDFView.sdef</string>
	<key>SUFeedURL</key>
	<string>http://pdfview.sourceforge.net/PDFView.xml</string>
</dict>
</plist>

C'est simplement du XML, donc c'est assez facilement compréhensible… CFBundleDocumentTypes[3] s'occupe des associations de fichiers, pour faire simple.

Et, donc, en y modifiant CFBundleTypeIconFile on peut modifier l'icône associée aux fichiers.

Comme PDFView[4] utilise (dans sa version 0.14.3, au moment où j'écris) la même chaîne que pour l'icône principale du logiciel, ce qui est contraire aux guidelines[5], il suffit d'ajouter une icône à l'application (dans son "bundle" comme je crois que l'on appelle les .app) et de légèrement modifier CFBundleDocumentTypes, en y remplaçant la chaîne pdfview.icns par document.icns, comme c'est le cas dans le bloc de code précédent.

Ajouter l'icône "physiquement"

Puis on ajoute l'icône 'document' dans /PDFView.app/Contents/Resources/[6], on doit attendre que le cache se reconstruise pour que tous les document soient affublés de la nouvelle icône… ça n'est pas très rapide, même si il existe divers procédés, plus ou moins recommandables, permettant de régénérer les divers caches de Tiger.

Téléchargement

Archive contenant les icônes (application et document) et le fichier Info.plist modifié.

Notes

[1] le pack d'icônes Crystal Clear est sous licence LGPL

[2] /PDFView.app/Contents/

[3] Property List Key Reference - developer.apple.com

[4] logiciel sous licence GNU

[5] Apple Human Interface Guidelines: Icon Genres and Families

[6] menu contextuel du Finder : Afficher le contenu du paquet

RSS commentaires

  1. R
  2. A
  3. O
  4. G
  5. 2
  6. R

Pour valider le formulaire, saisissez les 3 premiers caractères de la série

  • caca
  • confused
  • cry
  • dizzy
  • happy
  • lol
  • neutral
  • omg
  • sad
  • smile
  • tongue
  • wink