如何以编程方式打开docx然后在内存中转换为pdf,然后在C#中获取pdf的字节内容?

时间:2013-06-06 13:14:23

标签: c# pdf bytearray docx

我需要打开存储在sharepoint中的docx,然后将其转换为内存中的pdf,然后写入http响应,以便在客户端计算机上下载pdf。

问题是我不知道如何将pdf转换为内存中的字节数组。有一个条件:我只能使用免费的库和第三方API。 Microsoft.Interop提供将docx保存为pdf到磁盘,例如:

Document doc = word.Documents.Open(ref filename, ref oMissing,
                ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                ref oMissing, ref oMissing, ref oMissing, ref oMissing);
doc.Activate();

object outputFileName = wordFile.FullName.Replace(".doc", ".pdf");
object fileFormat = WdSaveFormat.wdFormatPDF;

// Save document into PDF Format
doc.SaveAs(ref outputFileName,
                ref fileFormat, ref oMissing, ref oMissing,
                ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                ref oMissing, ref oMissing, ref oMissing, ref oMissing);

但是我需要获取字节并直接将它们写入响应而不将数据保存在磁盘上。

修改 我想在不参考SharePoint的情况下应用更全面的一站式解决方案。让我们说一些ASP.NET站点。

1 个答案:

答案 0 :(得分:1)

您可以在SharePoint 2010中使用Word Automation Services服务。http://pholpar.wordpress.com/2011/10/27/using-sharepoint-2010-word-automation-services-to-convert-document-synchronously/有一个很好的示例,说明如何以同步方式执行此操作。