Photoshop: Script to convert jpeg to 16 bit on open - photoshop

Using Photoshop, I want to automatically convert all opened JPEGs to 16 bit. I currently do this manually before making any edits to them, and I figure I should be able to automate this step so it happens automatically.
I've learnt that I can run scripts on events using Scripts Event Manager, so I know how to run a script on document open.
But unfortunately I don't know how to write the Photoshop script itself.
Can anyone assist with how I'd write a script that detects whether the current document is RGB/8bit, and if it is, converts it to RGB/16bit, automatically on document open?
Alternatively, if there's any easier way to do this using Actions or something, that'd be good to know.

After deciding to not be lazy and look into it myself... it turns out it is not difficult.
This script will convert the active document to 16bit if it ends in *.jpg or *.jpeg, is an RGB document, and is 8 bit.
Changing these if conditions is easy as you can see below.
Save it as a .js or .jsx file.
Then to run this script automatically on file open, use File → Scripts → Script Events Manager and choose Open Document as the Photoshop Event, then select or browse for your script.
if(
/jp.?g$/i.test(activeDocument.name)
&& activeDocument.mode == DocumentMode.RGB
&& activeDocument.bitsPerChannel == BitsPerChannelType.EIGHT
) {
activeDocument.bitsPerChannel = BitsPerChannelType.SIXTEEN;
}

Related

Blue Prism - Save and Read Pdf

