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

SflexPdfWithPdflatex Klassenreferenz

Diese Klasse erzeugt eine PDF-Datei. Mehr...

#include <SflexPdfWithPdflatex.hpp>

Abgeleitet von SflexPdf.

Klassendiagramm für SflexPdfWithPdflatex:

Inheritance graph
[Legende]
Zusammengehörigkeiten von SflexPdfWithPdflatex:

Collaboration graph
[Legende]
Aufstellung aller Elemente

Öffentliche Datenelemente

 SflexPdfWithPdflatex ()
virtual ~SflexPdfWithPdflatex ()
virtual void work (std::string latex)
 Veranlaßt die Erzeugung von PDF. Mehr...

virtual const std::string getResult () const
 Liefert das Ergebnis des jeweiligen Arbeiters. Mehr...

virtual bool isSuccess () const
 Liefert den Status des Arbeiters. Mehr...


Private Attribute

bool isSuccess_
 der Status. Mehr...

std::ostringstream resultStream_
 das Ergebnis. Mehr...


Ausführliche Beschreibung

Diese Klasse erzeugt eine PDF-Datei.

Sie benutzt dazu das Programm 'pdflatex', das auf dem Zielrechner ausführbar sein muß. Der Pfad zu 'pdflatex' muß in der Konfigurationsdatei angegeben werden.


Beschreibung der Konstruktoren und Destruktoren

SflexPdfWithPdflatex::SflexPdfWithPdflatex  
 

00027     : isSuccess_(false)
00028 {
00029     
00030 }

SflexPdfWithPdflatex::~SflexPdfWithPdflatex   [virtual]
 

00035 {
00036     
00037 }


Dokumentation der Elementfunktionen

const std::string SflexPdfWithPdflatex::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.

00103 {
00104     return resultStream_.str();
00105 }

bool SflexPdfWithPdflatex::isSuccess   const [virtual]
 

Liefert den Status des Arbeiters.

Rückgabe:
der Status

Implementiert SflexWorker.

00111 {
00112     return isSuccess_;
00113 }

void SflexPdfWithPdflatex::work std::string    latex [virtual]
 

Veranlaßt die Erzeugung von PDF.

Dazu wird eine LaTeX-Quelle (als string) benötigt, aus der dann die PDF-Datei erzeugt wird.

Parameter:
latex  die LaTeX-Quelle

Implementiert SflexPdf.

00043 {
00044     using std::string;
00045     using sflexhelper::changeDir;
00046     using std::ifstream;
00047     using std::ofstream;
00048     using std::system;
00049     using std::ostringstream;
00050     using std::istringstream;
00051     
00052     SflexConfig *config = SflexConfig::getConfig();
00053        
00054     bool b = changeDir( config->getValue( "sflex", "temp_dir" ) );
00055     if ( !b ) {
00056         resultStream_ << "Pdf with pdflatex: "
00057                       << "konnte Verzeichnis nicht wechseln!\n";
00058         isSuccess_ = false;
00059         return;
00060     }
00061 
00062     ofstream tex;
00063     tex.open( "sflexPDF.tex" );
00064     istringstream texStream( latex );
00065     tex << texStream.rdbuf();
00066     tex.close();
00067     
00068     string path = config->getValue( "sflex", "pdflatex" );
00069     if ( path.empty() ) {
00070         resultStream_ << "Pdf with pdflatex: kein Pfad zu pdflatex!\n";
00071         isSuccess_ = false;
00072         return;
00073     }
00074     string command = path
00075         + " --interaction nonstopmode sflexPDF.tex > /dev/null";
00076         
00077     int flag = system( command.c_str() );
00078     
00079     if ( flag != 0 ) {
00080         resultStream_ << "Pdf with pdflatex: Fehler beim TeX-Lauf!\n";
00081         isSuccess_ = false;
00082         return;
00083     }
00084 
00085     ifstream pdf;
00086     pdf.open( "sflexPDF.pdf" );
00087     if (!pdf ) {
00088         resultStream_ << "Pdf with pdflatex: kann pdf-Datei nicht öffnen\n";
00089         isSuccess_ = false;
00090         return;
00091     }
00092     resultStream_ << pdf.rdbuf();
00093     pdf.close();
00094 
00095     isSuccess_ = true;
00096     return ;
00097 }


Dokumentation der Datenelemente

bool SflexPdfWithPdflatex::isSuccess_ [private]
 

der Status.

std::ostringstream SflexPdfWithPdflatex::resultStream_ [private]
 

das Ergebnis.


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