Kindle Paperwhite: Mẹo & Sách
inno14
7 nămBình luận: 2.437
vupicaso
TÍCH CỰC
4 năm
Cho mình xin cuốn The Innocent, 2005 nhe, thanks
inno14
TÍCH CỰC
4 năm
@vupicaso Mấy cuốn Harlan Coben lên kệ hết rùi đó bạn, ở các post trên á, click vào link là tải về thôi. 😃
vupicaso
TÍCH CỰC
4 năm
Th
Thanks b nhe, e ko de y :p
inno14
TÍCH CỰC
4 năm
Ngăn 155 (trinh thám cổ trang): https://drive.google.com/open?id=0B7LJ4gn2ec0BNHJWUXJxUjFJcUU
1.jpg
----
Cuốn này mình có làm thêm cái bookmark, các bạn thích xài thì xem mẹo số 16#1 nhé
kaoaye
TÍCH CỰC
4 năm
Em khoai trinh thám cổ trang mà hiếm quá!
zthanhtamz
ĐẠI BÀNG
4 năm
Bạn inno14 cho mình hỏi khi tạo file azw3 bằng Calibre có lệnh nào split hàng loạt giống lệnh <hr class="sigil_split_marker" /> trên Sigil không bạn. Xin cảm ơn.
inno14
TÍCH CỰC
4 năm
@zthanhtamz Calibre thì đơn giản lắm, không cần chèn thẻ <hr> đâu, bạn làm như hình nhé:
1. Nhấp phải vào phần soạn thảo

2. Nhập lệnh như hình hoặc bấm vào chiếc đũa để có thêm nhiều lựa chọn:


3. Xong 😁
zthanhtamz
ĐẠI BÀNG
4 năm
@inno14 Ok mình đã hiểu. Cảm ơn bạn nhiều
Cho mình hỏi làm sao hiển thị bìa sách trên kệ trong kindle paperwhite 2017 vậy các bác. Mình tải file aw3 ở một số trang và ở link trong topic, nhưng chỉ vài sách hiện cover và phần lớn không hiện. Bấm vào sách thì thấy trang đầu có bìa.
inno14
TÍCH CỰC
4 năm
@khanhtrinh Bạn cài đặt chương trình calibre cho máy tính, add sách vào calibre, cắm cáp nối kindle vào pc, đợi vài giây thì calibre sẽ nhận ra kindle, sau đó click vào 1 hoặc nhiều sách chọn send to device để gởi sách vào kindle, nếu sách hiện cover trong calibre thì khi vào kindle chắc chắn sẽ có cover thôi 😃
@inno14 Cảm ơn bác. Mình phát hiện là nếu copy sách vào Kindle như chép USB thì thường hay bị mất cover. Dùng Calibre copy thì ổn định hơn. Và nếu cover quá bé (vì mình lấy hình google nhiều khi không có size lớn) thì dù có Edit meta data, convert lần nữa rồi bỏ vào thì cover cũng không hiển thị trong tủ sách. Tuy nhiên cover vẫn hiển thị ở ngoài màn hinh Home. Hơi lạ. Tốt nhất là kiếm cover cho to cho đẹp vào 😁
mrdzu165
ĐẠI BÀNG
4 năm
inno14
TÍCH CỰC
4 năm
@mrdzu165 Link: https://archive.org/stream/MenAreFromMarsAndWomenAreFromVenus/Men are from Mars and Women are from Venus#page/n0/mode/2up
Bạn xem thử có đúng cuốn mình cần không rồi mới tải nhé. Nút tải ngay bên trên trang tài liệu.
inno14
TÍCH CỰC
4 năm
Calibre Ebook-edit - Toàn tập 😁

