Development/Tutorials/Printing Hello World: Difference between revisions

    From KDE TechBase
    m (→‎The code: Consistent indentation)
    (don't need to mark with {{kde4}} anymore. category: is enough)
    Line 64: Line 64:
    =See also=
    =See also=
    * Point your konqueror to [http://developer.kde.org/documentation/library/cvs-api/kdelibs-apidocs/kdeprint/html/classKPrinter.html kde:kprinter]
    * Point your konqueror to [http://developer.kde.org/documentation/library/cvs-api/kdelibs-apidocs/kdeprint/html/classKPrinter.html kde:kprinter]
    {{KDE3}}{{KDE4}}
     
    [[Category:C++]]
    [[Category:C++]]

    Revision as of 17:34, 7 January 2007

    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