>我有一个字节序列,如下所示(Word格式)从水晶报告导出
Stream stream = cryRpt.ExportToStream(CrystalDecisions.Shared.ExportFormatType.WordForWindows);
我想将该流转换为PDF流,以存储在sql服务器数据库的varbinary列中。
文档中有一个条形码,当我导出为 pdf 时,我无法嵌入它。导出到word有效,所以我想尝试从Word到PDF任何人都可以帮助我获取此 PDF 字节[]?
您可以使用
Microsoft.Office.Interop.Word NuGet Package执行此操作。将其添加到应用程序后,您可以将字节数组刷新到临时文件,然后使用 Interop.Word 打开临时文件,使用它,保存结果并将结果读回字节数组。
下面是一个执行此操作的示例代码片段:
// byte[] fileBytes = getFileBytesFromDB();
var tmpFile = Path.GetTempFileName();
File.WriteAllBytes(tmpFile, fileBytes);
Application app = new word.Application();
Document doc = app.Documents.Open(filePath);
// Save DOCX into a PDF
var pdfPath = "path-to-pdf-file.pdf";
doc.SaveAs2(pdfPath, word.WdSaveFormat.wdFormatPDF);
doc.Close();
app.Quit(); // VERY IMPORTANT: do this to close the MS Word instance
byte[] pdfFileBytes = File.ReadAllBytes(pdfPath);
File.Delete(tmpFile);
有关该主题的更多信息,您还可以在我的博客上阅读这篇文章。