以文本方式查看主题

-  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独有的数据。