string templatePath_url = Server.MapPath("./images/gz.gif"); //印章地址
string templatePath = Server.MapPath("./安全告知承诺书.docx"); //模板地址
string path = Server.MapPath("./yzmodel/"); //保存地
string targetPath = path+ "_安全告知承诺书.pdf";
先设定好印章所在的目录。
由于Aspose.Words 需要建模板才能使用,在这里就不详细描述建模版的步骤了,这个步骤简单可以在网上查询。
以下是需要新建的方法:
private void HandleGuaranteeDoc(string Path_TempleteDoc, string ny, string img_url, string Path_out)
{
// 要是直接往section里插图片设置behindtext属性是可以做成印章的,问题是就只有第一页有其他页面就没得了 那要看你的代码。 第一页怎么加的
string tempFile = Path.GetFullPath(Path_TempleteDoc).ToString(); //获取模板路径,这个根据个人模板路径而定。
Document doc = new Document(tempFile);
DocumentBuilder builder = new DocumentBuilder(doc); //操作word
Dictionary<string, string> dic = new Dictionary<string, string>();//创建键值对 第一个string 为书签名称 第二个string为要填充的数据
if (!string.IsNullOrEmpty(img_url))
{
builder.MoveToBookmark("img_url");
Shape shape = builder.InsertImage(img_url, RelativeHorizontalPosition.Margin, 120, RelativeVerticalPosition.Margin, 480, 120, 120, WrapType.Square);//用流创建图片
shape.WrapType = WrapType.None;//可以使图片浮于文字上方,但是位置信息丢失,不能在书签位置出现。
}
if (!string.IsNullOrEmpty(ny))
{
dic.Add("ny", ny);
}
foreach (var key in dic.Keys) //循环键值对
{
builder.MoveToBookmark(key); //将光标移入书签的位置
builder.Write(dic[key]); //填充值
}
// Create a new memory stream.
MemoryStream outStream = new MemoryStream();
// Save the document to stream.
doc.Save(Path_out);//保存为pdf
}
找不到dll 的 ,可以联系我。