iWorks Dokumente in bulk für Microsoft Office konvertieren

Picus

Lt. Commander
Registriert
März 2011
Beiträge
1.079
Servus :)

Da ich demnächst von meinem Macbook wieder auf einen Windows Desktop umsteigen will, suche ich nach einer Möglichkeit, alle meine Pages, Numbers und Keynote Dokumente in entsprechenden Office Dokumente zu konvertieren.

Dabei soll einfach neben jeder .pages, .numbers, .keynote eine .docx, .xlsx, .pptx erstellt werden. Das ganze soll für alle Dateien passieren und jeweils den richtigen Dateipfad behalten.

Weil es sich dabei um eine Menge Dokumente handelt, würde ich gerne auf die manuelle Art und Weise verzichten und suche nach einem (kostenlosen) automatisiertem Weg.
 
Das folgende Workflow will mit einer Datei funktionieren, aber nicht mit mehreren:
Screen Shot 2015-10-18 at 16.00.24.png

Bei mehreren Dateien bekomme ich den Fehler "The item couldn’t be opened because the file name “xyz.pages” is invalid."
 
Was das ganze jetzt macht:

Öffnet Finder und fragt nach Dateien.
Ich durchsuche den ganzen Mac nach Pages Dateien und wähle alle aus.
Jetzt sollte sich Pages öffnen und jede Datei nacheinander zu .docx konvertieren.

Das ganze Funktioniert wenn ich im Finder nur eine Pages Datei öffne. Bei mehreren funktioniert es nicht mehr.

Argh... :freak: :D

Edit: Jemand ne Idee?
 
Zuletzt bearbeitet:
Musst du eventuell ein foreach verwenden? Sodas die Funktion für jede Datei durchlaufen wird.
 
Danke für den Denkanstoß ;)

So hat es im Endeffekt funktioniert:
Code:
function convertToDOCX(pages, input) {
  var inFile    = Path( input );
  var outFile   = Path( input.toString().replace(/\.[^\.]+$/, '.docx') );
	
  var document  = pages.open( inFile );

  pages.export(document, {to: outFile, as: 'Microsoft Word'});
  pages.close(document, {saving: 'no'});

  return outFile.toString();
}

function run(input, parameters) {
  var pages           = Application("Pages")
  var result          = [];
  var documentList    = input instanceof Array ? input : [ input ];

  for (var i in documentList) {
    result.push( convertToDOCX(pages, documentList[ i ]) );
  }

  return result;
}
Mirror vom Javascript: http://hastebin.com/cihewezefu.coffee

Habe mich dabei an diesem Video orientiert und einfach das ganze von PDF auf Word übertragen.
 
Zurück
Oben