地图排版打印 |
地图制作完成后,常常需要将制作好的地图打印输出,以图片的形式插入到电子文档中或直接打印输出为纸质地图,下面就介绍地图布局的打印与输出。
SuperMap组件产品支持输出多种多样的文件格式包括:*.bmp、*.jpg、*.png、*.eps、*.pdf、*.emf、*.gif、*.tiff。
注意:
l 输出为 *.bmp、*.jpg、*.png、*.tiff 时,支持设置DPI,支持的DPI从200到1600,采用屏幕分辨率;
l 输出为 *.png 和 *.gif 时,支持设置背景透明;
l 输出为 *.pdf 时,可以选择矢量输出或者栅格输出,并且在输出时控制是否输出在地图中设置的点、线、面风格;
l 输出为 *.pdf 时,若设置输出为矢量文件,则文件分层输出,输出后,可以控制单个图层是否显示。
打印是将图像发送到输出设备的过程,而布局打印与普通打印相比具有特殊性,包括更大的打印页面、占用更多的系统资源、分幅打印、图层多样化等。
SuperMap 组件产品共提供两种打印方式:矢量打印和栅格打印。其中,矢量打印未经特殊处理,使用打印机直接打印,因而通常不支持渐变、半透明等效果;栅格打印,在打印前先在内部进行特殊处理,然后将处理好的结果通过打印机打印,支持渐变、半透明等效果。
SuperMap 组件产品提供的 MapLayout.PrintToFile() 方法,支持设置出图的图片类型和 DPI 出图方式。对于大幅面、大数据地图的输出,可以通过此接口将地图输出成高分辨率的某种格式的图片,然后再对输出的图片进行打印。此外,以栅格方式打印时,通过设置布局打印处理时的逻辑 DPI(Printer.LogicDPI属性)也可以提升打印的效果。
通过不断地优化以及栅格出图方式的支持,使用 SuperMap 组件产品基本上可以支持任意大幅面、大数据的地图的打印。
针对布局打印的特殊性,SuperMap 组件产品提供了 Printer类,用于对布局打印参数进行设置,其方法和属性见表 5.1和表 5.2所示。
表 5.1 Printer类方法列表
类型 |
名称 |
描述 |
void |
|
打印布局。 |
String |
ToString |
输出专题图格式化字符串。 |
表 5.2 Printer类属性列表
类型 |
名称 |
描述 |
Copies |
获取或设置要打印的副本数,默认值为1。 |
|
DeviceDPI |
获取或设置打印机的DPI。 |
|
Int32 |
FromPage |
获取或设置要打印的起始页码。 |
Boolean |
IsValidPrinter |
获取打印机是否合法。 |
Boolean |
IsVectorPrint |
获取或设置是否以矢量方式打印。 |
Int32 |
LogicDPI |
获取或设置布局打印处理时的逻辑DPI,该值只在以栅格方式打印时使用,默认值为200。 |
PaperMargin |
获取或设置页边对象。 |
|
PaperOrientation |
Orientation |
获取或设置打印纸面的朝向。 |
PaperSize |
PaperSize |
获取或设置打印页面大小。 |
获取或设置打印机的名称。 |
||
String |
PrintFileName |
获取或设置打印文件的名称,该属性在将布局通过虚拟打印机打印时有效。 |
Int32 |
ToPage |
获取或设置要打印的结束页码。 |