Les 3 applications iWork (Pages, Numbers et KeyNote) négligent de supprimer leur extension de fichier des PDF lors de l'enregistrement en tant que PDF à partir du menu d'impression. (L'option du Finder permettant d'afficher les extensions de fichiers doit également être activée).
Il est possible de créer un script qui s'en occupe, en l'enregistrant comme un Service PDF, qui sera accessible à partir du bouton PDF du menu d'impression. (Tout script ou application dans ~/Library/PDF Services sera affiché là. Vous devrez peut-être créer ce dossier).
Ce script supprimera l'extension de fichier iWork, offrira un dialogue de fichier et enregistrera le PDF.
#!/usr/bin/python
# coding=utf-8
# SAVE PDF FROM STUPID iWORK
# PDF Service to strip iWork file extension before saving PDF to designated folder
# Save this file in ~/Library/PDF Services. It will then be available in the
# PDF button of the print menu.
import os
import sys
import Quartz as Quartz
from Foundation import NSURL
from AppKit import NSSavePanel, NSApp
def save_dialog(directory, filename):
panel = NSSavePanel.savePanel()
panel.setTitle_("Save PDF document")
myUrl = NSURL.fileURLWithPath_isDirectory_(directory, True)
panel.setDirectoryURL_(myUrl)
panel.setNameFieldStringValue_(filename)
NSApp.activateIgnoringOtherApps_(True)
ret_value = panel.runModal()
if ret_value:
return panel.filename()
else:
return ''
def main(argv):
(title, options, pathToFile) = argv[:]
# Set the default location where the PDFs will go (you'll need to make sure this exists)
destination = os.path.expanduser("~/Desktop/")
stripTitle = (os.path.splitext(title)[0])
stripTitle += ".pdf"
outputfile = save_dialog(destination, stripTitle)
# Copy file to selected location.
if outputfile != "":
pdfURL = NSURL.fileURLWithPath_(pathToFile)
pdfDoc = Quartz.PDFDocument.alloc().initWithURL_(pdfURL)
if pdfDoc:
pdfDoc.writeToFile_(outputfile)
# Delete original PDF from spool folder
os.remove(pathToFile)
if __name__ == "__main__":
main(sys.argv[1:])
0 votes
Je viens d'essayer et je ne peux pas reproduire. Quelle version d'OS X utilisez-vous ?
0 votes
@AlanShutko le PO utilise l'option "Enregistrer en PDF" dans la boîte de dialogue d'impression, le nom par défaut est "document.pages.pdf".
1 votes
Pourquoi utilisez-vous l'option "Enregistrer en PDF" dans la boîte de dialogue Imprimer et non l'option "Exporter vers ..." ? PDF" ?
1 votes
J'ai essayé, mais j'admets que j'utilise un système d'exploitation bêta. Je viens de l'essayer sur un Mavericks 10.9.2 standard (dans textedit, puisque pages n'y était pas installé) et il n'a pas gardé l'extension rtf. Je me demande si la base de données de LaunchServices doit être réinitialisée ?
0 votes
Merci pour tous les commentaires ! L'option "Exporter vers..." n'inclut pas l'extension .pages, donc cela pourrait fonctionner. Cependant, j'ai la mémoire musculaire pour P et ensuite P à nouveau pour générer le PDF, donc j'aimerais quand même trouver une solution si c'est possible.