【问题标题】:Arial font required in PDF (BIRT pdf renderer, Linux)PDF 中需要 Arial 字体(BIRT pdf 渲染器,Linux)
【发布时间】:2010-11-06 16:16:58
【问题描述】:

我使用 BIRT IDE 创建了一个 rptdesign 文件。此文件内容为 Arial 字体,当我在 Windows 中将报告导出为 PDF 时,它可以正常工作。

我使用默认 viewerServlet 创建报告。但是当我将报表移动到 linux 系统时,报表中的所有内容都以 Times New Roman 字体显示,而不是 PDF 文件中的 Arial。

然后我将 Arial.ttf 文件复制到 /var/font/truetype 并将以下行添加到 platform/plugins/org.eclipse.birt.report.engine.fonts_2.3.2.r232_20090202/fontsConfig.xml

    <font-paths>
        ---------------
        ---------------
        ---------------
        <path path="/var/font/truetype" />
    </font-paths>

添加此行后,所有内容都以Arial字体出现,但是粗体的内容似乎被压缩并且看起来很丑。

有人遇到过这个问题并有解决办法吗?

谢谢 问候, 阿伦

【问题讨论】:

  • 我不知道你的特定框架,但它不提供将使用的字体嵌入到 PDF 中的可能性吗?

标签: linux birt


【解决方案1】:

然后我将 Arial.ttf 文件复制到 /var/font/truetype

Arial.ttf 仅包含纯字体版本。 对于粗体、斜体和斜体粗体,有不同的文件(arialbd.ttf 等)。 也复制这些。

【讨论】:

    【解决方案2】:

    我花了几个小时寻找这个:

    export BIRT_FONT_PATH=/usr/share/fonts/truetype
    

    执行此操作并完成!

    【讨论】:

      【解决方案3】:

      这是我的 fontsConfig_pdf.xml 文件

      <font>
      <font-aliases>
          <mapping name="sans-serif" font-family="Arial" />
          <mapping name="serif" font-family="Times-Roman" />
          <mapping name="monospace" font-family="Courier" />
      </font-aliases>
      <font-encodings>
          <encoding font-family="Times-Roman" encoding="Cp1252" />
          <encoding font-family="Helvetica" encoding="Cp1252" />
          <encoding font-family="Courier" encoding="Cp1252" />
          <encoding font-family="Zapfdingbats" encoding="Cp1252" />
          <encoding font-family="Symbol" encoding="Cp1252" />
          <encoding font-family="STSong-Light" encoding="UniGB-UCS2-H" />
          <encoding font-family="STSongStd-Light" encoding="UniGB-UCS2-H" />
          <encoding font-family="MHei-Medium" encoding="UniCNS-UCS2-H" />
          <encoding font-family="MSung-Light" encoding="UniCNS-UCS2-H" />
          <encoding font-family="MSungStd-Light" encoding="UniCNS-UCS2-H" />
          <encoding font-family="HeiseiMin-W3" encoding="UniJIS-UCS2-H" />
          <encoding font-family="HeiseiKakuGo-W5" encoding="UniJIS-UCS2-H" />
          <encoding font-family="KozMinPro-Regular" encoding="UniJIS-UCS2-H" />
          <encoding font-family="HYGoThic-Medium" encoding="UniKS-UCS2-H" />
          <encoding font-family="HYSMyeongJo-Medium" encoding="UniKS-UCS2-H" />
          <encoding font-family="HYSMyeongJoStd" encoding="UniKS-UCS2-H" />
      </font-encodings>
      <font-paths>
              <path path="/var/fonts/truetype"/>
      </font-paths>
      <composite-font name="all-fonts">
          <font font-family="Times-Roman" catalog="Western" />
          <font font-family="MSung-Light" catalog="Chinese" />
          <font font-family="HeiseiKakuGo-W5" catalog="Japanese" />
          <font font-family="HYGoThic-Medium" catalog="Korean" />
      </composite-font>
      </font>
      

      【讨论】:

        【解决方案4】:

        谁能告诉我有没有 linux中Arial字体的问题,如果 字符设置为粗体

        对我们来说一切都很好。下面是我的 fontsConfig.xml 补丁:

        <font-aliases>
            <mapping name="sans-serif" font-family="Arial" />
            ...
        </font-aliases>
        <font-paths>
            <path path="fonts"/>
        </font-paths>
        

        放入字体文件夹arial.ttf和arial.xml文件。

        【讨论】:

        • 您好,感谢您的回答。但它仍然不适合我。我在 fontsConfig_pdf.xml 文件中添加了字体别名和字体路径。您能告诉我报告中的粗体文本是如何工作的吗?看起来还可以吗?
        • 是的。大胆的 Arial 看起来不错。你有多个 fontsConfig 文件吗?我建议你(如果可能的话)保留 1 个文件 fontsConfig.xml 并配置文件中的所有内容。
        【解决方案5】:

        尝试像这样明确说明您的字体路径:

        <font-paths>
           <path path="/var/font/truetype/arial.ttf" />
        </font-paths>
        

        设置此属性(字体路径)会导致默认字体目录被忽略,而仅支持此集中的路径。这将使 Arial 成为 PDF 的唯一可用字体。要包含默认字体(TNR、Courier 等),请将 eclipse 插件下的默认路径(org.eclipse.birt.report.engine.fonts)添加到您的字体路径条目中。

        您也可以选择仅将 Arial.ttf 添加到默认目录并从字体路径中删除所有条目并以这种方式选择 Arial 类型。无论哪种方式都应该有效。

        祝你好运。

        【讨论】:

        • 在这样做之后,粗体字符也显得非常粗体和压缩。我认为它与包含字体文件夹相同。它不会加载所有字体,而是仅加载 Arial 字体。
        • Arial.ttf 在字体本身中有一个粗体变体。只要找到字体类,就是 PDF 引擎在处理粗体字重时遇到问题。
        猜你喜欢
        • 2012-10-31
        • 2011-04-07
        • 2014-09-02
        • 1970-01-01
        • 2018-12-04
        • 1970-01-01
        • 1970-01-01
        • 2022-11-17
        相关资源
        最近更新 更多