Alles rund um die Programmierung mit Qt
-
patrik08
- Beiträge: 746
- Registriert: 27. Februar 2006 10:48
- Wohnort: DE Freiburg
Beitrag
von patrik08 »
ob execute oder startDetached ... geben kein zeichen .... jedoch direkt:
/* system("C:/_excel2sqlinsert/fop/fop.bat c:/asi.fo c:/asi.pdf"); */
gibt es in ca. eine sekunde 8 seite neue pdf....
Code: Alles auswählen
/* external java fop setup & convert */
bool Xslt_Proc::Fopjava( QString fofile , QString pdffile )
{
xslterrormsg = "Error...! start function....";
/* http://xmlgraphics.apache.org/fop/ only java api
http://mirror.switch.ch/mirror/apache/dist/xmlgraphics/fop/binaries/fop-0.92beta-bin-jdk1.4.zip */
javainstall = true;
/* javainstall = getenv("JAVA_HOME") != 0; */
if (javainstall) {
xslterrormsg = QString( "java_dir_found on dir = %1" ).arg( getenv("JAVA_HOME") );
QString app_sh_or_bat;
QStringList argumentlist;
argumentlist << fofile << "," << pdffile;
QProcess pdf_gen;
#if defined(Q_WS_WIN)
pdf_gen.setWorkingDirectory(QCoreApplication::applicationDirPath()+"/fop");
app_sh_or_bat = "fop.bat";
#else
/* mac linux */
if (!is_file("/opt/fop/fop")) {
xslterrormsg = "Error...! fop apache is not install... download a copy on http://xmlgraphics.apache.org/fop/ and copy to /opt/fop/";
return false;
}
pdf_gen.setWorkingDirectory("/opt/fop");
app_sh_or_bat = "./fop";
#endif
/* pdf_gen.startDetached( app_sh_or_bat , argumentlist ); */
pdf_gen.execute( app_sh_or_bat , argumentlist );
xslterrormsg = pdf_gen.readAll();
return true;
} else {
/* start java bin installer .... */
xslterrormsg = "Error...! Java ist not installed....(JAVA_HOME) not found..";
return false;
}
xslterrormsg = "Error...! end function....";
}
-
Goos
- Beiträge: 360
- Registriert: 17. August 2004 10:10
- Wohnort: Black Forest
Beitrag
von Goos »
Du machst das falsch
Goos
-
patrik08
- Beiträge: 746
- Registriert: 27. Februar 2006 10:48
- Wohnort: DE Freiburg
Beitrag
von patrik08 »
Endlich mit qt3 doc und qt4 doc und die mixed forum beispiele...
so geht es.... als qt4! (schade das die super Guru qt profi .. selten schreiben ob die gegebene beispiele qt3 oder qt4 sind...)
Code: Alles auswählen
void Gui_FrontPage::TestQprocessqt4()
{
QProcess process;
process.setReadChannelMode(QProcess::MergedChannels);
process.start("ipconfig" , QStringList() << "/all");
if (!process.waitForFinished()) {
msgb->information( this , "QT4 function test", process.errorString() );
} else {
msgb->information( this , "QT4 function test", process.readAll() );
}
}
-
macman
- Beiträge: 1738
- Registriert: 15. Juni 2005 13:33
- Wohnort: Gütersloh
-
Kontaktdaten:
Beitrag
von macman »
patrik08 hat geschrieben:Endlich mit qt3 doc und qt4 doc und die mixed forum beispiele...
Entscheide dich, Qt3 oder Qt4, beides geht nicht. Kein Wunder das du dich so schwer tust, wenn Du das beste aus beiden Welten nehmen willst.
patrik08 hat geschrieben:(schade das die super Guru qt profi .. selten schreiben ob die gegebene beispiele qt3 oder qt4 sind...)
Aus der Doku zu Qt4:
Code: Alles auswählen
QProcess gzip;
gzip.start("gzip", QStringList() << "-c");
if (!gzip.waitForStarted())
return false;
gzip.write("Qt rocks!");
gzip.closeWriteChannel();
if (!gzip.waitForFinished())
return false;
QByteArray result = gzip.readAll();
Ist es wirklich so schwer dieses Beispiel für ipconfig umzuschreiben?
Qt4 ist aktuell, 90% der hier geposteten Beiträge beziehen sich darauf, da schreibt man das nicht extra dabei.
-
patrik08
- Beiträge: 746
- Registriert: 27. Februar 2006 10:48
- Wohnort: DE Freiburg
Beitrag
von patrik08 »
trotzdem setWorkingDirectory(dir) geht bei mac und vieleicht auch linux aber auf dem window os gibt er fehler....
und so geht die erstellung von xsl-fo PDF dateien auf mac + win ...
Code: Alles auswählen
/* external java fop setup & convert */
bool Xslt_Proc::Fopjava( QString fofile , QString pdffile )
{
#ifndef JAVA_HOME
#define JAVA_HOME \
QString( "%1/" ).arg( getenv("JAVA_HOME") )
#endif
/* http://xmlgraphics.apache.org/fop/ only java api
http://mirror.switch.ch/mirror/apache/dist/xmlgraphics/fop/binaries/fop-0.92beta-bin-jdk1.4.zip */
QString bindirapp;
#if defined(Q_WS_WIN)
bindirapp = QCoreApplication::applicationDirPath()+"/fop/fop.bat";
#else /* mac linux */
/* test "which fop" */
bindirapp = "/opt/fop/fop";
#endif
if (!is_file(bindirapp)) {
xslterrormsg = "Error...! fop apache is not install... download a copy on http://xmlgraphics.apache.org/fop/ and copy to "+bindirapp;
return false;
}
if (JAVA_HOME.size() > 3) {
QProcess process;
process.setReadChannelMode(QProcess::MergedChannels);
process.start( bindirapp , QStringList() << fofile << pdffile);
if (!process.waitForFinished()) {
xslterrormsg = "Error...! Transormtation! \n" + process.errorString() + "\nprogramm " +bindirapp;
return false;
} else {
xslterrormsg = "Success Transormtation! \n" + process.readAll() + "\nprogramm " +bindirapp;
return true;
}
} else {
xslterrormsg = "Error...! JAVA is not install.....";
return false;
}
}