
CPDF
Merily see PDFs without abusing your RAM.

A Qt excersise pdf viewer which features most basic features found in most other viewers.


Features:
    Text and image extraction with adjustable rectangle
    State preservation
    Recent files
    Autoreloading
    Presentation and fullscreen modes
    Basic pixmap caching. Helps considerably in the presentation mode.     

Installation:
    Make sure you have the development files for Qt4 version 4.6 at least and poppler-qt4. If these packages are not installed in their usual places edit the cpdf.pro file.
    tar -xjvf cpdf-x.x.x.tbz2
    qmake prefix=/path/to/where/you/want/it   # default's to /usr/local
    make
    make install    # will need write permissions on the prefix folder
    

    
Actions:
    Normal mode:
        open document         :    Ctrl+O
        close document        :    Ctrl+W
        reload document       :    Ctrl+R
        quit                  :    Ctrl+Q 
        print                 :    Ctrl+P
        find                  :    Ctrl+F 
        find next             :    F3
        find previous         :    Shift+F3
        go to page            :    Ctrl+G 
        next screen/page      :    Page Down, Space
        previous page         :    Page Up
        go to fist page       :    Home
        go to last page       :    End
        next line             :    Arrow Down, mouse wheel down
        previous line         :    Arrow Up, mouse wheel up
        zoom in               :    Ctrl+=, Ctrl+mouse wheel down
        zoom out              :    Ctrl+-, Ctrl+mouse wheel up
        zoom to original size :    Ctrl+0
        focus on zoom line    :    Ctrl+U
        hide/show toolbars    :    Ctrl+H
        fullscreen            :    F7
        exit fullscreen       :    F7, Escape, Q
        enter presentation    :    F5
        

    Presentation mode:
        start presentation    :    F5
        exit presentation     :    F5, Escape, Q, X
        next slide            :    Space, mouse wheel down, Page Down, Arrow Down, Arrow Right, N
        previous slide        :    Backspace, mouse wheel up, Page Up, Arrow Up, Arrow Left, P
        first slide           :    Home
        last  slide           :    End





Setting:
    
    ~/.config/cpdf/cpdf.conf
    /etc/cpdf/cpdf.conf
    
    General:
        separator_pt          :    The space between pages pixels
        zoom                  :    Default zoom factor
        ref_page              :    The page which serves as model for size, this is option is a workaround and will hopefully disappear.
        past_days             :    Delete the info for the files which have not been opened for so long
        page_cache            :    The size of the cache in page count //cache not used at the moment
        zstep                 :    The zoom factor step for the 'zoom in' and 'zoom out' shortcuts
        timer                 :    The time in ms between reload attempts
        last_folder           :    The folder which the file dialog will open
        start_counting        :    The first page will shown with this number in the page box
        hist_size             :    The number of recently used files shown in the open menu
        history               :    The full paths of the recently used files
        track_hbar,track_vbar :    Take the values of the scrollbars while moving or only when they stop


Story:
    Okular was my viewer of choice for long time. After long enough I suffered poor performance when many pdf files were opened.  The whole computer was crawling after a few hours of intensive work. While I don't have the very fastest machine it is not bad at all, C2D processor on 2.4GHz with 4MB cache, 4GB DDR2 800MHz and Nvidia GT8600M with 256MB GDDR3 all held by a intel santa rosa chipset.
    I saw some arguments on between kde developers and xorg developers blaming each other. Time was passing, kde versions and hopes were coming and fading away. Frustration was piled up and I decided I'll ditch okular in the search for lighter viewer. Eventually I settled on xpdf. It was quick and had basic utility but of course not all was honey and butter. To issues I still remember: I couldn't find a way to make the table of contents not show; Every time a new file was opened there was the routine excersise of shrinking the table, resizing the window, zooming the file to reasonable level and centering the content. 
    This was tiresome and not long has passed since I left okular before one bright sleepless night I decided to have go at writing my own pdf viewer with the features I care about. The result on the following day was late wake up and a basic program which could display pages. After the next 2 nights I had fairly usable viewer. The products born from rage are not usually well thougt out and the consequences came quickly. After 2 weeks' evenings the code was rearanged and polished a bunch of features were added and it is now fairly easy to extend. 
    As a bonus the program also works on my Nokia N900 phone pocket computer without any extra treatment. This is quite usefull to me as I could not find any decent pdf viewer for Maemo. The stock one and a few others do not display formulas and the rest do not feel very usable.

Credits:
    Qt. I always liked the Qt framework even before using it. It is a joy to write c++ with Qt.
    Poppler and poppler-qt4. Very nice free pdf rendering library based on the xpdf3 code.
    Alin Elena for the discussions, suggestions, testing and help.
    To the oxygen icon theme for the beautiful icons.

Author:
    Dimitar Pashov <d.pashov@gmail.com>
    
    
    
    
    
    
    
