Indesign CS5.5 Relink Script needs help
Hi, I'm trying to relink images in an InDesign CS5.5 file to a different server using a script. This is what I have so far, but when I run the script I get errors and can't relink because "Either the file does not exist, you do not have permission, or the file may be in use by another application". Does anyone know how to make this script work? I'm fairly new to scripting.
Here is the script I have:
tell application "Adobe InDesign CS5.5"
tell document 1
set linkList to links
set errInfo to "" -- We'll display error if we can't relink an item
repeat with x in linkList
if (x's status) is not normal then -- I usually check for any link that has an error
-- This should only return an AppleScript path with ":" separators
set linkPath to (x's file path) as string
if "Volumes/Calendars_2013 FPO" is in linkPath then
set AppleScript's text item delimiters to "Volumes/Calendars_2013 FPO"
set linkPath to (linkPath's text items) -- Create a list of text items
set AppleScript's text item delimiters to "Volumes/Calendars_2013"
set linkPath to (linkPath as string) -- Concatenate with new path
set AppleScript's text item delimiters to "" -- Reset TIDs
try
-- Need to make our string (path) into an alias path
relink x to alias linkPath
try
update x -- This can be helpful
end try
on error err
-- We'll store link name if error occurs
set errInfo to (errInfo & return & x's name)
end try
end if
end if
end repeat
-- If an error occurs while trying to relink, we'll display it
if (count errInfo) > 0 then display dialog ("Can't relink:" & errInfo)
end tell
end tell
--Hector
I just tried adding collens to the end of the folder path. For some reason the script skipped the relink line. Below is the code with your update. I'm thinking its not finding the images because the script needs to make a list of all the images and choose the one that matches the missing image.
tell application "Adobe InDesign CS5.5"
tell document 1
set linkList to links
set errInfo to "" -- We'll display error if we can't relink an item
repeat with x in linkList
if (x's status) is not normal then -- I usually check for any link that has an error
-- This should only return an AppleScript path with ":" separators
set linkPath to (x's file path) as string
if "Calendars_2013 FPO:" is in linkPath then
set AppleScript's text item delimiters to "Calendars_2013 FPO:"
set linkPath to (linkPath's text items) -- Create a list of text items
set AppleScript's text item delimiters to "Calendars_2013:"
set linkPath to (linkPath as string) -- Concatenate with new path
set AppleScript's text item delimiters to "" -- Reset TIDs
try
-- Need to make our string (path) into an alias path
relink x to alias linkPath
try
update x -- This can be helpful
end try
on error err
-- We'll store link name if error occurs
set errInfo to (errInfo & return & x's name)
end try
end if
end if
end repeat
-- If an error occurs while trying to relink, we'll display it
if (count errInfo) > 0 then display dialog ("Can't relink:" & errInfo)
end tell
end tell
--Thanks for you help
Similar Messages
-
[AS] Beast of a script needs help converting from Quark 8 to InDesign CS5
First off, THANK YOU for even reading this post. Here's the dilema. I work in a publishing company that used an AppleScript from Quark 8 to automate our pagination from set text we pull from our sales reps worksheets. About 8 months ago we switched fully to InDesign CS5, but have had to hold onto Quark 8 to be able to keep running our pagination. I'd like to see if the geniuses (yes, I've been trolling these forums looking to solve this myself and seen some great problems fixed) on these forums can help me figure out the proper conversion I would need to be able to leave Quark 8 in the rearview.
Here's our current code... (I warned you it was a beast)
set Ad_Props to {¬
{Ad_Label:"SPREAD – ", Ad_Width:2.495, Ad_Height:1.62, Ad_Text_Angle:0}, ¬
{Ad_Label:"FULL – ", Ad_Width:1.225, Ad_Height:1.62, Ad_Text_Angle:0}, ¬
{Ad_Label:"SPREAD – ", Ad_Width:2.495, Ad_Height:1.62, Ad_Text_Angle:0}, ¬
{Ad_Label:"JUNIOR – ", Ad_Width:0.90625, Ad_Height:1.62, Ad_Text_Angle:0}, ¬
{Ad_Label:"1/2H – ", Ad_Width:1.225, Ad_Height:0.785, Ad_Text_Angle:0}, ¬
{Ad_Label:"1/2V – ", Ad_Width:0.5875, Ad_Height:1.62, Ad_Text_Angle:90}, ¬
{Ad_Label:"1/3V – ", Ad_Width:0.5875, Ad_Height:1.2025, Ad_Text_Angle:90}, ¬
{Ad_Label:"1/4 – ", Ad_Width:0.5875, Ad_Height:0.785, Ad_Text_Angle:0}, ¬
{Ad_Label:"1/4 Strip – ", Ad_Width:0.26875, Ad_Height:1.62, Ad_Text_Angle:90}, ¬
{Ad_Label:"1/8H – ", Ad_Width:0.5875, Ad_Height:0.3675, Ad_Text_Angle:0}, ¬
{Ad_Label:"1/8V – ", Ad_Width:0.26875, Ad_Height:0.785, Ad_Text_Angle:90}, ¬
{Ad_Label:"Junior (GOLF) – ", Ad_Width:0.8, Ad_Height:1.62, Ad_Text_Angle:0}, ¬
{Ad_Label:"1/3V (GOLF) – ", Ad_Width:0.375, Ad_Height:1.62, Ad_Text_Angle:90}, ¬
{Ad_Label:"1/3sq. (GOLF) – ", Ad_Width:0.8, Ad_Height:0.785, Ad_Text_Angle:0}, ¬
{Ad_Label:"1/6V (GOLF) – ", Ad_Width:0.375, Ad_Height:0.785, Ad_Text_Angle:90}, ¬
{Ad_Label:"Directory Listing Only – ", Ad_Width:0.3, Ad_Height:0.3, Ad_Text_Angle:0}, ¬
{Ad_Label:"INSERT (# in notes) – ", Ad_Width:0.3, Ad_Height:0.3, Ad_Text_Angle:0}, ¬
{Ad_Label:"Other (See Notes) – ", Ad_Width:0.3, Ad_Height:0.3, Ad_Text_Angle:0}, ¬
{Ad_Label:"------------ – ", Ad_Width:0.3, Ad_Height:0.3, Ad_Text_Angle:0}}
set Position_Width to number
set Position_Width to 11.375
set Position_Height to number
set Position_Height to 1.875
set Jump_Height to number
set Jump_Height to 0
set Variable_Count to number
set Variable_Count to 0
set Variable_Height to number
set Variable_Height to (1.875 + (1.62 * Variable_Count))
set Last_Ad to number
set Last_Ad to 0
tell application "QuarkXPress"
activate
try
display dialog "WARNING: This version of 'Dummy Square Maker' runs much slower than the last version, a confirmation will tell you when you are finished. Please be patient." & return & return & "Make sure to have the text box selected" buttons {"Cancel", "Accept"} default button 2 with icon caution
set ThisBox to object reference of current box
tell story 1 of ThisBox
set (every paragraph where it is return) to ""
set style sheet of every text to null
set style sheet of every text to "DUMMY TEXTS"
repeat with i from 1 to (count of paragraphs)
try
tell paragraph i
set ThePage to my get_CurrentPage()
try
if it contains " – " then
set style sheet to "AD SIZE"
set Ad_Size to contents
set {This_Width, This_Height, this_angle} to {"", "", ""}
repeat with This_Ad in Ad_Props
if Ad_Size contains (Ad_Label of This_Ad) then
set This_Width to Ad_Width of This_Ad
set This_Height to Ad_Height of This_Ad
set this_angle to Ad_Text_Angle of This_Ad
exit repeat
end if
end repeat
set Ad_Box to my Make_Box(ThePage, {1.875, 10.875, This_Height + 1.875, This_Width + 10.875}, this_angle)
duplicate contents to (end of Ad_Box)
else if it contains "—" then
set style sheet to "AD REP/PLACEMENT"
duplicate contents to (end of Ad_Box)
else if it starts with "©" then
set style sheet to "AD REP/PLACEMENT"
delete (character 1)
duplicate contents to end of Ad_Box
if Position_Width ≤ 19.75 then
set Jump_Height to Jump_Height + This_Height
(*_________________This is where Ad Boxes Stack_________________*)
if (Jump_Height ≤ 1.62) then
set origin of bounds of Ad_Box to {Position_Height, Position_Width}
set Position_Height to Position_Height + This_Height
(*_________________This is where Ad Boxes more right_________________*)
else
set Position_Height to Variable_Height
(*set Position_Width to Position_Width + This_Width + 0.05*)
set Position_Width to Position_Width + Last_Ad + 0.05
set origin of bounds of Ad_Box to {Position_Height, Position_Width}
set Jump_Height to This_Height
set Position_Height to Variable_Height + This_Height
end if
set Last_Ad to This_Width
(*_________________This is where New Row appears_________________*)
else
set Position_Width to 11.375
set Variable_Count to Variable_Count + 1
set Variable_Height to (1.875 + (1.62 * Variable_Count))
set Position_Height to Variable_Height
set origin of bounds of Ad_Box to {Position_Height, Position_Width}
set Position_Height to Position_Height + This_Height
set Jump_Height to This_Height
set Last_Ad to This_Width
end if
else
duplicate contents to (end of Ad_Box)
end if
end try
end tell
on error errmsg number errnum
display dialog "There has been an error " & "[" & i & "] (" & errmsg & " [" & errnum & "])" buttons {"Okay"} default button 1 with icon stop
end try
end repeat
delete contents
set style sheet of every text to null
end tell
beep 2
display dialog "Automation Finished" & return & return & "IMPORTANT NOTE: Color your Ad Squares according to Sales Rep, and select them all and 'BRING TO FRONT [F5]', this is VITAL." buttons {"Okay"} default button 1 with icon stop
on error errmsg number errnum
beep 3
if errnum ≠ -128 then
beep
display dialog errmsg & " [" & errnum & "]" buttons {"OK"} default button 1 with icon stop
end if
end try
end tell
on Make_Box(ThePage, TheBounds, this_angle)
local ThePage, TheBounds, this_angle
tell application "QuarkXPress"
tell page ThePage of document 1
set Ad_Box to make new text box at end with properties {bounds:TheBounds, vertical justification:centered, color:"Rep_Other", shade:100, opacity:10, text angle:this_angle, frame:{style:solid line, color:"Black", shade:60, width:0.1}}
end tell
end tell
(*end tell*)
return Ad_Box
end Make_Box
on get_CurrentPage()
tell application "QuarkXPress"
tell document 1
return page number of current page
end tell
end tell
end get_CurrentPageHi,
I think with this, you can already make good progress in your work.
Good luck!
global mydocument
tell application "Adobe InDesign CS5.5"
set mydocument to active document
tell mydocument
set myParaStyle to paragraph style "DUMMY TEXTS"
tell page 1
set TheBounds to {0, 0, 20, 50}
set Ad_Box to make text frame
tell Ad_Box
set geometric bounds to TheBounds
set vertical justification of text frame preferences to center align
set contents to "This is the contents"
end tell
set myStory to parent story of Ad_Box
set applied paragraph style of every paragraph of myStory to myParaStyle
end tell
end tell
end tell
Your two handlers then look like this:
on Make_Box(ThePage, TheBounds, this_angle)
local ThePage, TheBounds, this_angle
tell application "Adobe InDesign CS5.5"
tell page ThePage of mydocument
set Ad_Box to make text frame
tell Ad_Box
set geometric bounds to TheBounds
set vertical justification of text frame preferences to center align
end tell
end tell
end tell
return Ad_Box
end Make_Box
on get_CurrentPage(CurrentTextFrame)
tell application "Adobe InDesign CS5.5"
tell mydocument
return name of parent page of parent page of CurrentTextFrame
end tell
end tell
end get_CurrentPage
Shorter version:
on get_CurrentPage(CurrentTextFrame)
tell mydocument of application "Adobe InDesign CS5.5"
return name of parent page of parent page of CurrentTextFrame
end tell
end get_CurrentPage
Ce message a été modifié par: OlivierBerquin -
InDesign CS5 crashes on startup - HELP please
Hi everyone!
My System: Windows Enterprise Server 2003 SP2:
InDesign CS5 (7.0) crashes on Startup:
"Microsoft Visual C++ Runtime Library
Runtime Error!
Program: C:\Programme\Adobe\Adobe InDesign CS5\InDesign.exe
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application´s support team for more information."
"Ereignistyp: Fehler
Ereignisquelle: Applicatin Error
Ereigniskategorie: (100)
Ereigniskennung: 1000
Fehlgeschlagene Anwendung InDesign.exe, Version 7.0.0.355, fehlgeschlagenes Modul msvcr90.dll, Versio n 9.0.30729.4137, Fehleradresse 0x0005bea4."
Please help!You might find something useful in one of these hits:
http://community.adobe.com/help/search.html?q=This+application+has+requested+the+Runtime+t o+terminate+it+in+an+unusual+way&lr=en_us&hl=en_us&l=indesign_product_adobelr&start=10 -
How to InDesign CS5 - .jsx script export multiple PDF??
ok I have a datamerge process with .jsx script that is exporting to single page pdf files. What I need it for 2 of these pages to be in one (multi-page pdf). how can I accomplish this?
here is the script I have here is my function & teardown:
function mySnippet(){
//<fragment>
var myPageName, myFilePath, myFile;
var myDocument = app.documents.item(0);
var myBaseName = myDocument.name;
for(var myCounter = 0; myCounter < myDocument.pages.length; myCounter++){
myPageName = myDocument.pages.item(myCounter).name;
app.pdfExportPreferences.pageRange = myPageName;
//app.pdfExportPreferences.pageRange = myPageName, "15-16";
switch(myPageName) {
case "1" : myPageName = "Human Card Approval";
docType = "" break;
case "2" : myPageName = "Pet Card Approval";
docType = "" break;
case "3" : myPageName = "Rx FAQ EN";
docType = "FAQ" break;
case "4" : myPageName = "Rx FAQ ES";
docType = "FAQ" break;
case "5" : myPageName = "Labs & Imaging FAQ EN";
docType = "FAQ" break;
case "6" : myPageName = "Labs & Imaging FAQ ES";
docType = "FAQ" break;
case "7" : myPageName = "Equalizer No Cards EN";
docType = "Equalizer" break;
case "8" : myPageName = "Equalizer w_cards EN";
docType = "Equalizer" break;
case "9" : myPageName = "Equalizer Slick Stand EN";
docType = "Equalizer" break;
case "10" : myPageName = "Equalizer No Cards ES";
docType = "Equalizer" break;
case "11" : myPageName = "Equalizer w_cards ES";
docType = "Equalizer" break;
case "12" : myPageName = "Equalizer Slick Stand ES";
docType = "Equalizer" break;
case "13" : myPageName = "Medicare Donut Hole EN";
docType = "Donut Hole" break;
case "14" : myPageName = "Medicare Donut Hole ES";
docType = "Donut Hole" break;
case "15" : myPageName = "Trifold EN Outside";
docType = "TriFold" break;
case "16" : myPageName = "Trifold EN Inside";
docType = "TriFold" break;
case "17" : myPageName = "Pet w Cards EN";
docType = "Pet" break;
case "18" : myPageName = "Pet Slick Stand EN ";
docType = "Pet" break;
case "19" : myPageName = "Pet w Cards ES";
docType = "Pet" break;
case "20" : myPageName = "Pet Slick Stand ES";
docType = "Pet" break;
fileName = group + " " + myPageName + " " + date + ".pdf";
myFilePath = dirPath + docType + "/" + fileName;
myFile = new File(myFilePath);
myDocument.exportFile(ExportFormat.pdfType, myFile, false);
//</fragment>
//</snippet>
//<teardown>
function myTeardown(){
Here is what I need exported as one pdf file:
case "15" : myPageName = "Trifold EN Outside";
docType = "TriFold" break;
case "16" : myPageName = "Trifold EN Inside";
docType = "TriFold" break;That would require scripting. You might inquire in the InDesign Scripting forum for scripts that might work.
-
OMB Script: Need help to spot what's wrong
I have been trying to find out why the outer foreach loop in the following OMB script (log follows) doesn't go to the next iteration. It just exits after getting the lineage for the first target table (i.e., stderr has nothing). Same behavior against different modules. I am too new to Tcl to know what debugging tool is at my disposal. Any help will be appreciated:
set OMBLOG c:/temp/Lineage.tcl.log
# connect to the OWB repository
OMBCONNECT xxx/xxx@xxx:1521:xxx USE REPOSITORY 'OWB_REP_OWN';
# change context to the module
OMBCC 'xxx/xxx/xxx';
set tableList {}
set tableList [OMBLIST TABLES '.*_FINAL']
set i 1
foreach tableName $tableList {
set columnList {}
set columnList [OMBRETRIEVE TABLE '$tableName' GET COLUMNS]
set j 1
foreach columnName $columnList {
OMBLINEAGE DEPENDENCYTYPE 'DATAFLOW' TABLE '$tableName' COLUMN '$columnName';
incr j
incr i
OMBDISCONNECT;
The first few lines on the log are:
OMBLIST TABLES '.*_FINAL'
AE_FINAL CM_FINAL CO_FINAL DA_FINAL DM_FINAL DP_FINAL DS_FINAL DV_FINAL EG_FINAL EX_FINAL IE_FINAL LB_FINAL LS_FINAL MH_FINAL ML_FINAL PC_FINAL PE_FINAL PP_FINAL PR_FINAL QS_FINAL RELREC_FINAL RS_FINAL SC_FINAL SG_FINAL SS_FINAL SUPPAE_FINAL SUPPDS_FINAL SUPPMH_FINAL SUPPPE_FINAL SUPPQUAL_FINAL SU_FINAL VS_FINAL
OMBRETRIEVE TABLE 'AE_FINAL' GET COLUMNS
STUDYID DOMAIN USUBJID AESEQ AEGRPID AEREFID AESPID AETERM AEMODIFY AEDECOD AECAT AESCAT AEOCCUR AEBODSYS AELOC AESEV AESER AEACN AEACNOTH AEREL AERELNST AEPATT AEOUT AESCAN AESCONG AESDISAB AESDTH AESHOSP AESLIFE AESOD AESMIE AECONTRT AETOXGR AESTDTC AEENDTC AESTDY AEENDY AEDUR AEENRF VISITNUM VISIT OCTA_SEQ
OMBLINEAGE DEPENDENCYTYPE 'DATAFLOW' TABLE 'AE_FINAL' COLUMN 'STUDYID'
{{COLUMN /xxx/xxx_C0402_DEV/AE_AE_INTERIM/STUDYID} {MAPPING /xxx/xxx_C0402_DEV/AE_FINAL_MAP} {COLUMN /xxx/xxx_C0402_DEV/AE_FINAL/STUDYID}} {{ATTRIBUTE /xxx/AE_AE_PM/PROT} {MAPPING /xxx/xxx_C0402_DEV/AE_INTERIM_MAP} {COLUMN /xxx/xxx_C0402_DEV/AE_AE_INTERIM/STUDYID}} {{COLUMN /xxx/xxx_C0402_DEV/AE_SOURCE/PROT} {MAPPING /xxx/xxx_C0402_DEV/AE_INTERIM_MAP} {COLUMN /xxx/xxx_C0402_DEV/AE_AE_INTERIM/STUDYID}} {{ATTRIBUTE /xxx/AE_AE_PM/PROT} {MAPPING /xxx/xxx_C0402_DEV/AE_INTERIM_MAP} {COLUMN /xxx/xxx_C0402_DEV/AE_AE_INTERIM/STUDYID}} {{COLUMN /xxx/xxx_C0402_DEV/AE_SOURCE/PROT} {MAPPING /xxx/xxx_C0402_DEV/AE_INTERIM_MAP} {COLUMN /xxx/xxx_C0402_DEV/AE_AE_INTERIM/STUDYID}} {{ATTRIBUTE /xxx/AE_AE_PM/PROT} {MAPPING /xxx/xxx_C0402_DEV/AE_INTERIM_MAP} {COLUMN /xxx/xxx_C0402_DEV/AE_AE_INTERIM/STUDYID}} {{COLUMN /xxx/xxx_C0402_DEV/AE_SOURCE/PROT} {MAPPING /xxx/xxx_C0402_DEV/AE_INTERIM_MAP} {COLUMN /xxx/xxx_C0402_DEV/AE_AE_INTERIM/STUDYID}} {{COLUMN /xxx/xxx_DEV/AE_SOURCE/PROT} {MAPPING /xxx/xxx_DEV/AE_INTERIM_MAP} {ATTRIBUTE /xxx/AE_AE_PM/PROT}}I haven't looked in too much detail, but I think you are missing some brackets. You need to close brackets before you increment the loop. Try:
foreach columnName $columnList {
OMBLINEAGE DEPENDENCYTYPE 'DATAFLOW' TABLE '$tableName' COLUMN '$columnName';}
incr j
You will need to do the same thing at the other points in your script. -
Problems installing CS5.5 ~ Really need help.. Thank you.
Operating system = WinXP
Trying to install purchased CS5.5 Web Premium on completely clean machine recently reformatted.
Installing from files downloaded from Adobe.
I did a successful install of this last summer, but this time it's been a real pain.
I am completely lost on what is wrong and I have customers waiting for web page fixes.
1. I bought the CS5.5 Web Premium upgrade last summer. I had 4.0 on my system at the time. No problem installing 5.5.
2. Yesterday I wiped my hard drive clean and now need to reinstall CS5.5. I do not have CS4.0 on my machine now.
3. I downloaded my CS5.5 files from Adobe today.
4. The installation instructions said:
"Navigate to the directory containing the downloaded files.... Double-click the Set-up.exe file to begin the installation. In some cases, the Set-up.exe file may open
automatically."
Today, that magic did NOT happen. Nor had it happened last summer.
So I tried to install the files anyhow.
5. On my previous install I opened files individually when the magic didn't happen and it still went okay. But not today.
Today I started with WebPremium_DesignPremium_CS5_5_Content_ALL.exe file. Can someone tell me if opening that file first was a mistake? And if so, what file should I have opened first?
It opened but I can see nothing in my program files. So I tried the three other files with no success... Here are the error messages:
WebPremium_DesignPremium_CS5_5_Content_ALL.exe - - - Which I already opened. No files can be found on my computer, but they must be there.
WebPremium_CS5_5_LS1.exe - - - I get an error message that says it is not a valid Win32 application.
Illustrator_15_1_Content_LS1.exe - - - This acts like it will open and download fine. I did not do it pending why the other files aren't working.
WebPremium_CS5_5_LS1.7z - - - I try to open this and get an error message, "Windows cannot open the file..." and it wants to find it on the Internet.
This worked fine last summer. Can someone help me? Do I need to reformat my whole computer again?
You don't know how appreciated the answer would be. I would be most grateful. Thanks!!!
BLeeWebPremium_DesignPremium_CS5_5_Content_ALL.exe - - - Which I already opened. No files can be found on my computer, but they must be there.
Probably not. That really is just the additional content and without a qualifying product install it won't do anything most likely since the directories it expects do not yet exist.
WebPremium_CS5_5_LS1.exe - - - I get an error message that says it is not a valid Win32 application.
Could be damaged, could be blocked. Anything from virus scanners to flakey drives. Could also be missing a critical system library. No way to tell from afar.
WebPremium_CS5_5_LS1.7z - - - I try to open this and get an error message, "Windows cannot open the file..." and it wants to find it on the Internet.
7zip, WinZip, WinRar
Mylenium -
Simple hide a layer script need help
Hi,
This will be an easy one for someone. I’m new to scripting so please be patient. All I need to do is have a script that hide a layer named "L2_NonTranslatedParts". I have tried to piece together some code but I have failed. Can anyone help? I'm also not sure why we are defineing "watermark" as a var. It was in the code I cut up.
var myDoc = app.documents.item(0);
var L2_NonTranslatedParts = "Watermark";
try{app.activeDocument.layers.item(L2_NonTranslatedParts).visible = false;}
catch(_){alert("Can't find layer: " + L2_NonTranslatedParts);exit();};Yes, that is a good question. Really
app.activeDocument.layers.item("L2_NonTranslatedParts").visible = false;
should be sufficient. -
Working on slug script, need help!
Okay, this is not my script, one that I found online. The script works by allowing the user to set placeholders within the document and tag each placeholder with specific information such as DATE, TIME, FILENAME, etc.
The current placeholders that are setup for this script are:
{FILE}
{FILEPATH}
{FILENAME}
{FILEEXT}
{DATE}
{TIME}
I would like to add a few more placeholders, which is where I need some help. I would like to add a placeholder for the username or hostname, meaning computer name. {HOSTNAME}
I would also like to add a placeholder for colors used in the document listed in this format: PANTONE 186C, PANTONE 281C, BLACK, CYAN, MAGENTA, YELLOW, or as color swatches.
Also, is it possible to create a placeholder that will produce an interface allowing user input? Say you wanted a placeholder for Designer, and a dialog popped up asking for input.
Thanks for any help!
Here is the script:
var language="en"; // "de" fuer Deutsch
var WR="WR-DateAndTime v0.9\n\n";
var AIversion=version.slice(0,2);
if (language == "de") {
var format_preset = "{FILENAME}{FILEEXT} ({DATE} - {TIME})";
var MSG_unsetmark = WR+"Dieses Objekt ist als aktuelles Datum/Uhrzeit markiert, soll die Markierung aufgehoben werden?";
var MSG_setmark = WR+"Soll dieses Textobjekt als aktuelles Datum/Uhrzeit markiert werden?";
var MSG_askformat = WR+"Soll das Textobjekt als Datum/Uhrzeit formatiert werden? Formate:\n{DATE}, {TIME}, {FILE}, {FILEPATH}, {FILENAME} und {FILEEXT}:"
var MSG_editformat = WR+"Datums-/Uhrzeitformat bearbeiten (Leer = entfernen). Formate:\n{DATE}, {TIME}, {FILE}, {FILEPATH}, {FILENAME} und {FILEEXT}:"
var MSG_notexto = WR+"Kein Textobjekt!";
var MSG_selectedmany = "Zum Markieren als aktuelles Datum/Uhrzeit darf nur ein Textobjekt ausgew\xE4hlt sein und falls Sie die Daten aktualisieren wollen, darf kein Objekt ausgew\xE4hlt sein.";
var MSG_nodocs = WR+"Kein Dokument ge\xF6ffnet."
var Timeformat = 24;
var TimeSep = ":";
var AM = " am";
var PM = " pm";
var Dateformat = "dd.mm.yyyy";
} else {
var format_preset = "{FILENAME} ({DATE}, {TIME})";
var MSG_unsetmark = WR+"This object is marked as actual date'n'time, do you want to remove the mark?";
var MSG_setmark = WR+"Do you want to mark the selected textobject as actual date'n'time?";
var MSG_askformat = WR+"Do you want to mark the textobject as actual date'n'time? Formats:\n{DATE}, {TIME}, {FILE}, {FILEPATH}, {FILENAME} and {FILEEXT}:"
var MSG_editformat = WR+"Edit date'n'time (empty = remove). Formats:\n{DATE}, {TIME}, {FILE}, {FILEPATH}, {FILENAME} and {FILEEXT}:"
var MSG_notexto = WR+"No textobject!";
var MSG_selectedmany = "To mark as actual date'n'time, you have to select only one textobject. If you want to update the date'n'time-objects, there must be no object selected.";
var MSG_nodocs = WR+"You have no open document."
var Timeformat = 12;
var TimeSep = ":";
var AM = " am";
var PM = " pm";
var Dateformat = "mm/dd/yyyy";
var error=0;
if (documents.length<1) {
error++;
alert(MSG_nodocs)
if (error < 1) {
date_n_time();
function TodayDate()
var Today = new Date();
var Day = Today.getDate();
var Month = Today.getMonth() + 1;
var Year = Today.getYear();
var PreMon = ((Month < 10) ? "0" : "");
var PreDay = ((Day < 10) ? "0" : "");
if(Year < 999) Year += 1900;
var theDate = Dateformat.replace(/dd/,PreDay+Day);
theDate = theDate.replace(/mm/,PreMon+Month);
theDate = theDate.replace(/d/,Day);
theDate = theDate.replace(/m/,Month);
theDate = theDate.replace(/yyyy/,Year);
theDate = theDate.replace(/yy/,Year.toString().substr(2,2));
return theDate;
function TodayTime()
var Today = new Date();
var Hours = Today.getHours();
var Minutes = Today.getMinutes();
var Suffix = "";
if (Timeformat == 12) {
if (Hours >= 12 ) {
Suffix = PM;
} else {
Suffix = AM;
if (Hours >= 13) {
Hours = Hours - 12;
if (Hours < 1) {
Hours = Hours + 12;
var PreHour = ((Hours < 10) ? "0" : "");
var PreMin = ((Minutes < 10) ? "0" : "");
return PreHour+Hours+TimeSep+PreMin+Minutes+Suffix;
function DateUpdate(Name) {
var docpath = activeDocument.path.fsName;
var docname = activeDocument.name.replace(/(.*?)(?:\.([^.]+))?$/,'$1');
var extension = activeDocument.name.replace(/(.*?)(?:(\.[^.]+))?$/,'$2');
if (docpath.slice(2,3) == "\\") {
docsep = "\\";
} else {
docsep = ":";
var content = Name.slice(11);
var content = content.replace(/\{FILE\}/,docpath+docsep+docname);
var content = content.replace(/\{FILEPATH\}/,docpath);
var content = content.replace(/\{FILENAME\}/,docname);
var content = content.replace(/\{FILEEXT\}/,extension);
var content = content.replace(/\{DATE\}/,TodayDate());
var content = content.replace(/\{TIME\}/,TodayTime());
return content;
function date_n_time()
if (selection.length == 1) {
if (selection[0].typename == "TextArtItem" || selection[0].typename == "TextFrame") {
if (selection[0].name.slice(0,11) == "actualDate:") {
dateformat = selection[0].name.slice(11);
Check = false;
if (AIversion == "10") {
Check = confirm( MSG_unsetmark );
} else {
dateformat = prompt(MSG_editformat, dateformat);
if(dateformat != "" && Check) {
selection[0].contents = selection[0].name.slice(11);
selection[0].name="";
selection[0].selected = false;
if(dateformat == "" && !Check) {
selection[0].name="";
selection[0].selected = false;
if(dateformat && dateformat !="" && !Check) {
selection[0].name="actualDate:"+dateformat;
selection[0].contents = DateUpdate(selection[0].name);
} else {
dateformat = selection[0].contents;
if(dateformat.search(/\{DATE\}/) == -1 && dateformat.search(/\{TIME\}/) == -1 && dateformat.search(/\{FILE[A-Z]*\}/) == -1) dateformat = format_preset;
Check = false;
if (AIversion == "10") {
Check = confirm( MSG_setmark );
} else {
dateformat = prompt(MSG_askformat, dateformat);
if (dateformat || Check) {
selection[0].name="actualDate:"+dateformat;
selection[0].contents = DateUpdate(selection[0].name);
selection[0].selected = false;
} else {
alert ( MSG_notexto );
} else if (selection.length > 1) {
alert ( MSG_selectedmany );
} else {
if (AIversion == "10") {
var textArtItems = activeDocument.textArtItems;
for (var i = 0 ; i < textArtItems.length; i++)
if (textArtItems[i].name.slice(0,11) == "actualDate:") {
textArtItems[i].selected = true;
textArtItems[i].contents = DateUpdate(textArtItems[i].name);
} else {
var textFrames = activeDocument.textFrames;
for (var i = 0 ; i < textFrames.length; i++)
if (textFrames[i].name.slice(0,11) == "actualDate:") {
textFrames[i].selected = true;
textFrames[i].contents = DateUpdate(textFrames[i].name);Okay, here is the entire script with credit lines.
//////////////////////////////////////////////////////////// english //
// -=> WR-DateAndTime <=-
// A Javascript for Adobe Illustrator
// by Wolfgang Reszel ([email protected])
// Version 0.9 from 22.9.2011
// This script inserts the actual date or the actual time to a
// predefined position in the document.
// To define the position, you'll have to create an textobject and
// execute this script while the object is selected. The whole object
// has to be selected and not words or letters. You can mark more
// objects, if you select each object separate and execute
// the script on it.
// With the placeholders {DATE} and {TIME} you are able to define a
// particular point, where the date or the time should be replaced.
// If there is no placeholder in the textobject
// "{FILENAME}{FILEEXT} ({DATE}, {TIME})" will be used as standard placeholders.
// To update the date and time execute this script without any object
// selected.
// There are some additional placeholders:
// {FILE} - complete document-filename with path
// {FILEPATH} - only the documents filepath
// {FILENAME} - the filename of the document
// {FILEEXT} - the file extension of the document inclusive dot
// On my system this script can't see the path of the document, when
// it was opened directly from windows Explorer (double click).
// In Illustrator CS it is now possible to edit a DateAndTime-Object.
// To enable the english messages and date-format change the "de"
// into "en" in line 90.
// Sorry for my bad english. For any corrections send an email to:
// [email protected]
//////////////////////////////////////////////////////////// Deutsch //
// -=> WR-DateAndTime <=-
// Ein Javascript fuer Adobe Illustrator
// von Wolfgang Reszel ([email protected])
// Version 0.9 vom 30.9.2011
// Dieses Skript fuegt das aktuelle Datum und die aktuelle Uhrzeit an
// eine vorher bestimmte Stelle im Dokument ein.
// Um eine Stelle zu bestimmen, muss man ein Textobjekt erzeugen, es
// markieren und dann dieses Skript aufrufen. Es muss das gesamte Objekt
// ausgewaehlt sein, nicht etwa Buchstaben oder Woerter. Es lassen sich
// nacheinander auch mehrere Objekte als Datum/Uhrzeit markieren.
// Mit den Platzhaltern {DATE} und {TIME} (in geschweiften Klammern)
// kann man bestimmen, wo genau im Text das Datum und die Uhrzeit
// erscheinen soll. Sind die Platzhalter nicht vorhanden, wird
// automatisch "{FILENAME}{FILEEXT} ({DATE} - {TIME})" verwendet.
// Zum Aktualisieren des Datums/Uhrzeit muss man dieses Skript aufrufen
// wenn kein Objekt ausgewaehlt ist.
// Es gibt noch einige zusaetzliche Platzhalter:
// {FILE} - kompletter Dateiname mit Pfad
// {FILEPATH} - nur der Verzeichnispfad des Dokuments
// {FILENAME} - der Dateiname des Dokuments
// {FILEEXT} - die Dateiendung des Dokuments inklusive Punkt
// Auf meinem System kann der Pfad nicht ermittelt werden, wenn das
// Dokument vom Windows Explorer geoeffnet wird (Doppel-Klick).
// InÿIllustrator CSÿkann man nun ein Datum/Uhrzeit-Objekt bearbeiten.
// Um dieses Skript mit deutschen Meldungen und Datumsformat zu
// versehen, muss in Zeile 90 das "en" durch ein "de" ersetzt werden.
// Verbesserungsvorschlaege an: [email protected]
//$.bp();
var language="en"; // "de" fuer Deutsch
var WR="WR-DateAndTime v0.9\n\n";
var AIversion=version.slice(0,2);
if (language == "de") {
var format_preset = "{FILENAME}{FILEEXT} ({DATE} - {TIME})";
var MSG_unsetmark = WR+"Dieses Objekt ist als aktuelles Datum/Uhrzeit markiert, soll die Markierung aufgehoben werden?";
var MSG_setmark = WR+"Soll dieses Textobjekt als aktuelles Datum/Uhrzeit markiert werden?";
var MSG_askformat = WR+"Soll das Textobjekt als Datum/Uhrzeit formatiert werden? Formate:\n{DATE}, {TIME}, {FILE}, {FILEPATH}, {FILENAME} und {FILEEXT}:"
var MSG_editformat = WR+"Datums-/Uhrzeitformat bearbeiten (Leer = entfernen). Formate:\n{DATE}, {TIME}, {FILE}, {FILEPATH}, {FILENAME} und {FILEEXT}:"
var MSG_notexto = WR+"Kein Textobjekt!";
var MSG_selectedmany = "Zum Markieren als aktuelles Datum/Uhrzeit darf nur ein Textobjekt ausgew\xE4hlt sein und falls Sie die Daten aktualisieren wollen, darf kein Objekt ausgew\xE4hlt sein.";
var MSG_nodocs = WR+"Kein Dokument ge\xF6ffnet."
var Timeformat = 24;
var TimeSep = ":";
var AM = " am";
var PM = " pm";
var Dateformat = "dd.mm.yyyy";
} else {
var format_preset = "{FILENAME} ({DATE}, {TIME})";
var MSG_unsetmark = WR+"This object is marked as actual date'n'time, do you want to remove the mark?";
var MSG_setmark = WR+"Do you want to mark the selected textobject as actual date'n'time?";
var MSG_askformat = WR+"Do you want to mark the textobject as actual date'n'time? Formats:\n{DATE}, {TIME}, {FILE}, {FILEPATH}, {FILENAME} and {FILEEXT}:"
var MSG_editformat = WR+"Edit date'n'time (empty = remove). Formats:\n{DATE}, {TIME}, {FILE}, {FILEPATH}, {FILENAME} and {FILEEXT}:"
var MSG_notexto = WR+"No textobject!";
var MSG_selectedmany = "To mark as actual date'n'time, you have to select only one textobject. If you want to update the date'n'time-objects, there must be no object selected.";
var MSG_nodocs = WR+"You have no open document."
var Timeformat = 12;
var TimeSep = ":";
var AM = " am";
var PM = " pm";
var Dateformat = "mm/dd/yyyy";
var error=0;
if (documents.length<1) {
error++;
alert(MSG_nodocs)
if (error < 1) {
date_n_time();
function TodayDate()
var Today = new Date();
var Day = Today.getDate();
var Month = Today.getMonth() + 1;
var Year = Today.getYear();
var PreMon = ((Month < 10) ? "0" : "");
var PreDay = ((Day < 10) ? "0" : "");
if(Year < 999) Year += 1900;
var theDate = Dateformat.replace(/dd/,PreDay+Day);
theDate = theDate.replace(/mm/,PreMon+Month);
theDate = theDate.replace(/d/,Day);
theDate = theDate.replace(/m/,Month);
theDate = theDate.replace(/yyyy/,Year);
theDate = theDate.replace(/yy/,Year.toString().substr(2,2));
return theDate;
function TodayTime()
var Today = new Date();
var Hours = Today.getHours();
var Minutes = Today.getMinutes();
var Suffix = "";
if (Timeformat == 12) {
if (Hours >= 12 ) {
Suffix = PM;
} else {
Suffix = AM;
if (Hours >= 13) {
Hours = Hours - 12;
if (Hours < 1) {
Hours = Hours + 12;
var PreHour = ((Hours < 10) ? "0" : "");
var PreMin = ((Minutes < 10) ? "0" : "");
return PreHour+Hours+TimeSep+PreMin+Minutes+Suffix;
function DateUpdate(Name) {
var docpath = activeDocument.path.fsName;
var docname = activeDocument.name.replace(/(.*?)(?:\.([^.]+))?$/,'$1');
var extension = activeDocument.name.replace(/(.*?)(?:(\.[^.]+))?$/,'$2');
if (docpath.slice(2,3) == "\\") {
docsep = "\\";
} else {
docsep = ":";
var content = Name.slice(11);
var content = content.replace(/\{FILE\}/,docpath+docsep+docname);
var content = content.replace(/\{FILEPATH\}/,docpath);
var content = content.replace(/\{FILENAME\}/,docname);
var content = content.replace(/\{FILEEXT\}/,extension);
var content = content.replace(/\{DATE\}/,TodayDate());
var content = content.replace(/\{TIME\}/,TodayTime());
return content;
function date_n_time()
if (selection.length == 1) {
if (selection[0].typename == "TextArtItem" || selection[0].typename == "TextFrame") {
if (selection[0].name.slice(0,11) == "actualDate:") {
dateformat = selection[0].name.slice(11);
Check = false;
if (AIversion == "10") {
Check = confirm( MSG_unsetmark );
} else {
dateformat = prompt(MSG_editformat, dateformat);
if(dateformat != "" && Check) {
selection[0].contents = selection[0].name.slice(11);
selection[0].name="";
selection[0].selected = false;
if(dateformat == "" && !Check) {
selection[0].name="";
selection[0].selected = false;
if(dateformat && dateformat !="" && !Check) {
selection[0].name="actualDate:"+dateformat;
selection[0].contents = DateUpdate(selection[0].name);
} else {
dateformat = selection[0].contents;
if(dateformat.search(/\{DATE\}/) == -1 && dateformat.search(/\{TIME\}/) == -1 && dateformat.search(/\{FILE[A-Z]*\}/) == -1) dateformat = format_preset;
Check = false;
if (AIversion == "10") {
Check = confirm( MSG_setmark );
} else {
dateformat = prompt(MSG_askformat, dateformat);
if (dateformat || Check) {
selection[0].name="actualDate:"+dateformat;
selection[0].contents = DateUpdate(selection[0].name);
selection[0].selected = false;
} else {
alert ( MSG_notexto );
} else if (selection.length > 1) {
alert ( MSG_selectedmany );
} else {
if (AIversion == "10") {
var textArtItems = activeDocument.textArtItems;
for (var i = 0 ; i < textArtItems.length; i++)
if (textArtItems[i].name.slice(0,11) == "actualDate:") {
textArtItems[i].selected = true;
textArtItems[i].contents = DateUpdate(textArtItems[i].name);
} else {
var textFrames = activeDocument.textFrames;
for (var i = 0 ; i < textFrames.length; i++)
if (textFrames[i].name.slice(0,11) == "actualDate:") {
textFrames[i].selected = true;
textFrames[i].contents = DateUpdate(textFrames[i].name); -
Problem with script – NEED HELP
HELP!!! why isn't the script working?
on adding folder items to thefolder after receiving theAddedItems
repeat with eachitem in theAddedItems
set theSender to "me<[email protected]>"
set recipCommon to "Files"
set recipAddress to (choose from list {"User 1", "User 2", "User 3"} with prompt "Select a recipient :") as text
if result is "User 1" then
set recipAddress to {"User 1 <[email protected]>"}
else if result is "User 2" then
set recipAddress to {"User 2 <[email protected]>"}
else if result is "User 3" then
set recipAddress to {"User 3 <[email protected]>", "[email protected]>"}
end if
set msgText to " type body copy here "
tell application "Mail"
set newmessage to make new outgoing message with properties {content:msgText & return}
tell newmessage
set sender to theSender
tell application "Finder" to set theSubject to name of eachitem
set subject to theSubject
repeat with eachRecipient in recipAddress
make new to recipient at end of to recipients with properties {name:recipCommon, address:eachrecipAddress}
end repeat
end tell
send newmessage
end tell
end repeat
end adding folder items toHELP......
!!!Everything works in the below script except it doesn't send the email?!!!
on adding folder items to thefolder after receiving theAddedItems
repeat with eachitem in theAddedItems
set theSender to "me<[email protected]>"
set recipCommon to "Files"
set recipAddress to (choose from list {"User 1", "User 2", "User 3"} with prompt "Select a recipient :") as text
if result is "User 1" then
set recipAddress to {"User 1 <[email protected]>"}
else if result is "User 2" then
set recipAddress to {"User 2 <[email protected]>"}
else if result is "User 3" then
set recipAddress to {"User 3 <[email protected]>", "[email protected]>"}
end if
set msgText to " type body copy here "
tell application "Mail"
set newmessage to make new outgoing message with properties {content:msgText & return}
tell newmessage
set visible to true
set sender to theSender
tell application "Finder" to set theSubject to name of eachitem
set subject to theSubject
repeat with eachRecipient in recipAddress
make new to recipient at end of to recipients with properties {name:recipCommon, address:eachRecipient}
end repeat
repeat with eachRecipient in recipAddress
make new to recipient at end of to recipient with properties {name:recipCommon, address:recipAddress}
set eachRecipient to contents of eachRecipient
end repeat
end tell -
Hi Everyone,
I'm trying to get a simple task scheduler script to work for me and can't get the command I need passed to the scheduler to evaluate properly.
Here's the script:
###Create a new task running $Command and execute it Daily at 6am.
$TaskName = Read-Host 'What would you like this job to be named?'
$Proto = Read-Host 'What is the protocol? (FTP/FTPS/SFTP)'
$User = Read-Host 'What is the user name?'
$Pwd = Read-Host 'What is the password?'
$Server = Read-Host 'What is the server address?'
$NetworkDir = Read-Host 'Please input the network location of the file(s) you wish to send. Refer to documentation for more details.'
$RemoteDir = Read-Host 'Please input the REMOTE directory to which you will upload your files. If there is none please input a slash'
$Command = 'winscp.com /command "option batch abort" "option confirm off" "open $Proto://$User:$Pwd@$Server" "put $NetworkDir $RemoteDir" "exit"'
$TaskAction = New-ScheduledTaskAction -Execute "$Command"
$TaskTrigger = New-ScheduledTaskTrigger -Daily -At 6am
Register-ScheduledTask -Action $TaskAction -Trigger $Tasktrigger -TaskName "$TaskName" -User "Administrator" -RunLevel Highest
Write-Host "$TaskName created to run Daily at $TaskStartTime"
What's messing up is the $Command creation, the command needs to have the quotes around "option blah blah", but if I wrap the whole line in single quotes the variables that are evaluated for the "open blah blah" strings (which also need
to be inside quotes) and the "put blah blah" string are not being evaluated properly.
I've dorked about with different bracketing and quoting but can't nail the syntax down, could someone point me in the right direction? My Google-fu seems to be lacking when it comes to nailing down this issue.
ThanksHmmn, closer. I'm getting this error now:
+ $Command = $tmpl -f $User, $Pwd, $Server, $NetworkDir, $RemoteDir
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (winscp.com /com...t {4} {5}" exit:String) [], RuntimeException
+ FullyQualifiedErrorId : FormatError
And the command being added to the new task looks like this:
winscp.com /command "option batch abort" "option confirm off" "open ($Proto)://($User):($Pwd)@($Server)" "put $NetworkDir $RemoteDir" "exit"
Here's the current state of the script. I get what you're doing to try to bypass the quotes issue, using an array. I'm just not awesome at this yet sooooooo...
$TaskName = Read-Host 'What would you like this job to be named?'
$Proto = Read-Host 'What is the protocol? (FTP/FTPS/SFTP)'
$User = Read-Host 'What is the user name?'
$Pwd = Read-Host 'What is the password?'
$Server = Read-Host 'What is the server address?'
$NetworkDir = Read-Host 'Please input the network location of the file(s) you wish to send. Refer to documentation for more details.'
$RemoteDir = Read-Host 'Please input the REMOTE directory to which you will upload your files. If there is none please input a slash'
$tmpl = 'winscp.com /command "option batch abort" "option confirm off" "open {0}://{1}:{2}@{3}" "put {4} {5}" exit'
$Command = $tmpl -f $User, $Pwd, $Server, $NetworkDir, $RemoteDir
$TaskAction = New-ScheduledTaskAction -Execute $Command
$TaskTrigger = New-ScheduledTaskTrigger -Daily -At 6am
Register-ScheduledTask -Action $TaskAction -Trigger $Tasktrigger -TaskName "$TaskName" -User "Administrator" -RunLevel Highest
Write-Host "$TaskName created to run Daily at $TaskStartTime" -
hi
in scripts in one window i have to fill with first day of current system year and last day of system current year . how to get it ?
thanks& regards
lakshmiHi,
Try this function module 'FIRST_AND_LAST_DAY_IN_YEAR_GET'
Thanks
Vasudha -
Newbie at Illustrator scripting needs help assigning image
I am trying to copy a graphic stored in a vb.net picturebox.image into an activeLayer of an illustrator document. Can anyone supply me with code as to how to do it. Also is there a way to lookup a swatch by name and not have to rely on knowing it's index as in this line of code : pathRef.StrokeColor = docRef.Swatches(3).Color. I know the swatch's name is "CutContour" I would like to assign it by name. And lastly does anybody know any good books, links, etc.. that show you how to do this kind of stuff.
Thanks,
Bruce
Imports IDAutomation.Windows.Forms.LinearBarCode
Imports Illustrator
Public Class FormMain
Dim barcode As IDAutomation.Windows.Forms.LinearBarCode.Barcode = New Barcode()
Dim illustrator As Illustrator.Application = CreateObject("Illustrator.Application")
Dim filePath As String = My.Application.Info.DirectoryPath
Private Sub FormMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
barcode.SymbologyID = barcode.Symbologies.Code39Ext
barcode.BarHeightCM = 1
barcode.XDimensionCM = 0.03
barcode.NarrowToWideRatio = 2
barcode.LeftMarginCM = 0.201
barcode.TopMarginCM = 0.201
barcode.TextMarginCM = 0.051
barcode.ShowText = False
barcode.CaptionBottomAlignment = StringAlignment.Center
barcode.CaptionBottomSpace = 0.03
Dim barcodeText As String = "CODE39UPC" 'hard code barcode content for this test
barcode.DataToEncode = "*" + barcodeText + "*"
barcode.CaptionBelow = barcodeText
PictureBox1.Image = barcode.BMPPicture 'Display Barcode
barcode.SaveImageAs(".\upc.png", System.Drawing.Imaging.ImageFormat.Png)
Dim fileName As String = filePath + "\Roland VersaWorks.eps"
Try
illustrator.Open(fileName)
Catch err As Exception
MsgBox("Missing File: " + fileName)
illustrator.Quit()
Me.Close()
End Try
Dim docRef As Illustrator.Document = illustrator.ActiveDocument
Dim pathRef As Illustrator.PathItem = docRef.ActiveLayer.PathItems.Rectangle(100, 0, 300, 100)
pathRef.StrokeColor = docRef.Swatches(3).Color 'Set strokeColor to CutContour Swatch
pathRef.Filled = False ' Don't Fill rectangle with anything
docRef.ActiveLayer = docRef.Layers(2) 'Activate UPC Layer
'############## I need to copy PictureBox1.image into this activeLayer! How do I do it? ###########
Dim epsOptions As Illustrator.EPSSaveOptions = CreateObject("Illustrator.EPSSaveOptions")
epsOptions.CMYKPostScript = True
docRef.SaveAs(filePath + "\test.eps", epsOptions)
illustrator.Quit()
Me.Close()
End Sub
End ClassHi,
Hodge-Podge wrote:
Also is there a way to lookup a swatch by name and not have to rely on knowing it's index as in this line of code : pathRef.StrokeColor = docRef.Swatches(3).Color. I know the swatch's name is "CutContour" I would like to assign it by name.
I have no knowledge in VB, but in javascript
it should be called by:
var mySwatche=app.activeDocument.swatches.getByName("CutContour");
Regarding how to copy, i guess that you can load picture as raster / placed items or cut() & paste()... it's just ideas,
Sorry, art.chrome -
Creating Basic Calculator Script - Needs help
I'd like to create a basic calculator script that makes doing calculations a bit easier from the command line. Normally i do:
echo "32*24" | bc
So I built a bash script that I can just type "calc 32*24":
bc << EOF
scale=4
$@
quit
EOF
And it works ok until i try to use parenthesis:
calc (1+49)/5
bash: syntax error near unexpected token `1+49'
if I use parenthesis, directly in the bc command it does ok:
bc
bc 1.06...
(1+49)/5
10
I've tried putting $@ in quotes but not luck. Looks like bash isn't transferring the parenthesis. How can I get the bash script to pass theparenthesis?Dusty wrote:This is why I always have at least one terminal in an IPython session.
+1!
I normally use a standard python instance in the same way but have just installed ipython and am having a look at it now. Looks cool! -
Novice CS5 Dreamweaver User Needs Help!
I have used Dreamweaber MX 2004 to a limited extent to build some very basic web sites. I have just upgraded to CS5 and come across the AP Elements.
If I build a page using tables then when I display the results in the browser the image (table) is always in the middle of the screen and adjusts accordingly when the browser window size is changed. If I build build a page using an AP element the this is always fixed in position on the screen and rolls off the edge if the browser window is made smaller. Is there a way os getting the AP element to react the same way as a table. Perhaps I'm using the AP elements in the wrong context?
ThanksDon't use APDivs as a primary layout method. Here's why:
http://apptools.com/examples/pagelayout101.php
Learn to use static CSS (no-positioning) along with margins, padding and floats.
From Tables to CSS Web Design Part 1 -
http://www.adobe.com/devnet/dreamweaver/articles/table_to_css_pt1.html
From Tables to CSS Web Design Part 2 -
http://www.adobe.com/devnet/dreamweaver/articles/table_to_css_pt2.html
While you're learning modern web standards with CSS, you'll find it easier if you start projects with a pre-built CSS Templates or Starter Page.
Dreamweaver CSS Templates for beginners
http://www.adobe.com/devnet/dreamweaver/articles/dreamweaver_custom_templates.html
New DW Starter Pages --
http://www.adobe.com/devnet/dreamweaver/articles/introducing_new_css_layouts.html
Finally, have a look at Creating your first web site in DW CS5. Much has changed since MX.
http://www.adobe.com/devnet/dreamweaver/articles/first_website_pt1.html
It's a lot of information, I know. But a little homework will get off to a good start. Post back if you get stuck on anything.
Nancy O.
Alt-Web Design & Publishing
Web | Graphics | Print | Media Specialists
http://alt-web.com/
http://twitter.com/altweb -
text<tab>{findWhat:”<U+0394>”}<tab>{appliedCharacterStyle:”Symbol”}<tab>{includeFootnotes: true, includeMasterPages:true, includeHiddenLayers:true, wholeWord:false}
In this case, I want to swap the Greek letter Delta, which is its codepoint U + 0394, for a specific character style (the style is called Symbol).
The question is: is written right?
Where should I put it? Because I'm just adding this line in an existing code ...
Thanks anyway to everyone! ^^Hi,
You could use "grep" mode instead of "text". I mean:
grep<tab>{findWhat:"\x{394}"}<tab>{appliedCharacterStyle:"Symbol"}<tab>{includeFootnotes:t rue, includeMasterPages:true, includeHiddenLayers:true, wholeWord:false}
findWhat:"\x{394}" means to find a unicode with specified number (the number you can see in InDesign Info Panel).
This should be placed as a one of lines inside "FindChangeList.txt" file before "FindChangeByList.jsx" run.
Jarek
Maybe you are looking for
-
Creating Customized Views in bpm/workspace
Hi All, I'm going to create a customized view in http://<host>:<port>/bpm/workspace .. I was able to create one view for the first user and that Human task user are defined in the 'Organization' Lane Users. Then next user comes based on the output of
-
PR / RFQ refence mandatory for PO
Hi Experts, Please help me in setting PR or RFQ (quotation) refence mandatory for creating PO... can it be done using standard config or do I need to create transcation variant... it's urgent Krishna
-
Emails Delete from Inbox after ticket is received in Office 365
We recently migrated from Exchange 2010 to Office 365. In doing so, we noticed that the emails which generate tickets from our Helpdesk mailbox are now disappearing altogether, whereas before they would be process and moved to the deleted items. Anyo
-
SCCM 2012 Antivirus Exclusions for Servers and Workstations
Hii, Just sharing the antivirus exclusions for Configuration Manager 2012 Servers and workstations as well. Please share if anything is missing. McAfee Exclusion's for Configuration Manager 2012: 1. C:\Windows\TEMP\BootImages and subfolders. 2. Direc
-
Transports in SAP sourcing 7.0
Hi, I am using sourcing 7.0 I have prepared all the export.oma files for CLM, and I was just trying to see if I can import one of these successfully or not. I was under the impression that it can be done through u2018Import Datau2019. However found o