C#ASP.NET MVC从视图Rotativa或iTextSharp创建PDF?

问题描述:

我很不熟悉从多个表单生成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的迄今编写的代码。 –

公共字节[] 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; 

}

使用ITextSharp它的.NET PDF库,它允许您生成PDF(可移植文档格式)。

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

您可以使用软件包管理器获取iTextSharp参考,您只需执行以下命令下载和添加参考。

PM>安装,包装iTextSharp的

现在,你需要创建,这将给你的PDF内容的字节数组的方法,所以我们的代码将