mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Speed up import of builting output format plugins
This commit is contained in:
parent
abdb32e1a7
commit
e036afe6d0
@ -523,23 +523,22 @@ from calibre.ebooks.conversion.plugins.lrf_input import LRFInput
|
|||||||
from calibre.ebooks.conversion.plugins.chm_input import CHMInput
|
from calibre.ebooks.conversion.plugins.chm_input import CHMInput
|
||||||
from calibre.ebooks.conversion.plugins.snb_input import SNBInput
|
from calibre.ebooks.conversion.plugins.snb_input import SNBInput
|
||||||
|
|
||||||
from calibre.ebooks.epub.output import EPUBOutput
|
from calibre.ebooks.conversion.plugins.epub_output import EPUBOutput
|
||||||
from calibre.ebooks.fb2.output import FB2Output
|
from calibre.ebooks.conversion.plugins.fb2_output import FB2Output
|
||||||
from calibre.ebooks.lit.output import LITOutput
|
from calibre.ebooks.conversion.plugins.lit_output import LITOutput
|
||||||
from calibre.ebooks.lrf.output import LRFOutput
|
from calibre.ebooks.conversion.plugins.lrf_output import LRFOutput
|
||||||
from calibre.ebooks.mobi.output import MOBIOutput
|
from calibre.ebooks.conversion.plugins.mobi_output import MOBIOutput
|
||||||
from calibre.ebooks.oeb.output import OEBOutput
|
from calibre.ebooks.conversion.plugins.oeb_output import OEBOutput
|
||||||
from calibre.ebooks.pdb.output import PDBOutput
|
from calibre.ebooks.conversion.plugins.pdb_output import PDBOutput
|
||||||
from calibre.ebooks.pdf.output import PDFOutput
|
from calibre.ebooks.conversion.plugins.pdf_output import PDFOutput
|
||||||
from calibre.ebooks.pml.output import PMLOutput
|
from calibre.ebooks.conversion.plugins.pml_output import PMLOutput
|
||||||
from calibre.ebooks.rb.output import RBOutput
|
from calibre.ebooks.conversion.plugins.rb_output import RBOutput
|
||||||
from calibre.ebooks.rtf.output import RTFOutput
|
from calibre.ebooks.conversion.plugins.rtf_output import RTFOutput
|
||||||
from calibre.ebooks.tcr.output import TCROutput
|
from calibre.ebooks.conversion.plugins.tcr_output import TCROutput
|
||||||
from calibre.ebooks.txt.output import TXTOutput
|
from calibre.ebooks.conversion.plugins.txt_output import TXTOutput, TXTZOutput
|
||||||
from calibre.ebooks.txt.output import TXTZOutput
|
from calibre.ebooks.conversion.plugins.html_output import HTMLOutput
|
||||||
from calibre.ebooks.html.output import HTMLOutput
|
from calibre.ebooks.conversion.plugins.htmlz_output import HTMLZOutput
|
||||||
from calibre.ebooks.htmlz.output import HTMLZOutput
|
from calibre.ebooks.conversion.plugins.snb_output import SNBOutput
|
||||||
from calibre.ebooks.snb.output import SNBOutput
|
|
||||||
|
|
||||||
from calibre.customize.profiles import input_profiles, output_profiles
|
from calibre.customize.profiles import input_profiles, output_profiles
|
||||||
|
|
||||||
|
@ -8,14 +8,12 @@ __docformat__ = 'restructuredtext en'
|
|||||||
|
|
||||||
import os, shutil, re
|
import os, shutil, re
|
||||||
|
|
||||||
from calibre.customize.conversion import OutputFormatPlugin
|
from calibre.customize.conversion import (OutputFormatPlugin,
|
||||||
|
OptionRecommendation)
|
||||||
from calibre.ptempfile import TemporaryDirectory
|
from calibre.ptempfile import TemporaryDirectory
|
||||||
from calibre import CurrentDir
|
from calibre import CurrentDir
|
||||||
from calibre.customize.conversion import OptionRecommendation
|
|
||||||
from calibre.constants import filesystem_encoding
|
from calibre.constants import filesystem_encoding
|
||||||
|
|
||||||
from lxml import etree
|
|
||||||
|
|
||||||
block_level_tags = (
|
block_level_tags = (
|
||||||
'address',
|
'address',
|
||||||
'body',
|
'body',
|
||||||
@ -289,6 +287,7 @@ class EPUBOutput(OutputFormatPlugin):
|
|||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
def condense_ncx(self, ncx_path):
|
def condense_ncx(self, ncx_path):
|
||||||
|
from lxml import etree
|
||||||
if not self.opts.pretty_print:
|
if not self.opts.pretty_print:
|
||||||
tree = etree.parse(ncx_path)
|
tree = etree.parse(ncx_path)
|
||||||
for tag in tree.getroot().iter(tag=etree.Element):
|
for tag in tree.getroot().iter(tag=etree.Element):
|
@ -7,7 +7,6 @@ __docformat__ = 'restructuredtext en'
|
|||||||
import os
|
import os
|
||||||
|
|
||||||
from calibre.customize.conversion import OutputFormatPlugin, OptionRecommendation
|
from calibre.customize.conversion import OutputFormatPlugin, OptionRecommendation
|
||||||
from calibre.ebooks.fb2.fb2ml import FB2MLizer
|
|
||||||
|
|
||||||
class FB2Output(OutputFormatPlugin):
|
class FB2Output(OutputFormatPlugin):
|
||||||
|
|
||||||
@ -162,6 +161,7 @@ class FB2Output(OutputFormatPlugin):
|
|||||||
def convert(self, oeb_book, output_path, input_plugin, opts, log):
|
def convert(self, oeb_book, output_path, input_plugin, opts, log):
|
||||||
from calibre.ebooks.oeb.transforms.jacket import linearize_jacket
|
from calibre.ebooks.oeb.transforms.jacket import linearize_jacket
|
||||||
from calibre.ebooks.oeb.transforms.rasterize import SVGRasterizer, Unavailable
|
from calibre.ebooks.oeb.transforms.rasterize import SVGRasterizer, Unavailable
|
||||||
|
from calibre.ebooks.fb2.fb2ml import FB2MLizer
|
||||||
|
|
||||||
try:
|
try:
|
||||||
rasterizer = SVGRasterizer()
|
rasterizer = SVGRasterizer()
|
@ -4,22 +4,11 @@ __copyright__ = '2010, Fabian Grassl <fg@jusmeum.de>'
|
|||||||
__docformat__ = 'restructuredtext en'
|
__docformat__ = 'restructuredtext en'
|
||||||
|
|
||||||
import os, re, shutil
|
import os, re, shutil
|
||||||
|
|
||||||
from calibre.utils import zipfile
|
|
||||||
|
|
||||||
from os.path import dirname, abspath, relpath, exists, basename
|
from os.path import dirname, abspath, relpath, exists, basename
|
||||||
|
|
||||||
from lxml import etree
|
|
||||||
from templite import Templite
|
|
||||||
|
|
||||||
from calibre.customize.conversion import OutputFormatPlugin, OptionRecommendation
|
from calibre.customize.conversion import OutputFormatPlugin, OptionRecommendation
|
||||||
from calibre import CurrentDir
|
from calibre import CurrentDir
|
||||||
from calibre.ptempfile import PersistentTemporaryDirectory
|
from calibre.ptempfile import PersistentTemporaryDirectory
|
||||||
from calibre.utils.zipfile import ZipFile
|
|
||||||
|
|
||||||
from urllib import unquote
|
|
||||||
|
|
||||||
from calibre.ebooks.html.meta import EasyMeta
|
|
||||||
|
|
||||||
class HTMLOutput(OutputFormatPlugin):
|
class HTMLOutput(OutputFormatPlugin):
|
||||||
|
|
||||||
@ -50,6 +39,9 @@ class HTMLOutput(OutputFormatPlugin):
|
|||||||
'''
|
'''
|
||||||
Generate table of contents
|
Generate table of contents
|
||||||
'''
|
'''
|
||||||
|
from lxml import etree
|
||||||
|
from urllib import unquote
|
||||||
|
|
||||||
from calibre.ebooks.oeb.base import element
|
from calibre.ebooks.oeb.base import element
|
||||||
with CurrentDir(output_dir):
|
with CurrentDir(output_dir):
|
||||||
def build_node(current_node, parent=None):
|
def build_node(current_node, parent=None):
|
||||||
@ -72,11 +64,18 @@ class HTMLOutput(OutputFormatPlugin):
|
|||||||
return wrap
|
return wrap
|
||||||
|
|
||||||
def generate_html_toc(self, oeb_book, ref_url, output_dir):
|
def generate_html_toc(self, oeb_book, ref_url, output_dir):
|
||||||
|
from lxml import etree
|
||||||
|
|
||||||
root = self.generate_toc(oeb_book, ref_url, output_dir)
|
root = self.generate_toc(oeb_book, ref_url, output_dir)
|
||||||
return etree.tostring(root, pretty_print=True, encoding='utf-8',
|
return etree.tostring(root, pretty_print=True, encoding='utf-8',
|
||||||
xml_declaration=False)
|
xml_declaration=False)
|
||||||
|
|
||||||
def convert(self, oeb_book, output_path, input_plugin, opts, log):
|
def convert(self, oeb_book, output_path, input_plugin, opts, log):
|
||||||
|
from lxml import etree
|
||||||
|
from calibre.utils import zipfile
|
||||||
|
from templite import Templite
|
||||||
|
from urllib import unquote
|
||||||
|
from calibre.ebooks.html.meta import EasyMeta
|
||||||
|
|
||||||
# read template files
|
# read template files
|
||||||
if opts.template_html_index is not None:
|
if opts.template_html_index is not None:
|
||||||
@ -192,7 +191,7 @@ class HTMLOutput(OutputFormatPlugin):
|
|||||||
f.write(t)
|
f.write(t)
|
||||||
item.unload_data_from_memory(memory=path)
|
item.unload_data_from_memory(memory=path)
|
||||||
|
|
||||||
zfile = ZipFile(output_path, "w")
|
zfile = zipfile.ZipFile(output_path, "w")
|
||||||
zfile.add_dir(output_dir, basename(output_dir))
|
zfile.add_dir(output_dir, basename(output_dir))
|
||||||
zfile.write(output_file, basename(output_file), zipfile.ZIP_DEFLATED)
|
zfile.write(output_file, basename(output_file), zipfile.ZIP_DEFLATED)
|
||||||
|
|
@ -9,13 +9,10 @@ __docformat__ = 'restructuredtext en'
|
|||||||
import os
|
import os
|
||||||
from cStringIO import StringIO
|
from cStringIO import StringIO
|
||||||
|
|
||||||
from lxml import etree
|
|
||||||
|
|
||||||
from calibre.customize.conversion import OutputFormatPlugin, \
|
from calibre.customize.conversion import OutputFormatPlugin, \
|
||||||
OptionRecommendation
|
OptionRecommendation
|
||||||
from calibre.ebooks.metadata.opf2 import OPF, metadata_to_opf
|
|
||||||
from calibre.ptempfile import TemporaryDirectory
|
from calibre.ptempfile import TemporaryDirectory
|
||||||
from calibre.utils.zipfile import ZipFile
|
|
||||||
|
|
||||||
class HTMLZOutput(OutputFormatPlugin):
|
class HTMLZOutput(OutputFormatPlugin):
|
||||||
|
|
||||||
@ -43,7 +40,10 @@ class HTMLZOutput(OutputFormatPlugin):
|
|||||||
])
|
])
|
||||||
|
|
||||||
def convert(self, oeb_book, output_path, input_plugin, opts, log):
|
def convert(self, oeb_book, output_path, input_plugin, opts, log):
|
||||||
|
from lxml import etree
|
||||||
from calibre.ebooks.oeb.base import OEB_IMAGES, SVG_MIME
|
from calibre.ebooks.oeb.base import OEB_IMAGES, SVG_MIME
|
||||||
|
from calibre.ebooks.metadata.opf2 import OPF, metadata_to_opf
|
||||||
|
from calibre.utils.zipfile import ZipFile
|
||||||
|
|
||||||
# HTML
|
# HTML
|
||||||
if opts.htmlz_css_type == 'inline':
|
if opts.htmlz_css_type == 'inline':
|
||||||
@ -81,7 +81,7 @@ class HTMLZOutput(OutputFormatPlugin):
|
|||||||
fname = os.path.join(tdir, 'images', images[item.href])
|
fname = os.path.join(tdir, 'images', images[item.href])
|
||||||
with open(fname, 'wb') as img:
|
with open(fname, 'wb') as img:
|
||||||
img.write(data)
|
img.write(data)
|
||||||
|
|
||||||
# Cover
|
# Cover
|
||||||
cover_path = None
|
cover_path = None
|
||||||
try:
|
try:
|
@ -5,13 +5,10 @@ __docformat__ = 'restructuredtext en'
|
|||||||
|
|
||||||
import os, re
|
import os, re
|
||||||
|
|
||||||
from lxml import etree
|
|
||||||
|
|
||||||
from calibre.customize.conversion import OutputFormatPlugin
|
from calibre.customize.conversion import (OutputFormatPlugin,
|
||||||
|
OptionRecommendation)
|
||||||
from calibre import CurrentDir
|
from calibre import CurrentDir
|
||||||
from calibre.customize.conversion import OptionRecommendation
|
|
||||||
|
|
||||||
from urllib import unquote
|
|
||||||
|
|
||||||
class OEBOutput(OutputFormatPlugin):
|
class OEBOutput(OutputFormatPlugin):
|
||||||
|
|
||||||
@ -23,6 +20,9 @@ class OEBOutput(OutputFormatPlugin):
|
|||||||
|
|
||||||
|
|
||||||
def convert(self, oeb_book, output_path, input_plugin, opts, log):
|
def convert(self, oeb_book, output_path, input_plugin, opts, log):
|
||||||
|
from urllib import unquote
|
||||||
|
from lxml import etree
|
||||||
|
|
||||||
self.log, self.opts = log, opts
|
self.log, self.opts = log, opts
|
||||||
if not os.path.exists(output_path):
|
if not os.path.exists(output_path):
|
||||||
os.makedirs(output_path)
|
os.makedirs(output_path)
|
@ -13,10 +13,50 @@ import os
|
|||||||
|
|
||||||
from calibre.customize.conversion import OutputFormatPlugin, \
|
from calibre.customize.conversion import OutputFormatPlugin, \
|
||||||
OptionRecommendation
|
OptionRecommendation
|
||||||
from calibre.ebooks.metadata.opf2 import OPF
|
|
||||||
from calibre.ptempfile import TemporaryDirectory
|
from calibre.ptempfile import TemporaryDirectory
|
||||||
from calibre.ebooks.pdf.pageoptions import UNITS, PAPER_SIZES, \
|
|
||||||
ORIENTATIONS
|
UNITS = [
|
||||||
|
'millimeter',
|
||||||
|
'point',
|
||||||
|
'inch' ,
|
||||||
|
'pica' ,
|
||||||
|
'didot',
|
||||||
|
'cicero',
|
||||||
|
'devicepixel',
|
||||||
|
]
|
||||||
|
|
||||||
|
PAPER_SIZES = ['b2',
|
||||||
|
'a9',
|
||||||
|
'executive',
|
||||||
|
'tabloid',
|
||||||
|
'b4',
|
||||||
|
'b5',
|
||||||
|
'b6',
|
||||||
|
'b7',
|
||||||
|
'b0',
|
||||||
|
'b1',
|
||||||
|
'letter',
|
||||||
|
'b3',
|
||||||
|
'a7',
|
||||||
|
'a8',
|
||||||
|
'b8',
|
||||||
|
'b9',
|
||||||
|
'a3',
|
||||||
|
'a1',
|
||||||
|
'folio',
|
||||||
|
'c5e',
|
||||||
|
'dle',
|
||||||
|
'a0',
|
||||||
|
'ledger',
|
||||||
|
'legal',
|
||||||
|
'a6',
|
||||||
|
'a2',
|
||||||
|
'b10',
|
||||||
|
'a5',
|
||||||
|
'comm10e',
|
||||||
|
'a4']
|
||||||
|
|
||||||
|
ORIENTATIONS = ['portrait', 'landscape']
|
||||||
|
|
||||||
class PDFOutput(OutputFormatPlugin):
|
class PDFOutput(OutputFormatPlugin):
|
||||||
|
|
||||||
@ -26,23 +66,23 @@ class PDFOutput(OutputFormatPlugin):
|
|||||||
|
|
||||||
options = set([
|
options = set([
|
||||||
OptionRecommendation(name='unit', recommended_value='inch',
|
OptionRecommendation(name='unit', recommended_value='inch',
|
||||||
level=OptionRecommendation.LOW, short_switch='u', choices=UNITS.keys(),
|
level=OptionRecommendation.LOW, short_switch='u', choices=UNITS,
|
||||||
help=_('The unit of measure. Default is inch. Choices '
|
help=_('The unit of measure. Default is inch. Choices '
|
||||||
'are %s '
|
'are %s '
|
||||||
'Note: This does not override the unit for margins!') % UNITS.keys()),
|
'Note: This does not override the unit for margins!') % UNITS),
|
||||||
OptionRecommendation(name='paper_size', recommended_value='letter',
|
OptionRecommendation(name='paper_size', recommended_value='letter',
|
||||||
level=OptionRecommendation.LOW, choices=PAPER_SIZES.keys(),
|
level=OptionRecommendation.LOW, choices=PAPER_SIZES,
|
||||||
help=_('The size of the paper. This size will be overridden when a '
|
help=_('The size of the paper. This size will be overridden when a '
|
||||||
'non default output profile is used. Default is letter. Choices '
|
'non default output profile is used. Default is letter. Choices '
|
||||||
'are %s') % PAPER_SIZES.keys()),
|
'are %s') % PAPER_SIZES),
|
||||||
OptionRecommendation(name='custom_size', recommended_value=None,
|
OptionRecommendation(name='custom_size', recommended_value=None,
|
||||||
help=_('Custom size of the document. Use the form widthxheight '
|
help=_('Custom size of the document. Use the form widthxheight '
|
||||||
'EG. `123x321` to specify the width and height. '
|
'EG. `123x321` to specify the width and height. '
|
||||||
'This overrides any specified paper-size.')),
|
'This overrides any specified paper-size.')),
|
||||||
OptionRecommendation(name='orientation', recommended_value='portrait',
|
OptionRecommendation(name='orientation', recommended_value='portrait',
|
||||||
level=OptionRecommendation.LOW, choices=ORIENTATIONS.keys(),
|
level=OptionRecommendation.LOW, choices=ORIENTATIONS,
|
||||||
help=_('The orientation of the page. Default is portrait. Choices '
|
help=_('The orientation of the page. Default is portrait. Choices '
|
||||||
'are %s') % ORIENTATIONS.keys()),
|
'are %s') % ORIENTATIONS),
|
||||||
OptionRecommendation(name='preserve_cover_aspect_ratio',
|
OptionRecommendation(name='preserve_cover_aspect_ratio',
|
||||||
recommended_value=False,
|
recommended_value=False,
|
||||||
help=_('Preserve the aspect ratio of the cover, instead'
|
help=_('Preserve the aspect ratio of the cover, instead'
|
||||||
@ -105,6 +145,8 @@ class PDFOutput(OutputFormatPlugin):
|
|||||||
|
|
||||||
def convert_text(self, oeb_book):
|
def convert_text(self, oeb_book):
|
||||||
from calibre.ebooks.pdf.writer import PDFWriter
|
from calibre.ebooks.pdf.writer import PDFWriter
|
||||||
|
from calibre.ebooks.metadata.opf2 import OPF
|
||||||
|
|
||||||
self.log.debug('Serializing oeb input to disk for processing...')
|
self.log.debug('Serializing oeb input to disk for processing...')
|
||||||
self.get_cover_data()
|
self.get_cover_data()
|
||||||
|
|
@ -4,21 +4,11 @@ __license__ = 'GPL 3'
|
|||||||
__copyright__ = '2009, John Schember <john@nachtimwald.com>'
|
__copyright__ = '2009, John Schember <john@nachtimwald.com>'
|
||||||
__docformat__ = 'restructuredtext en'
|
__docformat__ = 'restructuredtext en'
|
||||||
|
|
||||||
import os
|
import os, cStringIO
|
||||||
|
|
||||||
try:
|
from calibre.customize.conversion import (OutputFormatPlugin,
|
||||||
from PIL import Image
|
OptionRecommendation)
|
||||||
Image
|
|
||||||
except ImportError:
|
|
||||||
import Image
|
|
||||||
|
|
||||||
import cStringIO
|
|
||||||
|
|
||||||
from calibre.customize.conversion import OutputFormatPlugin
|
|
||||||
from calibre.customize.conversion import OptionRecommendation
|
|
||||||
from calibre.ptempfile import TemporaryDirectory
|
from calibre.ptempfile import TemporaryDirectory
|
||||||
from calibre.utils.zipfile import ZipFile
|
|
||||||
from calibre.ebooks.pml.pmlml import PMLMLizer
|
|
||||||
|
|
||||||
class PMLOutput(OutputFormatPlugin):
|
class PMLOutput(OutputFormatPlugin):
|
||||||
|
|
||||||
@ -43,6 +33,9 @@ class PMLOutput(OutputFormatPlugin):
|
|||||||
])
|
])
|
||||||
|
|
||||||
def convert(self, oeb_book, output_path, input_plugin, opts, log):
|
def convert(self, oeb_book, output_path, input_plugin, opts, log):
|
||||||
|
from calibre.ebooks.pml.pmlml import PMLMLizer
|
||||||
|
from calibre.utils.zipfile import ZipFile
|
||||||
|
|
||||||
with TemporaryDirectory('_pmlz_output') as tdir:
|
with TemporaryDirectory('_pmlz_output') as tdir:
|
||||||
pmlmlizer = PMLMLizer(log)
|
pmlmlizer = PMLMLizer(log)
|
||||||
pml = unicode(pmlmlizer.extract_content(oeb_book, opts))
|
pml = unicode(pmlmlizer.extract_content(oeb_book, opts))
|
||||||
@ -59,6 +52,13 @@ class PMLOutput(OutputFormatPlugin):
|
|||||||
pmlz.add_dir(tdir)
|
pmlz.add_dir(tdir)
|
||||||
|
|
||||||
def write_images(self, manifest, image_hrefs, out_dir, opts):
|
def write_images(self, manifest, image_hrefs, out_dir, opts):
|
||||||
|
try:
|
||||||
|
from PIL import Image
|
||||||
|
Image
|
||||||
|
except ImportError:
|
||||||
|
import Image
|
||||||
|
|
||||||
|
|
||||||
from calibre.ebooks.oeb.base import OEB_RASTER_IMAGES
|
from calibre.ebooks.oeb.base import OEB_RASTER_IMAGES
|
||||||
for item in manifest:
|
for item in manifest:
|
||||||
if item.media_type in OEB_RASTER_IMAGES and item.href in image_hrefs.keys():
|
if item.media_type in OEB_RASTER_IMAGES and item.href in image_hrefs.keys():
|
@ -7,7 +7,6 @@ __docformat__ = 'restructuredtext en'
|
|||||||
import os
|
import os
|
||||||
|
|
||||||
from calibre.customize.conversion import OutputFormatPlugin, OptionRecommendation
|
from calibre.customize.conversion import OutputFormatPlugin, OptionRecommendation
|
||||||
from calibre.ebooks.rb.writer import RBWriter
|
|
||||||
|
|
||||||
class RBOutput(OutputFormatPlugin):
|
class RBOutput(OutputFormatPlugin):
|
||||||
|
|
||||||
@ -22,6 +21,8 @@ class RBOutput(OutputFormatPlugin):
|
|||||||
])
|
])
|
||||||
|
|
||||||
def convert(self, oeb_book, output_path, input_plugin, opts, log):
|
def convert(self, oeb_book, output_path, input_plugin, opts, log):
|
||||||
|
from calibre.ebooks.rb.writer import RBWriter
|
||||||
|
|
||||||
close = False
|
close = False
|
||||||
if not hasattr(output_path, 'write'):
|
if not hasattr(output_path, 'write'):
|
||||||
close = True
|
close = True
|
@ -6,7 +6,6 @@ __docformat__ = 'restructuredtext en'
|
|||||||
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from calibre.ebooks.rtf.rtfml import RTFMLizer
|
|
||||||
from calibre.customize.conversion import OutputFormatPlugin
|
from calibre.customize.conversion import OutputFormatPlugin
|
||||||
|
|
||||||
class RTFOutput(OutputFormatPlugin):
|
class RTFOutput(OutputFormatPlugin):
|
||||||
@ -16,6 +15,8 @@ class RTFOutput(OutputFormatPlugin):
|
|||||||
file_type = 'rtf'
|
file_type = 'rtf'
|
||||||
|
|
||||||
def convert(self, oeb_book, output_path, input_plugin, opts, log):
|
def convert(self, oeb_book, output_path, input_plugin, opts, log):
|
||||||
|
from calibre.ebooks.rtf.rtfml import RTFMLizer
|
||||||
|
|
||||||
rtfmlitzer = RTFMLizer(log)
|
rtfmlitzer = RTFMLizer(log)
|
||||||
content = rtfmlitzer.extract_content(oeb_book, opts)
|
content = rtfmlitzer.extract_content(oeb_book, opts)
|
||||||
|
|
@ -6,12 +6,9 @@ __docformat__ = 'restructuredtext en'
|
|||||||
|
|
||||||
import os, string
|
import os, string
|
||||||
|
|
||||||
from lxml import etree
|
|
||||||
from calibre.customize.conversion import OutputFormatPlugin, OptionRecommendation
|
from calibre.customize.conversion import OutputFormatPlugin, OptionRecommendation
|
||||||
from calibre.ptempfile import TemporaryDirectory
|
from calibre.ptempfile import TemporaryDirectory
|
||||||
from calibre.constants import __appname__, __version__
|
from calibre.constants import __appname__, __version__
|
||||||
from calibre.ebooks.snb.snbfile import SNBFile
|
|
||||||
from calibre.ebooks.snb.snbml import SNBMLizer, ProcessFileName
|
|
||||||
|
|
||||||
class SNBOutput(OutputFormatPlugin):
|
class SNBOutput(OutputFormatPlugin):
|
||||||
|
|
||||||
@ -49,6 +46,11 @@ class SNBOutput(OutputFormatPlugin):
|
|||||||
])
|
])
|
||||||
|
|
||||||
def convert(self, oeb_book, output_path, input_plugin, opts, log):
|
def convert(self, oeb_book, output_path, input_plugin, opts, log):
|
||||||
|
from lxml import etree
|
||||||
|
from calibre.ebooks.snb.snbfile import SNBFile
|
||||||
|
from calibre.ebooks.snb.snbml import SNBMLizer, ProcessFileName
|
||||||
|
|
||||||
|
|
||||||
self.opts = opts
|
self.opts = opts
|
||||||
from calibre.ebooks.oeb.transforms.rasterize import SVGRasterizer, Unavailable
|
from calibre.ebooks.oeb.transforms.rasterize import SVGRasterizer, Unavailable
|
||||||
try:
|
try:
|
@ -29,7 +29,7 @@ class TCRInput(InputFormatPlugin):
|
|||||||
txt_plugin = plugin_for_input_format('txt')
|
txt_plugin = plugin_for_input_format('txt')
|
||||||
for opt in txt_plugin.options:
|
for opt in txt_plugin.options:
|
||||||
if not hasattr(self.options, opt.option.name):
|
if not hasattr(self.options, opt.option.name):
|
||||||
setattr(self.options, opt.option.name, opt.recommended_value)
|
setattr(options, opt.option.name, opt.recommended_value)
|
||||||
|
|
||||||
stream.seek(0)
|
stream.seek(0)
|
||||||
return txt_plugin.convert(stream, options,
|
return txt_plugin.convert(stream, options,
|
||||||
|
@ -8,8 +8,6 @@ import os
|
|||||||
|
|
||||||
from calibre.customize.conversion import OutputFormatPlugin, \
|
from calibre.customize.conversion import OutputFormatPlugin, \
|
||||||
OptionRecommendation
|
OptionRecommendation
|
||||||
from calibre.ebooks.txt.txtml import TXTMLizer
|
|
||||||
from calibre.ebooks.compression.tcr import compress
|
|
||||||
|
|
||||||
class TCROutput(OutputFormatPlugin):
|
class TCROutput(OutputFormatPlugin):
|
||||||
|
|
||||||
@ -25,6 +23,9 @@ class TCROutput(OutputFormatPlugin):
|
|||||||
])
|
])
|
||||||
|
|
||||||
def convert(self, oeb_book, output_path, input_plugin, opts, log):
|
def convert(self, oeb_book, output_path, input_plugin, opts, log):
|
||||||
|
from calibre.ebooks.txt.txtml import TXTMLizer
|
||||||
|
from calibre.ebooks.compression.tcr import compress
|
||||||
|
|
||||||
close = False
|
close = False
|
||||||
if not hasattr(output_path, 'write'):
|
if not hasattr(output_path, 'write'):
|
||||||
close = True
|
close = True
|
@ -7,15 +7,12 @@ __docformat__ = 'restructuredtext en'
|
|||||||
import os
|
import os
|
||||||
import shutil
|
import shutil
|
||||||
|
|
||||||
from lxml import etree
|
|
||||||
|
|
||||||
from calibre.customize.conversion import OutputFormatPlugin, \
|
from calibre.customize.conversion import OutputFormatPlugin, \
|
||||||
OptionRecommendation
|
OptionRecommendation
|
||||||
from calibre.ebooks.txt.txtml import TXTMLizer
|
|
||||||
from calibre.ebooks.txt.newlines import TxtNewlines, specified_newlines
|
|
||||||
from calibre.ptempfile import TemporaryDirectory, TemporaryFile
|
from calibre.ptempfile import TemporaryDirectory, TemporaryFile
|
||||||
from calibre.utils.cleantext import clean_ascii_chars
|
|
||||||
from calibre.utils.zipfile import ZipFile
|
NEWLINE_TYPES = ['system', 'unix', 'old_mac', 'windows']
|
||||||
|
|
||||||
class TXTOutput(OutputFormatPlugin):
|
class TXTOutput(OutputFormatPlugin):
|
||||||
|
|
||||||
@ -26,11 +23,11 @@ class TXTOutput(OutputFormatPlugin):
|
|||||||
options = set([
|
options = set([
|
||||||
OptionRecommendation(name='newline', recommended_value='system',
|
OptionRecommendation(name='newline', recommended_value='system',
|
||||||
level=OptionRecommendation.LOW,
|
level=OptionRecommendation.LOW,
|
||||||
short_switch='n', choices=TxtNewlines.NEWLINE_TYPES.keys(),
|
short_switch='n', choices=NEWLINE_TYPES,
|
||||||
help=_('Type of newline to use. Options are %s. Default is \'system\'. '
|
help=_('Type of newline to use. Options are %s. Default is \'system\'. '
|
||||||
'Use \'old_mac\' for compatibility with Mac OS 9 and earlier. '
|
'Use \'old_mac\' for compatibility with Mac OS 9 and earlier. '
|
||||||
'For Mac OS X use \'unix\'. \'system\' will default to the newline '
|
'For Mac OS X use \'unix\'. \'system\' will default to the newline '
|
||||||
'type used by this OS.') % sorted(TxtNewlines.NEWLINE_TYPES.keys())),
|
'type used by this OS.') % sorted(NEWLINE_TYPES)),
|
||||||
OptionRecommendation(name='txt_output_encoding', recommended_value='utf-8',
|
OptionRecommendation(name='txt_output_encoding', recommended_value='utf-8',
|
||||||
level=OptionRecommendation.LOW,
|
level=OptionRecommendation.LOW,
|
||||||
help=_('Specify the character encoding of the output document. ' \
|
help=_('Specify the character encoding of the output document. ' \
|
||||||
@ -76,6 +73,11 @@ class TXTOutput(OutputFormatPlugin):
|
|||||||
])
|
])
|
||||||
|
|
||||||
def convert(self, oeb_book, output_path, input_plugin, opts, log):
|
def convert(self, oeb_book, output_path, input_plugin, opts, log):
|
||||||
|
from calibre.ebooks.txt.txtml import TXTMLizer
|
||||||
|
from calibre.utils.cleantext import clean_ascii_chars
|
||||||
|
from calibre.ebooks.txt.newlines import specified_newlines, TxtNewlines
|
||||||
|
|
||||||
|
|
||||||
if opts.txt_output_formatting.lower() == 'markdown':
|
if opts.txt_output_formatting.lower() == 'markdown':
|
||||||
from calibre.ebooks.txt.markdownml import MarkdownMLizer
|
from calibre.ebooks.txt.markdownml import MarkdownMLizer
|
||||||
self.writer = MarkdownMLizer(log)
|
self.writer = MarkdownMLizer(log)
|
||||||
@ -116,6 +118,9 @@ class TXTZOutput(TXTOutput):
|
|||||||
|
|
||||||
def convert(self, oeb_book, output_path, input_plugin, opts, log):
|
def convert(self, oeb_book, output_path, input_plugin, opts, log):
|
||||||
from calibre.ebooks.oeb.base import OEB_IMAGES
|
from calibre.ebooks.oeb.base import OEB_IMAGES
|
||||||
|
from calibre.utils.zipfile import ZipFile
|
||||||
|
from lxml import etree
|
||||||
|
|
||||||
with TemporaryDirectory('_txtz_output') as tdir:
|
with TemporaryDirectory('_txtz_output') as tdir:
|
||||||
# TXT
|
# TXT
|
||||||
txt_name = 'index.txt'
|
txt_name = 'index.txt'
|
Loading…
x
Reference in New Issue
Block a user