Прозрачный цвет фона (заливка) для текстовых полей - PullRequest
0 голосов
/ 04 апреля 2019

Я создаю визитные карточки с pdflib и php. Я использую PDFLib 9.0.6p4 для Mac с PHP версии 5.6. Есть фоновое изображение, на котором отображается текст. Чтобы сделать его читабельным, я хочу иметь цвет фона для своего текста. Удалось сделать это с помощью matchbox и fillcolor. Есть ли возможность иметь прозрачный цвет заливки для моей спичечной коробки?

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

    ...
    $textline = "Max Mustermann";
    $p->save();
    $gstate = $p->create_gstate("opacityfill=.8");
    /* Apply the extended graphics state */
    $p->set_gstate($gstate); 
    # Place the text in a box on the top right
    $optlist = "position={top left} showborder matchbox={ boxheight={fontsize descender} borderwidth=0.3 offsetleft=-2 offsetright=2 offsetbottom=-2 fillcolor=green}";
    $p->fit_textline($textline, $x, $y-=$yoff, $optlist);   # sample text
    $p->fit_textline($optlist, $xt, $y + 3, "fontsize=12"); # description
    $p->restore();
    ...

к сожалению, это не дает ожидаемого эффекта прозрачного фона для текста.

1 Ответ

0 голосов
/ 04 апреля 2019

вы очень близки: вам нужно добавить дескриптор gstate в список опций спичечной коробки (упрощенный случай):

$gstate = $p->create_gstate("opacityfill=.8");
$optlist = "matchbox={ fillcolor=green gstate=$gstate}";
$p->fit_textline($textline, $x, $y-=$yoff, $optlist);
...