如何将office文件转换为图像

时间:2017-03-06 06:07:14

标签: c# asp.net byte filestream docx

我正在搜索过去两天,但没有找到任何东西。

我的要求是在我的Web应用程序(C#.Net)中创建文档查看器,我不想使用任何第三方工具。我可以转换图像或PDF格式的文件,也可以转换为可在网页上轻松呈现的任何常见格式文件。我也不能使用Introp对象。

任何帮助都将受到高度赞赏

5 个答案:

答案 0 :(得分:3)

如果您无法在解决方案中使用COM / Interop技术,则可以查看专门的第三方选项。我发现您不希望使用它们,但.NET Framework中没有现有的内置解决方案。在一个类似的线程中查看my answer,该线程描述了如何使用第三方库完成相同的任务(例如,DevExpress,因为我有使用它的经验)。此外,请查看Documents演示,您可以在其中查看如何从不同类型的MS Office文档创建图像/缩略图。

答案 1 :(得分:2)

我相信您需要的是文档的中间表示,可以将其转换为图像供观众显示。

让我试着用下图解释:

enter image description here

答案 2 :(得分:2)

您在其中一条评论中提到您想自己编写所有代码,但不知道从哪里开始。这就是我如何去做...

首先,您需要熟悉Microsoft Office格式规范。您可以找到here(其中包含指向技术规范的链接)。 Office文档实际上是一个.zip文件,其中包含XML文件以及表示附件的任何二进制数据。只需将.docx文件重命名为.zip,您就可以打开它并查看XML和其他任何支持文档(对于xlsx等也是如此)。

然后,您需要熟悉PDF或HTML,因为您现在的工作是将各种Office文档结构转换为PDF或HTML结构,确保尊重页面布局,边距,顺序,等...

正如其他人所说,这是一项艰巨的任务,这也是今天存在第三方工具的原因。此外,每个第三方工具集都有它的限制,因为这很难“正确”#34;在所有情况下都会有边缘案例适用于一个文档而不是另一个文档(因为他们可能没有使用Microsoft Word来保存.docx,也许他们使用OpenOffice和OpenOffice对标准的解释略有不同......)

答案 3 :(得分:0)

您可以使用smallpdf或OfficeToPDF等工具来执行此操作。只需将它们集成到您的应用程序中即可。

小PDF(https://smallpdf.com/library-detail

officetopdf(https://officetopdf.codeplex.com/

答案 4 :(得分:-2)

有多种方法可以呈现PDF文件以供网站查看。大多数浏览器都支持查看PDF文件,因此只要您使用Web应用程序定位的所有浏览器都这样做,就可以轻松实现。

一种方法是使用锚(a)标记超链接引用PDF文件。这个将在单击时在新的浏览器选项卡中显示指定的PDF文件。

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

void printAfterX(int* arr, int n, int* x);

int main()
{
    int arr[] = { 4, 8, 6, 2, 1, 3, 5, 7, 8, 9, 5 };
    printAfterX(arr, 11, arr+6);
    return 0;
}

void printAfterX(int* arr, int n, int* x)
{
    if (x >= arr && x <= (arr + n)) //this checks if x is in the limits
    {
        x++;
        for (*arr = 0; *arr <= n; *arr++)
        {
            printf("%d ", *(arr + *x));
        }
    }
    else
    {
        printf("Not in range ");
    }
}

要在现有浏览器标签中显示PDF文件,请从锚标记中删除target =“_ blank”选项。

Adobe page描述了如何创建引用PDF文件中特定页面的锚标记。