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