相关疑难解决方法(0)

在iTextSharp中设置表格的高度

我创建了一个包含2列的表.在第一行的第二个单元格中,我想插入另一个只有一个单元格的表格.问题是我无法设置第二个表的高度.它的内容高度超过了内容.它的高度与添加它的细胞高度相等.

c# pdf itext

5
推荐指数
2
解决办法
1万
查看次数

无法正确计算itext PdfPTable/PdfPCell高度

我在尝试生成PdfPTable并在将其添加到文档之前计算其高度时遇到问题.calculateHeightsPdfPTable 的方法返回的高度比页面的高度大很多(当表格大约是页面高度的1/4时),所以我写了一个计算高度的方法:

protected Float getVerticalSize() throws DocumentException, ParseException, IOException {
    float overallHeight=0.0f;
    for(PdfPRow curRow : this.getPdfObject().getRows()) {
        float maxHeight = 0.0f;
        for(PdfPCell curCell : curRow.getCells()) {
            if(curCell.getHeight()>maxHeight) maxHeight=curCell.getHeight();
        }
        overallHeight+=maxHeight;
    }
    return overallHeight;
}
Run Code Online (Sandbox Code Playgroud)

其中getPdfObjectmethod返回PdfPTable对象.
使用调试器我发现单元格矩形的lly和ury坐标差异(以及因此高度)比将表格添加到文档后看起来要大得多(例如,一个单元格为20,另一个单元格为38高度在页面上看起来一样).除了带有块的段落外,单元格中没有任何内容:

Font f = getFont();
        if (f != null) {
            int[] color = getTextColor();
            if(color != null) f.setColor(color[0],color[1],color[2]);
            ch = new Chunk(celltext, f);
            par = new Paragraph(ch);
        }
cell = new PdfPCell(par);
cell.setHorizontalAlignment(getHorizontalTextAlignment());
cell.setVerticalAlignment(getVerticalTextAlignment());
Run Code Online (Sandbox Code Playgroud)

然后一个表添加了一个单元格,并将setWidthPercentage属性设置为某个浮点数.我究竟做错了什么?为什么单元格的比例与生成PDF后看到的不同?也许我正在计算身高错误?是不是PDF页面上单元格的高度应严格地说是lly和ury坐标之间的区别
对不起我没有显示确切的代码,因为PDF是使用大量的中间步骤和对象生成的XML是不是很"有用",我猜...
提前谢谢!

java height itext pdfptable

3
推荐指数
1
解决办法
4008
查看次数

Itextsharp:在一页上调整2个元素

所以,我在使用C#(.NET 4.0 + WinForms)和iTextSharp 5.1.2时遇到了这个问题.

我有一些扫描图像存储在数据库中,需要与这些图像一起构建.有些文件只有一页,其他有几百页.这工作正常使用:

    foreach (var page in pages)
    {
        Image pageImage = Image.GetInstance(page.Image);
        pageImage.ScaleToFit(document.PageSize.Width,document.PageSize.Height);
        pageImage.Alignment = Image.ALIGN_TOP | Image.ALIGN_CENTER;
        document.Add(pageImage);
        document.NewPage();
        //...
    }
Run Code Online (Sandbox Code Playgroud)

问题是:

我需要在最后一页的底部添加一个小表.

我尝试:

    foreach (var page in pages)
    {
        Image pageImage = Image.GetInstance(page.Image);
        pageImage.ScaleToFit(document.PageSize.Width,document.PageSize.Height);
        pageImage.Alignment = Image.ALIGN_TOP | Image.ALIGN_CENTER;
        document.Add(pageImage);
        document.NewPage();
        //...
    }
    Table t = new table....
    document.Add(t);
Run Code Online (Sandbox Code Playgroud)

表已成功添加,但如果图像的大小符合文档的页面大小,则表格将添加到下一页.

我需要调整文档的最后一个图像(如果它有多个,或第一个if只有1),以便将表直接放在该页面上(带有图像),并且两个都只是一页.

我尝试按百分比缩放图像,但是假设最后一页上的图像的图像大小是未知的,并且它必须填充页面的最大部分,我需要做到这一点.

任何的想法?

c# pdf image itextsharp

1
推荐指数
1
解决办法
1万
查看次数

标签 统计

c# ×2

itext ×2

pdf ×2

height ×1

image ×1

itextsharp ×1

java ×1

pdfptable ×1