mirror of
https://github.com/gryf/ebook-converter.git
synced 2026-03-17 23:33:43 +01:00
Enable docx write support
This commit is contained in:
@@ -67,6 +67,7 @@ Currently, following formats are supported:
|
|||||||
- lrf (for Sony readers)
|
- lrf (for Sony readers)
|
||||||
- epub
|
- epub
|
||||||
- mobi
|
- mobi
|
||||||
|
- docx
|
||||||
|
|
||||||
|
|
||||||
Installation
|
Installation
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
#!/usr/bin/env python2
|
|
||||||
# vim:fileencoding=utf-8
|
|
||||||
from __future__ import absolute_import, division, print_function, unicode_literals
|
|
||||||
|
|
||||||
__license__ = 'GPL v3'
|
|
||||||
__copyright__ = '2013, Kovid Goyal <kovid at kovidgoyal.net>'
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -10,15 +10,15 @@ import textwrap, os
|
|||||||
from lxml import etree
|
from lxml import etree
|
||||||
from lxml.builder import ElementMaker
|
from lxml.builder import ElementMaker
|
||||||
|
|
||||||
from calibre import guess_type
|
from ebook_converter import guess_type
|
||||||
from calibre.constants import numeric_version, __appname__
|
from ebook_converter.constants import numeric_version, __appname__
|
||||||
from calibre.ebooks.docx.names import DOCXNamespace
|
from ebook_converter.ebooks.docx.names import DOCXNamespace
|
||||||
from calibre.ebooks.metadata import authors_to_string
|
from ebook_converter.ebooks.metadata import authors_to_string
|
||||||
from calibre.ebooks.pdf.render.common import PAPER_SIZES
|
from ebook_converter.ebooks.pdf.render.common import PAPER_SIZES
|
||||||
from calibre.utils.date import utcnow
|
from ebook_converter.utils.date import utcnow
|
||||||
from calibre.utils.localization import canonicalize_lang, lang_as_iso639_1
|
from ebook_converter.utils.localization import canonicalize_lang, lang_as_iso639_1
|
||||||
from calibre.utils.zipfile import ZipFile
|
from ebook_converter.utils.zipfile import ZipFile
|
||||||
from polyglot.builtins import iteritems, map, unicode_type, native_string_type
|
from ebook_converter.polyglot.builtins import iteritems, map, unicode_type, native_string_type
|
||||||
|
|
||||||
|
|
||||||
def xml2str(root, pretty_print=False, with_tail=False):
|
def xml2str(root, pretty_print=False, with_tail=False):
|
||||||
|
|||||||
@@ -8,9 +8,9 @@ __copyright__ = '2015, Kovid Goyal <kovid at kovidgoyal.net>'
|
|||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
|
|
||||||
from calibre.ebooks.oeb.base import OEB_STYLES
|
from ebook_converter.ebooks.oeb.base import OEB_STYLES
|
||||||
from calibre.ebooks.oeb.transforms.subset import find_font_face_rules
|
from ebook_converter.ebooks.oeb.transforms.subset import find_font_face_rules
|
||||||
from polyglot.builtins import range
|
from ebook_converter.polyglot.builtins import range
|
||||||
|
|
||||||
|
|
||||||
def obfuscate_font_data(data, key):
|
def obfuscate_font_data(data, key):
|
||||||
|
|||||||
@@ -8,17 +8,17 @@ __copyright__ = '2013, Kovid Goyal <kovid at kovidgoyal.net>'
|
|||||||
import re
|
import re
|
||||||
from collections import Counter
|
from collections import Counter
|
||||||
|
|
||||||
from calibre.ebooks.docx.writer.container import create_skeleton, page_size, page_effective_area
|
from ebook_converter.ebooks.docx.writer.container import create_skeleton, page_size, page_effective_area
|
||||||
from calibre.ebooks.docx.writer.styles import StylesManager, FloatSpec
|
from ebook_converter.ebooks.docx.writer.styles import StylesManager, FloatSpec
|
||||||
from calibre.ebooks.docx.writer.links import LinksManager
|
from ebook_converter.ebooks.docx.writer.links import LinksManager
|
||||||
from calibre.ebooks.docx.writer.images import ImagesManager
|
from ebook_converter.ebooks.docx.writer.images import ImagesManager
|
||||||
from calibre.ebooks.docx.writer.fonts import FontsManager
|
from ebook_converter.ebooks.docx.writer.fonts import FontsManager
|
||||||
from calibre.ebooks.docx.writer.tables import Table
|
from ebook_converter.ebooks.docx.writer.tables import Table
|
||||||
from calibre.ebooks.docx.writer.lists import ListsManager
|
from ebook_converter.ebooks.docx.writer.lists import ListsManager
|
||||||
from calibre.ebooks.oeb.stylizer import Stylizer as Sz, Style as St
|
from ebook_converter.ebooks.oeb.stylizer import Stylizer as Sz, Style as St
|
||||||
from calibre.ebooks.oeb.base import XPath, barename
|
from ebook_converter.ebooks.oeb.base import XPath, barename
|
||||||
from calibre.utils.localization import lang_as_iso639_1
|
from ebook_converter.utils.localization import lang_as_iso639_1
|
||||||
from polyglot.builtins import unicode_type, string_or_bytes
|
from ebook_converter.polyglot.builtins import unicode_type, string_or_bytes
|
||||||
|
|
||||||
|
|
||||||
def lang_for_tag(tag):
|
def lang_for_tag(tag):
|
||||||
@@ -424,7 +424,7 @@ class Convert(object):
|
|||||||
p.width_pts, p.height_pts = page_effective_area(self.opts)
|
p.width_pts, p.height_pts = page_effective_area(self.opts)
|
||||||
|
|
||||||
def __call__(self):
|
def __call__(self):
|
||||||
from calibre.ebooks.oeb.transforms.rasterize import SVGRasterizer
|
from ebook_converter.ebooks.oeb.transforms.rasterize import SVGRasterizer
|
||||||
self.svg_rasterizer = SVGRasterizer(base_css=self.base_css)
|
self.svg_rasterizer = SVGRasterizer(base_css=self.base_css)
|
||||||
self.svg_rasterizer(self.oeb, self.opts)
|
self.svg_rasterizer(self.oeb, self.opts)
|
||||||
|
|
||||||
|
|||||||
@@ -9,15 +9,15 @@ import os
|
|||||||
import posixpath
|
import posixpath
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
from functools import partial
|
from functools import partial
|
||||||
from polyglot.builtins import iteritems, itervalues, map, unicode_type
|
from ebook_converter.polyglot.builtins import iteritems, itervalues, map, unicode_type
|
||||||
|
|
||||||
from lxml import etree
|
from lxml import etree
|
||||||
|
|
||||||
from calibre import fit_image
|
from ebook_converter import fit_image
|
||||||
from calibre.ebooks.oeb.base import urlunquote
|
from ebook_converter.ebooks.oeb.base import urlunquote
|
||||||
from calibre.ebooks.docx.images import pt_to_emu
|
from ebook_converter.ebooks.docx.images import pt_to_emu
|
||||||
from calibre.utils.filenames import ascii_filename
|
from ebook_converter.utils.filenames import ascii_filename
|
||||||
from calibre.utils.imghdr import identify
|
from ebook_converter.utils.imghdr import identify
|
||||||
|
|
||||||
Image = namedtuple('Image', 'rid fname width height fmt item')
|
Image = namedtuple('Image', 'rid fname width height fmt item')
|
||||||
|
|
||||||
|
|||||||
@@ -8,9 +8,9 @@ __copyright__ = '2015, Kovid Goyal <kovid at kovidgoyal.net>'
|
|||||||
import posixpath, re
|
import posixpath, re
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
|
|
||||||
from calibre.utils.filenames import ascii_text
|
from ebook_converter.utils.filenames import ascii_text
|
||||||
from polyglot.builtins import unicode_type
|
from ebook_converter.polyglot.builtins import unicode_type
|
||||||
from polyglot.urllib import urlparse
|
from ebook_converter.polyglot.urllib import urlparse
|
||||||
|
|
||||||
|
|
||||||
def start_text(tag, prefix_len=0, top_level=True):
|
def start_text(tag, prefix_len=0, top_level=True):
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ __copyright__ = '2015, Kovid Goyal <kovid at kovidgoyal.net>'
|
|||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
from operator import attrgetter
|
from operator import attrgetter
|
||||||
|
|
||||||
from polyglot.builtins import iteritems, itervalues, unicode_type
|
from ebook_converter.polyglot.builtins import iteritems, itervalues, unicode_type
|
||||||
|
|
||||||
LIST_STYLES = frozenset(
|
LIST_STYLES = frozenset(
|
||||||
'disc circle square decimal decimal-leading-zero lower-roman upper-roman'
|
'disc circle square decimal decimal-leading-zero lower-roman upper-roman'
|
||||||
|
|||||||
@@ -11,10 +11,10 @@ from operator import attrgetter
|
|||||||
|
|
||||||
from lxml import etree
|
from lxml import etree
|
||||||
|
|
||||||
from calibre.ebooks import parse_css_length
|
from ebook_converter.ebooks import parse_css_length
|
||||||
from calibre.ebooks.docx.writer.utils import convert_color, int_or_zero
|
from ebook_converter.ebooks.docx.writer.utils import convert_color, int_or_zero
|
||||||
from calibre.utils.localization import lang_as_iso639_1
|
from ebook_converter.utils.localization import lang_as_iso639_1
|
||||||
from polyglot.builtins import iteritems, filter, unicode_type
|
from ebook_converter.polyglot.builtins import iteritems, filter, unicode_type
|
||||||
from tinycss.css21 import CSS21Parser
|
from tinycss.css21 import CSS21Parser
|
||||||
|
|
||||||
css_parser = CSS21Parser()
|
css_parser = CSS21Parser()
|
||||||
|
|||||||
@@ -7,9 +7,9 @@ __copyright__ = '2015, Kovid Goyal <kovid at kovidgoyal.net>'
|
|||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
from calibre.ebooks.docx.writer.utils import convert_color
|
from ebook_converter.ebooks.docx.writer.utils import convert_color
|
||||||
from calibre.ebooks.docx.writer.styles import read_css_block_borders as rcbb, border_edges
|
from ebook_converter.ebooks.docx.writer.styles import read_css_block_borders as rcbb, border_edges
|
||||||
from polyglot.builtins import iteritems, range, unicode_type
|
from ebook_converter.polyglot.builtins import iteritems, range, unicode_type
|
||||||
|
|
||||||
|
|
||||||
class Dummy(object):
|
class Dummy(object):
|
||||||
|
|||||||
@@ -8,10 +8,10 @@ __docformat__ = 'restructuredtext en'
|
|||||||
|
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
|
|
||||||
from calibre.ebooks.oeb.base import urlnormalize, css_text
|
from ebook_converter.ebooks.oeb.base import urlnormalize, css_text
|
||||||
from calibre.utils.fonts.sfnt.subset import subset, NoGlyphs, UnsupportedFont
|
from ebook_converter.utils.fonts.sfnt.subset import subset, NoGlyphs, UnsupportedFont
|
||||||
from polyglot.builtins import iteritems, itervalues, unicode_type, range
|
from ebook_converter.polyglot.builtins import iteritems, itervalues, unicode_type, range
|
||||||
from tinycss.fonts3 import parse_font_family
|
from ebook_converter.tinycss.fonts3 import parse_font_family
|
||||||
|
|
||||||
|
|
||||||
def get_font_properties(rule, default=None):
|
def get_font_properties(rule, default=None):
|
||||||
|
|||||||
@@ -1,10 +0,0 @@
|
|||||||
#!/usr/bin/env python2
|
|
||||||
# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:fdm=marker:ai
|
|
||||||
from __future__ import absolute_import, division, print_function, unicode_literals
|
|
||||||
|
|
||||||
__license__ = 'GPL v3'
|
|
||||||
__copyright__ = '2012, Kovid Goyal <kovid at kovidgoyal.net>'
|
|
||||||
__docformat__ = 'restructuredtext en'
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -10,12 +10,12 @@ import codecs, zlib, numbers
|
|||||||
from io import BytesIO
|
from io import BytesIO
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
from calibre.constants import plugins, ispy3
|
from ebook_converter.constants import ispy3
|
||||||
from calibre.utils.logging import default_log
|
from ebook_converter.utils.logging import default_log
|
||||||
from polyglot.builtins import iteritems, unicode_type, codepoint_to_chr
|
from ebook_converter.polyglot.builtins import iteritems, unicode_type, codepoint_to_chr
|
||||||
from polyglot.binary import as_hex_bytes
|
from ebook_converter.polyglot.binary import as_hex_bytes
|
||||||
|
|
||||||
pdf_float = plugins['speedup'][0].pdf_float
|
pdf_float = lambda x: f"{x:.1f}"
|
||||||
|
|
||||||
EOL = b'\n'
|
EOL = b'\n'
|
||||||
|
|
||||||
|
|||||||
@@ -75,6 +75,6 @@ def load_font(stream_or_path):
|
|||||||
raw = stream_or_path
|
raw = stream_or_path
|
||||||
if hasattr(raw, 'read'):
|
if hasattr(raw, 'read'):
|
||||||
raw = raw.read()
|
raw = raw.read()
|
||||||
from calibre.utils.fonts.sfnt.container import Sfnt
|
from ebook_converter.utils.fonts.sfnt.container import Sfnt
|
||||||
return Sfnt(raw)
|
return Sfnt(raw)
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +0,0 @@
|
|||||||
#!/usr/bin/env python2
|
|
||||||
# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:fdm=marker:ai
|
|
||||||
from __future__ import absolute_import, division, print_function, unicode_literals
|
|
||||||
|
|
||||||
__license__ = 'GPL v3'
|
|
||||||
__copyright__ = '2012, Kovid Goyal <kovid at kovidgoyal.net>'
|
|
||||||
__docformat__ = 'restructuredtext en'
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ __copyright__ = '2012, Kovid Goyal <kovid at kovidgoyal.net>'
|
|||||||
__docformat__ = 'restructuredtext en'
|
__docformat__ = 'restructuredtext en'
|
||||||
|
|
||||||
from struct import pack, unpack_from
|
from struct import pack, unpack_from
|
||||||
from polyglot.builtins import range, unicode_type
|
from ebook_converter.polyglot.builtins import range, unicode_type
|
||||||
|
|
||||||
t1_operand_encoding = [None] * 256
|
t1_operand_encoding = [None] * 256
|
||||||
t1_operand_encoding[0:32] = (32) * ["do_operator"]
|
t1_operand_encoding[0:32] = (32) * ["do_operator"]
|
||||||
|
|||||||
@@ -9,12 +9,12 @@ __docformat__ = 'restructuredtext en'
|
|||||||
from struct import unpack_from, unpack, calcsize
|
from struct import unpack_from, unpack, calcsize
|
||||||
from functools import partial
|
from functools import partial
|
||||||
|
|
||||||
from calibre.utils.fonts.sfnt import UnknownTable
|
from ebook_converter.utils.fonts.sfnt import UnknownTable
|
||||||
from calibre.utils.fonts.sfnt.errors import UnsupportedFont, NoGlyphs
|
from ebook_converter.utils.fonts.sfnt.errors import UnsupportedFont, NoGlyphs
|
||||||
from calibre.utils.fonts.sfnt.cff.dict_data import TopDict, PrivateDict
|
from ebook_converter.utils.fonts.sfnt.cff.dict_data import TopDict, PrivateDict
|
||||||
from calibre.utils.fonts.sfnt.cff.constants import (cff_standard_strings,
|
from ebook_converter.utils.fonts.sfnt.cff.constants import (cff_standard_strings,
|
||||||
STANDARD_CHARSETS)
|
STANDARD_CHARSETS)
|
||||||
from polyglot.builtins import iteritems, itervalues, range
|
from ebook_converter.polyglot.builtins import iteritems, itervalues, range
|
||||||
|
|
||||||
# Useful links
|
# Useful links
|
||||||
# http://www.adobe.com/content/dam/Adobe/en/devnet/font/pdfs/5176.CFF.pdf
|
# http://www.adobe.com/content/dam/Adobe/en/devnet/font/pdfs/5176.CFF.pdf
|
||||||
@@ -194,7 +194,7 @@ class CFFTable(UnknownTable):
|
|||||||
self.cff = CFF(self.raw)
|
self.cff = CFF(self.raw)
|
||||||
|
|
||||||
def subset(self, character_map, extra_glyphs):
|
def subset(self, character_map, extra_glyphs):
|
||||||
from calibre.utils.fonts.sfnt.cff.writer import Subset
|
from ebook_converter.utils.fonts.sfnt.cff.writer import Subset
|
||||||
# Map codes from the cmap table to glyph names, this will be used to
|
# Map codes from the cmap table to glyph names, this will be used to
|
||||||
# reconstruct character_map for the subset font
|
# reconstruct character_map for the subset font
|
||||||
charset_map = {code:self.cff.charset.safe_lookup(glyph_id) for code,
|
charset_map = {code:self.cff.charset.safe_lookup(glyph_id) for code,
|
||||||
|
|||||||
@@ -12,10 +12,10 @@ __docformat__ = 'restructuredtext en'
|
|||||||
from struct import unpack_from, calcsize, pack
|
from struct import unpack_from, calcsize, pack
|
||||||
from collections import OrderedDict
|
from collections import OrderedDict
|
||||||
|
|
||||||
from calibre.utils.fonts.utils import read_bmp_prefix
|
from ebook_converter.utils.fonts.utils import read_bmp_prefix
|
||||||
from calibre.utils.fonts.sfnt import UnknownTable, max_power_of_two
|
from ebook_converter.utils.fonts.sfnt import UnknownTable, max_power_of_two
|
||||||
from calibre.utils.fonts.sfnt.errors import UnsupportedFont
|
from ebook_converter.utils.fonts.sfnt.errors import UnsupportedFont
|
||||||
from polyglot.builtins import range
|
from ebook_converter.polyglot.builtins import range
|
||||||
|
|
||||||
|
|
||||||
def split_range(start_code, end_code, cmap): # {{{
|
def split_range(start_code, end_code, cmap): # {{{
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ __docformat__ = 'restructuredtext en'
|
|||||||
from struct import unpack_from, calcsize
|
from struct import unpack_from, calcsize
|
||||||
from collections import OrderedDict, namedtuple
|
from collections import OrderedDict, namedtuple
|
||||||
|
|
||||||
from calibre.utils.fonts.sfnt.errors import UnsupportedFont
|
from ebook_converter.utils.fonts.sfnt.errors import UnsupportedFont
|
||||||
from polyglot.builtins import range, iteritems
|
from ebook_converter.polyglot.builtins import range, iteritems
|
||||||
|
|
||||||
|
|
||||||
class Unpackable(object):
|
class Unpackable(object):
|
||||||
|
|||||||
@@ -7,19 +7,19 @@ from collections import OrderedDict
|
|||||||
from io import BytesIO
|
from io import BytesIO
|
||||||
from struct import calcsize, pack
|
from struct import calcsize, pack
|
||||||
|
|
||||||
from calibre.utils.fonts.sfnt import UnknownTable, align_block, max_power_of_two
|
from ebook_converter.utils.fonts.sfnt import UnknownTable, align_block, max_power_of_two
|
||||||
from calibre.utils.fonts.sfnt.cff.table import CFFTable
|
from ebook_converter.utils.fonts.sfnt.cff.table import CFFTable
|
||||||
from calibre.utils.fonts.sfnt.cmap import CmapTable
|
from ebook_converter.utils.fonts.sfnt.cmap import CmapTable
|
||||||
from calibre.utils.fonts.sfnt.errors import UnsupportedFont
|
from ebook_converter.utils.fonts.sfnt.errors import UnsupportedFont
|
||||||
from calibre.utils.fonts.sfnt.glyf import GlyfTable
|
from ebook_converter.utils.fonts.sfnt.glyf import GlyfTable
|
||||||
from calibre.utils.fonts.sfnt.gsub import GSUBTable
|
from ebook_converter.utils.fonts.sfnt.gsub import GSUBTable
|
||||||
from calibre.utils.fonts.sfnt.head import (
|
from ebook_converter.utils.fonts.sfnt.head import (
|
||||||
HeadTable, HorizontalHeader, OS2Table, PostTable, VerticalHeader
|
HeadTable, HorizontalHeader, OS2Table, PostTable, VerticalHeader
|
||||||
)
|
)
|
||||||
from calibre.utils.fonts.sfnt.kern import KernTable
|
from ebook_converter.utils.fonts.sfnt.kern import KernTable
|
||||||
from calibre.utils.fonts.sfnt.loca import LocaTable
|
from ebook_converter.utils.fonts.sfnt.loca import LocaTable
|
||||||
from calibre.utils.fonts.sfnt.maxp import MaxpTable
|
from ebook_converter.utils.fonts.sfnt.maxp import MaxpTable
|
||||||
from calibre.utils.fonts.utils import checksum_of_block, get_tables, verify_checksums
|
from ebook_converter.utils.fonts.utils import checksum_of_block, get_tables, verify_checksums
|
||||||
|
|
||||||
# OpenType spec: http://www.microsoft.com/typography/otspec/otff.htm
|
# OpenType spec: http://www.microsoft.com/typography/otspec/otff.htm
|
||||||
|
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ __docformat__ = 'restructuredtext en'
|
|||||||
from struct import unpack_from
|
from struct import unpack_from
|
||||||
from collections import OrderedDict
|
from collections import OrderedDict
|
||||||
|
|
||||||
from calibre.utils.fonts.sfnt import UnknownTable
|
from ebook_converter.utils.fonts.sfnt import UnknownTable
|
||||||
from polyglot.builtins import iteritems
|
from ebook_converter.polyglot.builtins import iteritems
|
||||||
|
|
||||||
ARG_1_AND_2_ARE_WORDS = 0x0001 # if set args are words otherwise they are bytes
|
ARG_1_AND_2_ARE_WORDS = 0x0001 # if set args are words otherwise they are bytes
|
||||||
ARGS_ARE_XY_VALUES = 0x0002 # if set args are xy values, otherwise they are points
|
ARGS_ARE_XY_VALUES = 0x0002 # if set args are xy values, otherwise they are points
|
||||||
|
|||||||
@@ -9,12 +9,12 @@ __docformat__ = 'restructuredtext en'
|
|||||||
from struct import unpack_from
|
from struct import unpack_from
|
||||||
from functools import partial
|
from functools import partial
|
||||||
|
|
||||||
from calibre.utils.fonts.sfnt import UnknownTable, FixedProperty
|
from ebook_converter.utils.fonts.sfnt import UnknownTable, FixedProperty
|
||||||
from calibre.utils.fonts.sfnt.errors import UnsupportedFont
|
from ebook_converter.utils.fonts.sfnt.errors import UnsupportedFont
|
||||||
from calibre.utils.fonts.sfnt.common import (ScriptListTable, FeatureListTable,
|
from ebook_converter.utils.fonts.sfnt.common import (ScriptListTable, FeatureListTable,
|
||||||
SimpleListTable, LookupTable, ExtensionSubstitution,
|
SimpleListTable, LookupTable, ExtensionSubstitution,
|
||||||
UnknownLookupSubTable)
|
UnknownLookupSubTable)
|
||||||
from polyglot.builtins import iteritems, itervalues
|
from ebook_converter.polyglot.builtins import iteritems, itervalues
|
||||||
|
|
||||||
|
|
||||||
class SingleSubstitution(UnknownLookupSubTable):
|
class SingleSubstitution(UnknownLookupSubTable):
|
||||||
|
|||||||
@@ -8,10 +8,10 @@ __docformat__ = 'restructuredtext en'
|
|||||||
|
|
||||||
from struct import unpack_from, pack, calcsize
|
from struct import unpack_from, pack, calcsize
|
||||||
|
|
||||||
from calibre.utils.fonts.sfnt import UnknownTable, DateTimeProperty, FixedProperty
|
from ebook_converter.utils.fonts.sfnt import UnknownTable, DateTimeProperty, FixedProperty
|
||||||
from calibre.utils.fonts.sfnt.errors import UnsupportedFont
|
from ebook_converter.utils.fonts.sfnt.errors import UnsupportedFont
|
||||||
from calibre.utils.fonts.sfnt.loca import read_array
|
from ebook_converter.utils.fonts.sfnt.loca import read_array
|
||||||
from polyglot.builtins import zip
|
from ebook_converter.polyglot.builtins import zip
|
||||||
|
|
||||||
|
|
||||||
class HeadTable(UnknownTable):
|
class HeadTable(UnknownTable):
|
||||||
|
|||||||
@@ -8,10 +8,10 @@ __docformat__ = 'restructuredtext en'
|
|||||||
|
|
||||||
from struct import unpack_from, calcsize, pack, error as struct_error
|
from struct import unpack_from, calcsize, pack, error as struct_error
|
||||||
|
|
||||||
from calibre.utils.fonts.sfnt import (UnknownTable, FixedProperty,
|
from ebook_converter.utils.fonts.sfnt import (UnknownTable, FixedProperty,
|
||||||
max_power_of_two)
|
max_power_of_two)
|
||||||
from calibre.utils.fonts.sfnt.errors import UnsupportedFont
|
from ebook_converter.utils.fonts.sfnt.errors import UnsupportedFont
|
||||||
from polyglot.builtins import range
|
from ebook_converter.polyglot.builtins import range
|
||||||
|
|
||||||
|
|
||||||
class KernTable(UnknownTable):
|
class KernTable(UnknownTable):
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ import array, sys
|
|||||||
from operator import itemgetter
|
from operator import itemgetter
|
||||||
from itertools import repeat
|
from itertools import repeat
|
||||||
|
|
||||||
from calibre.utils.fonts.sfnt import UnknownTable
|
from ebook_converter.utils.fonts.sfnt import UnknownTable
|
||||||
from polyglot.builtins import iteritems, range
|
from ebook_converter.polyglot.builtins import iteritems, range
|
||||||
|
|
||||||
|
|
||||||
def four_byte_type_code():
|
def four_byte_type_code():
|
||||||
|
|||||||
@@ -8,9 +8,9 @@ __docformat__ = 'restructuredtext en'
|
|||||||
|
|
||||||
from struct import unpack_from, pack
|
from struct import unpack_from, pack
|
||||||
|
|
||||||
from calibre.utils.fonts.sfnt import UnknownTable, FixedProperty
|
from ebook_converter.utils.fonts.sfnt import UnknownTable, FixedProperty
|
||||||
from calibre.utils.fonts.sfnt.errors import UnsupportedFont
|
from ebook_converter.utils.fonts.sfnt.errors import UnsupportedFont
|
||||||
from polyglot.builtins import zip
|
from ebook_converter.polyglot.builtins import zip
|
||||||
|
|
||||||
|
|
||||||
class MaxpTable(UnknownTable):
|
class MaxpTable(UnknownTable):
|
||||||
|
|||||||
@@ -11,10 +11,10 @@ from collections import OrderedDict
|
|||||||
from operator import itemgetter
|
from operator import itemgetter
|
||||||
from functools import partial
|
from functools import partial
|
||||||
|
|
||||||
from calibre.utils.icu import safe_chr, ord_string
|
from ebook_converter.utils.icu import safe_chr, ord_string
|
||||||
from calibre.utils.fonts.sfnt.container import Sfnt
|
from ebook_converter.utils.fonts.sfnt.container import Sfnt
|
||||||
from calibre.utils.fonts.sfnt.errors import UnsupportedFont, NoGlyphs
|
from ebook_converter.utils.fonts.sfnt.errors import UnsupportedFont, NoGlyphs
|
||||||
from polyglot.builtins import unicode_type, range, iteritems, itervalues, map
|
from ebook_converter.polyglot.builtins import unicode_type, range, iteritems, itervalues, map
|
||||||
|
|
||||||
# TrueType outlines {{{
|
# TrueType outlines {{{
|
||||||
|
|
||||||
@@ -193,7 +193,7 @@ def subset(raw, individual_chars, ranges=(), warnings=None):
|
|||||||
|
|
||||||
def option_parser():
|
def option_parser():
|
||||||
import textwrap
|
import textwrap
|
||||||
from calibre.utils.config import OptionParser
|
from ebook_converter.utils.config import OptionParser
|
||||||
parser = OptionParser(usage=textwrap.dedent('''\
|
parser = OptionParser(usage=textwrap.dedent('''\
|
||||||
%prog [options] input_font_file output_font_file characters_to_keep
|
%prog [options] input_font_file output_font_file characters_to_keep
|
||||||
|
|
||||||
@@ -212,7 +212,7 @@ def option_parser():
|
|||||||
|
|
||||||
|
|
||||||
def print_stats(old_stats, new_stats):
|
def print_stats(old_stats, new_stats):
|
||||||
from calibre import prints
|
from ebook_converter import prints
|
||||||
prints('========= Table comparison (original vs. subset) =========')
|
prints('========= Table comparison (original vs. subset) =========')
|
||||||
prints('Table', ' ', '%10s'%'Size', ' ', 'Percent', ' ', '%10s'%'New Size',
|
prints('Table', ' ', '%10s'%'Size', ' ', 'Percent', ' ', '%10s'%'New Size',
|
||||||
' New Percent')
|
' New Percent')
|
||||||
@@ -236,7 +236,7 @@ def print_stats(old_stats, new_stats):
|
|||||||
|
|
||||||
def main(args):
|
def main(args):
|
||||||
import sys, time
|
import sys, time
|
||||||
from calibre import prints
|
from ebook_converter import prints
|
||||||
parser = option_parser()
|
parser = option_parser()
|
||||||
opts, args = parser.parse_args(args)
|
opts, args = parser.parse_args(args)
|
||||||
if len(args) < 4 or len(args) > 4:
|
if len(args) < 4 or len(args) > 4:
|
||||||
@@ -303,7 +303,7 @@ if __name__ == '__main__':
|
|||||||
|
|
||||||
|
|
||||||
def test_mem():
|
def test_mem():
|
||||||
from calibre.utils.mem import memory
|
from ebook_converter.utils.mem import memory
|
||||||
import gc
|
import gc
|
||||||
gc.collect()
|
gc.collect()
|
||||||
start_mem = memory()
|
start_mem = memory()
|
||||||
@@ -325,7 +325,7 @@ def test():
|
|||||||
|
|
||||||
|
|
||||||
def all():
|
def all():
|
||||||
from calibre.utils.fonts.scanner import font_scanner
|
from ebook_converter.utils.fonts.scanner import font_scanner
|
||||||
failed = []
|
failed = []
|
||||||
unsupported = []
|
unsupported = []
|
||||||
warnings = {}
|
warnings = {}
|
||||||
|
|||||||
Reference in New Issue
Block a user