Comments (10)
@fengli0 请附上您的文件和用于插入水印的代码。 我们将检查并提供更多信息。
from aspose.words-for-.net.
@fengli0 请附上您的文件和用于插入水印的代码。 我们将检查并提供更多信息。
你好,我已经上传了文件和插入水印的代码,麻烦帮忙看看,谢谢
from aspose.words-for-.net.
@fengli0 感谢您提供其他信息。 如我所见,您的文档已经包含水印。 您是否需要两个水印? 另外,在代码中,您可以通过循环所有标头来手动插入水印。 在最新版本的Aspose.Words中,有一个用于插入水印的内置方法。
https://docs.aspose.com/words/net/working-with-watermark/
但是在这种情况下,Aspose.Words将删除旧的水印并插入新的水印。
如果同时需要两个水印,则可以使用您的方法,但是将水印图像插入页眉中,而不是插入页脚中。
from aspose.words-for-.net.
@AlexNosk 我们现在的需求就是需要可以插入多个水印。您说的“但是将水印图像插入页眉中,而不是插入页脚中。”是下图所示的代码吗?
我是参考你们提供的Dome 实现的
。我对aspose不了解,您能详细说下怎么插入页眉中吗?
from aspose.words-for-.net.
@fengli0 我修改了您的代码,以避免插入多余的段落。 希望这可以帮助。
Private Sub InsertWatermarkImageToWord(ByVal doc As Aspose.Words.Document, ByVal strImgPath As String, ByVal ContractCode As String)
doc.AcceptAllRevisions()
Dim bookmark As Aspose.Words.Bookmark = doc.Range.Bookmarks("合同编号")
If Not bookmark Is Nothing Then
Dim name As String = bookmark.Name
Dim text As String = bookmark.Text
bookmark.Name = "合同编号"
bookmark.Text = ContractCode
End If
Dim watermark As Aspose.Words.Drawing.Shape = New Aspose.Words.Drawing.Shape(doc, ShapeType.Image)
watermark.ImageData.SetImage(strImgPath)
watermark.Left = 100
watermark.Top = 400
watermark.Width = 70
watermark.Height = 21
watermark.WrapType = WrapType.None
watermark.BehindText = True
watermark.RelativeHorizontalPosition = RelativeHorizontalPosition.Page
watermark.RelativeVerticalPosition = RelativeVerticalPosition.Page
'循环每页,将水印插入到文档每页中
For Each sect As Aspose.Words.Section In doc.Sections
InsertWatermarkImgIntoHeader(watermark, sect, HeaderFooterType.HeaderFirst)
InsertWatermarkImgIntoHeader(watermark, sect, HeaderFooterType.HeaderPrimary)
InsertWatermarkImgIntoHeader(watermark, sect, HeaderFooterType.HeaderEven)
Next
End Sub
Private Sub InsertWatermarkImgIntoHeader(ByVal watermark As spose.Words.Drawing.Shape , ByVal sect As Aspose.Words.Section, ByVal headerType As HeaderFooterType)
Dim header As Aspose.Words.HeaderFooter = sect.HeadersFooters(headerType)
If header IsNot Nothing Then
If header.Paragraphs.Count = 0 Then
header.AppendChild(New Paragraph(sect.Document))
End If
header.FirstParagraph.AppendChild(watermark.Clone(True))
End If
End Sub
private void InsertWatermarkImageToWord(Document doc, string strImgPath, string ContractCode)
{
doc.AcceptAllRevisions();
Bookmark bookmark = doc.Range.Bookmarks["合同编号"];
if (bookmark != null)
{
string name = bookmark.Name;
string text = bookmark.Text;
bookmark.Name = "合同编号";
bookmark.Text = ContractCode;
}
Shape watermark = new Shape(doc, ShapeType.Image);
watermark.ImageData.SetImage(strImgPath);
watermark.Left = 100;
watermark.Top = 400;
watermark.Width = 70;
watermark.Height = 21;
watermark.WrapType = WrapType.None;
watermark.BehindText = true;
watermark.RelativeHorizontalPosition = RelativeHorizontalPosition.Page;
watermark.RelativeVerticalPosition = RelativeVerticalPosition.Page;
// 循环每页,将水印插入到文档每页中
foreach (Section sect in doc.Sections)
{
InsertWatermarkImgIntoHeader(watermark, sect, HeaderFooterType.HeaderFirst);
InsertWatermarkImgIntoHeader(watermark, sect, HeaderFooterType.HeaderPrimary);
InsertWatermarkImgIntoHeader(watermark, sect, HeaderFooterType.HeaderEven);
}
}
private void InsertWatermarkImgIntoHeader(Shape watermark, Section sect, HeaderFooterType headerType)
{
HeaderFooter header = sect.HeadersFooters[headerType];
if (header != null)
{
if (header.Paragraphs.Count == 0)
header.AppendChild(new Paragraph(sect.Document));
header.FirstParagraph.AppendChild(watermark.Clone(true));
}
}
from aspose.words-for-.net.
@AlexNosk 不知道是不是版本的问题(我这边的版本是19.10.0.0),我这边用您的代码测试,发现无法插入水印。还需要加下面的代码才行(见下图)
但是这个只会在第一页插入水印,其他页不会插入水印(见附件)
12 专业工程分包合同(35616家合桩基)19180610.docx
from aspose.words-for-.net.
@fengli0 突出显示的代码实际上不是必需的,因为它重复了水印的插入。 另外,我还修改了InsertWatermarkImgIntoHeader方法,以使其创建头(如果不存在)。 我已使用您先前随附的原始文档对代码进行了测试,并且所有页面上都存在水印。 我使用最新的21.1版本的Aspose.Words进行了测试
private static void InsertWatermarkImgIntoHeader(Shape watermark, Section sect, HeaderFooterType headerType)
{
HeaderFooter header = sect.HeadersFooters[headerType];
if (header == null)
sect.HeadersFooters.Add(new HeaderFooter(sect.Document, headerType));
if (header.Paragraphs.Count == 0)
header.AppendChild(new Paragraph(sect.Document));
header.FirstParagraph.AppendChild(watermark.Clone(true));
}
from aspose.words-for-.net.
@AlexNosk 非常感谢!我之前说的只会在第一页插入水印的问题,是因为 watermark.ImageData.SetImage(strImgPath); 这个方法导致的,我改成watermark.ImageData.SetImage(Image.FromFile(strImgPath));后就可以了
from aspose.words-for-.net.
@fengli0 设法实现所需的东西是件好事。 问题可以解决吗?
from aspose.words-for-.net.
@AlexNosk 已经解决了,非常感谢!
from aspose.words-for-.net.
Related Issues (20)
- wps文档加水印后,段落格式会被修改为段落后加10磅,导致页面都往下一页移动,格式错乱. HOT 9
- 文档横向页面加水印后页面变形,换页到下二页 HOT 2
- Word加水印提示 “Unknown color type encountered during WordML export - DrColor [EFFFFFFF].” HOT 1
- Trying to get in touch with you regarding a security issue HOT 3
- Image missing when converting a word document to pdf in linux docker container. HOT 9
- Cannot Run Live.Demo.UI with VS2019 16.11.2
- aspose.words是否支持.net5? HOT 4
- .NET Core / .net6 support HOT 1
- "error 0" after d&d of a doc HOT 1
- aspose_word15.8.0中docx文件加多水印后,表格中行高会变大,怎么处理 HOT 8
- 如何插入数学公式到文档当中? HOT 1
- ASPOSE.WORD for .net word to PDf erro Font '阿里巴巴普惠体 R' has not been found. Using 'Courier New' font instead. Reason: font info substitution. HOT 1
- please update your demo code to .net6.0 HOT 1
- an issues HOT 1
- 官方提供的实例程序中没有显示百分比 HOT 2
- hello,Aspose.Word中 builder.insertChart()方式怎么生成带折现的柱状图呢? HOT 2
- Convert text to PNG in C# for Unity HOT 1
- Docx to markdown conversion issues HOT 5
- Why the "Document Viewer Online" app is unavailable? In addition ,it doesn't have demo source code? HOT 1
- RuntimeError: Proxy error(ArgumentOutOfRangeException): Year, Month, and Day parameters describe an un-representable DateTime.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from aspose.words-for-.net.