zoukankan      html  css  js  c++  java
  • delphi7之 fastreport本地多台打印机情况下如何选择指定打印机打印

    1.首先获取当前本地所有的打印机

    单元需要引用'Printers' 通过Printer.Printers获取打印机列表,存到配置文件或者是键值对中

    2.frxReport.PrintOptions.Printer 打印的时候用取到的打印机名称对这个属性进行赋值就可以了。

    示例代码:Unit1.pas

    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, frxClass;
    
    type
      TForm1 = class(TForm)
        cbb_printers: TComboBox;
        Label1: TLabel;
        frxReport1: TfrxReport;
        btnPrint: TButton;
        procedure FormCreate(Sender: TObject);
        procedure btnPrintClick(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    uses
      Printers;
    
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      cbb_printers.Items.AddStrings(Printer.Printers);
      if cbb_printers.Items.Count > 0 then
        cbb_printers.ItemIndex := 0;
    end;
    
    procedure TForm1.btnPrintClick(Sender: TObject);
    var
      print_template: string;
    begin
      if cbb_printers.Items.Count = 0 then
      begin
        ShowMessage('没有打印机');
        Exit;
      end;
    
      print_template := ExtractFilePath(ParamStr(0)) + 'print.fr3';
      if FileExists(print_template) then
      begin
        frxReport1.LoadFromFile(print_template);
        //frxReport1.DesignReport();
      end
      else
      begin
        //ShowMessage('打印模板文件:【' + print_template + '】不存在');
      end;
    
      frxReport1.PrepareReport();
      frxReport1.PrintOptions.ShowDialog:=false;
      frxReport1.PrintOptions.Printer := cbb_printers.Text;
      //frxReport1.Report.PrintOptions.Printer := cbb_printers.Text;
      frxReport1.print;
    end;
    
    end.
    

      

    Unit1.dfm

    object Form1: TForm1
      Left = 189
      Top = 220
      Width = 766
      Height = 457
      Caption = 'Form1'
      Color = clBtnFace
      Font.Charset = GB2312_CHARSET
      Font.Color = clBlue
      Font.Height = -19
      Font.Name = '微软雅黑'
      Font.Style = []
      OldCreateOrder = False
      OnCreate = FormCreate
      PixelsPerInch = 96
      TextHeight = 25
      object Label1: TLabel
        Left = 200
        Top = 96
        Width = 114
        Height = 25
        Caption = '打印机列表:'
      end
      object cbb_printers: TComboBox
        Left = 200
        Top = 144
        Width = 457
        Height = 33
        ItemHeight = 25
        TabOrder = 0
        Text = 'cbb_printers'
      end
      object btnPrint: TButton
        Left = 272
        Top = 216
        Width = 161
        Height = 57
        Caption = '打印'
        TabOrder = 1
        OnClick = btnPrintClick
      end
      object frxReport1: TfrxReport
        Version = '4.9.32'
        DotMatrixReport = False
        IniFile = 'SoftwareFast Reports'
        PreviewOptions.Buttons = [pbPrint, pbLoad, pbSave, pbExport, pbZoom, pbFind, pbOutline, pbPageSetup, pbTools, pbEdit, pbNavigator, pbExportQuick]
        PreviewOptions.Zoom = 1.000000000000000000
        PrintOptions.Printer = '预设'
        PrintOptions.PrintOnSheet = 0
        ReportOptions.CreateDate = 44085.749619872690000000
        ReportOptions.LastChange = 44085.749619872690000000
        ScriptLanguage = 'PascalScript'
        ScriptText.Strings = (
          'begin'
          ''
          'end.')
        Left = 192
        Top = 224
        Datasets = <>
        Variables = <>
        Style = <>
      end
    end
    

      

  • 相关阅读:
    我倾向于使用发布版本进行调试,而不是使用调试版本
    常见WinDbg问题及解决方案
    在崩溃转储中查找所有可能的上下文记录
    向C/C++程序员介绍Windbg 脚本
    VS 使用技巧(1)
    Windows资源监视器软件的原理
    微架构、指令集架构与汇编语言的关系
    调试寄存器 原理与使用:DR0-DR7
    如何学习调试?
    WinDbg: 执行 SOS 扩展命令 !clrstack时报错 Access violation exception (0xC0000005)
  • 原文地址:https://www.cnblogs.com/tc310/p/13653264.html
Copyright © 2011-2022 走看看