Manual de usuario de calibre, Publicación 2.73.0
self.label.setText(prefs['hello_world_msg'])
Complementos para modificar libros
Vamos a cambiar de tercio y enfocarnos en la creación de un complemento para añadir herramientas al editor de libros
de calibre. El complemento está disponible aquí: editor_demo_plugin.zip82 .
El primer paso, como para todos los complementos es crear el archivo vacío con el nombre de importación descrito anteriormente (página 188). Vamos a nombrar el archivo plugin-import-name-editor_plugin_demo.txt.
Ahora creamos el archivo obligatorio __init__.py que contiene los metadatos del complemento: nombre, autor,
versión, etc.
from calibre.customize import EditBookToolPlugin
class DemoPlugin(EditBookToolPlugin):
name = 'Edit Book plugin demo'
version = (1, 0, 0)
author = 'Kovid Goyal'
supported_platforms = ['windows', 'osx', 'linux']
description = 'A demonstration of the plugin interface for the ebook editor'
minimum_calibre_version = (1, 46, 0)
Un solo complemento del editor puede proporcionar múltiples herramientas; cada herramienta corresponde a un único
botón en la barra de herramientas y entrada en el menú Complementos del editor. Éstos pueden tener submenús en el
caso de que la herramienta posea múltiples acciones relacionadas.
Todas las herramientas deben estar definidas en el archivo main.py del complemento. Cada herramienta es una
clase que hereda de la clase calibre.gui2.tweak_book.plugin.Tool (página 302). Echemos un vistazo
al main.py del complemento de demostración; el código fuente está profusamente comentado y se explica por sí
mismo. Lea la documentación de la API de la clase :clase:‘calibre.gui2.tweak_book.plugin.Tool‘ para más detalles.
main.py
Aquí veremos la definición de una herramienta que multiplicará todos los tamaños de letra en el libro por un número proporcionado por el usuario. Esta herramienta demuestra varios conceptos importantes que se necesitarán para
desarrollar otros complementos, por lo que debe leer el código fuente (muy comentado) cuidadosamente.
import re
from PyQt5.Qt import QAction, QInputDialog
from cssutils.css import CSSRule
# The base class that all tools must inherit from
from calibre.gui2.tweak_book.plugin import Tool
from calibre import force_unicode
from calibre.gui2 import error_dialog
from calibre.ebooks.oeb.polish.container import OEB_DOCS, OEB_STYLES, serialize
82
https://calibre-ebook.com/downloads/editor_demo_plugin.zip
196
Capítulo 1. Secciones