ThinkGeo.com    |     Documentation    |     Premium Support

How to choose Printers when export/print map to printers?

I noticed that the print/export map to image example always print maps to the default printer without poping up the normal printer dialog?



Is there a configuration to control this?



Thanks

Hi guangming, 



I am confused why you print a map in the server side? Should we let browser to take over the printing work from the client side in a web application? Here is a sample to show it, eventually, we are using Window.Print method in the sample.  mvcsamples.thinkgeo.com/Printing/PrintAMap/1,Printing 



Any questions, please let us know. 

Thanks, 

Troy

i guess you did not try the example and see how it works. 
  
 I did not see I want to print a map in the server side. What I am asking is how to show up the printer dialog (the normal windows print dialog) so users can select more options before printing, other than propgramatically setting a lot of options.  
  
 Specifically, I would like to select which printer to go. So far the example always prints to the default printer. 
  
 I hope this is clear. 
  
 Thanks, 


Guangming,



I think I knew the sample "WebPrinterSample" if you mean it. In this sample, we can see the "btnToPrinter_Click" method, this is also a server side printing. I sure if we publish this sample on a IIS server, then all the printings are happening on the server side and client side or end-user would never know it. In this case, it have to use browser print component in client side. 



If you mean the "PrintPreview_CS_WinForms" or "PrintPreview_CS_WPF" sample, since we are using PrintDocument, then we can use PrintDialog to popup the printer settings. As the codes below:



PrintPreviewDialog printPreviewDialog = new PrintPreviewDialog();
            PrintDialog printDialog = new PrintDialog();
            printDialog.Document = printDocument;
            printDialog.ShowDialog();



Troy

I am using MVC so I would like to pop up the printer dialog on the client side using browser print component as you recommended. 
  
 My app is a web application so that the winforms example does not work. 
  
 Could you please provide an example? or advise some direction? 
  
 Thanks,

Hi guangming,  
  
 We can call the client function Map1.PrintMap() to print map, then we will get a dialog to choose printer.  
  
 Would you please have a try? 
  
 Hope it helps and any question don’t hesitate to let us know. 
  
 Regards

I knew that. I want to print out a customized map (users can choose which components eg scaleline,legend, to include). 
  
 Any ideas?

Hi guangming, 
  
 The PrintMap() function will also print out these adornment components.  
  
 In other word, for the sample “WebPrinterSample”, call PrintMap() function after user customized the map, the whole map include components added by user will be printed out.  
  
 Would you please have a try? 
  
 Thanks

that function always print out everything on the map. 
  
 What I want is to ask user to select components he wants to include on the map, then print it out. 
  
 I do not think that that function allows such customization?

Hi guangming, 
  
 I’m guessing what you want is a page like our print preview sample doing.  
  
 Then here is my solution.  
  
 1. Call map.GetBitmap () to get the image of current map. 
  
 2. Add the image to an ImagePrinterLayer in another map, this map is used for preview and allow user choose some other print components like ScaleLine.  
  
 3. Call Map.PrintMap() to print previewed map after user choose components. 
  
 If anything I misunderstand, please feel free to let us know. 
  
 Thanks