2019-10-08 14:04:36 +01:00
|
|
|
|
namespace UglyToad.PdfPig.Tests.Integration
|
|
|
|
|
|
{
|
|
|
|
|
|
public class SinglePageLibreOfficeImages
|
|
|
|
|
|
{
|
|
|
|
|
|
private static string GetFilePath() => IntegrationHelpers.GetDocumentPath(@"Single Page Images - from libre office.pdf");
|
|
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
|
public void Has3Images()
|
|
|
|
|
|
{
|
|
|
|
|
|
using (var document = PdfDocument.Open(GetFilePath(), ParsingOptions.LenientParsingOff))
|
|
|
|
|
|
{
|
|
|
|
|
|
var page = document.GetPage(1);
|
|
|
|
|
|
|
|
|
|
|
|
var images = page.GetImages().ToList();
|
|
|
|
|
|
|
|
|
|
|
|
Assert.Equal(3, images.Count);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
|
public void ImagesHaveCorrectDimensionsAndLocations()
|
|
|
|
|
|
{
|
2019-12-21 18:09:49 +00:00
|
|
|
|
var doubleComparer = new DoubleComparer(1);
|
|
|
|
|
|
|
2019-10-08 14:04:36 +01:00
|
|
|
|
using (var document = PdfDocument.Open(GetFilePath(), ParsingOptions.LenientParsingOff))
|
|
|
|
|
|
{
|
|
|
|
|
|
var page = document.GetPage(1);
|
|
|
|
|
|
|
|
|
|
|
|
var images = page.GetImages().OrderBy(x => x.Bounds.Width).ToList();
|
|
|
|
|
|
|
|
|
|
|
|
var pdfPigSquare = images[0];
|
|
|
|
|
|
|
2019-12-21 18:09:49 +00:00
|
|
|
|
Assert.Equal(148.3d, pdfPigSquare.Bounds.Width, doubleComparer);
|
|
|
|
|
|
Assert.Equal(148.3d, pdfPigSquare.Bounds.Height, doubleComparer);
|
|
|
|
|
|
Assert.Equal(60.1d, pdfPigSquare.Bounds.Left, doubleComparer);
|
|
|
|
|
|
Assert.Equal(765.8d, pdfPigSquare.Bounds.Top, doubleComparer);
|
|
|
|
|
|
|
2019-10-08 14:04:36 +01:00
|
|
|
|
|
|
|
|
|
|
var pdfPigSquished = images[1];
|
|
|
|
|
|
|
2019-12-21 18:09:49 +00:00
|
|
|
|
Assert.Equal(206.8d, pdfPigSquished.Bounds.Width, doubleComparer);
|
|
|
|
|
|
Assert.Equal(83.2d, pdfPigSquished.Bounds.Height, doubleComparer);
|
|
|
|
|
|
Assert.Equal(309.8d, pdfPigSquished.Bounds.Left, doubleComparer);
|
|
|
|
|
|
Assert.Equal(552.1d, pdfPigSquished.Bounds.Top, doubleComparer);
|
2019-10-08 14:04:36 +01:00
|
|
|
|
|
|
|
|
|
|
var birthdayPigs = images[2];
|
|
|
|
|
|
|
2019-12-21 18:09:49 +00:00
|
|
|
|
Assert.Equal(391d, birthdayPigs.Bounds.Width, doubleComparer);
|
|
|
|
|
|
Assert.Equal(267.1d, birthdayPigs.Bounds.Height, doubleComparer);
|
|
|
|
|
|
Assert.Equal(102.2d, birthdayPigs.Bounds.Left, doubleComparer);
|
|
|
|
|
|
Assert.Equal(426.3d, birthdayPigs.Bounds.Top, doubleComparer);
|
2019-10-08 14:04:36 +01:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
|
public void HasCorrectText()
|
|
|
|
|
|
{
|
|
|
|
|
|
using (var document = PdfDocument.Open(GetFilePath(), ParsingOptions.LenientParsingOff))
|
|
|
|
|
|
{
|
|
|
|
|
|
var page = document.GetPage(1);
|
|
|
|
|
|
Assert.Equal("Oink oink", page.Text);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
|
public void CanAccessImageBytesExceptUnsupported()
|
|
|
|
|
|
{
|
|
|
|
|
|
using (var document = PdfDocument.Open(GetFilePath(), ParsingOptions.LenientParsingOff))
|
|
|
|
|
|
{
|
|
|
|
|
|
var page = document.GetPage(1);
|
|
|
|
|
|
foreach (var image in page.GetImages())
|
|
|
|
|
|
{
|
2020-04-25 09:42:24 +01:00
|
|
|
|
if (image.TryGetBytes(out var bytes))
|
2019-10-08 14:04:36 +01:00
|
|
|
|
{
|
2020-04-25 09:42:24 +01:00
|
|
|
|
Assert.NotNull(bytes);
|
2019-10-08 14:04:36 +01:00
|
|
|
|
}
|
2020-04-25 09:42:24 +01:00
|
|
|
|
else
|
2019-10-08 14:04:36 +01:00
|
|
|
|
{
|
|
|
|
|
|
Assert.NotNull(image.RawBytes);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|