Как выполнить преобразование PDF в Event Receiver? - PullRequest
0 голосов
/ 26 сентября 2011

Я пытаюсь преобразовать документ в файл .docx, доступный в библиотеке документов (преобразование), в формат PDF в той же библиотеке при каждом обновлении файла.

Код, который я использую, приведен ниже:

public override void ItemUpdated(SPItemEventProperties properties)
           {          
                   ConversionJob job = new ConversionJob(wordAutomationServiceName);
                   job.UserToken = properties.Web.CurrentUser.UserToken;
                   job.Settings.UpdateFields = true;
                   job.Settings.OutputFormat = SaveFormat.PDF;
                   string input = siteURL + "Conversion/Test.docx";
                   string output = siteURL + "Conversion/Test.pdf";
                   job.AddFile(input, output);
                   job.Start();
           }

Когда я запускаю его в режиме отладки, он выполняется без каких-либо ошибок или исключений, но не генерирует PDF-файл.

Я не могу выяснить, в чем проблема

он попробовал этот простой код

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint;
using Microsoft.Office.Word.Server.Conversions;

class Program
{
    static void Main(string[] args)
    {

        string siteUrl = "http://siteurl";
        string wordAutomationServiceName = "Word Automation Services";
        using (SPSite spSite = new SPSite(siteUrl))
        {
            ConversionJob job = new ConversionJob(wordAutomationServiceName);
            job.UserToken = spSite.UserToken;
            job.Settings.UpdateFields = true;
            job.Settings.OutputFormat = SaveFormat.PDF;
            job.AddFile(siteUrl + "/Shared%20Documents/Test.docx",
            siteUrl + "/Shared%20Documents/Test.pdf");
            job.Start();
        }
    }
}

Это также не помогло, но я считаю, что в коде нет ошибки, должна быть какая-то проблема с настройками sharepoint

Ответы [ 2 ]

0 голосов
/ 26 сентября 2011

Полагаю, вы взяли свой код от здесь . Откуда у вас слово AutomamationServiceName? Потому что оно должно соответствовать имени службы автоматизации Word, настроенной вами в центре администрирования.

Также проверьте SharePoint TraceLog (14 / LOGS) или EventViewer для получения дополнительной информации / ошибок. См. Также эту статью о настройке Word Automation Services для разработки.

Как работают службы автоматизации Word

0 голосов
/ 26 сентября 2011

У вас есть объект Document?

Я не уверен, что вы можете использовать это в своем контексте, но если да, вы можете попробовать:

docObject.ExportAsFixedFormat("Yourdoc.pdf", WdExportFormat.wdExportFormatPDF, false,
                        WdExportOptimizeFor.wdExportOptimizeForPrint, WdExportRange.wdExportAllDocument, 0, 0,
                        WdExportItem.wdExportDocumentContent, true, true,
                        WdExportCreateBookmarks.wdExportCreateNoBookmarks, true, false, false, ref oMissing);

Подробнее здесь

...