Отсутствует цветная область в PDF с использованием itext PDF - PullRequest
0 голосов
/ 01 мая 2018

enter image description here

Я редактирую существующий pdf, используя itext pdf. При этом только часть прямоугольника отображается как цветная, а некоторая часть не выделяется. Похоже, здесь возникает какая-то проблема с оверлеем.

Желтый цвет не отображается в полном прямоугольнике.

    PdfContentByte canvas = stamper.getUnderContent(1);
    canvas.saveState();
    canvas.setColorFill(BaseColor.YELLOW);
    canvas.rectangle(36, 786, 66, 16);
    canvas.fill();
    canvas.restoreState();
    stamper.close();

1 Ответ

0 голосов
/ 04 мая 2018

Чтобы ваша задача работала, вы не должны рисовать под существующим контентом (чтобы контент мог просто покрыть ваш знак), а вместо этого над им. И чтобы исходный контент просвечивал, вы должны использовать соответствующий режим наложения:

PdfContentByte canvas = stamper.getOverContent(1);
canvas.saveState();
PdfGState state = new PdfGState();
state.setBlendMode(new PdfName("Multiply"));
canvas.setGState(state);
canvas.setColorFill(BaseColor.YELLOW);
canvas.rectangle(36, 786, 66, 16);
canvas.fill();
canvas.restoreState();
stamper.close();

( MarkContent test)

Вы не поделились своим PDF-файлом, поэтому мне пришлось попробовать PDF-файл, который есть у меня здесь. Используя правильно измененную позицию и размер прямоугольника, код помечает это

Before

чтобы выглядеть так:

After

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...