自定义自由文本工具

Customizing the FreeText Tool

我正在尝试自定义自由文本注释的外观。

我需要文本有额外的填充,即文本周围应该有额外的 space。

我正在使用 WebViewer,并在制作 FreeTextAnnotation 时尝试使用 setPadding 和 setRect 函数。这些没有做我想要的,setPadding函数设置了选择矩形的填充。

然后我尝试根据以下指南和示例制作自定义注释:

我无法使它正常工作,因为我没有很多文档可以继续,而且 none 这些示例中有用户可编辑的组件(比如在自由文本之后编辑文本注释已完成)

这是我想要的示例:

这是一个我不想要的例子:

在我看来,根据 PDF 规范,我认为自由文本注释不能有填充 属性。所以不幸的是,即使我们设法通过自定义 draw 函数添加了填充,它也不会保持一致,这意味着当在其他 PDF 阅读器(如 Acrobat)中查看下载的 PDF 时,填充会丢失。

但是,我们可以通过一种方法实现这一点并使外观保持一致,尽管有点老套。我们可以手动设置边框和填充颜色相同,并增加边框的值,使自由文本注释在视觉上具有填充。例如:

const color = new instance.Annotations.Color(3, 244, 252);
instance.annotManager.setAnnotationStyles(annot, () => ({
  StrokeThickness: 30, // padding
  StrokeColor: color,
  FillColor: color,
}))