
Add option to use PNG for thumbnails
I don't think using PNG for the thumbnails would increase its size a lot.
And even if it did, personally I would prefer it.

No preview picture for many .pdf files
Hi,
I have several .pdf files with no preview picture. In the logs I have errors like this:
20190309 00:14:04 [Scanner thread] WARN com.ubooquity.fileformat.pdf.b - Problem while reading file: 2019-01-29 HD TV.pdf
java.awt.image.RasterFormatException: (x + width) is outside raster
at sun.awt.image.IntegerInterleavedRaster.createWritableChild(IntegerInterleavedRaster.java:467) ~[na:1.8.0_191]
at sun.awt.image.IntegerInterleavedRaster.createChild(IntegerInterleavedRaster.java:514) ~[na:1.8.0_191]
at sun.java2d.pipe.GeneralCompositePipe.renderPathTile(GeneralCompositePipe.java:106) ~[na:1.8.0_191]
at sun.java2d.pipe.AAShapePipe.renderTiles(AAShapePipe.java:201) ~[na:1.8.0_191]
at sun.java2d.pipe.AAShapePipe.renderPath(AAShapePipe.java:159) ~[na:1.8.0_191]
at sun.java2d.pipe.AAShapePipe.fill(AAShapePipe.java:68) ~[na:1.8.0_191]
at sun.java2d.pipe.PixelToParallelogramConverter.fill(PixelToParallelogramConverter.java:164) ~[na:1.8.0_191]
at sun.java2d.pipe.ValidatePipe.fill(ValidatePipe.java:160) ~[na:1.8.0_191]
at sun.java2d.SunGraphics2D.fill(SunGraphics2D.java:2525) ~[na:1.8.0_191]
at org.apache.pdfbox.rendering.PageDrawer.fillPath(PageDrawer.java:728) ~[pdfbox-2.0.6.jar.1119530175511126154.tmp:2.0.6]
at org.apache.pdfbox.contentstream.operator.graphics.FillNonZeroRule.process(FillNonZeroRule.java:36) ~[pdfbox-2.0.6.jar.1119530175511126154.tmp:2.0.6]
at org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:838) ~[pdfbox-2.0.6.jar.1119530175511126154.tmp:2.0.6]
at org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:495) ~[pdfbox-2.0.6.jar.1119530175511126154.tmp:2.0.6]
at org.apache.pdfbox.contentstream.PDFStreamEngine.processTransparencyGroup(PDFStreamEngine.java:231) ~[pdfbox-2.0.6.jar.1119530175511126154.tmp:2.0.6]
at org.apache.pdfbox.rendering.PageDrawer.access$1600(PageDrawer.java:97) ~[pdfbox-2.0.6.jar.1119530175511126154.tmp:2.0.6]
at org.apache.pdfbox.rendering.PageDrawer$TransparencyGroup.<init>(PageDrawer.java:1520) ~[pdfbox-2.0.6.jar.1119530175511126154.tmp:2.0.6]
at org.apache.pdfbox.rendering.PageDrawer$TransparencyGroup.<init>(PageDrawer.java:1399) ~[pdfbox-2.0.6.jar.1119530175511126154.tmp:2.0.6]
at org.apache.pdfbox.rendering.PageDrawer.showTransparencyGroup(PageDrawer.java:1341) ~[pdfbox-2.0.6.jar.1119530175511126154.tmp:2.0.6]
at org.apache.pdfbox.contentstream.operator.graphics.DrawObject.process(DrawObject.java:66) ~[pdfbox-2.0.6.jar.1119530175511126154.tmp:2.0.6]
at org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:838) ~[pdfbox-2.0.6.jar.1119530175511126154.tmp:2.0.6]
at org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:495) ~[pdfbox-2.0.6.jar.1119530175511126154.tmp:2.0.6]
at org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:469) ~[pdfbox-2.0.6.jar.1119530175511126154.tmp:2.0.6]
at org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:150) ~[pdfbox-2.0.6.jar.1119530175511126154.tmp:2.0.6]
at org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:206) ~[pdfbox-2.0.6.jar.1119530175511126154.tmp:2.0.6]
at org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:145) ~[pdfbox-2.0.6.jar.1119530175511126154.tmp:2.0.6]
at org.apache.pdfbox.rendering.PDFRenderer.renderImageWithDPI(PDFRenderer.java:94) ~[pdfbox-2.0.6.jar.1119530175511126154.tmp:2.0.6]
at com.ubooquity.fileformat.pdf.b.a(SourceFile:71) ~[Ubooquity.jar:2.1.2]
at com.ubooquity.fileformat.pdf.b.a(SourceFile:44) ~[Ubooquity.jar:2.1.2]
at com.ubooquity.data.feeder.a.b(SourceFile:381) [Ubooquity.jar:2.1.2]
at com.ubooquity.data.feeder.a.a(SourceFile:196) [Ubooquity.jar:2.1.2]
at com.ubooquity.data.feeder.a.a(SourceFile:314) [Ubooquity.jar:2.1.2]
at com.ubooquity.data.feeder.a.b(SourceFile:105) [Ubooquity.jar:2.1.2]
at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_191]
20190309 00:26:09 [Scanner thread] WARN com.ubooquity.fileformat.pdf.b - Problem while reading file: 2019-02-05 Mein LandRezept.pdf
java.awt.image.RasterFormatException: (y + height) is outside raster
at sun.awt.image.IntegerInterleavedRaster.createWritableChild(IntegerInterleavedRaster.java:470) ~[na:1.8.0_191]
at sun.awt.image.IntegerInterleavedRaster.createChild(IntegerInterleavedRaster.java:514) ~[na:1.8.0_191]
at sun.java2d.pipe.GeneralCompositePipe.renderPathTile(GeneralCompositePipe.java:106) ~[na:1.8.0_191]
at sun.java2d.pipe.AAShapePipe.renderTiles(AAShapePipe.java:201) ~[na:1.8.0_191]
at sun.java2d.pipe.AAShapePipe.renderPath(AAShapePipe.java:159) ~[na:1.8.0_191]
at sun.java2d.pipe.AAShapePipe.fill(AAShapePipe.java:68) ~[na:1.8.0_191]
at sun.java2d.pipe.PixelToParallelogramConverter.fill(PixelToParallelogramConverter.java:164) ~[na:1.8.0_191]
at sun.java2d.pipe.ValidatePipe.fill(ValidatePipe.java:160) ~[na:1.8.0_191]
at sun.java2d.SunGraphics2D.fill(SunGraphics2D.java:2525) ~[na:1.8.0_191]
at org.apache.pdfbox.rendering.PageDrawer.fillPath(PageDrawer.java:728) ~[pdfbox-2.0.6.jar.1119530175511126154.tmp:2.0.6]
at org.apache.pdfbox.contentstream.operator.graphics.FillNonZeroRule.process(FillNonZeroRule.java:36) ~[pdfbox-2.0.6.jar.1119530175511126154.tmp:2.0.6]
at org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:838) ~[pdfbox-2.0.6.jar.1119530175511126154.tmp:2.0.6]
at org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:495) ~[pdfbox-2.0.6.jar.1119530175511126154.tmp:2.0.6]
at org.apache.pdfbox.contentstream.PDFStreamEngine.processTransparencyGroup(PDFStreamEngine.java:231) ~[pdfbox-2.0.6.jar.1119530175511126154.tmp:2.0.6]
at org.apache.pdfbox.rendering.PageDrawer.access$1600(PageDrawer.java:97) ~[pdfbox-2.0.6.jar.1119530175511126154.tmp:2.0.6]
at org.apache.pdfbox.rendering.PageDrawer$TransparencyGroup.<init>(PageDrawer.java:1520) ~[pdfbox-2.0.6.jar.1119530175511126154.tmp:2.0.6]
at org.apache.pdfbox.rendering.PageDrawer$TransparencyGroup.<init>(PageDrawer.java:1399) ~[pdfbox-2.0.6.jar.1119530175511126154.tmp:2.0.6]
at org.apache.pdfbox.rendering.PageDrawer.showTransparencyGroup(PageDrawer.java:1341) ~[pdfbox-2.0.6.jar.1119530175511126154.tmp:2.0.6]
at org.apache.pdfbox.contentstream.operator.graphics.DrawObject.process(DrawObject.java:66) ~[pdfbox-2.0.6.jar.1119530175511126154.tmp:2.0.6]
at org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:838) ~[pdfbox-2.0.6.jar.1119530175511126154.tmp:2.0.6]
at org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:495) ~[pdfbox-2.0.6.jar.1119530175511126154.tmp:2.0.6]
at org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:469) ~[pdfbox-2.0.6.jar.1119530175511126154.tmp:2.0.6]
at org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:150) ~[pdfbox-2.0.6.jar.1119530175511126154.tmp:2.0.6]
at org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:206) ~[pdfbox-2.0.6.jar.1119530175511126154.tmp:2.0.6]
at org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:145) ~[pdfbox-2.0.6.jar.1119530175511126154.tmp:2.0.6]
at org.apache.pdfbox.rendering.PDFRenderer.renderImageWithDPI(PDFRenderer.java:94) ~[pdfbox-2.0.6.jar.1119530175511126154.tmp:2.0.6]
at com.ubooquity.fileformat.pdf.b.a(SourceFile:71) ~[Ubooquity.jar:2.1.2]
at com.ubooquity.fileformat.pdf.b.a(SourceFile:44) ~[Ubooquity.jar:2.1.2]
at com.ubooquity.data.feeder.a.b(SourceFile:381) [Ubooquity.jar:2.1.2]
at com.ubooquity.data.feeder.a.a(SourceFile:196) [Ubooquity.jar:2.1.2]
at com.ubooquity.data.feeder.a.a(SourceFile:314) [Ubooquity.jar:2.1.2]
at com.ubooquity.data.feeder.a.b(SourceFile:105) [Ubooquity.jar:2.1.2]
at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_191]

