Пример #1
0
 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);
             }
         }
     }
 }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }