Asp.net 转换为pdf时数据表之间的间距
在使用PDFWriter生成PDF文档时,如何在数据表之间包含空格 这是相关的代码片段:Asp.net 转换为pdf时数据表之间的间距,asp.net,pdf-generation,itextsharp,Asp.net,Pdf Generation,Itextsharp,在使用PDFWriter生成PDF文档时,如何在数据表之间包含空格 这是相关的代码片段: public void ExportToPdf(DataTable dt) { Document document = new Document(); PdfWriter writer = PdfWriter.GetInstance(document, new FileStream("E://sample2.pdf", FileMode.Create)); document.Open
public void ExportToPdf(DataTable dt)
{
Document document = new Document();
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream("E://sample2.pdf", FileMode.Create));
document.Open();
iTextSharp.text.Font font5 = iTextSharp.text.FontFactory.GetFont(FontFactory.HELVETICA, 5);
int col = dt.Columns.Count;
int row1 = dt.Rows.Count;
int newcol;
if (col > Convert.ToInt16(txt_columns.Text))
{
newcol = Convert.ToInt16(txt_columns.Text);
}
else
{
newcol = col;
}
int k=0, prev=0, dummy=0;
dummy = newcol;
for (int num_table = 1, temp = 0; num_table <= ((col / dummy) + 1); num_table++, temp++)
{
if (newcol > 0)
{
PdfPTable table = new PdfPTable(newcol);
PdfPRow row = null;
float[] widths = new float[newcol];
for (int i = 0; i < newcol; i++)
{
widths[i] = 4f;
}
table.SetWidths(widths);
table.WidthPercentage = 100;
int iCol = 0;
string colname = "";
PdfPCell cell = new PdfPCell(new Phrase("Products"));
cell.Colspan = newcol;
int j = 1;
foreach (DataColumn c in dt.Columns)
{
if (j > temp * dummy && j <= num_table * dummy)
{
table.AddCell(new Phrase(c.ColumnName, font5));
}
j++;
}
foreach (DataRow r in dt.Rows)
{
if (dt.Rows.Count > 0)
{
for (k=prev; k < ((num_table * dummy > col) ? col : (num_table * dummy)); k++)
{
table.AddCell(new Phrase(r[k].ToString(), font5));
}
}
}
prev = k;
if (newcol > (col - (num_table * newcol)))
{
newcol = (col - (num_table * newcol));
}
document.Add(table);
}
// need code for gap here
}
document.Close();
}
public void exporttopf(数据表dt)
{
文档=新文档();
PdfWriter writer=PdfWriter.GetInstance(文档,新文件流(“E://sample2.pdf”,FileMode.Create));
document.Open();
iTextSharp.text.Font font5=iTextSharp.text.FontFactory.GetFont(FontFactory.HELVETICA,5);
int col=dt.Columns.Count;
int row1=dt.Rows.Count;
int newcol;
if(col>Convert.ToInt16(txt_columns.Text))
{
newcol=Convert.ToInt16(txt_columns.Text);
}
其他的
{
newcol=col;
}
int k=0,prev=0,dummy=0;
dummy=newcol;
对于(int num_table=1,temp=0;num_table 0)
{
PdfPTable table=新PdfPTable(newcol);
PdfPRow row=null;
浮动[]宽度=新浮动[newcol];
for(int i=0;itemp*dummy&&j 0)
{
对于(k=prev;k<((num_table*dummy>col)?col:(num_table*dummy));k++)
{
table.AddCell(新短语(r[k].ToString(),font5));
}
}
}
prev=k;
if(newcol>(col-(num_table*newcol)))
{
newcol=(col-(num_table*newcol));
}
文件。添加(表);
}
//这里需要gap的代码吗
}
document.Close();
}
最后需要空间。海报可能会使用开源iText库生成PDF文档
谢谢大家! 添加“空格”有不同的方法。在表的上下文中,可以使用如下内容:
table.SpacingBefore = 5;
table.SpacingAfter = 5;
第一行在表前添加5 ts空间。第二行在表后添加5 ts空格
您还可以添加一个换行符。有不同的方法可以做到这一点:
document.Add(Chunk.NEWLINE); // the height of the newline will depend on the leading
document.Add(new Paragraph("\n")); // you can define a leading for a `Paragraph`; by default it will be 16pt
...
可能还有其他解决方案,但请尝试上述解决方案,并让我们知道哪一种最适合您。谢谢。我需要另一个帮助,了解如何更改PDF中列和行的背景颜色和字体颜色。此处说明:另外:StackOverflow策略告诉您发布新问题是因为您有新问题(似乎合乎逻辑,不是吗?)。