An API to pull specific metadata
It would be super useful to be able to poll specific metadata via an API. For example currently I'm splitting the label field to get issue number, but it'd be great to just get the actual number.
Or page counts could be combined with the bookmark API to build a progress indicator.

Folders are always shown first
When opening a folder, content are always grouped with folders first, files after with each group in alphabetical order.
My use case is that I often have TPBs or other collected volumes in a numbered order but i miss some of the volumes and have them in single issues instead. To keep things in order I put the single issues in a folder named in the same way as the collection volumes. Tadaa! Works fine on my file manager on the computer (macos, finder)
But ubooquity sorting logic breaks it :P
Regardless of that use case, i find it easier to have everything ordered alphabetically.
Soo, iIt would be nice if there was an option to sort all items alphabetically regardless if file or folder.
Thanks

ebook reader with opds support on Windows (10)
Hello.
Anyone out there have a good epub reader for windows that support opds ? (and works with Ubooquity opds off course) ?
I would like one that don't auto add books to it's local "library", just allowing to read books directly from the server like the web viewer allows.
Calibre isn't working for me (it's fugly as Hell, has pretty poor performances, and the less i'm forced to use that thing the better i am, main reason i use Ubooquity and not calibre-web or something like that), and i'm not even sure calibre is a client for opds feeds.
I've tried Freda but in the end, the UI is messy as Hell and it doesn't work like i need.
FB reader has no decent recent release for Windows (the "next new major version" have been under developpement for like 5+ years and there is absolutely no news of them :/).
And it's pretty much all i've found.
As much as i find the Web viewer mostly doing it's job, it's sometimes not exactly what i want, and i would like not to have to use my browser for that when i can avoid it).
All suggestions are welcome. ;)

