Tutte e 3 le app di iWork, (Pages, Numbers e KeyNote) trascurano di rimuovere la loro estensione dai PDF quando salvano come PDF dal menu di stampa. (Inoltre, l'opzione Finder per mostrare le estensioni dei file deve essere attiva.)
È possibile creare uno script che si occupi di questo, salvandolo come un servizio PDF, che sarà accessibile dal pulsante PDF del menu di stampa. (Qualsiasi script o app in ~ / Library / PDF Services verrà mostrato qui. Potrebbe essere necessario creare questa cartella.)
Questo script Python rimuoverà l'estensione del file iWork, offrirà una finestra di dialogo file e salverà il 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:])