以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 专业报表合并图片为pdf (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=192206) |
-- 作者:lxhmax -- 发布时间:2024/6/3 11:34:00 -- 专业报表合并图片为pdf If 1=1 Then Dim doc As New PrintDoc Dim rt As New prt.RenderText rt.Text = "Hello Foxtable" rt.Style.TextColor = Color.Red rt.Style.TextAngle = -45 doc.Body.Children.Add(rt) doc.SaveImage("D:\\Users\\Administrator\\Desktop\\专业报表.jpg") End If 老师,为什么上面生成的图片只有36k,可是下面的代码合并生成的pdf有600多k,这有什么办法优化下吗? 我这么做的原因是直接生成的pdf可以编辑,哪怕加密了也可以编辑,我就想着先生成图片再合并成pdf Dim doc2 As New PrintDoc \'定义一个报表对象 For i As Integer = 1 To 100 Dim wjmc As String = "专业报表" wjmc = "D:\\Users\\Administrator\\Desktop\\" & wjmc & "_page" & i & ".jpg" Output.Show(wjmc & "==" & Date.Now) If FileSys.FileExists(wjmc) Then \'如果指定的文件存在 Dim rt As New prt.RenderImage \'定义一个图片对象 rt.Style.Padding.All = -25 \'所有方向的边距都设为2 rt.Width = "100%Parent" \'设置尺寸为容器(页面)尺寸 rt.Height = "100%Parent" rt.Image = GetImage(wjmc) \'设置图片 doc2.Body.Children.Add(rt) \'将图片对象加入报表 \'FileSys.DeleteFile(wjmc,2,2) \'则彻底删除之 Else Exit For End If Next Doc2.SavePdf("D:\\Users\\Administrator\\Desktop\\重新合并.pdf") Output.Show(Date.Now)
|
-- 作者:有点蓝 -- 发布时间:2024/6/3 14:18:00 -- 没有办法优化。不同文件格式需要的空间是不一样的,pdf文件里有很多pdf独有的数据。 |