发表用户:讨论贴
收集整理:James.Liu
相关讨论:http://www.mygis.com.cn/forum/dispbbs.asp?boardID=4&ID=502
信息原始来源:James MapInfo技术论坛

文章标题:VB+MapX的打印问题?

xhui

[求助]vb+mapx的打印问题?
如下的代码执行后为什么打印出的地图只是一半呢?在打印设之中进行设置成横向打印也不行,应该如何解决呢?多谢指点!
Private Sub mnuFilePrint_Click()
    CommonDialog1.CancelError = True
On Error GoTo ErrHandler
    With CommonDialog1
        .DialogTitle = "打印"
        .PrinterDefault = True
        .ShowPrinter
    End With
    
    Map1.PaperUnit = miPaperUnitMillimeter
    Printer.CurrentX = 0
    Printer.CurrentY = 0
    Printer.Print " "
    Map1.PrintMap Printer.hDC, 0, 0, Map1.MapPaperWidth * 100, Map1.MapPaperHeight * 100
    Printer.NewPage
    Printer.EndDoc
    Exit Sub
    
ErrHandler:
    Exit Sub        
End Sub 

James.Liu

建议别用上面的方法实现,
可以通过map.exportmap输出成wmf/emf(矢量)文件,然后用报表添加图形控件,引入map输出的图形文件,这里面设置横打竖打是没有问题的。

xhui

请版主给个示例,我不是很理解?

James.Liu

1.map1.exportmap("e:\a.wmf",)
2.使用报表工具,生成一张报表prntMap,里面放一个image控件
3.image.picture="e:\a.wmf"
4.prntMap.printer.show
4.prntmap.print.

leidiang

是一个不错的主意
*.wmf是什么格式的文件?
它打出来的图形效果怎么样?

James.Liu

wmf本身也是矢量格式,打印出来效果很好