Bookshelf and Collection management of your E-books
eBookshelf Generator is an application that makes "bookshelf for e-books : eBookshelf" with cover images arranged, from e-books or image files stored on hard disk e.t.c. You can browse your e-book collection with an interface like a net e-book shop. Also, you can output a list of e-book collections under various conditions. If you own plenty of self-scanned e-books, it makes searching and browsing them easier and also useful for book management. This is free software provided by this site (apollomaniacs.com).
- eBookshelf is created in HTML format. So you can browse it in web browser.
- On the bookshelf, cover images of e-books are displayed.
- Click / tap the cover image to download the e-book to your computer or smartphone.
- You can classify e-books according to your own category, and add explanations such as outlines to each title.
- Supports Zip, RAR, PDF, Text, ePub, CDisplay Archived Comic Books(.cbz, .cbr, .cb7, .cbt, cba)*1 format e-books and jpg, png format image files.
- You can output a list of e-book collections in csv, txt, json format.
- Supports web browsers of Firefox, Chrome, Safari, IE, Edge*2.
Not only browsing eBookshelf in local folder of PC, if you put them in NAS web server on your home LAN, you can also browse and download e-books from smart devices like iPhone and iPad. Even small screen device such as iPhone will be displayed with a design that matches it's screen size.
Note*1 : About CDisplay Archived Comic Books(.cbz, .cbr, .cb7, .cbt, cba), there are some restrictions.
Note*2 : When browsing with IE, Edge, you need to change the setting on setting screen.
On this site, We also distribute free software: ImagePageSplitter that can split self-made e-books scanned with double-sided spreads on a page-by-page basis. For a plurality of image files stored in an arbitrary folder, you can collectively or individually page split, margin cut (trimming), image correction, grayscale (black and white) conversion, file name change, and so on.
- Installing and uninstalling program
- How to use
- Browsing on iPhone, iPad
- Folder structure of e-books
- How to name folders and e-books
- Writing category, author name, volume number
- Browsing with IE,Edge / URL encoding setting
- When the cover image is not displayed properly
- When cover image is bad quality
- Setting link to cover image
- How to use completed bookshelf
- My favorite page
- Saving and initializing settings
- Design of eBookshelf
- Customize of eBookshelf design
- Information file
- Contents of information file
- How to write the author's name in case of co-authorship
- Determination method of newcomer
- Output lists of collections
- Support of CDisplay Archived Comic Books
- About OSS used in this program
- Copyright notice of this program
- Revision History
DownloadPlease click rounded "Download" mark below.
Compressed file (eBookshelfGenelator-1.0.7.zip 53,768,192bytes)
Required Disk Space : 200MB
This file has been virus checked by McAfee VirusScan V8.8.0 (188.8.131.522/DAT9099.0000).
Please refer to Revision History for revision content so far.
Installing and uninstalling program
Attention: Never run an untrusted exe file. Do not run programs other than those downloaded directly from www.apollomaniacs.com. Otherwise, there may be viruses.
Update from old version
It's OK to install latest version simply. Or even if you uninstall old one before, user setting files remains, so you can use it with original setting after reinstall.
How to useEasy to use. It is only 3 steps below.
- Install eBookshelf Generator to your Windows PC.
- Specify folders e-book stored and eBookshelf output, then click [Start] button.
- Open "index.html" of the output folder with web browser.
In "Output folder" text box, input a folder path to store generated HTML eBookshelf.
Click "Start" at bottom of screen to start scanning input folders and creating eBookshelf.
In [Maximum scan titles] on [Basics] screen, You can specify the number of titles (folders) to process. If you have a lot of self-scanned e-books, first try "Start" with small number like 5 to 10, and check whether cover images, book download links, etc. are created as expected.
Click "Done" button to return to start screen.
Click the "Back" button to return "Input Folders" and "Output Folder" screen. You can change input / output folder, open settings screen, then "Start" eBookshelf generation again.
Click "Quit" button to end this program.
file://[Output folder]/index.htmlPlease open this file in your browser.
After re-executing, please press (refresh) button of the browser in order to display latest page.
Browsing on iPhone, iPad
http://192.168.xx.xx/[Web server folder]/index.html
If your Web server configuration and URL are correct, eBookshelf will be displayed like this.
Note: When browsing via the Web server, it is necessary to change settings before "Start".
If an error occurs without asking for a login ID, the link set in cover image is incorrect. Please review [Book name link base path] / [Cover image link base path] on [Cover image] tab of setting screen and regenerate eBookshelf. First of all, please check you can download e-books on your PC browser.
For details please see Setting link to cover image.
For iOS13 / iPadOS13 or later
Downloaded e-book files are stored in the “Download” folder of the (File) app. From here, transfer to your favorite e-book reader app.
For details, see Downloading files: Using Download Manager | Using Safari
For iOS12 or earlier
Folder structure of e-books
The eBookshelf Generator assumes that e-books are stored in the following folder structure.
[Book folder] may be a subfolder of other folder. It can also be on a network drive such as NAS. All e-book files must be stored in one of [Title/Category folder]. E-book files stored immediately under [Book folder] are ignored.
[Book folder]\[Title/Category folder]\[e-book file]
Under [Title/Category folder], another [Title/Category folder] can be placed (subfolder). Up to 5 subfolders can be created. The number of hierarchies of subfolder is specified by "Subfolder hierarchies" (initial value is 1) on setting screen. Folders over this level are ignored.
Up to five [Book folder] can be specified simultaneously. All e-books included in the specified book folders are output together in one eBookshelf. All [Book folder] to be processed at the same time must be on the same drive or server.
Supported e-book formats(extension) are .zip/.rar/.pdf/.epub/ .txt/ .cbz/ .cbr/ .cb7/ .cbt/ .cba. It is assumed that e-books in compressed format contains text (.txt) or images (.jpg/ .jpeg/ .png). Also, a single image file (.jpg/ .jpeg/ .png) stored in [Title/Category folder] is handled as one e-book. Files of other formats are ignored.
If a special symbol used in URL encoding such as '%' or '+' is included in [Title/Category folder] name or [e-book file] name, the book may not be displayed correctly. In this case, change the special symbol to another letter.
How to name folders and e-books
If you include categories and author names in [Title/Category folder] name or [e-book file] name, automatically generated indexes (table of contents) classified by these information.
Naming example of title / category folder
"(Category) [Author Name] Title" "(Category) [Author Name] Title Total n volumes" "(Category) [Author Name]" "[Author Name] Title" "(Category)" "Title"and so on.
Naming example of e-book file
"(Category) [Author Name] Title Volume n" "[Author Name] Title Volume n" "Title Volume n [Author Name]" "Title Volume n (Category)" "Title Volume n" "Title"and so on.
Categories must be enclosed in parentheses. Author Names must be enclosed in brackets. You can specify any word in Category. Contiguous blanks included in title name are replaced with a single space in eBookshelf.
Writing category, author name, volume number
Categories, author names, and volume number used for classification are extracted from title / category folder names and e-book file names according to the following rules.
- Words enclosed with "()" (parentheses) appearing first will be extracted as categories.
- Words enclosed with "" (brackets) appearing first will be extracted as the author name. Please also see How to write the author's name in case of co-authorship together.
HowTo, Essay, Computer, Literature, Cooking, Travel, Science, Language, PictureBook, ArtBook, MonthlyMagazine, GeneralComics, GeneralGirlsComics, GeneralNovels, Doujinshi, SensualNovels, AdultComics, e.t.c.
Browsing with IE,Edge / URL encoding setting
Links in eBookshelf HTML file
The link URL to another page written in generated eBookshelf HTML file is encoded UTF-8 by default. However, in Microsoft Internet Explorer and Edge, encoded link URLs are interpreted as Unicode encoded, so "page missing" errors occur. So, URL encoding should not be done when browsing with IE, Edge.
The link URL encoding method can be select in [HTML output] - [HTML link encoding] on setting screen. Select "No-ENCODE" here when you use IE, Edge.
If a special symbol used in URL encoding such as '%' or '+' is included in [Title/Category folder] name or [e-book file] name when "No-ENCODE" is selected, the book may not be displayed correctly. In this case, change the special symbol to another letter.
Links to e-book
The link to e-book may includes the title string like Japanese KANJI, KANA. For this reason, UTF-8 encoding is selected as the initial value. The URL encoding of link to e-book can be specified in [Cover image] - [Book name link encoding] / [Cover image link encoding] on setting screen.
When the cover image is not displayed properly
In case of .zip/ .rar/ .pdf/ .epub/ .cbz/ .cbr file, first image file (jpg / png) appearing in alphabetical order of the file names contained therein is used as the cover image. When the cover image is different from expectation, you need to change the file name in e-book. Please decompress the e-book, rename files in them for change order, and recompress. Or, image file included in the e-book may be partially broken. In this case, it may be resolved by reading the image file with image editing software and rewrit it. For e-books in the RAR / CBR format, the cover image is not displayed when compressed in latest RAR 5 format. Please recompress in RAR 4 or earlier format.
Furthermore, the cover image is not displayed for copyright protection, password protected e-book files and txt files. Also, if you select "Do not generate" in [Cover image] - [How to generate] on setting screen, all cover images will not be displayed.
You can use free software Flexible Renamer(Vector) or お～瑠璃ね～む(Vector) for batch change of file name.
When cover image is bad quality
The cover images displayed on eBookshelf are created by reducing original e-book images. "SCALE_FAST" is selected as a reduction method (algorithm) in order to prioritize processing speed in initial value. If you feel image quality is bad, try changing this to another method such as "SCALE_SMOOTH".
You can select reduction method (algorithm) [Cover image] - [Downscaling algorithm] on setting screen.
Setting link to cover image
In order to be able to download e-books when tapping or clicking the cover image, you need to set [Book name link base path] / [Cover image link base path] on [Cover image] tab of setting screen appropriately.
Links to e-book file can be set in two places per one e-book, on title name and cover image. You can specify different URLs individually.
The links to e-book files will be generated by this program as follows.
- Delete drive name / server name from the full path to each e-book file traced from "Input folders".
- At the top of this string, add the path (URI scheme) specified in "base path" of setting screen.
 In case of access eBookshelf only from specific PC
