【问题标题】:iText - Image border width changes based upon imageiText - 图像边框宽度根据图像变化
【发布时间】:2015-07-31 05:28:17
【问题描述】:

我正在为 .pdf 文档中的各种图像添加边框。边框都具有相同的宽度,但在 .pdf 中,边框具有不同的宽度。随着边框宽度的增加,它更加明显。

另外,有没有办法使用图像类的方法将边框移到图像之外,使其不覆盖任何图像?我意识到我可以先放置一个填充的矩形,然后在矩形顶部添加图像作为选项。只是好奇这是否可以使用 Image 类中的方法来完成。

这里是代码sn-p

    magazine.open();

    canvas = pdfw.getDirectContent();

    image = Image.getInstance("a.JPG");

    image.setBorder(Rectangle.BOX);     
    image.scaleAbsolute(200,200);       
    image.setBorderWidth(50);
    image.setAbsolutePosition(50,10);
    //canvas.addImage(image);       
    magazine.add(image);


    image = Image.getInstance("b.jpg");

    image.setBorder(Rectangle.BOX);     
    image.scaleAbsolute(200,200);       
    image.setBorderWidth(50);
    image.setAbsolutePosition(50,230);
    //canvas.addImage(image);       
    magazine.add(image);

【问题讨论】:

    标签: image itext border


    【解决方案1】:

    我担心您将不得不使用您描述的解决方法。

    有两种方法可以为图像定义边框:

    image.setUseVariableBorders(false);
    

    这是默认设置。这就是您所拥有的(即使您没有显式调用该方法)。

    在这种情况下,边框的粗细分布方式是一半的线宽在矩形内,一半的线宽在矩形外。也许这就是导致您注意到的差异随着边框宽度的增加而更加明显的原因。

    然后有:

    image.setUseVariableBorders(true);
    

    现在将在图像所需的区域绘制边框。这对 tables 很有用(PdfPCellImage 都是定义这些方法的 Rectangle 类的子类),但我担心在 图片。

    因此,您最好的机会是使用解决方法添加边框。

    【讨论】:

      猜你喜欢
      • 2016-08-02
      • 1970-01-01
      • 1970-01-01
      • 2019-05-16
      • 1970-01-01
      • 2016-04-02
      • 1970-01-01
      • 1970-01-01
      • 2020-06-06
      相关资源
      最近更新 更多