[subset] Add --prune-codepage-ranges
This commit is contained in:
parent
be8ec35934
commit
28735a6d0a
@ -407,6 +407,10 @@ Other font-specific options
|
||||
*not* be switched on if an intersection is found. [default]
|
||||
--no-prune-unicode-ranges
|
||||
Don't change the 'OS/2 ulUnicodeRange*' bits.
|
||||
--prune-codepage-ranges
|
||||
Update the 'OS/2 ulCodePageRange*' bits after subsetting. [default]
|
||||
--no-prune-codepage-ranges
|
||||
Don't change the 'OS/2 ulCodePageRange*' bits.
|
||||
--recalc-average-width
|
||||
Update the 'OS/2 xAvgCharWidth' field after subsetting.
|
||||
--no-recalc-average-width
|
||||
@ -3086,6 +3090,7 @@ class Options(object):
|
||||
self.recalc_bounds = False # Recalculate font bounding boxes
|
||||
self.recalc_timestamp = False # Recalculate font modified timestamp
|
||||
self.prune_unicode_ranges = True # Clear unused 'ulUnicodeRange' bits
|
||||
self.prune_codepage_ranges = True # Clear unused 'ulCodePageRange' bits
|
||||
self.recalc_average_width = False # update 'xAvgCharWidth'
|
||||
self.recalc_max_context = False # update 'usMaxContext'
|
||||
self.canonical_order = None # Order tables as recommended
|
||||
@ -3450,6 +3455,15 @@ class Subsetter(object):
|
||||
log.info(
|
||||
"%s Unicode ranges pruned: %s", tag, sorted(new_uniranges)
|
||||
)
|
||||
if self.options.prune_codepage_ranges:
|
||||
old_codepages = font[tag].getCodePageRanges()
|
||||
new_codepages = font[tag].recalcCodePageRanges(font, pruneOnly=True)
|
||||
if old_codepages != new_codepages:
|
||||
log.info(
|
||||
"%s CodePage ranges pruned: %s",
|
||||
tag,
|
||||
sorted(new_codepages),
|
||||
)
|
||||
if self.options.recalc_average_width:
|
||||
old_avg_width = font[tag].xAvgCharWidth
|
||||
new_avg_width = font[tag].recalcAvgCharWidth(font)
|
||||
|
@ -98,7 +98,7 @@
|
||||
<sTypoLineGap value="0"/>
|
||||
<usWinAscent value="1160"/>
|
||||
<usWinDescent value="288"/>
|
||||
<ulCodePageRange1 value="01100000 00101110 00000001 00000111"/>
|
||||
<ulCodePageRange1 value="00000000 00000000 00000000 00000001"/>
|
||||
<ulCodePageRange2 value="00000000 00000000 00000000 00000000"/>
|
||||
<sxHeight value="543"/>
|
||||
<sCapHeight value="733"/>
|
||||
|
@ -117,8 +117,8 @@
|
||||
<sTypoLineGap value="0"/>
|
||||
<usWinAscent value="977"/>
|
||||
<usWinDescent value="272"/>
|
||||
<ulCodePageRange1 value="00100000 00000000 00000001 00011111"/>
|
||||
<ulCodePageRange2 value="11000100 00000000 00000000 00000000"/>
|
||||
<ulCodePageRange1 value="00000000 00000000 00000000 00000001"/>
|
||||
<ulCodePageRange2 value="00000000 00000000 00000000 00000000"/>
|
||||
<sxHeight value="530"/>
|
||||
<sCapHeight value="735"/>
|
||||
<usDefaultChar value="0"/>
|
||||
|
Loading…
x
Reference in New Issue
Block a user