Các phần mềm được sử dụng trong bài viết:
- Aspose.Words Express: [Only member can see links]
- Calibre: [Only member can see links]
- Kindlegen: [Only member can see links]
- Notepad++ 6.5.5: [Only member can see links]

Dưới đây là cách build eBook đa định dạng từ [Only member can see links] của Decepticon

Ưu điểm:
- Nhanh hơn Calibre rất nhiều, đặc biệt với những truyện >1000 chương Calibre bó trym nhưng cách này thì ko.
- Ebook tạo ra sẽ có mục lục NCX cực prồ giành riêng cho Kindle for Android/iOS

Nhược điểm:
- Hơi thủ công tý :P


Hướng dẫn build eBook đa định dạng (AZW, EPUB, MOBI, PRC)
Bước 1: Creat Raw ePub (Tạo ePub thô)
Sau khi có source HTML eBook với phần lõi là [Only member can see links], các bạn convert nó thành ePub thô bằng Aspose.Words Express
Tên file HTML phải viết liền - không dấu, ví dụ hdht.html not Hi Du Hoa Tùng.html
Spoiler


Bước 2: Tuning the ePub
Đổi đuôi .epub sang .zip rồi giải nén. Tiếp đến vô thư mục OEBPS chỉnh sửa 3 file sau:

1/ styles.css
Thay toàn bộ styles.css bằng đoạn code sau:
Mã PHP:
/***********************************************/
/* Styles for document saved to a stream       */
/* Generated by Aspose.Words for .NET 10.2.0.0 */
/***********************************************/

body font-family:'Times New Roman'serif }
h1h2margin:0pt }
h1 color:#990000; font-size:1.40em; font-weight:normal; margin:0.20em 0em; page-break-after:avoid; page-break-before:always; text-align:center }
h2 color:#0099cc; font-size:1.40em; font-style:normal; font-weight:normal; margin:0.20em 0em 1.40em; page-break-after:avoid; page-break-before:always; text-align:center }

.PMsoTitle color:#ff0000; font-size:1.44em; margin:0.12em 0em 0em; text-align:center }
.PMsoNormal font-size:1em }
.
PMsoToc1 font-size:1emmargin:0.16em 0emtext-align:center }
.
PMsoToc2 font-size:1emmargin:0.12em 0emtext-indent:12pt }
.
PHeading0 font-size:1.2emmargin:0.16em 0em 12ptpage-break-before:alwaystext-align:center }
.
PQCParagraph font-size:1.2emmargin:0.20em 0em 0.48emtext-indent:14.4pt 
Các bạn thay color, font, font-size, in nghiêng/in đậm... của các Style (Title, Heading, Toc...) tùy theo sở thích nhé
In nghiên: font-style: italic
In đâm: font-weight:bold
Giữa dòng: text-align:center
Màu sắc phổ biến [Only member can see links]
2/ untitled.html
Mở untitled.html bằng N++ các bạn sẽ thấy tất cả nội dung bị dồn vào một dòng duy nhất nên load rất lâu, cẩn phải fix lại, một số code rác không cần thiết cũng nên replace cho dễ nhìn.
Đặc biệt, dưới mỗi Heading (H0, H1, H2...) sẽ là một dòng bị thụt vào giữa rất chi khốn nạn, chả hiểu thằng Aspose tự sướng thêm làm cái éo gì.


Find (chọn Regular Expression) Repalce
1/ Fix liền dòng
>(<[ph]) >\n\1
([ph]>)< \1\n<
..... ..... .....
2/ Fix thụt dòng {Xóa text-align:center ở dòng bị thụt vào giữa}
style="margin-bottom:14pt; text-align:center"> >
..... ..... .....
3/ Fix URL <a href= <a style="text-decoration: none !important;" href=
..... ..... .....
4/ Fix code rác {Bỏ qua cũng được}
; text-decoration:underline (trống)
style="margin-bottom:14pt"> >
<span>([^\n]+)</span> \1

