以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  打印图片  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=153715)

--  作者:fendouww
--  发布时间:2020/8/20 12:03:00
--  打印图片
以下之前测试是好的,现在实然只能打印个边出来,不知道为什么? 打印效果如图
此主题相关图片如下:snipaste_2020-08-20_12-02-20.png
按此在新窗口浏览图片


Dim doc As New PrintDoc \'定义一个报表
                doc.PageSetting.PaperKind = 9
                doc.PageSetting.Landscape = True
                Doc.PageSetting.LeftMargin = 20 \'设置左边距
                Doc.PageSetting.RightMargin = 20 \'设置右边距
                Doc.PageSetting.TopMargin = 10 \'设置上边距
                Doc.PageSetting.BottomMargin = 10 \'设置下边距
                Dim rm As prt.RenderImage  \'定义一个图片对象
                For Each i As Row In rs
                    If i("发票") <> Nothing Then
                        \' Dim fil As String  = i("发票")
                        Dim fi As List(of String) = i.DataRow.Lines("发票")  \'fil.Split(vbcrlf)
                        Dim file As String
                        For Each ff As String In fi
                            ff = ff.Trim()
                            file = "\\\\10.100.100.129\\产品中心\\foxtable资料\\发票\\" & ff
                            Dim img As image = getImage(file)
                            If img IsNot Nothing Then
                                \'Dim rep As New prt.RenderEmpty \'定义一个新的空对象
                                \'rep.BreakBefore = prt.BreakEnum.Page \'打印前换页
                                \'doc.Body.Children.Add(rep ) \'加入到报表中
                                rm = new prt.RenderImage
                                rm.Image = img \'请改为实际的图标名称和路径
                                rm.Width = "Parent.Width" \'宽度等于页面宽度
                                rm.Height = "Auto" \'高度由图片大小自动决定
                                \' rm.Style.ImageAlign.StretchHorz = False \'禁止图片水平拉伸
                                rm.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.Center \'居中显示
                                rm.BreakBefore = prt.BreakEnum.Page
                                doc.Body.Children.Add(rm) \'将表格对象加入到报表中
                                \'Doc.Preview()
                                \'Doc.PrinterName = "HP LaserJet 6L"
                            End If
                        Next
                    End If
                Next
                doc.Print()


--  作者:有点蓝
--  发布时间:2020/8/20 12:14:00
--  
可能是打印机设置的默认打印纸不正确
--  作者:fendouww
--  发布时间:2020/8/20 12:28:00
--  
但打印机设置的就是A4纸,为什么会只打个边呢?...
--  作者:有点蓝
--  发布时间:2020/8/20 13:33:00
--  
我测试代码没有问题。关闭退出项目,删除项目所在的文件夹里的bin目录,然后重启项目试试。

或者上传实例看看
[此贴子已经被作者于2020/8/20 13:33:50编辑过]