我需要以特定格式将数据导出为pdf
我正在使用此函数将数据从数据库导出到pdf,但其输出类似于表。。。我想以如下格式导出特定行:我需要以特定格式将数据导出为pdf,pdf,export,itext,Pdf,Export,Itext,我正在使用此函数将数据从数据库导出到pdf,但其输出类似于表。。。我想以如下格式导出特定行: id : Name : Gender : Salary : 我该怎么做。。 提前谢谢 public void ExportToPDF() { SqlCommand cmd = new SqlCommand("SELECT EmployeeId , EmployeeName , EmployeeGender , EmployeeSalary , isActive FROM
id :
Name :
Gender :
Salary :
我该怎么做。。
提前谢谢
public void ExportToPDF()
{
SqlCommand cmd = new SqlCommand("SELECT EmployeeId , EmployeeName , EmployeeGender , EmployeeSalary , isActive FROM Employee", con);
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
GridView gridview1 = new GridView();
gridview1.AllowPaging = false;
gridview1.DataSource = ds;
gridview1.DataBind();
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=DataSet.pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
gridview1.RenderControl(hw);
StringReader sr = new StringReader(sw.ToString());
Document pdfDoc = new Document(PageSize.A4 , 10f , 10f , 10f , 0f);
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
PdfWriter.GetInstance(pdfDoc , Response.OutputStream);
pdfDoc.Open();
htmlparser.Parse(sr);
pdfDoc.Close();
Response.Write(pdfDoc);
Response.End();
}
请看一看这个例子。为了简单起见,我不使用数据库,而是使用CSV文件。修改示例应该很容易,这样它就可以从数据库中接受It数据,而不是解析CSV
您需要的关键类是PdfPTable
。例如,如果databaseObject
是您为存储数据库中的数据(例如记录的内容)而创建的对象,则需要如下内容:0
PdfPTable table = new PdfPTable(2);
table.addCell("Id:");
table.addCell(databaseObject.getId());
table.addCell("Name:");
table.addCell(databaseObject.getName());
我看到您正在代码中使用HTMLWorker
。这是有问题的,原因有二:
HTMLWorker
类已过时。它不再受支持。如果您确实希望将XHTML表转换为PDF,那么应该像在这些示例中一样使用XML Workerpublic void manipulatePdf(String src, String dest) throws DocumentException, IOException {
PdfReader reader = new PdfReader(src);
PdfStamper stamper = new PdfStamper(reader,
new FileOutputStream(dest));
AcroFields fields = stamper.getAcroFields();
fields.setField("name", "CALIFORNIA");
fields.setField("abbr", "CA");
fields.setField("capital", "Sacramento");
fields.setField("city", "Los Angeles");
fields.setField("population", "36,961,664");
fields.setField("surface", "163,707");
fields.setField("timezone1", "PT (UTC-8)");
fields.setField("timezone2", "-");
fields.setField("dst", "YES");
stamper.close();
reader.close();
}
这在示例中显示
遗憾的是,网上有大量的文档(我只举了几个例子),您选择的代码片段与您想做的事情相差甚远。将您的数据转换为html,这样您也可以将相同的布局转换为PDF。有许多不同的方法可以解决此问题@MohdSadiqGaur,但首先将数据转换为HTML,然后使用
HTMLWorker
创建PDF可能是最糟糕的选择dest
是结果PDF的路径。有很多文档,请阅读!