Конвертація формату книг та документів за допомогою утиліти ebook-convert

avatar
(Edited)

Привіт! Сьогоднішній пост призначений для любителів книг та щасливих власників електронних читалок на кшталт Amazon Kindle.

У мене самого є Kindle, і часом буває що на очі попалась якась цікава книга, але в форматі pdf, а Kindle хоча й вміє відкривати такий формат, все ж більше любить epub . Саме в цьому форматі потрібно відправляти на свою пошту в акаунті амазона книгу, щоб вона зʼявилась в читалці Kindle (звісно, можна й через шнурок юсб, але то надто легко, а іноді хочеться прислати книгу другу і т.п.)

В такому випадку дуже зручно використовувати менеджер електронних книг Calibre ( https://calibre-ebook.com/download ) який працює на будь-якій операційній системі. Крім того, що в ньому можна читати книги різноманітних форматів, він цікавий тим, що після встановлення можна конвертувати один формат книг в інший однією командою в терміналі:

ebook-convert input_file output_file

Докладніше про це на цій сторінці: https://manual.calibre-ebook.com/generated/en/ebook-convert.html

Для себе ж я написав такий ось простий скриптик на Python (convert_book.py):


import subprocess
import os

def convert_file(input_file, output_format="epub"):
try:
#Detect input format based on file extension
input_format = os.path.splitext(input_file)[1][1:] # Extract file extension without dot

    if not input_format:
        print("Could not detect input format. Please provide a valid file.")
        return

    #Construct output file name
    output_file = os.path.splitext(input_file)[0] + f".{output_format}"

    #Call Calibre's ebook-convert command
    subprocess.run(["ebook-convert", input_file, output_file], check=True)
    print(f"Conversion successful! {output_format.upper()} saved at: {output_file}")

except subprocess.CalledProcessError as e:
    print(f"Error during conversion: {e}")
except FileNotFoundError:
    print("Calibre's ebook-convert tool is not installed or not in PATH.")

#Example usage
input_file = input("Enter the name of the file (including extension): ") # Get full file name from user
output_format = input("Enter the desired output format (default: epub): ") or "epub"

convert_file(input_file, output_format)

Використання:

Просто скопіюйте книгу, яку треба конвертувати в папку зі скриптом і потім запустити сам скрипт (звісно, до цього моменту вже має бути встановлений Calibre та Python :) ) .

Потім введіть назву книгу з її форматом, та формат в який треба зконвертувати і тицніть Enter.

Наприклад:

python3 convert_book.py
Enter the name of the file (including extension): Tai_Chi_Qigong.pdf
Enter the desired output format (default: epub): fb2



0
0
0.000
2 comments