本教程展示了如何创建一个c# Windows控制台应用程序,添加了水印的每个页面一个多页文件使用LEADTOOLS SDK。
概述 | |
---|---|
总结 | 本教程介绍了如何烧一个水印多页文件在c#控制台应用程序。 |
完成时间 | 30分钟 |
Visual Studio项目 | 下载教程项目(4 KB) |
平台 | c# Windows控制台应用程序 |
IDE | Visual Studio 2017中,2019年 |
开发许可 | 下载LEADTOOLS |
在工作之前添加水印多页文件,控制台c#教程中,熟悉的基本步骤,创建一个项目通过审查添加引用和设置一个许可证教程。
从项目中创建的副本添加引用和设置一个许可证教程。如果你没有这个项目,按照这个教程中的步骤创建它。
的引用需要取决于项目的目的。引用可以通过添加一个或另一个下面的两种方法(但不是全部)。对于这个项目,还需要以下引用:
如果使用NuGet引用,本教程需要以下NuGet包:
Leadtools.Annotations.WinForms
如果使用本地DLL的引用,下面的DLL是必要的。dll位于< INSTALL_DIR > \ LEADTOOLS22 \ Bin \ Dotnet4 \ x64
:
Leadtools.dll
Leadtools.Annotations.BatesStamp.dll
Leadtools.Annotations.Engine.dll
Leadtools.Annotations.Rendering.WinForms.dll
Leadtools.Codecs.dll
Leadtools.Codecs.Cmp
Leadtools.Codecs.Tif
Leadtools.Pdf.dll
对于一个完整的列表的编解码器dll需要特定的格式,请参考文件格式的支持。
许可解锁项目需要的特性。它必须设置工具箱函数被调用之前。细节包括教程不同的平台,请参考设置一个运行时许可。
有两种类型的运行时许可证:
与项目创建、添加引用,许可,可以开始编码。
在解决方案资源管理器,打开Program.cs
。添加一个新方法AddWatermarktoFile ()
然后在调用它主要
方法。
添加以下语句的使用
块的顶部Program.cs
:
/ /使用块
使用系统;
使用先;
使用Leadtools;
使用Leadtools.Annotations.BatesStamp;
使用Leadtools.Annotations.Engine;
使用Leadtools.Annotations.Rendering;
使用Leadtools.Codecs;
将下面的代码添加到新创建的方法添加水印的每个页面一个多页文件。
静态无效AddWatermarktoFile ()
{
字符串_sourceFile =@“C: \ LEADTOOLS22 \资源\ \ Leadtools.pdf图像”;
/ /创建并添加AnnBatesStampComposer实例创建的贝茨邮票
使用(AnnBatesStampComposer batesStampComposer =新AnnBatesStampComposer ())
{
/ /设置渲染引擎
AnnBatesStampComposer。RenderingEngine =新AnnWinFormsRenderingEngine ();
/ /创建贝茨邮票容器,设置它的大小和映射器和附加的作曲家
AnnContainer batesStampContainer =新AnnContainer ();
/ /创建AnnBatesStamp并设置其属性
AnnBatesStamp batesStamp =新AnnBatesStamp ();
batesStamp。字体=新AnnFont (“天线”12);
batesStamp。前景= AnnSolidColorBrush.Create (“红色”);
batesStamp。HorizontalAlignment = AnnHorizontalAlignment.Center;
batesStamp。VerticalAlignment = AnnVerticalAlignment.Center;
batesStamp.Logo。角= 45;
batesStamp.Logo。字体=新AnnFont (“天线”、32);
batesStamp.Logo。不透明度= 0.25;
batesStamp.Logo。StretchLogo =真正的;
batesStamp.Logo。文本=“水印”;
使用(RasterCodecs _codecs =新RasterCodecs ())
{
使用(CodecsImageInfo信息= _codecs.GetInformation (_sourceFile,真正的))
{
batesStampContainer.Mapper.MapResolutions(信息。XResolution,信息。YResolution,信息。XResolution info.YResolution);
batesStampContainer。大小= batesStampContainer.Mapper.SizeToContainerCoordinates (LeadSizeD.Create(信息。宽度,info.Height));
batesStampComposer.Stamps.Add (batesStamp);
/ /应用贝茨戳我们的容器
batesStampComposer.TargetContainers.Add (batesStampContainer);
int页面= _codecs.GetTotalPages (_sourceFile);
为(inti = 1;我< =页;我+ +)
{
使用(RasterImage _image = _codecs。24岁的负载(_sourceFile CodecsLoadByteOrder。BgrOrGray,我,我)
{
AnnBatesStampComposer.RenderingEngine。RenderOnImage (batesStampContainer _image);
_codecs.Save (_image@“C: \ LEADTOOLS22 \资源\ \ watermarkedImage.tif图像”,RasterImageFormat。Tif, _image。BitsPerPixel, 1, 1, 1, CodecsSavePageMode.Append);
}
}
}
}
}
}
加载文件使用MemoryStream
,替换的代码为
循环使用以下:
字节[]字节= File.ReadAllBytes (_sourceFile);
使用(MemoryStream ms =新MemoryStream(字节)
{
使用(RasterImage _image = _codecs.Load(女士)
{
AnnBatesStampComposer.RenderingEngine。RenderOnImage (batesStampContainer _image);
_codecs.Save (_image@“C: \ LEADTOOLS22 \资源\ \ watermarkedImage.tif图像”,RasterImageFormat。Tif, _image。BitsPerPixel, 1, 1, 1, CodecsSavePageMode.Append);
}
}
按运行项目F5,或通过选择调试- >开始调试。
如果是正确的步骤,应用燃烧一个自定义的水印多页文件的每一页。对于本教程,使用PDF位于下面的文件路径:C: \ LEADTOOLS22 \ \ \ Leadtools.pdf图像资源
本教程展示如何添加必要的引用添加水印多页文件的每一页。同时,我们介绍了如何使用AnnContainer
,AnnBatesStamp
,AnnBatesStampComposer
类。