/PDF4Teachers

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...

Primary LanguageJavaApache License 2.0Apache-2.0

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.

Logo

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 :

Preview

The dependencies

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

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.40 : Used to write SVG to a PDF, using PDFBox.
  • Google Diff-Match-Patch 0.1 : Allow me to perform some actions on strings..
  • Unique4J 1.4 : used to set up a single instance of the app when opening files from system.
  • jSystemThemeDetector 3.8 : 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 there is no need to have Java installed to run PDF4Teachers). (JDK tool)
  • JPackage 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. Needs to be installed to use the gradlew autoPackage task on Mac OSX.
  • WiX Toolset is a JPackage dependency, it allows to build .msi file. Needs to be installed to use the gradlew autoPackage task on Windows.

The installer can be build automatically using the custom autoPackage task on any platform.

Fonts for the documentations files

If you have to work on a documentation translation, it is always better to have the right fonts installed to have the correct layout (and if you eventually have to generate the PDF from it). Then you will need these fonts :

  • Arial Rounded MT Bold
  • Calibri
  • Liberation Sans