import mircoders.entity.*;
import mircoders.storage.*;
+//for pdf production
+import org.apache.fop.apps.* ;
+import org.xml.sax.InputSource;
+import org.xml.sax.XMLReader;
+import org.apache.log.*;
public class ProducerContent extends Producer {
private String contentTemplate=MirConfig.getProp("Producer.Content.Template");
-
+ private String contentPrintableTemplate=MirConfig.getProp("Producer.PrintableContent.Template");
+ private String html2foStyleSheetName=MirConfig.getProp("Producer.PrintableContent.html2foStyleSheetName");
+ private String generateFO=MirConfig.getProp("GenerateFO");
+ private String generatePDF=MirConfig.getProp("GeneratePDF");
+ private String producerStorageRoot=MirConfig.getProp("Producer.StorageRoot");
+ private Logger fopLog=null;
+ private String templateDir = MirConfig.getPropWithHome("HTMLTemplateProcessor.Dir");
public static void main(String argv[]){
/**
* Why are we reloading the config here?
String whereClause = " ";
String orderBy = " ";
String htmlFileName = null;
+ String foFileName = null;
+ String pdfFileName = null;
EntityContent currentContent;
EntityList batchEntityList;
EntityUsers userEntity=null;
String month = date.substring(4,6);
htmlFileName = producerDocRoot + "/" + year + "/" + month + "/" +
currentContent.getValue("id") + ".shtml";
+
+
+
//produce html
boolean retVal = produce(contentTemplate, htmlFileName, mergeData, htmlout);
if ( retVal ) currentContent.setProduced(true);
-
+
+ //produce xsl:fo and pdf version(if desired)
+ if (generateFO.toLowerCase().equals("yes")){
+ foFileName = producerDocRoot + "/" + year + "/" + month + "/" + currentContent.getValue("id") + ".fo";
+ boolean foRetVal = produce(contentPrintableTemplate, foFileName, mergeData, htmlout);
+
+ if (generatePDF.toLowerCase().equals("yes")){
+ pdfFileName = producerStorageRoot + producerDocRoot +"/" + year + "/" + month + "/" + currentContent.getValue("id") + ".pdf";
+ Driver driver = new Driver();
+
+ Hierarchy hierarchy = Hierarchy.getDefaultHierarchy();
+ fopLog = hierarchy.getLoggerFor("fop");
+ fopLog.setPriority(Priority.WARN);
+
+ driver.setLogger(fopLog);
+ driver.setRenderer(Driver.RENDER_PDF);
+ File foFile=new File(producerStorageRoot + foFileName);
+ File html2foStyleSheet=new File(templateDir+"/"+html2foStyleSheetName);
+ InputHandler inputHandler = new XSLTInputHandler(foFile, html2foStyleSheet);
+ XMLReader parser = inputHandler.getParser();
+ driver.setOutputStream(new FileOutputStream(pdfFileName));
+ driver.render(parser, inputHandler.getInputSource());
+ }
+ }
}
catch(Exception e)
{
+ currentContent.getId()+", skipping it :: "+e.toString();
logHTML(htmlout, errorText);
theLog.printError(errorText);
+ e.printStackTrace();
}
pageCount++;
}//for