Rotativa / Wkhtmltopdf n'affichant pas les images
Je suis en train de créer un MVC 4 web application.
J'ai une action qui a une base de l'image de fond qui est toujours la même d'une flèche de l'image qui change en degrés selon les informations recueillies au sein de l'action.
J'appelle cette action à l'aide de
<img src="@Url.Action("trend-image", "NonReg_Reports")" alt="background" width="245" height="105" />
Cela fonctionne bien lorsqu'il est appelé et est juste de l'affichage d'une page HTML. Il me donne le code HTML.
<img src="/nonreg-report/01495344/trend-image" alt="background" width="245" height="105">
Je suis alors à l'aide de Rotativa /Wkhtmltopdf afin de le convertir page HTML en PDF. Il exécute le même morceau de code que ci-dessus.
Le problème est que je suis seulement une boîte blanche avec le texte de remplacement si j'utilise le code ci-dessus.
Si j'utilise <img src="~/Content/images/trend_back_medium.png" alt="astuff" />
qui est la véritable image de fond dans mon projet, il fonctionne très bien.
L'image dans le code ci-dessus peut ne pas être enregistré n'importe où en raison de la façon dont il est utilisé. Je pense que c'est un problème de chemin d'accès, mais après avoir essayé beaucoup de choses que je ne parviens toujours pas à le faire fonctionner.
Toute suggestion ou aide serait grandement appréciée Merci.
OriginalL'auteur user1866606 | 2013-01-04
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème. Normal en mode html est ok avec des photos, des pdf n'était pas l'afficher. J'ai utilisé le Serveur.MapPath au point de l'image, et c'était ok...
J'espère que cela aidera
Adam
Résolu mon problème.
À l'aide de l'attribut style sur un TD correctement a montré une image sur la machine de développement, mais ne fonctionnerait pas sur le serveur live. J'ai dû recourir à cette méthode pour obtenir l'image à afficher dans un fichier PDF sur la live box. L'accès anonyme (comme certains l'ont suggéré) n'est pas une option pour moi sur le live box
OriginalL'auteur adam
L'ajout de l'attribut [Système.Web.Mvc.AllowAnonymous] pour la méthode de contrôleur de retourner l'image résolu le problème pour moi.
OriginalL'auteur Captain Dashenka
J'ai connu le même problème et j'ai trouvé une solution de contournement, pas un bien, mais elle convient parfaitement à mes besoins.
Il semble que Rotativa(Wkhtmltopdf?) ont un problème avec les images qui sont retournés à partir du gestionnaire http (au moins mon cas). Afin de gérer cette situation, dans l'action du contrôleur avant de retourner
new ViewAsPdf...
mon code manuellement enregistrer le fichier à certains locaux dossier "temporaire" et remplacer " src " des images en vue de rendu avec des chemins pour que les fichiers locaux dans le chemin d'accès au serveur de manière, par exemple:http://localhost/img/temp/trend-image.png
.Ce n'est pas une solution sympa, si vous avez déjà trouvé mieux, faites-le moi savoir.
OriginalL'auteur psulek
J'ai trouvé que, avec mes pages, les images n'étaient pas montrer parce qu'ils ont été .les fichiers gif.
Rotativa pouvez avoir des problèmes avec les fichiers gif.
Quand j'ai changé les images .jpg ou .png tout a bien fonctionné.
OriginalL'auteur davaus
Je pense qu'il pourrait descendre à l'essentiel ".png" peu être manquant.
Vous pouvez ajouter un mappage comme ce
/nonreg-report/01495344/trend-image.png
»/nonreg-report/01495344/trend-image
et à la fois de l'url active, pourquoi pas? De cette façon wkhtmltopdf est dupe et vous avez toujours votre dynamique de l'image sans l'enregistrer n'importe où sur le disque. Les url dynamiques peuvent travailler, je fais ça pour vivre de conversion de gif2png pour wkhtmltopdf.Il peut aussi aider à avoir une url absolue, je pense que vous pouvez le faire avec quelque chose comme ceci:
OriginalL'auteur Nenotlep
Il semble fonctionner ok via css...
J'ai essayé d'afficher un logo en haut de la page et mis avec un div et définissez la hauteur et la largeur à celle de l'image.
CSS:
HTML:
OriginalL'auteur MagicLuckyCat
Si vous êtes spécifier la hauteur et la largeur, puis assurez-vous que vous devriez l'écrire dans le style de la balise
comme
<some-tag style="height: 100px; width:100px">
OriginalL'auteur Bharati Borde