Automation in InDesign

Let me preface this question by saying that I am a designer that is trying to help my company automate some tasks, I am not a developer and I do not know scripting.
My situation is this; we currently use InDesign to create sell sheets for our customer's needs. Basically these sell sheets pull information from multiple documents and puts it together in one easy to read format. Right now we are entering almost everything manually and I'm convinced there has to be a better way. I've spent many hours doing research and I'm not really getting anywhere so I thought I'd pose the question, what is the best/simplest way to automate inDesign documents? I've worked with data merge with .csv files and that is good, but the limit of one source document only solves one small part of this. I've looked into XML, but I can't get the raw data into an XML format without tons of manual effort.
If anyone can just point me in a direction, I would really appreciate that!

Thanks, Bob, it's good to have a lively disagreement...if you have a moment would you check out Bug #2925372?
The original poster, jen2638, explained up front that she is "not a developer and I do not know scripting." Any solution that requires her to learn scripting is probably a non-starter, and similarly so for XSLT.
I would also say that because pretty much any use of InDesign's native XML import requires the use of XSLT, that tautologically makes it "not super." That is, XSLT is a tool to transform arbitrary XML into other arbitrary XML. Because InDesign's XML import is extremely rigid, the only way to get it to import most kinds of XML is to transform that XML (such as with XSLT).
But I agree. If you can write scripts and XSLT transformations (or other kinds of XML transformations), then using XML with InDesign is extremely powerful. Unfortunately that cuts out 95% of the population, and leaves much of the remaining 5% tearing their hair out.
It is far easier to do any kind of manipulation in Excel and export to CSV and then use Data Merge. (Or to use a purpose-built catalog plugin).
Those will work for this problem, and do so handily (at least, to the extent that I understand the problem).
It's definitely more powerful to do it in InDesign. But it's not friendly; it's not easy; it's not for non-developers; and, in my considered-but-nowhere-near-humble-opinion, it is nothing close to "super."
I guess some of this can be alleviated by good cookbooks, and I think there may be a few of them out there. But.

