Estoy tratando de crear un flujo de trabajo de Automator para exportar documentos seleccionados de Pages a PDF. Hasta ahora, todo va bien, excepto por el paso final de exportación.
on run {input, parameters}
repeat with _document in input
tell application "Finder"
set _directory to get container of file _document
set _documentName to name of _document
if _documentName ends with ".pages" then ¬
set _documentName to text 1 thru -7 of _documentName
set _PDFName to _documentName & ".pdf"
set _incrementIndex to 1
repeat until not (exists file _PDFName of _directory)
set _PDFName to ¬
_documentName & "-" & (_incrementIndex as string) & ".pdf"
set _incrementIndex to _incrementIndex + 1
end repeat
set _location to (_directory as string) & _PDFName
end tell
--set _location to (POSIX file of _location)
tell application "Pages"
activate
open _document
with timeout of 1200 seconds
export front document to file _location as PDF
end timeout
close front document
end tell
end repeat
return input
end run
Esto me da un error de permisos de Sandbox.
error 17:49:38.117966 +0100 sandboxd SandboxViolation: Pages(3846) deny file-write-create /Users/brunoscheele/Desktop/Test.pdf
Violation: deny file-write-create
Después de leerlo aquí , parecía que podía solucionarlo cambiando _location
a un archivo POSIX file
.
Así que agregué;
--set _location to (POSIX file _location)
Sin embargo, eso me da el error:
Las páginas recibieron un error: "macOS:Users:brunoscheele:Desktop:Test.pdf" no se pudo interpretar como una URL de archivo.
Usar export front document to (POSIX file _location) as PDF
me da el mismo error.
¿Alguien sabe cómo configurar _location
correctamente, para que no tenga problemas de permisos?
Intente agregar esta línea antes de su paso de exportación:
open for access file _location
Supongo que estás usando macOS Sierra. Este es un problema conocido. Solo pude hacer que mi código funcionara usando el paso anterior antes de que comenzara mi exportación. Asegúrate de no poner esa línea dentro de un bloque de información.
Estás muy cerca. Edite su línea de exportación para que se vea así:
export front document to file _location as PDF
Es la palabra "archivo" que te faltaba.
Nota: probé el script nuevamente y no funcionó, incluso con la palabra "archivo" agregada. Sin embargo, mientras experimentaba descubrí que si cambiaba esta línea:
set _location to (_directory as string) & _PDFName
a
set _location to (_directory as string)
entonces el script, por supuesto, tendría un error. Pero luego, si deshice el cambio, la línea nuevamente se veía así:
set _location to (_directory as string) & _PDFName
el guión comenzó a funcionar! Estoy usando Pages 6.0.5, macOS 10.12.2.
No puedo decir qué está causando este comportamiento.
Tuve un problema similar con un guión en el que estaba trabajando. De hecho, parece estar relacionado con los permisos. La forma en que lo solucioné fue creando el PDF dentro del paquete de archivos de Pages. Entonces, si su archivo de Pages está en:
Macintosh HD:Users:Admin:Desktop:myfile.pages
...entonces crea tu PDF en:
Macintosh HD:Users:Admin:Desktop:myfile.pages:myfile.pdf
Hay una muestra de código del código en el que me encontré con este problema y una muestra de cómo lo resolví aquí:
https://www.ghostotter.com/using-automator-convert-pages-pdf/
¡Espero que ayude!
Página de Chris
SpacyRicochet