我需要打开存储在 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 站点中。