Jump to content

Output imposed sheets to multiple PDFs - last batch


Mikeness

Recommended Posts

Hi all,

 

We would like to begin imposing using FusionPro to simplify production but have run into an issue regarding stack size on the final batch.

 

The document is to be printed 2-up, duplex, and we have a total of 566 records. The shop has asked for stacks of 100 sheets per batch. We therefore would output 3 pdf files of 200, 200 and 166 records respectively. This works fine up until the last batch where the imposer continues to create a PDF of 100 sheets when only 83 are required.

 

I've tried activating the InfiniteStack option combined with "Output to multiple files" in the composition settings and constantly hit a wall due to chunk size.

 

What is the recommended way to go about setting this up? I would ideally like to avoid writing any script to do this, as it can make it difficult to pass onto production staff to manage.

 

Thanks!

Link to comment
Share on other sites

Hmmmm, that is interesting because FP does the exact thing you want normally for me? Are you stacking 1-100 in one stack and 101-200 in the other, or are you going across the sheet?

 

What does your imposition file look like? Can you post it?

Link to comment
Share on other sites

Everything seems to look correct. Maybe try changing the Pages Per Record to 1. I never change that and not really sure what it does. Also, I would uncheck the Infinite stack button since you want only 100 per. Everything else looks correct to me.
Link to comment
Share on other sites

If I uncheck the Infinite stack option, my last batch file will contain 100 sheets even though it only though I would only require 86 (batch size is 200, 200, 166 records per batch respectively @ 2-up duplex).

 

We basically need the software to adjust the last batch (each batch in a separate PDF file) to not waste any sheets.

Link to comment
Share on other sites

No I do not have any chunking rules setup. We we're simply applying the "Record per file" option in composition.

 

I had a look at your imposition file and I can't seem to find a difference between your file and mine other than the infinite stack option.

 

When I remove the Infinite stack, the imposed final file, which contains 166 records, continues to output 100 sheets (or 200 pages duplex) rather than the 86 I need. 200 records is the max file output we've assigned. When I check the Infinite Stack option, I get an error when composing.

Link to comment
Share on other sites

I'll create something that I can post, but that seems to be the case. The file comes out printed 2-up for the first few sheets and then reverts to 1-up for the balance as there are not enough records to fill 2-up over the full stack.
Link to comment
Share on other sites

This is familiar... Excel sometimes contains additional records where they appear to be blank. Copy/paste the data to a new workbook, or otherwise ensure that everything beyond the required records is deleted.

 

I've experienced this on multiple VDP platforms; it's not restricted to Fusion. It's entirely an Excel thing.

Link to comment
Share on other sites

I'm confident this is not the case, as the file is only processing the correct number of records. Also, no blanks are created when we Compose without using imposition. Perhaps the problem is not in the imposition file, but it's not caused by blank records (all data is actually exported from Access where blanks are easily seen).

 

I've created a template PDF for illustration purposes and attached it so you may see the output.

 

We're running FP 9.3.9 on Windows XP. Really want to get to the bottom of this as it is really prohibiting us from implementing FP in our production process.

ImposeTest-Output2.pdf

Link to comment
Share on other sites

I suppose I will have to. Can you please do me one last favor and post the PDF template and Imposition file?

 

Finally, perhaps you could also take a couple of shot of your composition settings tabs? This will help me to make sure that I am absolutely not missing anything.

 

Thanks a bunch!

Link to comment
Share on other sites

Thanks so much for collecting the job.

 

After nearly pulling all my hair out, I at least found the source of the issue, but it just creates another...

 

When imposing an FP project where a DSN file is my data source, the imposition file creates full stacks of 100, regardless of whether or not there is enough data to fill the stack. When the FP file is linked to a CSV (simply exporting the same table that is being read in the DSN - i.e. same data), the stacking works properly...

 

So, now that I know what's causing it, my obvious next question is why this would be a problem and if anyone knows of a workaround?

Link to comment
Share on other sites

When imposing an FP project where a DSN file is my data source, the imposition file creates full stacks of 100, regardless of whether or not there is enough data to fill the stack. When the FP file is linked to a CSV (simply exporting the same table that is being read in the DSN - i.e. same data), the stacking works properly...

 

So, now that I know what's causing it, my obvious next question is why this would be a problem and if anyone knows of a workaround?

Stacked imposition doesn't work properly with ODBC. This has been a known issue for some time. I will try to explain why.

 

For a regular, non-imposed composition (or even for a non-stacked imposition), FusionPro simply reads one record from the data source at a time and composes it, then moves on to the next record. It doesn't have to know ahead of time how many total records there are, nor remember anything from previous records (though it does keep one previous record's data in memory for the FieldChanged function).

 

But it's a completely different story for stacked imposition. Here, FusionPro composes sheets, and each sheet can have output pages from multiple, non-contiguous records. So FusionPro needs to have "random access" to the data records, so that it can basically compose them out of order. For instance, in a 4-up example with 100 records per stack, it has to first compose a sheet with data from records 1, 101, 201, and 301, then compose a sheet with data from records 2, 102, 202, and 302, etc. It also has to know how many total records there are to compose in order to know how many sheets and stacks there will be. It accomplishes this by first doing a "preprocessing" run through the data, which not only counts the records, but sets up a mapping of offsets for each record into the data file, so that when it gets to the main composition pass, it can quickly access any record of data by seeking to the offset for the record in the data file.

 

The problem with ODBC is that most* ODBC drivers support only a "one-way cursor" (aka a "forward-only cursor"), so once to run your SQL query and get back a data set, you can only start with the first record and keep getting the next record until the end. This is fine for a non-imposed job, since FusionPro only needs the records in "forward" order, but stacked imposition needs to access the records "out of order." Unfortunately, you can't just say to the ODBC system, "Hey, I know I just got record 1, but now I need record 101." ODBC responds, "Sorry Dave, but if you just got record 1, then you can only get record 2 next." There's no "random access" available. The only way you can get to an arbitrary record is to go all the way back to record 1 and keep asking for the next record until you get the one you want, and that's expensive in terms of both I/O resources and time.

 

(* Some ODBC drivers do support "random access," or "dynamic cursors," but it depends on the driver, and frankly, getting it to work even when the driver supports it is fairly difficult and convoluted.)

 

What FusionPro used to do for ODBC with stacked imposition was to read all of the data into memory, but that gets unwieldy with large data sets, and didn't really work anymore once we introduced the "dynamic stacking" feature in FusionPro 8, where you can call FusionPro.Composition.StartNewStack() at any arbitrary time in OnRecordStart.

 

So, this is somewhat of an intractable problem. ODBC simply doesn't give us the kind of access we need to the data in order to compose records out of order for stacked imposition.

 

Therefore, you will need to use a different type of data, such as a flat file. The good news is that, in FusionPro 9.2, you can use Excel and DBF data sources directly, without having to go through ODBC, on both Windows and Mac, and both of those data sources work just fine with stacking.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...