mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Ignore subset failure when generating PDF
This commit is contained in:
parent
0348bf9ad5
commit
e9b6e53ef1
@ -34,6 +34,7 @@ from calibre.gui2 import setup_unix_signals
|
|||||||
from calibre.gui2.webengine import secure_webengine
|
from calibre.gui2.webengine import secure_webengine
|
||||||
from calibre.srv.render_book import check_for_maths
|
from calibre.srv.render_book import check_for_maths
|
||||||
from calibre.utils.fonts.sfnt.container import Sfnt, UnsupportedFont
|
from calibre.utils.fonts.sfnt.container import Sfnt, UnsupportedFont
|
||||||
|
from calibre.utils.fonts.sfnt.errors import NoGlyphs
|
||||||
from calibre.utils.fonts.sfnt.merge import merge_truetype_fonts_for_pdf
|
from calibre.utils.fonts.sfnt.merge import merge_truetype_fonts_for_pdf
|
||||||
from calibre.utils.fonts.sfnt.subset import pdf_subset
|
from calibre.utils.fonts.sfnt.subset import pdf_subset
|
||||||
from calibre.utils.logging import default_log
|
from calibre.utils.logging import default_log
|
||||||
@ -742,7 +743,10 @@ def merge_font_files(fonts, log):
|
|||||||
glyph_ids = all_glyph_ids_in_w_arrays(w_arrays, as_set=True)
|
glyph_ids = all_glyph_ids_in_w_arrays(w_arrays, as_set=True)
|
||||||
h_arrays = tuple(filter(None, (f['W2'] for f in descendant_fonts)))
|
h_arrays = tuple(filter(None, (f['W2'] for f in descendant_fonts)))
|
||||||
glyph_ids |= all_glyph_ids_in_w_arrays(h_arrays, as_set=True)
|
glyph_ids |= all_glyph_ids_in_w_arrays(h_arrays, as_set=True)
|
||||||
pdf_subset(merged_sfnt, glyph_ids)
|
try:
|
||||||
|
pdf_subset(merged_sfnt, glyph_ids)
|
||||||
|
except NoGlyphs:
|
||||||
|
log.warn(f'Subsetting of {fonts[0]["BaseFont"]} failed with no glyphs found, ignoring')
|
||||||
font_data = merged_sfnt()[0]
|
font_data = merged_sfnt()[0]
|
||||||
log(f'Merged {len(fonts)} instances of {fonts[0]["BaseFont"]} reducing size from {human_readable(total_size)} to {human_readable(len(font_data))}')
|
log(f'Merged {len(fonts)} instances of {fonts[0]["BaseFont"]} reducing size from {human_readable(total_size)} to {human_readable(len(font_data))}')
|
||||||
return font_data, tuple(f['Reference'] for f in descendant_fonts)
|
return font_data, tuple(f['Reference'] for f in descendant_fonts)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user