Calibre ngoài chức năng quá quen thuộc là convert các định dạng thì nó còn kèm theo các chương trình tiện ích như ebook-viewer, ebook-edit. Hôm nay mình viết bài giới thiệu về ebook-edit để các bạn tham khảo nhé :D.
Ebook-edit là một chương trình biên tập ebook tương tự với Sigil nhưng ít được người dùng biết đến. Sau đây là bài giới thiệu tổng quát, mời các bạn theo dõi:
A. Bước chuẩn bị - xử lý nguồn tex.
Dữ liệu nguồn có thể là txt, html, hoặc docx. Mình xin lấy docx để minh họa vì sự phổ biến của nó nhé. Ví dụ chúng ta có dữ liệu nguồn thế này

Các bước xử lý cơ bản như sau:

1. Giữ định dạng nghiêng

Bấm tổ hợp Ctrl+h để vào Find and Repalce
Tại ô Find các bạn để trống và bấm tổ hợp phím Ctrl+i
Tại ô Repalce các bạn điền <i>^&</i>
Replace All


2. Giữ định dạng đậm

Tại ô Find các bạn để trống và bấm tổ hợp phím Ctrl+b
Tại ô Repalce các bạn điền <b>^&</b>
Replace All


3. Gắn thẻ <p>
Trở về đầu văn bản và enter xuống 1 dòng trắng.
Bấm tổ hợp Ctrl+h để vào Find and Repalce
Tại ô Find các bạn bấm vào No Formatting để xóa định dạng nếu có và điền ^p
Tại ô Repalce các bạn điền </p>^p<p>
Replace All
* chú ý nếu có line break các bạn làm thêm 1 lần nữa với ^l


Dữ liệu sau khi xử lý sẽ như hình:


B. Vào chương trình Ebook edit
1. Kích hoạt chương trình trong thư mục Calibre

2. Tạo 1 ebook mới


3. Khai báo metadata (Tên ebook, tác giả) và định dạng ebook (có 2 loại là epub và azw3, mình dùng kindle nên chọn azw3 nhé 😃 )


4. Xác định Cover


5. Chép dữ liệu nguồn vào cửa sổ soạn thảo

Copy từ thẻ <p> đầu tiên đến hết ở word và dán vào phần giữa thẻ <body>. Kết quả như hình.


6. Bố cục heading

Đặt con trỏ tại thẻ <p> muốn đặt heading, bấm vào biểu tượng chữ H để xác định.


7. Tạo css (style định dạng văn bản)

• Click vào biểu tượng New file


• Đặt tên với cú pháp: ten.css


• Soạn thảo css (tham khảo tại box hướng dẫn biên tập epub của diễn đàn TVE-4u nhé, giống nhau thui)


• Kết nối html với css, click phải (1 hoặc nhiều html) chọn Link stylesheet


Chọn css đã soạn và ok


8. Bật hộp thoại Find & Replace


9. Làm chú thích
(làm khi chưa phân tách html nhé)
Nội dung chú thích phải được đặt theo cú pháp ^[nội dung chú thích] và nằm sau từ cần chú thích.


• Chèn class chú thích
Di chuyển đến cuối tài liệu (Ctrl+end). Thêm dòng code sau vào trước thẻ kết thúc </body>. Sau đó bấm vào biểu tượng bông hoa để chương trình tút lại code cho đúng chuẩn mới chạy tiếp lệnh được nhé 😃
Code:
<p class="chuthich">Chú Thích</p>


• Dịch chuyển chú thích
Chế độ Regex nhé các bạn
Ô Find soạn code như sau (copy paste nhé):
Code:
\^\[(.*?)\](?s)(.*?</p>)(.*?)(

</body>)
Ô Replace code như sau:
Code:
[*]\2\3<p>[*]\1</p>\4
Replace all đến khi nào hết chú thích nhé (bấm cực lực vào). Xong hết chú thích rồi nhớ bấm bông hoa cái nữa nhé.



• Ngắt chú thích thành html độc lập
Click phải vào khung soạn thảo rùi làm theo hình nhé






• Đánh số chú thích
* Lúc này mình phải chuyển chế độ sang Regex_function và current file nhé.