-1 When e-books are stored in local drive of the PC
For example, when e-books are stored in
Please set as follows
D:\data\books\[Title folder]\[e-book file]
-2 When e-books are stored in a server (such as NAS) on the network
For example, when e-books are stored in
You can not download from eBookshelf as it is. Assign this to the network drive. For example, assign
\\NAS\Multimedia\data\books\[Title folder]\[e-book file]
to "X:" as network drive, Then please set as follows
 In case of storing e-books on servers (NAS etc.) and publishing eBookshelf to home LAN
If you publish eBookshelf on your home LAN using a Web server or FTP server, you can access it from all computers, iPhone, iPad in the home.
-1 When directly specifying the folder of the server (NAS, etc.)
For example, when e-books are stored in
Please set as follows
\\NAS\Multimedia\data\books\[Title folder]\[e-book file]
"http://[Host name or IP address of NAS]"(When using http)
"ftp://[Host name or IP address of NAS]"(When using ftp)
-2 When a folder on the NAS is assigned to a network drive
For example, when e-books are stored in
\\NAS\Multimedia\data\books\[Title folder]\[e-book file]
to "X:" as network drive, Please set as follows
"http://[Host name or IP address of NAS]/Multimedia/data"(When using http)
"ftp://[Host name or IP address of NAS]/Multimedia/data"(When using ftp)
Precautions when publishing to your home LAN
- Depending on the specifications of your NAS and Web server, base path shown in the above example may require different.
Please use http protocol ("http://") when accessing eBookshelf from (safari) of iPad / iPhone.
To access ftp server from iPad / iPhone, you need to specify it like "ftp://[User ID]:[Password]@[Host name or IP address of NAS]...". But unfortunately, in this case user ID and password are written in plaintext on all pages of eBookshelf HTML.
How to use completed bookshelf
In "Output folder", eBookshelf is output with following configuration.
Top page is
file://[Output folder]\index.html. Please open this file in your browser.
When publishing on your home web server such as NAS,
please store all files and folders under [Output Folder]
to public folder of your web server, with the composition as it is.
http://[NAS IP address]/[Public folder of web server on NAS]/index.html
[Public folder of web server on NAS] part may be unnecessary depending on setting of NAS web server.
Tap the cover image or title name of e-book, you can download that e-book. When using home web server, usually necessary to input login ID and password to NAS. Please enter user ID and password set on the NAS management screen.
My favorite pageThere is a "My favorite" page in eBookshelf, and you can register your favorite title here. Click (Heart) at the right end of the menu of each title page, the title is registered in "My favorite" page. You can open the favorite page from [Menu] - [My favorite]. From this page, you can open your favorite title page immediately.
Favorite pages information is saved in "local storage" of browser. So, it is stored separately for each device and browser. Number of favorites you can register depends on the capacity of local storage. Many browsers seem to be able to save hundreds of titles or more. But browsers do not support local storage can not save favorites.
Saving and initializing settings
"Input folders", "Output folder", and input result of setting screen are saved in your PC when clicking "Start" button or clicking "Done" button on setting screen. The following files under installation folder of this program is save destination. Delete these files if you want to reset settings.
|app/ebookshelf.ini||Setting information list : UTF-8|
|app/ebookshelf_inputfiles.txt||Input folder list : S-JIS|
|app/bookfiledate.txt||Title list and its issue / creation date: to be used in newcommer judgment : UTF-8|
These are all text files.
Editing with a text editor will take effect the next time you run.
The delimiter of setting information list is blank or tab character,
write information in the form of "keyword value" (you can insert any number of blanks or tab characters).
In the install folder of this program,
a file describing the initial value of setting information list is stored with name of
The meaning of each parameter is also explained here.
Please refer to it when customizing the setting information list.
Design of eBookshelf(The following functions are currently valid only in Japanese.) When category contains string "comic", the surroundings of cover image will be light blue. When category contains string "novel", the surroundings of cover image will be pink. In other cases, the surroundings of cover image will be dark green.
Customize of eBookshelf design
You can customize eBookshelf design by editing file under the folder where this program is installed.
|app/parts/0dummy_book_image.png||This is an alternative cover image used when you select "Do not generate" or e-books without cover images.|
|app/parts/skin/html_header.txt||Template used for header of all HTML pages.|
|app/parts/skin/html_footer.txt||Template used for footer of all HTML pages.|
|app/parts/skin/css_main_common.css||CSS applied in common regardless of screen size of the device you browse.|
|app/parts/skin/css_main_l.css||Additional CSS applied on devices with screen width of 980 pixels or more (eg personal computer).|
|app/parts/skin/css_main_m.css||Additional CSS applied on devices with screen width of 640 - 979 pixels (eg iPad).|
|app/parts/skin/css_main_s.css||Additional CSS applied on devices with screen width under 639 pixels (eg iPhone).|
- *.css, *.jpg, *.jpeg, *.png files stored in [skin info. folder] are copied to the output "css" folder.
- *.js files stored in [skin info. folder] are copied to the output "js" folder.
- Contents of html_header.txt and html_footer.txt stored in [skin info. folder] are added before and after each eBookshelf HTML.
Information fileIf you store "Information file" in text format directly under each title folder, its contents will be reflected on each title page of eBookshelf. When you write categories and subcategories in this file, an index using these information is automatically generated. The prescribed value of the information file name is "_information.info" (character code is SJIS). This name can be changed in [Basics] - [Book info. file name] on setting screen.
Contents of information file
Write informations with delimiter ":" in the form of "keyword : value" (any number of spaces can be inserted before and after ":"). Enter one keyword per line. Do not put a line break in the middle of a keyword or a value. Informations can be described are as follows.
|Title Name||Title (also extracted from folder name)|
|Author Name||Author name (also extracted from  of the folder name)|
|Title Read||Title reading (for Japanese)|
|Author Read||Author reading (for Japanese)|
|Info||Commentary of the title. Synopsis of books etc.|
|Category1||Category (major classification). Only one category can be specified per title (It is also extracted from () of the folder name)|
|Category2||Subcategory. Multiple subcategory can be specified per title, delimiter is tab, comma, blank|
Author Name : AuthorNameA, CreatorNameB Info : Synopsis of this book, descriptive text. Category1 : GeneralComics Category2 : LoveComedy, SF&Fantasy, Gag&Comedy
It is not necessary to describe all keywords. Only information being described will be reflected on eBookshelf.
Information such as titles, authors, categories, etc. is first extracted from the title / category folder name, and when there is an information file, e-book information is updated with its contents. You can specify your favorite words in categories and subcategories.
LoveComedy, LoveStory, Juvenile, SF&Fantasy, Gag&Comedy, Mystery&Suspense, Sexy, HumanDrama, Politics&Business, History, HistoricalDrama, GirlsLove, Battle&Action, Campus, Cooking&Gourmet, Sports, Heartwarming, Rupo&Essay, Detective, Horror, Literature, e.t.c.
How to write the author's name in case of co-authorship
Authors, creators, coauthors, etc., for books created by multiple authors, you can enumerate multiple author names using delimiters. This delimiter is specified in [Author names separator] on [Basics] setting screen. This can be specified by regular expression.
Example of Author names separator
- "," (Comma), " " (white space)
- Character X (Uppercase, lowercase)：X x
- Japanese Character × (Multiply): UTF-8(0x817E)
To specify all of them, input "[Xx× ,]+" as a regular expression. However, in this case, if author's name contains an alphabetic X, it will be divided as a separate author there.
The initial value is set to "[×,]+" (Japanese "Multiply" and ","). Please describe [AuthorA×AuthorB] or [AuthorA,AuthorB] in folder name or book file name.
Determination method of newcomer
From the date information of e-book file, it is judged whether or not it is "Newcomer", and matching books are displayed in "Newcomer" page. This is specified in the [Period for Newcomer] on [Basics] setting screen. Here, specified by the number of months. The initial value is 3 months. You can choose between following two judgment methods (in the case of compressed files such as Zip, RAR, ePub etc.).
- Use last modified date of e-book file.
- Use oldest one of last modified date of individual files included in e-book file.
If you select to check individual files in e-book, it takes time to generate eBookshelf, because check all files in compressed e-book. However, for books that have been checked once, the date information are saved in system file, so second and subsequent eBookshelf generation will be speeded up. The system file that stores date information is
app/bookfiledate.txtunder the installation folder of this program.
If you tap the (table) icon in the lower right of each e-book on the "Newcomer" page, title page to which the e-book belongs will be open.
Output lists of collectionsYou can output lists of your e-book collection that can be used for collection management. To do this, select each item on [Data output] tab on setting screen. "Title list" (csv or txt format) and various classification result list (json format) can be output. In both lists output file name is fixed. Specify output folder in "Destination folder" column at the bottom of [Data output] screen.
This is the title list of e-books in your collection. Output file name is "ebookshelf_titlelist_ [date] .txt / csv". In the "Output conditions" column, you can specify either complete titles (those containing "Total n volumes" in title name), incomplete titles, or both. (Temporary it works in Japanese only.) If you specify a keyword in the "Keyword for category" column, only titles classified as categories containing that keyword are output. Up to nine items can be specified as output items. If you select items from each drop-down list in "Output item (maximum 9 items)" column, that will be output in one line per title in that order.
Various classification result list
You can choose lists classified under various conditions in the "JSON data output" column. Whole library, Sort result by category, subcategory, author and so on, eight classification results can be output. The output format is only json. Please use them in programs corresponding to json format file reading.
Support of CDisplay Archived Comic BooksThis program supports CDisplay Archived Comic Books (.cbz, .cbr, .cb7, .cbt, cba) format from Version 1.0.7, but has following restrictions.
- Cover images are not displayed except for .cbz and .cbr.
- It does not acquire information from metadata, xml file etc contained in e-books.
About OSS used in this program
Java / JavaFX is used for development of this program. We are doing build confirmation with Java 8 (jdk 1.8.0) and 9 (jdk - 9.0.1). However, javapackager which performs exe packaging was unstable in Java 9, so all released versions are created in Java 8.
In this program, the following OSS are used.
jQuery and lazyload ： Lazy loading of e-book cover image.
Font Awesome(Web font) ： Icon design such as "Back to top of page", "Favorite" button.
org.apache.tools.zip ： Apache ant version of Zip library.
org.apache.pdfbox ： Apache PDFBox: PDF library.
org.apache.commons.codec：Apache Commons Codec : For URL encoding.
jUnRAR : For decompressing RAR format.
Official website of OSS
- jQuery : https://jquery.com/
- Font Awesome : https://fontawesome.com/
- lazyload : https://appelsiini.net/projects/lazyload/
- Apache ant version of Zip library : https://ant.apache.org/
- PDF library : https://pdfbox.apache.org/
- Apache Commons Codec : https://commons.apache.org/proper/commons-codec/
- jUnRAR library : https://github.com/junrar/junrar
Where to get OSS code
- commons-codec : https://commons.apache.org/proper/commons-codec/download_codec.cgi
- commons-logging : https://commons.apache.org/proper/commons-logging/download_logging.cgi
- pdfbox, fontbox : https://pdfbox.apache.org/download.cgi
- Apache ant(Binary) : https://ant.apache.org/bindownload.cgi
- Apache ant(Source) : https://ant.apache.org/srcdownload.cgi
- jUnRAR(jar) : https://javalibs.com/artifact/com.github.junrar/junrar
OSS license notation
jQuery : Copyright 2018 The jQuery Foundation. jQuery License
Font Awesome : (C) 2017 - Fonticons, Inc. All rights reserved licensed under the SIL OLF License.
lazyload : Copyright (C) 2017 Mika Tuupola licensed under the MIT License.
Apache ant : Copyright (C) 1999-2018 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
Apache PDFBox : Copyright (C) 2009-2018 The Apache Software Foundation. Licensed under the Apache License, Version 2.0.
Apache Commons Codec : Copyright (C) 2002-2017 The Apache Software Foundation. All Rights Reserved.
Copyright notice of this program
Copyright (C) 2018 by apollomaniacs. All rights reserved. No part of this program , data , textures may be copied or distributed, transmitted, transcribed in a retrieval system or translated into any computer or human language in any form by any means without permission of apollomaniacs.
- Support English
- Added a function to check for new versions
- Changed titles for which title reading was not set to use titles themselves for reading classification
- Add volume missing check option ([Settings] - [Log] - "Warn the title with missing volumes")
- Temporary support CDisplay Archived Comic Books(.cbz, .cbr, .cb7, .cbt, cba).
- Add a link to the title page that contains each book in Newcomer list
- Add tooltips to each book in the favorites list
- Add author information to tooltips of each book
- Add "Author list" to output option of top page
- Progress bar has been improved to more accurately reflect the weight of each work
- IE, Edge support: Add an option not to encode for link URL to each HTML page (Initial value is UTF - 8)
- Fixed bug that sometimes creation of "other" list of categories, subcategories, author, title reading, author reading may be wrong
- Fixed bug that default (sample) character string was set at next startup when clear Ignore keyword of cover image, Category keyword of data output.
- Add a function to generate a cover image of a folder containing multiple titles by combining the cover images of each title for each category, subcategory list by top page, and index by author reading
- Added ability to display book storage folder path on each title page
- Add tooltips to links and titles to each book
- Change the Copyright notation to a hyperlink to the website
- Support e-book files in RAR format (except cover image display of RAR 5)
- Added "filter" function. It is possible to limit the file to be scanned
- Changed number of titles and books displayed in the completed titles index from those of the entire library to those of completed titles
- Fixed bug that an exception occurs when output folder is blank in "Data output" and "Log" screen
- Fixed bug that does not memorize window position of application
- Review of sorting of title: Changed so that katakana and hiragana are not sorted individually
- Changed to delete system files and * .html at runtime to prevent unused files from remaining when repeatedly executed
- Changed to delete past unused cover image when e-book file name was changed
- Changes to memorize the position and size of the application's window
- Changed to output Newcomer judgment information in log
- Support to enlarging operation of application window
- Set icons in various dialogs
- Changed not to delete user's configuration files (bookfiledate.txt, ebookshelf.ini, ebookshelf_inputfiles.txt) during uninstallation
- Changed to display the number of folders being scanned when scanning folders
- Blank spaces are deleted from "Author name separator" to prevent separation of authors including spaces
- Fixed a bug that author name including "(", ")" (parentheses) can not be decoded correctly