Avec l'aide de ce http://msdn.microsoft.com/en-us/library/ff742315.aspx j'ai essayé de faire une conversion de docx en pdf sur sharepoint ... 1) J'ai créé un fichier cs sur le serveur de sharepoint ... 2) I compilé avec un fichier bat à une console exe 3) L'exe s'exécute mais donne une exception System.NullReferenceException: Référence d'objet non définie sur une instance d'un objet.Convertir docx en pdf avec Word Automation Services
Les fichiers existent et sont modifiables à \ mysrv \ sites \ casedocs \ Documents \ ElfDev \ 10080003 et à https: \ mysrv \ sites \ casedocs \ Documents \ ElfDev \ 10080003, ce dernier sans erreur de cert.
1) Le fichier Cs ...
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 = "https://mysrv" ;
string wordAutomationServicesName = "Word Automation Services" ;
string source = siteUrl + "/sites/casedocs/Documents/ElfDev/10080003/JK1.docx" ;
string target = siteUrl + "/sites/casedocs/Documents/ElfDev/10080003/jk1.pdf" ;
using(SPSite spSite = new SPSite(siteUrl))
{
ConversionJob job = new ConversionJob(wordAutomationServicesName) ;
job.UserToken = spSite.UserToken ;
job.Settings.UpdateFields = true ;
job.Settings.OutputFormat = SaveFormat.PDF ;
// System.Null reference exception on next line ...
job.AddFile(source , target ) ;
}
}
}
2) Le fichier bat compilateur ...
csc /out:d2p.exe /target:exe d2pMain.cs /r:"C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\ISAPI\Microsoft.SharePoint.dll" /r:"C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\ISAPI\Microsoft.Office.Word.Server.dll"
3. L'exception complète ...
Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object.
at Microsoft.Office.Word.Server.FolderIterator.CheckInputFile(SPListItem item)
at Microsoft.Office.Word.Server.FolderIterator.CheckSingleItem(SPFile inputFile, SPFile outputFile)
at Microsoft.Office.Word.Server.Conversions.ConversionJob.AddFileCore(String inputFileName, String outputFileName)
at Microsoft.Office.Word.Server.Conversions.ConversionJob.AddFile(String inputFile, String outputFile) at Program.Main(String[] args)
On dirait qu'il ne peut pas voir le fichier d'entrée, mais a) \ mysrv \ sites \ casedocs \ Documents \ ElfDev \ 10080003 \ jk1.docx ouvrira le fichier dans le mot 2010 et b) https://mysrv/sites/casedocs/Documents/ElfDev/10080003/jk1.docx ouvre le fichier dans Word 2010