Save Pdf inside of .bson file in python

Olá malta,

Tenho um ficheiro .bson.
Através do python, descobri que dentro do .bson tenho 1 ficheiro pdf.

b'%PDF-1.5\r\n%\xb5\xb5\xb5\xb5\r\n1 0 obj\r\n<</Type/Catalog/Pages 2 0 R/Lang(pt-PT) /StructTreeRoot 53 0 R/MarkInfo<</Marked true>>>>\r\nendobj\r\n2 0 obj\r\n<</Type/Pages/Count 1/Kids[ 3 0 R] >>\r\nendobj\r\n3 0 obj\r\n<</Type/Page/Parent 2 0 R/Resources<</ExtGState<</GS5 5 0 R/GS8 8 0 R>>/Font<</F1 6 0 R/F2 30 0 R/F3 44 0 R/F4 48 0 R/F5 50 0 R>>/XObject<</Image9 9 0 R/Image11 11 0 R/Image12 12 0 R/Image13 13 0 R/Image14 14 0 R/Image15 15 0 R/Image16 16 0 R/Image18 18 0 R/Image20 20 0 R/Image21 21 0 R/Image23 23 0 R/Image24 24 0 R/Image26 26 0 R/Image27 27 0 R/Image29 29 0 R/Image32 32 0 R/Image33 33 0 R/Image34 34 0 R/Image36 36 0 R/Image38 38 0 R/Image40 40 0 R/Image42 42 0 R/Image46 46 0 R>>/Pattern<</P17 17 0 R/P19 19 0 R>>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/MediaBox[ 0 0 960 540] /Contents 4 0 R/Group<</Type/Group/S/Transparency/CS/DeviceRGB>>/Tabs/S/StructParents 0>>\r\nendobj\r\n4 0 obj\r\n<</Filter/FlateDecode/Length 17907>>\r\nstream\r\nx\x9c\xec}[\x8fd7\x8e\xe6{\x01\xfe\x0f\xf1\x989\x80\xc3Gw\t\x18\x0c\xe0\xb6\xdd\xeeZ\xf8\xb6\xae\xf2\xf4.\x06\xf3\xd0\xc8q\xbbw\x90\xe9\xc6\xda\x06\xfa\xef\x8f\xc8\x8f\x94x"\xe2\xa8\xdcY\xd9\x83\xc5\xc2/\x99A])\x8a\x17\x89\xa2tN\x1f}s\xfa\xe7\x7f\xfe\xe8\xcbO^\x7fz\xda\xfe\xe5_N\xbf\xfb\xf4\x93\xd3\xff\xfd\xe0\xd5v\xda\xce\xdb\xb69\xef\xb7rjy;\xa5\xb8\x9d~\xfa\xfe\x83W\x7f\xfc\xa7\xd3\x8f\x1f\xbc\xfa\xe8\xf37\xe9\xf4\xc3\xcf\x1f\xbcr\xa7\x1fF\xe1-\xbb-\xa4]\xe9?2......

Pretendo exportar?? ou guardar ? este ficheiro em pdf para poder abrir e analisar.

