Copy link to clipboard
Copied
I am working on a 5.5 x 8.5 Class Reunion Directory. There are several lines of data in the merge and a few of them "Family and Friends" and "What have you been up to" can get quite wordy. I used the Auto-size option in Text Frame Options to allow the frames to expand for the data. However, when I do the multiple record preview, they are overlapping each other. I tried playing with text wrap to see if that would bump the text box down but instead it cuts off the "What have you been up to" data after about 2 lines and then that data continues at the bottom of the page, running off the page.
I have never done a merge like this in InDesign before so I am hopefully just missing a step or option. The data should populate wether it's 2 lines or a paragraph and contine onto the next page at my margins, just like a typical book.
I've attached examples with my data blurred for privacy. Hopefully you can see how they are overlapping. Any help is appreciated!
I suspect the problem is that InDesing sees the size of the frames to be merged as the size of your template placeholder frame, and uses that for positiong all the new frames that are generated, but after the merged frames are autosized some become longer and overlap the frames below them.
@Loïc29485901ktl0's suggestion to do a single record per page is how I would do this (in fact that's exactly what I used to do when I had an annual directory project for an antique dealers association with var
...Make your "repeating" frame as large as page margins:
Then ask for datamerge using unique records.
You will get a n pages document where all records stand on one page:
Then you need a script to thread all frames. Here is a short one that will work ONLY if the merged document is made of one textframe per pages with no other layout additions (it will be your base content):
function main(){
var doc = app.documents.everyItem().getElements();
var n = doc.length;
if(!n){
alert("You nee
...
Copy link to clipboard
Copied
I think your problem is not with "fitting" per se, you are probably expecting that all records nest alltogether whatever their individual lengths. That's not how Datamerge operates.
What you may want to do is preparing your datamerge so that one record is a page. When everything is merged, use a script to thread all frames. All records will then be part of a flow (story) that you can easily arrange.
Or use a commercial plugin such as EasyCatalog that manages those constraints very easily.
Loic
Copy link to clipboard
Copied
Thank you Loic! I'm not sure I understand. If I preview these as a single page merge, the entire "What have you been up to" data will preview. But if I preview it as a multiple record layout, that is when it only shows the first few lines of the paragraph.
Copy link to clipboard
Copied
Make your "repeating" frame as large as page margins:
Then ask for datamerge using unique records.
You will get a n pages document where all records stand on one page:
Then you need a script to thread all frames. Here is a short one that will work ONLY if the merged document is made of one textframe per pages with no other layout additions (it will be your base content):
function main(){
var doc = app.documents.everyItem().getElements();
var n = doc.length;
if(!n){
alert("You need a document");
return;
}
doc = doc[0];
var tfs = doc.pages.everyItem().textFrames.everyItem().getElements();
n = tfs.length;
while(n--){
if(n==0) break;
tfs[n].previousTextFrame = tfs[n-1];
}
}
var u;
app.doScript("main();", u, u, UndoModes.ENTIRE_SCRIPT, "Merge textframes");
You then get all the content as part of a flow:
Here you are.
Copy link to clipboard
Copied
Thank you so much! I appreciate the time you spent to explain this. I was able to make it work this way and the script worked perfectly. THANK YOU!
Copy link to clipboard
Copied
Glad I could help.
Copy link to clipboard
Copied
... or prepare it in Excel and import as a table...
Copy link to clipboard
Copied
I suspect the problem is that InDesing sees the size of the frames to be merged as the size of your template placeholder frame, and uses that for positiong all the new frames that are generated, but after the merged frames are autosized some become longer and overlap the frames below them.
@Loïc29485901ktl0's suggestion to do a single record per page is how I would do this (in fact that's exactly what I used to do when I had an annual directory project for an antique dealers association with variable length data). As he said, you can then thread all the frames to make a single story, and what I would do from there is select all to copy the text, then create a new file with one large text frame per page and paste the copied text into the first frame. leaving most of the story as overset text when chan then be picked up and auto-flowed into additional pages.
If necessary you can then set some paragraph spacing and Keep Options to separate the entries and be sure they don't split across pages.
Copy link to clipboard
Copied
Thank you so much, this is great feedback!