Jump to content
Fórum Script Brasil
  • 0

Imprimir No Quick Report


jo_user
 Share

Question

5 answers to this question

Recommended Posts

  • 0
Pessoal boa tarde, estou com uma dúvida no Quick Report, quando mando para a impressora ele automaticamente envia para LPT1: da minha máquina, é possível direcionar para qual impressora eu desejo enviar LPT2: ou USB?
jo_user, normalmente o quick utiliza a impressora padrão.

No preview você pode alterar a impressora destino através do botão de configuração da impressão.

Se for para alterar a impressora programaticamente, também dá. O que você quer realmente?

Link to comment
Share on other sites

  • 0

você pode aterar sua imp. padrão de acordo com a sua escolha.

Utilize o seguinte código p/ alterá-la:

procedure MudaImpressora(index: integer); 
var 
  szPrinterName, szIniInfo, szSection: PChar; 
begin 
  try 
   GetMem(szPrinterName, SizeOf(Char) * 256); 
   GetMem(szIniInfo, SizeOf(Char) * 256); 
   GetMem(szSection, 10); 
   if (Pos(' on ', Printer.Printers[index]) = 0) then 
     StrPCopy(szPrinterName, Copy(Printer.Printers[index], 1, Length(Printer.Printers[index]))) 
   else 
     StrPCopy(szPrinterName, Copy(Printer.Printers[index], 1, Pos(' on ', Printer.Printers[index]) - 1 )); 
   GetProfileString('DEVICES', szPrinterName, nil, szIniInfo, 254); 
   if szIniInfo^ <> #0 then 
     begin 
     StrCat(szPrinterName, ','); 
     StrCat(szPrinterName, szIniInfo); 
     WriteProfileString('Windows', 'DEVICE', szPrinterName); 
     StrCopy(szSection, 'Windows'); 
     PostMessage(HWND_BROADCAST, WM_WININICHANGE, 0, LongInt(szSection)); 
   end; 
   FreeMem(szPrinterName, SizeOf(Char) * 256); 
   FreeMem(szIniInfo, SizeOf(Char) * 256); 
   FreeMem(szSection, 10); 
 except 
   on E: EOutOfMemory do ShowMessage(E.Message); 
   on E: EInvalidPointer do ShowMessage(E.Message);                    
 end; 
end;
O valor que é passado como parametro p/ o procedimento, se refere ao índice da impressora. você pode obter a lista de suas impressoras, c/ seu respectivo índice utilizando o código abaixo:
function slListaImpressoras: TStringList; 
var 
      i: Integer; 
      slTmp: TStringList; 
begin 
  slTmp := TStringList.Create; 
  for i := 0 to Pred(Printer.Printers.Count) do 
    slTmp.Add(Printer.Printers[i]); 

  Result := slTmp; 
end;

Falow!!

Kartter

Link to comment
Share on other sites

  • 0

kartter, parece-me que este procedimento altera a impressora padrão do Windows, ou seja, para todos os aplicativos.

Se o jo_user, quiser mudar apenas a do QuickReport, o caminho é um pouco diferente. Para ele a "informação" está em QRPrinter (se não me engano)

Abraços

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.2k
    • Total Posts
      647.5k
×
×
  • Create New...