Adobe Acrobat Automation和Aspose.Pdf添加文本印章和水印的对比
正如大家所知道的,Adobe Acrobat Automation和Aspose.Pdf for .NET 都允许你通过 编程的方式将文本印章/水印添加到PDF文件中。然而,Aspose.Pdf for .NET比Adobe Acrobat Automation 更易于使用。在这篇文章中,我将为大家展示如何使用Adobe Acrobat Automation和Aspose.Pdf for .NET 添加文本印章和水印,以及这两种产品之间的区别。
Adobe Acrobat Automation
下面的代码片段向你展示了如何使用Adobe Acrobat Automation将文本印章/水印添加到PDF文件。
[C#]
// Create an AVDoc object
AcroAVDoc gAVDoc = new AcroAVDoc();
gAVDoc.Open("D:/Ap Data/Source_Files/Test.pdf","");
CAcroPDDoc pdDoc = (CAcroPDDoc)gAVDoc.GetPDDoc();
//Acquire the Acrobat JavaScript Object interface from the PDDoc object
Object jsObj = pdDoc.GetJSObject();
Type T = jsObj.GetType();
//get current time and make a string from it
System.DateTime currentTime = System.DateTime.Now;
// make a color object
Object colorObj = T.InvokeMember(
"color",
BindingFlags.GetProperty |
BindingFlags.Public |
BindingFlags.Instance,
null, jsObj, null);
Type colorType = colorObj.GetType();
Object blueColorObj = colorType.InvokeMember(
"blue",
BindingFlags.GetProperty |
BindingFlags.Public |
BindingFlags.Instance,
null, colorObj, null);
// Add a text watermark.
object[] addTextWatermarkParam = { currentTime.ToShortTimeString(), 1, "Helvetica", 100, blueColorObj, 0, 0, true, true, true, 0, 3, 20, -45, false, 1.0, false, 0, 0.7 };
T.InvokeMember(
"addWatermarkFromText",
BindingFlags.InvokeMethod |
BindingFlags.Public |
BindingFlags.Instance,
null, jsObj, addTextWatermarkParam);
[VB.NET]
' Create an AVDoc object
Dim gAVDoc As New AcroAVDoc()
gAVDoc.Open("D:/Ap Data/Source_Files/Test.pdf", "")
Dim pdDoc As CAcroPDDoc = CType(gAVDoc.GetPDDoc(), CAcroPDDoc)
'Acquire the Acrobat JavaScript Object interface from the PDDoc object
Dim jsObj As Object = pdDoc.GetJSObject()
Dim T As Type = jsObj.GetType()
'get current time and make a string from it
Dim currentTime As System.DateTime = System.DateTime.Now
' make a color object
Dim colorObj As Object = T.InvokeMember("color", BindingFlags.GetProperty Or BindingFlags.Public Or BindingFlags.Instance, Nothing, jsObj, Nothing)
Dim colorType As Type = colorObj.GetType()
Dim blueColorObj As Object = colorType.InvokeMember("blue", BindingFlags.GetProperty Or BindingFlags.Public Or BindingFlags.Instance, Nothing, colorObj, Nothing)
' Add a text watermark.
Dim addTextWatermarkParam() As Object = {currentTime.ToShortTimeString(), 1, "Helvetica", 100, blueColorObj, 0, 0, True, True, True, 0, 3, 20, -45, False, 1.0, False, 0, 0.7}
T.InvokeMember("addWatermarkFromText", BindingFlags.InvokeMethod Or BindingFlags.Public Or BindingFlags.Instance, Nothing, jsObj, addTextWatermarkParam)
Aspose.Pdf for .NET
下面的代码片断展示了如何使用Aspose.Pdf for .NET控件中的PdfFileStamp类添加文本印章/水印到PDF文档中。
[C#]
//open document
PdfFileStamp fileStamp = new PdfFileStamp(@"D:\Source_Files\test.pdf", @"D:\Source_Files\output.pdf");
//create stamp
Aspose.Pdf.Facades.Stamp stamp = new Aspose.Pdf.Facades.Stamp();
//get current time and make a string from it
System.DateTime currentTime = System.DateTime.Now;
stamp.BindLogo(new FormattedText(currentTime.ToShortTimeString(), Color.Blue, Color.White, Aspose.Pdf.Facades.FontStyle.Helvetica, EncodingType.Winansi, true, 100));
//Set Origion
stamp.SetOrigin(100, 600);
//Set as Background
stamp.IsBackground = true;
//Set Opacity
stamp.Opacity = .7F;
//add stamp to PDF file
fileStamp.AddStamp(stamp);
//save updated PDF file
fileStamp.Close();
[VB.NET]
'open document
Dim fileStamp As New PdfFileStamp("D:\Source_Files\test.pdf", "D:\Source_Files\output.pdf")
'create stamp
Dim stamp As New Aspose.Pdf.Facades.Stamp()
'get current time and make a string from it
Dim currentTime As System.DateTime = System.DateTime.Now
stamp.BindLogo(New FormattedText(currentTime.ToShortTimeString(), Color.Blue, Color.White, Aspose.Pdf.Facades.FontStyle.Helvetica, EncodingType.Winansi, True, 100))
'Set Origion
stamp.SetOrigin(100, 600)
'Set as Background
stamp.IsBackground = True
'Set Opacity
stamp.Opacity = 0.7F
'add stamp to PDF file
fileStamp.AddStamp(stamp)
'save updated PDF file
fileStamp.Close()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