【问题标题】:how can we convert word to .pdf format and excel to .pdf format from c#我们如何从 c# 将 word 转换为 .pdf 格式并将 excel 转换为 .pdf 格式
【发布时间】:2017-02-13 13:07:39
【问题描述】:

我们如何将 excel 文件和 word 文件从 c# 转换为 .pdf 格式。我尝试了以下代码,但它显示错误

这是我的代码:

   Microsoft.Office.Interop.Word.Application appWord = new Microsoft.Office.Interop.Word.Application();
   wordDocument = appWord.Documents.Open(@"C:\Users\ITPro2\Documents\test.docx");
   wordDocument.ExportAsFixedFormat(@"D:\desktop\DocTo.pdf", Microsoft.Office.Interop.Word.WdExportFormat.wdExportFormatPDF);

我得到了以下错误

The export failed because this feature is not installed. 在从 c# 中的 word 导出到 pdf 期间

【问题讨论】:

  • 我可以知道您使用的是哪个版本的Interop 对象吗?
  • 是所有必要的C#标签
  • 最好使用 Aspose 或开源 pdf-printer API
  • @balagurunath 上午 14 点使用
  • @lzzy 。我不明白

标签: c# c#-4.0 c#-3.0 c#-2.0


【解决方案1】:

虽然与下面的文档没有直接关系 https://msdn.microsoft.com/en-us/library/office/ff198122.aspx

提示,如果未安装 pdf 插件,则会发生此错误。因此,请检查您的先决条件,即已安装 Office 和加载项。

【讨论】:

  • 你能解释一下吗
  • 就像其他一些 cmets 已经解释过的那样:要使导出工作,您需要安装已经具有该 pdf 插件(2010+)或 Office 版本加上该 pdf 插件的 Microsoft Office 版本, 铁对于 Office 2007:microsoft.com/en-us/download/details.aspx?id=7
【解决方案2】:

1) Excel 2013 Primary Interop Assembly Class Library 它在 .NET 4.5.1 下运行良好,只需将 Microsoft.Office.Interop.Excel 程序集添加到您的引用中,您就可以开始了。

using System;
using Microsoft.Office.Interop.Excel;
namespace officeInterop
{
    class Program
    {
        static void Main(string[] args)
        {
            Application app = new Application();
            Workbook wkb = app.Workbooks.Open("d:\\x.xlsx");
            wkb.ExportAsFixedFormat(XlFixedFormatType.xlTypePDF, "d:\\x.pdf");
        }
    }
}

或 2)参考此链接将DOC或DOCx文件转换为PDF

http://www.rasteredge.com/how-to/csharp-imaging/pdf-convert-word-to-pdf/

【讨论】:

  • 需要获取的光栅边缘库,从哪里可以获取
【解决方案3】:

由于我的其他评论被删除,这里是更新版本。

为了在 c# 中将我的文件转换为 pdf,我使用了变形库,这也可能是您的解决方案。

下面是我的一个代码示例,我使用 blobstorage 从常规文件下载 PDF 文件。

var converter = new SautinSoft.PdfMetamorphosis();

var ms = new MemoryStream();
await blob.DownloadToStreamAsync(ms);
ms.Seek(0, SeekOrigin.Begin);

var pdfStream = converter.DocxToPdfConvertStream(ms);
if (pdfStream != null)
{
    await _storageProvider.SaveFileAsync(containerName, fileName, pdfStream);
}
ms.Close();

var result = await _storageProvider.GetFileWithAttributesAsync(containerName, fileName);
return new ServiceResponse<CloudBlockBlob>(result);

下面我发布了一些来自库本身的示例代码的链接:

【讨论】:

    猜你喜欢
    • 2014-03-11
    • 1970-01-01
    • 1970-01-01
    • 2015-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-21
    相关资源
    最近更新 更多