使用带有VB.Net的PDFSHarp向PDF文件添加水印
我在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
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的提示!!!