如何在sharepoint Web部件中将excel文件(xlsx文件)转换为pdf?

时间:2012-01-20 12:55:23

标签: c# pdf sharepoint-2010 xlsx

我正在开发sharepoint web部分。我有自定义的sharepoint服务器功能区。 Sharepoint服务器功能区现在包含一个按钮。在clciking on this按钮上我将sharepoint库中的xlsx文件下载到我的本地驱动器之一。现在我想将此下载的xlsx文件转换为pdf文件。然后我想将此pdf文件上传到sharepoint中的一个文档库。为了自定义服务器功能区和处理按钮回发,我使用以下链接,其中提供了代码示例供下载

Customizing and Extending the SharePoint 2010 Server Ribbon

代码示例对我来说很好。我已将xlsx文件下载到本地文件夹。现在我想将本地文件夹中下载的xlsx文件转换为pdf文件所以我使用以下链接

Convert xlsx file to pdf file

上面链接中给出的代码示例也是我在控制台应用程序中的工作文件。我能够在控制台应用程序中将xlsx文件转换为pdf文件。但是当我将代码复制并粘贴到sharepoint项目中时,它无法正常工作。我无法理解为什么相同的代码在sharepoint项目中不起作用?代码如下

        SautinSoft.UseOffice u = new SautinSoft.UseOffice();

        //Path to any local file
        string inputFilePath =  "D:\\a.xlsx";
        //string inputFilePath = "http://shailesh-pc/TemplateInvoice/Template.xlsx";
        //Path to output resulted file
        string outputFilePath = "D:\\afadfasfd.pdf";
        //string outputFilePath = "http://shailesh-pc/Invoice/aa.xlsx";


        //Prepare UseOffice .Net, loads MS Excel in memory
        int ret = u.InitExcel();

        //Return values:
        //0 - Loading successfully
        //1 - Can't load MS Excel library in memory 

        if (ret == 1)
            return;

        //Converting
        ret = u.ConvertFile(inputFilePath, outputFilePath, SautinSoft.UseOffice.eDirection.XLSX_to_PDF);




        //Release MS Excel from memory
        u.CloseExcel();

        //0 - Converting successfully
        //1 - Can't open input file. Check that you are using full local path to input file, URL and relative path are not supported
        //2 - Can't create output file. Please check that you have permissions to write by this path or probably this path already used by another application
        //3 - Converting failed, please contact with our Support Team
        //4 - MS Office isn't installed. The component requires that any of these versions of MS Office should be installed: 2000, XP, 2003, 2007 or 2010
        if (ret == 0)
        {
            //Show produced file
            System.Diagnostics.Process.Start(outputFilePath);
        }       

在sharepoint项目中,我在int ret = u.InitExcel();获得值0但是我在sharepoint项目中的第ret = u.ConvertFile(inputFilePath, outputFilePath, SautinSoft.UseOffice.eDirection.XLSX_to_PDF);行获得值1。为什么会这样。是否有任何与sharepoint项目有关的问题,以便他们无法将xlsx文件转换为pdf?你能否告诉我在sharepoint中以pdf格式转换xlsx文件需要做些什么?能否请您提供我可以将xlsx文件转换为pdf文件的任何代码或链接?

1 个答案:

答案 0 :(得分:0)

请注意,在这种情况下,Microsoft不建议使用Office自动化:

  

Microsoft目前不推荐,也不支持,   任何无人值守的Microsoft Office应用程序的自动化,   非交互式客户端应用程序或组件(包括ASP,   ASP.NET,DCOM和NT服务),因为Office可能会出现不稳定   Office在此环境中运行时的行为和/或死锁。

您可以在以下主题中查看更多详细信息:http://support.microsoft.com/kb/257757。因此,最好考虑替代方案。