您好,感谢您的查看。
我在PDF文件右上角插入3列2行表格,第三列数据没有显示出来。但是PDF左上角插入表格和中间显示正常。
输入文件:input.pdf (44.5 KB)
错误文件:document_with_table_out.pdf (152.3 KB)
以下是我的全部代码,谢谢。
//数据
string[] sqlData = {
$"46;2020年;1",
$"运输;10年;页码"
};
//加载源PDF文档
Aspose.Pdf.Document doc = new Aspose.Pdf.Document(filePath);
//初始化表的新实例
Aspose.Pdf.Table table = new Aspose.Pdf.Table();
//将表格边框颜色设置为红色
table.Border = new Aspose.Pdf.BorderInfo(Aspose.Pdf.BorderSide.All, 0.5f, Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Red));
// 设置表格单元格的边框
table.DefaultCellBorder = new Aspose.Pdf.BorderInfo(Aspose.Pdf.BorderSide.All, .5f,Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Red));
//使用表的列宽设置 如果有3列就设置三个数字:第一列 70 60 60
table.ColumnWidths = "70 60 60";
//创建循环以添加2列
for (int row_count = 0; row_count < 2; row_count++)
{
//将行添加到表
Aspose.Pdf.Row row = table.Rows.Add();
//默认单元格文字水平对齐
row.DefaultCellTextState.HorizontalAlignment = HorizontalAlignment.Center;
//设置行高
row.FixedRowHeight = 30f;
string[] rowData = sqlData[row_count].Split(';');
for (int i = 0; i < rowData.Length; i++)
{
//添加一个单元格
Cell cell = new Cell();
row.Cells.Add(cell);
cell.Paragraphs.Add(new TextFragment($"{rowData[i]}"));
cell.VerticalAlignment = VerticalAlignment.Center;
cell.Alignment = HorizontalAlignment.Center;
}
}
float pageWidth = (float)doc.Pages[1].GetPageRect(false).Width;
//获得表格的宽
float tableWidth = (float)table.GetWidth();
float x = 0;
//左上
if (fSSettingsData.fSWz == 0)
{
//不能为0 否则不管用 x = 1;是最右边
x = 30f;
}//居中
else if (fSSettingsData.fSWz == 1)
{
//可以使用
//中间 pageSize / 2 页面大小除以2 获得中间位置 190是表格总宽度
float Center = (float)((pageWidth / 2) + (tableWidth / 2));
x = pageWidth - Center;
}//右上
else if (fSSettingsData.fSWz == 2)
{
x = pageWidth - (tableWidth + 30f);
}
table.Top = 30f;
table.Left = x;
//将表对象添加到输入文档的第一页
doc.Pages[1].Paragraphs.Add(table);
string datasave = fSSettingsData.fSFileSave + "\\document_with_table_out.pdf";
// 保存包含表对象的更新文档
doc.Save(datasave);
System.Diagnostics.Process.Start(datasave);