2013-03-07 111 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