Converter JPG para PDF usando a DLL GSDLL32.DLL em uma aplicação DELPHI
Boa tarde!
Tenho uma pequena aplicação que converte arquivos PDF para JPG usando a dll ''GSDLL32.DLL'' do GhostScript.
Porém não estou conseguindo fazer o inverso , ou seja converter um arquivo JPG em PDF.
O trecho do código é o abaixo. Está faltando algum parâmetro ?
Desde já agradeço.
Tenho uma pequena aplicação que converte arquivos PDF para JPG usando a dll ''GSDLL32.DLL'' do GhostScript.
Porém não estou conseguindo fazer o inverso , ou seja converter um arquivo JPG em PDF.
O trecho do código é o abaixo. Está faltando algum parâmetro ?
function TUnir.JuntaPdfs(outPdf: ansistring; const files: array of ansistring; pdfa : boolean): Integer; const GS_ARG_ENCODING_UTF8 = 1; e_Quit = -990; var code, code1, gsargc, i: Integer; gsargv: array of pansichar; minst: PGSAPIrevision; begin frmAviso.lblDescricao.Caption := ''''''''''''''''Unindo os arquivos informados.''''''''''''''''; frmAviso.gaugProgress.MaxValue:= 100; frmAviso.gaugProgress.Progress:= 0; setlength(gsargv, length(gsargv) + 1); gsargv[high(gsargv)] := ''''''''''''''''gs''''''''''''''''; setlength(gsargv, length(gsargv) + 1); gsargv[high(gsargv)] := ''''''''''''''''-q''''''''''''''''; setlength(gsargv, length(gsargv) + 1); gsargv[high(gsargv)] := ''''''''''''''''-sDEVICE=pdfwrite''''''''''''''''; setlength(gsargv, length(gsargv) + 1); gsargv[high(gsargv)] := ''''''''''''''''-sPAPERSIZE=a4''''''''''''''''; frmAviso.gaugProgress.Progress:= 10; frmAviso.gaugProgress.Repaint; frmAviso.gaugProgress.Progress:= 30; frmAviso.gaugProgress.Repaint; setlength(gsargv, length(gsargv) + 1); gsargv[high(gsargv)] := ''''''''''''''''-dNOPAUSE''''''''''''''''; setlength(gsargv, length(gsargv) + 1); gsargv[high(gsargv)] := ''''''''''''''''-dBATCH''''''''''''''''; setlength(gsargv, length(gsargv) + 1); gsargv[high(gsargv)] := pansichar(''''''''''''''''-sOutputFile='''''''''''''''' + AnsiToUtf8(outPdf)); for i := Low(files) to High(files) do begin setlength(gsargv, length(gsargv) + 1); gsargv[high(gsargv)] := pansichar(''''''''''''''''-c (''''''''''''''''+files[i]+'''''''''''''''') viewJPEG''''''''''''''''); end; gsargc := length(gsargv); code := gsapi_new_instance(@minst, nil); frmAviso.gaugProgress.Progress:= 50; frmAviso.gaugProgress.Repaint; if (code < 0) then result := 1 else begin code := gsapi_set_arg_encoding(minst, GS_ARG_ENCODING_UTF8); if (code = 0) then code := gsapi_init_with_args(minst, gsargc, @gsargv[0]); code1 := gsapi_exit(minst); if ((code = 0) or (code = e_Quit)) then code := code1; gsapi_delete_instance(minst); if ((code = 0) or (code = e_Quit)) then result := 0; end; frmAviso.gaugProgress.Repaint; frmAviso.gaugProgress.Progress:= 100; end;
Desde já agradeço.
William Maciel
Curtidas 0