HTML para PDF

Delphi

09/10/2009

Bom dia pessoal,

Alguem conhece alguma DLL ou algum EXE que pegue um arquivo HTML e converta para PDF.

Se possivel alguma DLL que receba um string com um endereço do arquivo HTML e gere um arquivo PDF.

Se não for pedir demais, hehehe, que seja FREE.

Muito obrigado.

MDV
Marcos Dias Vendramini
marcosvendramini.webng.com


Mdv

Mdv

Curtidas 0

Respostas

Facc

Facc

09/10/2009

Não sei se isso te ajuda, mas existe akelas impressoras virtuais que faz isso

Uma, que uso, é a PDFCreator.


GOSTEI 0
Mdv

Mdv

09/10/2009

Insfelizmente não serve, pediram para não usar essas impressoras porque teriam que instalar no cliente.

Por esse motivo eu precisaria de uma DLL ou de um EXE que eu possa chamar para que o mesmo converta.


GOSTEI 0
Steve_narancic

Steve_narancic

09/10/2009

Vc poderia usar a api do windows, abrindo o html com o navegador passando por parâmetro o comando ´print´ ao invés de print, acho que é uma solução bem pratica, e vai te evitar varias dores de cabeça, ja que todos micros tem navegador instalado....
ShellExecute(handle, ´print´, ´c:\teste.htm´, nil, nil, SW_SHOWNORMAL);



GOSTEI 0
Steve_narancic

Steve_narancic

09/10/2009

Vc poderia usar a api do windows, abrindo o html com o navegador passando por parâmetro o comando ´print´ ao invés de print, acho que é uma solução bem pratica, e vai te evitar varias dores de cabeça, ja que todos micros tem navegador instalado....
ShellExecute(handle, ´print´, ´c:\teste.htm´, nil, nil, SW_SHOWNORMAL);


Viajei, não me liguei que vc queria converter em pdf....


GOSTEI 0
Mdv

Mdv

09/10/2009

UP


GOSTEI 0
Wellington Verzola

Wellington Verzola

09/10/2009

Bom dia pessoal,

Alguem conhece alguma DLL ou algum EXE que pegue um arquivo HTML e converta para PDF.

Se possivel alguma DLL que receba um string com um endereço do arquivo HTML e gere um arquivo PDF.

Se não for pedir demais, hehehe, que seja FREE.

Muito obrigado.

MDV
Marcos Dias Vendramini
marcosvendramini.webng.com




Use isso.

class function FactureUtils.ShellExecuteAndWait(const Operacao, NomeArquivo, Parametros, Diretorio: string; TipoExibicao: Word; Aguardar: Boolean; Landscape: Boolean): Longint;
const
  MSG_CONVERSOR = 'Não foi possível converter o arquivo para PDF pois o conversor ''wkhtmltopdf.exe'' não foi encontrado na pasta do sistema.';
var
  OperacaoFoiExecutada: Boolean;
  Info: TShellExecuteInfo;
  parametrosTemp: string;
begin
  if not FileExists(NomeArquivo) then raise Exception.Create(MSG_CONVERSOR);
  FillChar(Info, SizeOf(Info), Chr(0));
  Info.cbSize := SizeOf(Info);
  Info.fMask  := SEE_MASK_NOCLOSEPROCESS;
  Info.lpVerb := PChar(Operacao);
  Info.lpFile := PChar(NomeArquivo);
  if Landscape then parametrosTemp := ' -O landscape ' + Parametros else parametrosTemp := Parametros;
  Info.lpParameters    := PChar(parametrosTemp);
  Info.lpDirectory     := PChar(Diretorio);
  Info.nShow           := TipoExibicao;
  OperacaoFoiExecutada := Boolean(ShellExecuteEx(@Info));
  if OperacaoFoiExecutada then begin
    if Aguardar then begin
      while WaitForSingleObject(Info.hProcess, 100) = WAIT_TIMEOUT do Application.ProcessMessages;
      OperacaoFoiExecutada := GetExitCodeProcess(Info.hProcess, DWORD(Result));
    end
    else begin
      Result := 0;
    end;
  end;
  if not OperacaoFoiExecutada then begin
    Result := -1;
    raise Exception.Create(MSG_CONVERSOR);
  end;
end;


E use esse executável - wkhtmltopdf.exe
você acha ele aqui.
https://wkhtmltopdf.org/downloads.html
GOSTEI 0
POSTAR