Hauptseite   Liste aller Namensbereiche   Klassenhierarchie   Alphabetische Liste   Übersicht   Auflistung der Dateien   Elemente eines Namensbereiches   Datenstruktur-Elemente   Datei-Elemente  

SflexPdfOutput Klassenreferenz

Diese Klasse kümmert sich um die Transformation von XML nach PDF. Mehr...

#include <SflexPdfOutput.hpp>

Abgeleitet von SflexXslOutput.

Klassendiagramm für SflexPdfOutput:

Inheritance graph
[Legende]
Zusammengehörigkeiten von SflexPdfOutput:

Collaboration graph
[Legende]
Aufstellung aller Elemente

Ö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...

SflexXsltsflexXslt_
 Der XSL-Transformer. Mehr...

SflexPdfsflexPdf_
 Die PDF-Engine. Mehr...

std::map< std::string, std::string > styleParamList_
 Der Container mit den Parametern für das Stylesheet. Mehr...


Ausführliche Beschreibung

Diese Klasse kümmert sich um die Transformation von XML nach PDF.


Beschreibung der Konstruktoren und Destruktoren

SflexPdfOutput::SflexPdfOutput  
 

00027     : isSuccess_( false ),
00028       sflexXslt_( 0 ),
00029       sflexPdf_ ( 0 )
00030 {
00031 
00032 }

SflexPdfOutput::~SflexPdfOutput   [virtual]
 

00037 {
00038     delete sflexXslt_;
00039     delete sflexPdf_;
00040 }


Dokumentation der Elementfunktionen

const std::string SflexPdfOutput::getContentType   const [virtual]
 

Liefert den Content-Type des Ausgabe-Objektes.

Rückgabe:
den Content-Type

Implementiert SflexXslOutput.

00122 {
00123     return "application/pdf";
00124 }

const std::string SflexPdfOutput::getResult   const [virtual]
 

Liefert das Ergebnis des jeweiligen Arbeiters.

Im Falle eines Fehlers liefert diese Methode auch die Fehlermeldung.

Rückgabe:
das Ergebnis.

Implementiert SflexWorker.

00113 {
00114     return resultStream_.str();
00115 
00116 }

bool SflexPdfOutput::isSuccess   const [virtual]
 

Liefert den Status des Arbeiters.

Rückgabe:
der Status

Implementiert SflexWorker.

00130 {
00131     return isSuccess_;
00132 }

void SflexPdfOutput::setStyleParam std::string    key,
std::string    value
[virtual]
 

Setzt Parameter im Stylesheet.

Parameter:
key  der Name des Parameters
value  der Inhalt des Paramters

Implementiert SflexXslOutput.

00047 {
00048     styleParamList_[ name ] = value;
00049     return;
00050 }

void SflexPdfOutput::work std::string    xmlFileName,
std::string    xslFileName
[virtual]
 

Transformiert eine Datei.

Parameter:
xmlFileName  der Pfad zur XML-Datei
xslFileName  der Pfad zur XSLT-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 }


Dokumentation der Datenelemente

bool SflexPdfOutput::isSuccess_ [private]
 

Der Status des Objektes.

std::ostringstream SflexPdfOutput::resultStream_ [private]
 

Das Resultat.

SflexPdf* SflexPdfOutput::sflexPdf_ [private]
 

Die PDF-Engine.

SflexXslt* SflexPdfOutput::sflexXslt_ [private]
 

Der XSL-Transformer.

std::map< std::string, std::string > SflexPdfOutput::styleParamList_ [private]
 

Der Container mit den Parametern für das Stylesheet.


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien:
Erzeugt am Fri Apr 12 10:56:57 2002 für SfleX von doxygen1.2.14 geschrieben von Dimitri van Heesch, © 1997-2002