<commit_before>{ Projeto: FortesReport Community Edition                                      }
{  um poderoso gerador de relatrios disponvel como um pacote de componentes }
{ para Delphi. Em FortesReport, os relatrios so constitudos por bandas que  }
{ tm funes especficas no fluxo de impresso. Voc definir agrupamentos     }
{ subnveis e totais simplesmente pela relao hierrquica entre as bandas.    }
{ Alm disso possui uma rica paleta de Componentes                             }
{                                                                              }
{ Direitos Autorais Reservados(c) Copyright  1999-2015 Fortes Informtica     }
{                                                                              }
{ Colaboradores nesse arquivo: <NAME>                                 }
{                              <NAME>                                  }
{                              <NAME>                        }
{                              <NAME>                              }
{                                                                              }
{  Voc pode obter a ltima verso desse arquivo na pagina do Projeto          }
{  localizado em                                                               }
{ https://github.com/fortesinformatica/fortesreport-ce                         }
{                                                                              }
{  Para mais informaes voc pode consultar o site www.fortesreport.com.br ou }
{  no Yahoo Groups https://groups.yahoo.com/neo/groups/fortesreport/info       }
{                                                                              }
{  Esta biblioteca  software livre; voc pode redistribu-la e/ou modific-la }
{ sob os termos da Licena Pblica Geral Menor do GNU conforme publicada pela  }
{ Free Software Foundation; tanto a verso 2.1 da Licena, ou (a seu critrio) }
{ qualquer verso posterior.                                                   }
{                                                                              }
{  Esta biblioteca  distribuda na expectativa de que seja til, porm, SEM   }
{ NENHUMA GARANTIA; nem mesmo a garantia implcita de COMERCIABILIDADE OU      }
{ ADEQUAO A UMA FINALIDADE ESPECFICA. Consulte a Licena Pblica Geral Menor}
{ do GNU para mais detalhes. (Arquivo LICENA.TXT ou LICENSE.TXT)              }
{                                                                              }
{  Voc deve ter recebido uma cpia da Licena Pblica Geral Menor do GNU junto}
{ com esta biblioteca; se no, escreva para a Free Software Foundation, Inc.,  }
{ no endereo 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.          }
{ Voc tambm pode obter uma copia da licena em:                              }
{ http://www.opensource.org/licenses/gpl-license.php                           }
{                                                                              }
{******************************************************************************}

{******************************************************************************
|* Historico
|*
|* xx/xx/xxxx:  Autor...
|* - Descrio...
******************************************************************************}

{$I RLReport.inc}

{@unit RLPrinters - Implementao do wrapper para o objeto Printer. }

unit RLPrinters;

interface

uses
  {$IfDef MSWINDOWS}
   Windows, WinSpool,
   {$IfNDef FPC}
    Messages,
   {$EndIf}
  {$EndIf}
  Classes, SysUtils,
  {$IfDef CLX}
   QTypes, QGraphics, QDialogs, QPrinters,
  {$Else}
   Types, Graphics, Dialogs, Printers,
  {$EndIf}
  {$IfDef FPC}
   OSPrinters,
   {$IfDef MSWINDOWS}WinUtilPrn,{$Else}process,{$EndIf}
  {$EndIf}
  RLConsts, RLTypes, RLUtils;

type
  TRLPrintOddEvenPages = (odOddPagesOnly, odEvenPagesOnly, odAllPages);

  TRLPrinterWrapper = class
  private
    FPrinters: TStrings;
    FCustomWidth: Double;
    FCustomHeight: Double;
    FOddEven: TRLPrintOddEvenPages;
    //
    function GetPrinterIndex: Integer;
    procedure SetPrinterIndex(const Value: Integer);
    function GetCopies: Integer;
    procedure SetCopies(const Value: Integer);
    function GetDuplex: Boolean;
    procedure SetDuplex(const Value: Boolean);
    function GetOddEven: TRLPrintOddEvenPages;
    procedure SetOddEven(const Value: TRLPrintOddEvenPages);
    function GetPrinterName: string;
    procedure SetPrinterName(const APrinterName: string);
    function GetPrinterPort: string;
    procedure LoadPrintersList(APrinters: TStrings);
    procedure PrintersNeeded;<commit_msg>ajustes para compilar no XE8<commit_after>{ Projeto: FortesReport Community Edition                                      }
{  um poderoso gerador de relatrios disponvel como um pacote de componentes }
{ para Delphi. Em FortesReport, os relatrios so constitudos por bandas que  }
{ tm funes especficas no fluxo de impresso. Voc definir agrupamentos     }
{ subnveis e totais simplesmente pela relao hierrquica entre as bandas.    }
{ Alm disso possui uma rica paleta de Componentes                             }
{                                                                              }
{ Direitos Autorais Reservados(c) Copyright  1999-2015 Fortes Informtica     }
{                                                                              }
{ Colaboradores nesse arquivo: <NAME>                                 }
{                              <NAME>                                  }
{                              <NAME>                        }
{                              <NAME>                              }
{                                                                              }
{  Voc pode obter a ltima verso desse arquivo na pagina do Projeto          }
{  localizado em                                                               }
{ https://github.com/fortesinformatica/fortesreport-ce                         }
{                                                                              }
{  Para mais informaes voc pode consultar o site www.fortesreport.com.br ou }
{  no Yahoo Groups https://groups.yahoo.com/neo/groups/fortesreport/info       }
{                                                                              }
{  Esta biblioteca  software livre; voc pode redistribu-la e/ou modific-la }
{ sob os termos da Licena Pblica Geral Menor do GNU conforme publicada pela  }
{ Free Software Foundation; tanto a verso 2.1 da Licena, ou (a seu critrio) }
{ qualquer verso posterior.                                                   }
{                                                                              }
{  Esta biblioteca  distribuda na expectativa de que seja til, porm, SEM   }
{ NENHUMA GARANTIA; nem mesmo a garantia implcita de COMERCIABILIDADE OU      }
{ ADEQUAO A UMA FINALIDADE ESPECFICA. Consulte a Licena Pblica Geral Menor}
{ do GNU para mais detalhes. (Arquivo LICENA.TXT ou LICENSE.TXT)              }
{                                                                              }
{  Voc deve ter recebido uma cpia da Licena Pblica Geral Menor do GNU junto}
{ com esta biblioteca; se no, escreva para a Free Software Foundation, Inc.,  }
{ no endereo 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.          }
{ Voc tambm pode obter uma copia da licena em:                              }
{ http://www.opensource.org/licenses/gpl-license.php                           }
{                                                                              }
{******************************************************************************}

{******************************************************************************
|* Historico
|*
|* xx/xx/xxxx:  Autor...
|* - Descrio...
******************************************************************************}

{$I RLReport.inc}

{@unit RLPrinters - Implementao do wrapper para o objeto Printer. }

unit RLPrinters;

interface

uses
  {$IfDef MSWINDOWS}
   Windows, WinSpool,
   {$IfNDef FPC}
    Messages,
   {$EndIf}
  {$EndIf}
  Classes, SysUtils,
  {$IfDef CLX}
   QTypes, QGraphics, QDialogs, QPrinters,
  {$Else}
   Types, Graphics, Dialogs, Printers, Math,
  {$EndIf}
  {$IfDef FPC}
   OSPrinters,
   {$IfDef MSWINDOWS}WinUtilPrn,{$Else}process,{$EndIf}
  {$EndIf}
  RLConsts, RLTypes, RLUtils;

type
  TRLPrintOddEvenPages = (odOddPagesOnly, odEvenPagesOnly, odAllPages);

  TRLPrinterWrapper = class
  private
    FPrinters: TStrings;
    FCustomWidth: Double;
    FCustomHeight: Double;
    FOddEven: TRLPrintOddEvenPages;
    //
    function GetPrinterIndex: Integer;
    procedure SetPrinterIndex(const Value: Integer);
    function GetCopies: Integer;
    procedure SetCopies(const Value: Integer);
    function GetDuplex: Boolean;
    procedure SetDuplex(const Value: Boolean);
    function GetOddEven: TRLPrintOddEvenPages;
    procedure SetOddEven(const Value: TRLPrintOddEvenPages);
    function GetPrinterName: string;
    procedure SetPrinterName(const APrinterName: string);
    function GetPrinterPort: string;
    procedure LoadPrintersList(APrinters: TStrings);
    procedure PrintersNeeded;
{'fraction_non_alphanumeric': 0.11645877028369578, 'fraction_numerical': 0.005408985539242742, 'mean_word_length': 1.5885714285714285, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 11, 'https://': 4, 'lorem ipsum': 0, 'www.': 4, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 58, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7280438', 'n_tokens_mistral': 2414, 'n_tokens_neox': 2302, 'n_words': 672}