We're sorry Aspose doesn't work properply without JavaScript enabled.

Free Support Forum - aspose.com

已有PDF插入表格,table没有在PDF文件的右上角

感谢您的查看和帮助!

1,我向已有PDF文件右上角插入表格,但表格出现在PDF的边缘了,这不是我想要的。

测试文件:input.pdf (1.5 MB)
错误输出: output.pdf (1.6 MB)
想要的效果:正确.pdf (2.0 MB)

以下是我的全部代码:

        // 加载源PDF文档 input input测试
        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(true).Width;
        double pageHeight = doc.Pages[1].GetPageRect(true).Height;
        //获得表格的宽
        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");

@fhn123456

它看起来像是该线程的重复帖子。针对这种情况,我们在 原帖 中回复您。

@fhn123456

我们在问题跟踪系统中将这个问题记录为 PDFNET-53100。 解决此问题后,您将通过此论坛主题收到通知。

对于给您带来的不便,我们深表歉意。