1
0
mirror of https://github.com/salvadordf/CEF4Delphi.git synced 2025-06-22 22:17:48 +02:00

Added Printing support in Linux

Added the GlobalCEFApp.DisableZygote property
Added the GlobalCEFApp.OnPrintStart event.
Added the GlobalCEFApp.OnPrintSettings event.
Added the GlobalCEFApp.OnPrintDialog event.
Added the GlobalCEFApp.OnPrintJob event.
Added the GlobalCEFApp.OnPrintReset event.
Added the GlobalCEFApp.OnGetPDFPaperSize event.
This commit is contained in:
Salvador Diaz Fau
2021-01-01 17:51:09 +01:00
parent 1d984307ad
commit e3f1a0902d
18 changed files with 720 additions and 126 deletions

View File

@ -74,11 +74,13 @@ type
TCefCustomBrowserProcessHandler = class(TCefBrowserProcessHandlerOwn)
protected
FCefApp : TCefApplicationCore;
FCefApp : TCefApplicationCore;
FPrintHandler : ICefPrintHandler;
procedure GetCookieableSchemes(var schemes: TStringList; var include_defaults : boolean); override;
procedure OnContextInitialized; override;
procedure OnBeforeChildProcessLaunch(const commandLine: ICefCommandLine); override;
procedure GetPrintHandler(var aHandler : ICefPrintHandler); override;
procedure OnScheduleMessagePumpWork(const delayMs: Int64); override;
procedure GetDefaultClient(var aClient : ICefClient); override;
@ -97,7 +99,8 @@ uses
{$ELSE}
SysUtils,
{$ENDIF}
uCEFMiscFunctions, uCEFLibFunctions, uCEFCommandLine, uCEFListValue, uCEFConstants, uCEFStringList;
uCEFMiscFunctions, uCEFLibFunctions, uCEFCommandLine, uCEFListValue, uCEFConstants, uCEFStringList,
uCEFPrintHandler;
procedure cef_browser_process_handler_get_cookieable_schemes(self : PCefBrowserProcessHandler;
schemes : TCefStringList;
@ -228,7 +231,7 @@ end;
procedure TCefBrowserProcessHandlerOwn.GetPrintHandler(var aHandler : ICefPrintHandler);
begin
aHandler := nil; // only linux
aHandler := nil;
end;
procedure TCefBrowserProcessHandlerOwn.GetDefaultClient(var aClient : ICefClient);
@ -245,6 +248,11 @@ begin
inherited Create;
FCefApp := aCefApp;
if (FCefApp <> nil) and FCefApp.MustCreatePrintHandler then
FPrintHandler := TCustomPrintHandler.Create(FCefApp)
else
FPrintHandler := nil;
end;
destructor TCefCustomBrowserProcessHandler.Destroy;
@ -256,7 +264,11 @@ end;
procedure TCefCustomBrowserProcessHandler.RemoveReferences;
begin
begin
if (FPrintHandler <> nil) then
FPrintHandler.RemoveReferences;
FCefApp := nil;
FPrintHandler := nil;
end;
@ -289,6 +301,14 @@ begin
on e : exception do
if CustomExceptionHandler('TCefCustomBrowserProcessHandler.OnBeforeChildProcessLaunch', e) then raise;
end;
end;
procedure TCefCustomBrowserProcessHandler.GetPrintHandler(var aHandler : ICefPrintHandler);
begin
if (FPrintHandler <> nil) then
aHandler := FPrintHandler
else
inherited GetPrintHandler(aHandler);
end;
procedure TCefCustomBrowserProcessHandler.OnScheduleMessagePumpWork(const delayMs: Int64);