Tentei criar um pdf e colocar a informação do pdf lá dentro:
with open(path_to_create_pdf_with_name_of_pdf, 'w') as f:
f.write('b''%PDF-1.5\r\n%\xb5\xb5\xb5\xb5\r\n1 0 obj\r\n<</Type/Catalog/Pages 2 0 R/Lang(pt-PT) /StructTreeRoot 53 0 R/MarkInfo<</Marked true>>>>\r\nendobj\r\n2 0 obj\r\n<</Type/Pages/Count 1/Kids[ 3 0 R] >>\r\nendobj\r\n3 0 obj\r\n<</Type/Page/Parent 2 0 R/Resources<</ExtGState<</GS5 5 0 R/GS8 8 0 R>>/Font<</F1 6 0 R/F2 30 0 R/F3 44 0 R/F4 48 0 R/F5 50 0 R>>/XObject<</Image9 9 0 R/Image11 11 0 R/Image12 12 0 R/Image13 13 0 R/Image14 14 0 R/Image15 15 0 R/Image16 16 0 R/Image18 18 0 R/Image20 20 0 R/Image21 21 0 R/Image23 23 0 R/Image24 24 0 R/Image26 26 0 R/Image27 27 0 R/Image29 29 0 R/Image32 32 0 R/Image33 33 0 R/Image34 34 0 R/Image36 36 0 R/Image38 38 0 R/Image40 40 0 R/Image42 42 0 R/Image46 46 0 R>>/Pattern<</P17 17 0 R/P19 19 0 R>>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/MediaBox[ 0 0 960 540] /Contents 4 0 R/Group<</Type/Group/S/Transparency/CS/DeviceRGB>>/Tabs/S/StructParents 0>>\r\nendobj\r\n4 0 obj\r\n<</Filter/FlateDecode/Length 17907>>\r\nstream\r\nx\x9c\xec}[\x8fd7\x8e\xe6{\x01\xfe\x0f\xf1\x989\x80\xc3Gw\t\x18\x0c\xe0\xb6\xdd\xeeZ\xf8\xb6\xae\xf2\xf4.\x06\xf3\xd0\xc8q\xbbw\x90\xe9\xc6\xda\x06\xfa\xef\x8f\xc8\x8f\x94x"\xe2\xa8\xdcY\xd9\x83\xc5\xc2/\x99A])\x8a\x17\x89\xa2tN\x1f}s\xfa\xe7\x7f\xfe\xe8\xcbO^\x7fz\xda\xfe\xe5_N\xbf\xfb\xf4\x93\xd3\xff\xfd\xe0\xd5v\xda\xce\xdb\xb69\xef\xb7rjy;\xa5\xb8\x9d~\xfa\xfe\x83W\x7f\xfc\xa7\xd3\x8f\x1f\xbc\xfa\xe8\xf37\xe9\xf4\xc3\xcf\x1f\xbcr\xa7\x1fF\xe1-\xbb-\xa4]\xe9?\xff\xd3\x07\xaf\xfe\xe7\x07\xafN\x9f}\xf9\xc9\xe9dzr\xd2\xd3vN>\xf5\xbf%\x94\xfe\xd7\xc5t\xfa\xa9\xb7\xd7\\;7\x7f\x8a\xa5\x9es==\xcd\x84\xeaN\xcd\xbbs\xed\xbf\xfc\xb9\xd6\x0e\xc4\xb3\xf3\n=\xf4\x82>\x9fc\x9c\xd9\xf5\x1c\xb4\x1a~\xa2I.)\t\xf9\x1c\xf2I\xeb\x95x\x8e\xb3Y@\\\x98;\x95\\\xc5\x0e5w\xb8\xf6\xb2\x7f\xc1\xa8\xaf\x86\xecu\xc8D\xb1\xd2\xd2)\xb6N\xb5D\xc3c\xa8\xa6\xb3w\xa7\xd2\xc29gB\xf9\x1cs\x87\xdc\xb9\xd3\x9f\x1a\xc7\xf8J\xad\x84\x02\xf5\xed\xdb\xa9\xd4(h\xb5^\xb6v\x02:\x85\xa8l\x19\xd0\xed\x9fR&m\x81Z\xbf\xfd\x93\xfb\xec\xf3SG\xde\x02\xe2\xc2\xe9\x1cfn\xc7\x9b\x9a\xf2\xe7\x1cx0\x9d\xe2i\xdbz\t*\xda\x87Z\x88\x0c\x85\xcb2E"F=\x88\xc3-\x96\xf3F\x14i\xe7\x8e\xd6\xd3Lh\xfe\x1c\xa8\x8f|N\xa8\xcaP\x02\x94\xa8G\xae\xcdM\xc6\x96\x81\x90\xa7\x81S\x97\xbd\x14!_\x8bBL\x8d>\x89nd/ S\xb8\xcf\x14u\xbc\x80\x84\x86\xbe\x8e\xec\x05\xc4\x85;\xbd\xfc\xcc\xe6\x91\x11Ko\x91\x07\x18;\xce5\xd0\xb0\xb80\xc6\xdfK\x15\xe2\x08!\x96\x0c\xd7\x92\xee\xe1\x801\x830f\xf5\x1d\x8f\xc1&\xfd\xa7o\xd4\xa3\x8a\xf1U\xbd\xa8\xf5\x92;\xbb\xcc\x0c\xcc\xc2:\xe0>?\xa1\xe7\xf6V;~\xa5\x9d\xf3\xa9\xc6.t$f\x85\xc8\xd3\x11\xaa\xb1cO\x9d\xf2|\xd5\x18\xce4\xf7\x1d\x85\xe2;\xb4\x9dsT\x88\n\x87r\x8emd\x87\x08\xc1K4\xb8\x1a\xc2\xd9q\xc3\x05E;\x0e\r\xbd\xd6\x9e)\x14\xf6\xe7\xe8&D\xf8rY\x81\xdb\xd9\x97\x93\xd6l\x9e\xdb\xdch\xca;V\xc0\xb6wY#sW\xa5v\n5\xc7\xac\xc5\xc8V\xf9\xcd\xe3\xf24\x1d\x9a\x17\xc1:]a\xb4\x13\r\x99;H\xa2\\j\xecHg\xe6\xe0\xd4\xfb\x8fM;%\xeau\xa8\x86\x0e\xb9sj\\\xb8\x4').encode("utf-8")
f.close()

