Development/Tutorials/Printing Hello World

    From KDE TechBase
    Revision as of 14:57, 5 January 2007 by Milliams (talk | contribs) (→‎The code: Consistent indentation)
    The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

    The mission

    Print Hello World on your printer.

    The KDE version

    This code will work for KDE 3 as for KDE 4.

    The code

    1. include <kprinter.h>
    2. include <qpainter.h>
    3. include <kapplication.h>
    4. include <kaboutdata.h>
    5. include <kmessagebox.h>
    6. 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 app;
    
     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
     }
    

    }

    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 and CMake

    CMakeLists.txt

    find_package(KDE4 REQUIRED) include_directories( ${KDE4_INCLUDES} ) kde4_add_executable(printhelloworld printtest.cpp) target_link_libraries(printhelloworld ${KDE4_KDEPRINT_LIBS})

    Make and Run

    Then do:

    cmake .
    make
    ./printhelloworld
    

    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

    Tip
    Note: This page deals with content related to KDE 3. If you are developing for KDE 4, this information might not be valid anymore.
    Tip
    Note: This page is about KDE 4. It isn't applicable for KDE 3 development.