2013-07-17 31 views
0

我一直指向ITextSharp的方向,當我去從NuGet下載軟件包時,我發現一些名爲RazorToPDF的東西只是爲了發現無法解析的格式問題不再支持該項目。如何將MVC視圖中的HTML錶轉換爲PDF文件,ITextSharp

經過更多的研究,我很驚訝地發現,在SO上沒有類似的措詞問題。

所以,夥計們,將MVC項目中的HTML頁面/表格轉換爲PDF文件的最佳方式是什麼?

回答

0

將MVC項目中的HTML頁面/表格轉換爲PDF文件的最佳方式是什麼?

通常,從客戶端的Web瀏覽器將其打印到PDF中。

問題是,在這種情況下,依靠視圖的最終用戶視角,您還依賴於該視圖的最終用戶呈現。這是一個完全應該從這個特定方程中去除的步驟。

請記住,HTML頁面呈現方式和PDF呈現方式之間存在根本性差異。這兩者不是100%可互換的。 PDF具有靜態頁面大小,元素被絕對放置,而HTML具有動態大小,並且元素被放置在流佈局中。還有一些其他考慮事項,例如可能在該視圖中發生的客戶端DOM操作。 「渲染」它很快成爲基於瀏覽器的活動,這是你不應該真正需要做的服務器端。

不要將PDF看作渲染視圖後的額外步驟,而應將其視爲一個視圖,並將其視爲一個視圖,或將其視爲另一個視圖。一個請求的操作導致HTML視圖,另一個請求的操作導致PDF「​​查看」。因此,在將文件內容返回給客戶端之前,您需要設計PDF模板的外觀和填充數據(使用類似iTextSharp的內容)。

+0

「在將文件內容返回給客戶端之前,設計PDF模板的方式是讓它看起來像數據一樣(使用像iTextSharp這樣的東西)。」怎麼樣? – Jimmy

+0

@JimBarton:您可能會使用類似Acrobat或甚至Word(打印到PDF文件)來設計初始PDF。 (我沒有很多創建PDF文件的經驗,只能用數據填充它們。)您會留下空白處留下數據,然後使用iTextSharp動態填充數據。後者最終可能是一個試驗和錯誤過程,以使元素正確對齊,並且可能有多種技術來使其工作。我從來沒有在網上找到很多有用的工具,它主要是調整元素佈局,直到看起來正確。 – David

+0

您也可以通過SOAP接口使用XSL FO服務器端。非常容易將結構化數據和格式提交給PDF結果,並將PDF字節流返回給瀏覽器。 –

相關問題