Please use Print method of a barcode component to print the barcode symbol to paper. The TImage control isn't required.
Printer.BeginDoc;
... { Print other content }
Barcode2D_QRCode1.Print('1234567890', clBlack, clWhite, true, 20, 20, 0.3);
... { Print other content }
Printer.EndDoc;
or
Printer.BeginDoc;
... { Print other content }
with Barcode2D_QRCode1 do
begin
ShowQuietZone := true;
BarColor := clBlack;
SpaceColor := clWhite;
Barcode := '1234567890';
Print(20, 20, 0.3);
end;
... { Print other content }
Printer.EndDoc;
The method uses GetDeviceCaps function to retrieves device-specific information for the specified device. It will fail if a default printer is not set in Windows. Please ensure that a default printer is specified in Windows:
Set default printer for current application:
uses Winapi.Printers;
procedure SetAppPrinter(const PrinterName: string);
var
Idx: Integer;
begin
Idx := Printer.Printers.IndexOf(PrinterName);
if Idx <> -1 then
Printer.PrinterIndex := Idx
else
ShowMessage('Printer not found!');
end;
Set the global default printer.
uses Winapi.WinSpool;
procedure SetWindowsDefaultPrinter(const PrinterName: string);
begin
if SetDefaultPrinter(PChar(PrinterName)) then
SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0)
else
RaiseLastOSError;
end;