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

Free Support Forum - aspose.com

Pdf文件插入表格,没有在PDF文件的右上角出现。

您好,我向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");

@fhn123456

PDF 中的页面旋转了一定角度,因此添加的表格显示在不同的位置。请在添加表格之前将页面旋转设置为零,它将呈现在所需位置。

doc.Pages[1].Rotate = Rotation.None;

非常感您的回复,但是这不是我想要的。

添加了:doc.Pages[1].Rotate = Rotation.None;

输出后,PDF为什么会倒了。
output.pdf (1.6 MB)

我想要实现成这样的,我该如何实现?
正确.pdf (2.0 MB)

或者,我该如何让table表格和里面的文字跟着PDF页面旋转呢?

为什么PDF显示是正常,眼睛看到的为什么是没有旋转的。

@fhn123456

PDFNET-53100 问题已记录在我们的问题跟踪系统中以解决这种情况。问题单解决后,我们会通知您。

PDF 似乎是经过扫描的,并且大多数情况下在生成此类 PDF 时设置了旋转属性,以便最终用户或查看者可以正确地看到图像。