* Bấm vào Create/edit để chép đoạn code sau đây vào hộp thoại bung ra nhé, và đặt cho nó cái tên nhé (mình đặt là note_number).
Code:
def replace(match, number, file_name, metadata, dictionaries, data, functions, *args, **kwargs):
    note_number = '%d' % number
    return "[" + note_number + "]"

# Ensure that when running over multiple files, the files are processed
# in the order in which they appear in the book
replace.file_order = 'spine'

* Chạy lần lượt cho từng html các lệnh sau
Ô Find: \[\*\]
Ô Function: note_number
Mode Regex_function - Current file
Replace all nhé




• Liên kết chú thích
Chuyển về chế độ Regex - Current file nhé
* html nội dung:
Find:
\[(\d+)\]
Replace:
<a id="b\1" href="part0000_split1.html#n\1"><sup>[\1]</sup></a>


* htm chứa chú thích
Find:
<p>\[(\d+)\]
Replace:
<p id="n\1"><a href="part0000.html#b\1"><sup>[\1]</sup></a>



10. Tách html

Mình ví dụ cho thẻ h1, các trường hợp khác tương tự. Nhấp phải vào khung soạn thảo và làm như hình nhé




11. Tạo mục lục



---Hết---

* Phần thêm 25/9/2017: Thẻ div với một số thế combo đơn giản để định dạng văn bản
• Các bạn xem hình minh họa sẽ thấy các thẻ p đều rất sạch nhé, tất cả là nhờ vào các đòn combo của thẻ div đấy

• Ảnh & code trình bày các thế combo của thẻ div

Code:
p{ /*Thẻ p sẽ được định dạng tổng quát cho toàn bộ ebook*/
  margin:0;
  text-indent: 2em;
  text-align: justify;
  }
div.tho p { /*ý nghĩa combo: định dạng cho các thẻ p nằm trong cặp thẻ div có class tho*/
  text-indent: 0;
  text-align: center;
  color: blue;
  font-style: italic;
  }
div.chapter p{ /*ý nghĩa combo: định dạng cho các thẻ p nằm trong cặp thẻ div có class chapter*/
  text-indent: 0;
  text-align: center;
  background-color: pink;
  color: red;
  font-size: 1.2em;
  }
div.chapter + p{ /*ý nghĩa combo: định dạng cho thẻ p nằm ngay sau cặp thẻ div có class chapter*/
  text-indent: 0;
  }
div.chapter + p:first-letter{ /*ý nghĩa combo: định dạng cho ký tự đầu tiên của thẻ p nằm ngay sau cặp thẻ div có class chapter*/
  font-size: 3em;
  float: left;
  margin: -0.2em 0em -0.2em 0em; /*top right bottom left*/
  }
* Phần thêm 25/9/2017: Tạo Mục Lục bằng Xpath, chỉnh sửa nội dung TOC hiển thị ở toc.ncx, đính kèm trang mục lục vào ebook.
1. Tạo Mục Lục bằng Xpath






2. Chỉnh sửa nội dung TOC hiển thị ở toc.ncx (nội dung mục lục này sẽ hiển thị trong Table of Content của các app đọc epub). Có thể dùng regex / current file để sửa hàng loạt.


3. Đính kèm trang mục lục vào ebook (một số thích, một số không, tùy ý mọi người, nhưng nếu đã đính thì phải đẹp 😃 ). Làm sau khi đã chỉnh sửa hoàn thiện mục 2.

• Trang toc.xhtml sẽ được chèn vào đầu ebook

• Áp dụng các thế combo để định dạng cho trang toc.xhtml này nhé

Code:
/* Styles cho trang mục lục đính vào nội dung ebook */
ul.level1 li{
  text-indent: 0;
  text-align: center;
  font-size: 0.8em;
  margin: 0.5em 0em 0.5em 0em; /*top right bottom left*/ /* xác định khoảng cách giữ các thẻ li*/
  line-height: 1.5em; /* xác định khoảng cách xuống dòng cho thẻ br trong thẻ li */
  }
