Improve your chess skills with ChessPDFBrowser

Extract the chess games of your PDF books and browse through its variants.

Features Download

about ... ChessPDFBrowser

Desktop application that allows you to open PDF chess books.
Mainly programmed during Covid-19

Game extractor

You can extract the games from the PDFs

UCI engines

Position analysis connecting to
UCI engines


Programmed in Java swing


Multiplatform chess application

  • Multiplatform

    Programmed in Java swing

  • Multilanguage

    User interface in Spanish, Catalan, and English

  • Multiresolution

    Zoom in or zoom out of the global view of the application

  • Games

    You can pull out the games from the PDF

  • UCI engines

    Analysis with UCI engines

  • PGN

    You can save the games in PGN format

Main screen

You can open files in pgn and browse and edit their variants

Browse PDFs

Open and browse through your PDF chess books.

Game extractor

Extract games from the PDF, browse moves and save them in pgn format.

Position analysis

Analyze positions connecting with UCI engines.

Editing comments

Edit the comments of the games, or add new comments.

Editing tags

Edit the game tags (player names, ELOs, site, event, ...).

Starting position

Edit the starting position of the games that need it.

Timed games

Play timed games against an engine or a friend, or have two engines play against each other.

Extracting games in figurine algebraic notation

You can train the piece detector to extract games in figurine algebraic notation


Impressiones from a developmental point of view.


Samples of screens from the application


Some numbers about the application.

Lines of code


The application is completely free and open source.


0€ (free)

  • PDF browsing
  • Games extraction
  • Analysis
  • E-mail support

Watch video

Example video

Meet the developer

A single developer works behind the scenes.


The application can be downloaded from several open source websites.


Frequently Asked Questions

ChessPDFBrowser is a chess application that allows you to work with pgn files.
A distinguishing function is that it allows you to open PDF books and extract the games from them.
It also includes other features:
  • Edit or save the loaded or extracted games:
    • The game variants loaded or extracted
    • Comments and NAGs (evaluation) of the moves
    • Game tags
    • The starting position, for games with a starting position other than the standard one
  • Ocr to get the FEN chain of an image with a position
  • Connection with UCI engines.
    • Position analysis
    • Full game analysis
    • Play timed games against two engines
    • Pit two engines to play against each other
By extracting the following data from the games:
  • Game TAGs (Player names, ELOs, site, event, ...)
  • If the game doesn't begin with the standard starting position, the Ocr attempts to detect the starting position based on the associated image, and if it is successful in detecting it, that starting position is assigned to the game
  • Game variants (using parentheses, brackets and braces to determine the subvariants)
The games in the books must be in algebraic notation or figurine algebraic notation. You can choose from several languages for the notation, and if you don't see a language, you can manually specify the letters to identify each type of piece.
Yes, in the application's main base directory, there is a subfolder _scripts.
There you can find sample scripts to prompt the command interface of the application(pdf2pgn)
Yes, version v1.26 is planned to extract games in figurine algebraic notation.
You will have to train the piece identifier first, but it is a relatively quick process.
Keep in mind that the quality of the extracted games in this notation may not be very good This is mainly due to:
  • the poor text quality of the PDF (sometimes there are spaces in the middle of the words, or some characters are switched with others)
  • And because when brackets or square brackets aren't used to define the subvariants in the games, it's more difficult to extract the correct game tree
It is done through a complex configuration based on regular expressions.
A basic set up has been created based on some formats of TAGs that are repeated throughout the books, which can be used if they match the format of the TAGs in your books.
If no suitable format exists to export the TAGS from your books, the new format can always be added to the set up (if you contact me, I am more than happy to add this new format to the basic set up for later versions of the application)
You can also attempt to set up the new format yourself (You can read how to do so in the user manual )
The Ocr works based on the type of board.
The type of board is obtained from some parameters of the image:
  • size of the squares in the image
  • color of the white squares
  • color of the black squares
To get the type of board, the board grid is first needed (the corners of the squares that make up the board)
Once taken, the type of board is obtained, based on the previous parameters.
For each type of board, a list of normalized images exists (with a concrete size, which always stays the same at 10x10) for each type of piece and square color.
This pattern list is obtained by training the OCR with pairs (FEN chain, image).
For each board square to be recognized, the code of the piece whose image returns the root mean square error (RMSE) message is chosen, provided that it is within the threshold.
If successful, the FEN chain of the position is generated
If unsuccessful, we can ask the user to "train" the OCR by opening a window with a board where the user can identify the unidentified pieces
The OCR trains with pairs of (FEN chain, Image).
These pairs can appear from:
  • self-training that the application does when the games are exported from a pdf (with the known positions of the images detected, from the exported variant up to the point of the images in games that have started since the initial position
  • when the FEN of an image requested by the user cannot be detected, but the grid of the board could, the application offers the user the option to train the OCR by setting the position on the board
The application hosts a register of configured UIC engines.
To set up a new one, you need to:
  • download it (For example, in this URL you can find some of them. )
  • unzip it onto your hard drive
  • Open the set up window of the application
  • Select the "engines" tab
  • click the "new engine" button (+)
  • Assign the engine binary (open the JFileChooser in a new window (button:(...)), and select an .exe file of the place where you have unzipped the engine)
  • From there, you can edit the engine set up
Yes, to do so:
  • open the analysis window
  • create a new analysis panel (button (+))
  • choose an engine configuration
Yes, to do so, you only have to:
  • open the game analysis window (in the Game Menu)
  • set the analysis details in the window that appears
  • after the analysis, the selected game is copied, with the main variant already analyzed
Yes, you can play against an engine.
  • Start a new game(Game Menu -> New Game).
  • Make yourself a player.
  • Choose a customized engine as an opponent

Suggestion: Some engines can be set up so that they can run at or below their maximum ELO level.
It's recommended to use the application's set up option of the engines, in the case that the engine plays "too" well
Yes, you can open it in the application itself, or in this link.
ChessPdfBrowser has native language version in:
  • Spanish
  • English
  • Catalan

And translation created from a machine translator in:
  • French
  • German
  • Portuguese
  • Italian
  • Greek
  • Russian
  • Japanese
  • Chinese
  • Hindi
  • Arabic

Contact the developer

Whether it's to say hi, talk about the application
or report bugs.