Nhớ mở cái untitled.html bằng Chrome, Firefox... kiểm tra lại nhá, ở đây ta chỉ ví dụ một vài lỗi thôi.
3/ filename.opf
Thay toàn bộ từ đầu cho đến <manifest> bằng đoạn code sau:
Mã:
<?xml version="1.0" encoding="utf-8"?><package xmlns="http://www.idpf.org/2007/opf" version="2.0" unique-identifier="uid">
<metadata xmlns:opf="http://www.idpf.org/2007/opf" xmlns:dc="http://purl.org/dc/elements/1.1/">
<dc:title>Tên Truyện</dc:title>
<dc:creator>Tên Tác Giả</dc:creator>
<dc:identifier id="uid">Aspose</dc:identifier>
<dc:language>en-US</dc:language>
<dc:contributor opf:role="bkp">Aspose.Words for .NET 10.2.0.0</dc:contributor>
<meta name="generator" content="Aspose.Words for .NET 10.2.0.0" />
<meta name="cover" content="cover" />
</metadata>
<manifest>
<item id="cover" href="Cover.jpg" media-type="image/jpeg" />
Quên. Vứt ảnh bìa vào thư mục OEBPS rồi đổi tên thành Cover.jpg
Nếu ảnh bìa có định dạng .png thì ... <item id="cover" href="Cover.png" media-type="image/png" />

Bước 3: Finishing ePub (bỏ qua nếu ko đọc ePub)
Đóng gói lại như cũ chúng ta sẽ có 1 ePub hoàn chỉnh, đọc ngon lành trên PC.
Cơ mà nếu source HTML nặng quá Android/iOS sẽ ko load được, khi đó các bợn bắt buộc phải convert sang định dạng MOBI (xem Bước 4) hoặc loại ePub có source HTML chia nhỏ bằng Calibre.
Tuy băm nhỏ ePub nhanh hơn nén MOBI chế độ HC nhiều nhưng ta không thích thằng .ZIP trá hình này vậy nên ta chỉ làm ePub khi các em gái (có ảnh) yêu cầu :oni19:

Bước 4: Convert OPF to MOBI
- Đổi tên và vị trí thư mục Kindlegen sao cho đường dẫn tới kindlegen.exe là C:\Kindlegen\kindlegen.exe
- Tạo một New Text Document nội dung như dưới rồi đổi tên thành Kindlegen.bat (đuôi .bat ko phải .txt nữa nhé)
Mã HTML:
@echo off
set /p file="Nhap duong dan file: " %=%
set /p num="Nhap che do nen (0, 1 hoac 2): " %=%
C:\Kindlegen\kindlegen.exe %file% -c%num%
- Chạy Kindlegen.bat, kéo cái filename.opf vào màn hình command, Enter ...

Kết quả ta sẽ được 1 ebook .MOBI có mục lục NCX như của lão Bigbang (mục lục 1 hay 2 lớp là do thiết kế ban đầu của các vị, ko liên quan đến ta)
Spoiler

Bước 5: Unpack MOBI to AZW3 + PRC
Thực tế MOBI do 2 thằng AZW3 và PRC ghép lại với nhau (MOBI 10Mb = AZW 4Mb + PRC 3Mb + HTML 3Mb), đó là lý do vì sao nó lại nặng như vậy.
Để có eBook nhỏ, nhẹ, xì tin các bợn nên tách nó thành AZW3 và PRC dùng cho mục đích khác nhau. AZW3 chất lượng y hệt MOBI, hoạt động tốt trên Kindle for Android/PC còn PRC cùi bắp thì... khỏi phải nói.

Cách làm: Cài đặt plugin Kindle Unpack cho Calibre, chọn Split KF8/MOBI.... Thời gian Unpack khá lâu, mất tận... 3 giây.

Kindle Unpack: [Only member can see links]

Spoiler


P/s: Đáng tiếc là MOBI, AZW3 không hỗ trợ Encryption để chống copy text như PRC build bằng Mobipocket Creator :sosad:)