private void ProcessResources(PDResources resources, string prefix, bool addKey) { if (resources != null) { Iterator iterator = resources.getXObjectNames().iterator(); int num = 1; while (iterator.hasNext()) { COSName cOSName = (COSName)iterator.next(); string str = null; str = (!addKey ? this.GetUniqueFileName(prefix, ".jpg") : this.GetUniqueFileName(string.Concat(prefix, "_", num), ".jpg")); PDResources.OutputFileName = string.Concat(str, ".jpg"); PDXObject xObject = resources.getXObject(cOSName); if (resources.isImageXObject(cOSName)) { PDImageXObject pDImageXObject = (PDImageXObject)xObject; str = (!addKey ? this.GetUniqueFileName(prefix, pDImageXObject.getSuffix()) : this.GetUniqueFileName(string.Concat(prefix, "_", num), pDImageXObject.getSuffix())); Console.WriteLine(string.Concat("Writing image:", str)); try { BufferedImage image = pDImageXObject.getImage(); ImageIO.write(image, "jpg", new java.io.File(string.Concat(str, ".jpg"))); } catch (Exception exception) { Console.WriteLine("Could not write image: {0}.{1}{2}", str, Environment.NewLine, exception.Message); } } else if (xObject is PDFormXObject) { this.ProcessResources(((PDFormXObject)xObject).getResources(), prefix, addKey); } } } }
private static void drawXObject(PDImageXObject xobject, PDResources resources, OutputStream os, float x, float y, float width, float height) { COSName cOSName = resources.@add(xobject); PDFHelper.appendRawCommands(os, PDFHelper.SAVE_GRAPHICS_STATE); PDFHelper.appendRawCommands(os, PDFHelper.formatDecimal.format((double)width)); PDFHelper.appendRawCommands(os, PDFHelper.SPACE); PDFHelper.appendRawCommands(os, PDFHelper.formatDecimal.format((long)0)); PDFHelper.appendRawCommands(os, PDFHelper.SPACE); PDFHelper.appendRawCommands(os, PDFHelper.formatDecimal.format((long)0)); PDFHelper.appendRawCommands(os, PDFHelper.SPACE); PDFHelper.appendRawCommands(os, PDFHelper.formatDecimal.format((double)height)); PDFHelper.appendRawCommands(os, PDFHelper.SPACE); PDFHelper.appendRawCommands(os, PDFHelper.formatDecimal.format((double)x)); PDFHelper.appendRawCommands(os, PDFHelper.SPACE); PDFHelper.appendRawCommands(os, PDFHelper.formatDecimal.format((double)y)); PDFHelper.appendRawCommands(os, PDFHelper.SPACE); PDFHelper.appendRawCommands(os, PDFHelper.CONCATENATE_MATRIX); PDFHelper.appendRawCommands(os, PDFHelper.SPACE); PDFHelper.appendRawCommands(os, "/"); PDFHelper.appendRawCommands(os, cOSName.getName()); PDFHelper.appendRawCommands(os, PDFHelper.SPACE); PDFHelper.appendRawCommands(os, PDFHelper.XOBJECT_DO); PDFHelper.appendRawCommands(os, PDFHelper.SPACE); PDFHelper.appendRawCommands(os, PDFHelper.RESTORE_GRAPHICS_STATE); }
private bool CheckImages() { bool flag; try { foreach (PDPage page in this.doc.getPages()) { PDResources resources = page.getResources(); Iterator iterator = resources.getXObjectNames().iterator(); while (iterator.hasNext()) { COSName cOSName = (COSName)iterator.next(); if (resources.isImageXObject(cOSName)) { PDXObject xObject = null; try { xObject = resources.getXObject(cOSName); } catch (Exception exception) { continue; } PDImageXObject pDImageXObject = (PDImageXObject)xObject; COSBase filters = pDImageXObject.getCOSStream().getFilters(); if (filters != null) { if ((filters.toString().ToLower().Contains("jpxdecode") ? true : filters.toString().ToLower().Contains("lzw"))) { flag = false; return(flag); } } if (pDImageXObject.getSoftMask() != null) { pDImageXObject.setColorSpace(null); } PDImageXObject mask = pDImageXObject.getMask(); pDImageXObject.getSoftMask(); if (mask != null) { pDImageXObject.setColorSpace(null); } } } } flag = true; } catch (Exception exception1) { flag = false; } return(flag); }