Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
以下代码片段也适用于 Aspose.PDF.Drawing 库。
水印注释应用于表示将在页面上以固定大小和位置打印的图形,无论打印页面的尺寸如何。
您可以使用 WatermarkAnnotation 在 PDF 页面上的特定位置添加水印文本。水印的不透明度也可以通过使用不透明度属性进行控制。
请查看以下代码片段以添加 WatermarkAnnotation。
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddWatermarkAnnotation()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "source.pdf"))
{
// Load Page object to add Annotation
var page = document.Pages[1];
// Create Watermark Annotation
var wa = new Aspose.Pdf.Annotations.WatermarkAnnotation(page, new Aspose.Pdf.Rectangle(100, 500, 400, 600));
// Add annotation into Annotation collection of Page
page.Annotations.Add(wa);
// Create TextState for Font settings
var ts = new Aspose.Pdf.Text.TextState();
ts.ForegroundColor = Aspose.Pdf.Color.Blue;
ts.Font = Aspose.Pdf.Text.FontRepository.FindFont("Times New Roman");
ts.FontSize = 32;
// Set opacity level of Annotation Text
wa.Opacity = 0.5;
// Add Text in Annotation
wa.SetTextAndState(new string[] { "HELLO", "Line 1", "Line 2" }, ts);
// Save PDF document
document.Save(dataDir + "AddWatermarkAnnotation_out.pdf");
}
}
有时我们需要在 PDF 文档中多次使用相同的图像。添加新实例会增加生成的 PDF 文档。我们在 Aspose.PDF for .NET 17.1.0 中添加了一个新方法 XImageCollection.Add(XImage)。此方法允许将对同一 PDF 对象的引用作为原始图像,从而优化 PDF 文档的大小。
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddWatermarkAnnotationWithImage()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();
// Define the rectangle for the image
var imageRectangle = new Aspose.Pdf.Rectangle(0, 0, 30, 15);
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "input.pdf"))
{
// Open the image stream
using (var imageStream = File.Open(dataDir + "icon.png", FileMode.Open))
{
XImage image = null;
// Iterate through each page in the document
foreach (Page page in document.Pages)
{
// Create a Watermark Annotation
var annotation = new Aspose.Pdf.Annotations.WatermarkAnnotation(page, page.Rect);
XForm form = annotation.Appearance["N"];
form.BBox = page.Rect;
string name;
// Add the image to the form resources if it hasn't been added yet
if (image == null)
{
name = form.Resources.Images.Add(imageStream);
image = form.Resources.Images[name];
}
else
{
name = form.Resources.Images.Add(image);
}
// Add operators to the form contents to place the image
form.Contents.Add(new Aspose.Pdf.Operators.GSave());
form.Contents.Add(new Aspose.Pdf.Operators.ConcatenateMatrix(new Aspose.Pdf.Matrix(imageRectangle.Width, 0, 0, imageRectangle.Height, 0, 0)));
form.Contents.Add(new Aspose.Pdf.Operators.Do(name));
form.Contents.Add(new Aspose.Pdf.Operators.GRestore());
// Add the annotation to the page
page.Annotations.Add(annotation, false);
// Adjust the image rectangle size for the next iteration
imageRectangle = new Aspose.Pdf.Rectangle(0, 0, imageRectangle.Width * 1.01, imageRectangle.Height * 1.01);
}
}
// Save PDF document
document.Save(dataDir + "AddWatermarkAnnotationWithImage_out.pdf");
}
}
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.