Aspose.word.dll 插件 将生成word保存 并且另存为pdf格式

  string tmppath="Test.doc";//获取模板

  Document doc = new Document(tmppath); //载入模板

  DataTable dt_search = search.SearchDataByProcStore(tablename, where);//获取要写入word的数据源
 // 循环当前表的列数
  for (int i = 0; i < dt_search.Columns.Count; i++)
  {
       string fieldName = dt_search.Columns[i].ToString();// 字段名
       // 循环当前表的行数
      for (int j = 0; j < dt_search.Rows.Count; j++)
     {
           // 开始定义标签,例如:PO_ID1、PO_ID2、PO_ID3
            if (doc.Range.Bookmarks["PO_" + fieldName + j + ""] != null)
           {
                    Bookmark mark = doc.Range.Bookmarks["PO_" + fieldName + j + ""];//设置标签
                    mark.Text = dt_search.Columns[i].Table.Rows[j][i].ToString();//并且赋
    }
    if (doc.Range.Bookmarks["PO_" + fieldName + ""] != null)
    {
      Bookmark mark = doc.Range.Bookmarks["PO_" + fieldName + ""];
      mark.Text = dt_search.Columns[i].Table.Rows[j][i].ToString();
    }
  }
}
Aspose.Words.DocumentBuilder builder = new Aspose.Words.DocumentBuilder(doc);//保存

//word中有Table的情况

// 判断word中是否存在当前标签
  if (doc.Range.Bookmarks["PO_regTable" + k + ""] != null)
  {
      builder.MoveToBookmark("PO_regTable" + k);// 定位到书签去
      // 获取动态表格的表头
      string[] strTitleArry = Request.QueryString["wordTitle"].Split(';');
      // 取表头数组下的名字
      string[] strTitleName = strTitleArry[k].Split(',');
      // 向左移动
      builder.RowFormat.LeftIndent = -20;
      // 动态生成标题
      for (int j = 0; j < strTitleName.Length; j++)
      {
         string filedName = strTitleName[j];
           builder.InsertCell();// 添加一个单元格
           builder.CellFormat.Borders.LineStyle = LineStyle.Single;
           builder.CellFormat.Borders.Color = System.Drawing.Color.Black;
           builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
           builder.CellFormat.VerticalAlignment = CellVerticalAlignment.Center;//垂直居中对齐
         builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
           builder.Write(filedName);
      }
      builder.EndRow();
      doc.Range.Bookmarks["PO_regTable" + k].Text = ""; // 清掉标示
      for (var m = 0; m < dt_search.Rows.Count; m++)
      {
        for (var n = 0; n < dt_search.Columns.Count; n++)
        {
          builder.InsertCell();// 添加一个单元格
          builder.CellFormat.Borders.LineStyle = LineStyle.Single;
          builder.CellFormat.Borders.Color = System.Drawing.Color.Black;
          builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
          builder.CellFormat.VerticalAlignment = CellVerticalAlignment.Center;//垂直居中对齐
          builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
          builder.Write(dt_search.Rows[m][n].ToString());
        }
        builder.EndRow();
        doc.Range.Bookmarks["PO_regTable" + k].Text = ""; // 清掉标示
      }
    }
  }

    doc.Save("NewTest.doc", SaveFormat.Doc);//直接保存文件

 

 ----可以直接另存为pdf的格式,但是这里的Aspose.word.dll 的版本必须是14.1.0.0,因为到现在我只发现这个版本支持中文,其他的版本还没有发现支持中文

 doc.Save("NewTest.pdf", SaveFormat.Pdf);

转载于:https://www.cnblogs.com/gavin0517/p/4936717.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值