ImageEn, unit imageenview

TImageEnView.PdfViewer

TImageEnView.PdfViewer


Declaration

property PdfViewer: TIEPdfViewerInteraction;


Description

Provides access to the properties of the TIEPdfViewerInteraction class, which allows viewing and manipulation of PDF files.



Features
- View PDF files with scaling and fit options
- PDF page rotation
- Editing of form fields
- Importing, deleting and moving of pages
- Saving of changed PDF files
- Selection of text and images with clipboard support
- Text searching and highlighting
- High quality printing and exporting to bitmap
- Page thumbnail viewer with one-click navigation
- Access to file attachments
- Keyboard shortcuts
- Web Link support

Notes:
- PDFium support requires Delphi/BCB 2009 or newer
- The PDFium plug-in DLL must exist in the same folder as your application EXE. You can download it from: http://www.imageen.com/download/
- Read more about ImageEn PDF Support
- You cannot use the PdfViewer with multiple layers


Mouse Interactions

Typically the following mouse interactions are used with PdfViewer:

Interactions Description
[ miPdfSelectText, miPdfSelectRgn ] The user can select text or a region (as an image) based on what is under the cursor
[ miPdfSelectText ] The user can select text
[ miPdfSelectRgn ] The user can select a rectangular region (which can be copied to the clipboard as an image)
[ miScroll, miZoom ] The user click and drag to scroll the page or left/right click to zoom in/out

When enabling PdfViewer, MouseInteractGeneral will be set to [miPdfSelectText, miPdfSelectRgn]. miPdfSelectRgn has no effect if ShowAllPages is enabled.
The following interactions are supported: miPdfSelectText, miScroll, miZoom, miSmoothZoom, miMovingScroll. If not showing all pages, you can also use: miPdfSelectRgn, miSelectZoom, miSelect, miSelectPolygon, miSelectCircle, miSelectMagicWand, miSelectLasso, miSelectChromaKey
All layer interactions are disabled.
You can also use the mouse to edit form fields if you enabled AllowFormEditing.


Keyboard Shortcuts

Shortcut Description
Ctrl+C/X/V Cut/Copy/Paste within a form field
Ctrl+C Copy selected text or image
Ctrl+A Select all text on page or in current form field
PageUp/Down Go to previous/next page
Home/End Go to first/last page
Cursor keys Scroll the image (requires iesoAllowMoveByKeyboard)


Demos

Demo  Demos\Other\PdfViewer\PdfViewer.dpr
Demo  Demos\Other\PdfViewerToolbar\PdfViewerToolbar.dpr
Demo  Demos\Actions\Actions_PdfViewer\PdfViewerActions.dpr


Examples

// Register the PDFium Plug-In
IEGlobalSettings().RegisterPlugIns([ iepiPDFium ]);

// Display a PDF document (and allow text and image selection, scaled viewing, etc)
ImageEnView1.PdfViewer.Enabled := True;
ImageEnView1.MouseInteractGeneral := [ miPdfSelectText, miPdfSelectRgn ];
ImageEnView1.IO.LoadFromFilePDF( 'C:\document.pdf' );

// Show all pages at once
ImageEnView1.PdfViewer.ShowAllPages := True;




// Enable form editing
ImageEnView1.PdfViewer.Enabled := True;
ImageEnView1.PdfViewer.AllowFormEditing := True;
ImageEnView1.IO.LoadFromFilePDF( 'C:\document.pdf' );





// Allow user to select images or text and copy to clipboard (automatically detecting selection based on what is under the cursor)
ImageEnView1.MouseInteractGeneral := [ miPdfSelectText, miPdfSelectRgn ];
ImageEnView1.PdfViewer.Enabled := True;

// Allow user to select text and copy to clipboard (image selection disabled)
ImageEnView1.MouseInteractGeneral := [ miPdfSelectText ];
ImageEnView1.PdfViewer.Enabled := True;

// Allow user to select images and copy to clipboard (text selection disabled)
ImageEnView1.MouseInteractGeneral := [ miPdfSelectRgn ];
ImageEnView1.PdfViewer.Enabled := True;




// 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' );

// Move pages to the start of the document
ImageEnView1.PdfViewer.MovePages( [3, 4, 8, 9], 0);

// Delete pages from the document
ImageEnView1.PdfViewer.DeletePages([ 5, 6 ]);

// Prompt to save changes
if ImageEnView1.PdfViewer.DocModified then
  if MessageDlg( 'Save doc changes?', mtConfirmation, [ mbYes,mbNo ], 0 ) = mrYes then
    ImageEnView1.IO.SaveToFilePDF( ImageEnView1.IO.Params.Filename );

// Rotate document right for display
ImageEnView1.PdfViewer.PageRotation := iepr90Clockwise;

// Find and select the text "Adobe"
ImageEnView1.PdfViewer.Find( 'Adobe' );

// Highlight the text "Adobe" thoughout the document
ImageEnView1.PdfViewer.HighlightText( 'Adobe' );

// Copy all text in the page to the clipboard
ImageEnView1.PdfViewer.SelectAll();
ImageEnView1.PdfViewer.CopyToClipboard();

// Save all text in the page to a file
ss := TStringList.Create;
ImageEnView1.LockPaint();
ImageEnView1.PdfViewer.SelectAll();
ss.Text := ImageEnView1.PdfViewer.SelText;
ImageEnView1.PdfViewer.ClearSelection();
ImageEnView1.UnlockPaint();
ss.SaveToFile( 'D:\Page.txt' );
ss.Free;

// Show thumbnail preview of all pages of a PDF document
ImageEnView1.PdfViewer.Enabled := True;
ImageEnView1.AttachedImageEnView := ImageEnView1;
ImageEnView1.IO.LoadFromFilePDF( 'C:\document.pdf' );




See Also

- PDFium PlugIn
- PdfViewerDefaults