Problema ao abrir PDF automaticamente

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

tonicm
Usuário Nível 2
Usuário Nível 2
Mensagens: 55
Registrado em: 08 Mar 2016 21:51
Localização: Porto

Problema ao abrir PDF automaticamente

Mensagem por tonicm »

Gero um PDF em harbour e abro o mesmo automaticamente (através da minha aplicação) com a aplicação predefinida no windows.
No meu caso tenho adobe acrobat reader.
Quando o adobe não está em uso, o PDF é aberto automaticamente com o adobe.
No entanto se o adobe estiver em execução (com outro PDF), já não abre o PDF gerado, tenho de esperar algum tempo ou sair da aplicação.
Já tentei de várias maneiras, mas acontece sempre isso.
Anexo 3 maneiras que utilizei.

Código: Selecionar todos

SwapOut(cFile)

FUNCTION SwapOut( cProgram, cParameter )
   SHELLEXECUTE( 0, 0, cProgram, cParameter, 0, 1 )
RETURN( NIL )

HB_FUNC( SHELLEXECUTE )
{
   hb_retnl( ( LONG ) ShellExecute( ( HWND ) hb_parnl( 1 ),
   hb_parc( 2 ), hb_parc( 3 ), hb_parc( 4 ), hb_parc( 5 ),
   hb_parni( 6 ) ) );
}

Código: Selecionar todos

wapi_ShellExecute(, , cFile)

Código: Selecionar todos

Abre_arquivo( cFile )

FUNCTION Abre_arquivo( cHelpFile )
   LOCAL nRet, cPath, cFileName, cFileExt
   HB_FNameSplit( cHelpFile, @cPath, @cFileName, @cFileExt )
   nRet := _OpenHelpFile( cPath, cHelpFile )
RETURN nRet

#pragma BEGINDUMP
   #pragma comment( lib, "shell32.lib" )
   #include "hbapi.h"
   #include <windows.h>
   HB_FUNC( _OPENHELPFILE )
   {
     HINSTANCE hInst;
     LPCTSTR lpPath = (LPTSTR) hb_parc( 1 );
     LPCTSTR lpHelpFile = (LPTSTR) hb_parc( 2 );
     hInst = ShellExecute( 0, "open", lpHelpFile, 0, lpPath, SW_SHOW );
     hb_retnl( (LONG) hInst );
     return;
   }
#pragma ENDDUMP
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

Problema ao abrir PDF automaticamente

Mensagem por Kapiaba »

Que ferramentas você usa?
tonicm
Usuário Nível 2
Usuário Nível 2
Mensagens: 55
Registrado em: 08 Mar 2016 21:51
Localização: Porto

Problema ao abrir PDF automaticamente

Mensagem por tonicm »

Kapiaba escreveu:Que ferramentas você usa?
Não percebi bem a pergunta.

Método de trabalho:
- Harbour 3.4.0dev (5d4d604) (2017-07-02 23:32)
- Crio o PDF com o PageScript32 - compilo assim: ps32.hbc
- A aplicação grava o PDF numa pasta específica e depois executa um dos comandos que mencionei para abrir o PDF
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

Problema ao abrir PDF automaticamente

Mensagem por Kapiaba »

Não manjo de harbour, mas veja se assim vai ou ache o comando equivalente em Harbour.
Tem que funcionar.

Código: Selecionar todos

   ShellExecute(GetActiveWindow(),"open",'"'+cNomePDF+'"', 0 )
Abs.
tonicm
Usuário Nível 2
Usuário Nível 2
Mensagens: 55
Registrado em: 08 Mar 2016 21:51
Localização: Porto

Problema ao abrir PDF automaticamente

Mensagem por tonicm »

Kapiaba escreveu:Não manjo de harbour, mas veja se assim vai ou ache o comando equivalente em Harbour.
Tem que funcionar.
Obrigado pela ajuda Kapiaba. :-Y
Esses exemplos já tinha pesquisado, e usei conforme está no meu primeiro tópico.

Pelos testes que fiz, este problema só acontece caso o adobe já esteja aberto antes de iniciar a aplicação.
Acho que tem alguma coisa a haver com o facto de estar a fazer a operação "open" e o adobe já estar aberto.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Problema ao abrir PDF automaticamente

Mensagem por Itamar M. Lins Jr. »

Ola!
Já usou o hb_processRun() ?

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

Problema ao abrir PDF automaticamente

Mensagem por Kapiaba »

Se o problema, é o adobe, use o SUMATRAPDF.EXE ou o PDFMACHINE versão grátis.

De uma olhada aqui:

https://pctoledo.org/forum/viewto ... df#p119033

Abs.
tonicm
Usuário Nível 2
Usuário Nível 2
Mensagens: 55
Registrado em: 08 Mar 2016 21:51
Localização: Porto

Problema ao abrir PDF automaticamente

Mensagem por tonicm »

Itamar M. Lins Jr. escreveu:Ola!
Já usou o hb_processRun() ?

Saudações,
Itamar M. Lins Jr.
Se o adobe não estiver aberto quando executo a aplicação, funciona tudo bem.
Se o adobe já estiver aberto, a aplicação bloqueia.
Kapiaba escreveu:Se o problema, é o adobe, use o SUMATRAPDF.EXE ou o PDFMACHINE versão grátis.

De uma olhada aqui:

viewtopic.php?f=4&t=18704&p=119033&hilit=sumatrapdf#p119033

Abs.
Usamos o adobe e não posso alterar para outra aplicação.
Qualquer coisa diferente e os clientes já não sabem trabalhar.
Mas penso que vai dar o mesmo problema.
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Problema ao abrir PDF automaticamente

Mensagem por Jairo Maia »

tonicm escreveu:Qualquer coisa diferente e os clientes já não sabem trabalhar.
Não conheço bem o Adobe, eu já disse isso antes que desaconselho o uso do Adobe.

A pergunta é: Ele não tem alguma opção de abrir apenas uma instância? Se sim, creio que poderia alterar para permitir abrir várias estâncias do Adobe.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Responder