diff --git a/lms_cgi_server.lpi b/lms_cgi_server.lpi
index 4246394..f48112d 100644
--- a/lms_cgi_server.lpi
+++ b/lms_cgi_server.lpi
@@ -43,6 +43,7 @@
+
diff --git a/noguifrdm.lfm b/noguifrdm.lfm
new file mode 100644
index 0000000..6e0f56a
--- /dev/null
+++ b/noguifrdm.lfm
@@ -0,0 +1,59 @@
+object DataModule1: TDataModule1
+ OnCreate = DataModuleCreate
+ OldCreateOrder = False
+ Height = 150
+ HorizontalOffset = 1520
+ VerticalOffset = 216
+ Width = 150
+ object frxReport1: TfrxReport
+ Version = '2024.1.0'
+ DotMatrixReport = False
+ IniFile = '\Software\Fast Reports'
+ PreviewOptions.Buttons = [pbPrint, pbLoad, pbSave, pbExport, pbZoom, pbFind, pbOutline, pbPageSetup, pbTools, pbEdit, pbNavigator, pbExportQuick, pbCopy, pbSelection]
+ PreviewOptions.Zoom = 1
+ PrintOptions.Printer = 'Default'
+ PrintOptions.PrintOnSheet = 0
+ ReportOptions.CreateDate = 45842.4093666667
+ ReportOptions.LastChange = 45842.4093666667
+ ScriptLanguage = 'PascalScript'
+ ScriptText.Strings = (
+ 'begin'
+ ''
+ 'end.'
+ )
+ Left = 42
+ Top = 41
+ Datasets = <>
+ Variables = <>
+ Style = <>
+ end
+ object frxPDFExport1: TfrxPDFExport
+ UseFileCache = True
+ ShowProgress = True
+ OverwritePrompt = False
+ DataOnly = False
+ EmbedFontsIfProtected = False
+ InteractiveFormsFontSubset = 'A-Z,a-z,0-9,#43-#47 '
+ OpenAfterExport = False
+ PrintOptimized = False
+ Outline = False
+ Background = False
+ HTMLTags = True
+ Quality = 95
+ Author = 'FastReport'
+ Subject = 'FastReport PDF export'
+ Creator = 'FastReport'
+ ProtectionFlags = [ePrint, eModify, eCopy, eAnnot]
+ HideToolbar = False
+ HideMenubar = False
+ HideWindowUI = False
+ FitWindow = False
+ CenterWindow = False
+ PrintScaling = False
+ PdfA = False
+ PDFStandard = psNone
+ PDFVersion = pv17
+ Left = 40
+ Top = 109
+ end
+end
diff --git a/noguifrdm.pas b/noguifrdm.pas
new file mode 100644
index 0000000..2a95824
--- /dev/null
+++ b/noguifrdm.pas
@@ -0,0 +1,49 @@
+unit noguiFRDM;
+
+{$mode ObjFPC}{$H+}
+
+interface
+
+uses
+ Classes, SysUtils, frxClass, frxExportPDF;
+
+type
+
+ { TDataModule1 }
+
+ TDataModule1 = class(TDataModule)
+ frxPDFExport1: TfrxPDFExport;
+ frxReport1: TfrxReport;
+ procedure DataModuleCreate(Sender: TObject);
+ private
+
+ public
+ procedure MakeReport(repFile: string);
+ end;
+
+var
+ DataModule1: TDataModule1;
+
+implementation
+
+{$R *.lfm}
+
+{ TDataModule1 }
+
+procedure TDataModule1.DataModuleCreate(Sender: TObject);
+begin
+ frxReport1.EngineOptions.DestroyForms := False;
+ frxPDFExport1.ShowDialog:=false;
+end;
+
+procedure TDataModule1.MakeReport(repFile: string);
+begin
+ frxReport1.PrepareReport(False);
+ frxPDFExport1.ShowDialog := false;
+ frxPDFExport1.FileName:=repFile;
+ frxPDFExport1.ShowProgress := false;
+ frxReport1.Export(frxPDFExport1);
+end;
+
+end.
+
diff --git a/testNoGUI.lpi b/testNoGUI.lpi
new file mode 100644
index 0000000..edda2a9
--- /dev/null
+++ b/testNoGUI.lpi
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
diff --git a/testNoGUI.lpr b/testNoGUI.lpr
new file mode 100644
index 0000000..3ca1b6f
--- /dev/null
+++ b/testNoGUI.lpr
@@ -0,0 +1,91 @@
+program testNoGUI;
+
+{$mode objfpc}{$H+}
+
+uses
+ {$IFDEF UNIX}
+ cthreads,
+ {$ENDIF}
+ Classes, SysUtils, CustApp,
+ Interfaces,
+ frxClass,frxExportPDF, frxExportODF, frxExportHTML,
+ frxExportHTMLDiv, noguiFRDM
+ { you can add units after this };
+
+type
+
+ { TMyApplication }
+
+ TMyApplication = class(TCustomApplication)
+ protected
+ procedure DoRun; override;
+ public
+ constructor Create(TheOwner: TComponent); override;
+ destructor Destroy; override;
+ procedure WriteHelp; virtual;
+ end;
+
+{ TMyApplication }
+
+procedure TMyApplication.DoRun;
+var
+ ErrorMsg: String;
+begin
+ // quick check parameters
+
+ ErrorMsg:=CheckOptions('h', 'help');
+ if ErrorMsg<>'' then begin
+ ShowException(Exception.Create(ErrorMsg));
+ Terminate;
+ Exit;
+ end;
+
+ // parse parameters
+ if HasOption('h', 'help') then begin
+ WriteHelp;
+ Terminate;
+ Exit;
+ end;
+ writeln('Started');
+ readln;
+ DataModule1 := TDataModule1.Create(self);
+ try
+ writeln('DM Created');
+ DataModule1.MakeReport('test.pdf');
+ writeln('Export Complete');
+ readln;
+ { add your program here }
+ finally
+ DataModule1.Free;
+ end;
+
+ // stop program loop
+ Terminate;
+end;
+
+constructor TMyApplication.Create(TheOwner: TComponent);
+begin
+ inherited Create(TheOwner);
+ StopOnException:=True;
+end;
+
+destructor TMyApplication.Destroy;
+begin
+ inherited Destroy;
+end;
+
+procedure TMyApplication.WriteHelp;
+begin
+ { add your help code here }
+ writeln('Usage: ', ExeName, ' -h');
+end;
+
+var
+ Application: TMyApplication;
+begin
+ Application:=TMyApplication.Create(nil);
+ Application.Title:='My Application';
+ Application.Run;
+ Application.Free;
+end.
+