TTMSFNCWXPDFViewer
The TTMSFNCWXPDFViewer
is a component to display PDF files in your applications, including page
thumbnails. There is programmatic access to navigate through pages, search text and more. It uses
the PDF.js JavaScript library.
Load a PDF
You can load a PDF through different methods:
To load from a URL, use TTMSFNCWXPDFViewer.LoadFromURL
. Keep in mind that the PDF will be
retrieved via an HTTP request in this case, so any URLs that are CORS protected won’t be able to
load.
A PDF can be load as a base64 encoded string by using the TTMSFNCWXPDFViewer.LoadFromBase64
method.
For VCL, FMX and LCL there is also an extra method available which enables PDF loading directly from files.
procedure TForm1.Button1Click(Sender: TObject);
begin
//From URL:
TMSFNCWXPDFViewer1.LoadFromUrl('my/url');
//From base64:
TMSFNCWXPDFViewer1.LoadFromBase64('base64encodedfile');
//From file (only VCL, FMX and LCL):
TMSFNCWXPDFViewer1.LoadFromFile('path\to\pdf_file.pdf');
end;
Thumbnails
By default thumbnail generation is disabled. To enable this functionality, set the
TTMSFNCWXPDFViewer.CalculateThumbnails
property to True. After that, whenever a PDF is
loaded, the thumbnails will be calculated. These thumbnails can be accessed by implementing the
OnGenerateThumbnail
event.
procedure TForm1.TMSFNCPDFViewer1GenerateThumbnail(Sender: TObject;
NumPage: Integer; Base64Img: string);
var
ms: TMemoryStream;
b: TBytes;
Base64DataImg: string;
begin
Base64DataImg := Copy(Base64Img, Pos(',', Base64Img) + 1,
Length(Base64Img));
b := TTMSFNCUtils.Decode64ToBytes(Base64DataImg);
ms := TMemoryStream.Create;
try
ms.Write(b, Length(b));
ms.Position := 0;
//Use your image here
//For example: load it into a bitmap from a stream
finally
ms.Free;
end;
end;
Methods
Property name | Description |
---|---|
NextPage | Navigate to the next page. |
PreviousPage | Navigate to the previous page. |
ShowPage(AIndex: Integer) | Show a page with a given index. |
ZoomIn | Zoom into the PDF. |
ZoomOut | Zoom out of the PDF. |
TurnAngleLeft | Rotate the PDF to the left by 90 degrees. |
TurnAngleRight | Rotate the PDF to the right by 90 degrees. GenerateImageActualPage |
SearchText(TextToSearch: string) | Search for a given text. |
Events
Property name | Description |
---|---|
OnLoaded | Event triggers when the PDF has loaded. |
OnPageLoaded | Event triggers when the current page has loaded. |
OnPageRendered | Event triggers when the current page has been rendered. |
OnLoadError | Event triggers when an error happens during loading. |
OnGenerateThumbnail | Event triggers for each generated thumbnail. |
OnGenerateImagePage | Event triggers as a result of the GenerateImageActualPage method. |
OnHyperlinkClick | Event triggers when a hyperlink is clicked in the PDF. |
OnThumbnailProgress | Event triggers as the thumbnails are being loaded. The progress can be tracked here. |
OnViewerInitialized | Event triggers when the TTMSFNCWXPDFViewer is initialized. |
OnFoundSearchText | Event triggers for each match for the SearchText method. |
OnNotFoundSearchText | Event triggers when no search results were found for a given text. |
OnSearchTextFinished | Event triggers when the text search finished. |