jburda Postado 6 Março Postado 6 Março Estava utilizando delphi 10.3, e a impressão da NFe estava ocorrendo sem problemas, mas ao mudar para o delphi 13, passei a ter o erro "Range Check Error" sempre que faço a impressão da NFe com a DANFE ACBrNFeDANFeRL. Para ter certeza que o problema não estava no programa, fiz teste no demo do acbr, mas ocorreu o mesmo. Pensei em utilizar a DANFE ACBrNFeDANFeFPDF, mas diz que ImprimirDanfe não está implementado. Alguém já passou por isto? Qual solução proposta?
jburda Postado 10 Março Autor Postado 10 Março O problema está quando utiliza o RLBarcode. O erro ocorre na Unit RLUtils.pas, procedure RotateBitmap procedure RotateBitmap(ASource, ADest: TBitmap; AAngle: Double; AAxis, AOffset: TPoint); type {$ifdef CLX} TRGBQuad = packed record rgbBlue: Byte; rgbGreen: Byte; rgbRed: Byte; rgbReserved: Byte; end; {$endif} PRGBArray = ^TRGBArray; TRGBArray = array[0..0] of TRGBQuad; var I: Integer; iDest: Integer; iOriginal: Integer; iPrime: Integer; iPrimeRotated: Integer; // J: Integer; jDest: Integer; jOriginal: Integer; jPrime: Integer; jPrimeRotated: Integer; // RowSource: PRGBArray; RowDest: PRGBArray; // Radians: Double; RadiansCos: Double; RadiansSin: Double; begin // Convert degrees to radians. Use minus sign to force clockwise rotation. Radians := AAngle * PI / 180; RadiansSin := Sin(Radians); RadiansCos := Cos(Radians); // Step through each row of rotated image. for J := 0 to ADest.Height - 1 do begin RowDest := ADest.ScanLine[J]; jDest := J - AOffset.Y; jPrime := 2 * (jDest - AAxis.Y) + 1; // center y: -1,0,+1 // Step through each col of rotated image. for I := 0 to ADest.Width - 1 do begin iDest := I - AOffset.X; iPrime := 2 * (iDest - AAxis.X) + 1; // center x: -1,0,+1 // Rotate (iPrime, jPrime) to location of desired pixel // Note: There is negligible difference between floating point and scaled integer arithmetic here, so keep the math simple (and readable). iPrimeRotated := Round(iPrime * RadiansCos - jPrime * RadiansSin); jPrimeRotated := Round(iPrime * RadiansSin + jPrime * RadiansCos); // Transform back to pixel coordinates of image, including translation // of origin from axis of rotation to origin of image. iOriginal := (iPrimeRotated - 1) div 2 + AAxis.X; jOriginal := (jPrimeRotated - 1) div 2 + AAxis.Y; // Make sure (iOriginal, jOriginal) is in aSource. If not, assign blue color to corner points. if (iOriginal >= 0) and (iOriginal <= ASource.Width - 1) and (jOriginal >= 0) and (jOriginal <= ASource.Height - 1) then begin // Assign pixel from rotated space to current pixel in aDest RowSource := ASource.ScanLine[jOriginal]; RowDest[I] := RowSource[iOriginal]; <<<<=========== erro nesta linha na segunda iteração end else begin RowSource := ASource.ScanLine[0]; RowDest[I] := RowSource[0]; end; end; end; end;
Consultores Juliomar Marchetti Postado 10 Março Consultores Postado 10 Março coloca no projeto senão me engano no inicio {$M+} algo assim resolve Juliomar Marchetti Ajude o Projeto ACBr crescer - Seja Pro discord: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!
Recommended Posts
Crie uma conta ou entre para comentar
Você precisar ser um membro para fazer um comentário
Criar uma conta
Crie uma nova conta em nossa comunidade. É fácil!
Crie uma nova contaEntrar
Já tem uma conta? Faça o login.
Entrar Agora