|
4 | 4 | using DocumentLayoutAnalysis.PageSegmenter; |
5 | 5 | using DocumentLayoutAnalysis.WordExtractor; |
6 | 6 | using PdfPig.Core; |
| 7 | + using SkiaSharp; |
7 | 8 |
|
8 | 9 | public class GithubIssuesTests |
9 | 10 | { |
| 11 | + [Fact] |
| 12 | + public void Issue1183() |
| 13 | + { |
| 14 | + var path = IntegrationHelpers.GetDocumentPath("test_a.pdf"); |
| 15 | + |
| 16 | + byte[] expected = |
| 17 | + [ |
| 18 | + 82, 85, 134, 255, 87, 90, 139, 255, 81, 84, 133, 255, 87, 89, 139, 255, 89, 91, 141, 255, 81, 83, 133, |
| 19 | + 255, 84, 86, 136, 255, 84, 86, 136, 255, 70, 59, 113, 255, 69, 62, 116, 255, 75, 73, 126, 255, 45, 48, |
| 20 | + 100, 255, 42, 48, 99, 255, 50, 55, 107, 255, 56, 59, 111, 255, 64, 66, 118, 255, 68, 63, 118, 255, 61, |
| 21 | + 56, 111, 255, 70, 64, 120, 255, 67, 62, 117, 255, 61, 56, 111, 255, 68, 63, 118, 255, 68, 62, 118, 255, |
| 22 | + 59, 54, 109, 255, 61, 60, 117, 255, 69, 65, 122, 255, 67, 59, 116, 255, 71, 62, 118, 255, 66, 60, 115, |
| 23 | + 255, 47, 49, 102, 255, 40, 51, 102, 255, 35, 51, 100, 255, 70, 58, 114, 255, 68, 56, 112, 255, 76, 65, |
| 24 | + 121, 255, 68, 58, 114, 255, 66, 58, 114, 255, 71, 64, 119, 255, 62, 56, 111, 255, 67, 62, 117, 255, 77, |
| 25 | + 61, 118, 255, 71, 56, 113, 255, 76, 63, 119, 255, 74, 63, 118, 255, 63, 55, 108, 255, 71, 64, 116, 255, |
| 26 | + 73, 68, 119, 255, 52, 49, 99, 255, 38, 51, 99, 255, 49, 62, 110, 255, 39, 51, 100, 255, 46, 55, 106, |
| 27 | + 255, 50, 55, 107, 255, 63, 62, 116, 255, 67, 60, 116, 255, 71, 60, 116, 255, 67, 58, 112, 255, 68, 61, |
| 28 | + 114, 255, 70, 67, 119, 255, 50, 50, 101, 255, 42, 47, 96, 255, 49, 59, 106, 255, 40, 54, 100, 255, 42, |
| 29 | + 57, 103, 255, 51, 51, 102, 255, 67, 60, 112, 255, 73, 62, 114, 255, 71, 65, 117, 255, 48, 53, 103, 255, |
| 30 | + 45, 55, 104, 255, 49, 55, 105, 255, 63, 63, 114, 255, 68, 59, 115, 255, 71, 59, 115, 255, 73, 59, 115, |
| 31 | + 255, 74, 61, 118, 255, 66, 58, 114, 255, 50, 51, 105, 255, 39, 51, 104, 255, 34, 52, 103, 255, 64, 60, |
| 32 | + 116, 255, 67, 64, 119, 255, 66, 66, 120, 255, 46, 49, 102, 255, 45, 51, 102, 255, 52, 61, 111, 255, 39, |
| 33 | + 51, 99, 255, 41, 54, 102, 255, 42, 54, 100, 255, 43, 53, 99, 255, 47, 55, 103, 255, 51, 56, 104, 255, |
| 34 | + 56, 57, 108, 255, 67, 65, 117, 255, 67, 63, 116, 255, 52, 47, 100, 255, 44, 55, 106, 255, 44, 56, 106, |
| 35 | + 255, 42, 54, 103, 255, 42, 54, 102, 255, 40, 52, 100, 255, 41, 52, 99, 255, 45, 57, 103, 255, 42, 53, |
| 36 | + 99, 255, 38, 54, 95, 255, 39, 55, 97, 255, 47, 64, 105, 255, 37, 53, 95, 255, 37, 53, 95, 255, 46, 63, |
| 37 | + 104, 255, 39, 55, 96, 255, 42, 58, 99, 255, 41, 55, 105, 255, 45, 55, 106, 255, 46, 51, 103, 255, 51, |
| 38 | + 51, 103, 255, 63, 61, 114, 255, 70, 68, 121, 255, 60, 60, 113, 255, 46, 48, 100, 255, 49, 51, 101, 255, |
| 39 | + 51, 52, 103, 255, 58, 58, 109, 255, 69, 66, 119, 255, 64, 60, 113, 255, 61, 55, 109, 255, 70, 62, 118, |
| 40 | + 255, 67, 58, 114, 255, 72, 59, 115, 255, 70, 58, 115, 255, 72, 62, 118, 255, 61, 55, 110, 255, 64, 62, |
| 41 | + 116, 255, 65, 65, 119, 255, 47, 50, 104, 255, 52, 56, 109, 255, 39, 53, 106, 255, 41, 54, 107, 255, 40, |
| 42 | + 50, 102, 255, 45, 51, 103, 255, 64, 66, 117, 255, 62, 61, 112, 255, 67, 63, 114, 255, 53, 47, 98, 255, |
| 43 | + 49, 54, 101, 255, 51, 56, 104, 255, 43, 48, 95, 255, 50, 55, 102, 255, 49, 54, 102, 255, 42, 47, 94, |
| 44 | + 255, 51, 56, 103, 255, 47, 52, 100, 255, 72, 62, 114, 255, 71, 62, 114, 255, 72, 67, 119, 255, 52, 52, |
| 45 | + 103, 255, 44, 48, 99, 255, 48, 57, 106, 255, 39, 52, 100, 255, 43, 58, 106, 255, 43, 51, 98, 255, 44, |
| 46 | + 52, 99, 255, 48, 57, 104, 255, 46, 55, 102, 255, 41, 50, 97, 255, 45, 55, 101, 255, 49, 59, 105, 255, |
| 47 | + 43, 53, 100, 255, 51, 57, 106, 255, 41, 49, 98, 255, 40, 52, 100, 255, 45, 60, 107, 255, 38, 53, 101, |
| 48 | + 255, 36, 48, 96, 255, 46, 54, 102, 255, 49, 55, 104, 255, 44, 55, 104, 255, 46, 56, 105, 255, 48, 58, |
| 49 | + 107, 255, 41, 49, 99, 255, 43, 50, 100, 255, 52, 59, 108, 255, 50, 55, 105, 255, 50, 55, 105, 255, 43, |
| 50 | + 54, 105, 255, 42, 51, 102, 255, 45, 53, 104, 255, 45, 49, 101, 255, 63, 63, 116, 255, 66, 63, 116, 255, |
| 51 | + 68, 63, 117, 255, 62, 55, 109, 255, 74, 60, 120, 255, 73, 59, 119, 255, 72, 58, 119, 255, 76, 62, 122, |
| 52 | + 255, 74, 60, 120, 255, 71, 57, 118, 255, 75, 61, 121, 255, 76, 62, 123, 255 |
| 53 | + ]; |
| 54 | + |
| 55 | + using (var document = PdfDocument.Open(path, new ParsingOptions() { UseLenientParsing = true })) |
| 56 | + { |
| 57 | + var page = document.GetPage(16); |
| 58 | + var images = page.GetImages().ToArray(); |
| 59 | + |
| 60 | + Assert.Single(images); |
| 61 | + |
| 62 | + var image = images[0]; |
| 63 | + |
| 64 | + Assert.True(image.TryGetPng(out var bytes)); |
| 65 | + |
| 66 | + File.WriteAllBytes("test_a_16.png", bytes); |
| 67 | + |
| 68 | + using (SKBitmap actual = SKBitmap.Decode(bytes, new SKImageInfo(431, 690, SKColorType.Bgra8888))) |
| 69 | + { |
| 70 | + var pixels = actual.GetPixelSpan(); |
| 71 | + Assert.Equal(1189560, pixels.Length); |
| 72 | + Assert.Equal(expected, pixels.Slice(0, 4 * 200).ToArray()); |
| 73 | + } |
| 74 | + } |
| 75 | + } |
| 76 | + |
10 | 77 | [Fact] |
11 | 78 | public void Issue1156() |
12 | 79 | { |
|
0 commit comments