PDFlib 使用透明颜色

PDFlib use transparent colors

我有一个table,我想给它一个透明的背景颜色。我知道我们有选项“fillcolor”,但我们只能使用类似 rgb 的东西(意味着不使用 rgba)和看起来像这样的颜色代码:fillcolor={rgba 0.9 0.5 0}fillcolor={#ffed00}.

那么怎样才能让背景更透明呢?

如果您使用“opacityfill”创建 GState,然后在放置 table.在一个简单的代码示例中,它看起来像这样:

        $gstate= $p->create_gstate("opacityfill=.5");
        $tbl = $p->add_table_cell($tbl, 1, 1,
              "Text", 
              "fittextline={fontname=NotoSerif-Regular encoding=unicode " + 
              "fontsize=12} colwidth=100 rowheight=30");

        $result = $p->fit_table($tbl, 50, 50, 500, 800, "fill={ {area=table fillcolor={red} } } gstate=" . $gstate);

如果您随后将 table 放在彩色背景(例如图像)上,则此代码片段会导致以下输出,例如:

另请参阅 PDFlib API 参考中的第 7.2 章“图形状态”,了解有关 create_gstate() 的完整详细信息。 也许也很有趣,如果你只想对一个单元格产生影响,你也可以使用 Matchbox 定义单元格的装饰,你可以用它指定一个 GState。 (有关详细信息,请参阅 PDFlib 9.3.1 教程,第 9.4 章“匹配框”)