因项目中需要导入word文档,但其中存在的公式,系统不支持,但又需要导入进系统,之前都是手动截图后再重新插进去,关键时候上千章试卷要进行截图也很耗时间,所以研究了一下转换方式
首先通过将docx后缀改成zip解压后可以发现,公式分成两部分,一部分是.wmf的矢量图文件,一个是objectbin文件,但实际通过画图打开矢量图后发现公式已经可以完整显示出来了,那需要解决的关键部分就是.wmf转.png文件就行了。最开始采用了java来做,但发现通过wmf转svg再转png,一些符号会显示错误,例如微积分符号,可能和格式或者转换方式有关,故放弃。偶然间通过画图将矢量图wmf另存为png时发现所有符号都是显示正确的,那么C#中肯定存在可以完成转换的方式,果然,翻阅一些资料后发现wmf可以通过图元文件写入位图,最后再将图像信息存入文件中就可以很方便的完成转换了,代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Xml;
namespace Project1
{
class Class2
{
static void Main(string[] args)
{
String FileName = args[0];
using (System.Drawing.Imaging.Metafile img = new