C# 如何打印GMap.NET地图?
所以在表单上有GMapControl。我想打印地图,这是代码C# 如何打印GMap.NET地图?,c#,.net,printing,.net-4.0,gmap.net,C#,.net,Printing,.net 4.0,Gmap.net,所以在表单上有GMapControl。我想打印地图,这是代码 PrintDocument doc = new PrintDocument { DocumentName = "Map printing file" }; doc.PrintPage += DocOnPrintPage; PrintDialog dialog = new PrintDialog { Document = doc }; DialogResult result = dialog.ShowDialog(); if (resu
PrintDocument doc = new PrintDocument { DocumentName = "Map printing file" };
doc.PrintPage += DocOnPrintPage;
PrintDialog dialog = new PrintDialog { Document = doc };
DialogResult result = dialog.ShowDialog();
if (result == DialogResult.OK) doc.Print();
及
我使用的是ToImage()
方法,但它不能按我所希望的那样工作(它像PrintScreen,因为还有其他对象,如游标、对话框等)。没有这个对象,有没有解决方法来实现打印?
p.S.
Gmap.Net.Core
和Gmap.Net.WindowForms
verison是1.7.0.0,而.Net Framework版本是4.0,我无法升级.Net Framework版本,因为一些客户端正在使用Windows XP。问题通过使用临时映像得到解决
string path = Path.GetTempPath() + Path.GetRandomFileName() + @".png";
_tmpImage = View.gmap.ToImage();
if (_tmpImage == null) return;
_tmpImage.Save(path);
PrintDocument doc = new PrintDocument { DocumentName = "Map printing file" };
doc.PrintPage += DocOnPrintPage;
PrintDialog dialog = new PrintDialog { Document = doc };
DialogResult result = dialog.ShowDialog();
if (result == DialogResult.OK) doc.Print();
通过使用临时图像解决了此问题
string path = Path.GetTempPath() + Path.GetRandomFileName() + @".png";
_tmpImage = View.gmap.ToImage();
if (_tmpImage == null) return;
_tmpImage.Save(path);
PrintDocument doc = new PrintDocument { DocumentName = "Map printing file" };
doc.PrintPage += DocOnPrintPage;
PrintDialog dialog = new PrintDialog { Document = doc };
DialogResult result = dialog.ShowDialog();
if (result == DialogResult.OK) doc.Print();
假设您有一个名为“MyMap”的GMap.NET.WindowsForms.GMapControl,则使用以下命令:
Dim ThisMap As New Bitmap(MyMap.Width, MyMap.Height)
MyMap.DrawToBitmap(ThisMap, New Rectangle(0, 0, SavImg.Width, SavImg.Height))
然后,您可以使用“ThisMap”执行您想要的操作。假设您有一个名为“MyMap”的GMap.NET.WindowsForms.GMapControl,然后使用以下命令:
Dim ThisMap As New Bitmap(MyMap.Width, MyMap.Height)
MyMap.DrawToBitmap(ThisMap, New Rectangle(0, 0, SavImg.Width, SavImg.Height))
然后你可以用“这张地图”做你想做的事情