aplicação web cliente abrindo um pdf

5 respostas
X

Estou com a seguinte dúvida. Tenho uma aplicação WEB que chama um WEBService. Esse WEBService retorna um relatório PDF no formato string base64. A minha dúvida é como a aplicação WEB Client poderia exibir esse PDF. Sou novo ainda em se tratando de aplicação WEB. Consegui fazer a chamada do WEBService e inclusive já tenho o retorno da string base64 porém agora não sei como continuar o fluxo. Estava pensando em gerar o arquivo físico a partir do string base64 em algum diretório da máquina, tipo:

File arquivoPdf = new File("c://temp//teste.pdf)

e depois abrir esse pdf, mas acho que esse conceito seria para aplicações desktop e não daria certo, estou correto ?

Alguém com experiência em Web poderia me orientar como fazer para exibir esse pdf a partir de uma aplicação WEB na máquina do cliente ?

Obrigado desde já

5 Respostas

mmaico

Cara, porque você replicou o tópico e não manteve a discussão no tópico que você criou anteriormente?

X

Foi mal cara, peço desculpas. Alguem aí poderia me dar uma orientação ?

kzar.razk

Esse código "File arquivoPdf = new File("c://temp//teste.pdf) " vai escrever o pdf no systema de arquivos do servidor.

Vc deve escrever o PDF para o cliente (response.write bla bla bla).

Procure pelos termos servlet write pdf etc…

Lembre-se de alterar o MimeType do retorno quando tentar fazer isto…

X

Então kzar, estava pensando em resolver essa solução por meio de servlet e com a sua resposta tive a confirmação. Fora o servlet teria alguma outra forma de exibir esse pdf (que vem em formato base 64) ?

kzar.razk

Vc pode escrever o pdf em disco (no servidor) e depois redirecionar a requisição para um outro endereço onde o arquivo está.
Geralmente se faz este tipo de coisa com um Tomcat escrevendo o PDF e um Apache (httpd) servindo o PDF (recebendo o redirect).
O Apache é muitas vezes mais eficiente como servidor de conteúdo estático (o pdf em disco) do que um Tomcat (que é um servidor especializado para conteúdo dinâmico).
Também é um meio de se distribuir carga entre vários servidores.
O único problema é de segurança já que os arquivos servidor pelo Apache não estarão no mesmo contexto de segurança da aplicação com Tomcat.

Criado 17 de novembro de 2012
Ultima resposta 19 de nov. de 2012
Respostas 5
Participantes 3