您好,我向PDF文件写入了一个表格,表格没有在PDF文件的右上角。却出现在页面的左面。
我向您提供测试文件:
input.pdf (1.5 MB)
output.pdf (1.6 MB)
我希望的样子:正确的.jpg (194.8 KB)
这是我的全部代码
string[] sqlData = {
$"46;2020年;1",
$"运输;10年;页码"
};
// 加载源PDF文档
Aspose.Pdf.Document doc = new Aspose.Pdf.Document(@"E:\桌面\666\源文件\input.pdf");
// 初始化表的新实例
Aspose.Pdf.Table table = new Aspose.Pdf.Table();
// 将表格边框颜色设置为浅灰色
table.Border = new Aspose.Pdf.BorderInfo(Aspose.Pdf.BorderSide.All, .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));
// 使用表的列宽设置
table.ColumnWidths = "2.4cm 1.8cm 1.8cm";
// 创建循环以添加10行
for (int row_count = 0; row_count < 2; row_count++)
{
// 将行添加到表
Aspose.Pdf.Row row = table.Rows.Add();
table.Rows[row_count].FixedRowHeight = 42.525;
string[] rowData = sqlData[row_count].Split(';');
for (int i = 0; i < rowData.Length; i++)
{
TextFragment fragment = new TextFragment();
Aspose.Pdf.Text.TextSegment segment = new Aspose.Pdf.Text.TextSegment($"{rowData[i]}");
Aspose.Pdf.Text.TextState ts = new TextState(System.Drawing.Color.Red);
ts.Font = FontRepository.FindFont("SimSun");
ts.Font.IsEmbedded = true;
ts.FontSize = 13f;
segment.TextState = ts;
fragment.Segments.Add(segment);
Cell cell = new Cell();
row.Cells.Add(cell);
cell.Paragraphs.Add(fragment);
cell.VerticalAlignment = VerticalAlignment.Center;
cell.Alignment = HorizontalAlignment.Center;
}
}
//Pdf页面宽度
double pageWidth = doc.Pages[1].GetPageRect(false).Width;
//获得表格的宽
float tableWidth = (float)table.GetWidth();
//右上角
table.Alignment = HorizontalAlignment.Right;
table.Top = 15f;
float rightMargin = (float)(tableWidth / 1.9);
table.Left = (float)(pageWidth - (tableWidth + rightMargin));
// 将表对象添加到输入文档的第一页
doc.Pages[1].Paragraphs.Add(table);
// 保存包含表对象的更新文档 output.pdf
doc.Save(@"E:\桌面\666\源文件\output.pdf");