Phần thêm 25/9/2017: Một số quy ước cơ bản ở chế độ tìm kiếm regex và ví dụ
* 1 cụm bất kỳ kể cả khoảng trắng được quy ước là: .*?
* Số tự nhiên: d+
* Tìm chính xác 1 ký tự đặc biệt: \ (ví dụ \? \* \^)
* Ký tự unicode: \p{L}
* Ký tự unicode viết hoa: \p{Lu}
* Ký tự unicode viết thường: \p{Ll}
* Phân nhóm 1 chuỗi bằng bộ () trả về giá trị tương ứng với vị trí xuất hiện của () ví dụ \1 \2 \3
* Bộ [] dùng để chứa các lựa chọn khi tìm kiếm (hoặc cái này hoặc cái kia)
* Bộ {} chứa số lần lặp lại
----
Ví dụ 1: sửa lỗi không viết hoa sau dấu chấm, dấu chấm hỏi, dấu chấm than mình lập cú pháp ở chế độ Regex-function - Case sensitive
Find: ([\.\?\!]) (\p{Ll})
Function: Upper-case text (click mũi tên và chọn trong phần Function)



Ví dụ 2: tìm chương để gắn thẻ div.chapter Lúc này chuyển về chế độ Regex
Find: <p>(Chương) (.*?)</p>
Replace: <div class="chapter"><p>\1 \2</p></div>
Replace all


Ví dụ 3: ngắt dòng nội dung chương tại số chương là 1 số tự nhiên
Find: <p>(Chương) (\d+) (.*?)</p>
Replace: <p>\1 \2<br/>\3</p>


Ví dụ 4: ngắt dòng nội dung chương tại số chương là số la mã
Find: <p>(Chương) ([IVXLCDM]{0,10}) (.*?)</p>
Replace: <p>\1 \2<br/>\3</p>


* Phần thêm 26/9/2017: Cài từ điển tiếng Việt và cách dùng Check spelling Alt+F7
1. Cài từ điển.
Các bạn tải file vi.rar mình đính kèm ở post này, giải nén ra sẽ được thư mục "vi". Chép thư mục này vào thư mục dictionaries của calibre.
* Nguồn từ điển: https://github.com/1ec5/hunspell-vi/tree/master/dictionaries

hunspell-vi/dictionaries at master · 1ec5/hunspell-vi

Vietnamese spell checking dictionaries for Firefox and OpenOffice.org - hunspell-vi/dictionaries at master · 1ec5/hunspell-vi
github.com

Code:
..\Calibre\Calibre\app\resources\dictionaries


2. Cách dùng Check spelling Alt+F7
Muốn sử dụng chức năng Check spelling các bạn phải khai báo ngôn ngữ cho ebook, lúc tạo 1 ebook mới editor đã bắt buộc người dùng chọn một ngôn ngữ chung cho toàn ebook, và được khai báo tại thẻ <html> với thuộc tính lang. Các bạn có thể khai báo lại nếu chưa đúng, hoặc chưa có.
• Tiếng Việt: lang="vi"
• Tiếng Anh: lang="en"
Nếu ngoài ngôn ngữ chung là tiếng Việt còn có tiếng Anh thì các bạn có thể khai thuộc tính lang cho thẻ <p> nếu cả đoạn đều là tiếng Anh, cho thẻ <span> nếu là 1 từ hoặc 1 cụm từ.
Bên dưới là một số ảnh minh họa:




