Управление внешними ресурсами с помощью Aspose.Cells для .NET

Введение

В современном цифровом ландшафте преобразование таблиц Excel в документы PDF является распространенной и важной задачей. Независимо от того, готовите ли вы отчеты, финансовые данные или презентационные материалы, обеспечение того, чтобы ваши PDF-файлы отражали предполагаемый формат, имеет решающее значение. Aspose.Cells для .NET предоставляет мощную библиотеку, которая позволяет вам подробно контролировать этот процесс преобразования, особенно при работе с внешними ресурсами, такими как изображения. В этом руководстве мы рассмотрим, как эффективно управлять внешними ресурсами во время процесса преобразования Excel в PDF с помощью Aspose.Cells. Давайте погрузимся в это!

Предпосылки

Прежде чем начать, убедитесь, что у вас готово следующее:

  1. Visual Studio или любая совместимая с .NET IDE: это будет ваша среда разработки.
  2. Aspose.Cells для .NET: если вы еще не установили его, посетитеЗагрузки Aspose страницу, чтобы получить последнюю версию.
  3. Базовые знания C#: Знакомство с C# будет полезным. Если вам нужны разъяснения по каким-либо концепциям, не стесняйтесь искать их.
  4. Пример файла Excel: подготовьте файл Excel, например «samplePdfSaveOptions_StreamProvider.xlsx», содержащий внешние ресурсы, которые вы хотите преобразовать.
  5. Файл изображения для тестирования: используйте файл изображения, например «newPdfSaveOptions_StreamProvider.png», в качестве внешнего ресурса во время преобразования.

Импорт необходимых пакетов

Для начала вам нужно импортировать требуемые пространства имен из библиотеки Aspose.Cells. Добавьте следующие директивы using в начало вашего файла C#:

using System.IO;
using System.Drawing;
using System.Drawing.Imaging;
using Aspose.Cells;
using Aspose.Cells.Drawing;
using Aspose.Cells.Rendering;
using System;

Эти пространства имен предоставляют основные классы и методы для ваших задач.

Шаг 1: Создание класса поставщика потока

Сначала создайте класс поставщика потока, который реализуетIStreamProvider интерфейс. Этот класс позволит вам контролировать загрузку внешних ресурсов.

class MyStreamProvider : IStreamProvider
{
    public void CloseStream(StreamProviderOptions options)
    {
        Debug.WriteLine("-----Close Stream-----");
    }

    public void InitStream(StreamProviderOptions options)
    {
        string sourceDir = "Your Document Directory";
        Debug.WriteLine("-----Init Stream-----");
        
        // Загрузить изображение в поток памяти
        byte[] bts = File.ReadAllBytes(Path.Combine(sourceDir, "newPdfSaveOptions_StreamProvider.png"));
        MemoryStream ms = new MemoryStream(bts);
        options.Stream = ms;
    }
}
  • CloseStream: этот метод вызывается, когда поток закрыт, в данный момент регистрируется отладочное сообщение.
  • InitStream: этот метод считывает внешний файл изображения как массив байтов, преобразует его в поток памяти и назначает егоoptions.Stream свойство.

Шаг 2: Настройка исходных и выходных каталогов

Затем определите каталоги для вашего файла Excel и выходного PDF-файла.

// Исходный каталог
string sourceDir = "Your Document Directory";
// Выходной каталог
string outputDir = "Your Document Directory";

Заменять"Your Document Directory" с фактическим путем в вашей системе, где расположены ваши файлы.

Шаг 3: Загрузите файл Excel

Теперь загрузите файл Excel, из которого вы хотите создать PDF-файл.

// Загрузите исходный файл Excel, содержащий внешние изображения.
Workbook wb = new Workbook(sourceDir, "samplePdfSaveOptions_StreamProvider.xlsx");

TheWorkbook класс из Aspose.Cells представляет ваш файл Excel, который может включать различные внешние ресурсы, такие как изображения.

Шаг 4: Задайте параметры сохранения PDF-файла

Перед сохранением книги в формате PDF укажите желаемые параметры сохранения.

// Укажите параметры сохранения PDF-файла — поставщик потоковой передачи
PdfSaveOptions opts = new PdfSaveOptions
{
    OnePagePerSheet = true // Сохраняйте каждый лист на новой странице.
};

Это создает экземплярPdfSaveOptions , что позволяет вам настраивать формат PDF.OnePagePerSheet опция гарантирует, что каждый лист Excel будет отображаться на отдельной странице в окончательном PDF-файле.

Шаг 5: Назначьте поставщика потокового вещания

Подключите свойWorkbook пример сMyStreamProvider класс, который вы создали ранее.

wb.Settings.StreamProvider = new MyStreamProvider();

Эта строка гарантирует, что всякий раз, когда во время преобразования будут обнаружены внешние ресурсы, ваш поставщик услуг будет управлять ими соответствующим образом.

Шаг 6: Сохраните рабочую книгу в формате PDF.

Теперь сохраните вашу книгу Excel как PDF-файл.

// Сохранить книгу в формате PDF
wb.Save(outputDir + "outputPdfSaveOptions_StreamProvider.pdf", opts);

Позвонив по номеруSave Применив метод к объекту рабочей книги и передав выходной каталог вместе с параметрами PDF, вы преобразуете файл Excel в хорошо отформатированный PDF.

Шаг 7: Подтвердите успешное выполнение

Наконец, хорошей практикой будет подтвердить, что процесс завершен успешно.

Console.WriteLine("ControlLoadingOfExternalResourcesInExcelToPDF executed successfully.\r\n");

Это сообщение проинформирует вас о статусе вашей операции, предоставляя полезную обратную связь.

Заключение

Теперь вы освоили процесс управления внешними ресурсами во время преобразования Excel в PDF с помощью Aspose.Cells! Выполняя эти шаги, вы можете быть уверены, что ваши документы точно включают изображения и другие внешние элементы, что приводит к безупречному конечному продукту каждый раз.

Часто задаваемые вопросы

Что такое Aspose.Cells?

Aspose.Cells — мощная библиотека для разработчиков .NET, которая позволяет создавать, обрабатывать, преобразовывать и отображать файлы Excel в различных форматах.

Как загрузить Aspose.Cells?

Последнюю версию можно скачать с сайтаСсылка для скачивания.

Могу ли я попробовать Aspose.Cells бесплатно?

Да! Вы можете получить доступ к бесплатной пробной версии, посетивБесплатная пробная версия страницы.

Где я могу найти поддержку Aspose.Cells?

По вопросам поддержки посетитеФорум поддержки Aspose.

Как получить временную лицензию для Aspose.Cells?

Вы можете подать заявление на получение временной лицензииздесь.