水印是向数字文件添加徽标或其他识别标记的过程。水印的目的是识别文件的所有者、声明版权、阻止未经授权访问您的内容以及为您的资产添加品牌。您还可以使用水印来跟踪文件的来源,并防止他人未经许可窃取或使用您的内容。为数字内容添加水印的方法有多种,最常见的是使用应用程序或软件程序以文本或图像的形式向文件添加视觉标记。
如果您经常遇到为多个不同类型的文件加水印,那么自动化该过程将提高效率,从而节省大量时间和精力。这是用于 .NET 和 Java 的 GroupDocs.Watermark API 极其有用的地方。它们使加水印过程更简单,提高了效率,并使您能够确保对数字图像和文档的保护。您可以构建 C#、VB.NET 和 Java 应用程序来添加或删除 PDF、Word、Excel、PowerPoint、OpenDocument、Visio、电子邮件、富文本和不同图像文件格式的文本和图像类型的水印。
您可以通过 NuGet 安装,直接从下载部分下载 MSI 安装程序或 DLL,或使用程序包管理器控制台:
请访问下载部分获取 JAR 文件,或者在您的 Java 应用程序中使用最新的 Maven 配置:
成功配置 GroupDocs.Watermark(适用于 .NET 或 Java)后,我们可以回顾一些最常见的文档和图像水印用例。
文本水印是一种广泛使用的水印类型,可用于保护数字处理文件中的敏感内容。您可以使用基于文本的水印来阻止未经授权的文件复制或打印。 GroupDocs.Watermark API 允许 .NET 和 Java 开发人员将此功能集成到他们现有的软件模块中,或构建用于移动或 HTML Web 界面的应用程序,使用户能够毫不费力地享受文本水印功能。
如果您希望在 Word 文件中插入基于文本的水印,请使用下面给出的 C# 代码:
WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions();
using (Watermarker watermarker = new Watermarker("path/sample.docx”, loadOptions))
{
TextWatermark watermark = new TextWatermark("Test watermark", new Font("Arial", 19));
Apply watermark settings
watermark.VerticalAlignment = VerticalAlignment.Center;
watermark.HorizontalAlignment = HorizontalAlignment.Center;
watermark.RotateAngle = 25.0;
watermark.ForegroundColor = Color.Red;
watermark.Opacity = 1.0;
WordProcessingWatermarkSectionOptions options = new WordProcessingWatermarkSectionOptions();
// Setting shape name
options.Name = "Shape 1";
// Set the descriptive (alternative) text to be associated with the shape
options.AlternativeText = "Test watermark";
watermarker.Add(watermark, options);
watermarker.Save("path/document-text-watermarked.docx”);
} 您还可以使用以下 Java 代码在 Word 文档中添加文本水印:
WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions();
Watermarker watermarker = new Watermarker(("path/sample.docx”, loadOptions);
TextWatermark watermark = new TextWatermark("Test watermark", new Font("Arial", 19));
//Apply watermark settings
watermark.setVerticalAlignment(VerticalAlignment.Center);
watermark.setHorizontalAlignment(HorizontalAlignment.Center);
watermark.setRotateAngle(25.0);
watermark.setForegroundColor(Color.getRed());
watermark.setOpacity(1.0);
WordProcessingWatermarkSectionOptions options = new WordProcessingWatermarkSectionOptions();
// Setting the shape name
options.setName("Shape 1");
// Set the descriptive (alternative) text to be associated with the shape
options.setAlternativeText("Test watermark");
watermarker.add(watermark, options);
watermarker.save(("path/document-text-watermarked.docx”);
watermarker.close(); 使用图像作为水印是标记法律或官方文件的好方法,因为与文本水印相比,它们更容易添加且难以删除。基于图像的水印也可以有效地用于向文档添加品牌或其他信息。 GroupDocs.Watermark API 支持 .NET 和 Java 中 PDF 文件的多种基于图像的水印。
使用基于图像的标签为 PDF 文档加水印如下所示的 C# 代码:
// Add image watermark to PDF file page(s)
PdfLoadOptions loadOptions = new PdfLoadOptions();
using (Watermarker watermarker = new Watermarker("path/sample.pdf", loadOptions))
{
ImageWatermark imageWatermark = new ImageWatermark("watermark-image.png")
{
// Setting watermark appearance
Opacity = 0.7,
X = 70,
Y = 350
};
// Adding image watermark to the second page (page index starts from zero)
PdfArtifactWatermarkOptions imageWatermarkOptions = new PdfArtifactWatermarkOptions();
imageWatermarkOptions.PageIndex = 1;
watermarker.Add(imageWatermark, imageWatermarkOptions);
watermarker.Save("path/image-watermarked.pdf");
} 在 Java 中为 PDF 文件添加水印 使用图像标签,请使用此示例代码:
// Apply Image Watermark to the second page of the PDF file
PdfLoadOptions loadOptions = new PdfLoadOptions();
Watermarker watermarker = new Watermarker("path/sample.pdf", loadOptions);
// Load image and set appearance
ImageWatermark imageWatermark = new ImageWatermark(Constants.LockPng);
imageWatermark.setOpacity(0.7);
imageWatermark.setX(130);
imageWatermark.setY(390);
// Add watermark image to the second page of the PDF file (page index starts at zero)
PdfArtifactWatermarkOptions imageWatermarkOptions = new PdfArtifactWatermarkOptions();
imageWatermarkOptions.setPageIndex(1);
watermarker.add(imageWatermark, imageWatermarkOptions);
imageWatermark.close();
// Save the watermarked PDF
watermarker.save("path/image-watermarked.pdf");
watermarker.close(); Microsoft Excel 和 PowerPoint 是使用最广泛的两种电子表格和演示文稿数据类型。世界各地的用户广泛使用这些软件应用程序来进行报告、产品演示和许多其他目的。适用于 .NET 和 Java API 的 GroupDocs.Watermark 使应用程序开发人员能够以编程方式为这两种数据文件类型添加文本和图像水印,而无需 Microsoft Office。
要在 .NET 中的 Excel 电子表格中注入文本或图像水印,请使用以下 C# 示例编码:
SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions();
using (Watermarker watermarker = new Watermarker(“path/sample.xlsx”, loadOptions))
{
// Add text watermark to the first worksheet
TextWatermark textWatermark = new TextWatermark("Test watermark", new Font("Arial", 8));
SpreadsheetWatermarkShapeOptions textWatermarkOptions = new SpreadsheetWatermarkShapeOptions();
textWatermarkOptions.WorksheetIndex = 0;
watermarker.Add(textWatermark, textWatermarkOptions);
// Add image watermark to the second worksheet
using (ImageWatermark imageWatermark = new ImageWatermark(“watermark-image.jpg”))
{
SpreadsheetWatermarkShapeOptions imageWatermarkOptions = new SpreadsheetWatermarkShapeOptions();
imageWatermarkOptions.WorksheetIndex = 1;
watermarker.Add(imageWatermark, imageWatermarkOptions);
}
watermarker.Save(“path/text-image-watermarked.xlsx”);
}
//Similarly, please use this sample code if you are looking to watermark presentations in .NET:
PresentationLoadOptions loadOptions = new PresentationLoadOptions();
using (Watermarker watermarker = new Watermarker(“path/sample.pptx”, loadOptions))
{
// Add text watermark to the first slide
TextWatermark textWatermark = new TextWatermark("Test watermark", new Font("Arial", 8));
PresentationWatermarkSlideOptions textWatermarkOptions = new PresentationWatermarkSlideOptions();
textWatermarkOptions.SlideIndex = 0;
watermarker.Add(textWatermark, textWatermarkOptions);
// Add image watermark to the second slide
using (ImageWatermark imageWatermark = new ImageWatermark(“path/watermark-image.jpg”))
{
PresentationWatermarkSlideOptions imageWatermarkOptions = new PresentationWatermarkSlideOptions();
imageWatermarkOptions.SlideIndex = 1;
watermarker.Add(imageWatermark, imageWatermarkOptions);
}
watermarker.Save(“path/text-image-watermarked.pptx”);
} 请使用下面共享的代码示例将基于文本或图像的水印应用到 Java 中的 Excel 电子表格:
SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions();
Watermarker watermarker = new Watermarker(“path/sample.xlsx”, loadOptions);
// Add text watermark to the first worksheet
TextWatermark textWatermark = new TextWatermark("Test watermark", new Font("Arial", 8));
SpreadsheetWatermarkShapeOptions textWatermarkOptions = new SpreadsheetWatermarkShapeOptions();
textWatermarkOptions.setWorksheetIndex(0);
watermarker.add(textWatermark, textWatermarkOptions);
// Add image watermark to the second worksheet
ImageWatermark imageWatermark = new ImageWatermark(“watermark-image.jpg”);
SpreadsheetWatermarkShapeOptions imageWatermarkOptions = new SpreadsheetWatermarkShapeOptions();
imageWatermarkOptions.setWorksheetIndex(1);
watermarker.add(imageWatermark, imageWatermarkOptions);
watermarker.save(“path/text-image-watermarked.xlsx”);
watermarker.close();
imageWatermark.close();
//And, to add text or image watermarks to presentations in Java, please use this code:
PresentationLoadOptions loadOptions = new PresentationLoadOptions();
Watermarker watermarker = new Watermarker(“path/samples.pptx”, loadOptions);
// Add text watermark to the first slide
TextWatermark textWatermark = new TextWatermark("Test watermark", new Font("Arial", 8));
PresentationWatermarkSlideOptions textWatermarkOptions = new PresentationWatermarkSlideOptions();
textWatermarkOptions.setSlideIndex(0);
watermarker.add(textWatermark, textWatermarkOptions);
// Add image watermark to the second slide
ImageWatermark imageWatermark = new ImageWatermark(“watermark-image.jpg”);
PresentationWatermarkSlideOptions imageWatermarkOptions = new PresentationWatermarkSlideOptions();
imageWatermarkOptions.setSlideIndex(1);
watermarker.add(imageWatermark, imageWatermarkOptions);
watermarker.save(“path/text-image-watermarked.pptx”);
watermarker.close();
imageWatermark.close(); 就像不同类型的文档一样,您可能还需要为图像添加标识符。由于社交平台上内容共享的巨大流行,为照片加水印对于防止滥用也变得越来越重要。用户更喜欢在照片中嵌入文本或图像水印,然后再将照片发布到他们选择的社交平台上。 GroupDocs.Watermark API 提供了一组工具,用于在 .NET 和 Java 平台中轻松地将水印标签插入到 PNG、JPG、TIFF 和 GIF 图像文件中。
如果您希望通过添加文本标签为图像添加水印,请使用下面显示的 C# 代码 为 JPG 图片添加水印:
using (Watermarker watermarker = new Watermarker("filePath/sample-image.jpg"))
{
// Set the Text and Watermark Font
Font font = new Font ("Arial", 30, FontStyle.Bold | FontStyle.Italic);
TextWatermark watermark = new TextWatermark("Text Watermark", font);
// Set Watermark Properties
watermark.ForegroundColor = Color.Black;
watermark.TextAlignment = TextAlignment.Right;
watermark.X = 70;
watermark.Y = 70;
watermark.RotateAngle = -30;
watermark.Opacity = 0.4;
// watermark.BackgroundColor = Color.Blue;
// Apply the configured watermark to JPG Image
watermarker.Add(watermark);
watermarker.Save("filePath/text-watermarked.jpg");
} 您可以将水印应用到您的照片和 Java 中的其他图像 也是。请使用以下 Java 代码为 PNG 图像添加水印:
TextWatermark watermark = new TextWatermark("Text Watermark", new Font("Arial", 30, FontStyle.Bold | FontStyle.Italic));
// Set Watermark properties
watermark.setForegroundColor(Color.getBlack());
watermark.setTextAlignment(TextAlignment.Right);
watermark.setRotateAngle(-30);
watermark.setOpacity(0.4);
watermark.setX(70);
watermark.setY(70);
// Apply Watermark to the source PNG Image
Watermarker watermarker = new Watermarker(“path/sample-image.png”);
watermarker.add(watermark);
watermarker.save(“path/text-watermarked.png”);
watermarker.close(); 从文档中搜索和删除现有水印是清理或清理文件的一个重要方面,或者,它可能是一项业务需求。考虑删除添加到数字资产的过时品牌并将其替换为最新版本的场景。借助 .NET 和 Java 的 GroupDocs.Watermark API,您不仅可以向数据文件添加多种类型的水印,还可以搜索添加的水印对象并将其删除。
要在 .NET 中查找 Word、Excel、PowerPoint、PDF 或 Visio 文件中的水印基于某些特定条件,请使用此 C# 示例编码:
using (Watermarker watermarker = new Watermarker(“path/sample.pdf”))
{
// Apply the exact text search string
TextSearchCriteria textSearchCriteria = new TextSearchCriteria("© 2019");
// Find all possible watermarks containing the specified text
PossibleWatermarkCollection possibleWatermarks = watermarker.Search(textSearchCriteria);
Console.WriteLine("Found {0} possible watermark(s)", possibleWatermarks.Count);
} 除了从文件中搜索现有水印标签外,您还可以删除它们。请使用此 C# 编码去除水印 具有指定的格式:
using (Watermarker watermarker = new Watermarker(“path/sample.pdf”))
{
TextFormattingSearchCriteria criteria = new TextFormattingSearchCriteria();
criteria.ForegroundColorRange = new ColorRange();
criteria.ForegroundColorRange.MinHue = -5;
criteria.ForegroundColorRange.MaxHue = 10;
criteria.ForegroundColorRange.MinBrightness = 0.01f;
criteria.ForegroundColorRange.MaxBrightness = 0.99f;
criteria.BackgroundColorRange = new ColorRange();
criteria.BackgroundColorRange.IsEmpty = true;
criteria.FontName = "Arial";
criteria.MinFontSize = 19;
criteria.MaxFontSize = 42;
criteria.FontBold = true;
PossibleWatermarkCollection watermarks = watermarker.Search(criteria);
watermarks.Clear();
watermarker.Save(“path/watermark-removed.pdf”);
} 您可以在 Java 的 Word、PDF、Excel 和 PowerPoint 文档中搜索水印。以下代码用于根据文本搜索条件搜索水印:
Watermarker watermarker = new Watermarker(“path/sample.pdf”);
// Apply the exact text search string
TextSearchCriteria textSearchCriteria = new TextSearchCriteria("© 2019");
// Find all possible watermarks containing the specified text
PossibleWatermarkCollection possibleWatermarks = watermarker.search(textSearchCriteria);
System.out.println("Found " + possibleWatermarks.getCount() + " possible watermark(s)");
watermarker.close(); 使用 GroupDocs.Watermark for Java API 也可以删除 Java 中任何现有的水印标签。此 Java 编码具有特定格式:
Watermarker watermarker = new Watermarker(“path/sample.pdf”);
TextFormattingSearchCriteria criteria = new TextFormattingSearchCriteria();
criteria.setForegroundColorRange(new ColorRange());
criteria.getForegroundColorRange().setMinHue(-5);
criteria.getForegroundColorRange().setMaxHue(10);
criteria.getForegroundColorRange().setMinBrightness(0.01f);
criteria.getForegroundColorRange().setMaxBrightness(0.99f);
criteria.setBackgroundColorRange(new ColorRange());
criteria.getBackgroundColorRange().setEmpty(true);
criteria.setFontName("Arial");
criteria.setMinFontSize(19);
criteria.setMaxFontSize(42);
criteria.setFontBold(true);
PossibleWatermarkCollection watermarks = watermarker.search(criteria);
watermarks.clear();
watermarker.save(“path/watermark-removed.pdf”);
watermarker.close(); 您是否希望使用移动设备即时为 PDF、DOC、DOCX、XLS、XLSX、PPT、PPTX、VSD、MSG、EML、RTF、TXT、PNG、JPG、TIFF 和其他文件添加水印?如果是,请尝试我们的免费水印应用程序,享受出色的水印体验。