MigraDoc添加水印问题

时间:2019-02-13 10:10:57

标签: vb.net pdf migradoc

我已经通过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没有水印。我尝试了不同的图像,大小等,但是似乎没有实际添加水印,因此欢迎任何想法!

1 个答案:

答案 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