Создание захватывающих документов, позволяющих пользователям вращать, масштабировать и исследовать трехмерные модели непосредственно внутри PDF, является мощным способом улучшить каталоги продукции, инженерные отчёты и учебные руководства. Aspose.Words Cloud SDK for .NET предоставляет облачную библиотеку, которая упрощает внедрение и сохранение 3D контента при конвертации файлов DOCX в PDF. В этом руководстве вы узнаете, как генерировать интерактивные 3D PDF в C#, увидите полный пример кода, изучите эквивалентные вызовы cURL REST и поймёте особенности развертывания для реальных приложений.
Требования сценария генерации 3D PDF
Разработчикам, создающим инженерные порталы или интерактивные брошюры продуктов, часто требуется предоставлять PDF‑файлы, содержащие встроенные 3D‑модели. Типичные требования включают:
- Исходный документ должен быть DOCX, который уже содержит 3D‑модель в формате U3D или PRC .
- Полученный PDF должен сохранять 3D‑данные, чтобы такие просмотрщики, как Adobe Acrobat, могли отображать их интерактивно.
- Процесс конвертации должен быть автоматизирован, запускаться на сервере и работать с большими партиями без ручного вмешательства.
Традиционные настольные инструменты нельзя надёжно скриптовать в облачной среде, и они часто удаляют 3D‑потоки при конвертации. Поэтому необходима программная реализация, сохраняющая 3D‑модель и обеспечивающая соответствие PDF/A.
Подход: использование Aspose.Words Cloud для 3D PDF
Aspose.Words Cloud SDK for .NET предлагает набор операций на основе REST, которые работают на защищённых серверах Aspose. Ключевые возможности, которые решают данную задачу, включают:
- Прямая загрузка файлов DOCX в хранилище Aspose Cloud.
PdfSaveOptionsData, позволяющий контролировать соответствие PDF, обновление полей и, что особенно важно, сохранение встроенного 3D‑контента.- Асинхронные методы конвертации, возвращающие поток, позволяющие записать выходной файл напрямую на диск.
В совокупности эти функции обеспечивают чистый процесс преобразования 3D в PDF, который можно интегрировать в CI‑конвейеры, веб‑службы или фоновые задачи. Подробная информация об API доступна в официальной документации и справочнике API.
Создание интерактивного 3D PDF в C#: Реализация
Ниже представлено пошаговое руководство по реализации. Каждый шаг включает короткий фрагмент кода, взятый непосредственно из полного примера.
Установите Aspose.Words Cloud SDK for .NET
Сначала добавьте пакет NuGet в ваш проект.
dotnet add package Aspose.Words-Cloud
Вы также можете скачать бинарные файлы со страницы загрузки.
Настройка клиента WordsApi
Создайте объект Configuration с вашими учётными данными клиента и создайте экземпляр WordsApi.
var config = new Configuration
{
ClientId = "YOUR_CLIENT_ID",
ClientSecret = "YOUR_CLIENT_SECRET"
};
var wordsApi = new WordsApi(config);
Класс WordsApi задокументирован в справочнике API.
Загрузить DOCX, содержащий встроенную 3D‑модель
Откройте локальный файл DOCX и загрузите его в хранилище Aspose Cloud, перезаписав любой существующий файл с тем же именем.
using (var fileStream = File.OpenRead(localDocxPath))
{
var uploadRequest = new UploadFileRequest(fileStream, remoteFileName);
await wordsApi.UploadFileAsync(uploadRequest);
}
Убедитесь, что DOCX уже содержит модель U3D или PRC; это 3D Model Format, который сохраняет SDK.
Установить параметры сохранения PDF для сохранения 3D‑контента
Настройте PdfSaveOptionsData, чтобы сохранить 3D‑потоки и использовать соответствие PDF/A‑1b.
var pdfOptions = new PdfSaveOptionsData
{
UpdateFields = false,
Compliance = PdfCompliance.PdfA1b,
SaveFormat = "pdf"
};
Эти параметры являются частью 3D to PDF Workflow, который обеспечивает сохранность интерактивной модели.
Конвертировать и загрузить интерактивный 3D PDF
Вызовите запрос на конвертацию и запишите полученный поток в локальный PDF‑файл.
var convertRequest = new ConvertDocumentRequest(
remoteFileName,
format: "pdf",
saveOptions: pdfOptions
);
using (var pdfStream = await wordsApi.ConvertDocumentAsync(convertRequest))
using (var fileWriter = File.Create(outputPdfPath))
{
await pdfStream.CopyToAsync(fileWriter);
}
После конвертации вы можете при желании удалить временный файл из облачного хранилища.
Полный пример кода: Интерактивное создание 3D PDF на C#
Следующий код демонстрирует весь процесс от начала до конца.
using System;
using System.IO;
using System.Threading.Tasks;
using Aspose.Words.Cloud.Sdk;
using Aspose.Words.Cloud.Sdk.Model;
using Aspose.Words.Cloud.Sdk.Model.Requests;
namespace Generate3DPdfExample
{
class Program
{
static async Task Main(string[] args)
{
// -----------------------------------------------------------------
// 1. Configure Aspose.Words Cloud client (replace with your credentials)
// -----------------------------------------------------------------
var config = new Configuration
{
ClientId = "YOUR_CLIENT_ID",
ClientSecret = "YOUR_CLIENT_SECRET"
};
var wordsApi = new WordsApi(config);
// -----------------------------------------------------------------
// 2. Define file names and paths (generic placeholders)
// -----------------------------------------------------------------
const string localDocxPath = "input.docx"; // DOCX that already contains an embedded 3D model (U3D/PRC)
const string remoteFileName = "input.docx"; // Name used in Aspose Cloud storage
const string outputPdfPath = "output.pdf";
// -----------------------------------------------------------------
// 3. Upload the DOCX to Aspose Cloud storage (overwrites if exists)
// -----------------------------------------------------------------
using (var fileStream = File.OpenRead(localDocxPath))
{
var uploadRequest = new UploadFileRequest(fileStream, remoteFileName);
await wordsApi.UploadFileAsync(uploadRequest);
}
// -----------------------------------------------------------------
// 4. Prepare PDF save options – enable 3D content preservation
// -----------------------------------------------------------------
var pdfOptions = new PdfSaveOptionsData
{
// Preserve the embedded 3D model; the option name may vary depending on API version.
// Setting 'UpdateFields' to false speeds up conversion when fields are not required.
UpdateFields = false,
// Use PDF/A-1b compliance to keep the document portable while still supporting 3D.
Compliance = PdfCompliance.PdfA1b,
// Ensure the output is a single PDF file.
SaveFormat = "pdf"
};
// -----------------------------------------------------------------
// 5. Convert the uploaded DOCX to PDF with the defined options
// -----------------------------------------------------------------
var convertRequest = new ConvertDocumentRequest(
remoteFileName,
format: "pdf",
saveOptions: pdfOptions
);
using (var pdfStream = await wordsApi.ConvertDocumentAsync(convertRequest))
using (var fileWriter = File.Create(outputPdfPath))
{
await pdfStream.CopyToAsync(fileWriter);
}
// -----------------------------------------------------------------
// 6. Clean up remote file (optional)
// -----------------------------------------------------------------
var deleteRequest = new DeleteFileRequest(remoteFileName);
await wordsApi.DeleteFileAsync(deleteRequest);
Console.WriteLine($"3D PDF generated successfully at '{Path.GetFullPath(outputPdfPath)}'.");
}
}
}
Примечание: Этот пример кода демонстрирует базовую функциональность. Прежде чем использовать его в вашем проекте, убедитесь, что обновили пути к файлам (
input.docx,output.pdfи т.д.), чтобы они соответствовали фактическим расположениям, проверьте, что все необходимые зависимости правильно установлены, и тщательно протестируйте в вашей среде разработки. Если вы столкнётесь с какими‑либо проблемами, обратитесь к официальной документации или свяжитесь с службой поддержки для получения помощи.
Выполнить 3D PDF конвертацию с помощью cURL и REST API
Тот же запрос можно выполнить с помощью вызовов cURL к REST‑конечным точкам Aspose.Words Cloud.
- Получите токен доступа (замените заполнители вашими учетными данными).
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"
- Загрузите DOCX содержащий 3D‑модель.
curl -X PUT "https://api.aspose.cloud/v4.0/words/storage/file/input.docx" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/octet-stream" \
--data-binary @input.docx
- Запрос конвертации PDF с сохранением 3D.
curl -X POST "https://api.aspose.cloud/v4.0/words/input.docx/saveAs/pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"PdfSaveOptions": {
"UpdateFields": false,
"Compliance": "PdfA1b"
}
}' \
-o output.pdf
- Скачайте полученный PDF (предыдущая команда уже сохранила его локально, но вы также можете получить его напрямую).
Для получения более подробной информации о телах запросов и дополнительных параметрах см. официальную документацию API.
Соображения по развертыванию для генерации 3D PDF
При интеграции этого решения в производственную среду учитывайте следующие моменты:
- Расположение сервера - Преобразование выполняется на облачных серверах Aspose, поэтому убедитесь, что ваша сеть позволяет исходящий HTTPS‑трафик к
api.aspose.cloud. - Лицензирование - Для использования в продакшене требуется коммерческая лицензия. Вы можете начать с временной лицензии на странице временной лицензии.
- Масштабируемость - Поскольку API без состояния, вы можете параллелить загрузки и преобразования на нескольких рабочих экземплярах, чтобы обрабатывать крупные партии, поддерживая полную 3D to PDF Automation.
Заключение
Создание интерактивных 3D PDF в C# становится простым с помощью Aspose.Words Cloud SDK for .NET. Следуя вышеописанным шагам, вы можете внедрять модели U3D или PRC, сохранять их при конвертации в PDF и автоматизировать процесс как с помощью библиотеки .NET, так и прямыми REST‑вызовами. Не забудьте получить соответствующую лицензию для продакшн‑использования и протестировать сгенерированные PDF в просмотрщике, поддерживающем 3D, например Adobe Acrobat. Благодаря этой возможности вы сможете предоставлять более насыщенные и привлекательные документы для инженерных, маркетинговых и обучающих сценариев.
Часто задаваемые вопросы
Как я могу создать интерактивный 3D PDF в C# с использованием Aspose.Words Cloud?
Используйте SDK для загрузки DOCX, который уже содержит модель U3D или PRC, настройте PdfSaveOptionsData, чтобы сохранить 3D‑потоки, и вызовите ConvertDocumentAsync. Полный пример кода в этой статье показывает точную последовательность.
Какие форматы 3D‑моделей я могу встроить для конвертации PDF?
Aspose.Words Cloud поддерживает форматы U3D и PRC, которые являются стандартными форматами интерактивного 3D‑контента в PDF‑файлах.
Можно ли выполнить конвертацию без написания кода C#?
Да, тот же процесс можно выполнить с помощью команд cURL к Aspose.Words Cloud REST API, как показано в разделе cURL.
Где я могу найти информацию о ценах и лицензировании?
Подробная информация о коммерческих лицензиях доступна на странице продукта, а временную лицензию для оценки можно получить на странице временной лицензии.