public PdfRectangle GetBoundingBox(int characterIdentifier) { // TODO: correct values if (characterIdentifier < 0) { throw new ArgumentException($"The provided character identifier was negative: {characterIdentifier}."); } if (fontProgram == null) { return(Descriptor?.BoundingBox ?? new PdfRectangle(0, 0, 1000, 1.0 / scale)); } if (fontProgram.TryGetBoundingBox(characterIdentifier, out var boundingBox)) { return(boundingBox); } if (Widths.TryGetValue(characterIdentifier, out var width)) { return(new PdfRectangle(0, 0, width, 1.0 / scale)); } if (defaultWidth.HasValue) { return(new PdfRectangle(0, 0, defaultWidth.Value, 1.0 / scale)); } return(new PdfRectangle(0, 0, 1000, 1.0 / scale)); }
public PdfRectangle GetBoundingBox(int characterIdentifier) { if (fontProgram == null) { return(Descriptor.BoundingBox); } if (fontProgram.TryGetBoundingBox(characterIdentifier, cidToGid.GetGlyphIndex, out var result)) { return(result); } return(Descriptor.BoundingBox); }
public PdfRectangle GetBoundingBox(int characterIdentifier) { // TODO: correct values if (characterIdentifier < 0) { throw new ArgumentException($"The provided character identifier was negative: {characterIdentifier}."); } if (characterIdentifier < Widths.Count) { return(new PdfRectangle(0, 0, Widths[characterIdentifier], 0)); } if (fontProgram.TryGetBoundingBox(characterIdentifier, out var boundingBox)) { return(boundingBox); } return(new PdfRectangle(0, 0, 250, 0)); }