Batch convert to ascii using text wrangler

I am trying to create an Apple script using Text Wrangler to do batch conversions of 8 bit to 7 bit plain text files. My current approach using Automator is:
1. Get specified Finder items
2. Get Folder contents
3. then run the Apple script to convert.
I recorded the actions and tried to modifiy the script but don't really know what I am doing. Here is what I have.
on run {input, parameters}
tell application "TextWrangler"
activate
repeat
convert to ASCII text of text document with replacing target
close {text document} saving yes
end repeat
end tell
return input
end run
I am not sure how to represent the name for the "generic" file in batch mode and also how to make sure it repeats through the entire folder. I know this is basic stuff, hope someone can help.
It is fine to convert, save, then close. Not worried about preserving the original.
Thanks ahead of time

Well, I downloaded TextWrangler 2.2.1 and tried to test this out. From what I can tell from Bare Bones's website, BBEdit would have Automator actions for this and the files wouldn't need to be opened individually. Though, that would cost a bit more than TextWrangler.
Anyways, since you're using Automator, getting the files has been simplified and so all you need to do is repeat it for each file. Here's the slight modification:
<pre>on run {input, parameters}
tell application "TextWrangler"
activate
repeat with this_file in input
open this_file
convert to ASCII text of text document 1 with replacing target
close {text document 1} saving yes
end repeat
end tell
return input
end run</pre>
I named the variable "this_file" to represent each of the files in the list it receives, but you can name it anything. If you use Automator's "View Results" before the "Run AppleScript" action, then you can see what is being passed into it. It seems like you need the "1" after "text document" because the windows in TextWrangler can have more than one document, even if you only have one document open at a time.
Since you have to have TextWrangler open, you could probably adjust the script to open all the files at once and then iterate through the contents of each. But it pretty much would do the same thing.
I couldn't figure out if anything was actually changing in the documents (i.e. does it look like 7-bit or 8-bit? don't know), but I did confirm the text of each document was being passed to the "convert to ASCII". So, it must be doing whatever it's doing.
(Oh, just for reference, the "return input" part of the script at the end sends the stuff in "input" to the next action. In this case, the "input" contains a list of files from the previous action, so returning that passes that list to the next action. This means you can do more to the files. Keep this in mind if you replace whatever is in "input" directly, for example setting "input" to the number 7 or something like that. You can also create some other variable and return that instead.)

