Welcome to the official page of the "iRex DR1000 Manager" project. Formerly known as "iRex DR1000 Merger", the aim of this project was to merge the scribbles taken with the iRex DR1000 with firmware 2 on a PDF or with the built-in notepad in a PDF file; now the program can manage the scribbles in a more complex way.
My intent was also to group all the knowledge I can find on the topic, to give all the people an as most rich as possible documentation and to create a little Java library, so that can be re-used by others. :-)
The program is written in Java; I took inspiration by Bert's program, which does the same with the scribbles taken with the iRex Iliad. I did it because I had problems with all the other solutions I found in the Mobile Read forum, such as the python script, OCAML and the .NET programs: the only one that I made to work was the .NET one, but it uses incorrect values for the zoom of the strokes taken with the zoom.
Like the merger by Bert, also this program uses the iText library (version 1.4.8, I found on internet and recompiled) to merge the scribbles; to access the scribbles in the
metadata.db file I used the sqlite-jdbc library (version 3.7.2).
I also thanks Mackx, for having posted a great explanation on how the binary blob has to be interpreted.
I also re-designed this image to better illustrate the coordinate systems used by iText and iPDF (can also be found in the documentation):
The current version of the program can merge of the scribbles, format them in a text-format, creates a PDF from the notes and creates PNG images from the scribbles; it is no more a prototype but a real program (I menaged to correctly merge all my PDF and notes with their scribbles). It can also manage the color of the strokes in the result.
In next releases I hope to include other functionalities, like backup of data (which can also be made manually copying the
metadata.db file) or conversion of scribbles Iliad ⇆ DR1000.
in a shell/terminal/dos prompt;java -jar iRexDR1000Merger[-version].jar path_to_file
path_to_fileis the path to the target file (PDF or note file); in case of PDF file the program looks for the
metadata.dbfile in the same forlder. The program will create a new PDF file in the current directory.
* used andyProject-0.6 and andyLib-0.9 + option -v for version + option -l to view the list of scribbled files + method #Document.mergeScribble() with the shared logic for merging ! bug: if output file for a note was not specified there was an error + method ScribbleMgr.printFiles * query in method ScribbleMgr.getScribbledFiles
* renamed method Document.getFileName() to Document.getDbName() - method Document.merge(:String, :Color) (now the color management is all inside che ColorMgr class) + changed the logic on the file/directory check (now it is inside the 'merge' and 'exportToPNG' methods) + methods 'merge()', 'exportToPNG()', 'merge(File)' and 'exportToPNG(File)' * -o option can now specify a folder * method Util.skip is now deprecated
! -o option + targerFolder parameter + static method Document.getDocument(:String) to create a Document * method Document.getDefaultName() is now public * centralized output file check
* changed project name in "iRex DR1000 Manager" * use of andyLib v0.8: + use of the config class * help e header as file in the jar * changed the option for input file from -f to -i + warning if the input file dows not exist * moved ColorMgr class * changed color management * now the jar is more like a library * class ScribbleMgr is now public + method to extract the strokes and points list + methods Point.getX e Point.getY to get the coordinates + action "png" to create a series of PNG files from the scribbles * better documentation
strokes' color: + system option for default color + color codes can be written with optional leading '#' + option '-h' for a brief help ! PDF merge: advice if input and output file are the same * default PDF-merged file name has the "__NOTED" suffix * used script andyProject-0.5
* better performance: now uses a 'ByteArrayInputStream' to threat the blob ! fized bug: now if the 'config.properties' is not found, write no exception + update documentation: to create a PDF from a note file, it creates an empty temp PDF file * better logs + in the list file, shows the number of scribbled pages + method Parser.build(:byte) to parse the blob and create the 'Page' object + color of the stroke can be chosen with the '-C' option - removed javadoc task (and javadoc-full renamed to javadoc)
* big changes to the structure of the program + merge of notes + if the PDF file is not found in the database, let the user choose one + option "-c path_to_properties_file"
* better performance (blobs are loaded one at time) ! deleted original file extension in output file * class ScribbleMgr: * has a database File + method hasScribble(fileName:String):boolean + method getScribbledPages(fileName:String):List<Integer> + method getBlobScribbles(fileName:String, page:int):List<Integer> + added command line option (-f, -o and -a) + used andyLogger for logging
In this page you can find the full documentation of the project.
As my first "real" project, I decided to release it under the GPLv3 licence. A copy of the licence is included in the compiled and source archives. Inside the archives there are the notice also for the libraries used by this project.