2017-02-08 2 views
-1

Я пытаюсь загрузить через webclient a byte[] из PDF, представленного на странице.Dowload PDF после рендеринга HTML-кода генерации

This is the URL.

Проблема, с которой я сталкиваюсь, заключается в том, что страница, приведенная выше, не является прямой страницей для PDF-страницы, а страницей, которая создает и создает PDF-файл.

Если я использую мой код:

WebClient labelDL = new WebClient(); 
// Récupération du fichier PDF 

Content = labelDL.DownloadData(_labelSLSResponse.LabelUrl); 

Я получаю байт [] им ждет, но это байт [] содержимого HTML (который я даже не забочусь).

Как я могу сначала визуализировать URL-адрес (например, в браузере, но программно), а после его создания загружать байт [] PDF-файла, который отображается?

Заранее спасибо за вашу помощь, я застрял там ...

+1

Когда я 'GET', что URL-адрес, я получаю PDF сразу, без HTML вообще. –

+0

Есть такие инструменты, как Aspose, которые визуализируют PDF-файлы для изображения. Или, например, [jsPDF] (https://github.com/MrRio/jsPDF), который отображает PDF в HTML. –

+0

Вот что я объясняю. URL-адрес генерирует pdf-файл. Когда вы используете webclient на url, вы сначала получаете html! У меня уже есть инструменты для рендеринга pdf в то, что я хочу, это не мой вопрос, но спасибо – gstreetspirit

ответ

0

я, наконец, нашел решение.

На самом деле проблема связана с форматом url. Это переписанный URL. Поэтому, чтобы правильно интерпретировать webclient, вы должны заставить заголовки (user-agent), как если бы вы были веб-браузером.

с этим кодом:

WebClient labelDL = new WebClient(); 
     // Récupération du fichier PDF 

     labelDL.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)"); 
     //string test = labelDL.DownloadString(_labelSLSResponse.LabelUrl); 
     Content = labelDL.DownloadData(_labelSLSResponse.LabelUrl); 

Это, наконец, работает!

Спасибо за ваше время и вашу помощь ...

Смежные вопросы