tiachopxanh
ĐẠI BÀNG
4 năm
@inno14 Tuyệt vời ông mặt trời, cám ơn bác @inno14 nhiều nhiều.
inno14
TÍCH CỰC
4 năm
Bổ sung link tải từ điển tiếng việt cho Calibre Ebook-edit ở #1809
https://drive.google.com/file/d/0B7LJ4gn2ec0BeFVldzdDRE5QRms/view?usp=drivesdk
zomkey
ĐẠI BÀNG
4 năm
Quá công phu luôn đó bác ? Bác nên lưu lại những bài ntn, nhỡ web có drop thì có cái mà backup 😁
inno14
TÍCH CỰC
4 năm
@zomkey Thực tình là mình không có lưu trong máy :D nếu mất thì chịu vậy 😔 Mình có post 1 bản nữa ở bên Tve-4u 😃 Chắc ko xui đến mức cả 2 diễn đàn lớn đều rủ nhau chết :D
inno14
TÍCH CỰC
4 năm
Calibre Book-edit - Phần thêm 1/10/2017: Thu gom các nội dung chú thích không đồng dạng và nằm rải rác ở nhiều html.
Text mình làm thì chú thích sẽ theo cú pháp của mình rồi, nhưng khi sưu tầm text thì các chú thích sẽ theo ý của người soạn, theo kinh nghiệm sưu tầm text của mình thì có 2 dạng chú thích thường được mọi người sử dụng là đánh chỉ số chú thích hoặc đánh dấu sao và nội dung chú thích nằm riêng ở 1 dòng gần đó nên mình viết cái code gom luôn 1 lần 2 loại cho gọn 😁
Chúng ta sử dụng chế độ tìm kiếm Regex function / All text file / Replace all. Sau khi chạy lệnh sẽ xuất hiện 1 hộp thoại chứa các chú thích + địa chỉ của chúng. Bên dưới là code regex function và các ảnh minh họa.
Cú pháp ô Find:
Code:
(<p>\(\*{1,}\).*?</p>|<p>\[\d+\].*?</p>)
Nhấp create/edit dán đoạn code bên dưới và đặt cho nó 1 cái tên nhé
Code:
#Find: (<p>\(\*{1,}\).*?</p>|<p>\[\d+\].*?</p>)
def replace(match, number, file_name, metadata, dictionaries, data, functions, *args, **kwargs):
    f=file_name
    note=match.group(1)+f
    print(note)
    return ''
replace.file_order = 'spine'







