anchor.diff:  begin
     Dec(X, FPrintCut.X);
     qpol := (X * FormFactorX) / ScreenPPI; // transforma X em polegadas
  -  qcol := qpol * StandardCPP; // transforma polegadas em colunas de acordo com o cpp padro
  +  qcol := qpol * StandardCPP; // transforma polegadas em colunas de acordo com o cpp padrão
     Result := Trunc(qcol * PinsPerCol); // transforma colunas em pinos
   end;
   
  
positive.code:     constructor Create(AOwner: TComponent); override;
      destructor Destroy; override;
  
      {@method DefaultCommands - Preenche lista de cdigos de programao de acordo com a famlia de impressoras
       escolhida. :/}
      procedure DefaultCommands;
  
    published
    
      {@method SetOrientation - Seleciona a orientao de papel padro.
       @links TRLPageOrientation. :/}
      procedure SetOrientation(AOrientation: TRLPageOrientation); override;
  
      {@prop Commands - Cdigos de programao para a impressora.
       Esta propriedade especifica os cdigos de compresso, efeitos de fonte e controle de pgina nativos da impressora.
       Os cdigos da configurao default so para impressoras do tipo EPSON.  possvel porm adapt-los a praticamente
       qualquer impressora matricial.
       Cada linha deve indicar o comando e a sequencia de bytes na seguinte forma: "NOME=Asc1,'Chr1',Asc2,'ChrN',Asc2".
       Pode conter as seguintes variveis: 
       CR - Retorno do carro (ex.: CR=13);
       LF - Avano de linha (ex.: LF=10);
       BS - Retrocesso de 1 caractere (ex.: BS=8);
       FF - Avano de pgina (ex.: FF=12);
       Reset - Inicializao da impressora (ex.: RESET=27,'@');
       MicroOn - Micro salto de N/12 de linha (ex.: MicroOn=27,'A',#);
       MicroOff - Volta ao salto normal de linha (ex.: MicroOff=27,'2');
       Space - O caractere de espao (ex.: Space=32);
       CPP10 - Compresso a 10 caracteres/polegada (ex.: CPP10=27,'P',18);
       CPP12 - Compresso a 12 caracteres/polegada (ex.: CPP12=27,'M',18);
       CPP17 - Compresso a 17 caracteres/polegada (ex.: CPP17=27,'P',15);
       CPP20 - Compresso a 20 caracteres/polegada (ex.: CPP20=27,'M',15);
       ExpandOn - Liga modo expandido (ex.: ExpandOn=27,'W',1);
       ExpandOff - Modo expandido desligado (ex.: ExpandOff=27,'W',0);
       BoldOn - Liga modo negrito (ex.: BoldOn=27,'G');
       BoldOff - Modo negrito desligado (ex.: BoldOff=27,'H');
       ItalicOn - Liga modo itlico (ex.: ItalicOn=27,'4');
       ItalicOff - Modo itlico desligado (ex.: ItalicOff=27,'5');
       UnderlineOn - Liga modo itlico (ex.: UnderlineOn=27,'-1');
       UnderlineOff - Modo itlico desligado (ex.: UnderlineOff=27,'-0');
       RAW - Envio de sequncia de bytes para impresso de grficos (ex.: RAW=27,'L',#l,#h).
       @links DefaultCommands, PrinterFamily. :/}
      property Commands: TStrings read FCommands write SetCommands stored IsCustomPrinterFamily;
  
      {@prop DriverName - Nome de arquivo "driver" contendo os cdigos de programao da impressora.
       Utilize esta propriedade quando quiser manter os cdigos de programao da impressora
       em um arquivo texto externo ao programa. A sintaxe do arquivo  a mesma da propriedade
       Commands.
       @links Commands, DefaultCommands. :/}
      property DriverName: String read FDriverName write FDriverName;
  
      {@prop DeviceKind - Tipo de dispositivo de impresso.
       Indica que tipo de dispositivo est identificado na propriedade DevicePath.
       @links TRLDeviceKind, DevicePath. :/}
      property DeviceKind: TRLDeviceKind read FDeviceKind write FDeviceKind stored IsCustomDevice;
  
      {@prop DevicePath - Caminho para o dispositivo de impresso.
       Esta propriedade indica o nome ou o caminho do dispositivo de impresso ou programa spooler.
       No Windows pode-se utilizar um dos dispositivos padres: PRN, LPT1, LPT2 etc, ou um caminho de
       rede no formato "\\computador\impressora". O dispositivo PRN  especialmente interessante, pois
       sempre representa a impressora atualmente selecionada pelo sistema.
       No Linux pode-se informar tanto um caminho para um dispositivo (ex.: "/dev/lp0") como para um
       programa de controle de spool como o lpr (ex.: "lpr -P%p %f"). Neste ltimo caso, "%p" representa
       o nome de uma impressora vlida cadastrada pelo linuxconf, e "%f" o nome de um arquivo temporrio
       gerado pelo FR.
       @links DeviceKind. :/}
      property DevicePath: String read FDevicePath write FDevicePath stored IsCustomDevice;
  
      {@prop AccentMethod - Comportamento do filtro em relao a caracteres acentuados.
       Algumas impressoras no suportam ou podem no estar adequadamente configuradas para imprimir
       caracteres acentuados.
       @links TRLDraftAccentMethod. :/}
      property AccentMethod: TRLDraftAccentMethod read FAccentMethod write FAccentMethod default amOverwrite;
  
      {@prop EjectMethod - Comportamento do filtro em relao aos saltos de pginas.
       Em alguns casos quando se tem um tamanho especfico de formulrio pode ser necessrio
       modificar a maneira como o filtro efetua os saltos de pgina.
       @links TRLDraftEjectMethod, Commands. :/}
      property EjectMethod: TRLDraftEjectMethod read FEjectMethod write FEjectMethod default ejCompletePage;
  
      {@prop PrinterFamily - Famlia de impressoras.
       s vezes  desejvel conhecer algumas particularidades da impressora a ser utilizada e que
       no podem ser informadas somente com comandos, como a impresso de grficos.
       @links TRLPrinterFamily. :/}
      property PrinterFamily: TRLPrinterFamily read FPrinterFamily write SetPrinterFamily default fmEpsonLike;
  
      {@prop DitheringMethod - Mtodo para impresso de imagens.
       Esta propriedade indica que mtodo deve ser utilizado para transformar imagens coloridas
       em preto e branco.
       @links TRLDitheringMethod. :/}
      property DitheringMethod: TRLDitheringMethod read FDitheringMethod write FDitheringMethod default dmColorTable;
  
      {@prop LineDrawMethod - Mtodo para impresso de linhas.
       Esta propriedade indica que mtodo deve ser utilizado para desenhar linhas numa impressora
       matricial.
       @links TRLLineDrawMethod. :/}
      property LineDrawMethod: TRLLineDrawMethod read FLineDrawMethod write FLineDrawMethod default ldMinusAndPipe;
  
      {@prop FillArtMethod - Mtodo para o preenchimento de retngulos ou traos grossos. :/}
      property FillArtMethod: TRLFillArtMethod read FFillArtMethod write FFillArtMethod default fmNone;
  
      {@prop FormSelection - Poltica de seleo de tamanho para formulrios contnuos.
       @links TRLFormSelection. :/}
      property FormSelection: TRLFormSelection read FFormSelection write SetFormSelection default fsAccordingToOrientation;
  
      {@prop StretchCharWidth - Mtodo de adaptao do tamanho das fontes.
       @links TRLStretchCharWidth. :/}
      property StretchCharWidth: TRLStretchCharWidth read FStretchCharWidth write FStretchCharWidth default scShrinksOnly;
  
      {@prop TextDecoration - Decorao do texto.
       @links TRLDraftTextDecoration. :/}
      property TextDecoration: TRLDraftTextDecoration read FTextDecoration write SetTextDecoration default ddIncludeAll;
      
  
negative.code: 
    { TRLDraftFilter }
  
    {@class TRLDraftFilter - Filtro de impressão para impressoras matriciais.
     Este filtro age substituindo os comandos gráficos que seriam enviados ao driver da impressora por códigos de
     programação, os quais são enviados diretamente para o dispositivo de impressão ou programa spooler. Com isso se
     consegue imprimir o mesmo relatório em impressoras de tecnologias diferentes, mantendo-se o design gráfico original
     com impressoras a jato e a laser, e alta velocidade em uma matricial.
     Há várias propriedades e maneiras de se conseguir bons resultados, equilibrando velocidade e qualidade de impressão.   
     Nota: O algorítmo do filtro conseguirá fazer uma melhor aproximação de fontes TrueType variáveis do que de fontes
     fixas. Portanto, não é necessário desenhar os relatórios em uma fonte com pitch fixo, como: Courier ou Terminal.
     @ancestor TRLCustomPrintFilter.
     @links TRLHTMLFilter, TRLRichFilter.
     @pub }
  