Generate a PDF Planner for the Remarkable Platform

Overview

Planner PDF

This will generate a PDF File that can be used as a planner on the remarkable platform.
It uses the libharu library to generate the PDF and the Date library to perform calendar math.

How to compile

Make sure you have libharu development library installed. Either compiled from source or from your package manager.

sudo apt-get install libhpdf-dev

The libharu github page is at:

https://github.com/libharu/libharu

The date library is part of this repository. It has its own license and is obtained from:

https://github.com/HowardHinnant/date

Compilation

Clone the repository then create a build directory and run cmake followed by make. The below is the default usage.

git clone https://github.com/revelationnow/PlannerPDF.git
cd PlannerPDF
mkdir build
cd build
cmake ..
make create

The make create command will generate a file called planner.pdf in the build directory which can be used as is. The file size can be large depending for the default settings. The following cmake options are available to modify:

Option           | Default Value       | Comment
_________________|_____________________|_______________________________________________________________
PDF_FILENAME     | planner             | The filename used for the generated pdf (no extension)
START_YEAR       | 2021                | The starting year for the planner
NUM_YEARS        | 5                   | The number of years in the planner. Reduce this to reduce size
COMPRESSED_FILE  | planner_compressed  | The filename of a compressed version of the file

There is a make target called make compress which will us ghostscript to try to reduce the filesize. For the 5 year planner it can bring the size down from ~43mb to ~19mb.

Below is an example of invoking the build with additional options:

git clone https://github.com/revelationnow/PlannerPDF.git
cd PlannerPDF
mkdir build
cd build
cmake -DNUM_YEARS=1 -DPDF_FILENAME=calendar -DSTART_YEAR=2020 -DCOMPRESSED_FILE=calendar_small ..
make compress

There is additionally a make target to update the samples in the samples directory. To invoke that, use make update_samples for the default file and make update_compressed_samples for the compressed file

Usage

To use the PDF copy it to the remarkable device.
The navigation from child page to parent page is done by clicking on the title page.
Clicking on the left or right arrows will allow navigation to previous and next pages for days, months or years.

