#include <SflexPdfOutput.hpp>
Abgeleitet von SflexXslOutput.
Klassendiagramm für SflexPdfOutput:
Öffentliche Datenelemente | |
SflexPdfOutput () | |
virtual | ~SflexPdfOutput () |
virtual void | setStyleParam (std::string key, std::string value) |
Setzt Parameter im Stylesheet. Mehr... | |
virtual void | work (std::string xmlFileName, std::string xslFileName) |
Transformiert eine Datei. Mehr... | |
virtual const std::string | getResult () const |
Liefert das Ergebnis des jeweiligen Arbeiters. Mehr... | |
virtual const std::string | getContentType () const |
Liefert den Content-Type des Ausgabe-Objektes. Mehr... | |
virtual bool | isSuccess () const |
Liefert den Status des Arbeiters. Mehr... | |
Private Attribute | |
bool | isSuccess_ |
Der Status des Objektes. Mehr... | |
std::ostringstream | resultStream_ |
Das Resultat. Mehr... | |
SflexXslt * | sflexXslt_ |
Der XSL-Transformer. Mehr... | |
SflexPdf * | sflexPdf_ |
Die PDF-Engine. Mehr... | |
std::map< std::string, std::string > | styleParamList_ |
Der Container mit den Parametern für das Stylesheet. Mehr... |
|
00027 : isSuccess_( false ), 00028 sflexXslt_( 0 ), 00029 sflexPdf_ ( 0 ) 00030 { 00031 00032 } |
|
00037 { 00038 delete sflexXslt_; 00039 delete sflexPdf_; 00040 } |
|
Liefert den Content-Type des Ausgabe-Objektes.
Implementiert SflexXslOutput.
00122 { 00123 return "application/pdf"; 00124 } |
|
Liefert das Ergebnis des jeweiligen Arbeiters. Im Falle eines Fehlers liefert diese Methode auch die Fehlermeldung.
Implementiert SflexWorker.
00113 { 00114 return resultStream_.str(); 00115 00116 } |
|
Liefert den Status des Arbeiters.
Implementiert SflexWorker.
00130 { 00131 return isSuccess_; 00132 } |
|
Setzt Parameter im Stylesheet.
Implementiert SflexXslOutput.
00047 { 00048 styleParamList_[ name ] = value; 00049 return; 00050 } |
|
Transformiert eine Datei.
Implementiert SflexXslOutput.
00057 { 00058 using sflexhelper::readFile; 00059 using sflexhelper::stripWhiteSpace; 00060 using std::string; 00061 00062 string xml = readFile( xmlFileName, resultStream_ ); 00063 string xslt = readFile( xslFileName, resultStream_ ); 00064 00065 bool isEmpty = ( xml.empty() || xslt.empty() ); 00066 if ( isEmpty ) { 00067 resultStream_ << "Pdf Output: kein Inhalt!\n"; 00068 return; 00069 } 00070 00071 xml = stripWhiteSpace( xml ); 00072 00073 SflexWorkerFactory *wF = SflexWorkerFactory::getFactory(); 00074 sflexXslt_ = wF->makeXslt(); 00075 if ( !sflexXslt_ ) { 00076 resultStream_ << wF->getError(); 00077 return; 00078 } 00079 00080 sflexXslt_->work( styleParamList_, 00081 xml, 00082 xslt ); 00083 if ( !sflexXslt_->isSuccess() ) { 00084 resultStream_ << sflexXslt_->getResult(); 00085 return; 00086 } 00087 00088 string latex = sflexXslt_->getResult(); 00089 00090 sflexPdf_ = wF->makePdf(); 00091 00092 if ( !sflexPdf_ ) { 00093 resultStream_ << wF->getError(); 00094 return; 00095 } 00096 00097 sflexPdf_->work( latex ); 00098 if ( !sflexPdf_->isSuccess() ) { 00099 resultStream_ << sflexPdf_->getResult(); 00100 return; 00101 } 00102 00103 resultStream_ << sflexPdf_->getResult(); 00104 isSuccess_ = true; 00105 00106 return; 00107 } |
|
Der Status des Objektes.
|
|
Das Resultat.
|
|
Die PDF-Engine.
|
|
Der XSL-Transformer.
|
|
Der Container mit den Parametern für das Stylesheet.
|