Copy link to clipboard
Copied
We create 30 catalogs that contain thousands of images in each one. Occasionally, between the image creation process and placing those images in the catalogs, a grayscale image might sneak through. Our commercial printer now says that we need to convert those to CMYK. I can't image clicking on thousands of images to see if any of them are grayscale...is there an easier way to find them?
Thanks,
Lloyd
You can do it with preflight, but your printer really shouldn't care. Grayscales have the advantage of perfect neutrality—if the CMYK profile used to make a conversion isn't perfect for the press, or if the press gray balance changes during the run you will get a color cast. On the other hand, if handled correctly, CMYK has better dynamic range—richer blacks. The choice should be yours.
This preflight profile finds the grayscale and skips the CMYK version
Copy link to clipboard
Copied
You can do it with preflight, but your printer really shouldn't care. Grayscales have the advantage of perfect neutrality—if the CMYK profile used to make a conversion isn't perfect for the press, or if the press gray balance changes during the run you will get a color cast. On the other hand, if handled correctly, CMYK has better dynamic range—richer blacks. The choice should be yours.
This preflight profile finds the grayscale and skips the CMYK version
Copy link to clipboard
Copied
Hi Lloyd,
Package your book and click the Links and Images group in the Package dialog box. The Type column lists the color space. Create a report and you'll see how many images don't use your CMYK profile.
You can also use bridge to see the links folder with your graphic files. View the folder as a list and sort the Color Profile column. You should see all of the grayscale images because the color profile is not your regular CMYK profile.
Copy link to clipboard
Copied
The advantage of a preflight profile is it will generate a list where you can click on the items, which selects and takes you to the image in the layout. From there you can right-click or option click to edit the original and make the conversion.
Copy link to clipboard
Copied
How do I click on all of these replies as "Correct." Each of you has given me the answer!
I appreciate it...thank you!
Lloyd
Copy link to clipboard
Copied
Choose helpful. There can only be one correct answer.
Copy link to clipboard
Copied
All excellent options, and they even can be combined!
Pick the one for a workflow you are comfortable with: selecting one by one and fixing them through Edit Original, or create a list so you can edit them in Photoshop en masse and then update the links.
If all images must be converted then you can skip this and export to a greyscale profile PDF.
Copy link to clipboard
Copied
What about an apple script:
Its a quickndirty modification of a quickndirty script, so dont exspect perfection.
Look at line 40: set fname to space of …
Originally I was looking for a name in my linklist. I change that.
set ProgrammName to "Æ’{s} FiLL"
set ProgrammNameLang to "Æ’{s} FiLL (Find In Link-List)"
set myLinks to {}
set errormsg to ""
set Proz to "100%"
tell application "Adobe InDesign CC 2017"
activate
if (count documents) = 0 then set errormsg to "Kein Dokument geöffnet."
try
tell active document
set AlleBilder to every link
end tell
if (count AlleBilder) = 0 then set errormsg to "Keine Verknüpfungen vorhanden."
end try
if errormsg is not "" then
display dialog "" & errormsg buttons {"Mist!"} default button 1 with icon 0
else
tell active document
set DokName to name
set FindWhat to ""
repeat until FindWhat ≠""
set DialogResult to (display dialog "Dokument " & DokName & linefeed & " durchsuchen nach: " with title ProgrammNameLang with icon 1 buttons {"Los", "Beenden"} default button "Los" default answer "12345")
if button returned of DialogResult = "Beenden" then
return
end if
set FindWhat to text returned of DialogResult
end repeat
my myProgressBarCreate(ProgrammNameLang, "Untersuche Verknüpfung…", length of AlleBilder)
repeat with k from 1 to (length of AlleBilder)
set myItem2 to parent of item k of AlleBilder
if class of myItem2 as string = "image" then
set fname to space of myItem2 as string
else
set fname to ""
end if
set myItem to item k of AlleBilder
if link type of myItem = "EXCLUDE SOMETHING" then
beep (1)
else
--set fname to file path of myItem as string
if FindWhat is in fname then copy myItem to the end of myLinks
-- my ZoomSelection(MyItem)
set whatsleft to (((length of AlleBilder) + 1) - k)
my myProgressBarStatustext("(" & whatsleft & ") – " & fname)
set tempzent to round ((((100 / (length of AlleBilder))) * k)) as real
my myProgressBarIncrement(tempzent & "%")
end if
end repeat
my myProgressBarClose()
-- display dialog "End with " & length of AlleBilder
end tell
-- end repeat
end if
if (length of myLinks) = 0 then
display dialog "Nix gefunden" with title ProgrammNameLang with icon 0 buttons {"Hmpf."} default button "Hmpf." giving up after 3
return
end if
if length of myLinks = 1 then
-- set LinkPage to name of parent page of parent of parent of link LinkNum
set SmallResult to button returned of (display dialog "Gefunden:" & linefeed & name of item 1 of myLinks & linefeed & linefeed & "Seite " & name of parent page of parent of parent of item 1 of myLinks & " in " & linefeed & linefeed & DokName with title ProgrammNameLang with icon 1 buttons {"Anzeigen", "Beenden"} default button "Anzeigen")
if SmallResult = "Anzeigen" then
try
my GotoLink(item 1 of myLinks)
end try
end if
else
set showResults to {}
repeat with k from 1 to (length of myLinks)
set TempName to name of item k of myLinks
if length of TempName > 25 then set TempName to (((characters 1 thru 25 of TempName) as string) & "…")
-- copy "" & k & ". " & "Seite " & name of parent page of parent of parent of item k of myLinks & " | \"" & TempName & "\" | id" & id of item k of myLinks to the end of showResults
copy "" & k & ". " & " | \"" & TempName & "\" | id" & id of item k of myLinks to the end of showResults
end repeat
set BigResult to true
set last_item to item 1 of showResults
repeat until BigResult = false
set BigResult to choose from list showResults with title ProgrammNameLang with prompt "Vorkommnisse gefunden: " & (length of myLinks) OK button name "Anzeigen" cancel button name "Beenden" default items {last_item}
if BigResult ≠false then set last_item to item 1 of BigResult
repeat with J from 1 to length of showResults
if "" & BigResult = "" & (item J of showResults) then
my GotoLink(item J of myLinks)
end if
end repeat
end repeat
end if
end tell
tell application "Finder"
try
-- my myProgressBarClose()
on error the error_message number the error_number
display dialog "Error: " & the error_number & ". " & the error_message buttons {"OK"} default button 1
end try
end tell
on GotoLink(VAR)
tell application "Adobe InDesign CC 2017"
set selection to nothing
select parent of VAR
set GotoLinkAction to menu action id 132629
--invoke GotoLinkAction
end tell
end GotoLink
on ZoomSelection(vari)
tell application "Adobe InDesign CC 2017"
set selection to nothing
select parent of vari
set ZoomSelectionAction to menu action id 118790
invoke ZoomSelectionAction
end tell
end ZoomSelection
on myProgressBarCreate(pbBarName, firstAction, pbMax)
set pbJS to "#targetengine 'pbar'
var ProgressBar = function(/*str*/title)
{
var w = new Window('palette', ' '+title, {x:0, y:0, width:360, height:60}),
pb = w.add('progressbar', {x:10, y:12, width:300, height:12}, 0, 100),
pt = w.add('statictext', {x:320, y:10, width:40, height:20}, ''),
st = w.add('statictext', {x:10, y:36, width:360, height:20}, '');
st.justify = 'left'; w.center();
this.reset = function(msg,maxValue)
{
st.text = msg;
pb.value = 0;
pb.maxvalue = maxValue||0;
pb.visible = !!maxValue;
w.show();
};
this.statustext = function(msg)
{
st.text = msg;
w.show();
};
this.prozent = function(msg)
{
pt.text = msg;
w.show();
};
this.hit = function() {++pb.value;};
this.hide = function() {w.hide();};
this.close = function() {w.close();};
};
pBar = new ProgressBar('" & pbBarName & "');
pBar.reset('" & firstAction & "', " & pbMax & ");"
tell application "Adobe InDesign CC 2017"
activate
do script pbJS language javascript
end tell
end myProgressBarCreate
on myProgressBarStatustext(newText)
set pbJS to "#targetengine 'pbar'
pBar.statustext('" & newText & "');"
tell application "Adobe InDesign CC 2017" to do script pbJS language javascript
end myProgressBarStatustext
on myProgressBarIncrement(prozent)
set pbJS to "#targetengine 'pbar'
pBar.hit()"
tell application "Adobe InDesign CC 2017" to do script pbJS language javascript
set pbJS to "#targetengine 'pbar'
pBar.prozent('" & prozent & "');"
tell application "Adobe InDesign CC 2017" to do script pbJS language javascript
end myProgressBarIncrement
on myProgressBarReset(newAction, newMax)
set pbJS to "#targetengine 'pbar'
pBar.reset('" & newAction & "', " & newMax & ");"
tell application "Adobe InDesign CC 2017" to do script pbJS language javascript
end myProgressBarReset
on myProgressBarClose()
set pbJS to "#targetengine 'pbar'
pBar.close();"
tell application "Adobe InDesign CC 2017" to do script pbJS language javascript
end myProgressBarClose
on replaceString(theText, oldString, newString)
local ASTID, theText, oldString, newString, lst
set ASTID to AppleScript's text item delimiters
try
considering case
set AppleScript's text item delimiters to oldString
set lst to every text item of theText
set AppleScript's text item delimiters to newString
set theText to lst as string
end considering
set AppleScript's text item delimiters to ASTID
return theText
on error eMsg number eNum
set AppleScript's text item delimiters to ASTID
error "Can't replaceString: " & eMsg number eNum
end try
end replaceString