LectureNotes app

Pie4Me

New member
Jul 10, 2012
1
0
0
feature request

Thanks for your app. I use it frequently.

There may be a way I'm unaware of to do this, but I'd really like to create notebooks with more than 1 starting page. All of my notebooks are at least 10 pages and there's a delay when I create a new page. I normally end up creating a notebook then clicking the arrow for next page many times.

Also, is there any way we could include images of PDFs to notebooks and write on them? I'd really like to keep my notes from beamer talks with my notes from chalk talks and access them the same way. Onenote allows me to include them as backgrounds, and I wondered if that would be feasible? or if you could include pdfs in the 'import image' section?

Thanks again!
 

acadoid

Senior Member
Apr 29, 2012
1,554
752
133
www.acadoid.com
LectureNotes App

Many thanks, I am glad to hear that you like the app.

All new notebooks start with one page. Multiple pages are most easily (and quickly) added in notebook overview,. In case your (new) notebooks have all the same resolution, you can create a `starter´ notebook with the desired number of empty pages and ZIP it together via `share´. Every time you need a new notebook, you just import this starter one and rename it.

To add import of PDF is requested frequently. Unfortunately, there is no direct support of PDF in Android (meaning that there is no system library to render PDF). The PDF reference is a book of more than 1100 pages, and to allow to import PDF into a notebook would require to implement a full-flagged PDF renderer, which would be really a lot of work. What you can do, however, is to convert your PDF to PNGs (some Android PDF viewer do that, but this is better and more conveniently done outside the Android world) and import these, the app allows in notebook overview to import multiple PNGs at once when ZIPed together. Some Android PDF viewer also allow to share the displayed page as PNG, LectureNotes can act as receiver for that (you will see LectureNotes in the list of apps to share to). LectureNotes supports multiple layers, so that you can put your PNGs into the first layer and write on the second. In this way, you can erase etc. without touching the imported PNGs.
 

stbxxl

Senior Member
Apr 26, 2012
156
38
58
Just updated to version 1.14.11. Change log notes "optional free page floating". What is this?

Do you still consider feature requests I submitted earlier:
- optional page margin added during PDF export
- optional split screen zoom

Thanks for the continued development of this very useful application.
 

acadoid

Senior Member
Apr 29, 2012
1,554
752
133
www.acadoid.com
The `optional free page floating´ (when switched on in the `handling´ settings) allows you to move the pages around freely, meaning the `fit width´ pages can also be moved left and right, `fit height´ pages can also be moved up and down, etc. I was asked to add such feature as some devices are not fully responsible in all areas of the display (a common hardware issue with some manufacturers), now you can move your page and avoid these areas.

Users of LectureNotes are quite innovative in suggesting new features. I have a to-do-list on which all requested features are added (including the two that you suggested) and removed after implementation, presently containing about forty items. The priority is a mixture based on urgency and simplicity, so that urgent-easy-to-implement things make it quicker into the code then nice-to-have-difficult-to-implement ones. The split screen is somewhat complicated as it will require a lot of revisions in the code, so that I have to ask you for some patience. The page margins for PDF export will however be added soon.
 
  • Like
Reactions: stbxxl

toenail_flicker

Senior Member
Dec 18, 2011
1,872
329
0
I am continually impressed by your productivity level with the development and upgrades. I love this program! I went through all of the others and now use only yours. Thanks for making Lecture Notes such a great program and sticking with it.
 

stbxxl

Senior Member
Apr 26, 2012
156
38
58
@stbxxl: I just uploaded v1.14.13 into Google Play which allows to set margins for PDF export.
Thank you very much! I just updated to this version.

I have noticed that when I only set a left and right margin (e.g. 18 mm) I automatically get a top and bottom margin added in the exported PDF file. I guess this is done to preserve the aspect ratio of the given notebook (Width x Height set in Notebook settings)?
 

toenail_flicker

Senior Member
Dec 18, 2011
1,872
329
0
A kind of quick note, interesting idea. You could add a notebook `Quick notes´, create a shortcut of it on your launcher screen to allow for an easy access, make your quick notes there, and sort them into other notebooks later on (LectureNotes allows to copy parts of a page, a single page, or multiple pages to clipboard and paste them into other notebooks).
I'm not able to get a shortcut of the notebook onto my launcher screen. I'm using
ADW Launcher Pro - any idea how to do it? I tried everything, but nothing worked. :confused:

Thanks.
 

acadoid

Senior Member
Apr 29, 2012
1,554
752
133
www.acadoid.com
@stbxxl: Yes, the page aspect ratio is kept for PDF export. The page size recommendation in the `new notebook´ dialog considers your page margins preferences, so that you can easily choose notebook page size in accordance with that.

