Assignment
How to move unassigned story to an assignment (for InCopy)
Question: I want to add a story to a new assignment with JavaScript. I found out how to create an assignment, and how to make a icml and icma document. However, it comes in unassigned InCopy items, and I can't find a way to place it into my new assignment.
Answer: In my opinion, this is one of those rare occasions when functionality available in UI is unavailable to script. But I think it's possible to workaround this isue like so:
var doc = app.activeDocument; if (app.selection.length == 0 || app.selection[0].constructor.name != "TextFrame") exit(); var textFrame = app.selection[0]; var assignmentFile = new File("~/Desktop/Test.icma"); var incopyFile = new File("~/Desktop/Test.icml"); var assignment = doc.assignments.add(assignmentFile, undefined, false, {name: "Test"}); var unassignedContent = doc.assignments.item("Unassigned InCopy Content"); textFrame.texts[0].exportFile(ExportFormat.INCOPY_MARKUP, incopyFile); unassignedContent.assignedStories[0].move(LocationOptions.AT_END, assignment); assignment.update(); assignment.update();
The code above was adapted to CC 2018; below is the original code for CS3.
var doc = app.activeDocument; if (app.selection.length == 0 || app.selection[0].constructor.name != "TextFrame") exit(); var textFrame = app.selection[0]; var assignmentFile = new File("~/Desktop/Test.inca"); var incopyFile = new File("~/Desktop/Test.incx"); var assignment = doc.assignments.add("Test", assignmentFile, {name:"Test"}); var unassignedContent = doc.assignments.item("Unassigned InCopy Content"); textFrame.texts[0].exportFile(ExportFormat.INCOPY_DOCUMENT, incopyFile); unassignedContent.assignedStories[0].move(LocationOptions.AT_END, assignment); assignment.update();