将 3D 模型转换为 PDF 文档,可实现跨平台的轻松共享和打印。 Aspose.Email Cloud SDK for PHP 提供了强大的基于云的库,能够在 PHP 中仅通过少量 API 调用处理 3D 到 PDF 的转换。在本教程中,您将了解如何配置凭据、上传 OBJ 文件、调用转换、下载生成的 PDF,并微调一些选项。完成后,您将拥有一个可重复使用的 PHP 脚本,可集成到任何 Web 或桌面应用程序中。

开始之前:先决条件和安装

您需要一个 PHP 开发环境(推荐使用 PHP 8.0+)并安装 Composer。注册 Aspose Cloud 账户以获取您的 Client Id 和 Client Secret。

使用 Composer 安装 SDK:

composer require aspose/aspose-email-cloud

如果您更喜欢手动安装,请下载 SDK 包: 下载链接。

以下代码片段展示了您稍后将重复使用的配置块。请将占位符值替换为您在 Aspose Cloud 仪表板中的凭据。

<?php
require_once __DIR__ . '/vendor/autoload.php';

use Aspose\ThreeD\Configuration;

// -----------------------------------------------------------------------------
// Configuration – replace with your actual Aspose Cloud client credentials
// -----------------------------------------------------------------------------
$config = new Configuration();
$config->setAppSid('YOUR_CLIENT_ID');          // Client Id
$config->setAppKey('YOUR_CLIENT_SECRET');     // Client Secret
$config->setHost('https://api.aspose.cloud'); // Base URL (default)

安装好 SDK 并准备好凭据后,您可以继续进行实际的转换步骤。

逐步构建:PHP 中的 3D 转 PDF 转换

第 1 步:加载配置并设置凭据

首先,创建一个 Configuration 对象并设置您的 client ID、secret 和 host。此对象将传递给所有 API 实例。

$config = new Configuration();
$config->setAppSid('YOUR_CLIENT_ID');
$config->setAppKey('YOUR_CLIENT_SECRET');
$config->setHost('https://api.aspose.cloud');

步骤 2:初始化 API 实例

使用配置对象创建 StorageApi 和 ThreeDApi 的实例。

use Aspose\ThreeD\Api\ThreeDApi;
use Aspose\ThreeD\Api\StorageApi;

$storageApi = new StorageApi(null, $config);
$threeDApi   = new ThreeDApi(null, $config);

步骤 3:上传源 3D 文件

将本地 OBJ 文件上传到 Aspose Cloud 存储,以便转换服务能够访问它。

use Aspose\ThreeD\Model\UploadFileRequest;

$source3DFile = 'sample.obj';   // Input 3D model file
$uploadRequest = new UploadFileRequest($source3DFile, $source3DFile);
$storageApi->uploadFile($uploadRequest);

步骤 4:将 3D 转换为 PDF

请求将 OBJ 转换为 PDF。目标文件名由 $targetPdfFile 定义。

use Aspose\ThreeD\Model\Convert3DRequest;

$targetPdfFile = 'sample.pdf';  // Desired output PDF name
$convertRequest = new Convert3DRequest($source3DFile, $targetPdfFile, 'pdf');
$threeDApi->convert3D($convertRequest);

第5步:下载生成的 PDF

从云存储检索新创建的 PDF 并将其保存到本地。

use Aspose\ThreeD\Model\DownloadFileRequest;

$downloadRequest = new DownloadFileRequest($targetPdfFile);
$response = $storageApi->downloadFile($downloadRequest);
$localPdfPath = __DIR__ . '/output.pdf';
file_put_contents($localPdfPath, $response->getContent());

第6步:清理存储

可选择从云存储中删除源 OBJ 文件和生成的 PDF,以保持账户整洁。

$storageApi->deleteFile(new \Aspose\ThreeD\Model\DeleteFileRequest($source3DFile));
$storageApi->deleteFile(new \Aspose\ThreeD\Model\DeleteFileRequest($targetPdfFile));

完成这些步骤后,您已成功在 PHP 中执行了 3D 转 PDF 的转换。

完整 PHP 脚本示例:在 PHP 中将 3D 转换为 PDF - 完整脚本

下面的示例演示了在单个文件中的完整工作流。将其复制到 PHP 项目中并调整凭据占位符。

<?php
require_once __DIR__ . '/vendor/autoload.php';

use Aspose\ThreeD\Configuration;
use Aspose\ThreeD\Api\ThreeDApi;
use Aspose\ThreeD\Api\StorageApi;
use Aspose\ThreeD\Model\UploadFileRequest;
use Aspose\ThreeD\Model\Convert3DRequest;
use Aspose\ThreeD\Model\DownloadFileRequest;

// -----------------------------------------------------------------------------
// Configuration – replace with your actual Aspose Cloud client credentials
// -----------------------------------------------------------------------------
$config = new Configuration();
$config->setAppSid('YOUR_CLIENT_ID');          // Client Id
$config->setAppKey('YOUR_CLIENT_SECRET');     // Client Secret
$config->setHost('https://api.aspose.cloud'); // Base URL (default)

