2013-03-07 65 views
3

我想从MVC视图中生成一些PDF文件,这已经相当不错了。我终于跨越this来了,想使用它,但它具有如下这种奇怪的标记(它是基于iTextSharp的):这是什么样的标记?

<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

所有我真的想在这一点上做的是设置列的宽度(单元格,因为它在这里被称为),但cell不接受我的style: widthwidth或任何东西。

我该如何使用这个东西?有没有更好的方法来从MVC视图呈现PDF?

回答

1

像其他人说,这是iTextSharp的XML的HTML。这里有一篇文章列出了有效的XML元素。 How to create tables in a PDF document using XML and iTextSharp?

看起来你可能会使用CDATA标签来设置宽度。

+0

这似乎很烦人......我觉得设置元素的宽度就像是最简单的事情;它不应该那么困难。 – user1477388 2013-03-08 15:30:22

+1

iTextSharp是IMO,很难合作。如果你在C#中使用它,那也不是那么简单。 – Jamie 2013-03-08 15:33:05

+0

有什么建议吗?我正在尝试使用wkhtmltopdf,但是我遇到了.EXE问题,并希望我可以使用.DLL,而不是http://stackoverflow.com/questions/15285363/running-exe-from-mvc – user1477388 2013-03-08 15:44:35

1

最简单的做法是在html中创建视图并将其转换为pdf,然后将其作为您的操作结果发送。

简单的方式来获得剃刀模板 http://razorengine.codeplex.com/

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

PDF转换 http://www.essentialobjects.com/Products/EOPdf/Default.aspx

+0

我之前就已经完成了这个工作,而且这样做更容易。 – DalSoft 2013-03-07 15:41:29

+0

花费600美元...可能为什么我从来没有听说过它。有什么更便宜? – user1477388 2013-03-07 15:44:18

+1

从http://stackoverflow.com/a/2129296/324497您可以尝试wkhtmltopdf。这个问题还提供了其他解决方案。 – DalSoft 2013-03-07 15:51:59