How to print a barcode symbol to paper

Please use Print method of a barcode component to print the barcode symbol to paper. The TImage control isn't required.

For example:

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;

Note:

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;

Contents