2017-04-24 69 views
0

我很不熟悉從多個表單生成PDF。事實上,我從來沒有用任何一種編程語言生成PDF。現在我一直在嘗試2種不同的方法來實現我想要做的事情。不幸的是,幾天後,我仍然沒有發現如何做到這一點。C#ASP.NET MVC從視圖Rotativa或iTextSharp創建PDF?

我有多種形式的數據預填充在那些使用3個不同的列表,現在我想要生成這種形式的PDF,我一直在使用Rotativa。不幸的是,一旦我調用生成PDF的方法,它會生成視圖的PDF,但數據丟失。使用iTextSharp,我可以擁有1個單一列表的數據,但不是全部,我也不知道是否可以使用iTextSharp將此PDF保存在服務器上。問題1:我應該使用什麼方法?你有什麼建議?使用Rotativa還是iTextSharp? Q2:這對於沒有太多編程經驗的人是可行的,或者我應該嘗試尋找另一種方式嗎?我

問題3:我仍然錯過了一個方法來做到這一點?我更喜歡沒有使用第三方軟件的方法。

+0

向我們展示您與iText的迄今編寫的代碼。 –

回答

1

公共字節[] GetPDF(字符串PHTML){ byte [] bPDF = null;

MemoryStream ms = new MemoryStream(); 
TextReader txtReader = new StringReader(pHTML); 

// 1: create object of a itextsharp document class 
Document doc = new Document(PageSize.A4, 25, 25, 25, 25); 

// 2: we create a itextsharp pdfwriter that listens to the document and directs a XML-stream to a file 
PdfWriter oPdfWriter = PdfWriter.GetInstance(doc, ms); 

// 3: we create a worker parse the document 
HTMLWorker htmlWorker = new HTMLWorker(doc); 

// 4: we open document and start the worker on the document 
doc.Open(); 
htmlWorker.StartDocument(); 

// 5: parse the html into the document 
htmlWorker.Parse(txtReader); 

// 6: close the document and the worker 
htmlWorker.EndDocument(); 
htmlWorker.Close(); 
doc.Close(); 

bPDF = ms.ToArray(); 

return bPDF; 

}

0

使用ITextSharp它的.NET PDF庫,它允許您生成PDF(可移植文檔格式)。

因此,首先需要在您的項目中添加iTextSharp的參考。

您可以使用軟件包管理器獲取iTextSharp參考,您只需執行以下命令下載和添加參考。

PM>安裝,包裝iTextSharp的

現在,你需要創建,這將給你的PDF內容的字節數組的方法,所以我們的代碼將