//-------------------------------------------------------------------------
private bool ExtractImages(String PDFSourcePath, Audit sourceAudit, out Exception exception)
{
//List<System.Drawing.Image> ImgList = new List<System.Drawing.Image>();
exception = null;
iTextSharp.text.pdf.RandomAccessFileOrArray RAFObj = null;
iTextSharp.text.pdf.PdfReader PDFReaderObj = null;
iTextSharp.text.pdf.PdfObject PDFObj = null;
iTextSharp.text.pdf.PdfStream PDFStremObj = null;
int pageNumber = 0;
bool ok = false;
try
{
RAFObj = new iTextSharp.text.pdf.RandomAccessFileOrArray(PDFSourcePath);
PDFReaderObj = new iTextSharp.text.pdf.PdfReader(RAFObj, null);
for (int i = 0; i < PDFReaderObj.XrefSize; i++)
{
PDFObj = PDFReaderObj.GetPdfObject(i);
if ((PDFObj != null) && PDFObj.IsStream())
{
PDFStremObj = (iTextSharp.text.pdf.PdfStream)PDFObj;
iTextSharp.text.pdf.PdfObject subtype = PDFStremObj.Get(iTextSharp.text.pdf.PdfName.SUBTYPE);
if ((subtype != null) && subtype.ToString() == iTextSharp.text.pdf.PdfName.IMAGE.ToString())
{
try
{
iTextSharp.text.pdf.parser.PdfImageObject PdfImageObj =
new iTextSharp.text.pdf.parser.PdfImageObject((iTextSharp.text.pdf.PRStream)PDFStremObj);
System.Drawing.Image ImgPDF = PdfImageObj.GetDrawingImage();
pageNumber++;
if (pageNumber > PDFReaderObj.NumberOfPages)
return false;
}
catch (Exception)
{
}
}
}
}
pageNumber = 0;
PageCount = PDFReaderObj.NumberOfPages;
for (int i = 0; i < PDFReaderObj.XrefSize; i++)
{
PDFObj = PDFReaderObj.GetPdfObject(i);
if ((PDFObj != null) && PDFObj.IsStream())
{
PDFStremObj = (iTextSharp.text.pdf.PdfStream)PDFObj;
iTextSharp.text.pdf.PdfObject subtype = PDFStremObj.Get(iTextSharp.text.pdf.PdfName.SUBTYPE);
if ((subtype != null) && subtype.ToString() == iTextSharp.text.pdf.PdfName.IMAGE.ToString())
{
try
{
iTextSharp.text.pdf.parser.PdfImageObject PdfImageObj =
new iTextSharp.text.pdf.parser.PdfImageObject((iTextSharp.text.pdf.PRStream)PDFStremObj);
System.Drawing.Image ImgPDF = PdfImageObj.GetDrawingImage();
pageNumber++;
//using (Bitmap bmp = new Bitmap(ImgPDF))
//{
// SaveFrameFiles(PDFSourcePath, sourceAudit, bmp, pageNumber, PageCount);
try
{
SaveFrameFiles(PDFSourcePath, sourceAudit, (Bitmap)ImgPDF, pageNumber, PageCount);
}
catch (Exception)
{
ImgPDF.Dispose();
continue;
}
ImgPDF.Dispose();
ok = true;
//}
}
catch (Exception)
{ }
}
}
}
return ok;
}
catch (Exception)// ex
{
//log.LogMessage(PDFSourcePath + " Page" + pageNumber.ToString() + " ", ex);
return false;
}
finally
{
PDFReaderObj.Close();
PDFReaderObj.Dispose();
}
}