如何使用 Aspose 为 pdf 添加图像水印?
How to add image watermarks to pdf using Aspose ?
以下代码在 pdf 页面的中心添加指定图像的水印。我希望图像作为水印重复出现在整个 pdf 页面上,而不是仅位于中心。水印应该重复 background-repeat 属性 在 css.
中的工作方式
static void Main(string[] args)
{
Document pdfDocument = new Document(@"C:\Users\code.wines\Downloads\old.pdf");
pdfDocument.Pages.Add();
ImageStamp imageStamp = new ImageStamp(@"C:\Users\code.wines\Desktop\image.jpg");
imageStamp.Background = true;
imageStamp.Height = 350;
imageStamp.Width = 350;
imageStamp.Opacity = 0.5;
imageStamp.HorizontalAlignment = HorizontalAlignment.Center;
imageStamp.VerticalAlignment = VerticalAlignment.Center;
for (int j = 1; j <= pdfDocument.Pages.Count; j++)
{
pdfDocument.Pages[j].AddStamp(imageStamp);
}
pdfDocument.Save(@"C:\Users\code.wines\Desktop\new.pdf");
}
您可以使用嵌套循环在 PDF 页面上添加图像戳记。下面的代码片段遍历页面并根据您的要求添加图像标记。它假定页边距为零,如果您的文档包含边距,那么您可以使用各自的边距值而不是零来初始化 X
和 Y
变量,并且边距值也会影响条件语句For
循环。下面的代码片段解释了如何在 PDF 文档的整页上重复水印。
//load source document
Document pdfDocument = new Document();
//add a page
pdfDocument.Pages.Add();
//load source image
ImageStamp imageStamp = new ImageStamp(dataDir + @"aspose-logo.jpg");
imageStamp.Background = true;
//set different values
imageStamp.Height = 100;
imageStamp.Width = 100;
imageStamp.Opacity = 0.5;
foreach (Page page in pdfDocument.Pages)
{
//assuming margins as zero
page.PageInfo.Margin.Top = 0;
page.PageInfo.Margin.Bottom = 0;
page.PageInfo.Margin.Left = 0;
page.PageInfo.Margin.Right = 0;
for (double y = 0; y < page.PageInfo.Height; y = y + imageStamp.Height)
{
for (double x = 0; x < page.PageInfo.Width; x = x + imageStamp.Width)
{
imageStamp.XIndent = x;
imageStamp.YIndent = y;
page.AddStamp(imageStamp);
}
}
}
//save generated PDF document
pdfDocument.Save( dataDir + @"New_18.5.pdf");
希望对您有所帮助。如果您需要任何进一步的帮助,请随时与我们联系。
PS: 我在 Aspose 工作,担任开发人员布道师。
以下代码在 pdf 页面的中心添加指定图像的水印。我希望图像作为水印重复出现在整个 pdf 页面上,而不是仅位于中心。水印应该重复 background-repeat 属性 在 css.
中的工作方式static void Main(string[] args)
{
Document pdfDocument = new Document(@"C:\Users\code.wines\Downloads\old.pdf");
pdfDocument.Pages.Add();
ImageStamp imageStamp = new ImageStamp(@"C:\Users\code.wines\Desktop\image.jpg");
imageStamp.Background = true;
imageStamp.Height = 350;
imageStamp.Width = 350;
imageStamp.Opacity = 0.5;
imageStamp.HorizontalAlignment = HorizontalAlignment.Center;
imageStamp.VerticalAlignment = VerticalAlignment.Center;
for (int j = 1; j <= pdfDocument.Pages.Count; j++)
{
pdfDocument.Pages[j].AddStamp(imageStamp);
}
pdfDocument.Save(@"C:\Users\code.wines\Desktop\new.pdf");
}
您可以使用嵌套循环在 PDF 页面上添加图像戳记。下面的代码片段遍历页面并根据您的要求添加图像标记。它假定页边距为零,如果您的文档包含边距,那么您可以使用各自的边距值而不是零来初始化 X
和 Y
变量,并且边距值也会影响条件语句For
循环。下面的代码片段解释了如何在 PDF 文档的整页上重复水印。
//load source document
Document pdfDocument = new Document();
//add a page
pdfDocument.Pages.Add();
//load source image
ImageStamp imageStamp = new ImageStamp(dataDir + @"aspose-logo.jpg");
imageStamp.Background = true;
//set different values
imageStamp.Height = 100;
imageStamp.Width = 100;
imageStamp.Opacity = 0.5;
foreach (Page page in pdfDocument.Pages)
{
//assuming margins as zero
page.PageInfo.Margin.Top = 0;
page.PageInfo.Margin.Bottom = 0;
page.PageInfo.Margin.Left = 0;
page.PageInfo.Margin.Right = 0;
for (double y = 0; y < page.PageInfo.Height; y = y + imageStamp.Height)
{
for (double x = 0; x < page.PageInfo.Width; x = x + imageStamp.Width)
{
imageStamp.XIndent = x;
imageStamp.YIndent = y;
page.AddStamp(imageStamp);
}
}
}
//save generated PDF document
pdfDocument.Save( dataDir + @"New_18.5.pdf");
希望对您有所帮助。如果您需要任何进一步的帮助,请随时与我们联系。
PS: 我在 Aspose 工作,担任开发人员布道师。