Извлечь файл PDF из строки ответа мыла

Проблема: Извлечь PDF-файл из строки ответа мыла.

Описание: у меня есть следующий ответ, возвращенный веб-сервисом и преобразованный с использованием

response = client.UploadData(ClientUrl, Data);
string s = Encoding.UTF8.GetString(response);


--MIMEBoundaryurn_uuid_E2119CF27EF7027A6F1406730560891
Content-Type: application/xop+xml; charset=UTF-8; type="text/xml"
Content-Transfer-Encoding: binary
Content-ID: <0.urn:uuid:E2119CF27EF7027A6F1406730560892@apache.org>

<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><dlwmin:getApplicationPDFResponse xmlns:dlwmin="http://example.com/POS/get" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><ns1:GetPDFResponse xmlns:ns1="http://example.com/POS/get"><ns1:appPdfDoc><xop:Include xmlns:xop="http://www.w3.org/2004/08/xop/include" href="cid:urn:uuid:E2119CF27EF7027A6F1406730560893@apache.org"/></ns1:appPdfDoc><ns1:messageList/></ns1:GetPDFResponse></dlwmin:getApplicationPDFResponse></soapenv:Body></soapenv:Envelope>
--MIMEBoundaryurn_uuid_E2119CF27EF7027A6F1406730560891
Content-Type: application/pdf
Content-Transfer-Encoding: binary
Content-ID: <urn:uuid:E2119CF27EF7027A6F1406730560893@apache.org>

%PDF-1.4
%????
26 0 obj<</Rect[91.4365 636.817 299.129 651.505]/T(Contract Address 2)/t 1/V(OA CITY / OK / 73132-1501)/Subtype/Widget/DA(/ArialMT 10 Tf )/MK<<>>/FT/Tx/AP<</N 27 0 R>>/Ff 8388609>>
endobj

H??Wk????_?|?A?0???"K?  \???+????^?]?f???:U??p6D????T???5???????y???z?f??zS???????t?{u?????U?DZ?`??i?l6u???u?U??:?0??2????S{yqU????\?>
d?~d(??C??Y?F???'?~K?03&?2??U.F?:4?@???????>_,???"?M?+????.*?x2?4Y??b???o??(M??F[X???j?cQ????EQZ??_??)Jg?a??h8m-;???:??;-???

У него есть PDF, который начинается с%PDF-1.4.

Я никогда не анализировал содержание xop. Я просто попытался загрузить его в XDocument, как

XDocument xdoc = XDocument.Parse(s);
XElement root = xdoc.Root; 
XNamespace ns1 = "example.com/POS/get";
var fileBinary = root.Descendants(ns1 + "appPdfDoc").FirstOrDefault(); 

и получил ошибку, что это не правильный документ XML.

Теперь я пытаюсь использовать XmlDictionaryReader.CreateMtomReader для загрузки строки S и посмотреть, позволит ли это мне извлечь PDF.

Пожалуйста, дайте мне знать, если нужны какие-либо другие детали. Буду признателен за любую оказанную помощь.

С уважением.

0 ответов

Другие вопросы по тегам