Skip to content


Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Java CI with Gradle TotalDownloads LatestDownloads Commit activity Commit since latest Contributors
Star GitHubFolowers TwitterFolowers


Presentation | The dependencies | Code organization
PDF editing software in large quantities designed for teachers.


Shortcuts :                                                                             Before opening new issue, see :

License Release        GitHub labels GitHub labels GitHub labels

Presentation [EN]

This app is specifically designed for teachers, it allows annotating assessments returned in PDF with a very good productivity

Since V1.1.0, PDF4Teachers is fully translated in English. Welcome to English-speaking teachers !

PDF4Teachers is a free and open-source application.

PDF4Teachers offers tools for a productive edit of PDF files, during the annotation / correction of assessments. Edits are saved separately from PDF files, lists of previous and favorites annotations allow quick insertion of recurrent advices and corrections. Documents are managed as a set. when job is done, all documents can be exported as new PDF files with annotations on it.

PDF4Teachers includes special functionalities for annotation of grades and offers a tool for grading scale (marking scheme). When using numerical grading system, the tool computes the total and sub-totals, and exports the grades of a whole set of corrected documents as a .csv spreadsheet.

A set of pictures can be converted in PDF documents, and pages format can be edited (rotation, position…) through buttons located in the footer of each page.

PDF4Teachers is available for Windows, Linux, OSX. Go to the download section with the release button above.

Teachers speaking other languages than French and English : help us translate PDF4Teachers, check in the language settings on how to do it !

Presentation [FR]

Cette application est principalement destinée aux professeurs, elle permet d'éditer et plus précisément de corriger des copies PDF.

Elle est basée sur un système d'édition rapide des documents PDF. L'édition peut être sauvée pour reprendre le travail plus tard. Lorsque les éditions sont terminées, le document peut être exporté sous la forme d'un nouveau fichier PDF. Les éditions sont composées de plusieurs éléments : Les commentaires (Texte), les Notes et les formes géométriques ( Carrés, ronds, etc.)

Vous pouvez définir un barème pour une série de copies puis entrer les notes dans chaque copie. La somme des notes se calcule automatiquement. Une fois terminé, vous pouvez exporter les notes d'une ou plusieurs copies dans un ou plusieurs tableaux CSV (Tableaux de donnés formatable par des applications tels que LibreOffice Calc ou Excel).

Il est possible de convertir des images en documents PDF et d’éditer les pages des documents (rotation, position...) avec des boutons situés au pied de chaque page.

PDF4Teachers est conforme au RGPD de l'Union européenne : toutes les éditions et fichiers exportés sont stockés en local, les seuls accès réseaux de l'application concernent la vérification des mises à jour.

Prévisualisation de l'interface :


The dependencies

The application was developed with JavaFX framework, in Java SE 17 (1.3.2).

Java dependencies

  • JavaFX 17 : The java API to create windows (GUI), and all the interfaces with the user.
  • Apache PDF BOX 2.0.26 : used to all the interactions with PDF : it generates images from PDF file, add it add the texts/images of the editing on the PDF document while exporting. Commons Logging, ** Font BOX**, JAI ImageIO and jbig2-imageio, are dependencies of PDF Box.
  • JMetro 11.6.15 : JavaFX theme. It offers you a nicer interface, including the dark mode.
  • ControlsFX 11.1.0 : JavaFX new inputs and custom panes
  • Writer2Latex 1.6.1 : used to convert StarMath (or LibreOffice Math) language in LaTeX for rendering. JLatexMath 1.0.7 : used to generate images from LaTeX expressions. ( LaTeX text elements feature in 1.2.0)
  • SnakeYAML 1.30 : lets read YAML files easier (edits + user datas) : it converts the YAML into HashMap<String, Object> and vice versa.
  • Opencsv 5.6 : used to read/write CSV files (when importing SACoche assessment)
  • Jackson Streaming API 2.13.3 : lets read the JSON format. Used to send requests to GitHub to check if a new release is available.
  • Metadata-Extractor 2.18.0 : Used to read the images EXIF data, so PDF4Teachers can take in account the rotation of images
  • Batik Parser 1.14 : Allow me to parse SVG easily, with custom handlers.
  • PdfBox Graphics2D 0.38 : Used to write SVG to a PDF, using PDFBox.
  • Google Diff-Match-Patch 0.1 : Allow me to perform some actions on strings..
  • Unique4J : used to set up a single instance of the app when opening files from system.

Gradle plugins

The dependencies of the application are managed by Gradle 7 (rc-2), therefore, you can execute ./gradlew run (bash) or gradlew.bat run (batch) in a command prompt to run the application using only the downloaded code, and the Java JDK 16 (should be in the environment variable JAVA_HOME). Gradle is using some plugins to manage dependencies :

  • Badass JLink Plugin allow me to use JLink and JPackager ( distribution tools) directly with gradle.
  • JavaFX Gradle 7 Plugin fork of the original JavaFX Gradle Plugin, allows to setup the JavaFX libs with Gradle 7 and JDK 16+
  • Extra Java Module Info lets us customize module-info of any jar file, and then, it allows me to use non modular dependencies (Allows me to give a name to any "unnamed module").

Software used

Packaging tool

  • JLink is a distribution tool used to generate an image of the code including the dependencies and the used modules of the JRE, for each platform (exports all the code and the JRE so we can start the app just by starting a bash/batch script). ( JDK tool) JPackager is used to generate Windows .msi and Linux .deb installers for each platform from the image that was generated by JLink. (JDK tool) DMGCanvas allows me to create a custom OSX DMG file, from the .app created by hand from JLink image.

Code Organization


PDF editing software in large quantities. Designed for teachers, this app keeps recorded previous annotations, and offers features like marking scale, PDF conversion, vectorial drawing...