地图排版打印 |
地图制作完成后,常常需要将制作好的地图打印输出,以图片的形式插入到电子文档中或直接打印输出为纸质地图,下面就介绍地图布局的打印与输出。
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.set/getLogicDPI())也可以提升打印的效果。
通过不断地优化以及栅格出图方式的支持,使用 SuperMap 组件产品基本上可以支持任意大幅面、大数据的地图的打印。
针对布局打印的特殊性,SuperMap 组件产品提供了 Printer类,用于对布局打印参数进行设置,其方法见表 5.1所示。
表 5.1Printer类方法列表
类型 |
名称 |
描述 |
void |
|
打印布局。 |
get/setCopies |
返回或设置要打印的副本数,默认值为1。 |
|
get/setDeviceDPI |
返回或设置打印机的DPI。 |
|
int |
get/setFromPage |
返回或设置要打印的起始页码。 |
boolean |
isValidPrinter |
返回打印机是否合法。 |
boolean |
is/setVectorPrint |
返回或设置是否以矢量方式打印。 |
int |
get/setLogicDPI |
返回或设置布局打印处理时的逻辑DPI,该方法只在以栅格方式打印时使用,默认值为200。 |
PaperMargin |
get/setMargin |
返回或设置页边对象。 |
PaperOrientation |
get/setOrientation |
返回或设置打印纸面的方向。 |
PaperSize |
get/setPaperSize |
返回或设置打印页面大小。 |
get/setPrinterName |
返回或设置打印机的名称。 |
|
String |
get/setPrintFileName |
返回或设置打印文件的名称,该方法在将布局通过虚拟打印机打印时有效。 |
int |
get/setToPage |
返回或设置要打印的结束页码。 |