TImageEnIO.LoadFromFilePDF
 
Declaration
function LoadFromFilePDF(const FileName: string; Width: Integer = -1; Height: Integer = -1; const Password: string = ''): Boolean;
Description
Loads a PDF image PDF into the attached 
TImageEnView or 
TIEBitmap using a plug-in.
You can optionally specify a size to load the PDF file to improve quality (the size will be automatically adjusted to maintain the aspect ratio).
If the file is encrypted you can specify the password (otherwise a password prompt will be displayed if 
AutoPromptForPassword is enabled).
Result will be false if the file is not PDF format or no PDF plug-ins are available (
Aborting will be true). Loading errors due to a file not being available will raise an exception.
PDF loading requires one of the following plug-ins:
◼ImageEn's PDFium Plug-in
◼WPViewPDF commercial plug-in
◼ImageMagick + GhostScript
 
Note:
◼PDF loading creates a rasterized image of each page (unless 
PdfViewer = True)
◼To manipulate PDF files, enable 
PdfViewer
◼Use 
ImageIndex to specify which page of the PDF file to load
◼Read more about 
ImageEn PDF Support
// Load the 3rd page of a PDF file with max dimensions of 1000x1000
ImageEnView1.ImageIndex := 2;
ImageEnView1.IO.LoadFromFilePDF( 'C:\Test.pdf', 1000, 1000 );
// Display a PDF document
ImageEnView1.PdfViewer.Enabled := True;
ImageEnView1.IO.LoadFromFilePDF( 'C:\document.pdf' );
// Merge two PDF documents
ImageEnView1.PdfViewer.Enabled := True;
ImageEnView1.IO.LoadFromFilePDF( 'C:\document.pdf' );
ImageEnView1.PdfViewer.ImportPages( 'C:\morepages.pdf' );
ImageEnView1.IO.SaveToFilePDF( 'C:\merged.pdf' );
// When rendering PDF files scale to double size
IEGlobalSettings().PdfViewerDefaults.DPI := 144;    // PDF files are 72 DPI, so 144 is 200% size
ImageEnView1.IO.LoadFromFilePDF( 'C:\Test.pdf' );
// Save all pages of a PDF file to PNG
filename := 'C:\doc.pdf';
outputFolder := 'D:\';
IEGlobalSettings().PdfViewerDefaults.DPI := 144; // PDF files are 72 DPI, so 144 is 200% size
io := TImageEnIO.Create(nil);
idx := 0;
Repeat
  io.Params.ImageIndex := idx;
  io.LoadFromFilePDF( filename );
  io.SaveToFile( IncludeTrailingBackSlash( outputFolder ) + format( '%s_%d.png', [ ExtractFilename( filename ), idx+1 ] ));
  inc( idx );
Until idx > io.Params.ImageCount - 1;
io.Free;
// Or alternatively...
var
  iev : TImageEnView;
  idx : Integer;
begin
  // Check PDF library available (shows error if not found)
  IEGlobalSettings().PlugInAvailable([ iepiPDFium ], True );
  iev := TImageEnView.Create(nil);
  try
    iev.PdfViewer.Enabled := True;
    iev.IO.LoadFromFilePDF( 'C:\doc.pdf );
    idx := 0;
    Repeat
      iev.IO.SaveToFileJpeg('D:\PageOut_' + idx.ToString + '.jpg');
      inc( idx );
    Until iev.IO.Seek( ieioSeekNext ) <> idx;
  finally
    iev.Free;
  end;
end;
// Determine if a file is password protected
function PdfFileIsPasswordProtected(const Filename: string): Boolean;
var
  iev: TImageEnView;
begin
  Result := False;
  try
    iev := TImageEnView.Create(nil);
    try
      iev.PdfViewer.Enabled := True;
      iev.IO.LoadFromFilePDF( Filename, -1, -1, '' );
    finally
      iev.Free;
    end;
  except
    on e: Exception do
      if e.Message = RsPdfErrorPassword then  // Defined in iexPdfiumCore = 'Invalid password'
        Result := True;
  end;
end;
See Also
◼PdfViewer
◼PdfViewerDefaults