无法使用Interop.Word将带内嵌图像的.docx转换为.html

时间:2018-03-29 11:45:58

标签: c# ms-word interop

我的.docx文件包含以下字段:

{INCLUDEPICTURE \ d" ooxWord://media/image1.jpg" * MERGEFORMATINET}

{INCLUDEPICTURE \ d" ooxWord://media/image2.jpg" * MERGEFORMATINET}

我想将.docx文件转换为.html。当我使用MS Word时,会生成新的.html文件。还创建了文件夹{filename} _files。此文件夹包含.html在IMG标签中引用的图像。

我使用Interop.Word。问题是当我在代码中调用SaveAs时,只有第一个图像具有正确的src以及文件夹的路径。第二张图片有" ooxWord://media/image2.jpg"在src。所以当我在浏览器中打开.html时,我只能看到第一张图片。代码:

#include <ctype.h>
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main (int argc, char **argv)
{
    char *p, *endp;
    unsigned long ret;
    int fail = 1;

    if (argc != 2) {
        fprintf(stderr, "usage: %s number-to-parse\n", argv[0]);
        return 2;
    }
    p = argv[1];
    while (*p && !isdigit(*p)) p++;

    errno = 0;
    ret = strtoul(p, &endp, 10);     
    if (endp == p)
        printf("'%s': no number found\n", str);
    else if (*endp && !isspace(*endp))
        printf("'%s': junk on line after number\n", str);
    else if (errno)
        printf("'%s': %s\n", str, strerror(errno));
    else {
        printf("'%s': parsed as %lu\n", str, ret);
        fail = 0;
    }
    return fail;
}

我只能使用Interop。你有任何想法如何解决它?也许我应该传递特殊参数?

1 个答案:

答案 0 :(得分:-1)

我可以建议使用另一个库来执行该任务。 Interop可以免费,更快,更容易,更可靠地使用Spire.Doc。

请参阅以下字面解决问题的示例。

https://www.e-iceblue.com/Tutorials/Spire.Doc/Spire.Doc-Program-Guide/Word-to-HTML-Convert-Word-to-HTML-with-C-VB.NET.html