Si vous voulez simplement éviter d'enregistrer beaucoup de fichiers, vous pouvez créer une nouvelle classe d'exportation pour imprimer le fichier juste après sa création et le supprimer instantanément.
Vous pouvez créer une nouvelle classe d'export qui imprime le bitmap de la mémoire (par exemple, en utilisant la classe TPrinter et en dessinant le bitmap directement dans le canevas de l'imprimante) ... vous apprendrez comment vérifier le fichier source du TfrxBMPExport classe.
Prenez ce code non testé comme un exemple qui vous guidera comment créer une nouvelle classe pour sauver/imprimer/supprimer:
type
TBMPPrintExport = class(TfrxBMPExport)
private
FCurrentPage: Integer;
FFileSuffix: string;
protected
function Start: Boolean; override;
procedure StartPage(Page: TfrxReportPage; Index: Integer); override;
procedure Save; override;
end;
{ TBMPPrintExport }
procedure TBMPPrintExport.Save;
var
SavedFileName: string;
begin
inherited;
if SeparateFiles then
FFileSuffix := '.' + IntToStr(FCurrentPage)
else
FFileSuffix := '';
SavedFileName := ChangeFileExt(FileName, FFileSuffix + '.bmp');
//call your actual printing routine here. Be sure your the control returns here when the bitmap file is not needed anymore.
PrintBitmapFile(SavedFileName);
try
DeleteFile(SavedFileName);
except
//handle exceptions here if you want to continue if the file is not deleted
//or let the exception fly to stop the printing process.
//you may want to add the file to a queue for later deletion
end;
end;
function TBMPPrintExport.Start: Boolean;
begin
inherited;
FCurrentPage := 0;
end;
procedure TBMPPrintExport.StartPage(Page: TfrxReportPage; Index: Integer);
begin
inherited;
Inc(FCurrentPage);
end;
Dans le code de production que vous voulez remplacer une autre méthodes pour initialiser et finaliser la le travail de l'imprimante, le nettoyage, etc.
Le code est basé sur l'implémentation de FastReport v4.0 de TfrxCustomImageExport, spécialement pour la numérotation des pages et le nommage des fichiers. Cela peut nécessiter des ajustements pour d'autres versions de FastReport.
En éditant votre question, vous l'avez rendu * plus difficile à comprendre. Vous avez demandé comment créer une image de rapport sans l'enregistrer sur le disque, ce qui semble être exactement ce que la réponse de Jachguate fait. Qu'est-ce que les personnages coréens ont à voir avec ça? Pourquoi votre passage de Rave à Fast Reports est-il pertinent? –
@Rob Kennedy, oui im un problème sur le cor coréen. Seul le premier caractère apparaîtra sur le papier lors de l'impression. désolé si très confus. – XBasic3000