L'Export en pdf à l'aide de ASP.NET 5
Je suis en train de travailler sur MVC 6 application(DNX Core 5.0 cadre). Malheureusement, je ne peux pas trouver n'importe quelle bibliothèque pour l'export pdf.
Toute aide sera appréciée.
Ce n'est pas le même problème. Il existe de nombreuses bibliothèques pour l'exportation au format pdf, mais pour "DNX Core 5.0 cadre" je l'ai trouvé aucun.
Un cadre n'est rien de plus qu'un wrapper pour faciliter les choses de votre côté. Vous pouvez toujours utiliser des bibliothèques dans votre application.
Je vais vous donner l'exemple avec PdfSharp. Quand j'ai télécharger le package, j'ai cette erreur: "La dépendance PDFsharp 1.32.3057 dans le projet SharedKernel ne prend pas en charge le cadre DNXCore,Version=v5.0."
Ceci décrit un tout nouveau problème à votre question initiale. Si toutes les bibliothèques de PDF vous donne cette erreur de build, ça ne serait pas une bonne idée de regarder pour ce problème? Si vous ne pouvez pas le résoudre, ouvrir une nouvelle question.
Ma réponse à un simlar question pourrait être utile. Je suis l'aide de wkhtmltopdf sur azure fonctions. stackoverflow.com/questions/33139317/...
Un cadre n'est rien de plus qu'un wrapper pour faciliter les choses de votre côté. Vous pouvez toujours utiliser des bibliothèques dans votre application.
Je vais vous donner l'exemple avec PdfSharp. Quand j'ai télécharger le package, j'ai cette erreur: "La dépendance PDFsharp 1.32.3057 dans le projet SharedKernel ne prend pas en charge le cadre DNXCore,Version=v5.0."
Ceci décrit un tout nouveau problème à votre question initiale. Si toutes les bibliothèques de PDF vous donne cette erreur de build, ça ne serait pas une bonne idée de regarder pour ce problème? Si vous ne pouvez pas le résoudre, ouvrir une nouvelle question.
Ma réponse à un simlar question pourrait être utile. Je suis l'aide de wkhtmltopdf sur azure fonctions. stackoverflow.com/questions/33139317/...
OriginalL'auteur Antoan Elenkov | 2016-05-02
Vous devez vous connecter pour publier un commentaire.
Si vous doit compter sur Core, vous aurez deux options:
1 - Attendre un peu
De base est toujours la RC1, se déplaçant lentement à RC2, et vous ne trouverez pas beaucoup libs très bientôt. Depuis .NET de Base est de prendre beaucoup d'attention, d'abord, le syndicat devrait sortir dans quelques mois, mais je suppose que vous devrez attendre au moins la version RC2.
2 - Fourche (ou similaire)
Vous pouvez attraper un projet open-source qui correspond le mieux à vos besoins, de la fourche (sur GitHub) ou il suffit de télécharger et de lancer la mise à jour .NET de Base. J'ai juste fait avec
DapperExtensions
, et il fonctionne comme un charme. Vous pouvez même ajouter un peu épicé juste pour vous 😉D'autre part, si vous avez juste besoin de quelque chose qui fonctionne, mais n'ayant aucune nécessité de l'intégration .NET Core, j'ai réussi à faire JsReport beau travail. Il va commencer il est très propre serveur (serveur embarqué) basé sur
Node
mais l'intégration est vraiment facile (avec le Réseau de Base très propre dépendance au système d'Injection!) et PDF sont créés avec aucune autre question.Si cela vous intéresse, voici quelques instructions:
1 - Références
Les ajouter à votre projet.json:
2 - AspNet intégration
Après, suivez les instructions de jsReport ici. Vous pouvez configurer le Réseau DI système comme ici:
À utiliser, vous aurez juste à recevoir un
IReportingService
ou manuellement saisir deResolver
sur votre contrôleur, par exemple.3 - Utilisation
4 - Important: votre serveur ne démarre pas (il manque un fichier zip)
En raison des changements de NuGet sur le Réseau de projets, vous devez déplacer manuellement certains fichiers de contenu qui ne sont pas déplacés automatiquement.
Tout d'abord, trouver votre dnx cache pour le serveur intégré. Doit être quelque chose comme:
C:\Users\<name>\.dnx\packages\jsreport.Embedded\0.8.1
.Vous remarquerez un dossier appelé
content
. Il suffit de copier le contenu d' (deux fichiers:node.exe
etjsreport-net-embedded.zip
) danslib\net45
.Donc, pour être clair, simple et infaillible: copier le contenu (fichiers uniquement) à partir
C:\Users\<name>\.dnx\packages\jsreport.Embedded\0.8.1\contents
en
C:\Users\<name>\.dnx\packages\jsreport.Embedded\0.8.1\lib\net45
.Ce qui devrait résoudre les problèmes de démarrage. Rappelez-vous: premier démarrage de l'extraction des fichiers et devrait prendre que quelques minutes. Après cela, il sera beaucoup beaucoup plus rapide.
Je reçois des erreurs de restauration des paquets parce que ceux jsreport paquets ne sont pas compatibles avec .NET de base seulement .net 4.6.
OriginalL'auteur Anderson Matos
J'ai enfin trouvé un moyen pour générer un fichier pdf à partir de .NET de Base (sans aucune .NET framework dépendances) est l'aide de Node.js de dans mon .NET application de Base.
L'exemple suivant montre comment la mise en œuvre d'un code HTML à PDF converter en propre ASP.NET Core projet d'Application Web (Web API de modèle).
Installer le package NuGet
Microsoft.AspNetCore.NodeServices
En Démarrage.cs, ajoutez la ligne
services.AddNodeServices()
comme ceMaintenant installer le nécessaire Node.js forfaits:
À partir de la ligne de commande de changement de répertoire de travail à la racine de la .NET de Base du projet et de l'exécution de ces commandes.
et suivez les instructions pour créer le package.fichier json
Créer un fichier
pdf.js
dans la racine du projet contenantOnt un look ici pour plus d'explication sur
jsreport-core
.Maintenant créer une action dans un contrôleur Mvc qui appelle cette Node.js script
Bien sur vous pouvez faire ce que vous voulez avec le
byte[]
retourné à partir de nodeServices, dans cet exemple, je suis juste à la sortie de l'action d'un contrôleur de sorte qu'il peut être affiché dans le navigateur.Vous pouvez également échanger les données entre Node.js et .NET de Base par un encodées en base64 chaîne à l'aide de
resp.content.toString('base64')
danspdf.js
et l'utilisationvar result = await nodeServices.InvokeAsync<byte[]>("./pdf");
dans l'action, puis de décoder la chaîne encodée en base64.Alternatives
Plus pdf generator solutions dépendent encore de .NET 4.5/4.6 cadre.
Aucune des deux réponses ci-dessus (JsReport et RazorPDFCore).NET de Base encore.
Il semble y avoir certains ont payé des solutions de rechange disponibles si vous n'aimez pas l'utiliser Node.js:
Je n'ai pas essayé l'une de ces si.
J'espère que nous verrons bientôt open source, les progrès dans ce domaine.
J'ai eu des problèmes lors du déploiement de IIS. Assurez-vous que NodeJS est installé sur l'Azur de l'instance. Assurez-vous également que node_modules et js fichiers sont déployés en tant que bien. Sinon, vous pouvez essayer de fiddeling avec le chemin de projet:
services.AddNodeServices(options => options.ProjectPath = "path/to/project/with/js");
. Comme une alternative à avoir un coup d'oeil à Stefan Steiger répondre - regarde comme il est .Net de Base de la bibliothèque sur son chemin 🙂Votre action la mise en œuvre pourrait être simplifiée, car beaucoup de gens vont probablement juste de copier l'exemple:
return new FileContentResult(result, "application/pdf") {FileDownloadName = "report.pdf"};
Il fonctionne! Cependant je veux stocker le PDF généré dans mon dossier du serveur. S'il vous plaît aider
OriginalL'auteur Sjolund
Necromancing.
L'ajout d'une dépendance à NodeJS est subideal à mon humble avis, compte tenu en particulier .NET de Base autonome de déploiement.
Comme pour 2017, vous pouvez utiliser mon port de PdfSharpCore .NET de Base 1.1
Résout les polices, et il peut utiliser des images. Est livré avec un joli exemple d'application. Vous aurez à remplacer la DB.
Les crédits vont à:
https://github.com/groege/PdfSharpCore
qui est un peu dépassé, et ne contient pas un échantillon sur la façon de l'utiliser avec des images.
Note que vous devez vous inscrire à la police-résolveur et le imageSource-mise en Œuvre avant d'utiliser les fonctions respectives:
Steiger. Suis en utilisant PDFSharpCore, Voulez ajouter l'image au format Pdf, mais recevoir l'erreur dans Ximage - objet de référence non définie. Aussi essayé d'utiliser le code ci-dessus mais impossible de trouver "ImageSharp". S'il vous plaît laissez-moi savoir ce qui manque.
Steiger. Ai-je besoin d'ajouter de mise en œuvre de ImageSharp similaire à la police de résolution?
Vous avez besoin d'une version ancienne de imagesharp. Il y a eu trop de modifications importantes. github.com/SixLabors/ImageSharp
J'ai eu le même problème, mais je ne suis pas clair sur ce que vous entendez par avoir besoin d'une version ancienne de ImageSharp. Le code ci-dessus restent les mêmes? Quelle est la version de ImageSharp dois-je utiliser? J'ai essayé les deux 1.0.0-beta0002 et 1.0.0-beta0001. Merci!
OriginalL'auteur Stefan Steiger
Je sais que cette question a été posée tout à l'heure, et je sais qu'il y a eu plusieurs réponses déjà qui peut bien être juste pour certains projets. Mais j'ai récemment créé un dépôt GitHub qui permet la création de fichiers Pdf directement à partir de votre code C# sans aucune exigence pour nodejs, javascript, ou de rasoir. Le jeu de fonctionnalités est un peu limité pour le moment mais il génère des Pdf avec des images (.jpg seulement à ce stade), des formes et du texte mis en forme. La bibliothèque travaille avec .net core 2.0 et n'a pas de dépendance sur n'importe quel autre outil de génération de PDF.
Veuillez noter que ceci est mon propre référentiel: https://github.com/GZidar/CorePDF
Je ne plan à ajouter des fonctionnalités au fil du temps, mais au moins pour l'instant, cela peut servir de base pour d'autres, au simple fait de la capacité PDF dans leurs propres projets sans avoir besoin d'autres outils.
OriginalL'auteur G. Zidar
J'ai modifié le RazorAnt/RazorPDF qui fonctionne uniquement pour les MVC versions de travailler avec ASP.NET de Base. Son RazorPDFCore, disponible sur nuget et github:
Exemple d'utilisation
Dans votre Démarrage.cs
ajoutez la ligne suivante avant
services.AddMVc();
VEUILLEZ NOTER:
Vous avez besoin pour être inhérent à l'
RazorPDF.Controller
à partir de votre contrôleur de base avant d'utiliser leViewPdf()
méthodeOriginalL'auteur Ole K