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


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

主题:自动生成PDF

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


加好友 发短信
等级:超级版主 帖子:107846 积分:548581 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/6 20:31:00 [只看该作者]

Adobe Acrobat X Pro没有用过,我也不懂。

如果使用专业报表,把旋转后的图片给专业报表不就行了,都不需要保存

Dim doc As New PrintDoc '定义一个报表对象
Dim rm As New prt.RenderImage '定义一个图片对象
Dim bmp As New bitmap("f:\333.jpg")
bmp.RotateFlip(RotateFlipType.Rotate90FlipNone)
rm.Image = bmp '设置图片
rm.Style.Borders.All = New prt.Linedef(1, Color.Red) '设置边框
doc.Body.Children.Add(rm) '将图片对象加入报表
Doc.Preview() '预览

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


加好友 发短信
等级:九尾狐 帖子:2234 积分:15284 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2019/9/6 21:23:00 [只看该作者]

这是我用代码上述代码生成的PDF文件,怎么把图片扩展到整个页面,添加了 rm.Style.ImageAlign.TileHorz = True '
 rm.Style.ImageAlign.TileVert = True '  
也不行

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


加好友 发短信
等级:九尾狐 帖子:2234 积分:15284 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2019/9/6 21:29:00 [只看该作者]

希望能够生成此格式的的

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


加好友 发短信
等级:九尾狐 帖子:2234 积分:15284 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2019/9/6 21:33:00 [只看该作者]

一期09号东一单元05层中户文件是通过代码生成的,一期09号东一单元05层中是用Adobe Acrobat X Pro生成的,希望能够生成后面样式的文件,该怎么设置?

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


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

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

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


加好友 发短信
等级:超级版主 帖子:107846 积分:548581 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/6 22:03:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
kaituozhe
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | 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
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | 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
详细错误信息:
内存不足。

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


加好友 发短信
等级:超级版主 帖子:107846 积分:548581 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/7 8:58:00 [只看该作者]

内存不足是因为一个程序使用和分配的内存是有限的,并不是电脑有多少内存都可以使用,Foxtable不是专业的图形处理软件,不会考虑到图形处理的内存分配问题,只能使用分辨率比较小的图片。把图片分辨率改小,然后使用后释放一下内存:

比如:
Dim file As String = "d:\test.jpg"
Dim img As image = getImage(file)
Dim bmp As new bitmap(img, 100, 100 * (img.height / img.width))
bmp.save("d:\缩略图.jpg",img.RawFormat)
bmp.Dispose

自己结合使用到专业报表中
[此贴子已经被作者于2019/9/7 8:58:16编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
kaituozhe
  20楼 | 信息 | 搜索 | 邮箱 | 主页 | 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


 回到顶部
总数 23 上一页 1 2 3 下一页