spread导出PDF带有单元格的背景图片
目前想要导出单元格的背景图片,通过直接导出PDF无法导出,通过 PrintBackground 方法可以绘制背景图片,但是这个方法绘制的背景图片在每一页都有,想问下老师能不能在每一页都绘制不同的背景图片Private Sub fs_PrintBackground(sender As Object, e As PrintBackgroundEventArgs) Handles fs.PrintBackgroundfs.ActiveSheet.FrozenRowCount = 0
Dim saveState As System.Drawing.Drawing2D.GraphicsState = e.Graphics.Save()
Width = 0
If fs.ActiveSheet.RowCount > 0 Then
For i As Integer = 0 To fs.ActiveSheet.ColumnCount - 1
Width += fs.ActiveSheet.GetColumnWidth(i)
Next
End If
For i As Integer = 0 To fs.ActiveSheet.RowCount - 1
If TypeName(fs.ActiveSheet.Cells(i, 0).CellType).Equals("TextCellType") Then
Dim cellType As TextCellType = fs.ActiveSheet.Cells(i, 0).CellType()
If cellType.BackgroundImage IsNot Nothing Then
Dim rt As Rectangle = fs.GetCellRectangle(0, 0, i, 0)
rt.Height = fs.ActiveSheet.Rows(i).Height
rt.Width = cellType.BackgroundImage.Image.Width * (fs.ActiveSheet.Rows(i).Height / cellType.BackgroundImage.Image.Height)
rt.X = (Width - rt.Width) / 2
e.Graphics.SetClip(rt)
e.Graphics.DrawImage(cellType.BackgroundImage.Image, rt)
End If
End If
Next
e.Graphics.Restore(saveState)
End Sub
这个事件是在每个page被打印的时候都会触发的,你可以通过PageNumber属性看看是否能拿到默认的页码。然后再以此做判断。分别给Graphics设置不同的图片 那怎么判断单元格在哪个PageNumber上呢? 没法在这个事件中判断单元格 那单元格中的背景图片就没有办法导出来了吗?我看打印是可以打印出背景图片的,为啥改下属性 PrintInfo.PrintToPdf = True 就不能导出背景图片了呢? 你的“单元格中的背景图片”是怎么添加的呢?普通单元格并没有办法添加背景图片的 是用 TextCellType 来设置背景图片的 了解了,这个背景图目前确实不支持导出pdf,和直接打印出来不一样 好吧,我暂时通过修改打印机直接打印PDF来解决 嗯,也是一个思路。通过某些虚拟打印机就行
页:
[1]