# Multi Page Printer Layer

**URL:** <https://community.thinkgeo.com/t/multi-page-printer-layer/5931>\
**Category:** WebForms\
**Created:** [September 12, 2011, 12:44pm UTC](https://community.thinkgeo.com/t/multi-page-printer-layer/5931 "2011-09-12T12:44:18Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![Gregory1](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/g/43a26b/32.png) [@Gregory1](https://community.thinkgeo.com/u/Gregory1)\
**Post date:** [September 12, 2011, 12:44pm UTC](https://community.thinkgeo.com/t/multi-page-printer-layer/5931/1 "2011-09-12T12:44:18Z")

</div>

How&nbsp;would&nbsp;we&nbsp;go&nbsp;about&nbsp;a&nbsp;Multi&nbsp;Page&nbsp;report&nbsp;with&nbsp;the&nbsp;printer&nbsp;layers&nbsp;?

---

<div class="post-metadata">

**Author:** ![Gary2](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/g/49beb7/32.png) [@Gary2](https://community.thinkgeo.com/u/Gary2)\
**Post date:** [September 13, 2011, 2:49pm UTC](https://community.thinkgeo.com/t/multi-page-printer-layer/5931/2 "2011-09-13T14:49:13Z")

</div>

Gregory,&nbsp;  
&nbsp;&nbsp;  
&nbsp;We&nbsp;can&nbsp;add&nbsp;multi&nbsp;PagePrinterLayer&nbsp;in&nbsp;one&nbsp;winformmap,&nbsp;and&nbsp;add&nbsp;title,&nbsp;map,&nbsp;datagrid&nbsp;etc&nbsp;for&nbsp;each&nbsp;of&nbsp;them.&nbsp;  
&nbsp;&nbsp;  
&nbsp;Regards,&nbsp;  
&nbsp;&nbsp;  
&nbsp;Gary

---

<div class="post-metadata">

**Author:** ![Gary2](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/g/49beb7/32.png) [@Gary2](https://community.thinkgeo.com/u/Gary2)\
**Post date:** [September 15, 2011, 3:19pm UTC](https://community.thinkgeo.com/t/multi-page-printer-layer/5931/3 "2011-09-15T15:19:02Z")

</div>

Gregory,&nbsp;  
&nbsp;&nbsp;  
&nbsp;I’m&nbsp;planning&nbsp;to&nbsp;write&nbsp;a&nbsp;sample&nbsp;for&nbsp;you&nbsp;to&nbsp;create&nbsp;multi&nbsp;page&nbsp;report&nbsp;but&nbsp;I&nbsp;find&nbsp;a&nbsp;bug&nbsp;in&nbsp;the&nbsp;progress.&nbsp;  
&nbsp;&nbsp;  
&nbsp;I&nbsp;will&nbsp;fix&nbsp;that&nbsp;first&nbsp;and&nbsp;then&nbsp;give&nbsp;you&nbsp;some&nbsp;sample&nbsp;code&nbsp;to&nbsp;help&nbsp;you&nbsp;resolve&nbsp;this&nbsp;problem.&nbsp;  
&nbsp;&nbsp;  
&nbsp;Thank&nbsp;you&nbsp;for&nbsp;your&nbsp;patience.&nbsp;  
&nbsp;&nbsp;  
&nbsp;Regards&nbsp;  
&nbsp;&nbsp;  
&nbsp;Gary&nbsp;  
&nbsp;&nbsp;

---

<div class="post-metadata">

**Author:** ![Gary2](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/g/49beb7/32.png) [@Gary2](https://community.thinkgeo.com/u/Gary2)\
**Post date:** [September 16, 2011, 3:25pm UTC](https://community.thinkgeo.com/t/multi-page-printer-layer/5931/4 "2011-09-16T15:25:20Z")

</div>

Gregory,&nbsp;  
  
  
  
Thank&nbsp;you&nbsp;for&nbsp;your&nbsp;patience.&nbsp;  
  
  
  
Please&nbsp;download&nbsp;our&nbsp;latest&nbsp;version&nbsp;tomorrow&nbsp;and&nbsp;try&nbsp;this&nbsp;code&nbsp;in&nbsp;our&nbsp;printer&nbsp;sample.&nbsp;  
  
`PagePrinterLayer page2 = new PagePrinterLayer();            page2.PageSize = PrinterPageSize.Custom;            float pageWidth = (float)PrinterHelper.ConvertLength(8.5, PrintingUnit.Inch, PrintingUnit.Point);            float pageHeight = (float)PrinterHelper.ConvertLength(11, PrintingUnit.Inch, PrintingUnit.Point);            double centerPointX = PrinterHelper.ConvertLength(10, PrintingUnit.Inch, PrintingUnit.Point);            double centerPointY = PrinterHelper.ConvertLength(0, PrintingUnit.Inch, PrintingUnit.Point);            page2.SetPosition(pageWidth, pageHeight, centerPointX, centerPointY, PrintingUnit.Point);            printerOverlay.PrinterLayers.Add("PageLayer2", page2);`&nbsp;&nbsp;  
  
  
  
I&nbsp;hope&nbsp;this&nbsp;can&nbsp;help.&nbsp;  
  
  
  
Regards,&nbsp;  
  
  
  
Gary

---

<div class="post-metadata">

**Author:** ![Gregory1](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/g/43a26b/32.png) [@Gregory1](https://community.thinkgeo.com/u/Gregory1)\
**Post date:** [September 19, 2011, 2:36am UTC](https://community.thinkgeo.com/t/multi-page-printer-layer/5931/5 "2011-09-19T02:36:37Z")

</div>

Wow&nbsp;thank&nbsp;you&nbsp;gary!&nbsp;&nbsp;  
&nbsp;If&nbsp;i&nbsp;could&nbsp;give&nbsp;you&nbsp;a&nbsp;big&nbsp;hug,&nbsp;i&nbsp;would&nbsp;:)

---

<div class="post-metadata">

**Author:** ![Gregory1](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/g/43a26b/32.png) [@Gregory1](https://community.thinkgeo.com/u/Gregory1)\
**Post date:** [September 19, 2011, 2:43am UTC](https://community.thinkgeo.com/t/multi-page-printer-layer/5931/6 "2011-09-19T02:43:59Z")

</div>

Quick&nbsp;question,&nbsp;is&nbsp;there&nbsp;an&nbsp;example&nbsp;for&nbsp;the&nbsp;printerOverlay&nbsp;using&nbsp;google&nbsp;maps&nbsp;?

---

<div class="post-metadata">

**Author:** ![Gary2](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/g/49beb7/32.png) [@Gary2](https://community.thinkgeo.com/u/Gary2)\
**Post date:** [September 19, 2011, 1:09pm UTC](https://community.thinkgeo.com/t/multi-page-printer-layer/5931/7 "2011-09-19T13:09:01Z")

</div>

Gregory,&nbsp;  
&nbsp;&nbsp;  
&nbsp;I’m&nbsp;glad&nbsp;it’s&nbsp;useful.&nbsp;  
&nbsp;&nbsp;  
&nbsp;But&nbsp;sorry&nbsp;to&nbsp;say,&nbsp;for&nbsp;now,&nbsp;our&nbsp;printerOverlay&nbsp;only&nbsp;support&nbsp;printerLayer,&nbsp;so&nbsp;we&nbsp;have&nbsp;a&nbsp;MapPrinterLayer&nbsp;to&nbsp;receive&nbsp;some&nbsp;other&nbsp;layer&nbsp;and&nbsp;translate&nbsp;it&nbsp;to&nbsp;the&nbsp;printerLayer&nbsp;format,&nbsp;but&nbsp;it&nbsp;only&nbsp;support&nbsp;vertex&nbsp;type&nbsp;layer,&nbsp;it&nbsp;still&nbsp;have&nbsp;problems&nbsp;when&nbsp;use&nbsp;some&nbsp;layer&nbsp;with&nbsp;projection.&nbsp;  
&nbsp;&nbsp;  
&nbsp;We&nbsp;will&nbsp;keep&nbsp;working&nbsp;on&nbsp;that&nbsp;and&nbsp;make&nbsp;some&nbsp;new&nbsp;version.&nbsp;  
&nbsp;&nbsp;  
&nbsp;Regards,&nbsp;  
&nbsp;&nbsp;  
&nbsp;Gary

---

<div class="post-metadata">

**Author:** ![Gregory1](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/g/43a26b/32.png) [@Gregory1](https://community.thinkgeo.com/u/Gregory1)\
**Post date:** [September 20, 2011, 2:25am UTC](https://community.thinkgeo.com/t/multi-page-printer-layer/5931/8 "2011-09-20T02:25:57Z")

</div>

in&nbsp;the&nbsp;mean&nbsp;time,&nbsp;i&nbsp;need&nbsp;to&nbsp;do&nbsp;a&nbsp;pdf&nbsp;export..&nbsp;of&nbsp;three&nbsp;maps&nbsp;that&nbsp;can&nbsp;be&nbsp;static&nbsp;images...&nbsp;can&nbsp;this&nbsp;be&nbsp;done&nbsp;?  
  
  
  
I&nbsp;have&nbsp;a&nbsp;Overlays:

Dim&nbsp;google&nbsp;As&nbsp;New&nbsp;GoogleOverlay("Google&nbsp;Map")  
  
Map1.CustomOverlays.Add(google)

Dim&nbsp;DataTabLayer&nbsp;As&nbsp;New&nbsp;TabFeatureLayer("tabfile.tab")  
  
Dim&nbsp;DataTabOverlay&nbsp;As&nbsp;New&nbsp;LayerOverlay("DataTabOverlay",&nbsp;False,&nbsp;TileType.SingleTile)  
  
DataTabOverlay.Layers.Add("DataTabLayer",&nbsp;DataTabLayer)  
  
Map1.CustomOverlays.Add(DataTabOverlay)  
  
  
  
adornmentOverlay.Layers.Add("LengendLayer",&nbsp;legendLayer)  
  
Map1.CustomOverlays.Add(adornmentOverlay)  
  
  
  
Dim&nbsp;PointFeatureLayer&nbsp;As&nbsp;New&nbsp;InMemoryFeatureLayer(myColumnCollection,&nbsp;QueryResultFeatures)  
  
Dim&nbsp;PointLabelLayer&nbsp;As&nbsp;New&nbsp;InMemoryFeatureLayer(myColumnCollection,&nbsp;QueryResultFeatures)  
  
  
  
Map1.DynamicOverlay.Layers.Add("PointFeatureLayer&nbsp;",&nbsp;PointFeatureLayer&nbsp;)  
  
Map1.DynamicOverlay.Layers.Add("PointLabelLayer",&nbsp;PointLabelLayer&nbsp;)  
  
  
  
  
  
Dim&nbsp;RetailersFeatureLayer&nbsp;As&nbsp;New&nbsp;InMemoryFeatureLayer(myColumnCollection,&nbsp;QueryResultFeatures)  
  
Map1.DynamicOverlay.Layers.Add(RetailersFeatureLayer)

&nbsp;

I&nbsp;want&nbsp;to&nbsp;export&nbsp;a&nbsp;pdf&nbsp;with&nbsp;all&nbsp;of&nbsp;the&nbsp;overlays.....&nbsp;is&nbsp;that&nbsp;possible&nbsp;?

&nbsp;

---

<div class="post-metadata">

**Author:** ![Gary2](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/g/49beb7/32.png) [@Gary2](https://community.thinkgeo.com/u/Gary2)\
**Post date:** [September 20, 2011, 10:06am UTC](https://community.thinkgeo.com/t/multi-page-printer-layer/5931/9 "2011-09-20T10:06:00Z")

</div>

Gregory,&nbsp;  
  
  
  
Yes,&nbsp;you&nbsp;can&nbsp;use&nbsp;the&nbsp;PdfExtension&nbsp;to&nbsp;made&nbsp;that.&nbsp;  
  
  
  
Please&nbsp;download&nbsp;the&nbsp;sample&nbsp;and&nbsp;check&nbsp;the&nbsp;code,&nbsp;sorry&nbsp;I&nbsp;have&nbsp;deleted&nbsp;the&nbsp;data&nbsp;because&nbsp;it's&nbsp;too&nbsp;big&nbsp;to&nbsp;upload.&nbsp;  
  
  
  
Regards,&nbsp;  
  
  
  
Gary

[PdfExtensionSamples.zip](https://community.thinkgeo.com/uploads/default/original/2X/0/08060d568ef20abfaab0c71ac93f5acb927606cb.zip) (30.2 KB)

---

<div class="post-metadata">

**Author:** ![Gregory1](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/g/43a26b/32.png) [@Gregory1](https://community.thinkgeo.com/u/Gregory1)\
**Post date:** [September 21, 2011, 6:24am UTC](https://community.thinkgeo.com/t/multi-page-printer-layer/5931/10 "2011-09-21T06:24:53Z")

</div>

Have&nbsp;you&nbsp;got&nbsp;a&nbsp;Web&nbsp;Sample&nbsp;?

---

<div class="post-metadata">

**Author:** ![Gary2](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/g/49beb7/32.png) [@Gary2](https://community.thinkgeo.com/u/Gary2)\
**Post date:** [September 22, 2011, 2:02pm UTC](https://community.thinkgeo.com/t/multi-page-printer-layer/5931/11 "2011-09-22T14:02:47Z")

</div>

Gregory,&nbsp;  
  
  
  
Thank&nbsp;you&nbsp;for&nbsp;your&nbsp;patience.&nbsp;  
  
  
  
Please&nbsp;try&nbsp;the&nbsp;code&nbsp;below:&nbsp;  
  
`public partial class DisplayASimpleMap : System.Web.UI.Page    {        protected void Page_Load(object sender, EventArgs e)        {            if (!Page.IsPostBack)            {                Map1.CurrentExtent = new RectangleShape(-135.47672664498, 53.1062529845545, -76.20327335502, 12.4645242175181);                Map1.MapUnit = GeographyUnit.DecimalDegree;                Map1.MapBackground.BackgroundBrush = new GeoSolidBrush(GeoColor.GeographicColors.ShallowOcean);                ShapeFileFeatureLayer worldLayer = new ShapeFileFeatureLayer(MapPath("~/SampleData/world/cntry02.shp"));                worldLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.Country1;                worldLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle.OutlinePen.StartCap = DrawingLineCap.Round;                worldLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle.OutlinePen.EndCap = DrawingLineCap.Round;                worldLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;                LayerOverlay staticOverlay = new LayerOverlay("World");                staticOverlay.IsBaseOverlay = false;                staticOverlay.Layers.Add("WorldLayer", worldLayer);                Map1.CustomOverlays.Add(staticOverlay);            }        }        protected void Button1_Click(object sender, EventArgs args)        {            PdfGeoCanvas pdfGeoCanvas = new PdfGeoCanvas();            PdfDocument document = new PdfDocument();            PdfPage page = document.AddPage();            pdfGeoCanvas.DrawingArea = new Rectangle(0, 0, 579, 397);            Collection<SimpleCandidate> labelsInLayers = new Collection<SimpleCandidate>();            LayerOverlay worldLayer = (LayerOverlay)Map1.CustomOverlays["World"];            ShapeFileFeatureLayer shapeFile = (ShapeFileFeatureLayer)worldLayer.Layers["WorldLayer"];            pdfGeoCanvas.BeginDrawing(page, Map1.CurrentExtent, GeographyUnit.DecimalDegree);            shapeFile.Open();            shapeFile.Draw(pdfGeoCanvas, labelsInLayers);            shapeFile.Close();            pdfGeoCanvas.EndDrawing();            string filename = @"C:\Test\MapSuite PDF Map.pdf";            document.Save(filename);            Process.Start(filename);        }    }`  
  
  
Any&nbsp;more&nbsp;questions&nbsp;please&nbsp;feel&nbsp;free&nbsp;to&nbsp;let&nbsp;me&nbsp;know.&nbsp;  
  
  
  
Regards,&nbsp;  
  
  
  
Gary