Similar Messages

  • Converting "UTF8" files to other encodings in Text Wrangler

    Hi and thanks for your help
    I have several text files I can easily use in different ways using Text Wrangler.
    I need to convert text files originally written with different enchodings and I get errors.
    I can overcome this using this script:
    tell application "TextWrangler"
       tell document 1
           set line breaks to Unix
           set encoding to "Cyrillic (Windows)"
       end tell
    end tell
    However my attempts to create a loop always return this error
    TextWrangler got an error: An unexpected error occurred while processing an Apple Event (MacOS Error code: -10000)
    What is wrong with my script?
    set inputfolder to (choose folder)
    set theFiles to list folder inputfolder without invisibles
    tell application "TextWrangler"
    repeat with x from 1 to count of theFiles
              set thefile to item x of theFiles
              set inputfile to quoted form of (POSIX path of inputfolder & thefile)
      set line breaks to Unix
           set encoding to "Cyrillic (Windows)"
       end tell
    end repeat

    If its not typo you have the end tell inside the end repeat. Should be the other way.
          set encoding to "Cyrillic (Windows)"
       end tell
    end repeat
    end
    That shouldn't even compile.

  • Can I use Adobe Acrobat X Pro to batch convert v1.6 PDF files to v1.3?

    Recently I have posted up a project so the contractor can read the text in the PDF and create hyperlinks from these text. These PDFs are in format of engineering drawings.
    He informed me that he was going to use PHP to read the PDF text as javascript cannot.
    He then asked me to convert the version of our current PDF files from v1.6 to a lower version: v1.3, because php cannot work with higher PDF versions.
    So I found this PDF version converter: [link removed by forum host] but it only converts one by one. I have like a few hundreds of them, so I really need something to do batch convert.
    Could anyone help me out here? We (the small business I am working at) do not have Adobe Acrobat X Pro but will buy it if it can do the job.
    Otherwise could anyone advise me of any other software that can do this?
    Thanks heaps.

    Yes, Acrobat XI Pro can do this very easily. You can create an Action that runs the PDF Optimizer tool, which can convert the file content so it's compatible with any earlier version of PDF (as well as other things). Actions can then be run against a folder of files.

  • Can I use Mac Dictate to convert voice memos to text?

    Can I use Mac Dictate to convert voice memos to text?

    If by "Mac Dictate", you mean the built in speech-to-text feature, no, you can't use that to convert a voice memo, at least not easily. Speech-to-text is designed to work on live speech, not recordings. But, there's no harm in trying.

  • I am looking for an application that would allow me to open a word doc, and take notes in the .doc using a stylus pen.  I'd then like to convert those notes to text, and then be able to copy / paste those notes into an email.  Does this app exist?

    I am looking for an application that would allow me to open a word doc, and take notes in the .doc using a stylus pen.  I'd then like to convert those notes to text, and then be able to copy / paste those notes into an email.  Does this app exist?  It seems like we were doing these same types of things with Palm Pilots years ago, one would think this would work with iPads?

    I don't believe it will open a Word document, but Writepad allows for handwritten conversion of notes to text and then to email. Might help you some of the way...

  • How do I convert the ASCII character % which is 25h to a hex number. I've tried using the scan value VI but get a zero in the value field.

    How do I convert the ASCII character % ,which is 25h, to a hex number 25h. I've tried using the scan value VI but I get a zero in the value field. 

    You can use String to Byte Array for this.

  • Using batch convert tool on my website

    Can anyone help me out with a few questions:
    1)  How can I use Batch Convert tool on my website where I will be able to process the files with an automated process?
    2)  How and from where can I get the API to embed on my website?
    3)  I want to automate the batch conversion process so that no human intervention is required. Can I do that?
    Appreciate the answers.

    amit.wadhwa wrote:
    Can anyone help me out with a few questions:
    1)  How can I use Batch Convert tool on my website where I will be able to process the files with an automated process?
    2)  How and from where can I get the API to embed on my website?
    3)  I want to automate the batch conversion process so that no human intervention is required. Can I do that?
    The batch processor in Audition is an internal tool, not an external one so no, you can't use it on your website because it's DAW, not a web development kit. There's no API available.

  • Batch convert Binary to Text

    Environment:
    Forms version 10.1.2.2.0
    Red Hat Enterprise Linux AS release 4 (Nahant update2)
    Problem:
    How to convert Forms Binary to text format from Linux command line.
    This must be the same result as choosing File=>Administration=>Object List Report in the Forms Object Navigator menu.

    Hi ,
    Use the general format...:
    frmcmp module=myform script=YES
    The script parameter Converts a binary file format (.FMB, .MMB, or .PLL) to a text format (.FMT, .MMT, or .PLD).
    This must be the same result as choosing File=>Administration=>Object List Report in the Forms Object Navigator menu
    No it is not.... This operation can also be done within Oracle Forms by using the Convert command.
    Greetings
    Simon

  • How to convert XML message in text format by using HTTPS-Receiver adapter

    Is it possible to convert XML message in text format when we use HTTPS as the receiver adapter?
    If yes, how?
    Thanks!
    Mrudula

    Hi Mrudula,
    As far as i know there are no content conversion methodology for HTTPS as the recevier adapter.
    Also you can read through these links to confirm the same:
    http://help.sap.com/saphelp_nw04/helpdata/en/0d/5ab43b274a960de10000000a114084/content.htm
    http://publib.boulder.ibm.com/infocenter/wbihelp/v6rxmx/index.jsp?topic=/com.ibm.wbia_adapters.doc/doc/sap_xi/sapximst30.htm
    SAP NetWeaver - XML Communication Interface (CA-XML) [original link is broken]
    Regards,
    abhy
    note: reward the helpful.

  • Using Aperture to batch convert images from tiff to jpeg

    Hi there
    My first question - here goes:
    I wish to batch convert several thousand tiffs (of various sizes) to a standardised jpeg (A4 @ 300dpi). I'm looking for software to automate this process as much as possible; ideally, it would search designated folders and place the new jpegs in a (matching) new folder structure.
    Would Aperture be suitable for this, or should I consider Adobe Lightroom (or other)?
    Many thanks
    BR

    No filters.
    Solution I used was to create new project. Copy images to it. Delete old project.
    Aperture would not let me copy images from old albums to old project.

  • Drag and Drop to Batch Convert Videos Using FFMPEG

    I've created this simple Applescript that will run an FFMPEG command in the Terminal (which I want to show so that I can see the progress) on files dropped on the MTS to Cropped MPG.app icon:
    on open filelist
              repeat with i in filelist
                        tell application "Terminal"
                                  do script "/Users/Lapaki/Desktop/MTS\ to\ Cropped\ MPG.app/Contents/Resources/ffmpeg -i " & POSIX path of i & " -vf crop=iw-360:1080:180:0 -f dvd -vcodec mpeg2video -s 720x480 -r 29.97 -acodec ac3 -ar 48000 -ab 448000 -async 1 -aspect 4:3 -b 4500000 " & POSIX path of i & ".mpg"
                        end tell
              end repeat
    end open
    I'd like to make this app portable so that I can share it or move it around as needed, so I put FFMPEG inside the Contents/Resources folder inside the app. The obvious problem is that the script will break as soon as I move the app to a different location. Is there a way to write the dynamic path of the app itself, no matter where it is moved, so that the app won't break when shared or moved?
    This script also only works on a single video file. What I'd really like to do is drop a folder (which will always be called "mts") onto the app, and have the script create a new folder called "mpg" in the same directory as "mts", then batch convert all the .mts files in the "mts" folder, placing each new .mpg file into the "mpg" folder.
    I'd also like the .mpg files to retain the same name as the .mts files, but instead of just appending .mpg, I'd like the .mpg to replace the .mts extension. So 00001.mts would be 00001.mpg (not 00001.mts.mpg as the current script generates).
    Any help here would be much appreciated.

    Tony,
    quoted form of worked perfectly!
    Now to the batching...
    In my case there will never be nested directories. There will simply a folder called "mts" with at least one, but perhaps many .mts files, all named sequentially (00000.MTS, 00001.MTS, and so on).
    So I'm having trouble figuring out how to integrate this:
    on process_files_(fs)
              repeat with f in fs
                        tell application "System Events" to set finfo to the properties of f
                        if kind of finfo is "Folder" then
                                  tell application "Finder" to set dirList to (items in f) as alias list
      process_files_(dirList) -- recurse directories
                        else if tolower(«class extn» of finfo) is not equal to "flac" then
                                  tell me to activate
                                  tell me to display dialog (name of finfo & " is not a Flac file") with iconcaution giving up after 2
                        else
                                  try
                                            with timeout of 30000 seconds -- plenty of time
                                                      my itunes_convert_(f)
                                            end timeout
                                  end try
                        end if
              end repeat
    end process_files_
    With this:
    on open filelist
              repeat with i in filelist
                        tell application "Terminal"
                                  do script quoted form of (POSIX path of (path to me) & "Contents/Resources/ffmpeg" as string) & " -i " & POSIX path of i & " -vf crop=iw-360:1080:180:0 -f dvd -vcodec mpeg2video -s 720x480 -r 29.97 -acodec ac3 -ar 48000 -ab 448000 -async 1 -aspect 4:3 -b 4500000 " & POSIX path of i & ".mpg"
                        end tell
              end repeat
    end open
    Again, it would be great to just drop a folder called "mts" onto the application, and have it convert all the .mts files inside and put them in a new folder called "mpg", which would be in the same directory as the "mts" folder.
    Any way to make this happen?

  • Batch convert Pages files to Doc and stay in the same folder?

    Hi there,
    I use iWork '09 on Mountain Lion. I recently switched to Microsoft Word and prefer it over Pages (personal preference). However, I have nearly 1000 files on my computer that are in Pages format. I have extensively searched this issue in the Apple Support Communities and it appears that there are scripts that DO EXIST that batch convert Pages files into Word files. However, it appears that many of these scripts were built for older versions of iWork and therefore I run into various errors. For example, I used the script available at http://pagesfaq.blogspot.com/2008/01/export-folder-to-word-rtf-pdf-txt-or.html and click run but nothing actually happens (the script runs for less than a second, then I can click run again). I was able to use one script successfully (pasted below), but the only reason I can't use it is because it saves ALL my converted documents in one folder on my desktop and I would like a script that can save them in the original file were the Pages document is located.
    So, is there an iWork '09 compatible script that can convert my Pages documents to Word documents and save them in the same folder as the original? Oh, and for an added bonus, it'd be cool if the script also deleted my Pages version after it was done with the conversion
    --[SCRIPT batch_exportPages2DOC] (* Enregistrer ce script en tant que script ou progiciel. Exécuter ce script ou déposer l'icône d'un dossier sur son icône. Il ouvre tout document Pages du dossier et l' enregistre en fichier DOC  dans le dossier "was_Pages_now_DOC". Celui-ci peut être sur le bureau ou dans le dossier "~/Documents". Si le GUIscripting n'est pas activé le script demande votre mot de passe pour l'activer. Le script récupère le dossier d'exportation par défaut dans le fichier de préférences de Pages. Éviter de cliquer durant l'exécution du script sauf évidemment pour sélectionner le dossier source. ************* Save the script as script or application bundle. Run it or drag and drop a folder icon on its icon. It opens every Pages's documents stored in the folder and save it as DOC file in a folder named "was_Pages_now_DOC". This one may be on the desktop or in the "~/Documents" folder. according to the property storeOnDesktop. If GUIscripting is disabled the script ask for your password to enable it. The script extract the default export path from the Pages's preferences file. Don't click when the script is running. Except, of course, to select the source folder. ************* Yvan KOENIG (VALLAURIS, France) 2008/04/20 2009/06/17 adapté pour format .doc 2009/12/13 updated for MacOs 10.6… *) property theApp : "Pages" property theExt : "pages" property nomDuRapport : "report_Pages2DOC.txt" property nom_du_dossier : "was_Pages_now_DOC" property storeOnDesktop : true (* true = dest folder will be on Desktop false = dest folder will be in "~/Documents" *) property msg1 : "" -- globale property msg90 : "" -- globale property msg91 : "" -- globale -- property msg92 : "" -- globale property msg94 : "" -- globale property msg96 : "" -- globale property msg99 : "" -- globale property rapport : "" -- globale property dossierDeStockage : "" -- globale property dossierParDefaut : "" -- globale property localExport : "" -- globale property newExt : "" -- globale property newType : "" -- globale property isOs4 : missing value -- globale property isOs5 : missing value -- globale property theMenu : missing value -- globale property menuExport : missing value -- globale property types : {{"doc", "SLDocumentTypeMSWord", 2}, {"pdf", "SLDocumentTypePDF", 1}, {"txt", "SLDocumentTypePlainText", 4}, {"rtf", "SLDocumentTypeRichText", 3}, {"rtfd", "SLDocumentTypeRichTextBundle"}, 3} --===== (* our settings *) property typeNum : 1 (* 1 = WORD, 2 = PDF, 3 = Txt, 4 = rtf, 5 = rtfd *) property theButton : missing value (* 1          button PDF 2          button Word 3          button RTF 4 button Standard *) --===== on run (* lignes exécutées si on double clique sur l'icône du script application • lines executed if one double click the application script's icon *)             tell application "System Events" to set dossier to choose folder (* dans un bloc System Events pour avoir un titre de dialogue "localisé" • in a System Events block to get a localized dialog title. *)           my commun({dossier})             --          my commun({"Macintosh HD:Users:yvan_koenig:Desktop:for_see:" as alias}) end run --===== on open (sel) (* sel contient une liste d'alias des éléments qu'on a déposés sur l'icône du script (la sélection) • sel contains a list of aliases of the items dropped on the script's icon (the selection) *)           my commun(sel) end open --===== on commun(elems)           my nettoie()           my prepareMessages()             tell application "System Events"                     if not (UI elements enabled) then set (UI elements enabled) to true (* Active le GUI scripting • Enable GUI scripting *)                     set titres to title of processes           end tell -- to System Events             if theApp is not in titres then my activateTheApp() (* Active et ferme la fenêtre du document créé à l'ouverture • Activate and close the doc's window created at opening *)           set {newExt, newType, theButton} to item typeNum of types (* item 1 = {"doc", "SLDocumentTypeMSWord",2} item 2 = {"pdf", "SLDocumentTypePDF",1} item 3 = {"txt", "SLDocumentTypePlainText",4} item 4 = {"rtf", "SLDocumentTypeRichText",3} item 5 = {"rtfd", "SLDocumentTypeRichTextBundle",3} *)           set sysAtt to (system attribute "sys2")           if 4 > sysAtt then                     if my parleAnglais() then                               error "This script requires MacOs X 10.4 or higher !"                     else                               error "Ce script requiert MacOs X 1.4 ou ultérieur !"                     end if           else if 5 > sysAtt then                     set isOs4 to true                     set isOs5 to false                     if my getVersion() < "4" then                               set theMenu to 3                               set menuExport to 13                     else                               set theMenu to 10                               set menuExport to 9                     end if           else if 6 > sysAtt then                     set isOs4 to false                     set isOs5 to true                     if my getVersion() < "4" then                               set theMenu to 3                               set menuExport to 13                     else                               set theMenu to 10                               set menuExport to 8 (* was a wrong 9 *)                     end if           else                     set isOs4 to false                     set isOs5 to false                     if my getVersion() < "4" then                               set theMenu to 3                               set menuExport to 13                     else                               set theMenu to 10                               set menuExport to 8 (* was a wrong 9 *)                     end if           end if           my fermeFenetres() (* • Close existing windows *)             my afficheLeMessage(msg1) (* Éviter de cliquer… • Don't click… *)           tell application theApp to set localExport to localized string "Export"           set dossierParDefaut to my getDefaultExport() as text           set rapport to ""           set dossierDeStockage to my creeDossierDeStockage(nom_du_dossier) (* Unicode text *)             try                     repeat with elem in elems                               try                                         my exploreTraite(elem as alias, "")                               end try                     end repeat                       if rapport = "" then set rapport to msg90                     -- crée un fichier texte sur le Bureau                     set p2d to path to desktop                     set p2r to (p2d as Unicode text) & nomDuRapport                     tell application "System Events"                               if exists (file p2r) then delete (file p2r)                               make new file at end of p2d with properties {name:nomDuRapport}                     end tell                     set rapport to rapport as text                     write rapport to (p2r as alias)             on error MsgErr number NroErr                     if NroErr is not -128 then                               beep 2                               tell application (path to frontmost application as string) to ¬                                         display dialog "" & NroErr & " : " & MsgErr with icon 0 buttons {msg99} giving up after 20                     end if -- NroErr is…                     return           end try             my nettoie()           if my parleAnglais() then                     my afficheLeMessage("Export done.")           else                     my afficheLeMessage("Traitement terminé.")           end if end commun --===== on nettoie() (* pour ne pas stocker dans le fichier script • So it will not be stored in the script file *)           set dossierDeStockage to ""           set dossierParDefaut to ""           set rapport to ""             set localExport to ""           set newExt to ""           set newType to ""           set isOs4 to missing value           set isOs5 to missing value           set theMenu to missing value           set menuExport to missing value           set theButton to missing value           set msg1 to ""           set msg90 to ""           set msg91 to ""           set msg92 to ""           --           set msg94 to ""           set msg96 to ""           set msg99 to " " end nettoie --=====  on afficheLeMessage(m)           beep 1           tell application (path to frontmost application as string)                     activate                     if my parleAnglais() then                               display dialog m buttons {" OK "} default button 1 giving up after 10                     else                               display dialog m buttons {" Vu "} default button 1 giving up after 10                     end if           end tell end afficheLeMessage --===== on creeDossierDeStockage(Nom) (* S'il n'existe pas, construit un dossier destination sur le bureau ou dans "~/Documents" • If does not exist, create a destination folder on the desktop or in "~/Documents" *)           local dd, dds           if storeOnDesktop is true then                     set dd to path to desktop as Unicode text           else                     set dd to path to documents folder as Unicode text           end if             if Nom ends with ":" then                     set dds to dd & Nom           else                     set dds to dd & Nom & ":"           end if           (* dossierDeStockage n'existe pas, on le crée • dossierDeStockage is not available, build it *)           tell application "System Events" to if not (exists item dds) then make new folder at end of folder dd with properties {name:Nom}           return dds as Unicode text end creeDossierDeStockage --===== on exploreTraite(elem, ptree) (* elem est un alias • elem is an alias *)           local elem_, cl_, type_Id           set elem_ to elem as Unicode text           tell application "System Events" to tell disk item elem_                     set cl_ to class                     if cl_ is folder then                               set type_Id to ""                     else                               set type_Id to type identifier                     end if           end tell --  "System Events"           set cl_ to cl_ as Unicode text             if type_Id is in {"com.apple.iwork.pages.pages", "com.apple.iwork.pages.sffpages"} then (* C'est un fichier Pages. • It's a Pages document *)                     my TraiteUnDocument(elem_)           else if cl_ is in {"file package", "«class cpkg»"} then                     set rapport to rapport & msg91 & elem_ & return (* "Package", Attention, un package EST un dossier "spécial". • Caution, a package IS a "special" folder. *)           else if cl_ is in {"folder", "«class cfol»"} then                     my ExploreUnDossier(elem_, ptree)           else                     set rapport to rapport & msg92 & elem_ & return (*  "Pas un document Pages". • "Not a Pages's document" *)           end if -- typeId_ is … end exploreTraite --===== on ExploreUnDossier(dossier, ptree)           local nomElement, cheminElement, c           repeat with nomElement in list folder dossier without invisibles                     set cheminElement to dossier & nomElement                     tell application "System Events" to set c to name of (dossier as alias)                     my exploreTraite(cheminElement as alias, ptree & c & ":")           end repeat end ExploreUnDossier --===== on TraiteUnDocument(leCheminOriginal_UniText)           my export2Doc(leCheminOriginal_UniText as alias, leCheminOriginal_UniText) end TraiteUnDocument --===== on export2Doc(p, leCheminOriginal_UniText) (* • here p is the path as alias *)           local flag, nom_de_p, nouveauChemin, w, bof, x, p_xport           try                     tell application theApp                               open p                               set flag to false                               repeat 300 times (* Attends que le fichier soit réellement ouvert. • Wait until the file is really open *)                                         if my getNbWindows() > 0 then                                                   set flag to true                                                   exit repeat                                         end if                               end repeat                     end tell -- to theApp                     if flag is false then error number 8888 (* Le fichier n'a pu être ouvert. • The file can't be open. *)           on error MsgErr number NroErr                     if NroErr = 8888 then                               set rapport to rapport & msg94 & leCheminOriginal_UniText & return                     else                               set rapport to rapport & "### " & MsgErr & " ### " & errNbr & return                     end if                     return (* can't do the remaining tasks *)           end try             tell application "System Events" to tell file leCheminOriginal_UniText                     set nom_de_p to name           end tell -- System Events             if nom_de_p ends with theExt then set nom_de_p to text 1 thru -(2 + (length of theExt)) of nom_de_p           set nouveauChemin to dossierParDefaut & nom_de_p & "." & newExt           --log nouveauChemin           tell application "System Events" to if exists (file nouveauChemin) then set name of file nouveauChemin to nom_de_p & my horoDateur(modification date of file nouveauChemin) & "." & newExt (* name stamped *)           try                     set {w, bof} to my getFrontWindow()                       tell application "System Events" to tell application process theApp                               click menu item menuExport of menu 1 of menu bar item theMenu of menu bar 1 (* Exporter… *)                               repeat until exists sheet 1 of window w                                         delay 0.1                               end repeat                               tell sheet 1 of window w (* sheet containing the buttons PDF, Word, RTF, Standard *)                                         --          get properties of UI elements of radio group 1                                         if isOs4 then                                                   click button theButton of radio group 1                                         else if isOs5 then                                                   click checkbox theButton of radio group 1                                         else                                                   click radio button theButton of radio group 1 (* I hope that they will no longer change it *)                                         end if -- isOs4 is true                                         (*                                         if typeNum is 2 then                                                   delay 0.2                                                   tell pop up button 1                                                             click                                                             click menu item quality of menu 1                                                   end tell                                                   delay 0.2                                         end if                                         *)                                         click button 1 (* Suivant… *)                                         repeat until exists button localExport                                                   delay 0.1                                         end repeat                                         click button localExport (* Exporter… *)                               end tell -- to sheet…                                 repeat 20 times                                         if exists sheet 1 of window w then                                                   click button 2 of sheet 1 of window w (* "Ne pas consulter " dans éventuel rapport d'anomalies • "Don't review" in sheet reporting possible export anomalies *)                                                   exit repeat                                         end if                                         delay 0.1                               end repeat                     end tell -- to process … System Events                       if dossierDeStockage is not dossierParDefaut then (* we must move the file from folder dossierParDefaut to folder dossierDeStockage *)                                 set p_xport to dossierDeStockage & nom_de_p & "." & newExt                                 tell application "System Events" to if exists (file p_xport) then set name of file p_xport to nom_de_p & my horoDateur(modification date of file p_xport) & "." & newExt                               tell application "Finder" to duplicate file nouveauChemin to folder dossierDeStockage (*                               • before 10.5, System Events is unable to move *)                                 my wait4File(p_xport)                                 tell application "System Events" to if exists file nouveauChemin then delete file nouveauChemin                     end if -- dossierDeStockage is not…                     my ferme1fenetre()             on error errMsg number errNbr                     set rapport to rapport & msg96 & p & return & errMsg & " ### " & errNbr & return           end try end export2Doc (* ===== • Build a stamp from the modification date_time *) on horoDateur(dt)           local annee, mois, jour, lHeure, lesSecondes, lesMinutes           set annee to year of dt           set mois to month of dt as number (* existe depuis 10.4 *)           set jour to day of dt           set lHeure to time of dt           set lesSecondes to (lHeure mod 60)           set lHeure to round (lHeure div 60)           set lesMinutes to (lHeure mod 60)           set lHeure to round (lHeure div 60)           return "_" & annee & text -2 thru -1 of ("00" & mois) & text -2 thru -1 of ("00" & jour) & "-" & text -2 thru -1 of ("00" & lHeure) & text -2 thru -1 of ("00" & lesMinutes) & text -2 thru -1 of ("00" & lesSecondes) (* • Here, the stamp is  "_YYYYMMDD-hhmmss" *) end horoDateur (* ===== • Take care, the front window may be an Inspector or a dialog one. *) on getFrontWindow()           local namesOfWindows, w, flag           tell application theApp to activate           set flag to false           tell application "System Events" to tell application process theApp                     set namesOfWindows to name of every window                     repeat with w in namesOfWindows                               if subrole of (get properties of window w) is "AXStandardWindow" then                                         set flag to true                                         exit repeat                               end if                     end repeat           end tell           return {w, flag} (* • w is the name of the front document's window *) end getFrontWindow (* ===== • Wait that the file is completely written on disk *) on wait4File(p) (* • p must be Unicode text *)           local oldSize, nnn, newSize           set oldSize to 0           tell application "System Events" to set nnn to name of file p             repeat                     try                               tell application "System Events" to set newSize to physical size of file p                               if oldSize < newSize then                                         set oldSize to newSize                               else                                         exit repeat                               end if                     end try           end repeat end wait4File --===== on activateTheApp()           local bof, status           tell application theApp to activate           if my getStartingStatus() is false then tell application "System Events" to tell application process theApp to keystroke return           repeat                     set {bof, status} to my getFrontWindow()                     if status is true then exit repeat           end repeat end activateTheApp (* ===== • Close existing open windows *) on fermeFenetres()           repeat while my getNbWindows() > 0                     my ferme1fenetre()           end repeat (* • Now there is no open window *) end fermeFenetres --===== on ferme1fenetre()           tell application theApp to activate           tell application "System Events" to tell application process theApp to keystroke "w" using {command down} end ferme1fenetre --===== on getPlistValue(valName, default)           local thePlist, u           set thePlist to (path to preferences folder as Unicode text) & "com.apple.iWork." & theApp & ".plist"           tell application "System Events"                     if exists file thePlist then                               tell contents of property list file thePlist                                         try                                                   set u to (value of property list item valName) (* Unicode Text *)                                         on error (* On est là si Pages n'a rien enregistré avec des préférences neuves • Here if Pages never saved with the new preferences file. *)                                                   set u to default                                         end try                               end tell -- to contents of…                     else (* On est là s'il n'y a pas de fichier de préférences • Here if there is no preferences file. *)                               set u to default                     end if           end tell -- to system events           return u end getPlistValue --===== on getStartingStatus()           return my getPlistValue("LSDefaultsUseDefaultStartingPoint", false) end getStartingStatus --===== on getDefaultExport()           local u           (* son of a *****, I forgot that they don't use the same name !! *)           if theApp contains "Pages" then                     set u to my getPlistValue("SLDocumentDefaultExportDirectory", "~/Documents")           else if theApp contains "Numbers" then                     set u to my getPlistValue("LSDocumentDefaultExportDirectory", "~/Documents")           else                     error "I didn't coded a Keynote version !"           end if             set u to (POSIX file (do shell script "echo " & u)) as text           if u ends with ":" then                     return u           else                     return (u & ":")           end if end getDefaultExport --===== on getNbWindows()           tell application "System Events" to tell application process theApp to return count of windows end getNbWindows --===== on getLocale(a, x)           tell application a to return localized string x end getLocale --===== on getVersion()           try                     tell application theApp to return version           on error                     return "1"           end try end getVersion --===== on parleAnglais()           local z           try                     tell application theApp to set z to localized string "Cancel"           on error                     set z to "Cancel"           end try           return (z is not "Annuler") end parleAnglais --===== on prepareMessages()           if my parleAnglais() then                     set msg1 to "Don’t click when the script is running." & return & "Except, of course, if it ask for."                     set msg90 to "No problem during the export process."                     set msg91 to "Package"                     set msg92 to "Not a " & theApp & "’s document"                     --                     set msg94 to theApp & " can’t read it"                     set msg96 to "Not copied."                     set msg99 to "Oops"           else                     set msg1 to "Éviter de cliquer durant l’exécution du script" & return & "sauf s’il le demande."                     set msg90 to "Exportation réussie sans incident."                     set msg91 to "Package"                     set msg92 to "Pas un document " & theApp                     --                     set msg94 to theApp & " n’a pas pu le lire"                     set msg96 to "Pas copié."                     set msg99 to " Vu "           end if           set msg91 to "### " & msg91 & " ###  "           set msg92 to "### " & msg92 & " ###  "           --           set msg94 to "### " & msg94 & " ###  "           set msg96 to "### " & msg96 & " ###  " end prepareMessages --===== --[/SCRIPT]

    Try this app: http://tyorex.com/iWorkConverter
    Batch convert Pages files to doc and pdf.

  • Looking for a howto for an applescript to batch convert PPTS to Keynote...

    Looking for a howto for an applescript to batch convert PPTS to Keynote...
    Hi to group!
    (cross posted this a couple of weeks ago to Keynote forum, no responses) Perhaps the query really belongs here...)
    (I) Have a whole bunch of PPTs to convert to Keynote, now and more as time goes on.
    Looked into applescript to try to automate this a bit (could open PPT file but did not see any way to 'Save' file from a script).
    Also looked into bash scripting/automator too -- way too many options to choose from. Help!
    Anybody done anything similar to this already?
    TIA for pointers. //GH

    A word of caution.
    I have not tried the workflow before.
    I am not an applescript expert.
    These steps were quickly composed using my basic knowledge in Applescript
    What I was planning was to create a script droplet that when a ppt file is dropped upon it, it extracts the name of the file and sets it to a variable to name the keynote file later. You might have to modify it a bit to batch process multiple files.
    Try going through batch processing scripts made for quark or Adobe photoshop ( Not sure if these exist on internet) to see how they have implemented the steps in applescript.
    To GUI Script Keynote, do these steps...
    All the code has to go in here
    <pre title="this text can be pasted into the Script Editor" style="font-family: Monaco, 'Courier New', Courier, monospace; font-size: 10px; padding: 5px; width: 720px; color: #000000; background-color: #E0E0E0; overflow: auto">activate application "Keynote.app"
    tell application "System Events"
       tell process "Keynote"
          -- insert GUI Scripting statements here
       end tell
    end tell
    </pre>
    <pre title="this text can be pasted into the Script Editor" style="font-family: Monaco, 'Courier New', Courier, monospace; font-size: 10px; padding: 5px; width: 720px; color: #000000; background-color: #E0E0E0; overflow: auto">click menu item "Export…"  of menu 1 of menu bar item "File"  of menu bar 1</pre>
    This will click the next.. button provided the default export type is set to PPT
    <pre title="this text can be pasted into the Script Editor" style="font-family: Monaco, 'Courier New', Courier, monospace; font-size: 10px; padding: 5px; width: 720px; color: #000000; background-color: #E0E0E0; overflow: auto">click button 2 of sheet 1 of window 2
    </pre>
    This will click the Export button on the next window
    click button 1 of sheet 1 of window 2
    This piece of code can be used to set the name of the ppt file using the extracted name in the first step
    <pre title="this text can be pasted into the Script Editor" style="font-family: Monaco, 'Courier New', Courier, monospace; font-size: 10px; padding: 5px; width: 720px; color: #000000; background-color: #E0E0E0; overflow: auto">set value of text field 1 of sheet 1 of window 2 to "<string>"
    </pre>
    May be there is a better way out there.
    Thanks for red_menace for his Script formatter script
    Message was edited by: dj9027

  • How to batch convert .eps into .ai files?

    Hi everyone
    I have over the years gathered a huge asset library of all kinds of graphic design assets. Now I need to put this into a system and I want to use Bridge since I'm a freelancer and can't afford another system (my library is over 40GB).
    My problem is that lots of the files are in .eps format (bought in bundles etc.) and I can't stick keywords and more on them in Bridge.
    So I've been looking all over the internet for the last two hours trying to find a way to batch convert 100's (if not 1000's) of .eps files into .ai format (preferably the CS4 version - I got Creative Cloud, but I also work in CS4 with some clients still).
    I have not found an answer I can use yet Some talk about a script and show lines of code, but I don't know how to create/make/save/install a script from pure text so it does not help me.
    Preferably it would be possible for me to make a folder called "eps" and a folder called "ai" and then just put every file into the "eps" folder and then I can sort them afterwards.
    Does anyone know a solution to my problem?
    In advance thanks for all help and suggestions
    - Kenneth

    Try
    GraphicsMagick.

  • Can I batch convert images in a folder hierarchy?

    I can't seem to be able to create an Action or Droplet in Photoshop CS5 that will batch convert images in situ in a hierarchy of folders. In the Photoshop Actions you have to specify an explicit destination, and there's no "save back to the same place" option that I can find.
    I used to be able to do this with ImageReady CS2, but Tiger is going to kill that. Help!

    If you want to give it a try, paste the following text into a new file in ExtendScript Toolkit (part of Photoshop’s installation, Applications/Utilities/Adobe Utilities/ExtendScript Toolkit CS4 or /Applications/Utilities/Adobe Utilities-CS5/ExtendScript Toolkit CS5) and save it as a jsx-file into Photoshop’s Presets/Scripts-folder.
    After restarting Photoshop the Script should be available under File > Scripts and can be assigned a Keyboard Shortcut directly, recorded into an Action, (in CS4 and CS5) be used in a Configurator-Panel or started from ExtendScript Toolkit directly.
    // 2011, use it at your own risk;
    #target photoshop
    if (app.documents.length > 0) {
    // get document-path and -name; thanks to xbytor;
         var myDocument = app.activeDocument;
         var myDocName = myDocument.name.match(/(.*)\.[^\.]+$/)[1];
         var myPath = myDocument.path;
    // save for web options;
         var webOptions = new ExportOptionsSaveForWeb();
         webOptions.format = SaveDocumentType.COMPUSERVEGIF;
         webOptions.optimized = true;
         webOptions.colorReduction = ColorReductionType.ADAPTIVE;
         webOptions.dither = Dither.NONE;
         webOptions.quality = 100;
         webOptions.includeProfile = true;
         webOptions.matteColor = new RGBColor();
         webOptions.matteColor.red = 255;
         webOptions.matteColor.green = 255;
         webOptions.matteColor.blue = 255;
    // export;
         myDocument.exportDocument(new File(myPath+"/"+myDocName+".gif"), ExportType.SAVEFORWEB, webOptions);
    Edit:
    The Script could be recorded into an Action.
    It would also be possible to create a Script that offers a dialog for File- or Folder-selection and subsequently operates on all selected/contained files of specified formats, but that would be a different approach from the Droplet.

Maybe you are looking for