namespace UglyToad.Pdf.Tests.Parser { using Graphics; using Pdf.Parser; using Xunit; public class PageContentParserTests { private readonly PageContentParser parser = new PageContentParser(); [Fact] public void CorrectlyExtractsOperations() { var input = StringBytesTestConverter.Convert(SimpleGoogleDocPageContent, false); var result = parser.Parse(new ReflectionGraphicsStateOperationFactory(), input.Bytes); } private const string SimpleGoogleDocPageContent = @" 1 0 0 -1 0 792 cm q 0 0 612 792 re W* n q .75 0 0 .75 0 0 cm 1 1 1 RG 1 1 1 rg /G0 gs 0 0 816 1056 re f 0 0 816 1056 re f 0 0 816 1056 re f Q Q q 0 0 612 791.25 re W* n q .75 0 0 .75 0 0 cm 1 1 1 RG 1 1 1 rg /G0 gs 0 0 816 1055 re f 0 96 816 960 re f 0 0 0 RG 0 0 0 rg BT /F0 21.33 Tf 1 0 0 -1 0 140 Tm 96 0 Td <0037> Tj 13.0280762 0 Td <004B> Tj 11.8616943 0 Td <004C> Tj 4.7384338 0 Td <0056> Tj ET BT /F1 21.33 Tf 1 0 0 -1 0 140 Tm 136.292267 0 Td <0001> Tj ET BT /F0 21.33 Tf 1 0 0 -1 0 140 Tm 136.292267 0 Td <0003> Tj ET BT /F1 21.33 Tf 1 0 0 -1 0 140 Tm 142.217911 0 Td <0001> Tj ET BT /F0 21.33 Tf 1 0 0 -1 0 140 Tm 142.217911 0 Td <004C> Tj 4.7384338 0 Td <0056> Tj ET BT /F1 21.33 Tf 1 0 0 -1 0 140 Tm 157.620407 0 Td <0001> Tj ET BT /F0 21.33 Tf 1 0 0 -1 0 140 Tm 157.620407 0 Td <0003> Tj ET BT /F1 21.33 Tf 1 0 0 -1 0 140 Tm 163.546051 0 Td <0001> Tj ET BT /F0 21.33 Tf 1 0 0 -1 0 140 Tm 163.546051 0 Td <0057> Tj 5.9256439 0 Td <004B> Tj 11.8616943 0 Td <0048> Tj ET BT /F1 21.33 Tf 1 0 0 -1 0 140 Tm 193.19508 0 Td <0001> Tj ET BT /F0 21.33 Tf 1 0 0 -1 0 140 Tm 193.19508 0 Td <0003> Tj ET BT /F1 21.33 Tf 1 0 0 -1 0 140 Tm 199.12073 0 Td <0001> Tj ET BT /F0 21.33 Tf 1 0 0 -1 0 140 Tm 199.12073 0 Td <0047> Tj 11.8616943 0 Td <0052> Tj 11.8616943 0 Td <0046> Tj 10.6640625 0 Td <0058> Tj 11.8616943 0 Td <0050> Tj 17.766479 0 Td <0048> Tj 11.8616943 0 Td <0051> Tj 11.8616943 0 Td <0057> Tj ET BT /F1 21.33 Tf 1 0 0 -1 0 140 Tm 292.7854 0 Td <0001> Tj ET BT /F0 21.33 Tf 1 0 0 -1 0 140 Tm 292.7854 0 Td <0003> Tj ET BT /F1 21.33 Tf 1 0 0 -1 0 140 Tm 298.71106 0 Td <0001> Tj ET BT /F0 21.33 Tf 1 0 0 -1 0 140 Tm 298.71106 0 Td <0057> Tj 5.9256287 0 Td <004C> Tj 4.7384338 0 Td <0057> Tj 5.9256592 0 Td <004F> Tj 4.7384033 0 Td <0048> Tj ET BT /F0 21.33 Tf 1 0 0 -1 0 140 Tm 331.89063 0 Td <0003> Tj ET BT /F0 14.6599998 Tf 1 0 0 -1 0 171 Tm 96 0 Td <0003> Tj ET BT /F0 14.6599998 Tf 1 0 0 -1 0 191 Tm 96 0 Td <0037> Tj 8.9526215 0 Td <004B> Tj 8.1511078 0 Td <0048> Tj 8.1511078 0 Td <0055> Tj 4.8806458 0 Td <0048> Tj ET BT /F1 14.6599998 Tf 1 0 0 -1 0 191 Tm 134.286591 0 Td <0001> Tj ET BT /F0 14.6599998 Tf 1 0 0 -1 0 191 Tm 134.286591 0 Td <0003> Tj ET BT /F1 14.6599998 Tf 1 0 0 -1 0 191 Tm 138.358566 0 Td <0001> Tj ET BT /F0 14.6599998 Tf 1 0 0 -1 0 191 Tm 138.358566 0 Td <004C> Tj 3.2561493 0 Td <0056> Tj ET BT /F1 14.6599998 Tf 1 0 0 -1 0 191 Tm 148.942841 0 Td <0001> Tj ET BT /F0 14.6599998 Tf 1 0 0 -1 0 191 Tm 148.942841 0 Td <0003> Tj ET BT /F1 14.6599998 Tf 1 0 0 -1 0 191 Tm 153.014816 0 Td <0001> Tj ET BT /F0 14.6599998 Tf 1 0 0 -1 0 191 Tm 153.014816 0 Td <0056> Tj 7.328125 0 Td <0052> Tj 8.1511078 0 Td <0050> Tj 12.2087708 0 Td <0048> Tj ET BT /F1 14.6599998 Tf 1 0 0 -1 0 191 Tm 188.85393 0 Td <0001> Tj ET BT /F0 14.6599998 Tf 1 0 0 -1 0 191 Tm 188.85393 0 Td <0003> Tj ET BT /F1 14.6599998 Tf 1 0 0 -1 0 191 Tm 192.9259 0 Td <0001> Tj ET BT /F0 14.6599998 Tf 1 0 0 -1 0 191 Tm 192.9259 0 Td <004F> Tj 3.2561493 0 Td <0048> Tj 8.1511078 0 Td <0047> Tj 8.1511078 0 Td <0048> Tj ET BT /F1 14.6599998 Tf 1 0 0 -1 0 191 Tm 220.63538 0 Td <0001> Tj ET BT /F0 14.6599998 Tf 1 0 0 -1 0 191 Tm 220.63538 0 Td <0003> Tj ET BT /F1 14.6599998 Tf 1 0 0 -1 0 191 Tm 224.70735 0 Td <0001> Tj ET BT /F0 14.6599998 Tf 1 0 0 -1 0 191 Tm 224.70735 0 Td <0057> Tj 4.0719757 0 Td <0048> Tj 8.1511078 0 Td <005B> Tj 7.328125 0 Td <0057> Tj ET BT /F1 14.6599998 Tf 1 0 0 -1 0 191 Tm 248.33054 0 Td <0001> Tj ET BT /F0 14.6599998 Tf 1 0 0 -1 0 191 Tm 248.33054 0 Td <0003> Tj ET BT /F1 14.6599998 Tf 1 0 0 -1 0 191 Tm 252.40251 0 Td <0001> Tj ET BT /F0 14.6599998 Tf 1 0 0 -1 0 191 Tm 252.40251 0 Td <004B> Tj 8.1511078 0 Td <0048> Tj 8.1510925 0 Td <0055> Tj 4.8806763 0 Td <0048> Tj ET BT /F0 14.6599998 Tf 1 0 0 -1 0 191 Tm 281.73438 0 Td <0003> Tj ET BT /F0 14.6599998 Tf 1 0 0 -1 0 211 Tm 96 0 Td <0003> Tj ET BT /F0 14.6599998 Tf 1 0 0 -1 0 231 Tm 96 0 Td <0024> Tj 9.7756042 0 Td <0051> Tj 8.1511078 0 Td <0047> Tj ET BT /F1 14.6599998 Tf 1 0 0 -1 0 231 Tm 122.07782 0 Td <0001> Tj ET BT /F0 14.6599998 Tf 1 0 0 -1 0 231 Tm 122.07782 0 Td <0003> Tj ET BT /F1 14.6599998 Tf 1 0 0 -1 0 231 Tm 126.149796 0 Td <0001> Tj ET BT /F0 14.6599998 Tf 1 0 0 -1 0 231 Tm 126.149796 0 Td <0057> Tj 4.0719757 0 Td <004B> Tj 8.1511078 0 Td <0048> Tj 8.1511078 0 Td <0051> Tj ET BT /F1 14.6599998 Tf 1 0 0 -1 0 231 Tm 154.675095 0 Td <0001> Tj ET BT /F0 14.6599998 Tf 1 0 0 -1 0 231 Tm 154.675095 0 Td <0003> Tj ET BT /F1 14.6599998 Tf 1 0 0 -1 0 231 Tm 158.74707 0 Td <0001> Tj ET BT /F0 14.6599998 Tf 1 0 0 -1 0 231 Tm 158.74707 0 Td <0044> Tj 8.1511078 0 Td <0051> Tj 8.1511078 0 Td <0052> Tj 8.1511078 0 Td <0057> Tj 4.0719757 0 Td <004B> Tj 8.1511078 0 Td <0048> Tj 8.1511078 0 Td <0055> Tj ET BT /F1 14.6599998 Tf 1 0 0 -1 0 231 Tm 208.45523 0 Td <0001> Tj ET BT /F0 14.6599998 Tf 1 0 0 -1 0 231 Tm 208.45523 0 Td <0003> Tj ET BT /F1 14.6599998 Tf 1 0 0 -1 0 231 Tm 212.52721 0 Td <0001> Tj ET BT /F0 14.6599998 Tf 1 0 0 -1 0 231 Tm 212.52721 0 Td <004F> Tj 3.2561493 0 Td <004C> Tj 3.2561493 0 Td <0051> Tj 8.1511078 0 Td <0048> Tj ET BT /F1 14.6599998 Tf 1 0 0 -1 0 231 Tm 235.34172 0 Td <0001> Tj ET BT /F0 14.6599998 Tf 1 0 0 -1 0 231 Tm 235.34172 0 Td <0003> Tj ET BT /F1 14.6599998 Tf 1 0 0 -1 0 231 Tm 239.4137 0 Td <0001> Tj ET BT /F0 14.6599998 Tf 1 0 0 -1 0 231 Tm 239.4137 0 Td <0052> Tj 8.1511078 0 Td <0049> Tj ET BT /F1 14.6599998 Tf 1 0 0 -1 0 231 Tm 251.63678 0 Td <0001> Tj ET BT /F0 14.6599998 Tf 1 0 0 -1 0 231 Tm 251.63678 0 Td <0003> Tj ET BT /F1 14.6599998 Tf 1 0 0 -1 0 231 Tm 255.70876 0 Td <0001> Tj ET BT /F0 14.6599998 Tf 1 0 0 -1 0 231 Tm 255.70876 0 Td <0057> Tj 4.0719757 0 Td <0048> Tj 8.1510925 0 Td <005B> Tj 7.328125 0 Td <0057> Tj 4.071991 0 Td <0011> Tj ET BT /F0 14.6599998 Tf 1 0 0 -1 0 231 Tm 283.39063 0 Td <0003> Tj ET Q Q "; } }