【问题标题】:How to add page background color itext 5 without margin space如何在没有边距空间的情况下添加页面背景颜色itext 5
【发布时间】:2016-12-22 14:01:51
【问题描述】:

我正在尝试为页面添加背景颜色。 我的 A4 页面大小在页面的顶部、左侧、右侧有 1/3 英寸的边距。下边距为 1 英寸。

Rectangle a4 = PageSize.A4;
a4.setBackgroundColor(BaseColor.CYAN);
Document document = new Document(a4,24,24,24,72);

背景颜色应用于所有页面。我想将它应用于不包括边距空间的页面内容。

【问题讨论】:

    标签: itext


    【解决方案1】:

    您需要使用PdfPageEvent 来实现这一点。看看这个问题的答案:Change the color of pdf pages alternatively using iText pdf in java

    在本例中,我们创建了一个覆盖整个页面的彩色背景:

    public class Background extends PdfPageEventHelper {
        @Override
        public void onEndPage(PdfWriter writer, Document document) {
            int pagenumber = writer.getPageNumber();
            if (pagenumber % 2 == 1 && pagenumber != 1)
                return;
            PdfContentByte canvas = writer.getDirectContentUnder();
            Rectangle rect = document.getPageSize();
            canvas.setColorFill(pagenumber < 3 ? BaseColor.BLUE : BaseColor.LIGHT_GRAY);
            canvas.rectangle(rect.getLeft(), rect.getBottom(), rect.getWidth(), rect.getHeight());
            canvas.fill();
        }
    }
    

    现在让我们修改这个例子:

    public class Background extends PdfPageEventHelper {
        @Override
        public void onEndPage(PdfWriter writer, Document document) {
            PdfContentByte canvas = writer.getDirectContentUnder();
            Rectangle rect = document.getPageSize();
            canvas.setColorFill(BaseColor.BLUE);
            canvas.rectangle(rect.getLeft() + 36, rect.getBottom() + 36, rect.getWidth() - 72, rect.getHeight() - 72);
            canvas.fill();
        }
    }
    

    通过改变rectangle()方法的参数,我们在每边引入了36个用户单元的边距。

    显然,你需要向PdfWriter声明页面事件:

    PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(filename));
    Background event = new Background();
    writer.setPageEvent(event);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-13
      • 1970-01-01
      • 1970-01-01
      • 2020-08-30
      • 2019-10-01
      • 2014-01-17
      • 1970-01-01
      • 2019-06-14
      相关资源
      最近更新 更多