private void TestFile(String filename, int page, String objectid)
{
PdfReader pdfReader = TestResourceUtils.GetResourceAsPdfReader(TEST_RESOURCES_PATH, filename);
try
{
PdfDictionary resources = pdfReader.GetPageResources(page);
PdfDictionary xobjects = resources.GetAsDict(PdfName.XOBJECT);
PdfIndirectReference objRef = xobjects.GetAsIndirectObject(new PdfName(objectid));
if (objRef == null)
throw new NullReferenceException("Reference " + objectid + " not found - Available keys are " + xobjects.Keys);
PRStream stream = (PRStream)PdfReader.GetPdfObject(objRef);
PdfDictionary colorSpaceDic = resources != null ? resources.GetAsDict(PdfName.COLORSPACE) : null;
PdfImageObject img = new PdfImageObject(stream, colorSpaceDic);
byte[] result = img.GetImageAsBytes();
Assert.NotNull(result);
int zeroCount = 0;
foreach (byte b in result)
{
if (b == 0) zeroCount++;
}
Assert.IsTrue(zeroCount > 0);
}
finally
{
pdfReader.Close();
}
}