Ver Mensaje Individual
  #2  
Antiguo 30-01-2018
Garada Garada is offline
Miembro
 
Registrado: jul 2004
Posts: 66
Reputación: 20
Garada Va por buen camino
En delphi 2010 y QR 5.05.2 me va con la modificación del método CreateMetafilecanvas en la unidad QrPrntr:

Código Delphi [-]

procedure TQRPrinter.CreateMetafileCanvas;

  function scaleToNativeDeskRes(pVal: Integer): Integer;
  var
   tTemp: HDC;
  begin
    tTemp := GetDC(0);
    try
      Result := Round((pVal * GetDeviceCaps(tTemp, VERTRES)) / GetDeviceCaps(tTemp, DESKTOPVERTRES));
    finally
      ReleaseDC(0, tTemp);
    end;
  end;

begin
  FMetafile := TMetafile.Create;
//{$define HIRES}
{$ifdef HIRES}
  // try a high res canvas
  XFactor := GetDeviceCaps(aPrinter.Handle, LogPixelsX) / 254;
  YFactor := GetDeviceCaps(aPrinter.Handle, LogPixelsY) / 254;
  FMetafile.Width := XSize(PaperWidthValue);
  FMetafile.Height := YSize(PaperLengthValue);
  FCanvas := TMetafileCanvas.Create(FMetafile, aprinter.Handle);
  FCanvas.Font.PixelsPerInch := GetDeviceCaps(aprinter.Handle, LOGPIXELSY);
  {$else}
  FMetafile.Width := scaleToNativeDeskRes(XSize(PaperWidthValue));
  FMetafile.Height := scaleToNativeDeskRes(YSize(PaperLengthValue));
  FCanvas := TMetafileCanvas.Create(FMetafile, 0);
//  FCanvas.Font.PixelsPerInch := MetafileDPI;
//***
  YFactor := Screen.PixelsPerInch / 254;
  XFactor := YFactor;
  SetGraphicsMode( FCanvas.handle, GM_ADVANCED);
{$endif}
  //FHyperlinks := TList.Create;
end;
Responder Con Cita