以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助] 打印时出现一道白线  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=158271)

--  作者:2425004926
--  发布时间:2020/11/13 16:09:00
--  [求助] 打印时出现一道白线

图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20201113160650_爱奇艺.jpg
图片点击可在新窗口打开查看

打印时出现一道白线,导出PDF时却没有,如果导出PDF打印又会出现各种边距的问题,增加很大工作量,能否解决这个白线的问题


With Tables(e.Form.name & "_table1")
    If .Count > 0 Then
        Dim i As Integer
        Dim ii As Integer
        Dim i1 As Integer = .TopRow                                    \'最上行位置
        Dim i2 As Integer = .BottomRow                                 \'最末行位置
        Dim s As Integer
        s = i2 - i1 +1   \'选择的行数
        \'定义报表
        Dim doc As New PrintDoc \'定义一个报表
        doc.PageSetting.PaperKind = 11 \'纸张类型改为A4
        doc.PageSetting.Landscape = True \'横向打印
        Doc.PageSetting.LeftMargin = 57 \'设置左边距
        Doc.PageSetting.RightMargin = 10 \'设置右边距
        Doc.PageSetting.TopMargin = 10 \'设置上边距
        Doc.PageSetting.BottomMargin = 3 \'设置下边距
        Dim ra As prt.RenderEmpty \'定一个空对象
        Dim drs As List(Of DataRow)
        drs = .DataTable.Select("[选] = True")
        For Each dr As DataRow In drs
            ra = new prt.RenderEmpty \'定义一个新的空对象
            ra.BreakBefore = prt.BreakEnum.Page \'打印前换页
            doc.Body.Children.Add(ra) \'加入到报表中
            \'表格
            Dim rt As New prt.RenderTable() \'定义一个表格对象
            rt = New prt.RenderTable() \'定义一个表格对象
            rt.Rows.Count = 1 \'设置行数
            rt.Cols.Count = 1 \'设置列数
            rt.Style.GridLines.All = New prt.Linedef(Color.Transparent) \'将表格的颜色设为无色Transparent,red,
            rt.Width = 140
            \'rt.Height = 150
            Dim h As Integer
            h = Round2(140 * dr("高长比例"),1)    \'第一行高度
            rt.rows(0).Height = h
            rt.Style.Padding.Bottom = 1 \'左边距5毫米
            
            doc.Body.Children.Add(rt) \'将表格对象加入到报表中
            \'图片
            Dim rm As New prt.RenderImage() \'定义一个图片对象
            rm = New prt.RenderImage() \'定义一个图片对象
            Dim txt As String
            txt = dr("路径")
            rm.Image = GetImage(txt) \'请改为实际的图标名称和路径
            rm.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.Center \'图片水平居中
            rm.Style.ImageAlign.AlignVert = prt.ImageAlignVertEnum.Top \'图片垂直居下
            rm.Style.ImageAlign.StretchHorz = True \'禁止水平方向扩展图片
            rm.Style.ImageAlign.StretchVert = True \'禁止垂直方向扩展图片
            rt.Cells(0,0).RenderObject = rm \'将单元格内容设置为图片对象rm
            \'题名
            Dim rx As New prt.RenderText \'创建一个文本
            rx.Text = dr("题名") \'设置文本对象的内容
            rx.Text = dr("档案号") & ". " & dr("题名") \'设置文本对象的内容
            rx.Width = 140
            rx.Style.Font = New Font("宋体", 11, FontStyle.Bold) \'设置字体如果不设置字体,会出现导出PDF乱码
            rx.Style.LineSpacing = 120 \'1.3倍行距
            rx.Style.TextAlignHorz = prt.AlignHorzEnum.Left \'水平居左
            rx.Style.TextAlignVert = prt.AlignVertEnum.Top \'垂直居上
            doc.Body.Children.Add(rx) \'将文本对象加入到报表
            
            rx = New prt.RenderText \'创建一个文本
            rx.text = "- " & dr("页码") & " -"
            rx.Style.Font = New Font("宋体", 11, FontStyle.Bold) \'设置字体如果不设置字体,会出现导出PDF乱码
            rx.x = 65
            rx.Y = 137
            doc.Body.Children.Add(rx) \'将文本对象加入到报表
        Next
        Doc.Preview() \'预览报表
    End If
End With

--  作者:有点蓝
--  发布时间:2020/11/13 16:26:00
--  
我测试没有这种问题,换个图片也这样?上传实例看看