Mas obtenho a seguinte mensagem:

File ~\Anaconda3\lib\encodings\cp1252.py:19, in IncrementalEncoder.encode(self, input, final)
18 def encode(self, input, final=False):
---> 19 return codecs.charmap_encode(input,self.errors,encoding_table)[0]

UnicodeEncodeError: 'charmap' codec can't encode character '\x9c' in position 945: character maps to <undefined>
 
Olá malta,

Tenho um ficheiro .bson.
Através do python, descobri que dentro do .bson tenho 1 ficheiro pdf.

b'%PDF-1.5\r\n%\xb5\xb5\xb5\xb5\r\n1 0 obj\r\n<</Type/Catalog/Pages 2 0 R/Lang(pt-PT) /StructTreeRoot 53 0 R/MarkInfo<</Marked true>>>>\r\nendobj\r\n2 0 obj\r\n<</Type/Pages/Count 1/Kids[ 3 0 R] >>\r\nendobj\r\n3 0 obj\r\n<</Type/Page/Parent 2 0 R/Resources<</ExtGState<</GS5 5 0 R/GS8 8 0 R>>/Font<</F1 6 0 R/F2 30 0 R/F3 44 0 R/F4 48 0 R/F5 50 0 R>>/XObject<</Image9 9 0 R/Image11 11 0 R/Image12 12 0 R/Image13 13 0 R/Image14 14 0 R/Image15 15 0 R/Image16 16 0 R/Image18 18 0 R/Image20 20 0 R/Image21 21 0 R/Image23 23 0 R/Image24 24 0 R/Image26 26 0 R/Image27 27 0 R/Image29 29 0 R/Image32 32 0 R/Image33 33 0 R/Image34 34 0 R/Image36 36 0 R/Image38 38 0 R/Image40 40 0 R/Image42 42 0 R/Image46 46 0 R>>/Pattern<</P17 17 0 R/P19 19 0 R>>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/MediaBox[ 0 0 960 540] /Contents 4 0 R/Group<</Type/Group/S/Transparency/CS/DeviceRGB>>/Tabs/S/StructParents 0>>\r\nendobj\r\n4 0 obj\r\n<</Filter/FlateDecode/Length 17907>>\r\nstream\r\nx\x9c\xec}[\x8fd7\x8e\xe6{\x01\xfe\x0f\xf1\x989\x80\xc3Gw\t\x18\x0c\xe0\xb6\xdd\xeeZ\xf8\xb6\xae\xf2\xf4.\x06\xf3\xd0\xc8q\xbbw\x90\xe9\xc6\xda\x06\xfa\xef\x8f\xc8\x8f\x94x"\xe2\xa8\xdcY\xd9\x83\xc5\xc2/\x99A])\x8a\x17\x89\xa2tN\x1f}s\xfa\xe7\x7f\xfe\xe8\xcbO^\x7fz\xda\xfe\xe5_N\xbf\xfb\xf4\x93\xd3\xff\xfd\xe0\xd5v\xda\xce\xdb\xb69\xef\xb7rjy;\xa5\xb8\x9d~\xfa\xfe\x83W\x7f\xfc\xa7\xd3\x8f\x1f\xbc\xfa\xe8\xf37\xe9\xf4\xc3\xcf\x1f\xbcr\xa7\x1fF\xe1-\xbb-\xa4]\xe9?2......