pkdiep
ĐẠI BÀNG
4 năm
Các bác ơi em cũng định mua 1 cái KPW2017 về đọc sách, do chưa tìm hiểu được sâu nên mạn phép nhờ các bác tư vấn giúp em mấy ý với: máy KPW hỗ trợ đọc ebook tiếng Việt có bị hiện tượng lỗi font không? Các nguồn ebook từ các định dạng khác có thể convert về 100% định dạng của KPW không? Trân trọng cảm ơn!
inno14
TÍCH CỰC
4 năm
@pkdiep Hì, đầu tiên bạn phải xác định được sách của bạn đọc là thể loại gì, kindle chỉ phù hợp với thể loại tiểu thuyết, hồi ký,... đa phần thuộc mảng giải trí và xã hội. Nếu bạn đọc sách khoa học, sách kỹ thuật... thì kindle hoàn toàn không phù hợp. Ebook hiện nay đều được soạn bằng unicode nên sẽ không xảy ra hiện tượng lỗi font trên kindle khi dùng font bookerly có sẵn trong máy - ngoài ra kindle còn hỗ trợ font nhúng của ebook (đương nhiên là unicode) nên vấn đề font hoàn toàn không lo ngại. Mọi định dạng ebook đều có thể chuyển về định dạng kindle bằng phần mềm Calibre, còn đẹp hay xấu thì lại là vấn đề khác rùi 😃
Thân.
Ps: khi chưa xác định mình sẽ đọc sách gì thì đừng mua kindle nhé 😃
zthanhtamz
ĐẠI BÀNG
4 năm
Mình mới mua Kindle paperwhite, mà trong màn hình Home screen và trong mục All/Downloaded nó cứ hiện cuốn User's Guide 5th Edition, không có cách nào xóa được. Bạn cho mình hỏi có cách nào xóa nó đi không? Nhìn ngứa mắt quá.
vupicaso
TÍCH CỰC
4 năm
@zthanhtamz b nhấn giữ vào cuốn sách đó, rồi chọn remove from device nhé !
zthanhtamz
ĐẠI BÀNG
4 năm
Đối với sách mình chép vào thì xoa như vậy dc, còn cuốn này nó mặc định sẵn trong máy rồi, khi mình nhấn giữ nó chỉ ra tùy chọn: Add to Home, Add to colection, Book Description, không có cái nào là remove hay Delete cả.
gaubattu
ĐẠI BÀNG
4 năm
@vupicaso Cái cover bạn mua ở đâu thế? Cho mình địa chỉ mua với.
vupicaso
TÍCH CỰC
4 năm
@gaubattu cài này là cover chính hãng amazon bạn ơi, đứa bạn e nó xách tay về, cũng lâu rùi, bạn cứ lên amazon tìm là có ý mà
gaubattu
ĐẠI BÀNG
4 năm
@vupicaso Mình đang tính đặt làm 1 cái handmade bằng da. Nhưng chưa hiểu cái nam châm phải đặt như thế nào để đóng mở nó tự tắt màn hình được? Bạn có thể mô tả giúp mình được không? Cái video ở #1 bị xóa rồi không coi được.
vupicaso
TÍCH CỰC
4 năm
@gaubattu Bạn xem ở đây nhé, họ có hướng dẫn đó, chỉ cần gắn miếng nam châm vào mặt trong nắp bao da sao cho khi gập lại trùng với vị trí đặt cảm biến từ của Kindle là có thể đóng mở màn hình được rùi. Nhưng mình nghĩ tự làm sẽ ko đẹp đâu, lại tốn công nữa, tốt nhất mua cho nhanh :p

