通过iTextSharp创建溢出布局的PDF
|
我已经通过iTextSharp从DataTable成功创建了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();
}
非常感谢所有的输入和帮助。谢谢
没有找到相关结果
已邀请:
1 个回复
孝铜差
然后您就可以像现在一样绘制表格了……但是您必须确保列边缘与两个页面边缘对齐,以便以后可以轻松拆分页面。如果可以创建一个空行,该行以分页符的中心位置为中心,则可以加分。
最后,您需要保存PDF,再次打开它,然后将其切成丝带。我在想PdfStamper。
该死的我很好。哦,哦!又谦虚!让我们不要忘记好看,勇敢,有礼貌,机智...