起因

因项目需要,而且使用html转Word的时候,样式不兼容问题,于是只能使用Aspose.Word通过代码生成。下面是通过DocumentBuilder来设计Word的,但是和使用模型拼接的差不多,原理基本一致。

思路

这里是说使用Aspose.Word的使用思路,只想某个功能是怎么使用的可以跳过
代码都是人写的,所以每一个代码都有他的风格,了解这些代码作者的思路有利于我们去使用它。
简单使用Word,无非就是文字,图片,表格以及页面的样式。如果了解Css和英语好点的基本都是可以在VS里面点出来的,最难的就是最开始的入门的。

入门,简单的示例

Aspose.Words.Document doc = new Document();//新建一个空白的文档
Aspose.Words.DocumentBuilder builder = new Aspose.Words.DocumentBuilder(doc);
doc.Save("文件保存的全路径");
这里面的`builder`相当于一个画笔,提前给他规定样式,然后他就能根据你的要求画出你想画的Word。这里的画笔使用的是就近原则,当上面没有定义了builder的时候,会使用默认的格式,当上面定义了某个格式的时候,使用最近的一个(即最后一个改变的样式)

设定Word页面的样式

builder.PageSetup.PaperSize = PaperSize.A4;//A4纸
builder.PageSetup.Orientation = Aspose.Words.Orientation.Portrait;//方向
builder.PageSetup.VerticalAlignment = Aspose.Words.PageVerticalAlignment.Top;//垂直对准
builder.PageSetup.LeftMargin = 42;//页面左边距
builder.PageSetup.RightMargin = 42;//页面右边距

关于页面的设置,基本都在PageSetup中,根据需要和正常的名字,基本都可以猜出来

写入一段文字

//获取ParagraphFormat对象,关于行的样式基本都在这里
var ph = builder.ParagraphFormat;
//文字对齐方式
ph.Alignment = ParagraphAlignment.Center;
// 单倍行距 = 12 , 1.5 倍 = 18
ph.LineSpacing = 12;//获取Font对象,关于文字的大小,颜色,字体等等基本都在这个里面
Aspose.Words.Font font = builder.Font;
//字体大小
font.Size = 22;
//是否粗体
font.Bold = false;
//下划线样式,None为无下划线
font.Underline = Underline.None;
//字体颜色
font.Color = Color.Black;//C#的颜色
font.Color = System.Drawing.ColorTranslator.FromHtml("#3b3131");//自定义颜色
//设置字体
font.NameFarEast = "宋体";
//添加文字
builder.Write("添加的文字");
//添加回车
builder.Writeln();
//添加文字后回车
builder.Writeln("添加的文字后回车");

基本使用到的就是这几个了,如果需要更多可以自己在VS里面点后试试看。

注意:`builder`在`Write`的时候,默认会使用上面规定的格式,除非你在使用`Write`前更新画笔的格式,所以,当你在做样式很多的Word的时候注意更改画笔的格式。

添加图片

builder.InsertImage("图片绝对地址");
builder.InsertImage("图片绝对地址", 80, 80);//可以控制图片的宽高

基本是这样使用,当然还有是其他很多种的参数,比如ImageStream等,在使用的时候可以根据需要使用

添加表格

//开始添加表格
Aspose.Words.Tables.Table table = builder.StartTable();
//开始添加第一行,并设置表格行高
RowFormat rowf = builder.RowFormat;
rowf.Height = 40;
// ....这里rowf可以有很多的设置
//插入一个单元格
builder.InsertCell();
//设置单元格是否水平合并,None为不合并
builder.CellFormat.HorizontalMerge = CellMerge.None;
//设置单元格是否垂直合并,None为不合并
builder.CellFormat.VerticalMerge = CellMerge.None;
//设置单元格宽
builder.CellFormat.Width = 40;
//单元格垂直对齐方向
builder.CellFormat.VerticalAlignment = CellVerticalAlignment.Center;
//单元格水平对齐方向
builder.ParagraphFormat.Alignment = ParagraphAlignment.Left;
builder.CellFormat.FitText = true;//单元格内文字设为多行(默认为单行,会影响单元格宽)
//单元格内添加文字
builder.Write("这是第一行第一个单元格");
builder.InsertCell();
builder.CellFormat.Width = -1;//当不需要规定这个单元格的宽度的时候,设置成-1,会是自动宽度
builder.Write("这是第一行第二个单元格");
//结束第一行
builder.EndRow();
//结束表格
builder.EndTable();
//设置这个表格的上下左右,内部水平,垂直的线为白色(当背景为白色的时候就相当于隐藏边框了)
table.SetBorder(BorderType.Left, LineStyle.Double, 1, Color.White, false);
table.SetBorder(BorderType.Top, LineStyle.Double, 1, Color.White, false);
table.SetBorder(BorderType.Right, LineStyle.Double, 1, Color.White, false);
table.SetBorder(BorderType.Bottom, LineStyle.Double, 1, Color.White, false);
table.SetBorder(BorderType.Vertical, LineStyle.Double, 1, Color.White, false);
注意:最重要的是不用忘记开始表格,开始一行,结束一行,结束表格
里面的设置可以根据个人需要修改,也可以不写使用默认的

表格的合并单元格