Similar Messages

  • Using Delphi, and the InDesign automation object ("indesign

    Using Delphi, and the InDesign automation object ("indesign.application"), I need to open a indd file, move to a bookmark and insert text or picture at that exact location. Any examples of such code I could start with?

    Hi Bill,
    Sorry to be so late getting to this thread!
    If you want to add something to a page, or find an object that's on a page, you need a reference to the page. Simply displaying the page with ShowBookmark won't give you a reference to the page--InDesign scripting, for the most part, doesn't rely on the selection and current view in the way that Word scripting does (this is a good thing, but that's a topic for another day).
    You had to have a reference to a page to create the HyperlinkPageDestination that you used to create the bookmark--but, if not, you can get a reference to the page using (VBScript form):
    Rem Given a reference to an instance of InDesign "myInDesign"...
    myInDesign.Bookmarks.Item("Description").ShowBookMark
    Set myPage = myInDesign.ActiveWindow.ActivePage
    In general, though, you probably don't need the bookmark and the whole "ActiveWindow" construct--just use the reference to the page itself.
    Now that you have a page, you can put things on the page.
    Rem Create a rectangle
    Set myRectangle = myPage.Rectangles.Add
    Rem Size and position the rectangle
    myRectangle.GeometricBounds = Array("6p", "6p", "24p", "24p")
    Rem Place a graphic in the rectangle
    myRectangle.Place "c:\test.tif"
    If you have a text frame on the page that has the label "myLabel", you can get a reference to the text frame and add text:
    Set myTextFrames = myPage.TextFrames.Item("myLabel")
    Rem myTextFrames will return an array--get the first item
    Set myTextFrame = myTextFrames(0)
    Rem Replace the text in the text frame:
    myTextFrame.Contents = "This is some text."
    Rem Or add text to the end of the text frame:
    myTextFrame.InsertionPoints.Item(-1).Contents = "This is some additional text."
    If you know that there is only one text frame with the label "Description" in the entire document, you can even say:
    Set myTextFrames = myDocument.TextFrames.Item("myLabel")
    Rem myTextFrames will return an array--get the first item
    Set myTextFrame = myTextFrames(0)
    ...to get to it directly. If, at that point, you want to get at the page containing the text frame (and assuming that the text frame is not in a group, pasted inside text, or pasted inside another page item), you can use:
    Set myPage = myTextFrame.Parent
    Have you looked through the "Working with Documents" chapter of the InDesign CS3 Scripting Guide: VBScript and the associated scripts archive? I realize that you're using Delphi, but it doesn't look too difficult to convert from one to the other.
    Thanks,
    Ole

  • No AUTOMATION in InDesign CS5!?

    hi, I'd like to use the data merge tool which has served very well in the past. Now, I can't find the menu window/automation. any idea what's happened?
    InDesign CS5 Design Premium / Windows 7 / 32 bit
    thanks folks...

    man, I must be blind!! Thanks a lot
    I misclicked on the helpful button and now can't correct to correct answer (unexpected error - must be a bad hair day) sorry & thanks again...

  • Automation Hyperlinks inDesign

    Hi, I have a question, I have multiple page document that was created from CSV using data merge in inDesign that have specific text that I would like to make into hyperlinks so it can be exported to PDF and the links would work. But the thing is I tried one method described in here using AutoHyperlink script. The problem with that is that I have same text to convert to hyperlinks on all pages (like Product Info, View Image etc) but they need to have links to different webpages. For example on Page 1, "Product Info" text should link to one website, but on Page 3, "Product Info" should link to another website. Is there a way to do automation and source these hyperlinks from CSV or some specific formated text file? If there is any way to do that please let me know. Thanks!

    Thanks, Bob, it's good to have a lively disagreement...if you have a moment would you check out Bug #2925372?
    The original poster, jen2638, explained up front that she is "not a developer and I do not know scripting." Any solution that requires her to learn scripting is probably a non-starter, and similarly so for XSLT.
    I would also say that because pretty much any use of InDesign's native XML import requires the use of XSLT, that tautologically makes it "not super." That is, XSLT is a tool to transform arbitrary XML into other arbitrary XML. Because InDesign's XML import is extremely rigid, the only way to get it to import most kinds of XML is to transform that XML (such as with XSLT).
    But I agree. If you can write scripts and XSLT transformations (or other kinds of XML transformations), then using XML with InDesign is extremely powerful. Unfortunately that cuts out 95% of the population, and leaves much of the remaining 5% tearing their hair out.
    It is far easier to do any kind of manipulation in Excel and export to CSV and then use Data Merge. (Or to use a purpose-built catalog plugin).
    Those will work for this problem, and do so handily (at least, to the extent that I understand the problem).
    It's definitely more powerful to do it in InDesign. But it's not friendly; it's not easy; it's not for non-developers; and, in my considered-but-nowhere-near-humble-opinion, it is nothing close to "super."
    I guess some of this can be alleviated by good cookbooks, and I think there may be a few of them out there. But.

  • IDCS2 How to make excel automation in Indesign Javascripting?

    Hi all,
    I have an excel sheet with several columns.I need to replace one of the column in the excel sheet with another set of values using (Indesign)javascript.
    Please help.
    Provide me with code snippets.
    Regards
    amu

    >in the excel sheet [...] using (Indesign)javascript
    It seems to me you think that javascript ("InDesign" JS??) can control any application on your computer.
    Not so.
    InDesign has 'generic' support for external programming languages. It can be controlled using JavaScript, Visual Basic for Applications (on Windows), AppleScript (on the Mac), and COM-aware programs, such as C++. The support for this is built-in into InDesign.
    Excel has built-in support for Visual Basic. This probably means you can steer both Excel and ID from within the same VB -- I know it's possible through Word -- but has nothing to do with JS. Or with InDesign's support for JS. Or InDesign Scripting in general.
    So, is it possible with VB? Well, it might be, but you might want to ask that one on a Microsoft forum, or this one:
    >Provide me with code snippets.
    (snip)

  • Indesign with CALS table

    Hi all,
    We are in process of automating XML indesign workflow.
    We need some input reg. the table handling in XML workflow.
    Which type of table is good CALS or Indesign Table.
    kavya

    It really depends on what you're doing with the XML, and what your tool chain is. If those other tools understand CALS or InDesign out-of-the-box, that's your choice.

  • InDesign ExtendScript...is this worth learning?

    Hello,
    I have been trying to learn AppleScripting so that I might automate more of my of my InDesign stuff. When searching for more books, I came across a book by Shirley W.Hopkins called automating Adobe InDesign CS4 with ExtendScript. Does this scripting option seem to be a good one to learn, even over AppleScripting? It seems like a valuable option if I want to focus on InDesign, but I would like to hear from others if they are using it and is it worth the learning curve?
    thanks!!
    babs

    sstanleyau wrote:
    It seems like someone could simply write a JavaScript API/interpreter that interfaced with AppleScript. Then JavaScript would work on a Mac for other apps, too. 
    Someone did, several years ago; it was in Script Debugger. It's since been abandoned due to overwhelming lack of interest.
    Cool. I'll look it up. Thanks.
    If Apple were as committed to open standards as they claim, we'd already have JS that could automate a Mac.
    The only claimed commitment was to "open Web standards", which has nothing to do with IAC languages like AppleScript. And if they did implement js scripting at a system level, it would of necessity be different to Adobe's custom implementation (running outside an app's environment raises a whole lot of other issues). So people would have a choice of two flavors of js, instead of js and something else -- that seems like a retrograde step to me (and would make life around here really interesting).
    I was being partially facetious on this point. Just poking a little fun at the Apple worship (I'm a Mac user as well, but for lack of a better alternative).
    My opinion as someone who codes quite a bit, is that terseness is a preferred quality in a computer language.
    And many people who code quite a bit would probably agree with you. (Whether that's because that's how they learned to code is another question.) But the point of using a natural-language like interface for AppleScript was to make it accessible to those who don't necessarily "code quite a bit". One size doesn't suit all.
    Actually, I was a designer before I was a developer (and I still am a designer). I work almost entirely with designers (and not other developers). So I have a reasonably balanced perspective on this. The idea of a "natural-language" is a bit bogus. Especially because programming is about logic, so "natural" should reflect an ease of writing logical statements. You still have to learn an entirely arbitrary language with Applescript (especially arbitrary in English, which is loaded with synonyms, so you can't guess keywords), it's just more verbose. And it still has to write logical statements. Something that is truly oriented to a non-coder, omits code entirely (e.g., Automator).
    I'm not suggesting one-size fits all, I'm all for different languages for different purposes...if I can state it a bit hyberbolically...just that a tissue box does not make a great shoe, though it may cover your foot.

  • Autoamtor + InDesign script

    Hi all,
    I wonder is the a way to run a script in InDesign from Automator?
    I have automator action that opens indesign document but than i want to run specific script (or keyboard shortcut):
    This is what I want to accomplish:
    1. Drag and drop indesign document into automator app
    2. Open document
    3. Run indesign script/or keyboard shortcut
    Thanks,
    Message was edited by: korek_grizzly

    Hi,
    There's an ancient (for CS3) tutorial on using Automator with InDesign on the InDesign scripting home page. Here's the direct link to the documentation:
    http://www.adobe.com/products/indesign/scripting/pdfs/indesign_automator_tutorial.pdf
    And here's the code:
    http://www.adobe.com/products/indesign/scripting/downloads/indesign_automator_tutorial_act ions.zip
    Thanks,
    Ole

  • How to check if a page item is outside a page

    Hi all
    I'm a developer tasked with doing some automation in InDesign, using scripting via .NET. As I'm a developer, I'm not really fluent in the language of layout, so please bear with me.
    My script creates a variable amount of TextFrame's on a page and moves them, and then rotates them. Some of them might exit the page on the right side. If only one of the text frame's bottom-right anchor point happens to be outside of the page to the right, I need to detect it. It's no problem iterating over the text frames, but the challenge is how I determine if a text frame's bottom-right anchor point is positioned outside of the page.
    I've looked at GeometricBounds, but as soon as the position is to the right of the page, the coordinates start from 0 again. So I can't do it like GeometricBounds.X > Page.Width, because GeometricBounds.X will less than Page.Width when it's to the right of the page.
    I've also looked at PageItem.Resolve, but that function really confuses me. I tried resolving the anchor point to pasteboard coordinates, and that seems to work okay. But then I have to get the page's right edge in pasteboard coordinates, and it doesn't seem I can use PageItem.Resolve to get that.
    I've looked at the programming guide to figure out how the different coordinate systems work together, but when I use PageItem.Resolve, I get results that doesn't seem to be correct according to where the coordinate systems should be.
    I'm sure it's easy to detect if a text frame is outside a page, but I just need a pointer in the right direction. Can anyone help me with that? :-)
    Thanks in advance.
    PS: I'm scripting for InDesign CS3.

    Thank you so much Harbs! - You helped me solve the problem!
    I tried setting the ruler origin to spread, and that made it possible for me to compare the coordinates returned from VisibleBounds directly. (And thanks for the tip about VisibleBounds instead of GeometricBounds)
    Again, thanks alot, really. I've spent some time now trying to figure this one out, so it's really a relief to get this one resolved.
    Oh, and even though it's not really related to my question or the solution, I can't help but comment on your 3rd point. I've certainly had my share of challenges using InDesign scripting from .NET, but once you know the quirks, it works pretty well and I certainly don't consider it a painful experience. As I said there's some issues to be aware of, but not something that stops me in my day-to-day work or slows me down. I've only worked with scripting InDesign via .NET for the last 2½ months, but at this point, I would definitely choose .NET scripting over Javascript even despite the quirks. But that's just my oppinion. :-)
    Thanks for your help Harbs!

  • Need javascript to automate hiding a layer (INDD CS4)

    Hi,
    We've been having a problem lately with our writers remembering to kill the DRAFT watermark layer before they export the print and web pdfs.
    I need a script that will automatically hide the "watermark" layer in the current document, save the document, then start the File > Adobe PDF Presets > [my_preset].
    This would save our doc controllers and writers a lot of headache, but being inexperienced with javascript (okay, all programming), I really don't know how to write something that would do this, but I've come to understand that any process can be automated in indesign.
    Can anyone help me out?
    Thanks!
    Ryan

    Hey!
    I think this will work:
    app.activeDocument.save();
    var myExportPresetName = "myPreset";
    var myWaterLayerName = "Watermark";
    try{var myPreset = app.pdfExportPresets.item(myExportPresetName);myPreset.name;}
    catch(_){alert("Can't find Export Preset");exit();}
    try{app.activeDocument.layers.item(myWaterLayerName).visible = false;}
    catch(_){alert("Can't find layer: " + myWaterLayerName);exit();};
    var myFile = File.saveDialog ("Save PDF","PDF files: *.pdf");
    if(myFile != null)
    app.activeDocument.exportFile(ExportFormat.PDF_TYPE, myFile, false, myPreset);
    else
    alert("No output file selected!");
    Just change preset name and layer name.
    tomaxxi
    http://indisnip.wordpress.com/

  • Server License for Creative Suite

    Does anyone know what a server license is for the Adobe Creative Suite. If a company gets it, can any number of staff be in the suite at one time? What are the drawbacks?

    InDesign Server has nothing to do with the version of InDesign that the
    average user knows. (Besides being more or less the same internally.)
    InDesign Server is a headless version of InDesign -- useful only to
    companies who need extensive (total) automation of InDesign. InDesign
    Server is useless unless some kind of system is built around it, hence
    most purchasers of ID Server, buy it from some kind of developer.
    What Janet needs is a site license which is purchased on a per-seat basis.
    Harbs
    http://www.in-tools.com

  • Assistance with Data Merge for product sell sheets

    Last year I started creating product sell sheets for our sales team. The sell sheet is built containg these elements: A product photo, a data table displaying product numbers, descriptions etc.. Underneath the photo and table is a text box. I have created a lot of these sell sheets for a variety of product categories. The prices are updated fairly often, maybe once every month or two. I created all of these using excel and Illustrator. Other than photoshop, Adobe products were forign to me and never looked into what indesign was capable of until now.
    I am wondering if the data merge feature would be a good fit for what I am doing. I would be more than happy to share my project files. I am asking for a little bit of hand holding here to expedite this process. Anyone out there willing to take a look and help me out??
    Project Files:
    PDF Sell Sheet created in Illustrator (would like to have the same look and feel but have the data automated in Indesign)
    Excel Data (Looking to reformat the way the data is displayed so that it would work well with Data Merge)

    I don' think data merge will lend itself well to that sort of layout. It's just not sophisticated enough. For datamerge, all the data for each module has to be in one row on your excel sheet. Example: The setup on top will yield the example below. The image has a placeholder in the far left.
    For your example, I think your best bet is to set up table styles. (table styles won't hold column widths, but there is a script that you can use for that: it's referenced in this thread. If you make good use of paragraph styles and table styles, it will still go much more quickly in InDesign.
    http://forums.adobe.com/message/4929669

  • InDesign Server Automation

    I'm looking into purchasing InDesign Server for the document automation features. One feature, Data Merge, would be a tremendous help for our company.
    I'm having some trouble setting it up with a script.
    Here's what I have running, just a basic test.
    var myDocument = app.open(File("C:\\inetpub\\wwwroot\\indesign\\test.indd"));
    with (app.dataMergeOptions) {
    linkImages = true;
    removeBlankLines = false;
    createNewDocument = true;
    documentSize = 100;
    } // (end of dataMergeOptions)
    myDocument.dataMergeProperties.mergeRecords();
    myDocument.exportFile(ExportFormat.PDF_TYPE, File ("c:\\inetpub\\wwwroot\\indesign\\merged.pdf"));
    myDocument.close ();
    In the file I had it linked to a csv that pulled data but it seems the link has been broken (or out of date according to the error).
    Can anyone help me with what I am doing wrong or even provide a better method?
    I am running the script through PHP via SOAP in IIS running on Windows 2008 R2
    InDesign Server CC 2014

    Thank you for your post Loic.Aigon.
    After I stumbled upon this post javascript - InDesign Script: export to IDML - Stack Overflow I found the option dataMergeProperties.selectDataSource(csv file).
    Here's my updated code, sorry for the missing formatting.
    var myDocument = app.open(File("C:\\inetpub\\wwwroot\\indesign\\test.indd"));
    var myDataSource = File("C:\\inetpub\\wwwroot\\indesign\\test.csv");
    with (app.dataMergeOptions) {
    linkImages = true; 
    removeBlankLines = false;
    createNewDocument = true;
    documentSize = 100;
    } // (end of dataMergeOptions)
    myDocument.dataMergeProperties.selectDataSource(myDataSource);
    myDocument.dataMergeProperties.mergeRecords();
    app.activeDocument.exportFile(ExportFormat.PDF_TYPE, File ("/c/inetpub/wwwroot/indesign/merged2.pdf"));
    //myDocument.save(new File("C:\\inetpub\\wwwroot\\indesign\\mergedOutput.idml"));
    myDocument.close ();
    if I run myDocument.exportFile(ExportFormat.PDF_TYPE, File ("/c/inetpub/wwwroot/indesign/merged2.pdf")); then it tries to merge but throws a warning [link manager Link out of date: file: and links the original csv file it was created with (not my referenced data source file).
    I believe I should merge on the active document and not the original document.
    But if I run app.activeDocument.exportFile(ExportFormat.PDF_TYPE, File ("/c/inetpub/wwwroot/indesign/merged2.pdf")); it throws a javascript error, app.activeDocument is undefined.

  • Automating PDF Generation with InDesign

    Is it possible for InDesign to retrieve info from a database, automatically format the data with paragraph style(s) and export hi-res PDF art for each database entry? PDF export to include common art positioned on the master page. If this function is possible with InDesign, how does one accomplish this task?... AppleScript? I don’t speak code, so this could be very intimidating. Recommendations?

    I think you might need an interpreter. I speak code, sure, but very slowly and with a very thick accent.
    Plain vanilla InDesign won't hit a database; there are plugins for that. Catalog plugins, for example; if you're making something catalog-like, that's worth a search or three. If you can get CSV files from your DB, then Data Merge will work for minor automation. Read up on InDesign's XML capabilities if you need something more robust than that; it is extremely useful, and even someone like myself with barely-there software development skills can automate the production of a dictionary with XML spat out of a database.
    In terms of automating the the formatting, XML is another obvious choice, because the working method is to map an XML tag to a style.
    Exporting PDFs automatically is something that can be achieved with scripting, either Apple- or Java-. I don't know off the top of my head how to set it up, but there are quite a few talented scripters reading these forums, and perhaps one of them can nudge you in the right direction. Perhaps you'll see the advantage in actually contracting one of them to develop this for you.
    All that being said, I'd be surprised if there wasn't already a catalog plugin to do exactly what you want. (The last time I said "InDesign can't really do that" it took about fifteen minutes for the forum regulars to post both a plugin and a custom-developed script that basically completely fulfilled the original poster's criteria.)

  • Automating indesign

    Hi,
    I am new to Indesign scripting. I have developed a tool using VB.NET for automating word, for exporting text to a Word document and changing styles in it.
    Similarily, I want to export data to an Indesign Document.
    I want to know, what are the requirements/downloads (sdks/APIs etc.) required to develop a tool for automating Indesign?
    Thank you,
    Surya.

    I don't know how to generate MFC classes of InDesign.
    But I am sure you can control InDesign with a "smart" pointer style.
    (I don't know what is called this "smart" way.)
    // import Type Library
    #import "Resources for Visual Basic.tlb"
    int findPreset( InDesign::_ApplicationPtr& app, const char* presetName, PrinterPresetPtr& preset)
    int rt=-1;
    PrinterPresetsPtr pres = app->PrinterPresets;
    for(long m=1;m<=pres->GetCount();m++){
    PrinterPresetPtr p = pres->Item[m];
    if(p->Name == _bstr_t(presetName) ){
    preset = p;
    rt=0;
    break;
    return rt;
    // inddPath : path of a InDesign document
    // printSet : name of print set
    void printOut( const char* inddPath, const char* printSet )
    do{
    InDesign::_ApplicationPtr app;
    app.CreateInstance( L"InDesign.Application.CS2_J" ); //Japanese version
    InDesign::DocumentPtr doc;
    doc = app->Open( _bstr_t(inddPath), VARIANT_TRUE/*show*/ );
    //fint Preset
    PrinterPresetPtr preset;
    if(findPreset(app,preset)!=0){
    break;
    _variant_t showDialog( true ); // show print dialog?
    _variant_t showGrid( false ); // show grid? only Japanese version???
    doc->PrintOut( showDialog, preset.GetInterfacePtr() , showGrid );
    }while(0);
    Hope this helps.
    -Satoru

Maybe you are looking for

  • TS4001 iCloud bookmark syncing just doesn't work.

    I've tried all of the disconnect, purge, wait and merge scenarios on on this and other web platforms and iCloud still keeps causing my bookmarks to revert to a long obsolete setup from weeks ago. It's clear I'm not the only one with the problem. Anyo

  • Broken Links in iTunes - files have not been moved

    Hi, I'm running iTunes on my XP machine. I have about 10,000 tracks in my library. Every so often (well quite often nowadays) I get a load of tracks that have the exclamation mark next to them saying the file can't be found. I have not moved any of t

  • Accessing the output type data in rv60afzz exit

    Hi All, I want to access the output type data in stored in VNAST table of the program SAPLV61B from the user exit. I am doing this using field symbol. But I am not able to get it . data :it_xnast  like vnast OCCURS 20 WITH HEADER LINE,         it_x1n

  • Regarding billing of stock transfer goods

    Hi Gurus, I am facing problem during billing of stock transferred material in CIN Process. In billing of material in VF01 it shows ZERO Amount. I have configured as per requirement. Thedetal process is as follows 1.Stock Transfer   ME27 2. Delivery  

  • Toolbar & bookmark color to hard to read

    Hi, Is it possible t change the toolbar and bookmark bar from Dark Gray. It's so had to see the bookmarks in the bar....Thanks, Jim