我成功地通過iTextSharp從DataTable創建了PDF文檔,但是我無法以理想的格式獲得佈局。通過iTextSharp創建帶溢出佈局的PDF
雖然不太可能,但DataTable有數十列的潛力。想象下面的DataTable - 每個數字表示可以放在頁面上的區域:
| ------------ |
| 1:2:3 |
| ------------ |
| 4:5:6 |
| ------------ |
這應該按照我爲這些部分編號的順序導出爲6頁的PDF文檔。相反,它目前是以兩頁文檔的形式生成的,每頁有40列一列,字體很小,字體沒有細節。
最簡單的方法來解釋我想要的是:當生成的PDF打印時,我希望它打印一個非常寬的Excel表格,而不是將所有內容壓縮在一起。
我的代碼如下:
public static void ExportAsPDF(DataTable Table, IList<string> Columns, string filename)
{
int ColumnCount = Table.Columns.Count;
int RowCount = Table.Rows.Count;
iTextSharp.text.Table BodyTable = new iTextSharp.text.Table(ColumnCount, RowCount);
BodyTable.AutoFillEmptyCells = true;
foreach (string s in Columns)
{
BodyTable.AddCell(s);
}
foreach (object o in from DataRow row in Table.Rows from o in row.ItemArray select o)
{
BodyTable.AddCell(o.ToString());
}
Document doc = new Document();
PdfWriter.GetInstance(doc, HttpContext.Current.Response.OutputStream);
doc.Open();
doc.Add(BodyTable);
doc.Close();
HttpContext.Current.Response.ContentType = "application/pdf";
HttpContext.Current.Response.AddHeader("content-disposition", string.Format("attachment; filename={0}.pdf", filename));
HttpContext.Current.Response.End();
}
所有輸入和幫助深表感謝。謝謝