在python中将MTOM格式转换为Base64

2024-04-26 07:34:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在访问一个WS(SOAP),它返回一个MTOM格式的文件(根据我的研究)。你知道吗

在这个WS中,有一个带有a href include和uuid的标记,如下所示:

<xop:Include href="cid:urn:uuid:b3258727-ebcc-4c3d-a55d-0ff15087e16c"/>

另外,我还得到了一组附加的文档。 通过我的研究,这些内容是MTOM格式的,返回给我以下内容:

b'%PDF-1.4\n%\xc0\xc8\xcc\xd2\r\n1 0 obj\n<<\n/Title (Rave Report)\n/Author (mariaf)\n/Creator (pdfFactory Pro www.pdffactory.com)\n/Producer (pdfFactory Pro 6.17 \(Windows 7 Ultimate x86 Portuguese\))\n/CreationDate (D:20190425080343-03\'00\')\n>>\nendobj\n5 0 obj\n<<\n/Filter/FlateDecode\n/Length 4370\n>>stream\r\nH\x89\xedW[O\x1c\xc9\x92~\xe7W\xe4\xc3\x1e\xc9+\xd1E\xe5\xad.\xbc\xe1n\xf0a\x16\x83\x87\x06t4\xe2\xa5\xa1\xdb^F\x18\x98n3^\xed\xaf\xdf\xac\xcaKEfdeUc\xe3\xf1h\x8f\xac\x19Q\x9d\x11\x91q\xf9\xe2\x8b\xc8?H\x9eQF\xbe\x12Y\xd2\x8c\x11\xc1\x8a\xacd\xe4\xf3\x0e\x93\x95\xfd\xb8o?x!b0\xfa\xa8Uf\x83\xd7clc\xa0\x05\x0e\xa7\x9bF\x87\ny\x14\x10\xed\x00\x9c\xd3\xe9\xd1\x18\x89\x9f\xd8\xe6\x0f\x80\x1b9\xf5\x88\xff\x88\x00Ity\xa4\x05\x04\x7f\x8f\xeal\x06\xf3\x8cP\x03\xf6\x1b\xf9\x7f\xfb\x95\xf6\xec\nendstream\nendobj\n13 0 obj\n<<\n/Type/Page\n/Parent 3 0 R\n/MediaBox[0 0 595 842]\n/Resources\n<<\n/ProcSet[/PDF/Text/ImageC]\n/Font\n<<\n/F1 8 0 R\n/F2 9 0 R\n>>\n/XObject\n<<\n/im1 6 0 R\n/im2 7 0 R\n>>\n>>\n/Contents 14 0 R\n/Annots 15 0 R\n>>

...

n\r\n0000017965 00000 n\r\n0000018059 00000 n\r\n0000018153 00000 n\r\n0000018206 00000 n\r\ntrailer\n<<\n/Size 26\n/Info 1 0 R\n/Root 2 0 R\n/ID[<9F1C3FB602D86B000A9EDDBC6672E7D7><9F1C3FB602D86B000A9EDDBC6672E7D7>]\n>>\nstartxref\n18306\n%%EOF'

为了不影响问题的可读性,也为了安全起见,我放了一小部分内容。你知道吗

我的问题是,我可以将这种类型的返回转换为base64来生成PDF文件吗? 在一些示例中,我看到了对该内容的一些手动操作,以仅获取引用base64的部分。你知道吗

今天,我使用pythonzeep库使用WS,我研究的pythonzeep库不支持这种格式。我研究肥皂水图书馆,我似乎我没有支持太多。你知道吗

更新

我设法解决了这个问题。你知道吗

内容可以使用binasciipython库转换为ASCII,然后使用base64库转换为字符串,可以作为blob内容进行操作。代码如下:

base64.b64decode(binascii.b2a_base64(content))

Tags: 文件obj内容wspdfuuid格式pro