0

我使用 pdfium 查看 pdf 文件并与之交互(C++ 与 Qt 项目)。当我尝试获取在 Adob​​e Acrobat Reader 中创建的突出显示文本的颜色时,我没有得到有效的颜色。我得到了这个突出显示的文本的评论,还有位置。

当我使用 Foxit Reader 创建这个亮点时,一切正常。

这就是我尝试获取颜色的方式:

unsigned int R, G, B, A;
if (FPDFAnnot_GetColor(oAnnot, FPDFANNOT_COLORTYPE_Color, &R, &G, &B, &A))
{
    oColor = QColor(R, G, B, A);
    return true;
}

if (FPDFAnnot_GetColor(oAnnot, FPDFANNOT_COLORTYPE_InteriorColor, &R, &G, &B, &A))
{
    oColor = QColor(R, G, B, A);
    return true;
}

int objects = FPDFAnnot_GetObjectCount(oAnnot);
for (int i = 0; i < objects; i++)
{

    FPDF_PAGEOBJECT object = FPDFAnnot_GetObject(oAnnot, i);
    if (FPDFPageObj_GetFillColor(object, &R, &G, &B, &A))
    {
        oColor = QColor(R, G, B, A);
        return true;
    }

    if (FPDFPageObj_GetStrokeColor(object, &R, &G, &B, &A))
    {
        oColor = QColor(R, G, B, A);
        return true;
    }
}

在pdfium注解的头文件中注明:

在已定义外观流的注释上调用时失败;而是使用 FPDFPath_Get{Stroke|Fill}Color()。

但它不起作用。也许我需要直接访问外观流?

4

0 回答 0