Pretendo exportar?? ou guardar ? este ficheiro em pdf para poder abrir e analisar.

Tentei criar um pdf e colocar a informação do pdf lá dentro:
with open(path_to_create_pdf_with_name_of_pdf, 'w') as f:
f.write('b''%PDF-1.5\r\n%\xb5\xb5\xb5\xb5\r\n1 0 obj\r\n<</Type/Catalog/Pages 2 0 R/Lang(pt-PT) /StructTreeRoot 53 0 R/MarkInfo<</Marked true>>>>\r\nendobj\r\n2 0 obj\r\n<</Type/Pages/Count 1/Kids[ 3 0 R] >>\r\nendobj\r\n3 0 obj\r\n<</Type/Page/Parent 2 0 R/Resources<</ExtGState<</GS5 5 0 R/GS8 8 0 R>>/Font<</F1 6 0 R/F2 30 0 R/F3 44 0 R/F4 48 0 R/F5 50 0 R>>/XObject<</Image9 9 0 R/Image11 11 0 R/Image12 12 0 R/Image13 13 0 R/Image14 14 0 R/Image15 15 0 R/Image16 16 0 R/Image18 18 0 R/Image20 20 0 R/Image21 21 0 R/Image23 23 0 R/Image24 24 0 R/Image26 26 0 R/Image27 27 0 R/Image29 29 0 R/Image32 32 0 R/Image33 33 0 R/Image34 34 0 R/Image36 36 0 R/Image38 38 0 R/Image40 40 0 R/Image42 42 0 R/Image46 46 0 R>>/Pattern<</P17 17 0 R/P19 19 0 R>>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/MediaBox[ 0 0 960 540] /Contents 4 0 R/Group<</Type/Group/S/Transparency/CS/DeviceRGB>>/Tabs/S/StructParents 0>>\r\nendobj\r\n4 0 obj\r\n<</Filter/FlateDecode/Length 17907>>\r\nstream\r\nx\x9c\xec}[\x8fd7\x8e\xe6{\x01\xfe\x0f\xf1\x989\x80\xc3Gw\t\x18\x0c\xe0\xb6\xdd\xeeZ\xf8\xb6\xae\xf2\xf4.\x06\xf3\xd0\xc8q\xbbw\x90\xe9\xc6\xda\x06\xfa\xef\x8f\xc8\x8f\x94x"\xe2\xa8\xdcY\xd9\x83\xc5\xc2/\x99A])\x8a\x17\x89\xa2tN\x1f}s\xfa\xe7\x7f\xfe\xe8\xcbO^\x7fz\xda\xfe\xe5_N\xbf\xfb\xf4\x93\xd3\xff\xfd\xe0\xd5v\xda\xce\xdb\xb69\xef\xb7rjy;\xa5\xb8\x9d~\xfa\xfe\x83W\x7f\xfc\xa7\xd3\x8f\x1f\xbc\xfa\xe8\xf37\xe9\xf4\xc3\xcf\x1f\xbcr\xa7\x1fF\xe1-\xbb-\xa4]\xe9?\xff\xd3\x07\xaf\xfe\xe7\x07\xafN\x9f}\xf9\xc9\xe9dzr\xd2\xd3vN>\xf5\xbf%\x94\xfe\xd7\xc5t\xfa\xa9\xb7\xd7\\;7\x7f\x8a\xa5\x9es==\xcd\x84\xeaN\xcd\xbbs\xed\xbf\xfc\xb9\xd6\x0e\xc4\xb3\xf3\n=\xf4\x82>\x9fc\x9c\xd9\xf5\x1c\xb4\x1a~\xa2I.)\t\xf9\x1c\xf2I\xeb\x95x\x8e\xb3Y@\\\x98;\x95\\\xc5\x0e5w\xb8\xf6\xb2\x7f\xc1\xa8\xaf\x86\xecu\xc8D\xb1\xd2\xd2)\xb6N\xb5D\xc3c\xa8\xa6\xb3w\xa7\xd2\xc29gB\xf9\x1cs\x87\xdc\xb9\xd3\x9f\x1a\xc7\xf8J\xad\x84\x02\xf5\xed\xdb\xa9\xd4(h\xb5^\xb6v\x02:\x85\xa8l\x19\xd0\xed\x9fR&m\x81Z\xbf\xfd\x93\xfb\xec\xf3SG\xde\x02\xe2\xc2\xe9\x1cfn\xc7\x9b\x9a\xf2\xe7\x1cx0\x9d\xe2i\xdbz\t*\xda\x87Z\x88\x0c\x85\xcb2E"F=\x88\xc3-\x96\xf3F\x14i\xe7\x8e\xd6\xd3Lh\xfe\x1c\xa8\x8f|N\xa8\xcaP\x02\x94\xa8G\xae\xcdM\xc6\x96\x81\x90\xa7\x81S\x97\xbd\x14!_\x8bBL\x8d>\x89nd/ S\xb8\xcf\x14u\xbc\x80\x84\x86\xbe\x8e\xec\x05\xc4\x85;\xbd\xfc\xcc\xe6\x91\x11Ko\x91\x07\x18;\xce5\xd0\xb0\xb80\xc6\xdfK\x15\xe2\x08!\x96\x0c\xd7\x92\xee\xe1\x801\x830f\xf5\x1d\x8f\xc1&\xfd\xa7o\xd4\xa3\x8a\xf1U\xbd\xa8\xf5\x92;\xbb\xcc\x0c\xcc\xc2:\xe0>?\xa1\xe7\xf6V;~\xa5\x9d\xf3\xa9\xc6.t$f\x85\xc8\xd3\x11\xaa\xb1cO\x9d\xf2|\xd5\x18\xce4\xf7\x1d\x85\xe2;\xb4\x9dsT\x88\n\x87r\x8emd\x87\x08\xc1K4\xb8\x1a\xc2\xd9q\xc3\x05E;\x0e\r\xbd\xd6\x9e)\x14\xf6\xe7\xe8&D\xf8rY\x81\xdb\xd9\x97\x93\xd6l\x9e\xdb\xdch\xca;V\xc0\xb6wY#sW\xa5v\n5\xc7\xac\xc5\xc8V\xf9\xcd\xe3\xf24\x1d\x9a\x17\xc1:]a\xb4\x13\r\x99;H\xa2\\j\xecHg\xe6\xe0\xd4\xfb\x8fM;%\xeau\xa8\x86\x0e\xb9sj\\\xb8\x4').encode("utf-8")
f.close()

Mas obtenho a seguinte mensagem:

File ~\Anaconda3\lib\encodings\cp1252.py:19, in IncrementalEncoder.encode(self, input, final)
18 def encode(self, input, final=False):
---> 19 return codecs.charmap_encode(input,self.errors,encoding_table)[0]

UnicodeEncodeError: 'charmap' codec can't encode character '\x9c' in position 945: character maps to <undefined>
Tente utilizar o enconding como paramêtro da função open.

Código:
with open(path_to_create_pdf_with_name_of_pdf, 'w', enconding='utf-8') as f:

Se não funcionar teste com outros enconding como: encoding='latin1', encoding='iso-8859-1' or encoding='cp1252'
 
Back
Topo