воскресенье, 22 декабря 2013 г.

SharePoint 2010 в работе с Word Automation Services

В SharePoint 2010 есть служба называется Word Automation Services. Используется главным образом для преобразования документов Word в различные форматы. В принципе они соответствуют типам в обычном Word 2010. Например можно открыть файлы с расширением:
docx, doc, dotx,  rtf, dot и другие. И соответственно сохранить открытый файл можно с теми же расширениями и xps, pdf.
В этой статье разберем как же пользоваться этой службой для преобразования файлов.

Начнем с того что все приложения с использованием API вы не сможете развернуть в Sandbox'е. Скорее вы должны сразу рассматривать его как решение для фермы.
Если открыть MSDN и посмотреть методы преобразования файлов, то можно увидеть, что есть несколько типов преобразования:
1)AddFile() - добавление файла
AddFile()
AddFile()
2)AddFolder() - добавление папки
3) AddLibraty() - добавления целой библиотеки
В примере ниже рассмотрим преобразование файла из формата doc в формат pdf.

Приступим. 
1. Создадим новый проект SharePoint в Visual Studio. 
Я пишу больше на C# поэтому и код будет соответственно на нём. 
Выберем для создания новый Web Part. Далее необходимо добавить в Reference нужную нам библиотеку Microsoft.Office.Word.Server.dll у меня она находилась в c:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\ISAPI\.

Microsoft.Office.Word.Server.dll#sthash.edl0m7d6.dpuf
Microsoft.Office.Word.Server.dll#sthash.edl0m7d6.dpuf
Microsoft.Office.Word.Server.dll#sthash.edl0m7d6.dpuf
Microsoft.Office.Word.Server.dll#sthash.edl0m7d6.dpuf
Microsoft.Office.Word.Server.dll#sthash.edl0m7d6.dpuf

2. После добавления нужно прописать в *ascx.cs строчки:
using Microsoft.Office.Word.Server.Service;
using Microsoft.Office.Word.Server.Conversions;

3. Напишем сам обработчик и завесим на кнопку.
  protected void Button1_Click(object sender, EventArgs e)
 {

     try
           {
            ConversionJob job = new ConversionJob("Word Automation Services");
            //указать параметры преобразования        
            job.UserToken = SPContext.Current.Web.CurrentUser.UserToken;
            job.Settings.OutputFormat = SaveFormat.PDF;
            job.Name = "Document Workflow";
            //добавляем файл здесь сделал вручную
            string fileUrl = "http://testpoint/DocLib/2.docx";
            job.AddFile(fileUrl, Path.ChangeExtension(fileUrl, "pdf"));
            //стартуем задачу преобразования
            job.Start();
           }catch(Exeption ex){}

  }

В этом примере я явно указал где взять исходный файл и куда его поместить. А помещается он в данном случае в эту же библиотеку с расширением *.pdf
Вот так можно сделать конвертацию файла одним нажатием кнопки.

Комментариев нет:

Отправить комментарий