Weird Behaviour when scanning books
I've shared my books in a way that might not be *supported* by Ubooquity from what i gathered from the other topics and i see a strange behaviour.
I've shared :
Books/ with User1 & User 2 having access
Books/SubDirectory User1 only having access
And now, everytime Ubooquity does a scan, it treats the content in Books/Subdirectory as new. But on top of that, sometimes it appears as it's own "root folder" entry, sometimes not.
I'm yet to test if user security is properly enforced or not, but could it be something that's a consequence of the fact Ubooquity don't support "fine graining" User right on subdirectories ?
(just to know if i have more tests to do, or cave in and move out that specific folder out of my main directory tree to make it a standalone one, because i need it to be restricted to a handful of users, when the main one will be accessible to pretty much everyone - and i don't really feel like sharing manually each subcategory in my directory tree, even if i might end up doing exactly that in the end. :)).
Btw, could it be possible in a future update to get 2 ways to set up user permissions ?
- The current one where you set up for each shared folder, the users having access to those folders
- the "reverse" one, allowing to set up which folder(s) a user have access too with checkboxes, from the user security panel ?
Would make it easier to add new users when there is quite some shared folders honestly. ;)

Ebook mobile usage
Everything is working fine, but reading ebooks on devices lacking a keyboard is lacking. Unless I'm missing an option for enable a touch interface that lets you go next/back by touching the edges.
I do see two buttons appear briefly as the ebook loads, but the ebooks I'm reading are manga (and I don't want to convert them) and so the "page" is an image that loads on top of them. Is there an option to push the page down below the buttons?

