0

我正在使用 pdfium 向 pdf 文件添加注释。我使用 Notepad++ 打开了 pdf 文件并查看了它的对象。注释对象存在于 Page 对象中,如下所示,

3 0 obj
<</Annots[<</C[ 1 1 0]/CA 1/F 4/QuadPoints[ 0 300 300 300 0 0 300 0]/Rect[ 216.182 702.94 368.75 686.38]/Subtype/Highlight/Type/Annot>>]/Contents 4 0 R /Group<</CS/DeviceRGB/S/Transparency/Type/Group>>/MediaBox[ 0 0 612 792]/Parent 2 0 R /Resources<</ExtGState<</GS7 7 0 R /GS8 8 0 R >>/Font<</F1 5 0 R >>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/StructParents 0/Tabs/S/Type/Page>>
endobj

我使用以下代码将矩形和附加点添加到注释中。

FPDF_ANNOTATION highlightAnnot = FPDFPage_CreateAnnot(page, FPDF_ANNOT_HIGHLIGHT);
FPDFAnnot_SetRect(highlightAnnot, &rect);
FPDFAnnot_AppendAttachmentPoints(highlightAnnot, &new_quadpoints);

据我了解,附加点设置为我们希望它位于的突出显示注释的位置。但我不明白为此注释设置 Rect 的目的。

有人可以告诉使用 FPDFAnnot_SetRect 函数的原因吗?

另一件事,

4

1 回答 1

1

FPDFAnnot_SetRect 定义边界框,而 FPDFAnnot_AppendAttachmentPoints 定义实际形状。考虑一个多行高亮注释,它只有一个Rect,但有几个AttachmentPoints

ARect可以用作应用程序级别的“碰撞框”,以便在单击它时选择包含的注释。或者它可以是一个“更新框”。

Rect更通用,只有与文本相关的注释类型有AttachmentPoints.

于 2020-11-14T14:49:54.357 回答