mirror of
https://github.com/UglyToad/PdfPig.git
synced 2025-09-19 10:47:56 +08:00
guess at possible bug in #192
it may be that we try reading a corrupted os/2 table, hard to tell without test document.
This commit is contained in:
@@ -35,7 +35,7 @@
|
|||||||
var selectionFlags = data.ReadUnsignedShort();
|
var selectionFlags = data.ReadUnsignedShort();
|
||||||
var firstCharacterIndex = data.ReadUnsignedShort();
|
var firstCharacterIndex = data.ReadUnsignedShort();
|
||||||
var lastCharacterIndex = data.ReadUnsignedShort();
|
var lastCharacterIndex = data.ReadUnsignedShort();
|
||||||
var unicodeCharRange = new[] {ulCharRange1, ulCharRange2, ulCharRange3, ulCharRange4};
|
var unicodeCharRange = new[] { ulCharRange1, ulCharRange2, ulCharRange3, ulCharRange4 };
|
||||||
|
|
||||||
var vendorId = Encoding.ASCII.GetString(vendorIdBytes);
|
var vendorId = Encoding.ASCII.GetString(vendorIdBytes);
|
||||||
|
|
||||||
@@ -67,11 +67,42 @@
|
|||||||
lastCharacterIndex);
|
lastCharacterIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
var sTypoAscender = data.ReadSignedShort();
|
short sTypoAscender;
|
||||||
var sTypoDescender = data.ReadSignedShort();
|
short sTypoDescender;
|
||||||
var sTypoLineGap = data.ReadSignedShort();
|
short sTypoLineGap;
|
||||||
var usWinAscent = data.ReadUnsignedShort();
|
ushort usWinAscent;
|
||||||
var usWinDescent = data.ReadUnsignedShort();
|
ushort usWinDescent;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
sTypoAscender = data.ReadSignedShort();
|
||||||
|
sTypoDescender = data.ReadSignedShort();
|
||||||
|
sTypoLineGap = data.ReadSignedShort();
|
||||||
|
usWinAscent = data.ReadUnsignedShort();
|
||||||
|
usWinDescent = data.ReadUnsignedShort();
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
// Font may be invalid. Try falling back to shorter version...
|
||||||
|
return new Os2Table(header, version, xAvgCharWidth,
|
||||||
|
weightClass, widthClass, typeFlags, ySubscriptXSize,
|
||||||
|
ySubscriptYSize,
|
||||||
|
ySubscriptXOffset,
|
||||||
|
ySubscriptYOffset,
|
||||||
|
ySuperscriptXSize,
|
||||||
|
ySuperscriptYSize,
|
||||||
|
ySuperscriptXOffset,
|
||||||
|
ySuperscriptYOffset,
|
||||||
|
yStrikeoutSize,
|
||||||
|
yStrikeoutPosition,
|
||||||
|
familyClass,
|
||||||
|
panose,
|
||||||
|
unicodeCharRange,
|
||||||
|
vendorId,
|
||||||
|
selectionFlags,
|
||||||
|
firstCharacterIndex,
|
||||||
|
lastCharacterIndex);
|
||||||
|
}
|
||||||
|
|
||||||
if (version == 0)
|
if (version == 0)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user