Des questions similaires ont été posées, mais rien ne ressemble exactement à la mienne, alors voilà.
Nous avons une collection de documents Microsoft Word sur un serveur Web ASP.NET avec des champs de fusion dont les valeurs sont renseignées à la suite de l'envoi de formulaires par l'utilisateur. Après la fusion du champ, le serveur doit convertir le document en PDF et le diffuser dans le navigateur. Notre première tendance était d’utiliser l’API de Visual Studio Tools pour Office; Cependant, nous avons rencontré cet avertissement de Microsoft :
À l'heure actuelle, Microsoft ne recommande pas et ne prend pas en charge l'automatisation des applications Microsoft Office à partir d'une application ou d'un composant client non interactif (y compris les services ASP, ASP.NET, DCOM et NT), car Office peut présenter un comportement instable et/ou blocage lorsque Office est exécuté dans cet environnement.
Il semble que la manipulation de champ puisse être effectuée à l'aide du kit de développement Open XML SDK , mais quel est le meilleur moyen de convertir des documents Word 2007 en PDF sans ouvrir Word? La solution optimale serait peu coûteuse, évolutive, peu encombrante en mémoire, facile à déployer et dotée d’une API .NET.
Ce n'est pas exactement Open Source, mais Aspose propose quelques produits qui peuvent le faire,
Aspose.Pdf.Kit est un composant de manipulation de document PDF® non graphique qui permet aux développeurs .NET et Java de gérer les fichiers PDF existants ainsi que de gérer les champs de formulaire incorporés dans les fichiers PDF. . Aspose.Pdf est idéal pour créer de nouveaux fichiers PDF; cependant, les développeurs doivent souvent modifier des documents PDF déjà existants. Aspose.Pdf.Kit leur permet de faire exactement cela. Aspose.Pdf.Kit permet aux développeurs de créer des applications puissantes pour la fusion directe de données dans des documents PDF, ainsi que pour la mise à jour et la gestion de documents PDF. Aspose.Pdf.Kit est un produit merveilleux qui fonctionne parfaitement avec le reste de nos produits PDF.
et Aspose.pdf
Aspose.Pdf est un composant de création de rapports de documents PDF® non graphique qui permet aux applications .NET ou Java de créer des documents PDF sans utiliser Adobe Acrobat®. Aspose.Pdf est un prix très abordable et offre une richesse de fonctionnalités fortes, y compris: compression, tableaux, graphiques, images, liens hypertexte, polices de sécurité et personnalisées. Aspose.Pdf prend en charge la création de fichiers PDF via des API, des modèles XML et des fichiers XSL-FO. Aspose.Pdf est très facile à utiliser et est fourni avec 14 démos très complètes écrites en C # et Visual Basic.
Découvrez les API et demos . Vous pouvez télécharger un DLL gratuitement pour l'essayer. J'ai déjà utilisé les deux auparavant et ils fonctionnent très bien.
Il y a aussi iTextSharp qui est un port C # de iText, un convertisseur Java PDF. J'ai entendu certaines personnes l'essayer avec des résultats mitigés.
La question est "Documents MS Word à PDF dans ASP.NET". Je suis donc très étonné de savoir pourquoi Aspose.Pdf et Aspose.Pdf.Kit sont recommandés ci-dessus. Vous devez utiliser Aspose.Words car il s’agit du composant qui prend en charge la conversion de documents Word dans le format PDF.
Consultez les ressources de Microsoft sur Enregistrement de documents Word 2007 au format PDF et au format XPS à l'aide de C # ou de VB.
ActivePdf DocConverter - http://www.activepdf.com/
Mais il faut qu'Office soit installé sur le serveur pour une conversion de bonne qualité.
ABCpdf est un autre composant populaire qui vous permettra de convertir des documents Word en PDF sous ASP.NET, mais je pense qu’il utilise aussi Microsoft Office ou OpenOffice.
Vous devriez essayer d'utiliser OpenOffice pour cela. Il est gratuit et prend en charge toute une gamme de conversions de fichiers. Je l'ai utilisé pour convertir les fichiers DOC & DOCX au format HTML avec des résultats fantastiques.
Aspose.Words peut être la meilleure option pour vous, mais il ne convertit pas parfaitement tous les éléments visuels.
Jetez un coup d'œil au Muhimbi PDF Converter Web Services . Il fonctionne sous Windows en tant que service, mais est accessible à partir de tout environnement non compatible avec les services Web, y compris Java et .NET.
Bien que cette solution nécessite l'installation de MS-Office sur un serveur (pas nécessairement le même serveur que votre application), elle est très robuste et fournit une fidélité de conversion parfaite. Il est très difficile de résoudre les problèmes de blocage auxquels Microsoft fait référence dans leur article de base de connaissances.
Pour générer ou modifier des fichiers MS-Word, je vous recommande d’utiliser le kit de développement gratuit Open XML SDK pour Microsoft Office . Eric White maintient un vraiment bon blog à ce sujet.
Avertissement, j'ai travaillé sur ce produit. Cela dit, cela fonctionne très bien.
Le complément Microsoft PDF pour Word semble être la meilleure solution pour le moment, mais vous devez être conscient du fait qu'il ne convertit pas tous les documents Word correctement au format pdf et que, dans certains cas, vous verrez une énorme différence entre les fichiers Word. et le pdf de sortie. Malheureusement, je n'ai trouvé aucune API capable de convertir tous les documents Word correctement. La seule solution que j'ai trouvée pour m'assurer que la conversion était correcte à 100% était de convertir les documents via un pilote d'imprimante. L'inconvénient est que les documents sont mis en file d'attente et convertis un à un, mais vous pouvez être sûr que le pdf obtenu est exactement comme le document Word. Personnellement, j'ai préféré utiliser UDC (Universal Document Converter) et installer Foxit Reader (version gratuite) sur le serveur, puis imprimer les documents en lançant un "Processus" et en définissant sa propriété Verb sur "print". Vous pouvez également utiliser FileSystemWatcher pour définir un signal lorsque la conversion est terminée.