1

I want to automate business card creation. My idea is to setup a simple web page for user to fill, then data will be inserted to *.csv file.

At this point I know I can use Data Merge in InDesign, so my point is to using command line/powershell: open mentioned above *.csv in InDesign, fill personal information in template (from csv file), then export it to pdf - automatically.

My question is: is it possible to achive above goal? Or such complicated tasks in InDesign cannot be executed from cli. Additionally, could you recommend some thirdparty software, that will allow for users to setup business card without my interference?

Thank you!

  • I have the same issue with a client. Lots of employees coming and going, doing business cards every week at random times. I ended up working with an assistant which handles this for me, because the AI software that's supposed learn how to do this is still in startup stage. – Lucian Jul 18 at 9:24
0

Yes. You see the visual basic(VB) application programming interface (API). Is not actually a VB only interface. It would be much better to call it a COM API*. Now every conceivable language that runs on windows has pretty efficient and free COM bridge (except Java).

Now since COM is one of those core components of Microsoft its not terribly surprising that it can be called out of PowerShell, no problem. If you prefer to use c#, python, ruby or you name it it's still not a problem.

There is just one hitch! Technically, your license of inDesign forbids you to do this on a server unattended**. So they have purposely crippled the API so that it has to be run with administrator privileges for full working functionality*** . Also you need to bake in human interaction so no timed/event based jobs, if you want to avoid Adobe skinning your business alive. So, no launching from a web page unless you want to buy InDesign Server. Neither Photoshop nor illustrator have this restriction by the way, both which can also be made to do this.

With that out of our way lets get started.

# warning: Due to licensing restriction running this code on a 
# server untended is a license violation, launching it manually
# is not a problem though.

$ind = New-Object –ComObject InDesign.Application;

$doc = $ind.Open('d:\\temp\\test.indd');

$doc.DataMergeProperties.SelectDataSource('d:\\temp\\data.csv');
$doc.DataMergeProperties.MergeRecords();

# get the merged document
$merged = $ind.ActiveDocument;
$merged.Export(1952403524 ,"d:\\temp\\out.pdf");

Programming in powershell can be a bit clunky as it does not auto-load the constants but c'est la vie. (1952403524 = idPdfType)

On the other hand, you could just use a free XSL-FOP. Which is basically what indesign server is.

* Yeah, Microsoft chooses names so they are ungooglable.

** Because they sell a product called inDesignServer which is just a headless inDesign (for your usecase 12,300$ a year). Getting caught is really nasty as now adobe holds all cards! Make sure you annotate clearly that people do not use this in automated processes if you use this without inDesignServer.

*** Mostly xml stuff. This may be a problem if you have a big organization

  • Well, I'm impressed. This answers all of my questions. Due the lack of inDesignServer license I think I will look for some third party solutions, as this also looks too complicated and risky to be worth trying. Anyway, thank you very much. – JachimRRX Jul 19 at 11:30
0

Since you asked about third party software, here's an idea that doesn't depend on InDesign at all. The feasibility of this however might depend on your client having some basic computing abilities.

If you were to use free open source software instead to create the business card layout, such as Scribus (works on Mac, PC and Linux), then your client could also install that software without any expense or violating any licences. A set of some fairly basic how-to instructions for your clients would probably be enough to guide them on opening a file, editing it and exporting the finished PDF.

The only potential problem I can think of is that they may not have a copy of the fonts you used. But that could easily be fixed by buying the fonts, or using free fonts, or only using fonts commonly installed on most computers.

  • 1
    Thank you, I will definitely take a look at it. – JachimRRX Jul 19 at 11:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.