// -----------------------------------------------------------------------------
// Initialise API instances
// -----------------------------------------------------------------------------
$storageApi = new StorageApi(null, $config);
$threeDApi   = new ThreeDApi(null, $config);

// -----------------------------------------------------------------------------
// Define source 3D file and target PDF file (paths are relative to the project)
// -----------------------------------------------------------------------------
$source3DFile = 'sample.obj';   // Input 3D model file
$targetPdfFile = 'sample.pdf';  // Desired output PDF name

// -----------------------------------------------------------------------------
// Upload the 3D file to Aspose Cloud storage
// -----------------------------------------------------------------------------
$uploadRequest = new UploadFileRequest($source3DFile, $source3DFile);
$storageApi->uploadFile($uploadRequest);

// -----------------------------------------------------------------------------
// Perform the conversion: 3D → PDF
// -----------------------------------------------------------------------------
$convertRequest = new Convert3DRequest($source3DFile, $targetPdfFile, 'pdf');
$threeDApi->convert3D($convertRequest);

// -----------------------------------------------------------------------------
// Download the resulting PDF back to local storage
// -----------------------------------------------------------------------------
$downloadRequest = new DownloadFileRequest($targetPdfFile);
$response = $storageApi->downloadFile($downloadRequest);
$localPdfPath = __DIR__ . '/output.pdf';
file_put_contents($localPdfPath, $response->getContent());

// -----------------------------------------------------------------------------
// Clean‑up: optionally delete files from cloud storage
// -----------------------------------------------------------------------------
$storageApi->deleteFile(new \Aspose\ThreeD\Model\DeleteFileRequest($source3DFile));
$storageApi->deleteFile(new \Aspose\ThreeD\Model\DeleteFileRequest($targetPdfFile));

echo "3D to PDF conversion completed. PDF saved to: {$localPdfPath}\n";

注意: 此代码示例演示了核心功能。在将其用于项目之前,请确保更新所有文件路径和配置值以匹配实际环境,验证已正确安装所有必需的依赖项,并在开发环境中进行彻底测试。如果遇到任何问题,请参阅官方文档或联系支持团队获取帮助。

使用 cURL 和 REST API 转换 3D 模型

如果您更喜欢直接使用 REST 端点,以下 cURL 命令可以实现相同的结果。

  1. 身份验证并获取访问令牌

将 YOUR_CLIENT_ID 和 YOUR_CLIENT_SECRET 替换为您的凭据。

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,用于后续调用。

  1. 上传源 OBJ 文件
curl -X PUT "https://api.aspose.cloud/v3.0/3d/storage/file/sample.obj" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -T "sample.obj"
  1. 执行转换
curl -X POST "https://api.aspose.cloud/v3.0/3d/convert/sample.obj?format=pdf&outPath=sample.pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
  1. 下载输出 PDF
curl -X GET "https://api.aspose.cloud/v3.0/3d/storage/file/sample.pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o "output.pdf"

有关参数和错误处理的完整列表,请参阅 API 参考。

转换选项:设置和微调

SDK 在调用 convert3D 之前提供了若干可调属性:

  • 输出格式 - Convert3DRequest 的第三个参数定义了目标格式(本教程中为 pdf)。将其更改为 png 或 jpeg 可输出图像。
  • 主机 URL - 如果使用区域性的 Aspose Cloud 端点,请修改 $config->setHost('https://api-eu.aspose.cloud');。
  • 超时设置 - StorageApi 和 ThreeDApi 都接受可选的 HTTP 客户端配置,您可以在其中为大文件设置请求超时时间。

这些选项让您能够根据性能和合规性要求定制转换过程。完整列表请参阅 API 参考。

结论

您现在已经掌握了使用 Aspose.Email Cloud SDK for PHP 在 PHP 中将 3D 转换为 PDF 的方法。本指南涵盖了从环境设置到完整的生产就绪脚本以及 cURL 替代方案的全部内容。请记住,该 SDK 是商业产品;您可以在产品页面查看定价详情,并在 临时许可证页面 获取用于评估的临时许可证。将此工作流集成到您自己的应用程序中,为用户提供无缝的 3D 文档处理。

FAQs

  • 在 PHP 中执行 3D 转 PDF 转换的最简方法是什么?
    使用 Aspose.Email Cloud SDK for PHP 是最直接的方法。该库抽象了 REST 调用,让您只需几行代码即可将 3D 模型转换为 PDF。

  • 我可以使用此库转换除 OBJ 之外的其他 3D 格式吗?
    是的,SDK 支持 STL、FBX、3DS 等常见的 3D 格式。只需更改源文件名,SDK 即可处理转换为 PDF。

  • 如何在转换过程中处理大型 3D 文件?
    将文件先上传到 Aspose Cloud 存储,然后触发转换。这可以保持服务器的内存使用率低。对于非常大的文件,考虑将其拆分或使用异步转换 API。

  • 是否有办法自定义 PDF 输出,例如页面大小或方向?
    转换 API 允许您在请求体中指定其他参数。请参阅 API 参考 以获取完整的支持选项列表。

阅读更多