I am trying to save a pdf which opens via Web link and after saving want to read all texts present in the PDF file.
I have tried to save it by sending "send keys" (CTRL+SHIFT+S) as used in BP but was not able to save it.
Also, for reading the data present in PDF(any other pdf) tried with sending key strokes CTRL+A and CTRL+C but was not successful.
Theoretically, (if you haven't done this already) you could create an object + model that attaches to the open (running).pdf instance, then with the spied element of save button/option in your .pdf, proceed from there with further elements/clicks to save it wherever you want. This should be a few clicks using Navigate stages. Same principle if you are using sendkeys; you still need to use the root element on the model that attaches/launches the .pdf. If you haven't done this, the sendkeys are just never going to work. As to capturing the contents, I am not aware of any downloadable VBOs that will do this, I know there are some from MS Word to capture stuff in tables, etc... into a Collection stage, but not for .pdf. You can try the sendkeys again once you are sure you are using the root element of the correct model, or you might have a go at creating your own solution using a code stage.

Coded UI Test - How to Pick multiple files from a location

I have some set of doc files(nearly 300+) which needs to be uploaded in a site. With Visual studio 2010 test automation, coded UI test, I have recorded the steps for a single file and when i run my code it worked.
Now, I want this to happen in loop, after uploading the 1st file, when the code runs again and when it hits the upload button it should pick the second file from my file location. How to code this ?
Any help would be appreciated.
Record and play back will work for one file that you recorded. You need to do some code changes by taking the recorded code and parameterize the files to the line of code.
First get the files from director
Use (Collection / Array) = Directory.GetFiles(#"FilePath"); //in C#
With this collection/array list you can pass arguments to your ui map code that you copied and repeat until all files get upload.

VBA: set txt to be printed in Portrait mode

this time I'm fighting against a .txt file which doesn't want to be (programmatically) set to be printed in Portrait-mode instead of Landscape-mode (which is the default apparently).
Thing is I know how to do that with application like Word or Excel, but sadly enough I'm working on a device that has no Office at all.
I'm not providing any code at all since my problem is pretty straightforward, and I think I need a simple command in order to solve it. What I basically (programmatically) do in my subroutine is:
Open the file as #1 (I know this appears so '80, but I don't want to modify an up-and-running system, potentially having errors show up)
Write text to the file
Close #1
Save the file
Call text editor shell to show the file to the user
How can I then automatically set the print format to Portrait?
P.s.= I do not have the possibility to insert a userform or an object to print the txt file in "special ways", the user has to print the file from txt editor itself (wordpad just in case)
First to state the obvious: there are no print settings stored in text files (or indeed anything else except for the text). Print settings would be controlled within whatever you are using to print - in this case Notepad or Wordpad.
There are only very limited command line switches for Notepad and Wordpad, which unfortunately don't include page setup. In theory you may be able to automate setting portrait using SendKeys (see here and here) but if it is possible at all it's likely to be difficult and unreliable (focus and timing are two issues).
I can't see a good way round this within the parameters of your question. Adding an object within your application would probably have been the best solution. You might try looking for an alternative text editor you could install that is easier to automate. The only other alternative might be to set defaults within the printer drivers and hope that those stick when the user opens Notepad.

Indesign scripting - Save Copy

I'm using a Objective-C Scripting Bridge to communicate with InDesign CS3/CS4. Unfortunately I'm stuck on Save command which appears to be existing only as a part of the standard suite and not defined again in InDesign. Because of that it looks like I can Save, Save as but not Save Copy a document. Does anyone have any idea how to proceed?
Just to shortly explain the difference between Save and Save Copy - using Save Copy the current doc doesn't change which is opposite to Save or Save as.
the only other alternative other than that which philip-regan suggests. Would be to use GUI scripting but I'm still not sure what the point would be. If you wanted to save time of not closing and reopening you could save the doc make a duplicate via the finder and continue onward in indesgn with out the close and re-open bit
I always thought the distinction between Save As and Save Copy as being more semantic than anything because all that command is really doing is performing a Save As but appending the file name with " copy" (e.g., "MyLayout.indd" becomes "MyLayout copy.indd"). Just use Save as a Save Copy alternative by giving an alternate name for the document when you save it.
Edit per OP's comments: You're right that Save Copy isn't defined in the dictionary. The only way I see around this is to mimic the command's behavior by saving to a location with a new name, closing the current-yet-renamed document, and reopening the original. Not ideal, I know, but I don't see another way around it, unless Save Copy is defined in the Javascript API, which I doubt.
Well,
since Save Copy is not defined in the scripting dictionary, the only way how to proceed is to save current document a create a copy via Finder.
If you search the header file for InDesign, these are the methods that pop up:
- (InDesignDocument *) saveTo:(id)to stationery:(BOOL)stationery versionComments:(NSString *)versionComments forceSave:(BOOL)forceSave; // Save the document
- (void) saveACopyTo:(id)to stationery:(BOOL)stationery; // Saves a copy of the document.

Extract text from a PowerPoint (.ppt or .pptx) file?

I'm currently using a combination of OpenOffice macros and a pdf2text program to extract text and would like to find an easier, more efficient way getting the text out of a PowerPoint file.
I've tried using the Apache POI library and have not had much luck, encountered numerous exceptions within the library when trying to process the files I'm looking at and don't particularly want to sift through the source code of the library.
Is there an easy way to do this without using the aforementioned library?
If you have MS Office and you save the PPT in the RTF (Rich Text Format), it contains just the text from the presentation. You could then open the file in any editor that understands RTF files and save it as a text (TXT) file.
I expect this to work from Open Office too.
Since you talk of API, this may not be the way to go for you but maybe it will give you newer ideas on getting there. Say, you use multiple macros to do the conversion in stages...
Edit: I got curious and did a short google search
This is what i found on one of the www.openoffice.org pages
As people in this thread have pointed out, retrieving text from an OO
document isn't hard since it's just zipped xml that can be parsed with a
perl script. The problem is getting Microsoft Powerpoint documents into
a zipped XML format in the first place.
I've found that File -> Wizards -> Document Convertor does exactly that.
Just tell it you want to convert Powerpoint documents, not templates,
point it to your source directory and where you want it to spit out the
result and you're away.
I then find unzip -p $file.sxi content.xml | perl -p -e
"s/<[^>]>/\n/g;s/ +//;s/\n\n/\n/g;" -w
works rather well for extracting the text.
Sorry, i don't have Open Office handy to try any of that out.
pptx files are relatively easy to deal with, because they are just zipped xml - you can just unzip them and then strip all the xml tags from the content of the files in the 'ppt/slides' subdirectory of the unzipped stuff, yielding most of the pertinent text.
ppt files are a whole other ballgame, and the process is rendered even more painful because the canonical tool, catppt from the catdoc package, is susceptible to a buffer overflow that makes it nearly useless (it segfaults on a large percentage of ppt files).
LibreOffice-5 File - Export - HTML includes both slide contents and presenter notes.
Then, open the .html file in Firefox or other browser, and File - Save Page As - Text File (or utility such as pandoc -o file.txt file.html).