public void HasCorrectLetterBoundingBoxes() { using (var document = PdfDocument.Open(GetFilename(), ParsingOptions.LenientParsingOff)) { var page = document.GetPage(1); var comparer = new DecimalComparer(3m); Assert.Equal("I", page.Letters[0].Value); Assert.Equal(90.1m, page.Letters[0].GlyphRectangle.BottomLeft.X, comparer); Assert.Equal(709.2m, page.Letters[0].GlyphRectangle.BottomLeft.Y, comparer); Assert.Equal(94.0m, page.Letters[0].GlyphRectangle.TopRight.X, comparer); Assert.Equal(719.89m, page.Letters[0].GlyphRectangle.TopRight.Y, comparer); Assert.Equal("a", page.Letters[5].Value); Assert.Equal(114.5m, page.Letters[5].GlyphRectangle.BottomLeft.X, comparer); Assert.Equal(709.2m, page.Letters[5].GlyphRectangle.BottomLeft.Y, comparer); Assert.Equal(119.82m, page.Letters[5].GlyphRectangle.TopRight.X, comparer); Assert.Equal(714.89m, page.Letters[5].GlyphRectangle.TopRight.Y, comparer); Assert.Equal("f", page.Letters[16].Value); Assert.Equal(169.9m, page.Letters[16].GlyphRectangle.BottomLeft.X, comparer); Assert.Equal(709.2m, page.Letters[16].GlyphRectangle.BottomLeft.Y, comparer); Assert.Equal(176.89m, page.Letters[16].GlyphRectangle.TopRight.X, comparer); Assert.Equal(719.89m, page.Letters[16].GlyphRectangle.TopRight.Y, comparer); } }
public void LetterPositionsAreCorrectPdfBox() { using (var document = PdfDocument.Open(GetFilename())) { var page = document.GetPage(1); var pdfBoxData = GetPdfBoxPositionData(); var index = 0; foreach (var pageLetter in page.Letters) { if (index >= pdfBoxData.Count) { break; } var myX = pageLetter.CharacterRectangle.Left; var theirX = pdfBoxData[index].X; var myLetter = pageLetter.Value; var theirLetter = pdfBoxData[index].Text; if (myLetter == " " && theirLetter != " ") { continue; } var comparer = new DecimalComparer(3m); Assert.Equal(theirLetter, myLetter); Assert.Equal(theirX, myX, comparer); Assert.Equal(pdfBoxData[index].Width, pageLetter.CharacterRectangle.Width, comparer); index++; } } }
public void LetterPositionsAreCorrectXfinium() { var comparer = new DecimalComparer(1); using (var document = PdfDocument.Open(GetFilename())) { var page = document.GetPage(1); var positions = GetXfiniumPositionData(); var index = 0; foreach (var pageLetter in page.Letters) { if (index >= positions.Count) { break; } var myX = pageLetter.Location.X; var theirX = positions[index].X; var myLetter = pageLetter.Value; var theirLetter = positions[index].Text; if (myLetter == " " && theirLetter != " ") { continue; } Assert.Equal(theirLetter, myLetter); Assert.Equal(theirX, myX, comparer); Assert.Equal(positions[index].Width, pageLetter.Width, 1); index++; } } }