Comments
  • Sample with time by 1/4 hour in note field

    Sample with time by 1/4 hour in note field

    I am a github novice but really like your simple hyperlinked planner I pulled from your samples. I especially prefer your portrait, right handed, 5 year version and have been using it for a while now. Thanks.

    I do have a preference and was wondering if this would be difficult to implement. I like to have time shown by the 1/4 hour to the left and a day of the week at the top. I attached a shot of Sunday for you to see what I mean. Strong work here. Take care Calendar 2021-25 sample with time.pdf .

    opened by dweber-mo 6
  • Change

    Change "First day of week"

    Hey there,

    thanks a lot for this project 🎉 I've been using the resulting PDF ever since I got my RM2 a couple of weeks ago. One thing I'd possibly change would be the ability to pass a "first day of week" as a cmake option.

    Cheers.

    opened by barnumbirr 2
  • Compilation error: CMake noes not know the compile flags to use CXX20 - set to 17?

    Compilation error: CMake noes not know the compile flags to use CXX20 - set to 17?

    Hi!

    Thank you for this projet :)

    When I want to compile, I got this error

    -- The C compiler identification is GNU 7.5.0
    -- The CXX compiler identification is GNU 7.5.0
    -- Check for working C compiler: /usr/bin/cc
    -- Check for working C compiler: /usr/bin/cc -- works
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Detecting C compile features
    -- Detecting C compile features - done
    -- Check for working CXX compiler: /usr/bin/c++
    -- Check for working CXX compiler: /usr/bin/c++ -- works
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- Configuring done
    CMake Error in CMakeLists.txt:
      Target "Planner_PDF" requires the language dialect "CXX20" (with compiler
      extensions), but CMake does not know the compile flags to use to enable it.
    
    
    -- Generating done
    -- Build files have been written to: /home/budd/workspace/PlannerPDF/build
    

    Found this issue, edit set(CMAKE_CXX_STANDARD 20) - replace 20 by 17 - and cmake command run successfully.

    opened by MaxenceG2M 1
  • Cosmetic: Gray Link backround

    Cosmetic: Gray Link backround

    I've added a function to paint the background of the links to a light gray (Page Title, Left and Right, ...). It is not under any test, but it is a single function so a test can be easily added to turn the feature off on request. Link test is now surrounded by spaces to get better aesthetics: 'Title' --> ' Title '

    opened by JCN-9000 0
  • Added Portrait option

    Added Portrait option

    I like your work, I also need to have the Planner in Portrait mode, so my fork.

    • Added an option during cmake to switch from Landscape to Portrait: -DPlanner_PDF_Portrait=0/1
    • Year and Month Pages loose the Notes area to keep aspect ratio,
    • BUG: Notes title is still there and miscentered
    • Dotted area in Task pane is now done using a dashed line, greatly reduces PDF size.
    • TODO: add the Week and Quarters view.
    • TODO: use bigger/bold fonts when possible:in Titles, year number in Year page and days in Month page.
    • TODO: Hourly planner in Day page instead of Tasks
    opened by JCN-9000 0
  • Cmake List for libharu build from source

    Cmake List for libharu build from source

    Hi,

    I wanted to test PlannerPDF but failed when trying to make the executable (its not finding hpdf). I successfully installed libharu from source (cmake,make, make install) and its now located in /usr/local/include. I am using OSX.

    Here is the error I get when building PlannerPDF:

    (base) [email protected] build % cmake ..
    -- The C compiler identification is AppleClang 12.0.0.12000032
    -- The CXX compiler identification is AppleClang 12.0.0.12000032
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc - skipped
    -- Detecting C compile features
    -- Detecting C compile features - done
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ - skipped
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- Configuring done
    -- Generating done
    -- Build files have been written to: /Users/schneider/codes/personal/PlannerPDF/build
    (base) [email protected] build % make
    Scanning dependencies of target Planner_PDF
    [ 50%] Building CXX object CMakeFiles/Planner_PDF.dir/src/planner_pdf.cpp.o
    In file included from /Users/schneider/codes/personal/PlannerPDF/src/planner_pdf.cpp:32:
    In file included from /Users/schneider/codes/personal/PlannerPDF/include/planner_main.hpp:3:
    In file included from /Users/schneider/codes/personal/PlannerPDF/include/planner_year.hpp:3:
    In file included from /Users/schneider/codes/personal/PlannerPDF/include/planner_month.hpp:1:
    In file included from /Users/schneider/codes/personal/PlannerPDF/include/planner_week.hpp:3:
    In file included from /Users/schneider/codes/personal/PlannerPDF/include/planner_days.hpp:3:
    /Users/schneider/codes/personal/PlannerPDF/include/planner_base.hpp:4:10: fatal error: 'hpdf.h' file not
          found
    #include "hpdf.h"
             ^~~~~~~~
    1 error generated.
    make[2]: *** [CMakeFiles/Planner_PDF.dir/src/planner_pdf.cpp.o] Error 1
    make[1]: *** [CMakeFiles/Planner_PDF.dir/all] Error 2
    make: *** [all] Error 2
    

    Unfortunately I am not really familiar with cmake, so I don't know how I can link the library. Would be glad, if you could help :D

    opened by AaronDavidSchneider 3
Owner
null
High performance library for creating, modiyfing and parsing PDF files in C++

Welcome to PDF-Writer. A Fast and Free C++ Library for Creating, Parsing an Manipulating PDF Files and Streams. Documentation is available here. Proje

gal kahana 671 Nov 26, 2022
For C++, help generate a default operator for classes whose components (base classes, data members) have the operator. Hideously intrusive.

C-plus-plus-library-default-operators Helps generate a default operator / member function for classes whose components (base classes, data members) ha

Walt Karas 2 Jul 25, 2018
Problem solving on HackerRank platform using C++.

Efficient solutions to HackerRank CPP problems! ℹ️ Introduction : Subdomaine Title Points Source Intro Say "Hello, World!" With C++ 5 Solution Intro I

Abdessamad Laamimi 10 Jul 4, 2022
Modern, header-only, compact and cross platform C++ network/sockets library

cpp-net-lib Modern, header-only, compact and cross-platform C++ network/sockets library. Don't mind the crappy name, I suck at naming things. Why? I n

Marc 10 Jul 20, 2022
✔️The smallest header-only GUI library(4 KLOC) for all platforms

Welcome to GUI-lite The smallest header-only GUI library (4 KLOC) for all platforms. 中文 Lightweight ✂️ Small: 4,000+ lines of C++ code, zero dependenc

