1 · Getting started
What the panel is for, what it needs, and how to open it.
Data Merge Plus does the job of InDesign's own Data Merge, but it does not stop when the merged document is made. The values you place keep a link back to the row they came from, so the panel can tell you at any moment which price is out of date, which text somebody has retyped by hand in InDesign, and which article has fallen out of the spreadsheet altogether.
You work with two things: a data file (the spreadsheet) and a template (your InDesign document with the places to fill marked in it). The panel sits between them.
What you need
| Item | Requirement |
|---|---|
| InDesign | Version 18.5 or newer (developed against 21.5). |
| Data file | XLSX, XLS or CSV. It must have a header row and a column whose values are unique — the key. |
| Pictures | Ordinary image files on disk. Pictures pasted inside the spreadsheet cannot be read — see Pictures. |
| Rights | Nothing special. The panel writes only into the document you have open and into its own cache folder next to the data file. |
Installing
- Double-click the
.ccxfile you were given. Creative Cloud installs the panel. - Restart InDesign if it was running.
- Open the panel: menu Window › Extensions › Data Merge Plus.
Dock it where you like. The panel is happiest wide — it is a spreadsheet, and the more columns you can see, the less you scroll.
All the settings, and every link between a value in the document and a row in the spreadsheet, are stored inside the InDesign document itself. Send the file to a colleague, open it on another machine — the links are still there. There is no separate database to keep or to lose.
2 · The panel
One trip around the window. Everything here comes back later in detail.
- Data source — which spreadsheet the grid is showing. A document can hold several.
- Six buttons — add a source, remove it, check for changes now, Field Mapping, Settings, and ⋯ which holds everything else.
- Search and filter — type to find a row; the dropdown narrows the list to placed, changed, edited or missing rows. The red dot means something is out of sync.
- Preview — fills the template with one record so you can look at it. The arrows step through the records.
- Check and Merge… — builds the merged document.
- Column headings — click to sort, drag the right edge to resize, double-click the edge to fit the column to its longest value, double-click the heading to write that placeholder into the document. The number in brackets is how many values of that column are placed. A value cut off at the edge of its cell shows whole when the mouse rests on it.
- The cells — the spreadsheet itself, in colour. Right-click any cell for the menu of things you can do with it.
- The line under the grid — what the selected cell holds, what is in the document, and what state it is in, in plain words.
- The buttons — Place, insert a placeholder, Update, Update All, Go to.
- Status line — how many rows and placed fields, how many are out of sync, when the file was last checked and last saved.
Two views: placeholders and data
There are two tabs above the grid. Placeholders is one line per column — what it is called, what kind it is and whether its placeholder is in the document yet — and it is the view you build a template in. Data is the spreadsheet itself with the state colours, for when values are placed. A document with nothing placed opens on Placeholders, a document with placed values opens on Data, and once you pick a tab yourself the panel leaves it alone. The next section is all about the first of the two.
InDesign panels usually have a menu behind the ≡ icon in the top right corner. Not every InDesign shows it, so everything in it is also under the ⋯ button in the panel itself — Import, Field Mapping, Create Merged Document, the overviews, Settings, Diagnostics. You never need the flyout.
3 · The Placeholders view
The list of what the template can hold, and whether it holds it yet. This is where a template is built.
A price list with eight thousand rows says nothing useful about a template with nine spots in it. So while nothing is placed, the panel shows the columns rather than the rows: one line each, with the placeholder to write into the document and how many of them are already there. Work down the list, and when every line is green the template is finished.
- The two tabs — Placeholders while you build, Data once there is something placed.
- Placeholder — exactly what goes into the document for that column. A picture and a QR code
carry the at sign,
<<@Photo>>, because a whole frame holds them. - In the document — how many spots that column has: the
<< >>in the text, frames marked with it, frames named after the column. A frame that is marked counts once, however many ways it shows it. - The menu — right-click a line for everything you can do with that column.
Making the columns wider
Drag the right edge of Column, Kind or Placeholder in the heading; a line lights up where you can grab it. In the document takes whatever room is left, so the list never has to scroll sideways. A double-click on an edge fits that column to its longest text. The widths are remembered, and the Data view works the same way.
Writing a placeholder into the document
- Click into the text in the document where it should go — or select the frame that should hold the whole value, which is what a picture or a QR code needs.
- Double-click the line in the panel.
The placeholder is written in and the line goes green. It is the same as pressing << >> with that column selected, and the same as double-clicking a column heading in the Data view. One press of Ctrl+Z (Cmd+Z) takes it back.
The menu on a line
| Entry | What it does |
|---|---|
| Paste placeholder | Writes <<Column>> at the text cursor. The same as a double-click. |
| Select placeholder in the document | Finds the one that is already there and selects it — the text of it, or the whole frame when a frame is the placeholder. Choose it again and the panel walks to the next one, so a column used in five places can be checked in five clicks. |
| Mark the selected frame | Makes the frame you have selected in the document the placeholder of this column — for pictures, QR codes and frames that hold one value. |
| Format… / Kind | The number, date or price format of the column, and whether it is text, a picture or a QR code — the same settings as in Field Mapping, on the column you right-clicked. |
| Show only when… | Gives the frames you have selected a condition, starting with this column already chosen. See Fields on condition. |
| Field Mapping… | Opens the whole table of columns. |
Green in this view is not the green of the Data view. Here it means the template has a spot for that column; there it means a value is placed and matches the file. A line with a dash has no spot yet — and that is the whole to-do list for the template.
4 · Your first price tag
Ten minutes, from a spreadsheet to a merged document. Do this once and the rest of the manual will read itself.
What you will build
A price tag: code, name, price, and a photo. Five records, five tags on a page.
Step 1 — the spreadsheet
Make an XLSX with a header row and one row per article:
| Code | Name | Price | Was | Photo |
|---|---|---|---|---|
| 1001 | Milk 1.5% 1 l | 19,90 | 24,90 | 1001 |
| 1002 | Butter 250 g | 39,90 | 59,90 | 1002 |
Code will be the key — the column whose values never repeat. That is what ties a value in the document to a row in the file, so it has to be unique.
Step 2 — import it
- Open your InDesign document.
- In the panel press + (or ⋯ › Import Data Source…).
- Pick the file. The dialog shows you the sheet, the first rows and the columns.
- Set Key column to
Code. - Press Import. The grid fills with your rows. Import and Map… does the same and opens Field Mapping straight away, to set the format, the kind and the styles of each column.
Step 3 — mark the template
Draw a text frame and type the placeholders into it, one per line. You can type them by hand, or put the text cursor where you want one and double-click the column heading in the panel:
<<Code>>
<<Name>>
<<Price>>
For the photo, draw an empty picture frame, select it, click the Photo column in
the panel and press << >>. The frame is now named <<@Photo>>
in the Layers panel, so you can see it is ready.
Step 4 — try one record
Tick Preview. The first record shows on the page, laid over the template; the arrows step through the others. Untick it and the template is back. Nothing is linked yet — this is only a look.
Step 5 — build the merged document
- Press Check and Merge…
- Records to merge: All records.
- Records per page: Multiple records per page. Leave Columns and Rows at 0 and the panel fits as many as the page takes; tick Preview on the page to see the result on the page before anything is made.
- Save as: choose a file name.
- Create. The merged document opens with every record in its slot.
A merged document whose fields are still linked to the spreadsheet. Change a price in Excel, save, and within ten seconds the cell turns red in the panel. Press Update All and the document follows. That is the part Data Merge cannot do.
5 · Importing data
What the import asks for, why it sometimes refuses, and how to make a messy spreadsheet usable in one click.
The two conditions
Only two things are required of a data file, and the import will not go on without them:
| Condition | Why |
|---|---|
| A header row | The names in it become the placeholders. Without names there is nothing to write into the document. |
| A unique key | Every placed value remembers which row it came from. If two rows share a key, the panel cannot tell them apart. An article number, an EAN, a code. |
The import dialog
| Control | What it does |
|---|---|
| (file name) | The file being imported, at the top. It is picked before the dialog opens — with +, or with Re-import — so there is nothing to type; the source takes its name. |
| Sheet | Which sheet of the workbook to read. |
| Header row | Which line holds the column names. Set it to 3 if the file starts with a title and an empty line. |
| Key column | The unique column. Several can be ticked — the key is then made of all of them together (article + position, for example). |
| Values | As displayed in Excel takes the number the way Excel shows it (1 299,90). Raw values takes the bare number (1299.9) for the panel's own formats to work with. |
| Numbers | Czech (1 299,90) or as the file writes them (1,299.90). Excel stores only the format code and Windows draws the comma, so the panel does the same. |
| Delimiter, Encoding | CSV and text files only. Auto-detect usually gets it right; set them by hand when it does not. |
| Text qualifier | CSV and text files only. The character a value is wrapped in when it contains the delimiter or a line break itself — "Apples; red" in a file split by semicolons is one value, not two. Inside such a value a doubled qualifier stands for the character itself: "24"" screen" reads as 24" screen. Double quote is the standard; choose None for a file that uses quotes as ordinary characters. |
| Import and Map… | Imports, then opens Field Mapping for the new source, so the columns can be set up with the data in front of you. |
| Preview | All the rows, with the problem ones in red. Columns can be resized and scrolled sideways. |
When the import refuses
It never just says "error". The dialog lists every problem in plain words, with the Excel line numbers, and offers the fixes as buttons:
| Problem | Offered fix |
|---|---|
| The key repeats | Keep the first of the duplicates · number them (1001, 1001-2) · skip them · combine the key from another column. The panel also suggests a column that would make the key unique. |
| The key is empty | Skip those rows. |
| A column has no name | Name them automatically (Column D). |
| Two columns share a name | Number them (Price, Price (2)). |
| The header row is wrong | Use another row as the header. |
| Several at once | Skip problem rows and import the rest takes everything usable in one click. |
If every row would be skipped, the import stops and says so, rather than leaving you with an empty grid.
Texts that mean "empty"
Exports and pivot tables often write (blank) or (empty) into a cell that
should be empty. Those count as empty. The list is in the import dialog, Treat as empty, and can be
extended — a pivot table in another language writes its own word, so add that one.
Several data sources in one document
Press + again to add another file — a leaflet can have one source for the front page and another for the inside. The dropdown at the top switches between them, and each keeps its own mapping and formats. – removes a source from the document, and its links with it.
Re-importing and checking
- ↻ reads the file again right now.
- The panel also checks on its own every ten seconds (adjustable in Settings). A changed file is recognised by its contents, not only by its time stamp, because InDesign's file access can report the time late.
- ⋯ › Re-import Data Source… asks for the file first — the same one again, or next week's file in its place — and opens the import dialog with the settings of this source, for when the structure of the file has changed and not just the values. A source named after its old file takes the new name.
6 · Marking the template
Four ways to say "this is where the price goes". Use whichever suits the job; they can be mixed in one document.
1 · Placeholders in the text
Type <<Price>> where the value belongs. This is the way Data Merge works and
the way Create Merged Document expects, so it is the safest choice for a template that will be
merged.
Three ways to get one into the document without typing:
- Put the text cursor where it goes, click the column in the grid, press << >>.
- Double-click the column heading — the placeholder lands at the cursor.
- ⋯ › Insert Placeholders for All Columns writes them all at once, one per line, to build a template quickly.
The name between the angle brackets is the placeholder name of the column, which you can
change in Field Mapping — handy when the spreadsheet column is called
ArtNr_2024_final and you want <<Code>> in the document.
2 · The plain column name
A frame that simply contains the word Price also counts, as long as a column of that
name exists. Useful for templates somebody else built without any placeholders. Matching ignores
case, spaces and underscores, so art nr finds the column Art_Nr.
3 · A frame named after the column
Name the frame in the Layers panel after the column. The text inside is then irrelevant — the whole frame is filled. Good for tidy templates where every frame has a name anyway.
4 · A whole frame marked with << >>
Select a frame, click the column in the grid, press << >>. The frame is marked as
that column's placeholder: a text frame that holds one value shows <<Name>>,
and a picture or QR frame is named <<@Photo>> (with the at sign). The frame
is renamed in the Layers panel too, so you can see what is prepared.
A picture frame stays a picture frame when it is marked — it is not turned into anything. The mark
is its label and its name in the Layers panel, <<@Photo>>, and that is all
the panel needs to find it.
The placeholders InDesign's Data Merge panel writes are the same <<Field>>
text, so Data Merge Plus recognises a template built that way. But the two must not run on the same
document. Once InDesign's Data Merge has a data source selected, it keeps invisible markers of its own
around its fields — at the very places Data Merge Plus writes its values — and editing those values
then goes wrong: deleting leaves characters behind (80 l became 8l) and
values stop lining up with their links. Before you import the file here, open InDesign's
Window › Utilities › Data Merge panel and choose Remove Data Source from its menu.
Find/Change keeps its switches in InDesign, not in the document, and they start switched off — so a placeholder on a hidden layer, on a locked layer or on a master page used not to be found at all. The panel now asks for all of them on every search, so where a placeholder sits no longer matters.
⋯ › Check the Template… lists everything the panel can find — placeholders, plain column
names, marked frames, frames named after a column and conditions — with the page each is on and a
red mark for a name that matches no column. Two minutes here saves a merged document full of
<<Prcie>>.
7 · Placing values
Five ways to get data into the document, from one cell to a whole page of price tags.
A placeholder, not a value
Two things look alike and are not. Placing writes the value of one row into the document and links it. Writing a placeholder prepares the spot so that every row can go through it later. A double-click — on a line in the Placeholders view, on a column heading in the Data view, or on any cell of that column — writes the placeholder, and the line or the cell goes green to say the template now has that spot. To place a value, use Place.
One value at the text cursor
- Click in the text where the value should go.
- Click the cell in the grid.
- Press Place.
The text is written and linked, and the cell turns green.
A whole record into a frame
- Select the frame, several frames, or a group.
- Click any cell of the row you want.
- Press Place.
Every placeholder inside is filled from that row, and all four ways of marking are searched. The panel then says how many frames have text that no longer fits.
A picture or a QR code
Select the frame, click a cell of an image or QR column, press Place. A frame you marked as a placeholder is turned into a picture frame automatically; it does not have to be a picture frame already.
Several slots at once
A page of price tags, filled in one go:
- Select all the slots — frames or groups, in any order.
- Click the row you want to start from.
- ⋯ › Fill Selected Frames From This Row…
The slots are filled with consecutive rows in reading order: page by page, top to bottom, left to right. The panel says how many slots and how many rows it is about to use and waits for your yes. Nothing has to be named or prepared.
Every placed value keeps an invisible anchor in the text, or a label on the frame, and the document keeps a table of what that anchor stands for: which source, which row, which column, and the value as it was written. That is what lets the panel notice later that the spreadsheet says something else — or that somebody has retyped the price by hand on the page.
8 · Colours and states
The grid is a report. Five colours and you know where you stand.
- Green — in sync. The document holds exactly what the file says.
- Red — changed in the data file. Somebody edited the spreadsheet; the document is behind.
- Orange — edited in InDesign. The text in the document no longer matches what was placed. Usually a manual correction on the page.
- Purple — the row is gone. It is placed in the document but no longer in the file.
- Grey — not placed. The value is in the file but nowhere in the document.
- Yellow edge — locked. Update leaves this field alone.
Rows that are placed but missing from the file are listed first, not buried at the end, because they are the ones that will embarrass you in print.
Reading one cell
Click a cell and the line under the grid spells it out: the column and the key, what the file says, what the document holds, and the state in words. When a value is placed in several spots, it says how many.
Finding what matters
| Control | What it does |
|---|---|
| Search | Finds rows containing the text, in any column. |
| Status filter | Shows only placed, not placed, changed, edited, missing, or everything out of sync. |
| The red dot | Next to the filter. It appears when something is out of sync; click it to jump straight to those rows. |
| Column heading | Click to sort, click again to reverse. The number in brackets is how many values of that column are placed in the document. |
| Go to | Jumps to the place in the document where the selected cell is used, and to the next one if it is used more than once. The view moves to it the way Find/Change does — a value on another page or scrolled out of sight is brought into the middle of the window and selected, and the zoom stays as it was. |
| Column width | Drag the right edge of a heading; double-click the edge to fit the column to its longest value. Widths are remembered, also for next week's file with the same columns. |
The cell you have selected keeps its colour and gets a violet line round it, so you can tell it apart whatever state it is in.
9 · Keeping it in sync
Update, locks, unlinking, and what to do when a key changes.
Update and Update All
- Update rewrites the selected cells from the data file.
- Update All rewrites everything that is out of sync, as a single undo step. It asks first, unless you turn that off in Settings.
Both keep the character style of the field, and both leave locked fields alone. Update also looks through the document first for frames copied a moment ago, so they are updated with the original (see Settings).
Locking a field
Right-click a cell › Lock (never update this). The cell gets a yellow edge and neither Update nor Update All touches it. Use it for the one price the client wants worded differently, so an automatic update cannot undo the correction. Unlock it the same way.
Unlinking
Right-click a cell › Unlink (keep the text) removes the link but leaves the text in the document. Unlink the whole row does it for every field of that record. Use it when a page is finished and should stop following the data.
When the key changes in the file
If an article number changes, the old row disappears (purple) and a new one appears. The panel notices when the new row carries the same values as the lost one and offers Relink: the fields in the document are moved over to the new key, and everything stays in place.
How often it looks
Every ten seconds by default; the interval is in Settings and automatic checking can be switched off entirely. ↻ checks right now. Excel only writes to disk when the file is saved, so the panel cannot see a change until your colleague presses save — the status line shows when the file was last saved, so you can tell whether you are looking at fresh data.
10 · Field Mapping
One row per column of your spreadsheet. This is where you say what each column is and how it should look.
Open it with the Map button, or ⋯ › Field Mapping…
| Column in the dialog | What it is for |
|---|---|
| Show | Untick to hide the column from the grid. It stays in the data and can still be placed; it just stops taking up room. |
| Column | The name as it is in the spreadsheet. The key column is marked. |
| Placeholder | The name used in the document, between the angle brackets. Change it to something short and typeable. |
| Type | Text · Image (the cell holds a file name, a code or a path) · QR code (the panel draws the code itself). |
| Format / file name | For a text column, the format profile. For an image column, the file-name pattern. For a QR column, the ink and the Content… button. |
| Paragraph style | A paragraph style given to the paragraph the value lands in — the whole line, so use it where the value is a line of its own: the name, the description, the price line. |
| Character style | A character style applied to the value itself — small caps for a unit, bold for a price. It styles only the value, so several columns can share one paragraph. |
| Object style | An object style given to the frame that holds the value, which is why a picture and a QR code can have one as well. It is applied where a whole frame belongs to the column: a frame marked with << >>, a frame named after the column, a picture or QR frame, and a frame whose entire text is that one placeholder — an icon or a flash, typically. A frame that holds several placeholders gets nothing, because the columns would take turns overwriting each other's style. |
| Sample | The first row, shown the way it will appear in the document. A dot · marks a non-breaking space. |
| Result | Under the columns: five records at a time, every column ticked to show, exactly as the panel will write them with the settings as they are this moment — formats, picture file names, QR content — and under each placeholder the paragraph, character and object style it will get. It follows every change before you press OK; ◀ ▶ page through the records. Only Read from the file and Numbers show after OK, because they change how the file is read. |
The styles are applied every time the value is written — when it is placed, when it is updated, in the merged document and in both previews — and always with "clear overrides" off, so a look you gave that one frame by hand survives. They are yours to choose; the setting Give every placeholder a style of its own in Settings is the other way round — it makes a style for every placeholder and applies it, which is for templates that have no styles at all. See Styles for the placeholders.
Presets: setting up next week's file in one click
A leaflet comes back every week: the same columns, a new file, and the same half hour of saying which column is a picture, what the price format is, where the photographs are and which style goes on the name. Save as… puts all of it under a name, and next week Apply does it again.
| Button | What it does |
|---|---|
| Save as… | Everything in this window under a name of your own. Saving under a name that already exists replaces it. |
| Apply | Writes the chosen preset onto the columns of the file you have open now. |
| Delete | Removes the preset from this machine. It does not touch any document. |
| Export… | Writes the preset to a .json file — to keep with the job, or to send to a colleague. |
| Import… | Reads such a file in. It is then in the list like any other preset. |
Columns are matched by name, ignoring case, spaces, underscores and accents — so a preset made
on nazev finds Název in the next file. A column the preset says nothing
about is left exactly as it is, so a preset from a narrower file can be used on a wider one without
wiping the new columns. Afterwards the line under the buttons says what happened: how many columns
were set up, which of the preset's columns this file has not, and which of yours were left alone.
A format — with its replacements, its regular expressions and its change of case — lives on your machine, not in the document. So a preset carries the formats it uses inside it: the ones you made yourself, not the built-in ones, which every copy of the panel has anyway. That is what makes an exported preset worth sending: your colleague imports it and has your rules, not just their names. The data file is deliberately not part of a preset — it is the setting up, not the data.
Under the table
| Group | What is in it |
|---|---|
| Values | Read the file as displayed in Excel or as raw values, and the number style (Czech or as written). These can be changed at any time, without importing the file again. |
| Images | The folders to search, the file-name pattern for the whole source, and the list of extensions to try. |
| Different layout per record | The column that decides which snippet a record uses, the folder with the snippets, and what to use when the cell is empty. See A layout per record. |
Two columns cannot share a placeholder name — the panel would not know which value to write. The dialog says so and will not let you leave it that way.
11 · Formats
The spreadsheet says 1299.9. The leaflet says 1 299,90 Kč. A format profile is the difference.
Setting the format of a column
Right-click any cell of the column › Format of the column… A list of profiles appears with a live preview of that very value before and after. Pick one, press OK, and every value of the column follows it — in the grid, when placing, and in the merged document.
The same right-click menu switches a column between text and image paths, so a spreadsheet you have never seen before can be set up entirely from the grid.
What a profile can do
| Setting | Example |
|---|---|
| Decimals | 19.9 → 19,90 |
| Thousands separator | 1299.9 → 1 299,90 (a non-breaking space) |
| Decimal separator | A comma for Czech, a dot for export |
| Prefix and suffix | 19,90 → 19,90 Kč, or Only 19,90 |
| Whole and decimal part apart | 1 299 and 90 in separate placeholders, for a price set in two sizes |
| Multiplier | 0.25 → 25 % for a discount written as a fraction |
| Letter case | milk 1.5% → MILK 1.5% |
| Find and replace | Your own rules, one per line as find => change, plain text or a regular expression: 3x100 g → 3×100 g. A regular expression starts with re: — re:(\d)x(\d) => $1 x $2 turns 5x5 into 5 x 5. Without re: the text is looked for letter by letter (pcs => ~Spcs), brackets and backslashes included. |
| Czech non-breaking spaces | Puts a hard space after single-letter prepositions and between a number and its unit |
| Empty line | When the value is empty, remove the whole line rather than leave a gap |
Two discount profiles are ready made: 49 % with a space and 49% without.
New profiles are made in Settings › Formats, where a test value at the top shows what each one
does.
12 · Pictures
The spreadsheet holds a code; the panel finds the file.
How a picture is looked for
The order is fixed, and the first file that exists wins:
- The pattern of the column (
{Code},photo_{value}, even{Code}_{Colour}) in every folder, in the order the folders are listed, trying each extension in turn. - The same with the plain value of the cell.
- If the name already has an extension (
coffee.png), no extensions are added. - A full path in the cell (
D:\photos\coffee.tif) is used as it stands.
A name made from the data is also tried without the characters a file name cannot have on Windows —
* ? " < > | : — and that one first. A product called SADA KLÍČŮ*
(with the asterisk of a footnote) is looked for as SADA KLÍČŮ.jpg. When the cell of a
picture column is empty and a pattern makes the name, the grid shows the name that will be looked
for, so you can see at a glance what the panel expects to find.
An example
Folders F:\photo\main and F:\photo\backup, extensions
jpg, png, tif, pattern {Code}, and the row has Code 1001. The panel tries:
F:\photo\main\1001.jpg
F:\photo\main\1001.png
F:\photo\main\1001.tif
F:\photo\backup\1001.jpg
...
The conditions
| Condition | Why |
|---|---|
| A file on disk | A picture pasted inside the spreadsheet, floating over the cells, cannot be read. A spreadsheet gives up its cell values, not its drawings. This is the one that catches people out. |
| Something in the cell | A file name, a code or a full path — or a name pattern that builds the name from other columns. Without it the frame stays empty. |
| The column set to Image | Right-click a cell › Treat the column as image paths, or set Type in Field Mapping. |
| A picture placeholder | Mark the frame with << >>. A text placeholder cannot hold a picture. |
| The folder reachable | Network paths are fine as long as they are mounted on the machine doing the merge. |
What happens when a picture is missing
The frame is left empty and the record is named in the report of the merge
(Images not found: 2 (e.g. 1004 · Photo)). A merged record never keeps the picture that
happened to be in the template. With Remove frames that get nothing on in Create Merged
Document, the empty frame is taken away altogether. In the document you are working on, Settings
decides whether a missing picture empties the frame or leaves what is there.
Fitting
Settings › Images sets how a picture sits in its frame — fit proportionally, fill the frame, fit the frame to the picture, or nothing — and whether it is centred. A frame marked as a placeholder keeps its own fitting options.
13 · QR codes
The panel draws the code itself, as vectors, in an ink from your document. No generator, no website, no RGB.
A QR column behaves exactly like a picture column — you mark a frame, and Place, Preview and Create Merged Document fill it — except that the picture does not have to exist. It is made from the value in the cell.
Setting one up
- Map › set the column's Type to QR code.
- Click the colour next to it. The swatches of the document are listed with the colour itself, its ink values and a mark for a spot ink. After you choose, the row shows that colour.
- Press Content… and say what the code should hold (below).
- In the document, select the frame, click the column in the grid, press << >>.
Why it is a PDF, and why that matters
Each code is written as a small vector PDF into a folder called _zaflo_qr beside
the data file, and that PDF is placed into the frame. This is deliberate:
- CMYK, not RGB. An SVG could only be RGB, which has no business in a print job.
- A spot ink stays a spot ink. Choose a Pantone swatch and the PDF carries a real separation; InDesign adds that ink to the document, and it separates on the plate as one colour.
- Vectors. Sharp at any size, no resolution to worry about.
- Made once. The file name is built from the text and the colour, so the same code in a thousand records is drawn once and placed a thousand times.
The colour is part of the file name, so a new colour means a new file. The codes already in the document keep pointing at the old one and go orange in the panel until you press Update All. That is on purpose: nothing changes in a finished document behind your back.
What the code can hold
Content… offers the same kinds InDesign's own QR generator does. Leave a field empty and the value of the cell is used.
| Kind | Fields | What ends up in the code |
|---|---|---|
| Plain text | Text | The text as it is. A code, a batch number, a slogan. |
| Web address | Address | http://… — the protocol is added when it is missing, because a phone cannot open www.something.cz without it. |
| Address, Subject, Message | mailto:info@zaflo.cz?subject=Order%201001 — opens a new mail already filled in. | |
| Text message | Number, Message | SMSTO:+420777123456:I am interested in… |
| Phone number | Number | tel:+420777123456 — scanning it dials. |
| Business card | First name, Surname, Job title, Organisation, Phone, E-mail, Web, Street, Town, Postcode, Country, Note | A vCard 3.0. The phone offers to save the contact. |
| Wi-Fi | Network, Password, Security | WIFI:T:WPA;S:Guest;P:secret;; — the phone joins the network. |
Combining columns — {Column}
This is what makes it useful. Any field of the content may take a value from another column of the same row, written in braces:
| You write | What it means |
|---|---|
{Web} | The value of the column named Web, from this row. |
{value} | The value of the column the QR code itself sits in. |
Order {Code} | Plain text and a value together. |
{Firstname} {Surname} | As many columns as you like in one field. |
Worked examples
| You want | Kind | Fill in |
|---|---|---|
| A link to the product page | Web address | Address: https://shop.example.cz/p/{Code}→ https://shop.example.cz/p/1001 |
| A link with a tracking tag per leaflet | Web address | Address: {Web}?utm_source=leaflet&utm_content={Code} |
| An order e-mail with the article in the subject | Address: orders@example.czSubject: Order {Code} – {Name}Message: Please send me {Name}, price {Price}. |
|
| A salesperson's business card, one per branch | Business card | First name: {Firstname} · Surname: {Surname} ·
Organisation: {Branch} · Phone: {Phone} ·
E-mail: {Mail} · Town: {Town} |
| Wi-Fi for a hotel room card | Wi-Fi | Network: {SSID} · Password: {WifiPass} ·
Security: WPA |
| An EAN as plain text | Plain text | Leave Text empty and put the EAN in the cell. (A QR code holding an EAN is not a barcode — it will not scan at a till.) |
How big the frame has to be
The more text, the more modules, and the more modules the smaller each one is in the same frame. The
dialog tells you the size as you type (37 × 37 modules). As a rule of thumb for print at
a normal reading distance:
| What is in it | Modules | Sensible frame |
|---|---|---|
| A short code (1001) | 21 × 21 | from 15 mm |
| A link (35 characters) | 29 × 29 | from 20 mm |
| An e-mail with a subject | 33 × 33 | from 22 mm |
| A business card | 57 × 57 and up | from 35 mm |
Shorten the link if the frame is small — a redirect is better than an unreadable code. Every code is drawn with the quiet zone the standard asks for (four modules of empty space all round), so do not crop the frame tightly or put a rule against it.
Contrast is your call: a light ink on white will not scan, and the panel does not argue with your choice of colour. And a QR code is not a barcode — for an EAN at a till you still need a barcode, which is a different thing altogether.
Where the files go
Folder _zaflo_qr beside the data file, one PDF per unique text and colour, named after
both. Delete the folder whenever you like — the codes are made again when they are needed. Keep it
with the job when you hand the document over, the same as any other linked file, or package the
document and InDesign collects them for you.
14 · Fields on condition
The discount flash only where there is a discount.
Any frame can be given a condition. When a record does not meet it, the frame is taken out of the merged document — and out of the preview's copy, so the template itself stays whole.
Setting one
- Select the frame (or several) in the document.
- Right-click the cell of the column that should decide, and choose Show the selected frames only when … — that column is already filled in. (The same thing is in ⋯ › Show Only When…)
- Pick the test and press OK.
| Test | Keeps the frame when |
|---|---|
| is not empty | There is anything in the cell. The everyday one: a note, a flash, a second picture. |
| is empty | The cell is empty — for a frame that fills the gap left by something else. |
| is | The value matches exactly. Upper and lower case are ignored. |
| is not | The value is anything else. |
| contains | The value contains the text. |
| is more than | The number is bigger. Spaces and commas are understood, so 1 299,90 compares properly. |
| is less than | The number is smaller. |
The dialog says straight away how the first row would come out — the frame stays or the frame goes away. Always show takes the condition off again.
Examples
- A "NEW" flash:
Noteisnew. - A percentage badge only on discounted items:
Discountis not empty. - A "big pack" ribbon:
Weightis more than900. - A second photo only where there is one:
Photo2is not empty.
The condition sits on the frame itself, so it travels with a copy of the frame and is evaluated again for every record in the merge. Conditions are listed in ⋯ › Check the Template…
15 · Styles for the placeholders
A template thrown together in ten minutes has everything in the basic style. One command fixes that.
⋯ › Styles for the Placeholders… walks the document and:
- gives every paragraph holding a
<<Placeholder>>a paragraph style named after that placeholder, - gives every marked frame an object style with the same name.
So three placeholders — <<Code>>, <<Name>>,
<<Price>> — leave you with styles Code, Name and Price
already applied. Set the price once in the Paragraph Styles panel and every price in every record
follows, because the merged document keeps the styles.
Only what has no style at all gets one. A placeholder whose paragraph already has a paragraph style, whose characters have a character style, or whose frame has an object style is left exactly as it is — no character style is laid over a styled paragraph. A frame with an object style of its own keeps it. On a finished template the command may therefore do nothing at all, and that is right: it is meant for a template still in the basic styles.
Which kind of style you get
It depends on what is really in the text. A price tag is usually one paragraph with line breaks in it (Shift+Enter), not three paragraphs — and one paragraph can only carry one paragraph style.
| Where the value sits | What it gets |
|---|---|
| Alone in its paragraph | Paragraph style named after the column or the placeholder. |
| Sharing a paragraph with other values | Character style on that value alone, so the values do not fight over the paragraph. |
| A whole frame — a picture, a QR code, a frame holding one value | Object style. |
If you would rather have paragraph styles everywhere, build the tag with real paragraph returns instead of line breaks and set the spacing with Space Before in the style.
It works on a filled document too
In a template the styles are named after the placeholders. In a document that is already filled — a merged document, or a page you placed by hand — there are no placeholders left, so the styles are named after the column each value came from. Either way you end up with a style per field, and the command can be run on a merged document after the fact.
One paragraph gets one style. If two values share a paragraph
(<<Price>> per <<Unit>>), the style is named after the last one
found there.
What it will not touch
Only places that still carry a basic style are changed — [Basic Paragraph],
[Basic Text Frame], [None] and their equivalents in a localised InDesign,
which are the ones in square brackets. Anything you have already styled yourself is left exactly as
it is, and the report says how many it left alone.
A style with the right name that already exists is used, not duplicated. So you can build your styles first, name them after the placeholders, and this command will simply apply them.
Nothing looks different afterwards
A style is only a name for what is already there. When the panel makes a new style it fills it with the look of the very text or frame it was made for, and applies it without clearing the local formatting. A new object style is made with all its categories switched off, because a plain new object style in InDesign carries a black hairline and would draw a frame around every picture it touched.
A style that already exists is used as it is and never rewritten — so you can set your styles up first, name them after the columns, and the panel will simply apply them.
Doing it automatically
Settings › Styles › Give every placeholder a style of its own. With it on, a style is made and
applied the moment a placeholder is created. The Name in front of the styles box adds a prefix
— put DM there and you get DM Price instead of Price, so the
panel's styles never sit among yours. Create Merged Document does the same as it builds the merged
document, so what comes out is already styled.
16 · Preview
Look at a record in the real template before anything is made.
Tick Preview and the page shows the row you are on — real text, real pictures, real QR codes, the styles of the columns — exactly where the template is. Nothing else is added: one record, on the page you are looking at. The arrows step from record to record. Untick it and the template is there again, untouched.
The template is never written into. It is hidden while the preview is on, and what you see is a copy of it laid over it and filled with the record. Switching the preview off takes the copy away. So there is nothing to put back and nothing that can be left half put back, however fast you step through the records. Nothing placed this way is linked to the data: a preview is a look, not a placement.
To see how several records will sit on one page — the grid, the spacing, how many fit — open Create Merged Document. The layout is drawn on the active page for as long as that dialog is open, at its true size, and follows the settings as you change them. See 17 · Create merged documents.
- Nothing is linked and nothing is saved — the preview is only a look.
- Frames that already hold real data are left alone, so a page that is half finished is not disturbed.
- A frame with a condition is left out of the copy for the records it does not belong to.
- Pictures and QR codes show in their frames, and a frame with nothing to show disappears when Remove frames that get nothing is on in Create Merged Document.
Step through five or six records before a merge. Overset text, a missing picture, a discount flash on the wrong item — all of it shows up here in twenty seconds.
17 · Create merged documents
The whole run: one record per page, or a grid of them, laid out on the real page while you set it up.
The layout on the page
There is no thumbnail in the dialog. Tick Preview on the page — at the left of the button row, level with Cancel and Create — and the records are laid out on the page you were looking at: the real page, at its real size, with the real margins, the real spacing and the real order, so what you are judging is the job itself and not a drawing of it. Change a number and it is rebuilt a moment later; a line under the layout settings says how many records fit on a page and how many pages that makes.
The tick starts off every time the dialog opens. Laying a page out is real work in the document, and doing it at every keystroke would have InDesign redrawing the page while you are still typing the number.
The spacings are millimetres and take decimals — 2,15 or 2.99, with a
comma or a dot, whichever your keyboard gives you.
The template is only hidden while the preview is up. Untick it, or press Create or Cancel, and the page comes back exactly as it was — nothing laid out this way is written into the document or linked to the data.
The merged document is the template
The merged document starts life as a copy of your template file — not a new document with your pages pasted in. Master pages, paragraph, character and object styles, swatches, layers, the page size, the margins, the bleed and the slug, the guides: all of it is there as it was. Every page the merge adds is a copy of the template page with its contents taken off, so page 7 has the same master, the same margins and the same guides as page 1.
Which records
| Choice | What it takes |
|---|---|
| All records | Everything in the data file. |
| Records shown in the panel | Whatever the search and the filter have left on screen. Filter to one category, merge just that. |
| Selected rows | The rows you have selected in the grid. |
| Range | From row … to row … |
One record per page
Every page of the template is repeated for every record, the way InDesign's own Data Merge does it:
the first record fills all the template pages, the next record the next set, and so on. Placeholders can
sit on any of the pages. A template with <<ID>> and <<Name>>
on page 1 and <<Price>> and <<Discount>> on page 2 makes
four pages from two records: 1–2 for the first record, 3–4 for the second. The dialog shows how many
pages the template has and how many the merge will make. Nothing else to set.
Several records per page
Everything on the first page is treated as one block and repeated in a grid. This needs a one-page template: with two or more pages the dialog says so in red and will not create the document — choose one record per page instead (InDesign's Data Merge has the same rule).
| Setting | What it does |
|---|---|
| Columns, Rows | 0 means as many as fit inside the margins. A bigger number than fits is reduced to what fits, and the report says so. |
| Column spacing, Row spacing | The gap between the blocks, in millimetres. |
| Order | Rows first (left to right) or columns first (top to bottom). |
| Start at the page margins | On: the first record sits in the top left corner of the margins. Off: it stays exactly where the template block sits. |
| Snap the spacing to the page columns | Uses the column grid of the page, so the records line up with the rest of the layout. |
| Pages | As in the template keeps whatever the template document is set to. Facing pages pairs them up the way a leaflet is printed: 1, then 2–3, 4–5 and on. Single pages puts every page on its own. On facing pages the records on a left-hand page start at its outside margin, so they keep clear of the spine on both sides. |
The rest of the dialog
| Setting | What it does |
|---|---|
| Keep fields linked | The merged document keeps the links, so the panel can update it later. This is the thing Data Merge cannot do. Turn it off for a document you will never touch again: it then comes out clean — only the values from the data, with no XML tags or their markers, no notes, no hyperlinks and no labels of Data Merge Plus, and no fields of InDesign's own Data Merge either, if the template was built with it. Real hyperlinks (to a web page) stay. |
| Remove blank lines for empty fields | A record with no second line does not leave a gap. |
| Remove frames that get nothing | A picture or QR frame whose cell is empty — or whose picture is not found — is removed instead of left as an empty box, and so is a text frame when every placeholder in it came out empty, like an icon whose note is empty. Only frames that held placeholders go: a frame the template leaves empty on purpose stays. Missing pictures are still listed in the report, so nothing goes quietly. The preview follows the same setting. |
| Leave out rows that have nothing in them | A row with no value in any column is not merged at all, and the next row takes its place — no empty slot with empty frames in the leaflet. The key column does not count, because a price list usually keeps numbering its empty lines. The preview on the page leaves them out too, and the report says how many went. |
| Records per document | 0 = everything in one file. Otherwise the run is split and the files are numbered _2, _3 … |
| Save as | Where the merged document goes, with the whole path written out — offered beside the data file, as its name with _merged (C:\Jobs\katalog.xlsx gives C:\Jobs\katalog_merged.indd); a data file merged before offers where that went. If a file of that name is already open in InDesign, the panel says so instead of failing. |
| (all settings) | Remembered as you leave them, whether you press Create or Cancel, and kept while you choose where to save. Preview on the page is the one exception: it is always off when the window opens. Closing the window takes the preview off the page, and it leaves nothing behind in the undo list. |
| Export PDF | Writes a PDF beside each document with the export preset you choose. |
| Open the merged document | Leave it on to look at the result; off for an unattended run. |
While it runs
From the moment you press Create the list in the panel gives way to a progress bar: the percentage, and what is happening right now — making the copy of the template, adding the pages, laying the records out, filling record 20 of 45, saving, exporting the PDF. When the bar is gone the report opens; until then InDesign is still working, so leave it to it.
The report at the end
When it is done the panel says how many records went in, how many documents and PDFs were written, how many records fit on a page, which placeholder names matched no column, which pictures were not found and which snippets were missing. Read it — it is the difference between noticing a problem now and noticing it in print.
18 · A layout per record
One big tag, three small ones, a landscape one — all in the same run.
A record can bring its own layout. You build each variant once, save it as an InDesign snippet, and a column of the spreadsheet says which one each record uses.
Setting it up
- Build one variant in InDesign with its placeholders in it.
- Select it and choose File › Export › InDesign Snippet. Name the file after the value you
will write in the spreadsheet:
big.idms,small.idms. - Add a column to the spreadsheet — say
Layout— holdingbigorsmallfor each record. - Map › Different layout per record: set Column deciding the layout to
Layoutand Folder with the snippets to the folder with the .idms files. - Merge as usual, with Multiple records per page.
What the panel does
- Each record is given the snippet its cell names, placed into its slot and filled from that row — placeholders, pictures, QR codes and conditions all work inside a snippet.
- Every layout in play is measured first, and the grid slot is made as big as the biggest of them, so a big record cannot reach into its neighbour.
- A record whose cell is empty uses Snippet for an empty cell, or the template on the first page when that is not set.
- If no record uses the template, it is taken off the page rather than left lying under the records.
- A snippet that cannot be found is named in the report.
With no layout column set, everything works exactly as before — one template for every record.
19 · Overviews and checks
Four lists that answer the questions you actually have.
| Where | What it tells you |
|---|---|
| ⋯ › Check the Template… | Everything the panel can find in the document: placeholders, plain column names, marked frames, frames named after a column, conditions. With the page, and in red anything that matches no column. Run it before every merge. |
| ⋯ › Placed Fields Overview… | Every value placed in the document, grouped by page, with its state. Click a line to jump to it. The answer to "where is this price actually used?" |
| ⋯ › Text That Does Not Fit… | Every frame with overset text, with its page and the beginning of the text. Click to show it, or copy the whole list for the person who writes the copy. |
| ⋯ › Run Diagnostics… | Tries every step of placing a field in this InDesign and reports what works. Send the text with a bug report. See below for what it actually does. |
What Run Diagnostics does
A value stays linked by an anchor in the text, and there are four ways of making one — a hyperlink source, an XML element, a note, or a label on the frame. Which of them InDesign allows is not the same everywhere: the same version refuses to write an XML attribute in one document and accepts it in the next. Rather than guess, the panel asks the document.
That is why it wants a text cursor. Click into text, run it, and it writes two characters there, tries each of the four ways on them, reads each one back to see whether the link can be found again, and takes it away. The first way that survived is the one the panel uses from then on, and the report lists all four with what happened to each. The two characters, the links and the XML tag the test made are all removed at the end — you are left with the document as it was.
Trying the XML way tags the text, and InDesign keeps the tag in the Tags panel even after the
element using it is gone — so a diagnostics run used to leave zaflo sitting there,
and a Root in the Structure pane. It is now taken away again, unless something in the document is
really using it.
The last forty things the panel did are kept inside the document itself. If an action seems to do nothing, that log says why — and anybody can read it from a script, even with the panel closed. See the next section.
20 · Settings
Everything in the ⚙ button, in order.
| Setting | What it does |
|---|---|
| Check automatically | Whether the panel looks at the data files on its own, and how often (ten seconds by default). |
| Also check the text in InDesign | Compares the text on the page with what was placed, which is what finds manual edits (orange). Switch it off in a very large document if the checking feels slow. |
| Compact rows | Shorter rows, more of them on screen. |
| Ask before Update All | The confirmation before a bulk update. |
| Copies of a placed value are updated with it | Copy a frame with a placed value and the copy follows the same cell, and Update changes both. Switch it off when copies are made to be changed on their own: they are then left alone. |
| Give every placeholder a style of its own | Makes and applies a paragraph or object style whenever a placeholder is created. See Styles. |
| Name in front of the styles | A prefix for those style names, e.g. DM . |
| Fitting, Center content | How a picture sits in its frame. |
| Missing image | Keep what is in the frame, or empty it, when no picture is found. |
| Cell colours | The legend, so you can check what each colour means without leaving the dialog. |
| Formats | The list of format profiles with a test value at the top. New profiles are made here. |
21 · Trial and licence
Fourteen days with everything on, then a key from the purchase. The trial and the full version are the same plugin.
The trial
The trial starts the first time the panel opens and runs for 14 days. Everything works while it runs. The days left are shown at the bottom right of the panel — click there, or choose ⋯ › Licence…, to open the Licence window. Nothing in a document you have already made ever expires: a merged document is an ordinary InDesign file.
After the trial
| Keeps working | Needs a licence |
|---|---|
| The data, the grid and the colours | Place, double-click to place, Update and Update All |
| Import and Re-import, Field Mapping | Preview and Check and Merge |
| Check the Template, Placed Fields, Go to | Inserting placeholders, marking frames |
| Settings, Diagnostics, About, Licence | Styles for the Placeholders, Show Only When, Fill Frames From This Row |
A paid command used after the trial opens the Licence window and says what it needs.
Buying and activating
- Open ⋯ › Licence… and press Buy the full version. The Gumroad page opens in your browser.
- After paying, the licence key is in the receipt e-mail and on the page Gumroad shows you.
- Paste the whole key, dashes and all, into Gumroad key and press Activate. The key is checked with Gumroad there and then, and the window says the result.
| Situation | What happens |
|---|---|
| Another computer | Install the same plugin and activate the same key. There is nothing else to download. |
| No internet | A licence confirmed once keeps working offline for 30 days from the last successful check. The panel checks with Gumroad about once a day by itself; a few days before the 30 run out, the bottom of the panel says a check is needed. |
| Take the key off this computer | Removes the activation here. The key is not used up — paste it in again here or on another computer. |
| Refund | A refunded or charged-back purchase is switched off at the next check. |
| "That key was not accepted" | Check that the whole key was pasted and that it is the key of Data Merge Plus — each plugin has its own. If Gumroad could not be reached, try again when you are online; the trial and your documents are not affected. |
22 · What is stored in the file
For the curious, and for anyone testing the panel or writing a script beside it.
Everything is inside the .indd. No side-car file, no database. Open the document
somewhere else and the links are still there.
- zaflo.sources.v1
- The data sources: path, sheet, key columns, the mapping of every column, formats, image rules, QR settings, snippet settings.
- zaflo.links.v1
- The link table: for every placed value a short id and behind it the source, the key of the row,
the column and the value as it was written, plus the lock. Entries like
item:247tie a frame to its id, which is how a copied frame is recognised. - zaflo.preview
- Which copies the preview laid on the page and which items of the template it hid, so switching it off removes and shows back exactly those.
- zaflo.log
- The last forty things the panel did, with the time. The lines are held back until the panel writes something else into the document and then go in with it: writing a label is a step back of its own in InDesign, and one thing you did should be one press of Ctrl+Z. The copy on disk is written at once either way.
- zaflo.field · zaflo.ph · zaflo.when
- Labels on a frame: the id of the value placed in it, the column it is a placeholder of, and the condition under which it belongs to a record.
InDesign's own Data Merge leaves invisible characters around the values it writes. Data Merge Plus does not: InDesign drops that character when a script writes it, and a merged document from Data Merge is not linked to its data anyway. Data Merge Plus keeps its links as InDesign objects — a link on the text, or, for a value that is the whole text of its frame, a label on the frame. The frame is the safer of the two: InDesign deletes the link of a text the moment all of the text is typed over, but a frame keeps its label whatever is typed in it, and a copy of the frame carries it along.
A placed piece of text keeps its id in the story itself. Four ways are tried, in this order, and the first the running InDesign accepts is used: a hyperlink text source named ZAFLO:<id>, an XML element, a note, or a label on the frame. The fallback chain exists because notes and XML attributes cannot be written from every build.
The log file
The same lines are written to a plain text file, which can be opened in any editor — including when the panel itself has stopped answering, which is when a log is worth having. It holds every action, every failure, and the version of the panel and of InDesign it is running on. This is the copy to look at when something behind a dialog went wrong, because a modal dialog has nowhere to show a message from.
| System | Where the file is |
|---|---|
| Windows | %APPDATA%\Adobe\UXP\PluginsStorage\…\com.zalesky.zaflomerge\zaflo-log.txt |
| macOS | ~/Library/Application Support/Adobe/UXP/PluginsStorage/…/com.zalesky.zaflomerge/zaflo-log.txt |
The exact path is in ⋯ › About Data Merge Plus, and the file says it in its own first line. It keeps the newest 256 kB and drops older lines.
Reading it from a script
var d = app.activeDocument;
$.writeln(d.extractLabel("zaflo.log"));
$.writeln(d.extractLabel("zaflo.links.v1"));
$.writeln(d.extractLabel("zaflo.sources.v1"));
ExtendScript inside doScript has no JSON, so use
eval("(" + label + ")") if you want to walk the table.
What the state of a cell is made of
Three things are compared: the value in the data file now, the value stored in the link table when it was written, and the text actually in the document. Same everywhere → green. File differs → red. Document differs → orange. Row gone from the file → purple.
23 · When something goes wrong
Symptom, cause, cure.
| What you see | What to do |
|---|---|
| The import will not go on | Read the list in the dialog — it names the Excel lines and offers the fix as a button. Most often the key repeats or is empty. |
| Place says nothing matches | The frame holds no placeholder the panel can find. Run Check the Template… and look at what it did find; check the spelling between the angle brackets against the Placeholder column in Field Mapping. |
| A value came out with a dot instead of a comma | Field Mapping › Numbers → Czech, or give the column a price format. Excel only stores the format code; the comma is drawn by Windows. |
| A picture does not appear | The file must exist on disk with a name the rules can build. Click the cell and read the line under the grid — it shows the exact path the panel is looking for. Pictures pasted inside the spreadsheet cannot be used. |
| The QR code is black although a colour was chosen | Choose the colour again in Field Mapping and press Update All. The colour is part of the file name, so codes already placed keep the old file until they are updated. |
| A cell is orange and nobody edited anything | Something in the document does differ — a character style that changes the case, a space, a manual line break. The line under the grid shows both texts side by side. |
| Text does not fit after an update | ⋯ › Text That Does Not Fit… lists every overset frame. |
| The merged document is empty or wrong | Read the report, then the log in the document (see What is stored in the file). It records every stage of the merge. |
| A placeholder came back broken after Preview | Older builds wrote the preview into the template itself and sometimes put a placeholder back in the wrong place — PEKÁČ NA H<<pop>>USU or stránka: 232323 is what it looked like. Since 0.9.4 the preview does not write into the template at all. A template damaged by an older build has to be put right by hand once, or reverted (File › Revert). |
| A tick box does nothing | Update to 0.9.2 or later. UXP did not always deliver the tick to the panel, so the box looked ticked while nothing happened. |
| Ctrl+Z does not take back what I did | One action is one step back. If you are on an older build it takes three, because the panel wrote its log and its link table as steps of their own. |
| The preview in Create Merged Document shows nothing | Records per page must be Multiple records per page — with one record per page there is nothing to lay out. If it still shows nothing, the log file says why; see What is stored in the file. |
| Copy the value put nothing in the clipboard | Some InDesign builds do not let a panel write to the clipboard at all. The panel now notices and hands the value over in a little window instead, to select and copy by hand. |
| The panel says it is busy, and stays busy | A Data Merge Plus window is open behind the panel — InDesign sometimes puts a window there after a file or folder has been picked. Click the panel once more: it says which window is open, and a second click closes it as if Cancel had been pressed. With no window open, the panel frees itself after twenty seconds. |
| Create does nothing and says Multiple records per page need a one-page template | The template document has more than one page. Several records on one page are laid out from a single page, so either choose Single record per document page(s) — every record then gets all the pages — or move the block onto a one-page document. |
| Deleting leaves characters behind, or values do not line up with their links | The document is also set up in InDesign's own Data Merge. Its invisible markers sit around the same fields. Open Window › Utilities › Data Merge, choose Remove Data Source, and never run both on one document. |
| The panel does nothing at all | Close and reopen it from Window › Extensions. If it still does nothing, ⋯ › Run Diagnostics… and send the text. |
24 · Words used here
If you have never done a data merge before, these are the only terms you need.
| Word | Meaning |
|---|---|
| Data source | The spreadsheet the panel is reading, and its settings. |
| Record / row | One line of the spreadsheet. One article, one property, one guest. |
| Key | The column whose values never repeat. It is how a value in the document knows which row it came from. |
| Field | One value placed in the document and linked back to its row and column. |
| Placeholder | The mark in the template that says "a value goes here" — <<Price>>, a marked frame, or a frame named after a column. |
| Template | The document with the placeholders in it. The thing you design once. |
| Merged document | The new document the panel builds with the records in it. |
| Snippet | A piece of an InDesign layout saved as an .idms file, used here as a layout variant for a record. |
| Swatch | A named colour in the document. The QR codes are drawn in one. |
| Spot ink | A colour printed with its own ink rather than mixed from CMYK, such as a Pantone. |
| Overset | Text that does not fit in its frame. InDesign shows a red plus on the frame. |
| Quiet zone | The empty margin a QR code needs around it so a phone can find it. |