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 repeatIf 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? 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 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. -
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!
MrudulaHi 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
BRNo 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. //GHA 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
- KennethTry
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
-
Why does that same photo keep appearing in the edited folder????
Why is that same photo always mysteriously appear in the edited folder whenever a photo is added to camera roll????? If I happen to take a picture on my iPad, then if I go to iPhoto, there is this one stubborn picture that mysteriously appears in th
-
Attaching Security policy to Database Adapter
Hi, Can anyone please tell me how can i attach security policy to a database adapter in soa 11g?
-
Downloaded content for instant movie on harddrive but not in Elements 10
Just setting up my Elements 10 and downloaded full content from Adobe's site the 3 GB file in on the desktop and it's not showing in Elements. I'm sure I may have missed a step. Please help.
-
How to add PCI 7340 and UMI in my labview program from functions palette or how?
Am using PCI 7340 and UMI7764 for motion control of a stepper motor. How to add the functions for PCI and UMI in my labVIEW program and how do I use these further? I need to control the direction of stepper motor rotation based on the pressure applie
-
Consuming Webservices usin PLSQL
Hi, I tried lot's of things to call webservices from plsql but i coulnd't achieve. Can anyone please help me? DECLARE req pk_soap_main.t_request; resp pk_soap_main.t_response; vn_ws_result PLS_INTEGER;