Uploaded image for project: 'Sakai'
  1. Sakai
  2. SAK-21908

Non-latin Chinese/Japanese characters are not supported in PDF file



    • Yes


      Some tools provide function of exporting PDF. Most of these are not i18n friendly (not render non-latin character properly). Some of these tools use Apache FOP to render PDF via XSLT and XSL-FO. Yet, a pdf with special characters (Chinese, in my case) would not shown properly. By default, PDF files support 14 fonts which doesn't contain Asian chars[1]. Every Asian chars is replaced by '#'.

      So, I think it's very important to allow administrator to set a "default font" to show this chars, may be an entry in sakai.properties would meet the need.

      I seach the code and find 4 tools use Apache FOP: calendar, wiki, site-manage and sitestats. And fix site-manage and calendar tool in local repository.
      Follows are the main change:

      1. Use FOP 1.0 instead of previous FOP versions (like 0.20.5). This will bring the new feature of detect System fonts automatically. With out this feature, admin must compile a xml file to represent font (like calendar tool used to be).

      2. Use a dummy font "DEFAULT_FONT" as "font-family" at <fo:root> in XSL file. This value would be replaced by a custom value "fop.pdf.default.font" in sakai.properties. If this value is not set, then the default PDF font "Helvetica" will be used. So, this change wouldn't affect the latin-1 users and even the entry is optional if latin1 is enough.

      3. Modify the XSL file to meet FOP 1.0 which check XSL file more strictly than previous versions

      Now, I have made the four tools I mentioned before to work properly in Chinese. I'll create 4 sub-task to make the bug more clearly.

      [1] http://xmlgraphics.apache.org/fop/1.0/fonts.html#Base-14+Fonts

      Gliffy Diagrams



            Issue Links



                  Unassigned Unassigned
                  gaojun Gao Jun
                  0 Vote for this issue
                  5 Start watching this issue



                    Git Integration