使用带有VB.Net的PDFSHarp向PDF文件添加水印

使用带有VB.Net的PDFSHarp向PDF文件添加水印,vb.net,pdf,watermark,pdfsharp,Vb.net,Pdf,Watermark,Pdfsharp,我在VB.Net程序中使用PDFSharp,水印无法正常工作。 我试图在特定位置放置具有特定高度的水印。代码处理没有错误,但文件中没有水印 下面是函数。我传递pdf文件名和两个串联的字符串变量。 任何帮助都将不胜感激 Sub PDFWatermark(ByRef PDFName As String, ByRef PDFProject As String, PDFQty As String) Dim Watermark As String Watermark = "Pro

我在VB.Net程序中使用PDFSharp,水印无法正常工作。 我试图在特定位置放置具有特定高度的水印。代码处理没有错误,但文件中没有水印

下面是函数。我传递pdf文件名和两个串联的字符串变量。 任何帮助都将不胜感激

Sub PDFWatermark(ByRef PDFName As String, ByRef PDFProject As String, PDFQty As String)
    Dim Watermark As String
    Watermark = "Project: " + PDFProject + " - Project Qty: " + PDFQty

    Dim PDFemSize As Integer = 10
    Dim PDFFont As New XFont("Times New Roman", PDFemSize, XFontStyle.BoldItalic)
    Dim PDFDocument = PdfReader.Open(PDFName)
    If (PDFDocument.Version < 14) Then
        PDFDocument.Version = 14
    End If

    Dim page As PdfPage = PDFDocument.Pages(0)

    'Get an XGraphics object for drawing beneath the existing content.
    Dim gfx = XGraphics.FromPdfPage(page, XGraphicsPdfPageOptions.Prepend)

    '// Create a string format.
    Dim Format As New XStringFormat()
    Format.Alignment = XStringAlignment.Near
    Format.LineAlignment = XLineAlignment.Near

    '// Create a dimmed red brush.
    XBrush Brush = New XSolidBrush(XColor.FromArgb(128, 255, 0, 0))

    '// Draw the string.
    gfx.DrawString(Watermark, PDFFont, Brush, New XPoint(100, 100), Format)

End Sub
子PDFWatermark(ByRef PDFName作为字符串,ByRef PDFProject作为字符串,PDFQty作为字符串)
将水印设置为字符串
水印=“项目:+PDFProject+”-项目数量:+PDFQty
Dim PDFemSize为整数=10
Dim Pdfont作为新XFont(“Times New Roman”,PDFemSize,XFontStyle.BoldItalic)
Dim PDFDocument=PdfReader.Open(PDFName)
如果(PDFDocument.Version<14),则
PDFDocument.Version=14
如果结束
作为PdfPage=PDFDocument.Pages的尺寸页(0)
'获取用于在现有内容下绘制的XGraphics对象。
Dim gfx=XGraphics.FromPdfPage(第页,XGraphicsPdfPageOptions.Prepend)
“//创建字符串格式。
作为新XStringFormat()的Dim格式
Format.Alignment=XStringAlignment.Near
Format.LineAlignment=XLineAlignment.Near
“//创建一个暗红色笔刷。
XBrush Brush=newxsolidbrush(XColor.FromArgb(128255,0,0))
'//绘制字符串。
gfx.DrawString(水印、PDFFont、画笔、新XPoint(100100)、格式)
端接头

看起来您实际上并没有将对PDF所做的更改保存在内存中,请尝试使用
保存文件。保存方法:

PDFDocument.Save(fileName)
此外,您需要处理
XGraphics
对象,可能会遇到内存泄漏问题:

Using gfx as XGraphics.FromPdfPage(page, XGraphicsPdfPageOptions.Prepend)
...
End Using

另外,感谢您提供有关处理XGraphics的提示!!!