提问者:小点点

无法让印度卢比符号出现在飞碟生成的PDF中


我正在尝试几种不同的方法,但我无法获得使用飞碟生成的pdf(来自html文件)来显示印度卢比的unicode字符-“¥”

这是我目前拥有的:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

    <style>
      body {
        font-family: Arial Unicode MS, Lucida Sans Unicode, Arial, verdana, arial, helvetica, sans-serif;
      }      

      @font-face {
        font-family: 'Arial Unicode MS';
        src: url(arialunicodems.ttf);
        -fs-pdf-font-embed: embed;
        -fs-pdf-font-encoding: UTF-8;
        -fs-pdf-font-encoding: Identity-H;
        font-weight: normal;
      }

    </style>

  </head>
  <body>

    <p>We want to see a Indian Rupees symbol between the asterisks on one or more of these lines, in the PDF (if any of the symbols make it through to the PDF then we're good):</p>
    <p>Using the glyph itself in the markup: * ₹ *</p>
    <p>Using &amp;#x20B9; in the markup: * &#x20B9; *</p>
    <p>Using &amp;#8377; in the markup: * &#8377; *</p>

  </body>
</html>

这代表了许多不同的实验,但都没有成功。它引用的字体文件位于上面的html文件版本旁边。

字体本身似乎正在加载,因为pdf文件中的文本看起来像Arial。它只是缺少卢比符号。我不知道还能做什么——我正在拉一个unicode字体,在浏览器中查看时,html文件本身看起来很好。当我用chrome打印出来时,它看起来也很好,所以我认为问题肯定是飞碟。

我使用飞碟如下:

/usr/bin/java -Djava.awt.headless=true -cp .:$FS_PATH/acts_as_flying_saucer/lib/java/bin:$FS_PATH/acts_as_flying_saucer/lib/java/jar/minium.jar:$FS_PATH/acts_as_flying_saucer/lib/java/jar/itext-paulo-155.jar:$FS_PATH/acts_as_flying_saucer/lib/java/jar/core-renderer.jar:$FS_PATH/acts_as_flying_saucer/lib/java/jar/java-getopt-1.0.13.jar Xhtml2Pdf /home/max/font_test.html /home/max/font_test.pdf

有人能看出我做错了什么吗?


共1个答案

匿名用户

我在这里回答我自己的问题,以防其他人犯同样的错误。答案很简单——它不在字体中!事实证明,“R”符号是在2010年才发明的,所以不存在于许多Unicode字体文件中,包括我使用的那个。

它在浏览器中工作,因为浏览器(Chrome)会自动在其他字符集中查找它(没有我明确要求),并在Deja Vu Sans中找到它(LinuxChromium的后备)。

我更改了我的代码以使用较旧的(但仍然可以接受的)“”符号,但更合适的修复方法是包含一个实际具有现代卢比符号的字体。