//横向合并单元格
builder.CellFormat.HorizontalMerge = CellMerge.None;
builder.CellFormat.HorizontalMerge = CellMerge.First;
builder.CellFormat.HorizontalMerge = CellMerge.Previous;
//纵向合并单元格
builder.CellFormat.VerticalMerge = CellMerge.None;
builder.CellFormat.VerticalMerge = CellMerge.First;
builder.CellFormat.VerticalMerge = CellMerge.Previous;
备注:当不需要合并单元格的时候设置为 None,当需要合并单元格的时候,第一个设置为First,并正常写入这个单元格应该存储的内容。后面的到了要和这个单元格合并的单元格的时候,不需要写入内容,只需要设置成Previous即可。

Aspose.Word 的常见使用(不用模板创建)相关推荐

  1. Aspose.Word企业案例:Progetto Adele 使用 Aspose API 从预定义模板自动生成 Word 和 PDF 文件

    关于 Progetto Adele Progetto Adele是一家在物流和国际货运市场运营的软件公司.它成立于 2003 年,由在物流和货运公司软件开发方面具有长期经验的人员管理.在过去的 15 ...

  2. 利用Aspose.Word控件和Aspose.Cell控件,实现Word文档和Excel文档的模板化导出

    我们知道,一般都导出的Word文档或者Excel文档,基本上分为两类,一类是动态生成全部文档的内容方式,一种是基于固定模板化的内容输出,后者在很多场合用的比较多,这也是企业报表规范化的一个体现. 我的 ...

  3. Java 使用word模板创建word文档报告教程

    上面是java 利用word模板生成的一个word报告文档,利用的是第三方类库Poi-tl 是实现的. poi-tl是一个基于Apache POI的Word模板引擎,也是一个免费开源的Java类库,你 ...

  4. 动态生成word文档原来如此简单!Aspose.Words助力以Java编程方式创建丰富的Word文档

    近年来,Word文档的动态生成已成为组成报告,报价,发票和其他类型文档的流行功能.各种制造公司都基于数据库中存储的数据生成发票.在这种情况下,文档自动化可以节省手动文档创建过程中所需的时间,精力和资源 ...

  5. Word处理控件Aspose.Words功能演示:使用C#创建MS Word文档

    Aspose.Words是一种高级Word文档处理API,用于执行各种文档管理和操作任务.API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word. A ...

  6. oa导入表格html,点晴OA工作流表单模板创建注意事项(Word、Excel复制粘贴变形如何解决)...

     点晴OA工作流表单模板创建注意事项(Word.Excel复制粘贴变形如何解决) 很多用户反映点晴OA系统中工作流表单创建时对于表格的控制十分的麻烦,希望能够做出漂亮的效果,但往往事违人愿.下面将工作 ...

  7. Word处理控件Aspose.Words功能演示:使用 C++ 创建 MS Word 文档 (DOC/DOCX)

    Aspose.Words 是一种高级Word文档处理API,用于执行各种文档管理和操作任务.API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word.此 ...

  8. aspose word for Java 处理word 模板,替换字符串或图片

    20200806更新:此版本好像存在某些bug,复杂的doc替换图片后导致打开时弹出错误修复框.新版见:aspose word 20 java 替换占位符为文字或图片 找了很久Java处理word的方 ...

  9. 利用Aspose.Word控件实现Word文档的操作

    Aspose系列的控件,功能都挺好,之前一直在我的Winform开发框架中用Aspose.Cell来做报表输出,可以实现多样化的报表设计及输出,由于一般输出的内容比较正规化或者多数是表格居多,所以一般 ...

最新文章

  1. AI一分钟 | 特斯拉再融46亿;腾讯AI Lab宣布开源多标签图像数据集
  2. 03Django基本应用结构
  3. 技术除了工作,还有什么可以提升的?
  4. a3国际服服务器未响应,A3幸存者国际服
  5. Silverlight 动态调用 WebService
  6. 解决数据库导入导出的常见问题集解决办法
  7. 一键生成流量密码(夸张广告标题)
  8. 「支持m1」自定义菜单键盘快捷键——CustomShortcuts for mac
  9. DotNetNuke 中文乱码问题的解决
  10. Angularjs中$http以post请求通过消息体传递参数
  11. hadoop2.x配合ZooKeeper集群环境搭建
  12. 【第六课】Smart 3d常见问题集锦
  13. Android EditText监测(TextWatcher)输入后延时500ms再搜索
  14. dos窗口运行.java文件
  15. java里面com.是什么意思
  16. 图像三维重建方法综述
  17. 2022.02.16【读书笔记】|基于深度学习的生命科学 第2章 深度学习概论(下)
  18. 手机移动端首页广告栏滚动图片
  19. 【c++面向过程实验6】函数
  20. [CTF]中那些脑洞大开的编码和加密

热门文章

  1. 您的空间不支持PHP,空间不支持fsockopen函数解决办法
  2. 如何制作计算机启动盘,一款U盘启动盘制作小工具
  3. 用Visual Studio 2019 开发stm32,cortex-m3, arm
  4. 频率响应函数与数字滤波实验_WKD3419振动测试与控制教学实验系统
  5. 线上课程推荐 | 计算机方向:无人驾驶中的环境感知
  6. 拆解Mate 30 Pro,内部双重散热、铜管一体紫色防滚架,太酷了!
  7. 商业逻辑12讲之管理思维的逻辑
  8. oracle desc能看约束,ORACLE 12C新特性-DESC显示不可见字段 | 信春哥,系统稳,闭眼上线不回滚!...
  9. click事件在什么时候出发_超全的js事件机制amp;事件委托
  10. linux的django路径,Ubuntu下使用Django搭建前后端分离的全栈项目