http://blog.workingsi.com/2013/01/paperwhite-kindle-cover-how-to-add.html
duzgxbe
ĐẠI BÀNG
4 năm
b @inno14 có biết đoạn regex nào replace các chữ cái đầu tiên đoạn thành viết hoa không? ;)
ví dụ
<p>abc => <p>Abc
<p>"abc => <p>"Abc​
Từ hồi biết cái topic này ebook chỗ nào xấu là muốn bung ra sửa luôn 😁
inno14
TÍCH CỰC
4 năm
@duzgxbe Dùng regex function nhé
Find: <p>(\p{L})|<p>"(\p{L})
Function: Uppercase text
duzgxbe
ĐẠI BÀNG
4 năm
ồ tks inno nhé 😁 giờ mới biết thêm mấy cái Function này :D
inno14
TÍCH CỰC
4 năm
Phần thêm ngày 04/10/2017: Tạo nhanh nội dung jacket bằng Regex function.
• Các bạn click vào nút tạo file mới và đặt tên là jacket.html sau đó lôi nó lên đầu trang.
• Nhập chữ jacket vào phần nội dung.
• Chuyển chế độ tìm kiếm sang Regex function
• Cú pháp ô Find: (jacket)
• Ô function: nhấp create/edit để tạo function cho lần chạy đầu tiên. Các bạn copy đoạn code bên dưới dán vào hộp thoại và đặt cho nó cái tên (sau này không cần dán nữa, chỉ cần chọn cái tên này thôi).
• Nhập các thông tin vào nơi phù hợp vào giữa cặp dấu nháy đơn ở đầu code (Title và author không cần nhập do đã khai báo ngay từ đầu tạo ebook). Ok và Replace all
• Code
Code:
#Tạo 1 html với tên jacket.html để ở đầu ebook.
#Gõ chữ jacket vào phần nội dung html.
#Điền thêm tên người dịch, tên của bạn, tên trang xuất bản ebook vào các mục phù hợp giữa 2 dấu nháy đơn.
#Find: (jacket) và Replace all
import datetime
def replace(match, number, file_name, metadata, dictionaries, data, functions, *args, **kwargs):
    title=metadata.title
    author='Tác giả: '+metadata.authors[0]
    trans='Người dịch: '+'tên dịch giả'
    publisher='Người tạo ebook: '+'tên của bạn'
    pubdate='Ngày hoàn thành: '+'{:%d/%m/%Y}'.format(datetime.date.today())
    footer='trang ebook của bạn'
    jacket='''
<style>
.cbj_banner {
    background: #eee;
    color: black;
    border: thin solid black;
    margin: 1em;
    padding: 1em;
    border-radius:8px;
    }
/*
**    Title
*/
table.cbj_header td.cbj_title {
    font-size: 1.5em;
    font-style: italic;
    text-align: center;
}
/*
**    Author
*/
table.cbj_header td.cbj_author {
    text-align: center;
}
/*
**    Publisher/published
*/
table.cbj_header td.cbj_pubdata {
    text-align: center;
}
/*
**    Table containing Rating and Tags
*/
table.cbj_header {
    width: 100%;
    }
/*
**    General formatting for banner labels
*/
table.cbj_header td.cbj_label {
    font-family: sans-serif;
    text-align: right;
    width: 33%;
    }
/*
**    General formatting for banner content
*/
table.cbj_header td.cbj_content {
    font-family: sans-serif;
    text-align: left;
    width:67%;
    }
/*
** Metadata divider
*/
hr.metadata_divider {
    width:90%;
    margin-left:5%;
    border-top: solid white 0px;
    border-right: solid white 0px;
    border-bottom: solid black 1px;
    border-left: solid white 0px;
    }
/*
**    To skip a banner item (Series|Published|Rating|Tags),
**    edit the appropriate CSS rule below.
*/
table.cbj_header tr.cbj_series {
    /* Uncomment the next line to remove 'Series' from banner section */
    /* display:none; */
    }
table.cbj_header tr.cbj_pubdata {
    /* Uncomment the next line to remove 'Published (year of publication)' from banner section */
    /* display:none; */
    }

hr {
    /* This rule controls formatting for any hr elements contained in the jacket */
    border-top: 0px solid white;
    border-right: 0px solid white;
    border-bottom: 2px solid black;
    border-left: 0px solid white;
    margin-left: 10%;
    width: 80%;
    }
.cbj_footer {
    font-family: sans-serif;
    font-size: 0.8em;
    margin-top: 8px;
    text-align: center;
    }
.cbj_comments {
    font-family: sans-serif;
    }
</style>
        <div class="cbj_banner">
            <table class="cbj_header">
                <tbody><tr>
                    <td class="cbj_title" colspan="2">'''+title+'''</td>
                </tr>
                <tr>
                    <td class="cbj_author" colspan="2">'''+author+''' | '''+trans+'''</td>
                </tr>
                <tr>
                    <td class="cbj_pubdata" colspan="2">'''+publisher+'''</td>
                </tr>
<tr>
                    <td class="cbj_pubdata" colspan="2">'''+pubdate+'''</td>
                </tr>           
                <tr>
                    <td class="cbj_author" colspan="2"><hr class="metadata_divider"/></td>
                </tr>
            </tbody></table>
            <div class="cbj_footer">'''+footer+'''</div>
        </div>
'''
    return jacket
replace.file_order = 'spine'
• Ảnh minh họa:










  • Chịu trách nhiệm nội dung: Trần Mạnh Hiệp
  • © 2021 Công ty Cổ phần MXH Tinh Tế
  • Địa chỉ: 209 Đường Nam Kỳ Khởi Nghĩa, Phường 7, Quận 3, TP.HCM
  • Số điện thoại: 02862713156
  • MST: 0313255119
  • Giấy phép thiết lập MXH số 11/GP-BTTTT, Ký ngày: 08/01/2019