Преобразование сложных 3D диаграмм из книги Excel в портативный файл PDF часто требуется для составления отчетов и обмена визуальными данными. Aspose.Cells Cloud SDK for Java предоставляет мощную облачную библиотеку, упрощающую эту задачу для разработчиков на Java. В этом руководстве мы пошагово рассмотрим весь процесс конвертации 3D в PDF на Java, от подготовки среды до получения окончательного документа. Вы увидите подробный разбор кода, полный пример и эквивалентные команды cURL для интеграции REST API.

Настройка Aspose.Cells Cloud SDK для Java

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

  • Установлен Java 17 или новее.
  • Maven или Gradle для управления зависимостями.
  • Учётная запись Aspose Cloud с Client Id и Client Secret.
  • Доступ к интернету для облачных вызовов.

Добавьте SDK в ваш проект, используя зависимость Maven, показанную ниже, и загрузите последнюю JAR‑файл со страницы официального скачивания.

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-cells-cloud</artifactId>
    <version>26.7</version>
</dependency>

Вы также можете получить библиотеку напрямую по URL загрузки.

Настройте клиент с вашими учётными данными. Этот фрагмент взят непосредственно из полного примера.

Configuration config = new Configuration();
config.setClientId("YOUR_CLIENT_ID");
config.setClientSecret("YOUR_CLIENT_SECRET");
// Optional: config.setBasePath("https://api.aspose.cloud"); // default

С учётом конфигурации вы готовы начать рабочий процесс конвертации.

Конвертация 3D в PDF в Java - Пошаговое руководство

Шаг 1: Загрузите рабочую книгу Excel в облачное хранилище

Сначала загрузите файл XLSX , содержащий 3D‑диаграммы. Загрузка обрабатывается FilesApi.

FilesUploadResult uploadResult = filesApi.uploadFile("", new File(localInputPath));
if (uploadResult == null || uploadResult.getUploaded().isEmpty()) {
    System.err.println("Upload failed.");
    return;
}

Шаг 2: Подготовьте параметры сохранения PDF

Тонко настройте вывод PDF, включив кэширование шрифтов, сжатие изображений и оптимизацию памяти. Эти параметры помогают сохранять небольшой размер PDF, одновременно сохраняя 3D‑визуальное качество.

PdfSaveOptions pdfOptions = new PdfSaveOptions();
pdfOptions.setCacheFont(true);
pdfOptions.setCompressImages(true);
pdfOptions.setImageQuality(80);
pdfOptions.setEnableMemoryOptimization(true);

Шаг 3: Преобразовать рабочую книгу в PDF

Вызовите метод postWorkbookSaveAs класса CellsApi, чтобы выполнить конвертацию. Справочник API для этого метода доступен в Справочник API Aspose.Cells.

WorkbookResponse convertResponse = cellsApi.postWorkbookSaveAs(
        remoteInputName,          // source workbook name
        "pdf",                    // target format
        remoteOutputName,         // output path in cloud storage
        pdfOptions,               // save options
        "",                       // folder (root)
        null);                    // storage (default)

Шаг 4: Скачайте полученный PDF

После успешного преобразования загрузите байты PDF и запишите их в локальный файл.

byte[] pdfBytes = filesApi.downloadFile(remoteOutputName);
try (FileOutputStream fos = new FileOutputStream(new File(localOutputPath))) {
    fos.write(pdfBytes);
}
System.out.println("Conversion completed successfully. PDF saved to " + localOutputPath);

Шаг 5: Необязательная очистка

Удалите временные файлы из облачного хранилища, чтобы ваш аккаунт оставался аккуратным.

filesApi.deleteFile(remoteInputName, null, null);
filesApi.deleteFile(remoteOutputName, null, null);

Полная реализация на Java для преобразования 3D в PDF — полный пример кода

Следующий пример демонстрирует сквозное преобразование 3‑D Excel‑книги в PDF с использованием Aspose.Cells Cloud SDK for Java.

import com.aspose.cloud.cells.api.CellsApi;
import com.aspose.cloud.cells.api.FilesApi;
import com.aspose.cloud.cells.client.ApiException;
import com.aspose.cloud.cells.client.Configuration;
import com.aspose.cloud.cells.model.PdfSaveOptions;
import com.aspose.cloud.cells.model.FilesUploadResult;
import com.aspose.cloud.cells.model.WorkbookResponse;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

