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

@stranger27 · 2025-05-13 17:18 · Team Ukraine

Привіт! Сьогоднішній пост призначений для любителів книг та щасливих власників електронних читалок на кшталт 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

#hive-165469 #ua #ecency #books #coding #python #hive #life #blog #neoxian #ecency
Payout: 0.000 HBD
Votes: 74
More interactions (upvote, reblog, reply) coming soon.