2013-03-07 2 views
3

J'essaie de générer des fichiers PDF à partir d'une vue MVC et ça a été un sacré tour. Je suis finalement venu à travers this et essaie de l'utiliser, mais il a ce balisage étrange comme indiqué ci-dessous (il est basé sur iTextSharp):Quel genre de balisage est-ce?

<row> 
    <cell borderwidth="0.5" left="false" right="false" top="false" bottom="true">User Name</cell> 
    <cell borderwidth="0.5" left="false" right="false" top="false" bottom="true">Description</cell> 
    <cell borderwidth="0.5" left="false" right="false" top="false" bottom="true" horizontalalign="right">Lucky Number</cell> 
    <cell borderwidth="0.5" left="false" right="false" top="false" bottom="true" horizontalalign="right">Doubled</cell> 
</row> 

Source

Tout ce que je suis vraiment en train de faire à ce stade est définir la largeur de la colonne (cellule, comme il est appelé ici), mais cell n'accepte pas mon style: width ou width ou quoi que ce soit.

Comment puis-je utiliser cette chose? Existe-t-il de meilleurs moyens de rendre le PDF à partir de la vue MVC?

Répondre

1

Comme d'autres ont dit que c'est iTextSharp xml. Voici un article qui publie la liste des éléments XML valides. How to create tables in a PDF document using XML and iTextSharp?

Il semble que vous pourriez potentiellement utiliser des étiquettes CDATA pour définir la largeur.

+0

Cela semble si ennuyeux ... J'ai l'impression que la définition de la largeur d'un élément est comme la chose la plus simple; ça ne devrait pas être si difficile. – user1477388

+1

iTextSharp est, IMO, très difficile à travailler. Ce n'est pas si simple si vous l'avez fait en C# non plus. – Jamie

+0

Y a-t-il quelque chose que vous recommandez? J'essaie d'utiliser wkhtmltopdf, maintenant, mais j'ai des problèmes avec le .EXE et j'espère pouvoir utiliser un .DLL, à la place http://stackoverflow.com/questions/15285363/running-exe-from-mvc – user1477388

1

La chose la plus simple à faire serait de créer votre vue en html et la convertir en pdf puis l'envoyer comme résultat de votre action.

moyen simple d'obtenir le code HTML d'un modèle de rasoir http://razorengine.codeplex.com/

string template = "Hello @Model.Name! Welcome to Razor!"; 
string result = Razor.Parse(template, new { Name = "World" }); 

de conversion PDF http://www.essentialobjects.com/Products/EOPdf/Default.aspx

+0

Je l'ai fait avant et c'est tellement plus facile de travailler avec. – DalSoft

+0

Cela coûte comme 600 $ ... Probablement pourquoi je n'en ai jamais entendu parler jusqu'à maintenant. Vous avez quelque chose de moins cher? – user1477388

+1

De http://stackoverflow.com/a/2129296/324497 vous pouvez essayer wkhtmltopdf. Il y a aussi d'autres solutions proposées pour cette question. – DalSoft