PDF和Silverlight,它们可以一起工作吗?

时间:2012-01-13 06:41:13

标签: c# silverlight pdf silverlight-5.0

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

 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文件?感谢您的见解。

2 个答案:

答案 0 :(得分:2)

是的,你可以。

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

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

我希望那就是你要找的东西。

答案 1 :(得分:2)

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

但是处理Web应用程序(特别是当它不是企业应用程序时)你想在任何地方看到pdf / xls / xlsx / ...并且你可以转发客户机上安装的内容。

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

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

第三方观众不仅可以查看silverlight上的xps,还可以查看pdf。但没有它们你只能让用户下载PDF文件而不是查看,因为这些第三部分查看器最有可能将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/