This is how I solved filling shapes (not limited to circles though) with hatches - and yes I know, it draws quite some lines..... Tried to increase the pen width to limit the number of strokes, however I could not find a generic solution that filled the entire shape. proc fill.circle {x y radius fcolor} { if {= [strcmp $fcolor none] 0} {} else { set prevpen [pen $fcolor solid] hatch 45 [expr 0.75*[lindex $prevpen 2]] hatchcircle $x $y $radius pen $prevpen } circle $x $y $radius } As my contribution...
My use case is multiple 1. I use layers on the reMarkable to selectively hide/show my markings - used to memorize and practice exercises while keeping at the same time a sort of 'version history'. When Drawj2d supports multiple layers, I can create in the same document both the exercise AND the solution. 2. I use layers on the remarkable to differentiate between how "sure" I am of my markings: draft - final - thoughts etc. When Drawj2d supports multiple layers I can create a layer with shapes (the...
I am not sure if it is even possible to implement. To my knowledge the rm lines format (version 5) does not support groups directly. It has lines consisting of multiple segments. If a shape is drawn with a single line it gets selected like an object. Hatches (for general shapes) cannot be drawn with a single line. Also I am not aware of a "lift pen" attribute for line segments. Thus I would not know how to create a single object for hatches. By the way. It would be an interesting task to develop...
Drawj2d does not support drawing on different layers. I guess it would actually require too much work to implement (for a feature I do not use personally). May I ask what is your use case?
You are welcome
Thank you so much for you super-fast response. With the example you gave above, I now do understand the geom.topolyline commands and what their use case is. For other shapes that needed to be selected as one, I already used the polygon command, but could not figure out how to include curves in it. That is now solved. Again, many thanks. Keep up the good work. John
Hi, Is there support of the 'layers' in rmn/rmdoc files? I'd like to have shapes on different layers. If not, is this a future feature. Maybe the Opacity can be used for this. Eg Opacity 1.0 => Layer 1, Opacity [0.9 - 1.0) => Layer 2 etc John
Hi again, I have another observation, where the output behaves in a different way than I expected. While circle, rectangle and polygon result in one single object on the reMarkable, the hatch-variants generate multiple objects: each stroke of the hatch is a separate object. This has been discovered while I was searching for a workaround because the reMarkable does not support the fill property. Can you please advice? Thanks in advance. John
Your observation is correct: The block/endblock commands do not put the line segments into an object that can only be selected as a whole (as a block) on the reMarkable. Drawj2d actually just draws subsequent line segments. As a work-around to get a single object you can use the polygon command. font Lines set A " 5 5" set B "30 10" set C "20 40" m 20 20 block line $A $B $C $A label {Line segments are selectable} endblock m 20 70 block polygon $A $B $C label {Polygon is selectable} endblock The command...
Hi, Just stumbled upon Drawj2d and I absolutely L-O-V-E it thank you so much!! My prime use case is to create rmdoc to be used on the reMarkable tablet. I thought that the block/endblock command would not only prove a frame with its own coordinate system, but that it ALSO would ensure that the drawings command inside the block/endblock are considered as one. Meaning that the selection function on the reMarkable would not consider the individual drawing commands yet all or nothing. I created a block/endblock...
Awesome! That's exactly what I was looking for. I will work with png as the svg conversion doesn't seem to handle the fill parameter. Thank you!
Examples_reMarkable_ShapesLib
Examples_reMarkable_ShapesLib
Examples_reMarkable_ShapesLib
Thanks, your welcome. I often work with old scanned drawings. These are always black lines on white background. This is the main reason I implemented an algorithm to convert raster images to a rM line representation. It's also the reason I did not care much about colours (it would have been grey only next to black and white at that rM2 time anyway). Is there an option or method to preserve colors or choose a specific color (like white) when converting PNG or SVG images to rmdoc? When converting PNG...
Hi! First, I'd like to express my heartfelt thanks to the creator of Drawj2d for this fantastic tool that has truly opened up new horizons for me with my reMarkable Paper Pro . Thanks to this program, I've been able to add images to my notebooks and create really cool custom covers. It's a real asset for my daily use of the RMPP! However, I have a question regarding image conversion. I've noticed that all the images I convert to rmdoc format appear in black. I would like to be able to convert transparent...
reMarkable
The supported pen colours for notebooks with colours on the rMpro are listed above. In the hcl file you can use them like this: font Lines m 15 10 pen blue text {Some text in blue.} pen red linerel 50 0; # a red line If you just convert a pdf (or svg) to a notebook using the following command on the command line: echo image my.pdf | drawj2d -Trmdoc then the colours are only applied if they match exactly the supported colour definition. Use the exact red-green-blue (rgb) values for the colours when...
The supported pen colours for notebooks with colours on the rMpro are listed above. In the hcl file you can use them like this: font Lines m 15 10 pen blue text {Some text in blue.} pen red linerel 50 0; # a red line If you just convert a pdf (or svg) to a notebook using the following command on the command line: echo image my.pdf | drawj2d -Trmdoc then the colours are only applied if they match exactly the supported colour definition. Use the exact red-green-blue (rgb) values for the colours when...
The supported pen colours for notebooks with colours on the rMpro are listed above. In the hcl file you can use them like this: font Lines m 15 10 pen blue text {Some text in blue.} pen red linerel 50 0; # a red line If you just convert a pdf (or svg) to a notebook using the following command on the command line: echo image my.pdf | drawj2d -Trmdoc then the colours are only applied if they match exactly the supported colour definition. Use the exact red-green-blue (rgb) values for the colours when...
Forgot to mention in the release notes: --deprecate --type rmapi (will be removed) rMAPI supports - rm - rmdoc (since version 0.2.7) Thus the old output type (zip file with old style metadata) is not needed anymore. Due to a recent rM cloud API change you will need an up to date version of rmapi.
On my rM2 (3.14.1.9) it is black indeed. On the rmPro (3.14.3.0) it is gray. Let's see if an update (to the rM2) software will fix it. The lightgray is quite special. Even when using the fineliner (as drawj2d does) it gets darker when overlapping. Thanks for reporting, it is useful! I have not yet digged deep to find out how colours work. Orange is missing, there is a second black colour (no. 9). Also I don't know about the shader pen (not really needed for drawj2d) ..
Please recheck lightgray. It is giving me black.
Or ... it occurs to me that maybe it's because I'm on a RM2? Just a guess. (Re: lightgray)
Announcement on Reddit Geometric shapes in rM notebooks - Drawj2d updated to support reMarkable Pro colours Drawj2d is a tool to create technical line drawings in vector format (pdf, svg, ...). It can also write reMarkable notebook pages (rmdoc / rmn / rm). These notebooks are editable on the tablet, thus select/copy/paste works. The command line program reads a text file that describes the drawing. The input language consists of commands such as line or label. Coordinates are given in natural units,...
Drawj2d 1.3.4 released
Tagging the release 1.3.4
resources/ enhance wiki for reMarkable Pro
reMarkable
reMarkable
reMarkable
reMarkable
doc/,resources/ Adapt doc to version 1.3.4
reMarkable
add doubleline command
enhance rm output: image command uses pen colour (png+svg)
deprecate --type rmapi
enhance rm output: more colours
Release 1.3.4 will add more colours for the reMarkable (-T rm / rmdoc / rmn). You can already test it if you download the source code and compile it. Requires JavaSDK (compiler) and ant.
enhance rm output: more colours
Glad it works.
Oops, I'm sorry, my fault... I didn't execute the command correctly. It does works as intended, except for rmapi which I knew didn't work. That was why I tried the other formats. Thanks for a super tool!
Strange. While I have issues using rm2/rmPro in parallel (see below) I currently cannot reproduce the issue you describe. Do I understand correctly: drawj2d still creates these notebook files (e.g. rmdoc) but you cannot transfer them to the device anymore? Could you please collect some information: device type: rm2 or rmPro? drawj2d version (current is 1.3.3) device software version? how do you try to upload rmdoc? desktop app or USB web interface? error message? Observations? anything else that...
Drawj2d doesn't seem to generate valid reMarkable files anymore :-( I tried rmdoc/rmapi and rmn formats, but none of them works anymore. Last time I tried was 14 September, when it worked perfectly, but not anymore :-( Any clue on what it might be?
Examples_reMarkable_ShapesLib
Home
Examples_reMarkable_ShapesLib
Examples_reMarkable
reMarkable
Examples_reMarkable_ShapesLib
Ah, well, I see that the following explains things. I guess we'll have to wait to see how the RMpp colors are defined. Shucks. static final class rmColour { static final int BLACK = 0; static final int GREY = 1; static final int WHITE = 2; // see https://github.com/ricklupton/rmscene/blob/main/src/rmscene/scene_items.py static final int BLUE = 6; static final int RED = 7; }
I'm just now reading your answer and it confirms what I thought I saw. I'm actually not likely to get the new tablet. But I wanted to create some rmdoc drawings that worked on the new tablet, and I hoped to be able to include colors. I'll be patient.
Correct: - RemarkableGraphics2D.java: function lineColour() - ReMarkablePage.java: class rmColour and maybe class rmPen for the new pen.
But rather than a fixed number of supported colors, could you not now support all colors? The lines format uses just index numbers (integers) for the colour. BLACK = 0, GREY = 1, WHITE = 2, BLUE = 6, RED = 7. Custom colours are not supported. At least it was like that when I added export colours to ReMarkablePage.java. Now they probably just have extended the range of colours. Drawj2d still uses the old (<= 2.15) lines format version 5. I am happy the rM notebooks are backward compatible as I am...
Hello, thank you for an amazing product. I use drawj2d to create shapes for importing to the remarkable tablet. I have drawj2d version 1.3..3 from 2024-04-07. I see that red, inkred, blue, and inkblue display as you describe in the -T scn mode, but with -T rmn, it appears to only use FF0000 and 0000FF (i.e., FF0000 for red and inkred and 0000FF for blue and inkblue). That's one thing. The other thing is that the Paper Pro color tablet is out now. I have compiled what I think are correct values (based...
It looks like this may be the spot: private int lineColour() { Color colour = getColor(); if (colour.equals(Color.BLACK)) return rmColour.BLACK; if (colour.equals(Color.RED) || colour.equals(redink)) return rmColour.RED; if (colour.equals(Color.BLUE) || colour.equals(blueink)) return rmColour.BLUE; double helligkeit = (0.299*colour.getRed() + 0.587*colour.getGreen() + 0.114*colour.getBlue()); if (helligkeit > 230) return rmColour.WHITE; if (helligkeit > 90) return rmColour.GREY; else return rmColour.BLACK;...
Unfortunately the "empty outlines" issue is not easy to solve. Pdf files usually define shapes by their outlines and tell the viewer program the shape has to be filled. The rM file format however does not support "fills" (at least I am not aware of). Instead it uses strokes with an attribute for the line width. Unfortunately it is not straight forward to implement a reliable algorithm that fills a polygon using strokes, as we would do by hand. Thus drawj2d just draws the outlines. As a work-around...
According to the discussion on reddit you have resolved the issue. The command to convert a pdf page to an rM notebook directly from the command line is echo image pageA5.pdf | drawj2d -Trmn On Mac and Linux the above command works if drawj2d has been added to the path (see manual). If you want to run an executable file from the local directory instead you need the prefix "./" echo image pageA5.pdf | ./drawj2d -Trmn In case of a permission error you might have to make the starting script executable...
Thank you for a wonderful application. I am trying to migrate all the pdf’s I generated with my defunct Sony DPT tablet and I found that drawj2d + pdf2rmnotebook can (almost) do the job. After some tinkering (I had to flatten all the streams and layers), I get almost there, but not quite. The hand drawn text, which is basically a bunch a splines, appears as empty/transparent outlines. I had to take a screenshot of the remarkable desktop, I hope the attachment goes through so you can see the effect,...
Thank you for a wonderful application. I am trying to migrate all the pdf’s I generated with my defunct Sony DPT tablet and I found that drawj2d + pdf2rmnotebook can (almost) do the job. After some tinkering (I had to flatten all the streams and layers), I get almost there, but not quite. The hand drawn text, which is basically a bunch a splines, appears as empty/transparent outlines. I took a screenshot of the remarkable desktop, I hope the attachment goes through so you can see the effect, together...
Hi, I’m encountering an issue and need help. I'm trying to convert a 1-page PDF file, but the output is a .rmn file that’s empty. Can you assist me with this? ❯ drawj2d -T rmn document-renamed.pdf Welcome to Drawj2d Copyright (c) A. Vontobel, 2014-2024 Version 1.3.3 Mode: JTikZ ERROR parsing line 8 Hecl exception: {ERROR {Error while running 'document-renamed.pdf': java.lang.ArrayIndexOutOfBoundsException: -1}} Error occurred. Check for error messages.
Thanks for your help! It works now after some playing around
Thanks for the answer! For your example double quotes solve the issue. If you want to use variables in drawj2d commands use single quotes instead: echo 'set file pageA4.pdf; image $file 1' | drawj2d -Tscreen
That command work if executed from Command Prompt (CMD). if executed from PowerShell it seems that you need to put the arguments to echo inbetween double quotes. Like this: echo "image test.pdf 1 0 0 0.7" | drawj2d -Trm otherwise will each argument end on separate lines.
The echo command seems to work differently in PowerShell (compared to cmd.com). In PowerShell you'll need single quotes: echo 'image pageA4.pdf 1 0 0 0.7' | drawj2d -Trmdoc echo 'image {filename with spaces.pdf} 1 0 0 0.7' | drawj2d -Trm
Hi, thanks for your help! I'm on windows 11 and I use power shell: PS C:\Users\simon\dev\py_pdf2rmnotebook\pdfs> echo image test.pdf 1 0 0 0.7 | drawj2d -Trm Welcome to Drawj2d Copyright (c) A. Vontobel, 2014-2024 Version 1.3.3 Mode: JTikZ Hecl exception: {ERROR {Missing filename}} {image 1} Error occurred. Check for error messages. PS C:\Users\simon\dev\py_pdf2rmnotebook\pdfs> echo image test.pdf 1 0 0 0.7 | drawj2d -Trmdoc Welcome to Drawj2d Copyright (c) A. Vontobel, 2014-2024 Version 1.3.3 Mode:...
Nice! On the github page you mention problems on Windows: Draft: Setup the project on a windows machine CURRENTLY THIS DOES NOT work as drawj2d is not working for me on windows (the command "echo image .pdf 0 0 0 0.7 | drawj2d -Trmdoc" is throwing an error) Drawj2d should work on windows. Can you post the error message? By the way in the command cited above the pdf file name seems to be incomplete (unless it is ".pdf"). Do the following commands work? echo image pageA4.pdf 1 0 0 0.7 | drawj2d -Trmdoc...
Nice! On the github page you mention problems on Windows: Draft: Setup the project on a windows machine CURRENTLY THIS DOES NOT work as drawj2d is not working for me on windows (the command "echo image .pdf 0 0 0 0.7 | drawj2d -Trmdoc" is throwing an error) Drawj2d should work on windows. Can you post the error message? By the way in the command cited above the pdf file name seems to be incomplete (unless it is ".pdf"). Does the following command work? echo image pageA4.pdf 1 0 0 0.7 | drawj2d -...
I finally had the time to create a python program that does what I requested. It uses draw2dj to be able to convert multipage PDFs into a rmdoc file. I'll link it here if anyone finds this discussion and wants to use it. https://github.com/simon-rechermann/py_pdf2rmnotebook
Ok thanks a lot! I'll maybe ask the pdf2rmnotebook guys if they can add this feature or maybe create a small python program that does it if I find the time to dig a little bit deeper into this topic
Drawj2d by itself does deal with single pages only (no matter if rmdoc or other output format). For multiple pages it has to be called in a loop and the resulting notebook pages have to be put together in a single notebook file (rmdoc, rmn or rmapi zip). That is what pdf2rmnotebook does. My current suggestion would be to use RCU (rmn file type). Rmapi does work in my experience. The problem is less the "new sync protocol" (not new anymore) but the fact that the main developer has declared the project...
Interesting question! Please try the following command: drawj2d -Trmdoc -X-26.5 -W210 -H157 landscape.hcl Upload out-landscape.rmdoc to the rM. On the rM tablet open the notebook (out-landscape) and select the menu option "Set to landscape". notes - assuming in landscape.hcl you draw within the coordinates 0 < x < 210 (width in mm) and 0 < y < 157 (height) - (157 - 210) / 2 = -26.5 - probably you can omit the -W and -H parameters - use -Trmn for RCU or -Trm for rmapi Does this work?
Is there no way to set a landscape orientation for output to remarkable tablets? It seems no matter the format of the file, or the -W and -H flags being used, I can never get the resulting file to open or render correctly in landscape.
Is there a possibilty to convert a PDF with multiple pages to a rmdoc file somehow? I saw that https://github.com/JCN-9000/pdf2rmnotebook only supports zip and rmn files but the USB web interface only supports the rmdoc format. I saw that the support for the new sync protocol of https://github.com/juruen/rmapi/ is experimental so I though the best way would be to create a rmdoc containing multiple pages if this is possible somehow. BR Simon
reMarkable
Home
It is actually called "USB web interface" (not web transfer) and refers to a method for transferring files using a USB cable and a browser.
Home
Examples_reMarkable
reMarkable
Drawj2d version 1.3.3 released. The issue "font command doesn't work with variables" should be fixed.
Drawj2d 1.3.3 released
Tagging the release 1.3.3
doc/,resources/ Adapt doc to version 1.3.3
add rmdoc output format (for reMarkable paper tablet Web Interface)
Home
The issue will be fixed in the next version. Thanks for reporting.
fix font command
version numbering