@toenail_flicker: LectureNotes uses a standard `com.android.launcher.action.INSTALL_SHORTCUT´ intent to create a shortcut. No shortcut will be created if this intent is not handled by your launcher app. To be sure, you can use an app such as `AppXplore´ or similar to check your launcher app's manifest file whether it contains an entry for such intent, or contact the authors of your launcher app.
 
  • Like
Reactions: toenail_flicker

chrihi

New member
Jul 22, 2012
1
0
0
Great using custom paper pattern code

Hi Markus
Great tool and txs for implementing the command LN.getName() so quickly.
I had to play around with the feature 'template' and 'custom paper pattern' to find out, how it works. The help is somewhat short.
However, easy and great feature!

Template: How it works: define a new notebook named e.g. 'mytemplate' with your preferences. When creating a new notebook, choose this 'mytemplate' by pressing the 'using template' button where you enter the name. Overwrite the mytemplate and so create your new notebook (while the 'mytemplate' keeps its name!).

Custom Paper Pattern: when you choose the option 'custom', you have to enter all lines of code (for non professional programmers with no experience with javascript somehow complex, but easy to learn based on examples). Find my version right here after (I did not enter the comment text after the ';' into the notebook command lines!!)
What am I using it for? I am headhunter and use LectureNotes for taking notes in the interviews. I convert the notes to *.pdf at the end and copy it to rest of the candidate's file on my server. There I use it on the screen as input for writing the formal interview report (and save paper and printing resp. scanning!):
------------------------------------
p = LN.getPage(); get page number
w = LN.getWidth(); get page width
h = LN.getHeight(); get page height
scale = LN.getScale(); get scale
na = LN.getName(); get name of notebook
LN.setTextSize( 0.022 * h); set text size for first text block
LN.setTextAlign(1); set alignment for first text block (left)
LN.drawText("MyCompany", 0.1*w, 0.033*h); write first text block - top left e.g. name of my company
LN.setTextSize(0.019 * h); set text size for second text block
LN.setTextAlign(-1); set alignment for second text block (right)
LN.drawText(na + " - page: " + p, 0.88 * w, 0.033 * h); write second text block
LN.setStrokeWidth(h/300); set thickness of line
LN.drawLine(0.9 * w, 0, 0.9 * w, h); draw 'fat' line on right side vertically (special notes area)
LN.drawLine(0, h/26, w, h/26); draw 'fat' line at top horizontally (title area)
LN.setStrokeWidth(h/1000); set thickness of lines for notes area (similar to 'ruled pattern')
step = scale * h/28; define step of lines
for(y=h/13; y<0.98*h; y+=step) LN.drawLine(0, y, w, y); draw lines across page
----------------------------------------
Finally it was much easier than anticipated!:good:
Chris
 

acadoid

Senior Member
Apr 29, 2012
1,554
752
133
www.acadoid.com
@chrihi: Many thanks for posting the JavaScript code.

I can also contribute here a bit, for instance a simple eternal calender with one month per page, starting January 2012:

year = 2012;
months = ["January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"];
monthdays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
weekdays = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
month = LN.getPage() - 1;
year += Math.floor(month / 12);
month2 = month % 12;
month = month + 1;
days = monthdays[month2];
if ((month == 2) && (year % 4 == 0) && ((year % 100 != 0) || (year % 400 == 0)))
days++;
if (month <= 2)
year2 = year - 1;
else
year2 = year;
c = Math.floor(year2 / 100);
y = year2 % 100;
m = ((month + 9) % 12) + 1;
w = (1 + Math.floor(2.6 * m - 0.2) + y +
Math.floor(y / 4) + Math.floor(c / 4) - 2 * c + 7 * 100) % 7;
width = LN.getWidth();
height = LN.getHeight();
size = Math.min(width, height);
stepx = width / 8;
stepy = height / 8;
LN.setTextSize(0.025 * size);
for (d = 0; d < 7; d++)
LN.drawText(weekdays[d], (d + 0.6) * stepx, 1.4 * stepy);
LN.setTextSize(0.05 * size);
LN.setTextAlign(-1);
LN.drawText(months[month2] + " " + year, 7.5 * stepx, 0.25 * stepy + 0.05 * size);
LN.setTextAlign(1);
l = 0;
for (d = 1; d <= days; d++) {
LN.drawText(d, stepx * (w + 0.6), stepy * (l + 2.4));
if ((++w == 7) && (d != days)) {
w = 0;
l++;
}
}
for (x = 0.5 * stepx; x < width; x += stepx)
LN.drawLine(x, 1.5 * stepy, x, (l + 2.5) * stepy);
for (y = 1.5 * stepy; y < (l + 3) * stepy; y += stepy)
LN.drawLine(0.5 * stepx, y, 7.5 * stepx, y);

The above should be easily adaptable to one week per page or one day per page.

Another simple example is the isometric paper pattern from the app's help page:

