Proof Of Concept Word Automation on SharePoint 2013
13 juin 2014 Laisser un commentaire
Voici un bout de code permettant l’utilisation de l’application de service Word Automation de SharePoint 2013 dans un composant WebPart.
Nous utilisons ici la nouvelle fonctionnalité de conversion synchrone et non la création d’une tâche façon SharePoint 2010.
publicclassConvertToPDF : WebPart { TextBox tbt =newTextBox(); Button btn =newButton(); protectedoverridevoid CreateChildControls() { btn.Text ="Convert"; btn.Click += btn_Click; this.Controls.Add(tbt); this.Controls.Add(btn); } void btn_Click(object sender, EventArgs e) { SPFile file =SPContext.Current.Web.GetFile(tbt.Text); byte[] PDF = WriteSpFile(file); SPWeb web =SPContext.Current.Web; SPList list = file.Item.ParentList; // Url for file to be created string destFile = list.RootFolder.Url +"/"+ file.Name +".pdf"; // create the document and get SPFile/SPItem for // new document SPFile addedFile = list.RootFolder.Files.Add(destFile, PDF, false); SPItem newItem = addedFile.Item; newItem["Title"] ="PDF"; newItem.Update(); addedFile.Update(); } publicstaticbyte[] WriteSpFile(SPFile spFile) { using (Stream read = spFile.OpenBinaryStream()) { using (MemoryStream write =newMemoryStream()) { string wordAutomationServiceName = "Word"; SyncConverter sc = newSyncConverter(wordAutomationServiceName); SPSite spSite = SPContext.Current.Site; sc.UserToken = spSite.UserToken; sc.Settings.UpdateFields =true; sc.Settings.OutputFormat =SaveFormat.PDF; ConversionItemInfo info = sc.Convert(read, write); if (info.Succeeded) { return write.ToArray(); } } } returnnull; } }
Il est nécessaire d’inscrire à votre projet la référence à la DLL Microsoft.Office.Word.Server du dossier ISAPI de SharePoint.
Attention ce code n’a aucun contrôle d’erreur (POC).
Publicités