Export ohne Benutzeraktionen

Hallo Herr Hambrecht, dank ihrer Hilfe klappt es nun mit dem “PDF-Export”!

Das folgende zeigt den Testcode für den C+±Builder unter Verwendung der VCL.
Vielleicht hilft das Codefragment auch anderen Nichtexperten. Nach einem Klick auf den “PrintButton” wird gedruckt
und dann noch ein PDF-Export durchgeführt.

Ll28Test ist eine Instanz der TListLabel28-Komponete.
Man beachte:
LlXSetParameter(…) ist kein Element von Ll28Test sondern von Ll28Test->Core.
Die Klasse ExportConfiguration existiert in der VCL nicht, jedenfalls habe ich sie nicht gefunden.

TForm1 *Form1;
//
//---------------------------------------------------------------------------------------------------
//
__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{
FilePraefixName="Export";                                             //"variabler" Präfix der Exportdatei
FilePfad="C:\\Users\\Helmut\\Documents\\ListUndLabelTestReports\\";   //"variabler" Dateipfad
}
//
//---------------------------------------------------------------------------------------------------
//
void __fastcall TForm1::DesignButtonClick(TObject *Sender)
{
Ll28Test->Design();
}
//
//---------------------------------------------------------------------------------------------------
//
void __fastcall TForm1::PrintButtonClick(TObject *Sender)
{
	for(int ii=0;ii<2;ii++)
	{
		if(ii==0)
		{
			Ll28Test->Print();
        }
		if(ii==1)
		{
			Ll28Test->OnDefinePrintOptions=DefinePrintOptionsFuerPdfExport; //Zuweisung der Eventroutine
			Ll28Test->Print();
		}
	}
}
//
//---------------------------------------------------------------------------------------------------
//
void __fastcall TForm1::DefinePrintOptionsFuerPdfExport(TObject *Sender)
{
	UnicodeString FileName=FilePraefixName+".pdf";
	Ll28Test->Core->LlXSetParameter(LL_LLX_EXTENSIONTYPE_EXPORT, "PDF", "Export.File", FileName);
	Ll28Test->Core->LlXSetParameter(LL_LLX_EXTENSIONTYPE_EXPORT, "PDF", "Export.Path", FilePfad);
	Ll28Test->Core->LlXSetParameter(LL_LLX_EXTENSIONTYPE_EXPORT, "PDF", "Export.Quiet", L"1");
	Ll28Test->Core->LlPrintSetOptionString(LL_PRNOPTSTR_EXPORT, "PDF");
}
1 Like