Index: site-manage-tool/tool/src/java/org/sakaiproject/site/tool/SiteInfoToolServlet.java
===================================================================
--- site-manage-tool/tool/src/java/org/sakaiproject/site/tool/SiteInfoToolServlet.java (revision 109333)
+++ site-manage-tool/tool/src/java/org/sakaiproject/site/tool/SiteInfoToolServlet.java (revision 109335)
@@ -25,7 +25,6 @@
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
-import java.io.File;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
@@ -40,21 +39,26 @@
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.sax.SAXResult;
import javax.xml.transform.stream.StreamSource;
-import org.apache.avalon.framework.logger.ConsoleLogger;
+import org.apache.avalon.framework.configuration.Configuration;
+import org.apache.avalon.framework.configuration.DefaultConfigurationBuilder;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.fop.apps.Driver;
-import org.apache.fop.messaging.MessageHandler;
-
+import org.apache.fop.apps.FOUserAgent;
+import org.apache.fop.apps.Fop;
+import org.apache.fop.apps.FopFactory;
+import org.apache.fop.fonts.substitute.FontQualifier;
+import org.apache.fop.fonts.substitute.FontSubstitution;
+import org.apache.fop.fonts.substitute.FontSubstitutions;
+import org.apache.fop.apps.MimeConstants;
import org.sakaiproject.authz.cover.AuthzGroupService;
import org.sakaiproject.authz.cover.SecurityService;
+import org.sakaiproject.component.cover.ServerConfigurationService;
import org.sakaiproject.site.api.Site;
import org.sakaiproject.site.cover.SiteService;
import org.sakaiproject.site.util.Participant;
@@ -373,9 +377,10 @@
* @param xslFileName
* XSL file to use to translate the DOM document to FOP
*/
+ @SuppressWarnings("unchecked")
protected void generatePDF(Document doc, OutputStream streamOut)
{
- String xslFileName = "participants-all-attrs.xsl";
+ String xslFileName = "participants-all-attrs.xsl";
Locale currentLocale = rb.getLocale();
if (currentLocale!=null){
String fullLocale = currentLocale.toString();
@@ -388,34 +393,39 @@
}
}
}
-
- Driver driver = new Driver();
-
- org.apache.avalon.framework.logger.Logger logger = new ConsoleLogger(ConsoleLogger.LEVEL_ERROR);
- MessageHandler.setScreenLogger(logger);
- driver.setLogger(logger);
-
- driver.setOutputStream(streamOut);
- driver.setRenderer(Driver.RENDER_PDF);
-
- try
+ String configFileName = "userconfig.xml";
+ DefaultConfigurationBuilder cfgBuilder = new DefaultConfigurationBuilder();
+ try
{
+ Configuration cfg = cfgBuilder.build(getClass().getClassLoader().getResourceAsStream(configFileName));
+
+ FopFactory fopFactory = FopFactory.newInstance();
+ fopFactory.setUserConfig(cfg);
+ fopFactory.setStrictValidation(false);
+ FOUserAgent foUserAgent = fopFactory.newFOUserAgent();
+ if (!StringUtils.isEmpty(ServerConfigurationService.getString("pdf.default.font"))) {
+ // this allows font substitution to support i18n chars in PDFs - SAK-21909
+ FontQualifier fromQualifier = new FontQualifier();
+ fromQualifier.setFontFamily("DEFAULT_FONT");
+ FontQualifier toQualifier = new FontQualifier();
+ toQualifier.setFontFamily(ServerConfigurationService.getString("pdf.default.font", "Helvetica"));
+ FontSubstitutions result = new FontSubstitutions();
+ result.add(new FontSubstitution(fromQualifier, toQualifier));
+ fopFactory.getFontManager().setFontSubstitutions(result);
+ }
+ Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, foUserAgent, streamOut);
InputStream in = getClass().getClassLoader().getResourceAsStream(xslFileName);
- if(in==null)
- in = getClass().getClassLoader().getResourceAsStream("participants-all-attrs.xsl");
-
Transformer transformer = transformerFactory.newTransformer(new StreamSource(in));
+ transformer.setParameter("titleName", rb.getString("sitegen.siteinfolist.title.name"));
+ transformer.setParameter("titleSection", rb.getString("sitegen.siteinfolist.title.section"));
+ transformer.setParameter("titleId", rb.getString("sitegen.siteinfolist.title.id"));
+ transformer.setParameter("titleCredit", rb.getString("sitegen.siteinfolist.title.credit"));
+ transformer.setParameter("titleRole", rb.getString("sitegen.siteinfolist.title.role"));
+ transformer.setParameter("titleStatus", rb.getString("sitegen.siteinfolist.title.status"));
Source src = new DOMSource(doc);
-
- // Kludge: Xalan in JDK 1.4/1.5 does not properly resolve java classes
- // (http://xml.apache.org/xalan-j/faq.html#jdk14)
- // Clean this up in JDK 1.6 and pass ResourceBundle/ArrayList parms
- //transformer.setParameter("dayNames0", dayNames[0]);
- transformer.transform(src, new SAXResult(driver.getContentHandler()));
- }
-
- catch (TransformerException e)
+ transformer.transform(src, new SAXResult(fop.getDefaultHandler()));
+ } catch (Exception e)
{
e.printStackTrace();
log.warn(this+".generatePDF(): " + e);
Index: site-manage-tool/tool/src/config/userconfig.xml
===================================================================
--- site-manage-tool/tool/src/config/userconfig.xml (revision 0)
+++ site-manage-tool/tool/src/config/userconfig.xml (revision 109335)
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
Property changes on: site-manage-tool/tool/src/config/userconfig.xml
___________________________________________________________________
Added: svn:eol-style
+ native
Index: site-manage-tool/tool/src/config/participants-all-attrs.xsl
===================================================================
--- site-manage-tool/tool/src/config/participants-all-attrs.xsl (revision 109333)
+++ site-manage-tool/tool/src/config/participants-all-attrs.xsl (revision 109335)
@@ -9,8 +9,15 @@
+
+
+
+
+
+
+
-
+
@@ -24,7 +31,7 @@
-
+
-
@@ -108,7 +115,7 @@
-
+
@@ -117,32 +124,32 @@
-
+
-
+
-
+
-
+
-
+
-
+
Index: site-manage-tool/tool/src/bundle/printParticipant.properties
===================================================================
--- site-manage-tool/tool/src/bundle/printParticipant.properties (revision 109333)
+++ site-manage-tool/tool/src/bundle/printParticipant.properties (revision 109335)
@@ -1,4 +1,10 @@
## print site participant in PDF file
participant_pdf_title=Participant List for site {0}
sitegen.siteinfolist.active=Active
-sitegen.siteinfolist.inactive=Inactive
\ No newline at end of file
+sitegen.siteinfolist.inactive=Inactive
+sitegen.siteinfolist.title.name=NAME
+sitegen.siteinfolist.title.section=SECTION
+sitegen.siteinfolist.title.id=ID
+sitegen.siteinfolist.title.credit=CR
+sitegen.siteinfolist.title.role=ROLE
+sitegen.siteinfolist.title.status=STATUS
\ No newline at end of file
Index: site-manage-tool/tool/src/bundle/printParticipant_zh_CN.properties
===================================================================
--- site-manage-tool/tool/src/bundle/printParticipant_zh_CN.properties (revision 0)
+++ site-manage-tool/tool/src/bundle/printParticipant_zh_CN.properties (revision 109335)
@@ -0,0 +1,10 @@
+## print site participant in PDF file
+participant_pdf_title={0} \u6210\u5458\u5217\u8868
+sitegen.siteinfolist.active=\u6fc0\u6d3b
+sitegen.siteinfolist.inactive=\u672a\u6fc0\u6d3b
+sitegen.siteinfolist.title.name=\u59d3\u540d
+sitegen.siteinfolist.title.section=\u5c0f\u7ec4
+sitegen.siteinfolist.title.id=ID
+sitegen.siteinfolist.title.credit=\u5b66\u5206
+sitegen.siteinfolist.title.role=\u89d2\u8272
+sitegen.siteinfolist.title.status=\u72b6\u6001
\ No newline at end of file
Property changes on: site-manage-tool/tool/src/bundle/printParticipant_zh_CN.properties
___________________________________________________________________
Added: svn:eol-style
+ native
Index: site-manage-tool/tool/pom.xml
===================================================================
--- site-manage-tool/tool/pom.xml (revision 109333)
+++ site-manage-tool/tool/pom.xml (revision 109335)
@@ -22,8 +22,7 @@
org.sakaiproject.basiclti
basiclti-api
- ${sakai.basiclti.version}
-
+
org.sakaiproject.kernel
sakai-kernel-api
@@ -47,22 +46,17 @@
org.sakaiproject.announcement
sakai-announcement-api
- ${sakai.announcement.version}
provided
org.sakaiproject.common
archive-api
- ${sakai.common.version}
provided
org.sakaiproject.common
sakai-import-util
${sakai.common.version}
-
org.sakaiproject.edu-services.course-management
@@ -71,7 +65,6 @@
org.sakaiproject.mock
sakai-mock
- ${sakai.sakai-mock.version}
test
@@ -83,16 +76,6 @@
sakai-velocity-tool
- avalon-framework
- avalon-framework
- 20020627
-
-
- batik
- batik
- 1.5-fop-0.20-5
-
-
commons-beanutils
commons-beanutils
1.7.0
@@ -102,9 +85,9 @@
commons-logging
- fop
+ org.apache.xmlgraphics
fop
- 0.20.5
+ 1.0
javax.servlet
@@ -130,7 +113,6 @@
org.springframework
spring-test
- 2.5.6.SEC01
test