Details
-
Type:
Sub-task
-
Status: OPEN
-
Priority:
Critical
-
Resolution: Unresolved
-
Affects Version/s: 2.8.1, 2.9.0
-
Fix Version/s: None
-
Component/s: Calendar Summary, Calendar Widget, Internationalization
-
Labels:None
Description
To show the bug:
1. Add a event to Calendar tool with a non-latin1(Chinese, in my case) title. You can just copy some Chinese characters from zh.wikipedia.org
2. In the view of "Calendar by Week", "Calendar by Month" and "List of Events", there are three different type of PDF export. All of them cannot render Chinese characters correctly. Screen shots can be found in attachment.
Patch:
In folder calendar/calendar-impl/impl
1. Modify sakai.properties
Add an entry: fop.pdf.default.font=AR PL UMing CN
"AR PL UMing CN" is a Chinese font. In Linux, it can be installed via "ttf-arphic-uming'
Calendar originally upload "DejaVuSans" font, if admin wants to keep this setting, just set fop.pdf.default.font=DejaVuSans
2. Modify pom.xml
Update Apache FOP version from 0.20.5 to 1.0
3. Modify src/config/schedule.xsl, src/config/schedulemm.xsl, srclist.xsl
Set fo:root font to DEFAULT_FONT
Adjust some code to meet the demand of FOP 1.0 which is more strict on XSL format.
4. Add src/config/userconfig.xml
Let FOP auto detect System fonts.
5. Modify src/java/org/sakaiproject/calendar/impl/BaseCalendarService.java
Update the FOP related code to couple with FOP 1.0.
6. Delete folder src/config/fonts
This folder used to contain the information of "Dejavu" font which is needed by previous version of FOP.
Since the font can be auto detected in OS's font folder, It's no need anymore.
I modify the code based on Sakai 2.8.1. The source and "diff" are in the attachment(without sakai.properties, and diff for deleted files are ommitted).
Also, you can see the effect after fix the bug as attachment