带有黑色字体的 iText 矩形

蒂姆

我正在尝试在 iText 中创建一个具有背景颜色和文本的矩形。

如果我按原样运行代码,我会得到文本但没有背景颜色。调用 canvas.fillStroke() 填充背景颜色,但不显示任何文本。

如何获得背景颜色和字体?

public void createPdf() {

    try(ByteArrayOutputStream os = new ByteArrayOutputStream()) {

        try(PdfWriter writer = new PdfWriter(os)) {
            try(PdfDocument pdf = new PdfDocument(writer)) {
                try (Document document = new Document(pdf)) {
                    PdfPage page = pdf.addNewPage();
                    PageSize ps = pdf.getDefaultPageSize();


                    Text green = new Text("This text is green. ")
                            .setFontColor(new DeviceRgb(27,255,0));

                    Paragraph p = new Paragraph("This is the text added in the rectangle.");
                    p.add(green);

                    PdfCanvas canvas = new PdfCanvas(pdf.getFirstPage());
                    Color orange = new DeviceRgb(255, 100, 20);
                    canvas.setFillColor(orange);

                    Rectangle rect = new Rectangle(1f,ps.getHeight()-101f,ps.getWidth()-1f,100f );

                    new Canvas(canvas, pdf, rect)
                            .add(p);
                    canvas.rectangle(rect);
                   // canvas.fillStroke();

                }
            }
        }
        Files.write(new File("C:\\users\\tim\\file.pdf").toPath(), os.toByteArray(), StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING);

    }  catch(IOException e) {
        throw new RuntimeException(e);
    }
}
蒂姆

感谢 mkl 的评论

我所要做的就是先填充矩形,然后在之后添加段落

   public void createPdf() {

    try(ByteArrayOutputStream os = new ByteArrayOutputStream()) {

        try(PdfWriter writer = new PdfWriter(os)) {
            try(PdfDocument pdf = new PdfDocument(writer)) {
                try (Document document = new Document(pdf)) {
                    PdfPage page = pdf.addNewPage();
                    PageSize ps = pdf.getDefaultPageSize();


                    Text green = new Text("This text is green. ")
                            .setFontColor(new DeviceRgb(27,255,0));

                    Paragraph p = new Paragraph("This is the text added in the rectangle.");
                    p.add(green);

                    PdfCanvas canvas = new PdfCanvas(pdf.getFirstPage());
                    Color orange = new DeviceRgb(255, 100, 20);
                    canvas.setFillColor(orange);

                    Rectangle rect = new Rectangle(1f,ps.getHeight()-101f,ps.getWidth()-1f,100f );

                    Canvas rectangleCanvas = new Canvas(canvas, pdf, rect);
                    canvas.rectangle(rect);
                    canvas.fillStroke();
                    rectangleCanvas.add(p);
                }
            }
        }
        Files.write(new File("C:\\users\\tim\\file.pdf").toPath(), os.toByteArray(), StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING);

    }  catch(IOException e) {
        throw new RuntimeException(e);
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

字体超赞的黑色矩形

来自分类Dev

字体超赞的黑色矩形

来自分类Dev

使用itext插入“链接的矩形”

来自分类Dev

如何在Java中将itext pdf文件的段落设置为具有背景颜色的矩形

来自分类Dev

如何在Java中将itext pdf文件的段落设置为具有背景颜色的矩形

来自分类Dev

使用矩形在iText中选择文本

来自分类Dev

在iText PDF的矩形中填充颜色

来自分类Dev

使用带有嵌入字体的 iText 提取文本

来自分类Dev

屏幕上的黑色矩形

来自分类Dev

在画布中查找所有黑色矩形

来自分类Dev

带有直角矩形的边框

来自分类Dev

如何使用IText将段落添加到矩形中

来自分类Dev

iText 7添加彩色文本并填充到矩形

来自分类Dev

iText 7添加彩色文本并填充到矩形

来自分类Dev

使用iText在矩形中绘制可选文本

来自分类Dev

用黑色矩形清洁SurfaceTexture

来自分类Dev

Linux安装失败:黑色矩形

来自分类Dev

iText字体策略

来自分类Dev

iText字体策略

来自分类Dev

在Itext中修改现有PDF的字体

来自分类Dev

发送带有正文的矩形删除或customDELETE

来自分类Dev

带有彩色圆角的透明矩形

来自分类Dev

使用XML的带有箭头的矩形形状

来自分类Dev

GLSL带有可变边框的圆角矩形

来自分类Dev

UIView带有透明的圆角矩形?

来自分类Dev

如何创建带有内圆角的矩形

来自分类Dev

创建带有GUI的矩形类(错误)

来自分类Dev

css渐变矩形下方带有圆形

来自分类Dev

带有 Python 乌龟的圆角矩形