我使用StringWriter和HtmlTextWriter从Code Behind File生成一个PDF。 编码如下:
System.IO.StringWriter sw = new System.IO.StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
GridView gv = new GridView();
gv.BorderStyle = BorderStyle.None;
gv.DataSource = dt2;
gv.DataBind();
gv.RenderControl(hw);
string str = sw.ToString();
string str1 = "<table width='100%' border='1'><tr><td><img src='" + Server.MapPath("App_Themes/Ribo/ribologo.bmp") + "' alt='' width=75px height=75px /></td><td align='center' colspan='8' font size='3'><h2><b>MATERIAL RECEIPT CUM INSPECTION REPORT(MRIR)</b></h2</td></tr>";
str1 += "<tr><td font size='3'>MRIR NO</td><td font size='3'>Date</td><td align='center' font size='3'>JOB DESCRIPTION</td><td font size='3'>SUPPLIER NAME</td><td font size='3'>DC NO</td><td font size='3'>DATE</td><td font size='3'>LWB NO/DATE</td><td font size='3'>INVOICE NO</td><td font size='3'>DATE</td></tr>";
str1 += "<tr><td font size='3'>" + txtMRVNumber.Text + "</td><td font size='3'></td><td font size='3'></td><td font size='3'>" + TDSSVendor.Text + "</td><td font size='3'>" + txtDCNumber.Text + "</td><td font size='3'></td><td font size='3'>" + txtLWBNo.Text + "</td><td font size='3'>" + txtInvoiceNo.Text + "</td><td font size='3'></td></tr>";
str1 += "<tr><td rowspan='2' font size='3'>DESCRIPTION</td><td font size='3' colspan='2' align='center'>SIZE(mm)</td><td colspan='6'></td></tr>";
str1 += "<tr><td font size='3' colspan='2'>" + sw + "</td><td colspan='6'></td></tr></table>";
if (str.StartsWith("<div>"))
{
str = str1;
}
System.IO.StringReader sr = new System.IO.StringReader(str);
iTextSharp.text.Document pdfDoc = new iTextSharp.text.Document(iTextSharp.text.PageSize.A3.Rotate(), 40f, 10f, 40f, 2f);
iTextSharp.text.html.simpleparser.HTMLWorker htmlparser = new iTextSharp.text.html.simpleparser.HTMLWorker(pdfDoc);
iTextSharp.text.pdf.PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
在这里,我生成了我想要的PDF。但该表显示在PDF的顶部。所以我想显示在PDF的中心以及我想增加表的高度。怎么做?
我尝试过如下:
string str1 = "<table **height='100%'** width='100%' border='1'><tr>.....
但它显示为相同。如何增加桌子的高度?我需要你的所有建议。
答案 0 :(得分:1)
仅此一点不会这样做。您可以将生成的.pdf包装在另一个表(1行,1列)中,并将该表放在新表的唯一TD中,然后只是垂直对齐(valign ='middle')封闭的TD。
这是我知道如何做你要求的唯一方式,虽然我不知道它是否适合你:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Untitled Page</title>
<!-- Put this on your presentation page -->
<style type="text/css">
html, body {
margin: 0;
padding: 0;
height: 100%;
border: none;
}
</style>
</head>
<body>
<table style="height: 100%" width="100%" align="center">
<tr>
<td valign="middle" align="center">
<table>
<tr>
<td valign="middle">
<!-- Embed your .pdf here -->
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
答案 1 :(得分:0)
Dim doc As Document = New Document(PageSize.A4, 1, 0, 0, 30)
希望这会对你有帮助......