(sorry, sorry) |
|||
| Line 1: | Line 1: | ||
| − | [ | + | =The mission= |
| + | Print '''Hello World''' on your printer. | ||
| + | |||
| + | =The KDE version= | ||
| + | This code will work for KDE 3 as for KDE 4. | ||
| + | |||
| + | =The code= | ||
| + | <highlightSyntax language="cpp"> | ||
| + | #include <kprinter.h> | ||
| + | #include <qpainter.h> | ||
| + | #include <kapplication.h> | ||
| + | #include <kaboutdata.h> | ||
| + | #include <kmessagebox.h> | ||
| + | #include <kcmdlineargs.h> | ||
| + | |||
| + | /* | ||
| + | This prints Hello World on your printer | ||
| + | */ | ||
| + | |||
| + | int main(int argc, char *argv[]) | ||
| + | { | ||
| + | KAboutData aboutData( "test", "test", | ||
| + | "1.0", "test", KAboutData::License_GPL, | ||
| + | "(c) 2006" ); | ||
| + | KCmdLineArgs::init( argc, argv, &aboutData ); | ||
| + | KApplication khello; | ||
| + | |||
| + | KPrinter job; | ||
| + | job.setFullPage( true ); | ||
| + | if ( job.setup() ) | ||
| + | { | ||
| + | QPainter painter; | ||
| + | painter.begin( &job ); | ||
| + | painter.drawText(100,100,"Hello World"); | ||
| + | painter.end(); | ||
| + | // this makes the print job start | ||
| + | } | ||
| + | } | ||
| + | </highlightSyntax> | ||
| + | |||
| + | =Explanation= | ||
| + | You need a KDE instance to print, because this instance stores your configuration, including your printer configuration. You create one by instanciating the KApplication class. | ||
| + | |||
| + | =How to compile= | ||
| + | ==With KDE 4== | ||
| + | Quite complicated: | ||
| + | gcc print.cpp -o print -I/home/kde-devel/qt-unstable/include/Qt \ | ||
| + | -I/home/kde-devel/qt-unstable/include/Qt-Core \ | ||
| + | -I/home/kde-devel/qt-unstable/include -I/home/kde-devel/kde/include \ | ||
| + | -L/home/kde-devel/kde/lib -L/home/kde-devel/qt-unstable/lib -lkdeui \ | ||
| + | -lkdecore -ldl -lkdeprint | ||
| + | |||
| + | ==With KDE 3== | ||
| + | Quite easy: | ||
| + | gcc printtest.cpp -o print -I/usr/lib/qt3/include -I/opt/kde3/include \ | ||
| + | -L/opt/kde3/lib -L/usr/lib/qt3/lib -lqt-mt -lkdeprint | ||
| + | |||
| + | =See also= | ||
| + | * Point your konqueror to [http://developer.kde.org/documentation/library/cvs-api/kdelibs-apidocs/kdeprint/html/classKPrinter.html kde:kprinter] | ||
Contents |
Print Hello World on your printer.
This code will work for KDE 3 as for KDE 4.
<highlightSyntax language="cpp">
/* This prints Hello World on your printer
int main(int argc, char *argv[]) {
KAboutData aboutData( "test", "test",
"1.0", "test", KAboutData::License_GPL,
"(c) 2006" );
KCmdLineArgs::init( argc, argv, &aboutData );
KApplication khello;
KPrinter job;
job.setFullPage( true );
if ( job.setup() )
{
QPainter painter;
painter.begin( &job );
painter.drawText(100,100,"Hello World");
painter.end();
// this makes the print job start
}
} </highlightSyntax>
You need a KDE instance to print, because this instance stores your configuration, including your printer configuration. You create one by instanciating the KApplication class.
Quite complicated:
gcc print.cpp -o print -I/home/kde-devel/qt-unstable/include/Qt \ -I/home/kde-devel/qt-unstable/include/Qt-Core \ -I/home/kde-devel/qt-unstable/include -I/home/kde-devel/kde/include \ -L/home/kde-devel/kde/lib -L/home/kde-devel/qt-unstable/lib -lkdeui \ -lkdecore -ldl -lkdeprint
Quite easy:
gcc printtest.cpp -o print -I/usr/lib/qt3/include -I/opt/kde3/include \ -L/opt/kde3/lib -L/usr/lib/qt3/lib -lqt-mt -lkdeprint