1

Как скачать PDF по URL в C#

В повседневной разработке нам часто нужно получать ресурсы из интернета, особенно PDF-документы. Будь то автоматическое резервное копирование онлайн-отчётов, пакетная загрузка электронных инвойсов или получение динамически сгенерированных файлов контрактов — умение эффективно и надёжно сохранять удалённые PDF-файлы локально является очень практичным навыком.

В этой статье объясняется, как использовать библиотеку Spire.PDF для .NET с C#, чтобы скачать PDF-документ по заданному URL и сохранить его локально. Spire.PDF предоставляет богатый набор возможностей обработки PDF, выходящий далеко за рамки простого скачивания и сохранения файлов.

Предварительные требования

Сначала нужно установить Spire.PDF для .NET в вашем проекте. Это можно сделать через консоль диспетчера пакетов NuGet:

Install-Package Spire.PDF

Или через .NET CLI:

dotnet add package Spire.PDF

Библиотека поддерживает .NET Framework 4.0 и выше, .NET Core 3.1, .NET 5.0 и более поздние версии.

Код реализации

Ниже приведён полный пример кода:

using System.IO;

using System.Net;

using Spire.Pdf;

namespace DownloadPdfFromUrl

{

class Program

{

static void Main(string[] args)

{

// Создаём объект PdfDocument

PdfDocument doc = new PdfDocument();

// Создаём объект WebClient для загрузки веб-ресурсов

WebClient webClient = new WebClient();

// Скачиваем данные PDF по URL в поток памяти (MemoryStream)

using (MemoryStream ms = new MemoryStream(

webClient.DownloadData("http://www.example.com/sample.pdf")))

{

// Загружаем данные PDF из потока в объект PdfDocument

doc.LoadFromStream(ms);

}

// Сохраняем PDF-документ в локальный файл

doc.SaveToFile("result.pdf", FileFormat.PDF);

// Освобождаем ресурсы

webClient.Dispose();

doc.Close();

}

}

}

Пояснение к коду

1. Создание объекта PdfDocument

PdfDocument — это основной класс Spire.PDF, представляющий экземпляр PDF-документа. Он используется для хранения и обработки PDF-данных, загруженных из интернета.

2. Использование WebClient для скачивания данных

WebClient — это простой класс загрузки по HTTP в .NET. Метод DownloadData возвращает byte[], который представляет собой исходное бинарное содержимое PDF-файла.

3. Использование MemoryStream как “моста”

Обёртка массива байт в MemoryStream позволяет использовать метод doc.LoadFromStream(ms). Это избавляет от неэффективного процесса сохранения файла на диск, а затем чтения его обратно — и даёт возможность обрабатывать данные в памяти.

4. Загрузка и сохранение PDF

Метод LoadFromStream анализирует поток памяти и формирует пригодный для использования PDF-документ. Затем метод SaveToFile сохраняет документ в локальное хранилище под именем файла result.pdf.

Примечания

  • Обработка исключений : В производственных средах рекомендуется добавлять блоки try-catch для обработки сетевых таймаутов, недействительных URL, ошибок формата PDF и других исключений.

  • Управление памятью : И WebClient, и PdfDocument реализуют интерфейс IDisposable, поэтому ресурсы должны быть корректно освобождены. В примере MemoryStream обрабатывается через using, но также рекомендуется явно освобождать webClient и doc или оборачивать их в блоки using .

  • Асинхронная версия : Для больших файлов рассмотрите использование WebClient.DownloadDataTaskAsync или переход на HttpClient с асинхронными методами, чтобы не блокировать UI-поток.

  • Корректность URL : Убедитесь, что URL напрямую указывает на PDF-файл, а не на страницу перенаправления.

Расширенные сценарии

С помощью Spire.PDF вы можете выполнять дополнительные операции сразу после загрузки PDF, например:

  • Извлечение текста или изображений

  • Объединение нескольких PDF-файлов

  • Добавление водяных знаков или колонтитулов (верхний/нижний)

  • Конвертация PDF в изображения или формат Word

Итог

В этой статье показано, как скачать PDF по URL и сохранить его локально с помощью C# и Spire.PDF для .NET. Весь процесс простой и эффективный — требуется всего несколько строк ключевого кода.

Spire.PDF — это не только инструмент для загрузки и сохранения документов, но и мощная библиотека для обработки PDF, которую стоит изучить дальше.

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества