InDesign in denial or in decline? Then innovate!

At the same time every year when Adobe MAX comes around, I look at the new features in Photoshop and Illustrator and wonder “will the changes in InDesign be as advanced?” and for the last several years, I’m always let down by the new features that InDesign has in comparison to its companion software.

I understand that the engineers can’t implement all suggestions by the users, and when I’ve had a chance to speak to the engineers and developers directly, I’ll give my “top five” requests rather than give my entire laundry list of ideas, fixes etc.

Between 2015 and 2019, I made a point to travel – at my own time and expense – to attend conferences on the other side of the world, where Adobe InDesign’s technicians and decision makers would be in attendance, so that they could hear these suggestions and understand my determination of 24 hours of airline travel to give them my pain-points and ideas.

In defense

To be fair, InDesign has introduced what I would consider ten features since 2018, not counting bug squashing, catching up with operating systems or minor visual tweaks:

  1. 2021 – Capture fonts, color palettes, and shapes from any image, using the new Adobe Capture extension
  2. 2020 – Use HSB values without RGB translation
  3. 2020 – Locate Colors in your document
  4. 2020 – Intelligent subject detection and text wrap
  5. 2020 – Share for Review with text annotations
  6. 2019 – data merge can use semicolon delimiter and now has “use existing” for variable image frame placement
  7. 2019 – SVG Import
  8. 2019 – Column Rules
  9. 2019 – Variable fonts
  10. 2018 – Import comments from PDFs

For transparency, see James Wamser’s full guide of InDesign features.

I also note InDesign’s Uservoice site now incorporates three priority buttons (Not at all; Important; or Critical) so the development team can further focus on immediate needs rather than non-critical wants.

In despair

For the 2021 release of InDesign, I feel the community was disappointed with that it considered to be major features in the release, such as a change of nomenclature that adopted inclusive terminology.

While the change in nomenclature didn’t affect me either way, I understand that users who were offended by the previous terminology would have welcomed the change… though this should be called an improvement rather than a new feature. Unfortunately, that is where the changes to the pages panel ended, and other requested changes to the pages panel hadn’t been implemented, such as:

  • Ability to have vertical facing pages;
  • Facing pages for spiral binding;
  • Applying parent pages to all even or odd pages;
  • Variable parent pages for data merge;

Asides from this, the frustrating part for the community was, at the time of the new features announcement, there were 4062 requests on the InDesign Uservoice, though the three features listed for 2021 shown above were the ones given priority.

In backlog

There are major changes in backlog that have been in the InDesign Uservoice for years such as:

  • Option to split table rows across pages
  • MathML Support
  • Convert PDF to INDD
  • Make text variables/live captions breakable like normal text
  • Improving the various options of footnotes
  • Allow multiple character styles to be applied to characters
  • Actions Panel

These 7 suggestions above have at least 300 votes each.

Inspiration

I’ve been using InDesign for 20 years or so, and came to the conclusion that if I want great features in InDesign, I’ll either have to script them myself, or look to InDesign’s community of users who have written fantastic scripts and have websites full of great scripts that deserve to be in the UI of InDesign itself.

The community features dozens of great scripters, such as:

These scripters (along with many other InDesign scripters too numerous to mention) have written dozens of scripts that should be in all InDesign users toolbox… but many of these scripts were written because the features didn’t exist in InDesign (and still don’t).

In focus

Let’s highlight one area that was once an innovation for InDesign compared to its then main competitor, Quark Xpress: Tables. Let’s look at the tables panel in InDesign while focused on a table.

In contrast, let’s now look at the tables panel within Affinity Publisher while focused on a table.

At first glance, the differences are night and day, but upon closer inspection, InDesign’s panel does have the majority of items that Affinity Publisher’s panel contains, albeit shrunk in size, or represented icons. What InDesign is missing is the ability to easily select the table or cell strokes, something Affinity does quite well.

It’s what comes next – Affinity’s ability to autofit or sort a row or column based on contextual menus in each axis of the table.

If I highlight some cells but only want to merge the highlighted rows, neither application can do this from their panels or contextual menus, but this can be accomplished through scripting. Scripts from both Marc Autret and Dirk Becker accomplish this task, and can be added to the contextual menu (though at the time of writing, Dirk’s site appears to be down).

In fact, many table items in InDesign can be accessible via scripting. The late Thenis de Jong (aka Jongware) wrote a great article about this. Unfortunately, scripting isn’t something that every user can do without some training.

I can improve on both table panels though by using an Elgato Stream Deck: hardware that – in my case – is 15 configurable buttons that can be contextually based.

To save me time setting up the buttons, sideshowfx have an installable InDesign profile for the Stream Deck that has many of the buttons already set up, including features that aren’t in either InDesign or Publisher’s table panels as single click icons, such as select row, insert column, select body rows, etc.

Some “gotchas” with the profile is that it requires using sideshowfx’s keyboard shortcuts, and these may conflict with InDesign’s or users’ already established shortcuts. What is great though is that if the buttons you need aren’t there, Stream Deck allows these to be added, provided a keyboard shortcut to the desired action is added.

Invest in inventors

I note that the Adobe InDesign developers did add a folder in the scripts panel called “Community” where script contributors like myself were encouraged to add scripts to share to the community without charge. While many of the scripts shared by scripters are done so out of philanthropy, the scripts may be there to drive the website traffic of the scripters, perhaps in order to persuade a purchase of one of their paid scripts or software, promote their freelance work, or solicit a donation.  

Bluntly, Adobe InDesign has a team of developers, but scripters are usually sole operators. Speaking for myself, Colecandoo isn’t a team of engineers or developers, I’m it! If the Adobe developers reached out and asked me to include my pro version of the wall planner script to the community tab, I would consider this on a paid commercial basis. Remember, Adobe has a team of developers that could have written a similar feature for InDesign before I did, and they have revenues greater than I’ll ever see.

In Conclusion

InDesign is still the layout software I use on a daily basis, but there are so many innovations that could be made that – in the meantime – have been made by users, third parties or competitors. If the developers are reading this and looking for inspiration, then look no further than:

  • InDesign’s Uservoice site;
  • The InDesign Scripting Community; (i.e. fulfill script requests that haven’t been made; or invest in the inventors who have made scripts the community is using regularly)
  • Other software in the Adobe Creative Cloud; (i.e. look at features that work well in other applications, such as the Actions palette, and port them to InDesign)
  • Competing software; (e.g. the tables feature highlighted in this article)
  • Software innovations in general (e.g. ability to tie into other software using IFTTT or Zapier);

To be, or CSV, that is the delimiter

From time to time I receive emails requesting support for some of the scripts that I offer through the site. Since InDesign began to support semicolon separated text files for data merge, one particular issue began to receive more requests than normal.

The emails were consistent in nature – users had downloaded the data merge single or pro script and ran the script on files they had prepared. Instead of users being able to select from the fields to the left, all of the fields appeared in one line.

This behaviour usually occurs when the script runs a data merge database that had a CSV extension, but was actually separated by semicolons rather than commas. I’d explain this back to the user and ask them to try a different CSV export from Excel, or use my preferred file export of UTF-16 text from Excel.

However, many users who had exported from Excel to CSV said that this did not change the issue and the problem persisted. Usually the problem was that – despite choosing CSV from Excel’s export options, the software was still using semicolons as a delimiter rather than commas. Luckily, exporting to UTF-16 text usually resolved the issue.

On that note, I was uncomfortable with this issue and tried to replicate an Excel export from CSV that would use semicolons as delimiters rather than commas, but I couldn’t replicate this behaviour. But then I stumbled across the following article.

In short, the article says that Excel uses the user’s locale to determine what delimiter to use for CSV files. In short, if you use a comma to separate a dollar value from cents rather than a full-stop, then a CSV will likely export with semicolon delimiters rather than commas.

Adjusting this setting is not so simple, especially for Mac users like me – the adjustment is to change a system preference that uses the appropriate currency format, but that changes lots of other related information, so this isn’t an option.

Ultimately, if you are using the data merge to single record script, and are doing so with data exported from Excel, I highly recommend that you do so with a UTF-16 Unicode Text format.

I’ll admit this was a phenomenon I was unfamiliar with, and somewhat frustrated that a file format that itself stands for comma separated variables – isn’t actually separated by commas but is in fact separated by semicolons… depending on what system locale your computer is set to and that Microsoft Excel obeys.

Highlighting the benefit of GREP… literally

I’m a fan of the GREP feature of the Find/Change dialog box in Adobe InDesign as it allows me to search for patterns of characters within text based on regular expressions.

As handy as this feature is, I always require assistance writing my GREP searches, just in case my patterns are either too greedy; or not greedy enough. For example, I have a GREP search to find duplicate entries and remove them, but in InDesign the only way to know if I have this correct is to press the Find Next button in the search.

A better way to identify if I have my GREP search correct is to see it in real-time. Luckily, text editors such as BB Edit have this feature.

InDesign’s latest rival, Affinity Publisher, not only has its own flavour of GREP, but also shows all results in the Find and Replace dialog box, though I have to click on each result in this dialog to see where they are.

But it would be great if InDesign highlight the GREPs ahead of time like these two applications. The good news is that it can, but it requires the GREP editor script from Peter Kahrel that has been featured on Colecandoo before.

Thanks to Peter’s GREP editor, I’m now able to see that in this example there are three search results and they are all highlighted.

This tool comes in very handy as it assists me to write more complicated GREP searches, such as this one that is looking for time formatting. This lets me know in real-time if my selection is selecting too much information, or not enough – and in this example, it isn’t enough as the times without the minutes aren’t getting selected.

As for longer, more complicated chains of GREP code, there are resources out there that have pre-baked search chains that other users have already submitted to sites such as RegExLib.com or the Treasures of GREP Facebook group.

Stop Press!

After this article was initially published, I was alerted to another InDesign javascript by Kerntiff Publishing System that has a similar behaviour to Affinity Publisher’s search. The script is called GREP Xtra.

There is also an additional script released in 2013 by Roland Dreger that performs as a combination between Peter Kahrel’s script and the InDesign user interface. That script is called Highlight GREP.

Shortcut to rotate in fractions

A colleague of mine recently had a task of inserting lineart scans into an InDesign file and then rotating the images so that they were straight on the page.

During this process, he’d asked:

What’s the shortcut for rotating an image by a fraction of a degree?

While I can remember many of the shortcuts used in InDesign, I couldn’t remember a shortcut for this item, and after consulting my InDesignSecrets shortcut poster I realised that there isn’t one. There is a shortcut to increase the angle from 1 degree to 5, but not smaller increments… which I thought was something that people would have asked for by now.

For the task he was doing, he definitely needed one, otherwise the workflow was:

  1. Select the item to rotate;
  2. Go to the rotate tool;
  3. Type the fraction and click OK
  4. Check the result and if further adjustment was required, click back into the rotate tool and type a new fraction and try again until acceptable.

A shortcut would definitely make this easier.

Tomaxxi to the rescue

Luckily, one was easy to find online. Scripter Marijan Tompa (whom some may know by the name Tomaxxi) wrote an article on how to write such a script.

In my colleague’s case, the script only needed to be adjusted by changing the angle from 45 in Marijan’s example to 0.1 like so:

var myTrans = app.transformationMatrices.add({counterclockwiseRotationAngle:0.1});
var myObj = app.selection[0];
myObj.transform(CoordinateSpaces.pasteboardCoordinates, AnchorPoint.CENTER_ANCHOR, myTrans);

The script was saved as rotateAnticlockwise.jsx and added to the scripts. A second copy was made but this time adjusted from counterclockwise to clockwise like so:

var myTrans = app.transformationMatrices.add({counterRotationAngle:0.1});
var myObj = app.selection[0];
myObj.transform(CoordinateSpaces.pasteboardCoordinates, AnchorPoint.CENTER_ANCHOR, myTrans);<code>

This too was saved as rotateClockwise.jsx. and added to the scripts.

From here, my colleague could then go to the scripts palette and run the scripts as required.

Similarly, my colleague could make sure that scripts was checked from the quick apply menu.

And from here, go to quick apply by pressing Command + Return and typing the first few letters of the script. This choice would stay in the quick apply so need only be done once.

But the title of the article was a shortcut, so shortcuts had to be applied. That is easily done though by going to the Edit Menu and selecting Keyboard Shortcuts.

In the next dialog box, choose Scripts from the Product Area, navigate to the appropriate script, then place the cursor in the New Shortcut text field in the bottom right and press the keys to become the new shortcut. If the type beneath says [unassigned] it means it won’t interfere with other shortcuts, so click Assign. Do the same for both scripts, choosing different shortcuts for both.

Done. My colleague now had his shortcuts and could rotate the images without having to keep moving his cursor to the rotate panel and manually key in entries.

Given the scripts now had their own shortcuts, these were also visible in the scripts panel, just in case my colleague forgot what the shortcuts were.

But importantly because shortcuts were assigned, they could also be hot-keyed to his ergonomic mouse. Similarly, the commands could be hot-keyed to other inputs such as those discussed in a previous article.

On that note, I thought a shortcut like this would exist, given the amount of other shortcuts that allow for nudging/moving in smaller units. What are your thoughts? Let me know in the comments whether this is a specific use-case, or something to be pursued over at the InDesign suggestions.

Export many PDFs at once… plus security

A recent question on Reddit’s InDesign subreddit was whether two PDFs could be exported at the same time from the same document, but have two different properties – one with trims and one without. The answer is yes, but via a custom script written for the task.

I use such a script on a daily basis so that I can prepare a PDF for client proofing via email; and a separate PDF that has trim and crops that is sent directly to a hot-folder that prints it for me.

I’d submitted my script as a solution (that can be downloaded from the scripts page), but then realised that this concept was not a new idea. Ariel Walden over at ID-Extras had already written a similar script within a blog post of his own.

Similarly, Peter Kahrel’s Batch Convert script can perform the same task, with the added advantage that it can also do this for all open InDesign documents;

Or if no documents are open, a specified folder (and subfolders if desired) of InDesign files.

Can’t make these secure

One feature that all three scripts have in common is that the exports are based on the PDF presets available on the user’s machine. One feature that can’t be added to a PDF preset is security – this can only be done when a request to export the document is made, as security settings aren’t saved into PDF presets.

This is a problem if there are lots of documents that need to be exported with security settings as it requires the user to enter the security details each time a PDF is exported.

I’ve made an additional script

For this purpose, I thought I would make a script that not only makes several PDFs, but can also add password security to one version. The script can be downloaded from the scripts page.

When the script is run, it will generate two PDFs using different PDF export settings, but one will have the suffix “_secure” added to the filename, and a dialog box will appear once the export is finished:

Adjustability

The script can also be adjusted by opening the script in any text editing application and making the necessary changes, such as.

Use the same password for every document

Look for the line

    openDocumentPassword = myPassOpen; // requires a password to open the document

and change the myPassOpen to the desired password in quotations. For example:

    openDocumentPassword = "OpenSesame"; // requires a password to open the document

Similarly, do the same thing for the line underneath, making sure that the open password and edit password are not the same.

    changeSecurityPassword = myPassWrite; // requires a password to change the document

change to

    changeSecurityPassword = "EditSesame"; // requires a password to change the document

then search for the lines

dialog.show();
//alert("Done");

and swap the forward slashes in the lines around so that the lines now read like this.

//dialog.show();
alert("Done");

Only require a password to edit the document

Look for the following line:

    openDocumentPassword = myPassOpen; // requires a password to open the document

and add two forward slashes to the start of the line.

//    openDocumentPassword = myPassOpen; // requires a password to open the document

Adding two forward slashes to a line in a javascript tells the script to ignore the rest of the line and go to the next line of code.

Don’t show the “done” message

The default script has a dialog at the end for showing what the opening and editing passwords are, but if you want to edit the script so it makes a PDF that applies security to edit the document but does not provide the password (e.g. for the purpose of handing PDFs over to parties who may seek to deconstruct them in other applications) then make the adjustment mentioned a moment ago to restrict passwording to editing only, and then search for the lines

dialog.show();
//alert("Done");

and swap the forward slashes in the lines around so that the lines now read like this.

//dialog.show();
alert("Done");

Add more PDF exports

Look for the line

app.activeDocument.exportFile(ExportFormat.pdfType, File(resultsFolder + "/" + app.activeDocument.name.split(".indd")[0] + ".pdf"), false, "[High Quality Print]");

make a copy of the line and make the appropriate changes:

  • Replace the “[High Quality Print]” to the desired PDF preset exactly as it is written in the PDF export dialog box and put it in quotes. For example, if your PDF preset is called My Export then type “My Export”
  • Replace the “.pdf” with a suffix that denotes that this is an additional PDF. For example, if the pdf is a high res print, perhaps replace this with “_hi-res.pdf” so that the resulting file has _hi-res.pdf at the end of its filename.

Otherwise if you are after specific changes to the script to suit your needs, contact me via the contact page.

Things to know about the script

Opening and editing passwords must be different

One condition of preparing a secure PDF from Adobe InDesign is that the password required to open the PDF must be different to the password to edit the PDF, so if editing the script to replace the randomly generated password to a known one, the opening and editing passwords must be different. If the passwords are the same, the PDF will be made without security.

PDF Standard in the preset must be set to “None”

PDFs that use a PDFX standards can’t have security applied to them as the security panel of the PDF export box is greyed out, preventing security to be applied. The standards dropdown box in the desired PDF preset must be set to None.

Only password security is applied

When exporting a PDF from InDesign, only password security can be applied, unlike Adobe Acrobat’s choices of security that it can offer (as shown below).

While password security may deter or prevent a layperson from editing the PDF, the security can be broken through some effort. Several websites offer services where users can drag and drop a PDF to the site, and within moments the PDF will have the PDF password removed.

Similarly, there are desktop applications that can also be purchased to remove the security (as one of their many features), such as PDFsam Visual.

When PDFs were edited, not commented

My preferred of proofing artwork to clients is to provide a PDF proof of the artwork from my Adobe InDesign file, along with specific instructions to open the PDF in Adobe Acrobat Reader, and use PDF mark-ups using Adobe Acrobat Reader’s comment feature.

In a perfect world, the markups would be returned from the client looking something like this:

This will allow me to take advantage of InDesign’s “Import PDF Comments” feature:

Or similarly via the Annotations plug-in from DTPTools:

Each method has its own strengths and weaknesses, but the goal is the same – to take the markups from a PDF file directly into InDesign to accept or reject alterations.

Unfortunately, we don’t live in a perfect world, and proofs can come back in a variety of ways:

  • Provided as a series of instructions, usually as bullet points in an email or given over the telephone;
  • Printed out by the client and marked up with a pen. This can be made worse if a red pen isn’t used; the client’s alterations are illegible or uses their own shorthand rather than proofreaders’ marks; or if the hard-copy alts are made into poor-quality digital images by scanning or photographing (or worse, faxing).
  • Submitted to an upload service that allows markups to be made on its platform; but not extracted and able to be imported into InDesign via Import PDF Comments or annotations (e.g. Box and Dropbox)
  • Markups are made, but using software other than Acrobat (e.g. Mac Preview) that have difficulty importing into InDesign’s solution or the plug-in;
  • Markups are made, but using markup tools that allow for subjective opinion (e.g. speech bubbles, arrows, drawing tools) rather than replacement, strikethrough or text addition. Speech bubbles have their place in alterations, but usually to indicate that a larger content change is required, rather than for small type replacements.
  • Markups that are duplicated and effectively “clog” the commenting panel (i.e. using more commenting than is required to take in an alteration such as the example below).
  • Rather than using markups, the client has actually edited the PDF with a PDF editor of some description and made the changes to the PDF itself (as shown below)

Most of these bullet points are a way of life with round-tripping of proofs, but the last point is the most frustrating when taking in alterations as:

  • InDesign or the plug-in literally have no markup instructions to take in, so no alterations appear in their respective alteration panels;
  • It can give the artist a false sense that no alterations were made as no markups are present;
  • If alterations are subtle, it can be difficult to tell where the alterations were made.

I’d like to say this outcome rarely happens, but the reality is that this happens far too often. My first impulse is to contact the client and inform them that the alterations aren’t usable and to use the Comment feature rather than the Edit feature, but that has the following drawbacks:

  • It is likely to frustrate and annoy the client, especially if many alterations were made. This is moreso the case if the client has followed the printer’s instructions to mark up a PDF but has mistakenly misunderstood the difference between the Edit and Comment feature of Acrobat.
  • Even if the client complies, it introduces errors such as alterations missed that were on the previously sent proof. It also takes time to prepare the alterations again, time that may not be available.

To use a card player’s metaphor, we have to play the hand that we are dealt and somehow compare the two files to determine what changes were made. I will also communicate to the client our preferred method of proofing to avoid similar incidents in the future.

But what ways can the two files be compared to take in the alterations?

Visual comparison

This can be done on-screen by either having both applications open between two monitors or one monitor with the windows split. It can also be done in an analog fashion by printing out the original and the latest alterations, then using a light table, overlaying each altered page over each original page and looking for differences. Unfortunately, both methods are time-consuming and subjective.

Visually overlay the PDF into the InDesign file

This involves placing the PDF of the alterations into the InDesign file, but on a layer above the artwork and with a transparency so that an overlay comparison can be made. To do this:

  1. Use the multipageimporter script with the following options to place all PDF pages into the InDesign pages on their own layer above the artwork.
  • Make a new object style with 25% normal opacity as its only property.
  • Use the following script by “Vinny” that will apply the object style to the imported PDF only. (This script works for documents less than 100 pages, but upon testing will throw a javascript error).

With overprint preview turned on, it will now become possible to see alterations that may have been made, and toggling the PDF layer on and off will assist in this process.

However this is still a manual, time-consuming and subjective task.

Kasyan’s comparison script

This is a script created by Kasyan Servetsky based on an article by Mike Rankin at CreativePro.

The technique in the article is used to compare two InDesign files by placing original and altered InDesign files into a temporary document applying different transparency settings to each file, and through the transparency settings being able to identify where alterations were made. This can still be applied in this use-case but an added step of an additional InDesign file that contains a placed PDF of the altered file and comparing between the two files.

Like the previous methods, it is still a time-consuming, manual and subjective task.

Dedicated file comparison software

Software such as Global Vision offers comparison software that loads both the original and altered files and performs a comparison that highlights the differences between the two files. It is worth looking at a video of the software in action.

It isn’t the only software that compares PDFs, and a brief search of the internet will yield several online services that perform similar tasks, such as:

  • Diffchecker
  • PDF Forge’s compare tool
  • Kiwi PDF comparer

That said, naming the sites above is not an endorsement, so if looking for an online option, make sure to perform all appropriate due-diligence before considering any provider.

Compare files in Acrobat itself

Acrobat does have a similar feature from the view menu where both original and altered files are compared between each other.

The results are highlighted, but the report and specific errors are not always as obvious as the results prepared with Global Vision’s software.

Using Acrobat’s compare files data as the PDF markup

There is a technique that can take the comparisons from Acrobat’s Compare files feature and treat them as markups. The technique is as follows:

  1. After the comparison is run, hit the close button on the top right.
  2. Navigate to the first page that has the compare results title page and delete it using Command+Shift+D.
  3. Save the resulting file.

The resulting PDF can then be imported using the Import PDF Comments feature from InDesign

Or by using the Annotations plug-in by DTPTools

Note that the plug-in displays the three changes that were highlighted in the comparison document, but InDesign’s Comment Import only displays two, while acknowledging that there is a third somewhere on the page.

Consider other round-tripping solutions within InDesign

There are several third party solutions available from the Adobe Exchange that allow round-tripping via InDesign such as:

  • GoProof;
  • inMotion;
  • PageProof;
  • ProofMe

The advantage for clients is that rather than opening the proof in Acrobat, clients are directed to a website where alterations can be made. This avoids clients inadvertently editing the PDF and instead allows them to provide changes that will need to be made by the artist.

Having tried some of these proofing systems, one thing in common was that alterations that clients could make was only in the form of comments, rather than strikethroughs or additions that are possible with the PDF commenting tools. These services usually require a log-in system which can be a hurdle, and are usually paid services.

InDesign’s Share for Review

InDesign 2020 and above does contain a feature called Share for Review that works in a similar way to these third party solutions, though the 2021 release allows for text highlighting, strikethrough and additions as well.

Another advantage is that clients no longer require Adobe Acrobat or a PDF reader to open the proofs, only a web browser. Check out Daniel’s video over at Bring Your Own Laptop to see this in more detail, along with other 2021 update features.

It is worth pointing out that this is not Adobe’s first attempt at a proofing solution, with an earlier system called CS Review introduced in May 2010 and then deprecated in April 2012. It is also worth pointing out that Share for Review is a feature offered in InDesign that – at the time of writing – has no comparison from competitors such as Quark Xpress or Affinity Publisher.

So far as my own work goes, this proofing method was not considered when Share for Review was released in June 2020 as the markups were limited to pin and drawing tools. Additionally, the release of the expanded tools happened during a peak-time in our production, and was too difficult to switch clients over from the PDF round-tripping method to this method in such a short space of time. It was also too early to gather other user input about the experience and bugs, so more feedback was required before considering this as a real-world solution.

Now at the time of writing with the expanded tools, I will begin trialling this method and report my findings once I’m confident there is enough to report.

Last word on this article

Up to this point in time, PDF commenting has worked effectively as a round-tripping solution from my perspective in the majority of my work, though it isn’t without its issues such as:

  • Establishing the process with clients, especially with staff turnover as the process needs to be established and explained to ensure that a client will not only mark up a PDF (rather than make changes to the PDF itself), but that the markups are prepared correctly and efficiently;
  • Proofing large file sizes;
  • Proofing to clients who are at the mercy of their IT department’s rules as to what software or websites they can or cannot access;
  • The Adobe Acrobat software itself, considering in a previous version the Acrobat team removed features that most casual users of the software would consider essential (much to my frustration until customer demand made them reinstate it) and how the software will be supported in future releases and for future operating systems.

What have your experiences with PDF comments been? Do you use a similar round-tripping method or something different? And are there any technologies in this space that haven’t been mentioned? Leave your comments below.

Planning your Wall Planner in advance

Between September and December, most of my working days are devoted to preparing school diaries and planners. One pain-point that I encounter with some diaries is the addition of a year-to-two pages planner. The planners usually look like this:

Apart from the events for each day that are on a layer above and updated each year, the base planner itself has two major wholesale changes:

  • The initials for the days of the week; and
  • The shading for weekends.

The initials are usually 365 threaded text frames that sits above a table containing the weekend shading. The text frames contain the initials of the days of the week, corresponding to the month and day they relate to, so changing the initials is easy. However, shading the cells containing Saturdays and Sundays on the table below takes time. Even if cell styles were used, they still have to be removed from the previous year’s appearance and applied to the appropriate year’s cells – subject to operator error.

Ideally, I was after a solution that would:

  • Easily update all planner base dates in one go
  • Shade all of the weekends without having to do this manually
  • Adjust automatically for leap years
  • Reduce any mis-dating via operator error

Didn’t I already write a script for this?

In 2018, I’d prepared a script to assist in the creation of wall planners that would allow for four types of layout configuration; and in 2020 was further improved to allow an output in one of 14 languages.

That said, this article isn’t meant to be a shameless plug of this script. The script is a great solution for creating new yearly planners. However, this solution requires updating existing planners. An additional solution had to be created.

The simple solution first

As I mentioned earlier, linked text frames that contain the appropriate days of the week initials. However, rather than use one paragraph style for these initials, each day of the week was given its own paragraph style e.g. Monday, Tuesday, etc.

The paragraph styles are based upon a base style that defines its basic appearance, with flourishes added to Saturday and Sunday in the form of paragraph shading. Each paragraph starts in its own text frame, and each paragraph style also refers to a next style feature to go to the next day’s style.

The days of the week are easy enough to prepare. The first way is quick but allows for operator error, and that is to type the 7 initials and their respective line breaks; and copying them 52 times, starting January 1st on the appropriate day.

The second (and more accurate way) is to make a new Excel file, type the start date in cell A1 and then with the cell selected, go to Fill, Series, and fill out the dialog box as shown

Once done, go to cell B1 and type: =CHOOSE(WEEKDAY(A1), “S”, “M”, “T”, “W”, “T”, “F”, “S”) and press return.

In the resulting cell, double-click the green square on the bottom right corner of cell B1 to automatically fill the remaining entries in the column.

From here, select column B, copy and paste it into the threaded text frames in InDesign.

Note – if it came in as a table, make sure to briefly change InDesign’s clipboard handling preferences to handle text and tables from other applications as text only.

Last thing to do is apply the paragraph styles. Take note of what day’s initial appears on January 1 (Friday in this case) and with the text cursor still visible in the text frame, select all type (Command A). From the paragraph styles panel, right click on the Friday paragraph style and choose Apply “Friday” then Next Style.

But this solution only fills two of the four criteria:

  • Easily update a planner dates in one go
  • Shade all of the weekends without having to do this manually
  • Adjust automatically for leap years
  • Reduce any mis-dating via operator error

This solution does not take February 29 in leap years into account. In these instances, an extra text frame needs to be threaded to take in February 29, so is not completely automatic.

The over-engineered solution

I did prepare a solution outside of work hours that would meet all four criteria; but the setup of the file took more time than simply adjusting the previous planner. It would also be difficult for other operators unfamiliar with my techniques to carry out the alterations unless they were trained beforehand. Ultimately, the solution wasn’t practical for my day-to-day work and was never implemented, but it is worth looking at the solution as it uses a variety of InDesign’s features such as:

  • GREP styles
  • Table and Cell styles
  • Rule above within Paragraph styles
  • Linking to an Excel file

Both the InDesign file and Excel file can be downloaded here.

First thing is to create an XLS file that contains the yearly information that changes and link it in InDesign. Linking to an excel file can be done via InDesign’s preferences.

Linking to an XLS file can be fiddly and I’ve found the best way to maintain appearances of linked tables that are updated is to make sure that table and cell styles are applied to the table that will contain the incoming XLS data.

A glimpse at the XLS file shows that it contains the initials of the appropriate days of the week. Note that the initial letter is represented by two letters rather than one (which will be explained shortly). The year is off to the right-hand side for ease of updating the planner by just adjusting the year.

An even closer look at the XLS file shows hidden columns. If we unhide these columns, the workings behind the technique are revealed. To compensate for leap years, the calculation for February 29 has an if-else statement that says if a date appears here, add the appropriate weekday initial, but if there is nothing, leave it blank.

Back in the InDesign file, all cells contain a paragraph style that have a GREP style instruction that makes the first letter minuscule in size and width.

Why two letters for the days of the week and not one?

It is to do with how the shading of the cell is automated. The first letter is used to identify a weekend with the initial S and that letter is colorised with an appropriate color for the weekend. If the letter was a weekday, the first letter is set to none. To control the background color of the cell, the rule above feature of the paragraph style is used as it allows the [Text Color] option to be selected, and this color is the first character that the paragraph style encounters. The rule above is then made thick enough to fill the cell, and then the offsets are applied to fill the remaining parts of the cell.

Why not use the paragraph shading feature? Unfortunately, this feature does not have access to the [Text Color] option from the color dropdown.

Updating the data can present a trap, as instead of simply changing the date in excel and updating the file, the art needs to be relinked and then selected with the show import options dialog to only bring in specific cells, as the date at the far right isn’t required. In this instance, it is changing the cell range from A1:AA32 toA1:Y32 as shown:

So this will make the base for the planner, and all the further information into the particular dates is done on a layer above using a table with the same cell dimensions.

As mentioned, this is an over-engineered solution that wasn’t implemented, but its use of combining linked Excel files, GREP styles and Cell styles may have application for other purposes.

Adding other languages to the Colecandoo scripts

As this site has become more widely known around the world, the issue of localization has been raised. The scripts I’ve written are based on my initial use as an English speaker with the International English version of Adobe InDesign. That’s fine for myself and other anglophones, but there are also times when scripts that are run on different language versions of Adobe InDesign:

  • Have an English user interface or output; or
  • Didn’t work because the script relied on coding that required a code reference based on the English language version of Adobe InDesign.

To this end, I’ve rectified issues concerning non-functioning scripts based on coding issues. However, translating the scripts into other languages is a task that I cannot undertake on my own as I do not speak other languages besides English, and would never solely rely on automatic translation software or services such as Google Translate.

I’m also aware that some of the scripts on this site gain more traction from countries where English is not the first spoken language, such as the following videos:

Though recently, the stars have somewhat aligned. I was approached to update my wall-planner script so that it could contain German and French user interfaces and outputs. With the assistance from the requester, as well as further assistance that has expanded this to Portuguese as well, this script has been updated.

In addition, the script can provide a wall planner in one of fourteen languages:

  • English
  • dansk
  • deutsch
  • español
  • ελληνικά
  • français
  • italiano
  • Nederlands
  • norsk
  • polski
  • português
  • Русский
  • suomi
  • svenska

The updated script can be found on the scripts page. Ultimately, I would like to update this – and other scripts on this site that contain user interfaces or outputs – to feature other languages besides English. If this is of interest to you, please contact me via my contact page.

Data Merge to Single Records Pro: Now Available

Since 2016, Colecandoo has provided the free version of the Data Merge to Single Records script for Adobe InDesign – a script that allows single records to be exported from Data Merge with unique filenames available from the Data Merge database itself. This improves Adobe InDesign’s default – naming each file Untitled-N and is only available for InDesign files, not PDFs.

On that note, the PRO version of this script is now available!

This script improves upon the free original by:

  • Exporting to various additional file formats, such as interactive PDF, EPS, PNG, JPG, direct to print, or PDF via InDesign first;
  • Add a primary key to either the start or the end of a filename;
  • When exporting to certain file formats – the ability to run a user-selected additional script before the export.

The script can be purchased for A$15 from the Buy Now button below.


The original Data Merge to Single Records script offered by Colecandoo remains free and can be downloaded from the scripts page.

Referencing pages of a multi-page PDF file during data merge… workaround

At the time of writing, there are three multi-page/artboard file formats that Adobe InDesign can import when placing a file via the File/Place function. These formats are:

  • PDF
  • Adobe Illustrator
  • Adobe InDesign

(While it is possible to create many artboards in Adobe Photoshop, it is not possible to import a specific Photoshop artboard into Adobe InDesign… – at the time of writing that is – but that is another article!)

When placing one of these three formats, it is possible to control several import functions using the show import dialog box, such as:

  • Which page (or pages) to import;
  • How the pages should be cropped;
  • Whether or not to place the pages with a transparent background; and
  • What layers to show and their visibility;

However, when importing these file types as variable images during a data merge, these options are unavailable and replaced with the following:

  • Only the first absolute page of the file is imported (not always the page numbered 1 as the first page can also be – for example – in roman numerals or start at a page other than one); and
  • Page cropping, transparency and layer visibility is determined by the same variables as the last file of that type to be placed into the artwork.

For now, there is no workaround to control the latter issues during a data merge, other than to be familiar with this behaviour and plan the merge accordingly. There is a workaround for importing pages beyond the first page of a PDF file… but not an Illustrator or InDesign file.

Workaround: Split the PDF

The term “workaround” is used loosely in this context. Unfortunately, the solution is to break the PDFs into single page records. This can be done within Acrobat using the split button from the organise pages panel.

This feature also allows multiple files to be split at once.

By default, the resulting files will maintain the same filename with the addition of _Partx prior to the filename, with x representing the absolute page number.

Otherwise, I’ve prepared an action that you can download here that will save the PDFs to the Documents folder of the machine running the action.

(Yes, I’m also aware that there are quite literally hundreds of websites out there that will split multi-page PDFs to single PDFs for free. However, the methods outlined above will do so without involving a third party).

The next part of the workaround involves the data itself, and I’ll be using Microsoft Excel to create formulas to make the numbering for the resulting pages. All variable images being referenced will also be in the same folder as the data file, meaning only the filename is required and not the full path and the filename.

For data where the page number is known

Add a column to the database that references the absolute PDF page number that needs to be imported.

Absolute vs Section numbers abridged:

Absolute numbers refers to a page number based on the total count of pages in the document, while section numbers refers to the page number that was applied using page numbering in the application that made the PDF.

For example, take a PDF that contains 20 pages with the first six pages being in roman numerals, and the remainder being in decimal numbers. These two different styles of numbering are section numbers, while absolute page numbers refer to the total count of pages. To reference page iv of the PDF, the absolute page number to reference is 4. To reference page 5 of the PDF, the absolute page number reference is 11.

In this example, the A column represents the PDF to reference, the B column represents the absolute page number, and C represents the result. To obtain this result, the following formula can be used:

=SUBSTITUTE(A2,".PDF","_Part"&B2&".pdf")

This formula will look at filename reference and substitute the .PDF portion of the filename for _Partx.pdf, where x represents the figure in the B column. Using this formula, only filenames with the PDF extension will be affected, while filenames in other formats will be unaffected.

For data where the page reference needs to increment by one more than the row above

The same formula can be used for the naming, but another formula is used to determine if the page reference should increase if the same base file is being referenced in the row directly above.

In this example, the N column represents the PDF to reference, the O column represents the absolute page number, and P represents the result. A 24 page file NS91912 is being merged and needs to have the page reference incremented by one so that the filenames are NS91912_Part1.pdf to NS91912_Part24.pdf. The following formula can be used to change the page reference:

=IF(N2=N1,O1+1,1)

This formula will look at the filename and determine that if the filename is different to the row above, put the number 1 in the cell, BUT if the filename is the same as the row above, take the page value from the cell above and add 1 to it into this cell.

In a perfect world

Again, this is a workaround – it will only work for PDFs and requires some upfront work to prepare. Ideally, if I had my way and could implement some improvements, I’d like to see:

  • Not just the ability to choose a specific page, but choose the correct trim box and layers as well. For example, a file reference such as myFile.pdf;1,trim;Layer1,Layer2 where 1 represents the absolute page number, trim represents what trim box to use, and Layer1,Layer2 represent the layers I would like to appear (or leave the layer bit blank if all layers should be visible).
  • The ability to perform a similar task for incoming INDD, AI or PSD files.

Add a “Night” mode to InDesign

In the same way that different political or religious views can polarise a group of people, so can one specific InDesign feature: Light or Dark interface.

Introduced into InDesign CC in 2013, this change brought InDesign in line with other Creative Cloud products that had a dark interface. That said, I was not a fan and chose to remain a user of the light interface.

Many years later and Apple released the macOS Mojave with its Dynamic Desktop and Dark mode. The Dynamic Desktop feature shows a bright desktop during daylight hours and a dark desktop during the dark hours. In addition, popular apps also followed suit allowing users to switch from the usual view to a “night mode”.

In addition, I have found myself working late into the night on projects, and have found that a darker interface during these hours is easier on my eyes. That said, I still like to use a light interface when working in daylight hours.

With this in mind, I wondered if it was possible to create an InDesign startup script that – upon performing a common task such as opening a file – would check the time of day and if it was beyond a certain time of the day, would invoke the dark interface… and it was.

I’ve now added this script to the site and it can be downloaded from here or the scripts/download pages. As this is a startup script, it has to be added to the Startup Scripts folder (see Ole Kvern’s excellent instructions for doing so here).

The script can also be modified to suit by going into any text editor such as textedit or notepad and editing the following lines of the script:

if (hours <= 7 || hours >= 18)

This indicates the hours of the day. In the script, 7 = 7:00 am, and 18 = 6:00 pm.

app.generalPreferences.uiBrightnessPreference = 0.0;

This refers to how dark the interface should be. 0.0 is totally dark, 1.0 is bright, but values from 0.1-0.9 can be used as well.

app.generalPreferences.pasteboardColorPreference = 1; 

This refers to the color of the pasteboard. The number 1 will match the pasteboard color to the interface, whereas 0 will leave the pasteboard white.

So technically it’s not a night-mode per se, but for those who like the light interface until the night-time hours, this script may be something to consider.

Add date selectors to date fields in interactive PDF

A feature of Acrobat DC that can be quite handy is the prepare form feature. It allows a scan (or a document with no form-field elements) to have form-field elements applied to it, so long as the formatting of the artwork follows the practices listed in this document.

However, there is an improvement that I feel could be made to this feature, but may have been missed by the Acrobat team, and that is date fields. Take the following example:

Now run the Prepare Form feature of Adobe Acrobat DC Professional:

The signature is picked up OK, but the date field is just a text field.

After doing a little digging online, I found that changing the name of the Date field to something like Date_af_date (the importance being the _af_date text) and this will change it to a date field;

But it doesn’t truly act like a date field. If I close out of preview mode and tab to the text field, it behaves like a regular text field.

It isn’t until the format category is changed to date that the field behaves like a date field with a date picker.

So that’s fine to edit one field, but if there are lots of date fields to edit, or this is a regular task, it can be time consuming. Ultimately, I’d like Acrobat’s prepare form feature to detect the date fields just like other fields like text inputs and signature fields are auto detected.

Until that happens, I’ve created an Acrobat action that will run not just the prepare form feature, but also a javascript that will find any of the resulting fields that have the word Date (case-sensitive) in them and make them selectable date fields. That action can be downloaded here.

To change the date format, open up the Acrobat action and change the following line in the script:

The number in brackets can be changed from 5 to a value between 0-13 that represents a format as shown below:

0: m/d
1: m/d/yy
2: mm/dd/yy
3: mm/yy
4: d-mmm
5: d-mmm-yy
6: dd-mmm-yy
7: yy-mm-dd
8: mmm-yy
9: mmmm-yy
10: mmm d, yyyy
11: mmmm d, yyyy
12: m/d/yy h:MM tt
13: m/d/yy HH:MM

In the meantime, if you would like the Acrobat team to update the prepare form feature so that date fields are automatically detected, I’ve added it to the Acrobat Uservoice wishlist.

%d bloggers like this: