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)
没有办法优化。不同文件格式需要的空间是不一样的,pdf文件里有很多pdf独有的数据。