Je travaille sur un projet pour OSX où l'utilisateur peut choisir une collection de documents (à partir de n'importe quelle application) dont j'ai besoin pour générer des PDF. La boîte de dialogue standard d'impression Macintosh comporte un bouton PDF contenant un certain nombre de commandes liées au PDF, notamment "Enregistrer en PDF ...". Cependant, j'ai besoin de générer le fichier PDF sans nécessiter d'interactions de l'utilisateur. Je veux idéalement que cela fonctionne avec n'importe quel type de document.Comment générer par programme un PDF à partir de n'importe quel document sous OSX?
Voici les options que je l'ai exploré jusqu'à présent:
- actions Automator. Il existe une bibliothèque PDF pour Automator mais elle fournit des actions pour travailler avec des fichiers PDF, sans les générer. Il y a une action Finder pour imprimer n'importe quel fichier mais seulement pour une vraie imprimante.
- AppleScript. Certaines applications ont la capacité de générer des fichiers PDF (par exemple, si vous envoyez 'save doc in "test.pdf"' Pages, cela générera un PDF (mais cela ne fonctionne que pour Pages - J'ai besoin de support pour tout type de document) .
- imprimante personnalisée. Je pourrais créer un pilote d'imprimante virtuelle, puis utilisez l'action Automator mais je n'aime pas l'idée de confondre l'utilisateur avec une imprimante supplémentaire dans la liste d'impression.
Mon espoir est qu'il ya un moyen d'interagir avec l'application active comme si l'utilisateur exécutait les étapes suivantes:
- Do Cmd-P (ouvre la boîte de dialogue d'impression)
- Cliquez sur le bouton "PDF"
- Sélectionnez "Enregistrer au format PDF ..." (deuxième élément dans le menu)
- Tapez le nom de fichier dans boîte de dialogue Enregistrer
- Cliquez sur "Enregistrer"
Si c'est la meilleure approche (est-ce?) alors le vrai problème est: comment envoyer des événements d'IU à une application externe (frappes, événements de souris, sélections de menu)?
Mise à jour: Juste pour clarifier un point: les documents que je dois convertir au format PDF sont des documents qui sont créés par d'autres applications . Par exemple, l'utilisateur peut choisir un document Word ou une feuille de calcul Numbers ou un dessin OmniGraffle ou une page Web. Le dénominateur commun est que chacun de ces documents a une application associée et que cette application sait comment l'imprimer (et OSX sait comment rendre la sortie imprimée dans un fichier PDF). Par conséquent, les échantillons de Cocoa Dev Central n'aident pas car ils génèrent un PDF de à mon application.
Merci! C'était exactement le pointeur que je cherchais. –
-1 Cela semble être une bonne approche si vous ouvrez un fichier dans un safari mais je suis sûr que vous ne voulez pas le bon code pour toutes les applications possibles – mcgrailm