J'essaie d'ouvrir le fichier .docx et de le convertir en PDF à l'aide d'Interop.Word.Application. Cela fonctionne comme une application console, mais si j'utilise la même chose dans mon application web, cela ne fonctionne pas. J'ai essayé de voir les autorisations sur le dossier. J'ai donné 'Service réseau' avec un contrôle total, mais j'obtiens toujours une référence d'objet non définie dans Word.Documents.Open. Pourriez-vous s'il vous plaît laissez-moi savoir quel pourrait être le problème? Je suis coincé avec cette erreur. S'il vous plaît, faites-moi savoir. J'apprécie toutes les suggestions. Je vous remercie.
Microsoft.Office.Interop.Word.Application Word = new Microsoft.Office.Interop.Word.Application();
object oMissing = System.Reflection.Missing.Value;
Word.Visible = false;
Word.ScreenUpdating = false;
string fileName = @"c:\OUTPUT\test.docx");
Document doc = Word.Documents.Open(filename, ref oMissing,
ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing, ref oMissing);
doc.Activate();
Si vous cherchez toujours la réponse, je l’ai trouvée il ya un instant pour mon projet.
Ouvrez les paramètres de configuration DCOM:
dcomcnfg.exe
Microsoft Word 97-2003 Documents
-> PropriétésOnglet Identity
, passer de Launching User
à Interactive User
Essayez ceci, cela peut vous aider.
cela fonctionne pour moi après une longue journée de recherche de la solution.
Cela semble être un problème de profil.
Cela a fonctionné pour moi. https://social.msdn.Microsoft.com/Forums/en-US/0f5448a7-72ed-4f16-8b87-922b71892e07/Word-2007-documentsopen-returns-null -in-aspnet .
Si cela vous aide, s'il vous plaît faites-le répondre
Comme Paulie l'a déclaré dans son commentaire sur OP, je pense que le problème tient en grande partie à la présence de bibliothèques sur le serveur Web. Vous pourrez peut-être pirater pour que cela fonctionne sur une application Web, mais je vous le déconseille.
EDIT: Argh, j’ai mal lu le message et j’ai juste supposé Excel. C’est ce que la plupart des gens recherchent lors de l’utilisation d’Office.Interop selon mon expérience;)
Il existe une bibliothèque ouverte qui fonctionne avec les formats DocX ( entrez la description du lien ici ). _ {Malheureusement il admet sur la page que les conversions vers des formats tels que PDF sont pratiquement impossibles sans les bibliothèques Office.Interop ( http://cathalscorner.blogspot.com/2009/10 /converting-docx-into-doc-pdf-html.html )
Ici est une alternative "prometteuse", mais YMMV.
Pour résoudre cela, je devais faire les deux choses:
Créez les répertoires:
C:\Windows\System32\config\systemprofile\AppData\Local\Microsoft \Windows\INetCache
C:\Windows\System32\config\systemprofile\Desktop
Activer le réglage DCOM comme @gianni-b dit .
Si vous avez du mal à trouver l'entrée DCOM en raison d'une autre langue, vous pouvez procéder comme suit:
regedit
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\{00020906-0000-0000-C000-000000000046}
Clic droit> Nouveau> Valeur de chaîne
RunAs
Interactive User
Vous pouvez faire la même chose pour Excel sur AppID {00020812-0000-0000-C000-000000000046}
.
J'ai fait les étapes suivantes et cela a bien fonctionné:
Il est fort probable que votre serveur Web contient une dll Word différente, peut-être plus ancienne. Je vous suggère de référencer une dll spécifique et de la copier sur le serveur Web, afin de vous assurer que vous utilisez la même dll Word que celle avec laquelle vous avez testé votre code et que vous savez que cela fonctionne. Problèmes lors de l'utilisation d'interop, cependant, Word interop est le seul dont vous pouvez être sûr qu'il convertira les fichiers Word le plus correctement.