Estou tentando visualizar um arquivo PDF que encontrei online.
Normalmente, quando tento abrir um arquivo PDF, o Firefox o exibe em seu visualizador de PDF padrão (chamado pdfjs, acredito). Este é um comportamento bom e normal.
No entanto...
com este PDF específico que encontrei online, clico no link para sua localização e o Firefox abre a caixa de diálogo de download. Ele descreve o arquivo como um "arquivo binário", embora o arquivo seja um PDF que posso baixar e visualizar nativamente.
Estou assumindo que o servidor web é "não contando" Firefox que este arquivo PDF é, na verdade, um arquivo PDF. Portanto, o Firefox só pode assumir que é um "arquivo binário".
Isso me estimulou a pensar na questão...
Se eu encontrar esse incômodo novamente, em vez de baixar o arquivo, possoforçaFirefox para abrir um arquivo (online ou não) em seu visualizador de PDF padrão?
Soluções tentadas:
- Eu tentei a resposta deComo chamar o visualizador de PDF integrado do Firefox (pdf.js) manualmente?, mas sem sucesso. O Firefox apenas tenta baixar o "arquivo binário".
- Adicionei
view-source:
ao início da localização do PDF (ou sejaview-source:https://www.website.com/pdf.pdf
), apenas obtenho o texto ASCII bruto exibido no arquivo PDF.
PS: Estou usando o Firefox 48.0.2...
Sim, é antigo....
Como pedido:
Responder1
Existem várias maneiras pelas quais os sites podem forçar seu navegador a baixar um arquivo em vez de abri-lo diretamente:
O download
atributo HTML
Este atributo em uma anchor
tag tentará forçar seu navegador a baixar o arquivo em vez de processá-lo como faria normalmente.
Geralmente isso é usado quando você precisa pegar um nome de documento gerado automaticamente e apresentá-lo como algo legal para o usuário.
Uso:<a href="http://www.website.com/path/to/YourDocument.pdf" download="YourDocument.pdf">...
Ainda não encontrei uma maneira de contornar isso, mas como a verdadeira causa do seu problema está abaixo, não pesquisei completamente...
Cabeçalhos HTTP
Content-Disposition
Um servidor web pode responder a uma solicitação de um documento com o Content-Disposition
cabeçalho para descrever como o navegador deve receber o arquivo.
Content-Disposition: Attachment
dirá ao navegador que ele deve baixar o arquivo, em vez de processá-lo como faria normalmente.
Content-Disposition: Inline
dirá ao navegador que ele pode ser exibido dentro da página da web ou como página da web.
Aqui está um complemento do Firefox que pegará Attachment
cabeçalhos e os substituirá por Inline
cabeçalhos:
https://addons.mozilla.org/en-US/firefox/addon/bypass-forced-download/
Tecnicamente, ele intercepta Content-Disposition: attachment
cabeçalhos e os reescreve rapidamente para arquivos Content-Disposition: inline
. Ele também permite que você especifique sites que devem ou não usar essa reescrita.
Tal como acontece com a maioria dos complementos, sua milhagem pode variar.
Content-Type
Um servidor web pode responder a uma solicitação de documento com o Content-Type
cabeçalho para descrever o tipo de documento que está retornando ao navegador.
Content-Type: application/octet-stream
é definido como "dados binários arbitrários" e basicamente só pode ser baixado como um arquivo; caso contrário, o navegador não saberá o que fazer com eles.
Isto é o que você vê quando seu navegador solicita o arquivo PDF que você está tentando visualizar.
Content-Type: application/pdf
é o que você provavelmente precisaria se quisesse visualizar este arquivo em seu navegador, ou pelo menos fazer com que o Firefox entendesse o que é o arquivo e como lidar com ele corretamente.
Aqui está um complemento do Firefox que pode ser configurado para escutar e reescrever Content-Type
cabeçalhos com base em seu conteúdo.
Observação: Modificar a forma como o seu navegador lida com os tipos MIME pode ser perigoso.
https://addons.mozilla.org/en-US/firefox/addon/content-type-fixer/
Novamente, este complemento pode ou não funcionar em todos os casos.