【问题标题】:How to render fonts as shape in Apache FOP 2.3如何在 Apache FOP 2.3 中将字体呈现为形状
【发布时间】:2019-09-29 11:06:55
【问题描述】:

我想将旧的 FOP 0.94 更新到新的 FOP 2.3。在旧的 FOP 中,字体被渲染为形状。我想保留这种行为,所以我尝试将以下内容设置为PDFTranscoder.:

PDFTranscoder pdfTranscoder = new PDFTranscoder();
pdfTranscoder.addTranscodingHint(PDFTranscoder.KEY_STROKE_TEXT, Boolean.TRUE);

但如果这样做,输出的 PDF 中不会呈现任何字体。如何告诉 FOP 将字体呈现为形状?

如果我删除:

pdfTranscoder.addTranscodingHint(PDFTranscoder.KEY_STROKE_TEXT, Boolean.TRUE);

那么文本在输出的 PDF 中,但没有呈现为形状

【问题讨论】:

  • 如果要使用自定义字体,需要添加到FOP configuration file。请提供您的。
  • 我只是通过Maven使用lib,它必须是默认配置。如果没有添加转码提示KEY_STROKE_TEXT,为什么要渲染字体?

标签: java java-8 apache-fop batik java-12


【解决方案1】:

文字绘画注意事项

曾经有一个额外的提示AbstractFOPTranscoder.KEY_STROKE_TEXT(内容:java.lang.Boolean),但此提示已被禁用。它用于强制将文本绘制为形状。

今天的 PDF 转码器尽可能使用 PDF 操作来绘制文本。只有在特殊效果或转换等情况下,Batik 才会将文本转换为形状。文本输出为形状将对性能产生负面影响,并导致更大的 PDF。目前除了投入一些时间来改进 PDF 转码器中的文本输出之外,没有其他解决方法。欢迎帮助。

https://cwiki.apache.org/confluence/display/XMLGRAPHICSBATIK/PdfTranscoder#space-menu-link-content

【讨论】:

    猜你喜欢
    • 2018-06-17
    • 1970-01-01
    • 2014-12-30
    • 2013-11-15
    • 2022-08-08
    • 1970-01-01
    • 2014-07-13
    • 2013-07-18
    • 2012-04-15
    相关资源
    最近更新 更多