width = LN.getWidth();
height = LN.getHeight();
scale = LN.getScale();
step = width / 150 + scale * width / 25;
LN.setStrokeWidth(width / 1000);
for (x = 0; x < width; x += step)
LN.drawLine(x, 0, x, height);
stepX = 2 * step;
stepY = 1.1547 * step;
x1 = 0; y1 = step;
x2 = stepX; y2 = 0;
while ((x1 < width) && (y2 < height)) {
LN.drawLine(x1, y1, x2, y2);
if (y1 < height)
y1 += stepY;
else
x1 += stepX;
if (x2 < width)
x2 += stepX;
else
y2 += stepY;
}
x1 = x2 - stepX; y1 = 0;
y2 = step;
while ((x2 > 0) && (y1 < height)) {
LN.drawLine(x1, y1, x2, y2);
if (x1 > 0)
x1 -= stepX;
else
y1 += stepY;
if (y2 < height)
y2 += stepY;
else
x2 -= stepX;
}
 

toenail_flicker

Senior Member
Dec 18, 2011
1,872
329
0
Thanks. I'll poke around some more.

---------- Post added at 03:09 AM ---------- Previous post was at 02:51 AM ----------

Okay - figured it out. Works perfectly. Exactly what I needed. Thanks, again.
 
Last edited:

DiJu519

Member
Jul 17, 2012
21
4
0
Great App, i've played around with it a bit.

I just wanted to pass some ideas onto you.

- Are you considering PDF Importing functionality? This way I can write ontop of my pdfs. Maybe even the combination of interlacing a blank page with a pdf for additional notes. It would make review on my PC later pretty neat for school.

-In regards to deletion, is it possible to add delete functionality similar to the rectangluar cut functionality. Or even a lasso delete?

I'm not tryting to offend you by suggesting ideas, they are just things i wish i could do with the app for school.

Great work overall, I plan on using a combination of this, ezpdf, and evernote/dropbox. The PDF idea was to remove the need for ezpdf.
 

acadoid

Senior Member
Apr 29, 2012
1,554
752
133
www.acadoid.com
@DiJu519: Many thanks, I am glad to hear that you like the app, and certainly no offense.

PDF import is requested very frequently. Unfortunately, Android does not contain system libraries for PDF rendering, which means that to add PDF import requires to add a full-flagged PDF renderer, which is really a lot of work. I started discussions with authors of PDF viewer apps, but this will take a while. In the meanwhile, note that LectureNotes registers as an image receiver, so that you can share a page as image from a PDF viewer to LectureNotes for immediate import. Additionally, the app allows to import multiple PNGs zip'ed together at once in notebook overview (which is intended to import a PDF file after converting the pages to PNGs).

The app has a `lasso´ erase, the eraser path closes if you come close to the starting point. If you lift the stylus when the path is closed, the interior will be deleted. Alternatively, you can use the cutter (select, cut, and abort paste).
 

Juzm

Member
Jul 31, 2010
47
11
0
Gippsland, Australia
Many thanks for this app and the people suggesting new features and the author incorporating them, I've just received my new ThinkPad yesterday and I love it, this app makes it even more enjoyable. :)
 

acadoid

Senior Member
Apr 29, 2012
1,554
752
133
www.acadoid.com
@DiJu519 and all others that have requested PDF import: I just uploaded v1.15 into Google Play which allows for PDF import via a helper app, PDFView, which you need to install aside of LectureNotes and which LectureNotes uses for PDF rendering.

PDFView is based on the excellent MuPDF library. It is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. At the moment, the app is only used by LectureNotes for PDF rendering, but all other Android developers are invited to include an interface to PDFView into their apps and use PDFView for PDF rendering. Details of the interface can be found in the source of PDFView available at http://www.acadoid.com/src/pdfview.tgz.
 

stbxxl

Senior Member
Apr 26, 2012
156
38
58
Thanks for the continued updates!

I recently started indexing my notebooks. However, I haven't found a way to edit the Table of Contents or Idex of a given notebook. How can this be done?
 

acadoid

Senior Member
Apr 29, 2012
1,554
752
133
www.acadoid.com
@stbxxl: Most welcome. In which sense would you like to be able to edit the table of contents and the index? Both are automatically produced by the app based on the keywords that you attach to pages. The table of contents sorts your keywords page-wise, whereas the index sorts them alphabetically.
 

stbxxl

Senior Member
Apr 26, 2012
156
38
58
@stbxxl: Most welcome. In which sense would you like to be able to edit the table of contents and the index? Both are automatically produced by the app based on the keywords that you attach to pages. The table of contents sorts your keywords page-wise, whereas the index sorts them alphabetically.
Well, I added a text and accidentally checked "Add as keywords" and now I don't know how to remove this text from the Index.