Foxtable(狐表)用户栏目专家坐堂 → 自动生成PDF


  共有2659人关注过本帖树形打印复制链接

主题:自动生成PDF

帅哥哟,离线,有人找我吗?
kaituozhe
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2234 积分:15284 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2019/9/6 21:34:00 [显示全部帖子]

为什么不能上传附件了,PDF格式的或压缩文档都不能上传,这是什么原因?

 回到顶部
帅哥哟,离线,有人找我吗?
kaituozhe
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2234 积分:15284 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2019/9/7 8:06:00 [显示全部帖子]

Dim doc As New PrintDoc '定义一个报表对象
Dim rm As New prt.RenderImage '定义一个图片对象
Dim dir4 As String = "F:\档案管理\张三公司\楼房合同明细\合同整理\"
Dim str1,str2,str3,mz1,mz2 As String
If FileSys.DirectoryExists(dir4)=True Then
    For Each Fileml As String In FileSys.GetDirectories(dir4)
        Dim xm As String  = Right(Fileml,Fileml.Length-Fileml.LastIndexOf("\")-1)
       
        Dim mc = System.Text.RegularExpressions.Regex.Matches(xm, "[0-9]+")
        If mc.count > 0 Then
            str1 = mc(0).value
        End If
        mc = System.Text.RegularExpressions.Regex.Matches(xm, "[\u4e00-\u9fa5]+")
        If mc.count > 0 Then
            str3= mc(0).value
        End If
        'msgbox(str1)
        'msgbox(str3)
        For Each file As String In FileSys.GetFiles(fileml)
            'msgbox(file)
           
            rm = New prt.RenderImage '定义一个图片对象
            rm.Width = 200 '"Parent.Width" '宽度等于页面宽度
            'rm.Height = "Auto" '高度由图片大小自动决定
            rm.Height = 290 '"Parent.Height" '高度由图片大小自动决定
            Doc.PageSetting.LeftMargin = 5 '设置左边距
            Doc.PageSetting.RightMargin = 5 '设置右边距
            Doc.PageSetting.TopMargin = 5 '设置上边距
            Doc.PageSetting.BottomMargin = 5 '设置下边距
           
            Dim bmp As New bitmap(File)
            bmp.RotateFlip(RotateFlipType.Rotate90FlipNone)
            rm.Image = bmp '设置图片
            'rm.Image = GetImage(File) '设置图片
            'rm.Style.ImageAlign.TileHorz = True '禁止图片水平拉伸
            'rm.Style.ImageAlign.TileVert = True '禁止图片水平拉伸
            rm.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.Center '居中显示
            doc.Body.Children.Add(rm) '将图片对象加入报表
        Next
        Dim dr As DataRow = DataTables("楼面情况汇总").find("购买户主 = '" & str3 & "'And 备案编号 = '" & str1 & "' ")
        If dr IsNot Nothing Then
            mz1 = dr("楼房编号") & "买卖合同-" & dr("购买户主") & ".PDF"
            mz2 = dr("楼房编号") & "买卖合同-" & str1 & dr("购买户主") & ".PDF"
        End If
        'msgbox(dir4 & mz1)
        'msgbox(dir4 & mz2)
        doc.SavePDF(dir4 &  mz1  )
        'doc.SavePDF(dir4 &  mz2  )
    Next
End If

使用上述代码生成PDF文件时,"F:\档案管理\张三公司\楼房合同明细\合同整理\"目录下有两个文件夹,每个文件夹下有20张图片,每张图片约定2.5M,在生成PDF文件,显示失败,因为内存不足,可是我的电脑内存为32G,这是什么原因?应该怎么处理?


 回到顶部
帅哥哟,离线,有人找我吗?
kaituozhe
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2234 积分:15284 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2019/9/7 8:16:00 [显示全部帖子]

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2019.9.8.1
错误所在事件:窗口,同步数据库,Button6,Click
详细错误信息:
内存不足。

 回到顶部
帅哥哟,离线,有人找我吗?
kaituozhe
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2234 积分:15284 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2019/9/7 9:27:00 [显示全部帖子]

不知道以下代码应该那个在前那个在后,获取图片、旋转、添加到报表、释放内存,是这样吗?

Dim img As image = getImage(file)
            msgbox(1)
            Dim bmp As new bitmap(img, 100, 100 * (img.height / img.width))
            'bmp.save("d:\缩略图.jpg",img.RawFormat)
           
            bmp.RotateFlip(RotateFlipType.Rotate90FlipNone)
            rm.Image = bmp '设置图片
            rm.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.Center '居中显示
            doc.Body.Children.Add(rm) '将图片对象加入报表
            bmp.Dispose


 回到顶部
帅哥哟,离线,有人找我吗?
kaituozhe
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2234 积分:15284 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2019/10/2 2:59:00 [显示全部帖子]

我拍的图片就横向的,但是我已经手动旋转为纵向,但是生成的PDF还是横向的,是什么原因?

 回到顶部
总数 16 上一页 1 2