一、关于引用

在.netcore中使用ASPOSE.WORDS来进行文档编辑、导出等都需要引入aspose.words.dll版本18以及以上版本,网上下载的大部分资源基本都可以使用,不过在细节方面很多童鞋就卡壳了。

关于笔者用的是docker里面netcore3.1,引用aspose.words.dll版本18.7破解版,测试可用, 资源链接在这里,需要的可进行下载使用 。不过直接引用资源后,测试一下简单代码是否可用

Aspose.Words.Document doc = new Aspose.Words.Document();
Aspose.Words.DocumentBuilder builder = new Aspose.Words.DocumentBuilder(doc);
builder.Writeln("简单测试下是否可用");
doc.Save(("e:\\2.doc"));

如果运行没问题恭喜你如此顺利,不过大部分会因为系统环境的不同出现不同错误。大部分遇到SkiaSharp引用错误,这个是因为Aspose.Words  使用了SkiaSharp 用来处理字体。

这里有2种方式供大家使用:

方法一:直接引用资源里面提供的SkiaSharp.dll,然后进行编译运行通过

方法二:nuget包查找SkiaSharp,然后找到最小下载的支持netcore版本的方案包下载,下载完毕后编译运行通过。

二、关于使用中字体的设置问题

我们还是直接上代码,很简单,一看就会,大家可以看看,用2种不同方式进行了字体设置,如果觉得哪种方便就用哪种。

Aspose.Words.Document doc = new Aspose.Words.Document();
Aspose.Words.DocumentBuilder builder = new Aspose.Words.DocumentBuilder(doc);
builder.Writeln("简单测试下是否可用");
Font font = builder.Font;
font.Name= "华文行楷";
font.Bold= true;
font.Color = System.Drawing.Color.Red;
font.Size = 26;
builder.Writeln("第二段文字内容,华文行楷,红色字体");
font.Name= "宋体";
font.Bold= false;
font.Color = System.Drawing.Color.Black;
font.Size = 14;
builder.Writeln("第三段文字内容,宋体,黑色字体");
builder.InsertHtml("<style>.font15{font-size:15px;font-weight:normal;font-family:'隶书';}.font35bold{font-size:35px;font-weight:bold;color:blue;font-family:'黑体';}</style><div class='font15'>第四段文字内容,隶书,默认字体</div><div class='font35bold'>第五段文字内容,黑体,蓝色字体</div>");
doc.Save(("e:\\2.doc"));

下面是效果图,大家参考对比

但是在上面代码中运行时出现错误,

可以看出,应该是SkiaSharp.dll找不到对应的字体了。在nuget包查找libSkiaSharp,下载安装后运行正确。

其实我们用InsertHtml方法添加自定义样式,在word中会自动转换成新建样式。只要系统中存在libSkiaSharp.so文件

注意:赋权限:chmod 77 libSkiaSharp.so

网上大部分只介绍第一种方法,第二种很少有人提起、使用,希望能从另一方面给给大家一种思考的方式。

(1)使mkfontscale和mkfontdir命令正常运行 ​ yum install mkfontscale (2)使fc-cache命令正常运行。如果提示 fc-cache: command not found ​ yum install fontconfig liunx下安装 字体 ArrayList<FontSourceBase> fontSources = new ArrayList<>(); String fontPath = new ApplicationHome().getDir().getPath() + File.separator + "template" + File.separator + "font"; FolderFontSource fontSource = new FolderFontSource(fontPath, true); Aspose.Words For .NET 是一种高级Word文档处理API,用于执行各种文档管理和操作任务。API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接 使用 MicrosoftWord。此外,API支持所有流行的Word处理文件格式,并允许将Word文档导出或转换为固定布局文件格式和最常用的图像/多媒体格式。>> Aspose.Words for .NET 已经更新最新版,主要新增5大特点,包括支持阅读PDF文档; 字体 的行距是两行连续文本的基线之间的垂直距离。... 1.总体说明:操作主要涉及两个对象Document及DocumentBuilder Document主要用来获取文档中的节点,DocumentBuilder主要用于实现文档内容的写入             doc_Operate = new Document(blankTemplatePth); doc_template = new Docume... 在 使用 aspose导出pdf文件,会遇到windows环境导出pdf文档正常展示,部署到linux环境就出现导出乱码,其实就是linux服务器上的 字体 不支持的问题,我们只需要在linux服务器上配置对应 字体 就ok了。