public class AsposeCells3DToPdfExample {
    public static void main(String[] args) {
        // -------------------- Configuration --------------------
        Configuration config = new Configuration();
        config.setClientId("YOUR_CLIENT_ID");
        config.setClientSecret("YOUR_CLIENT_SECRET");
        // Optional: config.setBasePath("https://api.aspose.cloud"); // default

// -------------------- API Instances --------------------
        CellsApi cellsApi = new CellsApi(config);
        FilesApi filesApi = new FilesApi(config);

// -------------------- Local & Remote Paths --------------------
        String localInputPath = "input.xlsx";      // Excel file containing 3D charts
        String remoteInputName = "input.xlsx";     // Name used in cloud storage
        String remoteOutputName = "output.pdf";    // Desired PDF name in cloud storage
        String localOutputPath = "output.pdf";     // Where to save the downloaded PDF

try {
            // -------------------- Upload Excel to Cloud --------------------
            FilesUploadResult uploadResult = filesApi.uploadFile("", new File(localInputPath));
            if (uploadResult == null || uploadResult.getUploaded().isEmpty()) {
                System.err.println("Upload failed.");
                return;
            }

// -------------------- Prepare PDF Save Options (Performance) --------------------
            PdfSaveOptions pdfOptions = new PdfSaveOptions();
            pdfOptions.setCacheFont(true);                     // Cache fonts for faster processing
            pdfOptions.setCompressImages(true);               // Compress images to reduce size
            pdfOptions.setImageQuality(80);                   // Balance quality and size
            pdfOptions.setEnableMemoryOptimization(true);     // Reduce memory footprint

// -------------------- Convert Workbook to PDF --------------------
            WorkbookResponse convertResponse = cellsApi.postWorkbookSaveAs(
                    remoteInputName,          // source workbook name
                    "pdf",                    // target format
                    remoteOutputName,         // output path in cloud storage
                    pdfOptions,               // save options
                    "",                       // folder (root)
                    null                      // storage (default)
            );

if (convertResponse == null || convertResponse.getCode() != 200) {
                System.err.println("Conversion failed.");
                return;
            }

// -------------------- Download Resulting PDF --------------------
            byte[] pdfBytes = filesApi.downloadFile(remoteOutputName);
            try (FileOutputStream fos = new FileOutputStream(new File(localOutputPath))) {
                fos.write(pdfBytes);
            }

System.out.println("Conversion completed successfully. PDF saved to " + localOutputPath);
        } catch (ApiException | IOException e) {
            e.printStackTrace();
        } finally {
            // -------------------- Optional Cleanup --------------------
            try {
                filesApi.deleteFile(remoteInputName, null, null);
                filesApi.deleteFile(remoteOutputName, null, null);
            } catch (ApiException ignored) {
            }
        }
    }
}

Примечание: Этот пример кода демонстрирует основную функциональность. Прежде чем использовать его в вашем проекте, убедитесь, что обновили пути к файлам (input.xlsx, output.pdf и т.д.), чтобы они соответствовали фактическим расположениям ваших файлов, проверьте, что все необходимые зависимости правильно установлены, и тщательно протестируйте в вашей среде разработки. Если вы столкнётесь с какими‑либо проблемами, обратитесь к официальной документации или свяжитесь с командой поддержки для получения помощи.

Конвертация REST API с помощью cURL с использованием Aspose.Cells Cloud

Если вы предпочитаете язык‑независимый подход, то то же преобразование можно выполнить с помощью простых команд cURL к Aspose.Cells Cloud REST API.

1. Аутентифицируйтесь и получите токен доступа

curl -X POST "https://api.aspose.cloud/connect/token" \
     -H "Content-Type: application/x-www-form-urlencoded" \
     -d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"

Ответ содержит access_token, который вы будете использовать в последующих вызовах.

2. Загрузите исходный файл XLSX

curl -X PUT "https://api.aspose.cloud/v3.0/cells/storage/file/input.xlsx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/octet-stream" \
     --data-binary "@input.xlsx"

3. Преобразовать книгу в PDF

curl -X POST "https://api.aspose.cloud/v3.0/cells/input.xlsx/saveAs/pdf?outputPath=output.pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
           "CacheFont": true,
           "CompressImages": true,
           "ImageQuality": 80,
           "EnableMemoryOptimization": true
         }'

4. Скачайте сгенерированный PDF

curl -X GET "https://api.aspose.cloud/v3.0/cells/storage/file/output.pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o output.pdf

Эти команды выполняют тот же процесс конвертации 3D в PDF в Java без написания кода на Java. Для получения более подробной информации см. официальную документацию API.

Заключение

Следуя описанным выше шагам, вы можете надёжно преобразовать 3D‑книги Excel в PDF‑файлы высокого качества, используя Aspose.Cells Cloud SDK for Java. Библиотека берёт на себя тяжёлую работу по рендерингу 3D‑диаграмм, а параметры сохранения PDF позволяют контролировать размер и производительность. Не забудьте оформить правильную лицензию для использования в продакшене; детали ценообразования доступны на странице продукта, а временную лицензию можно получить со страницы временной лицензии. Обладая этими знаниями, вы готовы интегрировать конвертацию 3D в PDF в свои Java‑приложения и предоставлять пользователям готовые отчёты.

FAQs

  • Как реализовать конвертацию 3D в PDF в Java с Aspose.Cells?
    Используйте SDK для загрузки вашего файла XLSX, настройте PdfSaveOptions, вызовите postWorkbookSaveAs и загрузите полученный PDF. Полный пример кода в этой статье показывает точную последовательность.

  • Есть ли способ выполнить конвертацию 3D Diagram PDF в Java без написания кода?
    Да, REST API и предоставленные команды cURL позволяют достичь того же результата с любой платформы, способной выполнять HTTP‑запросы.

  • В чем разница между конвертацией PDF с 3D визуализацией и стандартной конвертацией Excel в PDF?
    3D визуализации требуют дополнительного рендеринга объектов диаграмм, который SDK обрабатывает автоматически. При стандартной конвертации эти шаги 3D рендеринга могут быть пропущены, что приводит к отсутствию графики.

  • Могу ли я использовать тот же рабочий процесс для java Excel в PDF конвертации книг без 3‑D?
    Абсолютно. Те же вызовы API работают с любым файлом Excel; вы просто опускаете или корректируете параметры, специфичные для 3‑D, если они не нужны.

Читать дальше