Aspose.Word使用插入图片 条形码 自动生成表格等

上篇文章讲了生成Word时的cmd组件问题,这篇文章主要是将Aspose.Word的使用。它与Microsoft.Office.Interop.Word相比的优缺点如下:

优点:1.生成速度快

           2.可同时多人进行操作

缺点:1.再进行生成没有表格即多段文字的时候格式会乱掉(如:一行中A112121拉可适当减肥  生成时会变成 第一行A112121     第二行拉可适当减肥 )

注意:Aspose.wrod是收费软件

使用步骤:1.引用Aspose.wrod.dll组件

                  2.在word模板中加入书签(我习惯于加入书签,也可用其它方法)

                  3.程序中的id 要与书签名字数量一致(不然会出错)

部分代码如下: 

//载入模板   templatePath为Word模板路径
Document doc = new Document(templatePath);
DocumentBuilder builder = new DocumentBuilder(doc);

//遍历书签

foreach (Bookmark mark in doc.Range.Bookmarks)
 {

if(mark!=null)

{

if(mark.Name=="txt_name")

{

//插入普通文字

mark.Text = "";//将书签位置的内容清空
builder.MoveToBookmark("txt_name");//移到书签位置
builder.Font.Size = 5;//设置字体大小

builder.Font.Bold = true;//字体加粗
builder.ParagraphFormat.LineSpacing = 9;//设置段落行间距
builder.Write("张三");//在书签部分填入名称

 

//插入图片 imgPath图片路径

builder.InsertImage(imgPath,

RelativeHorizontalPosition.Margin, 1,//水平位置的间距

RelativeVerticalPosition.Margin, 1, //相对垂直位置的间距

10, 10,//图片长宽 

WrapType.Inline//插入方式

);

//生成条形码

  #region  条形码
 Aspose.BarCode.BarCodeBuilder tiaoma = new Aspose.BarCode.BarCodeBuilder();

tiaoma.CodeText = "12121212121";
//Set the symbology type to Code128  
tiaoma.SymbologyType = Aspose.BarCode.Symbology.Code128;
 //Create builder for document object  
 Aspose.Words.DocumentBuilder docBuilder = new Aspose.Words.DocumentBuilder(doc);
//Insert the barCode image into document  
docBuilder.InsertImage(tiaoma.BarCodeImage,
Aspose.Words.Drawing.RelativeHorizontalPosition.Margin, 170,
Aspose.Words.Drawing.RelativeVerticalPosition.Margin,
35,
170,
45,
Aspose.Words.Drawing.WrapType.TopBottom);
 #endregion

//自动生成表格

NodeCollection allTables = doc.GetChildNodes(NodeType.Table, true); //拿到所有表格
 Aspose.Words.Tables.Table table = allTables[0] as Aspose.Words.Tables.Table; //拿到第一个表格
 Aspose.Words.Tables.Row r2 = new Aspose.Words.Tables.Row(doc);

Aspose.Words.Tables.Cell c21 = new Aspose.Words.Tables.Cell(doc);
                                c21.CellFormat.Width = 39.35;
                                c21.CellFormat.Borders.Left.LineWidth = 1.5;
                                c21.CellFormat.Borders.Top.LineWidth = 1;

Aspose.Words.Paragraph p1 = new Aspose.Words.Paragraph(doc);
                                p1.ParagraphFormat.Style.Font.Name = "仿宋_GB2312";
                                p1.ParagraphFormat.Style.Font.Size = 14;
                                p1.ParagraphFormat.Alignment = ParagraphAlignment.Center;
                                p1.ParagraphFormat.LineSpacingRule = LineSpacingRule.Exactly;
                                p1.ParagraphFormat.LineSpacing = 24f;

p1.AppendChild(new Run(doc,认为));
                                            c21.AppendChild(p1);
                                            r2.Cells.Add(c21);

table.Rows.Add(r2); //添加一行

}

}

  }

//生成word  saveDocFile  word路径
                        doc.Save(saveDocFile);

//生成pdf   pdf保存路径
                        doc.Save(savepdf, Aspose.Words.SaveFormat.Pdf);

 

你可能感兴趣的:(Aspose.Word,生成word)