【问题标题】:Change font color in StaticNote of PDFClown更改 PDFClown 的 StaticNote 中的字体颜色
【发布时间】:2016-08-22 13:09:20
【问题描述】:

参考Build text callout with PDF Clown - 是否可以更改标注注释中文本的字体颜色?

我还没有找到合适的方法,有人可以给我提示吗?

【问题讨论】:

    标签: java pdf pdfclown


    【解决方案1】:

    没有明确的 PDF Clown 方法来设置文本颜色。这可能与 PDF 注释字典中也没有明确的条目有关。

    不过有两种选择:

    • 注释中的可变文本通常有一个默认外观 (DA) 条目。由于 PDF Clown 不隐藏通用对象方法,您可以像这样扩展原始标注示例:

      // Callout.
      composer.showText("Callout note annotation:", new Point(35, 85));
      new StaticNote(
        page,
        new Rectangle(250, 90, 150, 70),
        "Text of the Callout note annotation"
        ).withLine(
           new StaticNote.CalloutLine(
             page,
             new Point(250,125),
             new Point(150,125),
             new Point(100,100)
             )
           )
         .withLineEndStyle(LineEndStyleEnum.OpenArrow)
         .withBorder(new Border(1))
         .withColor(DeviceRGBColor.get(Color.YELLOW))
         .getBaseDataObject().put(PdfName.DA, new PdfString("1 0 1 rg /Ti 12 Tf"));
      

      您必须在此处使用纯 PDF 指令,rg 设置由前面三个值定义的 RGB 颜色,而 Tf 根据前面的值设置字体和大小两个值。上面的结果是:

      如您所见,文本现在是紫色(红色 100%,绿色 0%,蓝色 100%)。不过,副作用是标注线和标注框周围的框架也是紫色的。

    • 或者,PDF 可以带来自己的外观流,定义所讨论注释的整体外观。但是,这意味着您必须自己绘制所有内容,包括线条、框架、背景和文本。

      PDF Clown 允许您使用 setAppearancewithAppearance 方法设置注释的外观。

    【讨论】:

    • 第一个选项效果很好@mkl,但我们只需要更改字体颜色。我也尝试了 setAppearance 和 withAppearance 方法。你有一些示例代码吗?我仔细看与输出(来自StaticNote.getAppearance)以下Appearance对象:“CreationDate(...)的Rect [569.5875000000001 756.641 581.5875000000001 769.641] F 4 CL [389.06100000000004 760.9929999999999 543.6750000000001 760.9929999999999 569.5875000000001 763.141] IT FreeTextCallout M(。 ..) AP > P 3 0 R BS 152 0 R 类型注释内容 (C) LE [ 无 OpenArrow ] 子类型 FreeText“
    • @grml 我会在下周晚些时候调查。
    猜你喜欢
    • 1970-01-01
    • 2021-05-17
    • 2011-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-30
    • 2023-03-06
    相关资源
    最近更新 更多