找回密码
 立即注册

QQ登录

只需一步,快速开始

LeeDongmei

金牌服务用户

44

主题

237

帖子

531

积分

金牌服务用户

积分
531

活字格认证微信认证勋章元老葡萄

LeeDongmei
金牌服务用户   /  发表于:2010-11-18 11:30  /   查看:12747  /  回复:19
请参照附件。
在spread中显示正常,但导出PDF后,出现如下问题:
1 表头的分隔线在代码中已经设置成None,为何导出PDF时,还显示出来。
2 明细中后部分的线也已经设置,但没有显示出来。
我的代码如下,请指教。
    Private Sub line()
        Dim k As Integer
        Dim j As Integer
        '表头颜色为通透
         FpSpread1.Sheets(0).ColumnHeader.DefaultStyle.BackColor = Drawing.Color.Transparent
        '表头上部分边框为通透
        For j = 0 To 18
            FpSpread1.Sheets(0).ColumnHeader.Columns(j).Border.BorderStyle = BorderStyle.None
            FpSpread1.Sheets(0).ColumnHeader.Columns(j).Border.BorderColor = Drawing.Color.Transparent
        Next
        '表头下部分边框为黑色实线
        For j = 5 To 8
         For k = 0 To 18
              FpSpread1.Sheets(0).ColumnHeader.Cells(j, k).Border.BorderStyle = BorderStyle.Solid
              FpSpread1.Sheets(0).ColumnHeader.Cells(j, k).Border.BorderSize = 1
              FpSpread1.Sheets(0).ColumnHeader.Cells(j, k).Border.BorderColor = Drawing.Color.Black
         Next
       Next
       '表格明细设置黑实线
       FpSpread1.Sheets(0).DefaultStyle.BackColor = Drawing.Color.Transparent
       FpSpread1.Sheets(0).DefaultStyle.Border.BorderStyle = BorderStyle.Solid
       FpSpread1.Sheets(0).DefaultStyle.Border.BorderSize = 1
       FpSpread1.Sheets(0).DefaultStyle.Border.BorderColor = Drawing.Color.Black
     End Sub

jpg

jpg

19 个回复

倒序浏览
gw0506
超级版主   /  发表于:2010-11-18 12:27:00
沙发
你可以在打印到PDF之前,将你想去掉的Border的Size设为1,Color设为White即可。
回复 使用道具 举报
LeeDongmei
金牌服务用户   /  发表于:2010-11-18 13:26:00
板凳
我按版主说的设定以后,问题依旧。
可能是我的表述不太清楚,应该是保存文件到PDF,而不是直接打印到PDF中。
还请再帮忙调查。
回复 使用道具 举报
gw0506
超级版主   /  发表于:2010-11-18 13:48:00
地板
你是通过SavePdf接口做的吧?
我说的意思,体现到代码里是:

  1. this.FpSpread1.Sheets[0].ColumnHeader.Columns[i].Border.BorderStyle = BorderStyle.Solid;
  2. this.FpSpread1.Sheets[0].ColumnHeader.Columns[i].Border.BorderColor = Color.White;
  3. this.FpSpread1.Sheets[0].ColumnHeader.Columns[i].Border.BorderSize = 1;
复制代码
我这里没问题,请你再确认一下~
不行就把demo发给我~
回复 使用道具 举报
LeeDongmei
金牌服务用户   /  发表于:2010-11-19 15:59:00
5#
我是按上述代码作了设定,第一页虽正常显示,但第二页以后还是出现暗格。
后来追加设定:
        FpSpread1.Sheets(0).GridLineColor = Drawing.Color.White
        FpSpread1.Sheets(0).GridLines = GridLines.None
问题解决。
回复 使用道具 举报
LeeDongmei
金牌服务用户   /  发表于:2010-11-19 16:03:00
6#
关于上述的第二个问题:
  明细中后部分的线已经设置,但没有显示出来(请参考1楼的图片,最后两列)
还请版主多指教。
回复 使用道具 举报
gw0506
超级版主   /  发表于:2010-11-19 16:10:00
7#
我这边没有问题。不如你给我发个demo,我帮你看看~
回复 使用道具 举报
LeeDongmei
金牌服务用户   /  发表于:2010-11-19 16:54:00
8#
麻烦你了。

test.rar

7.84 KB, 下载次数: 722

rar

回复 使用道具 举报
gw0506
超级版主   /  发表于:2010-11-19 18:07:00
9#
经过测试,是因为ZoomFactor设为0.7造成的bug。估计是0.7加上其他各种设置,造成内部计算精度的偏差造成的。
如果将ZoomFactor调整为0.6,这个问题就解决了。
你看这样可以吗?
回复 使用道具 举报
LeeDongmei
金牌服务用户   /  发表于:2010-11-23 11:48:00
10#
谢谢版主!ZoomFactor调整为0.6确实显示正常了。
不过,这样形成的版面字体太小,余白太大了。作为正式使用的资料不太合适。
能否让余白小些,版面尽量大些呢?
我们要形成的单据基本上内容项目特别多,而且都是表格形式的.
我在做其他表格时,都遇到了同样的问题,非常苦恼,希望有办法解决。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部