Question

Create multi-page map book PDF using a grid

  • 18 March 2015
  • 8 replies
  • 5 views

Badge
I'm looking for some guidance on what transformers to use to create a multi-page PDF map book based on a pre-defined grid.  I have a shape file that represents the page extents (the grid) with a page number attribute.  I'd like each page in the PDF to correspond to a grid square extent.  And each page should contain the page number from the grid shape file.

 

Any guidance on which transformers I should be looking at would be much appreciated.

 

Thank you!

8 replies

Badge +3
Use a BoundingBoxAccumulator to extract the total extent. Boundsextractor to aquire x_min, x_max etc.

 

Use a 2DGridAccumulator, use parameters or attributes to set number of rows/coluns.

 

 

If you want the pages to be A3,A4 etc. and fit neatly on the output pages, then create number of rows and columns based on extent devided by the page sizes. (mostly you will end up with some overlap).

 

You can round this and then recreate the grid by calculating pagesize ratio (for A0,A1 etc. this is always the same ) to total heigth and width.

 

 

 

Add any attribute you want to use in the map-driven pages to this grid.

 

 

Also you must have all feature layer have common ID (for instance the pagenumber).

 

So you must also overlay the grid on your features in order to use MapBook DefinitionLayer. (if you wish to use this function in Arcmap that is)

 

 

Use this as an extentlayer in ArcMap. I mostly call it "extent"  ....creative indeed...;)
Badge
Ok, I managed to create the grid using the BoundingBoxAccumulator, BoundsExtractor, and 2DGridAccumulator.

 

Now I need to "chop" up the vector map layers into these "pages".  I need some help with this step.  I read in the map layer, then how do I split up the layer into the pages?  Using the Tiler transformer?

 

Thanks
Badge +3
Tiler is indeed one way to do it.

 

You can use the tiler with the same settings you use on the 2DGridAccumulator.

 

This will take care of the common ID for the DefinitionQuery as well.

 

 

 

If you don't want to chop up the objects, you use a spatialrelator. Extentframe and DefinitionQuery in Arcmap will take care to show only the objects on the page selected. (i prefer that proces mostly, i never use the Tiler. No reason in particular though..))
Badge +3
Here is part of a script that has pagesize choice.

 

 

 

This without making "pagesize to scale" an exact number of pages. Here some overlap will occur.
Badge
I am not using ArcMap in this case.  I'd like to use only FME to create the multi-page PDF document - each page corresponding to a grid square.
Userlevel 2
Badge +17
Hi,

 

 

If you are using the PDF2D writer, create an attribute named "pdf_page_number" to control destination page for each feature. "pdf_page_number" is a format attribute, it represents the page number (1-based).

 

See here to learn more about multi-page support of the PDF2D.

 

FME Readers and Writers > Adobe Geospatial PDF Writer > Writer > Multi-page Support (http://docs.safe.com/fme/html/FME_Desktop_Documentation/FME_Desktop_Help.htm#../Subsystems/FME_Readers_Writers/Content/pdf2d/multi_page_support.htm)

 

 

Takashi
Badge +3
If you use fme the you must use Boundsextractor on the grids. Each set must be used to set the attributes "pdf_world_rectangle" and "pdf_frame_rectangle" (this las tone includes pagemarge, header- footnote space etc.)

 

These must have same aspect ratio.

 

 

In the proces you must create datagrid and reserve space for it, if you intend to use one.

 

Space for titles, vectorgrpahics, like a logo.

 

 

For layers you use, you can set controls like: pdf_feature_order.

 

The styling can alos be controled this way. But in 2014 there is a pdf-styler transfomer.

 

 

I made a pdf writer that does all that and creates pdf books from inoutdata.

 

It is big, and somewhat complex. .

 

 

I used the fme readers and writers pdf section to figure it out. Im gith rebuild it to 2014 transformers someday soon. Improved ArcMap funcionality on mapbook export demotivated that somewhat..;)

 

Good luck with building it.

 

 

 

I have not tried it in 2014.
Badge +3
Rethinking your question.

 

If all you want is to output certain extent divided by a grid and you don't mind chopping them up, then a tiler is sufficient. T

 

After Tiling, create a pdf_page_number based on the tilenumbers.

 

Choose a pagesize in the navigator.

 

The pdf "page untis" must be set to "no".

 

With everything else in default you wil get a multipage pdf with standard values.

 

 

When you need to add more elemenst to your page, or want to control placcement etc. , you do have to set at least some values yourself though.

 

In that case you are advised to read teh Readers and Writers pdf section.

Reply