以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 如何调用Spire.PDF.dll给PDF加印章? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=150881) |
-- 作者:xietan417 -- 发布时间:2020/6/9 23:12:00 -- 如何调用Spire.PDF.dll给PDF加印章?
[此贴子已经被作者于2020/6/9 23:12:28编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/6/9 23:18:00 -- 把dll复制到foxtable安装目录,然后添加引用:http://www.foxtable.com/webhelp/topics/1936.htm 把上面mian函数里的代码转换为vb代码:http://converter.telerik.com/
|
-- 作者:xietan417 -- 发布时间:2020/6/9 23:23:00 -- Dim doc As PdfDocument = New PdfDocument() doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\test.pdf") \'获取PDF文档第一页 Dim page As PdfPageBase = doc.Pages(0) \'新建一个PdfRubberStampAnnotation对象,指定其注释的位置和大小 Dim loStamp As PdfRubberStampAnnotation = New PdfRubberStampAnnotation(New RectangleF(New PointF(-5,-5),New SizeF(200,200))) \'实例化一个PdfAppearance对象,并加载作为印章的图片 Dim loApprearance As PdfAppearance = New PdfAppearance(loStamp) Dim image As PdfImage = PdfImage.FromFile("C:\\Users\\Administrator\\Desktop\\yz.jpg") \'新建一个PDF模板,并在模板里绘制图片 Dim template As PdfTemplate = New PdfTemplate(600,800) template.Graphics.DrawImage(image, 0, 0) loApprearance.Normal = template loStamp.Appearance = loApprearance \'添加印章到PDF文档 page.AnnotationsWidget.Add(loStamp) \'保存并打开文档 Dim output As String = "ImageStamp.pdf" doc.SaveToFile(output) System.Diagnostics.Process.Start("ImageStamp.pdf") 添加引用后,就可以这样直接运行了?
|
-- 作者:有点蓝 -- 发布时间:2020/6/10 8:37:00 -- 写全命名空间引用比如: Dim doc As Spire.Pdf.PdfDocument = New Spire.Pdf.PdfDocument() 如果不知道是哪个命名空间,看源码,或者官方开发文档
|
-- 作者:xietan417 -- 发布时间:2020/6/10 16:04:00 -- Imports Spire.Pdf Imports Spire.Pdf.Graphics Namespace DrawFilledRectangles Partial Public Class Form1 Inherits Form Public Sub New() InitializeComponent() End Sub Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles button1.Click Dim pdf As New PdfDocument() pdf.LoadFromFile("..\\..\\..\\..\\..\\..\\Data\\DrawingTemplate.pdf") \'Create one page Dim page As PdfPageBase = pdf.Pages(0) \'save graphics state Dim state As PdfGraphicsState = page.Canvas.Save() \'Set rectangle display location and size Dim x As Integer = 200 Dim y As Integer = 300 Dim width As Integer = 200 Dim height As Integer = 120 \'Create one page and brush Dim pen As New PdfPen(Color.Black, 1f) Dim brush As PdfBrush = New PdfSolidBrush(Color.OrangeRed) \'Draw a filled rectangle page.Canvas.DrawRectangle(pen, brush, New Rectangle(New Point(x, y), New Size(width, height))) \'restore graphics page.Canvas.Restore(state) Dim result As String = "DrawFilledRectangles_out.pdf" \'Save the document pdf.SaveToFile(result) \'Launch the Pdf file PDFDocumentViewer(result) End Sub Private Sub PDFDocumentViewer(ByVal filename As String) Try Process.Start(filename) Catch End Try End Sub End Class End Namespace 上面是列子的代码
Dim pdf As New sPdf.PdfDocument pdf.LoadFromFile("C:\\Users\\EGIT\\Desktop\\tesst.pdf") Dim page As sPdf.PdfPageBase = pdf.Pages(0) Dim state As sG.PdfGraphicsState = page.Canvas.Save() Dim x As Integer = 200 Dim y As Integer = 300 Dim width As Integer = 200 Dim height As Integer = 120 Dim pen As New sPdf.PdfPen(Color.Black, 1f) ’----------这个sPdf.PdfPen提示未定义类型 是命名空间的问题吗? Dim brush As sPdf.PdfBrush = New PdfSolidBrush(Color.OrangeRed) \'-------这个也是一样错误 page.Canvas.DrawRectangle(pen, brush, New Rectangle(New Point(x, y), New Size(width, height))) page.Canvas.Restore(state) Dim result As String = "C:\\Users\\EGIT\\Desktop\\test_out.pdf" \'Save the document pdf.SaveToFile(result) [此贴子已经被作者于2020/6/10 16:06:17编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/6/10 16:24:00 -- 如果不知道是哪个命名空间,看源码,或者官方开发文档,下载安装vs,打开源码,把鼠标放到对应的类型里可以看到命名空间的提示。 这种绘制的应该是属于Spire.Pdf.Graphics命名空间的 Dim pen As New sG.PdfPen(Color.Black, 1f) |
-- 作者:xietan417 -- 发布时间:2020/6/11 10:01:00 -- 搞定,就是属于Spire.Pdf.Graphics命名空间的,谢谢蓝版 Dim pdf As New sPdf.PdfDocument pdf.LoadFromFile("C:\\Users\\EGIT\\Desktop\\tesst.pdf") Dim page As sPdf.PdfPageBase = pdf.Pages(0) Dim state As sG.PdfGraphicsState = page.Canvas.Save() Dim x As Integer = 200 Dim y As Integer = 300 Dim width As Integer = 200 Dim height As Integer = 120 Dim pen As New sG.PdfPen(Color.Black, 1f) Dim brush As sG.PdfBrush = New sG.PdfSolidBrush(Color.OrangeRed) page.Canvas.DrawRectangle(pen, brush, New Rectangle(New Point(x, y), New Size(width, height))) page.Canvas.Restore(state) Dim result As String = "C:\\Users\\EGIT\\Desktop\\test_out.pdf" pdf.SaveToFile(result) |
-- 作者:fanjq8686 -- 发布时间:2020/6/30 15:23:00 -- 没太看明白,想请教一下,是实现在一页pdf文件上任意位置加盖印章吗? |
-- 作者:李孝春 -- 发布时间:2020/12/30 21:49:00 -- 回复:(xietan417)如何调用Spire.PDF.dll给PDF加印章... Spire.PDF.dll这个是否可以分享一下呢? |
-- 作者:有点蓝 -- 发布时间:2020/12/31 8:51:00 -- 百度啊,大把的。https://www.e-iceblue.cn/Downloads/Spire-PDF-NET.html |