#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.
|
1.2.14 geschrieben von Dimitri van Heesch,
© 1997-2002