more folder
Nested components
I want to ask: How much is the maximum of nested folders? I would need 4 or more. Possible?
Example:
Children's Literature - Adventure - Writer's Name - a series of books
Specifically:
Children's Literature - Donned - May Karl - Series Vinnetou
Can you do that? And how?

Unable to read when the first file is a .txt inside a rar (.cbr) archive
When the first file of rar (.cbr) archive is a (.txt) file ubooquity is unable to read it.
Thumbnails are not displayed
rar version tested in 4
20190221 08:29:37 [qtp875313400-776] INFO com.ubooquity.provider.page.a - Someone is reading L:\test\test02.cbr
20190221 08:29:37 [qtp875313400-776] ERROR com.ubooquity.f.a - Could not get image from file: L:\test\test02.cbr
20190221 08:29:37 [qtp875313400-776] WARN com.ubooquity.provider.page.a - Could not extract page 0 from document L:\test\test02.cbr (NullPointerException)
20190221 08:29:37 [qtp875313400-794] ERROR com.ubooquity.f.a - Could not get image from file: L:\test\test02.cbr
20190221 08:29:37 [qtp875313400-794] WARN com.ubooquity.provider.page.a - Could not extract page 1 from document L:\test\test02.cbr (NullPointerException)
20190221 08:29:37 [qtp875313400-789] ERROR com.ubooquity.f.a - Could not get image from file: L:\test\test02.cbr
20190221 08:29:37 [qtp875313400-789] WARN com.ubooquity.provider.page.a - Could not extract page 2 from document L:\test\test02.cbr (NullPointerException)

Nginx Reverse Proxy CSS Error
I have my Ubooquity instance going through a Nginx reverse proxy. I have the admin page working just fine with no errors but the main page displays just the text (No CSS) and the Chrome console reports
(I cut off half the error messagege because it includes my FQDN)
My nginx config is the following
```
server {
server_name books.FQDN.com;
listen 443 ssl http2;
access_log /var/log/nginx/ubooquity_access.log;
#access_log off;
error_log /var/log/nginx/ubooquity_error.log;
location / {
proxy_pass http://127.0.0.1:2202;
}
location /admin {
proxy_pass http://127.0.0.1:2203/admin;
}
location /admin-res {
proxy_pass http://127.0.0.1:2203/admin-res;
}
location /admin-api {
proxy_pass http://127.0.0.1:2203/admin-api;
}
}
```
Customer support service by UserEcho