0

我有幾個一般的想法,我怎麼想這樣做,但任何幫助/指導將不勝感激...ASP.NET/MVC/C#/ jquery /創建一個CMS前端和PDF生成器

我想要做的是:創建一個前端cms系統,非常簡單,從一個模板生成報告,使用jquery(拖放等),報告中將包括數據將佔位符被導入到例如姓名,地址等。這些數據可以由有權訪問數據的不同用戶進行更改。

我在想我需要將這個html轉換成xsl-fo格式,然後把它生成一個pdf格式,因爲xsl-fo會給我一個關於pdf的數據自定義顯示的主要優點,即數據會顯示如何我想要它。這也將使我能夠使用xslt(或其他?)在xsl-fo中執行查找來導入最新的更新db值。實際上從xsl-fo轉換成pdf格式的工具看起來像是符合我的法案的是:fo.net。最終,我需要使用一些代碼,但我可以避免它,我會想。

請記住:
1.我需要高於一切的最終控制權(最終)
2.免費/開源替代品是靈活的(源代碼)

問題:
1.Is的jQuery用於cms的最好的東西是什麼?因爲我將擁有自定義控件,其中將包含數據庫數據或佔位符,以便將數據導入到
2. XSL-FO是將此模板移植到PDF中進行渲染/轉換的最佳中介語言嗎?
3.如何將html轉換爲xsl-fo? c#/ .net是否有我可以查看的api?
4.我有過於複雜的事情嗎?任何更簡單的方法來做到這一點?

提前非常感謝

注: 在頁面上的HTML + CSS的可能是非常複雜的/靈活的,所以我可能需要使用jQuery的CSS在線添加的元素,因此,爲什麼我想到的使用XSL-FO,我可能能夠產生可以讀取這些數據,並將其放置在以某種方式將PDF標籤,請回答我的問題時,記住這一點(如果您選擇!):)

回答

0

要回答我的問題我已決定由Apache來使用Fo.NET Fop.Net的C#實現。我將隨時生成我的xml文件,然後將此文檔轉換爲XSL:Fo xml文件,然後發送以創建pdf。我已經成功地做到了這一點,這將使我能夠在未來拋棄Fo.Net,並獲得另一種軟件,甚至在需要時編寫我自己的軟件。希望在接下來的幾個月裏,我會更加堅定地回答我的選擇實際上有多靈活。:)

我將用Jquery,Jquery ui處理前端。

0

我發現PDFsharp和MigraDoc非常適合pdf生成。

我創建了一個PDF工具...

using System; 
using System.IO; 
using System.Web; 
using System.Web.Mvc; 
using PdfSharp.Pdf; 

//Controller for a PdfResult 
namespace Web.Utilities 

{ 
    public class PdfResult : ActionResult 
{ 

    public String Filename { get; set; } 

    protected MemoryStream pdfStream = new MemoryStream(); 

    public PdfResult(PdfDocument doc) 
    { 
     Filename = String.Format("{0}.pdf", doc.Info.Title); 
     doc.Save(pdfStream, false); 
    } 

    public PdfResult(String pdfpath) 
    { 
     /* optional if requried ToString save ToString file System */ 
     throw new NotImplementedException("PdfResult is just an example and does not serve files from the filesystem."); 
    } 

    public override void ExecuteResult(ControllerContext context) 
    { 
     context.HttpContext.Response.Clear(); 
     context.HttpContext.Response.ContentType = "application/pdf"; 

     context.HttpContext.Response.AddHeader("Content-Disposition", "attachment; filename=" + Filename); // specify filename 

     context.HttpContext.Response.AddHeader("content-length", pdfStream.Length.ToString()); 
     context.HttpContext.Response.BinaryWrite(pdfStream.ToArray()); 
     context.HttpContext.Response.Flush(); 
     pdfStream.Close(); 
     context.HttpContext.Response.End(); 
    } 

} 

}

然後你就可以渲染在控制器PDF格式的景色...

​​

我發現這是一個真正整潔和易於控制的方法把PDF格式轉換成mvc。

+0

嗨desiny, 感謝您的快速回復,您的代碼看起來非常好!我仍然不相信這是我需要的,我快速瀏覽了一下pdf sharp-你是如何在創建PDF時找到這個工具的動態html和css的?我的要求的主要部分是創建一個簡單的模板/ cms可以有div /左對齊,標題粗體文本,內聯樣式等(這將使用jquery完成) - 看看上面的代碼,我會在模板中映射可能的html + css可能性,然後爲樣式中的每個元素/ div設置每個段落/段落??? – Haroon 2010-10-14 16:12:35