null 6.5k Nov 24, 2022
Turns the button on the Lamy Pen into an eraser on the reMarkable.

RemarkableLamyEraser Standalone tool that turns the button on the Lamy Pen into an eraser on the reMarkable. Also confirmed to work with these other s

null 129 Nov 21, 2022
waved is aimed at becoming a userspace driver for the reMarkable 2 E-Ink controller.

waved waved is aimed at becoming a userspace driver for the reMarkable 2 E-Ink controller. Disclaimer: This is still a prototype. It might damage your

Mattéo Delabre 38 Oct 10, 2022
Perception-Aware Trajectory Planner in Dynamic Environments

PANTHER: Perception-Aware Trajectory Planner in Dynamic Environments Citation When using PANTHER, please cite PANTHER: Perception-Aware Trajectory Pla

MIT Aerospace Controls Laboratory 111 Nov 6, 2022
Motion planner built upon Tesseract and Trajopt

motion_planner Motion planner built upon Tesseract and Trajopt The abb_example package is similar to the tesseract_ros_examples, but it contain more e

Mohamed Ahmed 8 Jan 18, 2022
Fast, Attemptable Route Planner for Navigation in Known and Unknown Environments

FAR Planner uses a dynamically updated visibility graph for fast replanning. The planner models the environment with polygons and builds a global visi

Fan Yang 334 Nov 25, 2022
A Robust and Efficient Trajectory Planner for Quadrotors

Fast-Planner is developed aiming to enable quadrotor fast flight in complex unknown environments. It contains a rich set of carefully designed planning algorithms.

HKUST Aerial Robotics Group 1.5k Nov 22, 2022
A global planner plugin for ROS navigation stack, in which A* search on a discrete gneralized Voronoi diagram (GVD) is implemented.

voronoi_planner This repo contains a global planner plugin for ROS navigation stack, in which A* search on a discrete gneralized Voronoi diagram (GVD)

Jian Wen 16 Nov 1, 2022
Turn 2 esp32 boards into pixhawk telemetry for use with Ardupilot/Ardurover Mission Planner.

RoverLink Turn 2 esp32 boards into pixhawk telemetry for use with Ardupilot/Ardurover Mission Planner I used to use these cheap Chinese 900mhz Pixhawk

Jeffrey Berezin 2 Jan 18, 2022
Online multi-agent trajectory planner using linear safe corridor (LSC)

lsc_planner This package presents an efficient multi-agent trajectory planning algorithm which generates safe trajectories in obstacle-dense environme

Jungwon Park 32 Nov 17, 2022
Local Navigation Planner for Legged Robots

ANYmal Rough Terrain Planner Sampling based path planning for ANYmal, based on 2.5D height maps. More detailed instructions still to come. The paper d

Robotic Systems Lab - Legged Robotics at ETH Zürich 35 Nov 25, 2022
The Efficient Study Planner (ESP) is a CLI app that gives an optimized plan to study for an upcoming exam.

Welcome to Efficient Study Planner ?? Optimize your study plan with ESP! Table of Contents About The Project Tech Stack Prerequisites How To Use? Lice

Md Ausaf Rashid 3 Aug 3, 2022
Official page of MLCPP (IROS'18 @ Barcelona, Spain): Offline Coverage Path Planner

MLCPP: Multi-layer coverage path planner for autonomous structural inspection of high-rise structures The purpose of the algorithm is to inspect high-

Sungwook Jung 14 Nov 2, 2022
libharu - free PDF library

# # URL http://libharu.org/ # # Copyright 2000-2006 (c) Takeshi Kanno # Copyright 2007-2009 (c) Antony Dovgal et al. # See INSTALL for instruction

libharu 1.4k Nov 25, 2022
Fix ToUnicode CMap in PDF

A tool to fix ToUnicod CMap in PDF to prevent extracted text from being garbled [ English / 日本語 (Japanese) ] When copying and pasting text from a PDF

Masamichi Hosoda 22 Aug 16, 2022
FCracker is a command line tool designed to brute force encrypted files like zip, 7z, rar, pdf etc.

FCrack is a command-line tool designed to brute force encrypted files like zip, 7z, rar, pdf, gpg etc.

null 21 Oct 3, 2022