我已经通过MigraDoc创建了PDF文档,到目前为止一切进展顺利。最后一个阶段是为“草稿”添加水印,我已经找到了一些示例,但我似乎无法使其正常工作!
我照常创建一个部分
section = document.AddSection()
section.PageSetup.PageFormat = PageFormat.A4
...然后使用添加水印
Sub AddWatermark(section As Section)
Dim imageFile = Server.MapPath("./images/draft.png")
Dim myImage = section.Headers.EvenPage.AddImage(imageFile)
myImage.Height = Unit.FromMillimeter(100)
myImage.LockAspectRatio = True
myImage.Top = Shapes.ShapePosition.Center
myImage.Left = Shapes.ShapePosition.Center
myImage.RelativeHorizontal = Shapes.RelativeHorizontal.Margin
myImage.RelativeVertical = Shapes.RelativeVertical.Margin
myImage.WrapFormat.Style = Shapes.WrapStyle.Through
End Sub
然后我创建文档的其余部分(主要是表格)并将其输出到浏览器。一切正常,我逐步调试以确保图像被拾取,没有异常,但输出PDF没有水印。我尝试了不同的图像,大小等,但是似乎没有实际添加水印,因此欢迎任何想法!
答案 0 :(得分:1)
在我看来,关键点是当我设置图像时,需要在“ section.Headers.Primary”中进行设置。仅当您具有不同的偶数和奇数页时,才能在“偶数页”中进行设置,否则似乎会被忽略。使用VB.NET解决方案后的任何人都可以在下面看到,因为这对我有用,而且我在其他地方都找不到VB解决方案
Sub AddWatermark(section As Section)
Dim imageFile = Server.MapPath("./images/draft.png")
Dim header As HeaderFooter = section.Headers.Primary
Dim myImage = header.AddImage(imageFile)
myImage.Height = Unit.FromMillimeter(200)
myImage.LockAspectRatio = True
myImage.Top = Shapes.ShapePosition.Center
myImage.Left = Shapes.ShapePosition.Center
myImage.RelativeHorizontal = Shapes.RelativeHorizontal.Margin
myImage.RelativeVertical = Shapes.RelativeVertical.Margin
myImage.WrapFormat.Style = Shapes.WrapStyle.Through
End Sub