4

我有一个创建示例文档的项目。代码在这里:

 private void btnExcel_Click(object sender, System.Windows.RoutedEventArgs e)
    {
        if (AutomationFactory.IsAvailable)
        {
            dynamic excel = AutomationFactory.CreateObject("Excel.Application");
            excel.Visible = true;

            dynamic workbook = excel.workbooks;
            workbook.Add();

            dynamic sheet = excel.ActiveSheet;
            dynamic cell = null;
            int i;
            int z = 20;

            for (i = 1; i <= 20; i++)
            {
                cell = sheet.Cells[i, 1];
                cell.Value = i.ToString();

                cell = sheet.Cells[i, 2];
                cell.Value = z.ToString();

                z--;
            }

        }

    }

如您所见,这是针对 Excel 文档的。有什么办法可以像这样导出到PDF文件吗?感谢您的见解。

4

2 回答 2

2

是的你可以。

您可以调用 WCF 服务操作,将它需要的所有数据传递给它。然后执行生成 PDF 文件所需的所有操作。完成后,您有两个选择:

  • 您可以将字节作为操作的结果发回。在这种情况下,您可以显示用户 aSaveDialog将文件保存到他的本地磁盘。
  • 您可以将生成的文件发送到另一个 aspx 页面并将 PDF 文件显示给用户,然后用户可以选择将其保存到本地磁盘或只是查看它。

我希望这就是你要找的。

于 2012-01-13T06:59:12.087 回答
2

你当然可以。但为什么?!据我了解,AutomationFactory.CreateObject 您可以在客户端计算机上安装 Excel 或 PDF 时执行此操作。

但是处理 Web 应用程序(特别是当它不是企业应用程序时)您希望在任何地方查看 pdf/xls/xlsx/... 并且您可以中继客户端计算机上安装的内容。

我的一个项目也有类似的情况。我们使用 XPS 格式在 silverlight 中显示,因为它具有原生支持。和其他格式转换为xps。

转换中存在细微差别,例如对于 excel 文档,我认为最好的方法是分别转换每张工作表,并实现与查看器不同的特殊类型查看器,例如,对于 word 文档或 pdf 文档。

有 3rd 方查看器不仅可以查看 silverlight 上的 xps,还可以查看 pdf。但是没有它们,您只能让用户下载 PDF 文件而不是查看它,因为这些第 3 部分查看器很可能在后台将 pdf 转换为 xps。

无论如何,尤其是在没有第三方的情况下,在 silverlight 上实现 PDF 查看器需要付出巨大的努力。所以我建议你使用xps来查看。但是,当您需要下载 pdf 文件而不是使用 XPS 进行查看和下载 PDF 时。在这种情况下,您的转换器将为每个站点生成 2 种格式。

例如,看

http://firstfloorsoftware.com/blog/announcement-document-toolkit-for-silverlight/

http://silverpdf.codeplex.com/

http://www.componentone.com/SuperProducts/PdfViewerSilverlight/

于 2012-01-13T07:37:11.533 回答