【问题标题】:PDFlib use transparent colorsPDFlib 使用透明色
【发布时间】:2021-08-30 10:25:09
【问题描述】:

我有一张桌子,我想给它一个浅色透明的背景颜色。我知道我们有“填充颜色”选项,但我们只能使用 rgb(表示不使用 rgba)和颜色代码,如下所示:fillcolor={rgba 0.9 0.5 0}fillcolor={#ffed00}

那么如何让背景更透明呢?

【问题讨论】:

    标签: php pdf pdflib


    【解决方案1】:

    如果您使用“opacityfill”创建一个 GState,然后在放置表格时将其输出,则可以在 PDFlib 中实现此功能。在一个简单的代码示例中,如下所示:

            $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);
    

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

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

    【讨论】:

    • 非常感谢您的解释,这对我帮助很大!另外您是否知道是否可以仅为特定行的底部创建表格边框?我知道我们可以使用选项 stroke{={line=other}} 为 fit_table 设置整个表格的表格边框,但我不想要整个表格的边框。
    猜你喜欢
    • 2020-03-13
    • 1970-01-01
    • 1970-01-01
    • 2013-12-26
    • 2016-05-20
    • 2015-04-25
    • 2016-06-09
    • 2016-06-14
    • 1970-01-01
    相关资源
    最近更新 更多