Ajuda com um código de pdf que está no banco de dados

05/04/2021

0

Bom dia pessoal, estou com uma dúvida enorme, tenho um código, bom, creio que seja um código, de um banco que guardava os documentos, pdfs e afins nesse tipo de código, mas não estou sabendo converter esse código para o pdf, poderiam me ajudar? eu vou colocar o começo e o fim do código, não poderei colocar tudo por se tratar de dado da empresa, agradeço desde já!

%PDF-1.3 3 0 obj <</Type /Page /Parent 1 0 R /Resources 2 0 R /Contents 4 0 R>> endobj 4 0 obj <</Filter /FlateDecode /Length 2723>> stream ... 00000 n 0000003355 00000 n trailer << /Size 9 /Root 8 0 R /Info 7 0 R >> startxref 3458 %%EOF
Jonathan

Jonathan

Responder

Post mais votado

05/04/2021

aparentemente é o conteúdo do PDF. pegue todo o conteudo, jogue num editor de texto simples (bloco de notas, por exemplo), salve como PDF e tente abrir o arquivo.

Emerson Nascimento

Emerson Nascimento
Responder

Mais Posts

06/04/2021

Jonathan

aparentemente é o conteúdo do PDF. pegue todo o conteudo, jogue num editor de texto simples (bloco de notas, por exemplo), salve como PDF e tente abrir o arquivo.

Bom dia, parece ser isso mesmo, porém estou com outro problema, porque o conteúdo dele está com alguns caracteres que não tiveram a leitura esperado, exemplo, tem o código e uns quadrados no meio rsrs, mas eu acho que seja por conta do workbench que estou usando ler os dados como utf-8 e a leitura do banco ser outra mais antiga, então acredito que está tendo um problema de conversão. Mas, eu acho que quando eu resolver isso, essa solução que você propôs irá dar certo, muito obrigado!
Responder

06/04/2021

Emerson Nascimento

esses "quadrados" são os caracteres ditos "não imprimíveis". o bloco de notas não reconhece esses caracteres, mas se você colocar no notepad++ ou gravar o conteudo do banco diretamente como um arquivo pdf vai dar certo.


Responder

31/01/2024

André Silveira

esses "quadrados" são os caracteres ditos "não imprimíveis". o bloco de notas não reconhece esses caracteres, mas se você colocar no notepad++ ou gravar o conteudo do banco diretamente como um arquivo pdf vai dar certo.



Boa tarde Devs, sei que o post é antigo, mas estou passando pelo mesmo problema, peguei um projeto para fazer onde tem uma base de dados SQL Server, armazenaram os arquivos em um campo do tipo ntext, não sei que forma foram gerados e não tenho contato com a empresa que desenvolveu.
Não consigo de forma nenhuma extrair os arquivos
Criei uma coluna do tipo blob e converti para essa coluna para tentar extrair, mas sem sucesso

ALTER TABLE dbo.AD_ComissaoPerm_ExpedienteAtaImagem
ADD ColunaBlob VARBINARY(MAX);

-- Atualizando os dados na nova coluna com a conversão de ntext para varbinary(max)
UPDATE dbo.AD_ComissaoPerm_ExpedienteAtaImagem
SET ColunaBlob = CAST(CAST(Imagem AS NVARCHAR(MAX)) AS VARBINARY(MAX));

Utilizei Python, C#, o próprio SQL Server, mas nenhum extrai o arquivo.

Tentei salvar o conteúdo em um arquivo usando o note++, mas também não deu certo, creio que seja em função de imagens armazenadas no arquivo e pelo que entendi na lógica que cliente me disse, esses arquivos são arquivos do word que de alguma forma o sistema converte para PDF e grava nessa tabela já que existe uma tabela também que tem coluna do tipo ntext com arquivos .doc que também não consigo extrair, porém, o sistema de origem extrai os arquivos.

Todos os arquivos iniciam com:
%PDF-1.4
%âãÏÓ
1 0 obj
<<
/Type/ExtGState
/SA false
/SM 0.02
/TR2 /Default
>>
endobj
2 0 obj
[/DeviceRGB]
endobj
3 0 obj
<</Filter/FlateDecode/Length 2681>>

Alguém tem tem mais alguma ideia do que possa ser?
Responder

31/01/2024

Arthur Heinrich

Arquivos como PDF, JPG, GIF, entre outros, são arquivos binários, que podem utilizar todos os caracteres possíveis, do 0 ao 255.

As colunas do tipo BLOB (Binary Large Object) são adequadas para armazenar esse tipo de informação, pois não fazem nenhum tipo de transformação no dado.

Ao se criar uma coluna do tipo TEXT ou NTEXT, o banco entende que serão armazenados dados em formato texto, podendo haver conversões em função da acentuação. Além disso, alguns caracteres, em especial os de código <32, costumam ser caracteres de controle, não muito bem interpretados por aplicações que exibem texto.

Para garantir que não haja nenhum problema usando colunas desse tipo, a aplicação precisa lidar com estes detalhes. Uma forma de fazer isso é codificando o "bloco de bytes", utilizando caracteres "imprimíveis", os chamados "printable characters", que geralmente vão do código 32 ao 127 (subconjunto do código ASCII). Neste caso, o conteúdo do arquivo é convertido para um texto codificado e armazenado. Ao ler os dados, a aplicação faz o processo inverso, decodificando o texto para o mesmo bloco de bytes original.

Caso isto não tenha sido feito, basta ler o conteúdo da coluna como binário, em um buffer de memória, gravando este conteúdo binário em um arquivo binário, com nome e extensão adequados para que o Windows chame o aplicativo adequado para a abertura.
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar