新物网

当前位置:首页 > 百科

百科

使使用Aspose.Wordsfor.动态生成word文本文档中的图片或水印

时间:2023-10-21 16:18:32 静子
使使用Aspose.Words for .word文本文档中的图片或图片水印动态生成1、简述word文本文档在项目中生成,隐私功能非常普遍。一般来说,有很多文本或目录,这有利于客户打印。一些客户也需要将照片形成wo

使使用Aspose.Words for .word文本文档中的图片或图片水印动态生成
1、简述
word文本文档在项目中生成,隐私功能非常普遍。一般来说,有很多文本或目录,这有利于客户打印。一些客户也需要将照片形成wordword,如商品图片。今天我们分享的是如何使用Aspose.Words for .NET在Word中动态生成图片或图片水印。今天我们分享的是如何使用Aspose.Words for .NET在Word中动态生成图片或图片水印。Aspose.Words for .NET,这个我就不多说了,不太清楚的小伙伴可以看看上一篇文章。要求变化很快。最近,项目中有另一个要求:在系统中形成报价表后,应根据不同用户生成的照片进行签名。好了,今天我就给大家讲解一下如何实现隐私功能,感兴趣的朋友为什么不一起讨论一下。

2、文章正文
Aspose.在Words中,照片的实际操作主要依赖于这一类:Aspose.Words.Drawing.Shape。首先,让我们来看看如何使用这种上传图片:

 

using Aspose.Words;
using Aspose.Words.Tables;
using Aspose.Words.Rendering;
using Aspose.Words.Drawing;

Document doc = new Document(tmppath);
DocumentBuilder builder = new DocumentBuilder(doc);

Shape shape = new Shape(doc, ShapeType.Image);
shape.ImageData.SetImage(Server.MapPath("~/template/default.jpg"));
shape.Width = 70;
shape.Height = 70;
shape.HorizontalAlignment = HorizontalAlignment.Right; //右对齐
 


shape.ImageData.SetImage(…)上传图片的方法有四种轻载,主要参数为:图片路径、字节数、流量、Image目标。我主要采用图片路径的形式,因为新项目应该根据不同的用户形成不同的签名关系。我这边主要采用图片路径的形式,因为新项目应该根据不同的用户形成不同的签名关系。图片加载到目标后,我们要做的就是把它们放进word里。下一步,我们要做的是定位图片应该放在word中的哪个位置。

Aspose.Words在文档中的精确定位大多是基于连接点Node,我们的图片不太可能像table一样固定在同一个表中。所以我的策略是找一个可以随意调整节点作为节点“方向标”定位图片位置。还是要用BookMark(域也可以做到)。先在word模板中定义bookmark值”myname”。返回系统,下面的代码是使用笔记来定位图片的位置:

 

builder.MoveToBookmark("myname");
builder.InsertNode(shape);

Bookmark myname = doc.Range.Bookmarks["myname"];
myname.Text = "";
doc.Range.Bookmarks["myname"].Remove();

doc.Save("baojiadan.doc", SaveFormat.Doc, SaveType.OpenInWord, Response);
 

事实上,我们自己的动态创建图已经在这里完成。

让我们来看看实际效果:图1

如何将图片生成图片水印?

让我们来看看实际效果:图1

如何将图片生成图片水印?别担心,请继续和我一起往下看。实际上,实现图片水印效果主要是针对目标Aspose.Words.Drawing.Shape的特点设置。代码如下:

 

shape.WrapType = WrapType.None;

shape.BehindText = true;

 

设置完成后,我们将设置照片要放置的位置。接下来,我们不需要boomark来定位它。立即将其放置在word模板的中心,如下所示:

 

编码
shape.RelativeHorizontalPosition = RelativeHorizontalPosition.Page;

shape.HorizontalAlignment = HorizontalAlignment.Center;

shape.RelativeVerticalPosition = RelativeVerticalPosition.Page;

shape.VerticalAlignment = VerticalAlignment.Center;

 

然后我们在文档中添加一个类似底部的东西,代码如下。

 


编码
builder.MoveToHeaderFooter(HeaderFooterType.FooterPrimary);

Border topBorder = builder.CellFormat.Borders[BorderType.Top];
topBorder.LineStyle = LineStyle.Single;
topBorder.LineWidth = 1;

builder.InsertCell();
builder.CellFormat.Width = 3 * 72;
builder.Write(string.Format(打印时间: {0}", DateTime.Today.ToLongDateString()));

builder.InsertCell();
builder.ParagraphFormat.Alignment = ParagraphAlignment.Right;

builder.Write("版本号 1.00");


builder.EndRow();

builder.EndTable();


doc.Save("baojiadan.doc", SaveFormat.Doc, SaveType.OpenInWord, Response);

好了,我们来看看实际效果:图2

到此,一切都结束了。非常感谢您花时间阅读,感兴趣的朋友们一起讨论。非常感谢您花时间阅读,感兴趣的朋友们一起讨论。