Erstellen immersiver Dokumente, die es Benutzern ermöglichen, 3‑dimensionale Modelle direkt in einem PDF zu drehen, zu zoomen und zu erkunden, ist eine leistungsstarke Methode, um Produktkataloge, Ingenieurberichte und Handbücher zu verbessern. Aspose.Words Cloud SDK for .NET bietet eine cloudbasierte Bibliothek, die das Einbetten und Bewahren von 3D Inhalten beim Konvertieren von DOCX Dateien zu PDF erleichtert. In diesem Leitfaden erfahren Sie, wie Sie interaktive 3D‑PDFs in C# erzeugen, ein vollständiges Codebeispiel ansehen, die entsprechenden cURL‑REST‑Aufrufe untersuchen und die Bereitstellungsüberlegungen für Anwendungen in der Praxis verstehen.
Anforderungen für das 3D-PDF-Generierungsszenario
Entwickler, die Ingenieurportale oder interaktive Produktbroschüren erstellen, müssen häufig PDFs bereitstellen, die eingebettete 3D‑Modelle enthalten. Die typischen Anforderungen sind:
- Das Quelldokument muss ein DOCX sein, das bereits ein 3D‑Modell im U3D‑ oder PRC‑Format enthält.
- Das resultierende PDF muss die 3D‑Daten beibehalten, damit Viewer wie Adobe Acrobat es interaktiv rendern können.
- Der Konvertierungsprozess sollte automatisiert sein, auf einem Server laufen und mit großen Stapeln ohne manuelles Eingreifen funktionieren.
Traditionelle Desktop‑Tools können in einer Cloud‑Umgebung nicht zuverlässig skriptgesteuert werden, und sie entfernen häufig die 3D‑Streams während der Konvertierung. Eine programmatische Lösung, die das 3D‑Modell beibehält und gleichzeitig PDF/A‑Konformität bietet, ist daher unerlässlich.
Der Ansatz: Nutzung von Aspose.Words Cloud für 3D-PDF
Aspose.Words Cloud SDK for .NET bietet eine Reihe von REST‑basierten Operationen, die auf den sicheren Servern von Aspose ausgeführt werden. Schlüsselfunktionen, die das Szenario adressieren, umfassen:
- Direkter Upload von DOCX-Dateien in den Aspose Cloud‑Speicher.
PdfSaveOptionsData, das Ihnen die Kontrolle über PDF‑Konformität, Feldaktualisierungen und, entscheidend, die Bewahrung eingebetteter 3D‑Inhalte ermöglicht.- Asynchrone Konvertierungsmethoden, die einen Stream zurückgeben und es Ihnen erlauben, die Ausgabedatei direkt auf die Festplatte zu schreiben.
Zusammen ermöglichen diese Funktionen einen sauberen 3D‑zu‑PDF‑Workflow, der in CI‑Pipelines, Webdienste oder Hintergrundjobs integriert werden kann. Detaillierte API‑Informationen sind in der offiziellen Dokumentation und im API‑Referenz verfügbar.
Interaktives 3D-PDF in C# generieren: Implementierung
Im Folgenden finden Sie eine schritt‑für‑Schritt‑Durchführung der Implementierung. Jeder Schritt enthält einen kurzen Codeauszug, der direkt aus dem vollständigen Beispiel entnommen wurde.
Installieren Sie das Aspose.Words Cloud SDK für .NET
Fügen Sie zunächst das NuGet-Paket zu Ihrem Projekt hinzu.
dotnet add package Aspose.Words-Cloud
Sie können die Binärdateien auch von der Download‑Seite herunterladen.
Konfigurieren des WordsApi-Clients
Erstellen Sie ein Configuration-Objekt mit Ihren Client‑Anmeldeinformationen und instanziieren Sie WordsApi.
var config = new Configuration
{
ClientId = "YOUR_CLIENT_ID",
ClientSecret = "YOUR_CLIENT_SECRET"
};
var wordsApi = new WordsApi(config);
Die WordsApi-Klasse ist in der API-Referenz dokumentiert.
Laden Sie ein DOCX hoch, das ein eingebettetes 3D‑Modell enthält
Öffnen Sie die lokale DOCX‑Datei und laden Sie sie in den Aspose Cloud‑Speicher hoch, wobei vorhandene Dateien mit demselben Namen überschrieben werden.
using (var fileStream = File.OpenRead(localDocxPath))
{
var uploadRequest = new UploadFileRequest(fileStream, remoteFileName);
await wordsApi.UploadFileAsync(uploadRequest);
}
Stellen Sie sicher, dass das DOCX bereits ein U3D- oder PRC-Modell enthält; dies ist das 3D‑Modellformat, das das SDK beibehält.
PDF-Speicheroptionen festlegen, um 3D-Inhalte beizubehalten
Konfigurieren Sie PdfSaveOptionsData, um die 3D‑Streams beizubehalten und die PDF/A‑1b‑Konformität zu verwenden.
var pdfOptions = new PdfSaveOptionsData
{
UpdateFields = false,
Compliance = PdfCompliance.PdfA1b,
SaveFormat = "pdf"
};
Diese Optionen sind Teil des 3D-zu-PDF-Workflow, der sicherstellt, dass das interaktive Modell intakt bleibt.
Konvertieren und Herunterladen des interaktiven 3D-PDF
Rufen Sie die Konvertierungsanforderung auf und schreiben Sie den resultierenden Stream in eine lokale PDF‑Datei.
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);
}
Nach der Konvertierung können Sie optional die temporäre Datei aus dem Cloud‑Speicher löschen.
Vollständiges Codebeispiel: Interaktive 3D-PDF-Generierung in C#
Der folgende Code demonstriert den gesamten Prozess von Anfang bis Ende.
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)}'.");
}
}
}
Hinweis: Dieses Codebeispiel demonstriert die Kernfunktionalität. Bevor Sie es in Ihrem Projekt verwenden, stellen Sie sicher, dass Sie die Dateipfade (
input.docx,output.pdf, usw.) an Ihre tatsächlichen Dateistandorte anpassen, überprüfen Sie, dass alle erforderlichen Abhängigkeiten ordnungsgemäß installiert sind, und testen Sie gründlich in Ihrer Entwicklungsumgebung. Wenn Sie auf Probleme stoßen, lesen Sie bitte die offizielle Dokumentation oder wenden Sie sich an das Support-Team für Unterstützung.
Führen Sie die 3D-PDF-Konvertierung mit cURL und der REST-API durch
Der gleiche Vorgang kann über cURL‑Aufrufe gegen die Aspose.Words Cloud REST‑Endpunkte ausgeführt werden.
- Ein Zugriffstoken erhalten (Platzhalter durch Ihre Anmeldeinformationen ersetzen).
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"
- Laden Sie das DOCX hoch, das das 3D‑Modell enthält.
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-Konvertierung mit 3D-Erhaltung anfordern
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
- Laden Sie das resultierende PDF herunter (der vorherige Befehl hat es bereits lokal gespeichert, Sie können es jedoch auch direkt abrufen).
Weitere Details zu Anforderungskörpern und zusätzlichen Parametern finden Sie in der offiziellen API-Dokumentation.
Überlegungen zur Bereitstellung für die 3D-PDF-Generierung
Wenn Sie diese Lösung in einer Produktionsumgebung integrieren, beachten Sie die folgenden Punkte:
- Serverstandort - Die Konvertierung läuft auf den Cloud‑Servern von Aspose, stellen Sie also sicher, dass Ihr Netzwerk ausgehenden HTTPS‑Verkehr zu
api.aspose.cloudzulässt. - Lizenzierung - Für den Produktionseinsatz ist eine kommerzielle Lizenz erforderlich. Sie können mit einer temporären Lizenz von der temporären Lizenzseite beginnen.
- Skalierbarkeit - Da die API zustandslos ist, können Sie Uploads und Konvertierungen über mehrere Worker‑Instanzen parallelisieren, um große Mengen zu verarbeiten, und dabei die vollständige 3D to PDF Automation unterstützen.
Fazit
Die Erstellung interaktiver 3D-PDFs in C# wird mit dem Aspose.Words Cloud SDK for .NET unkompliziert. Wenn Sie den oben beschriebenen Schritten folgen, können Sie U3D- oder PRC-Modelle einbetten, sie während der PDF-Konvertierung erhalten und den Workflow entweder mit der .NET-Bibliothek oder direkten REST-Aufrufen automatisieren. Denken Sie daran, für die Produktion eine geeignete Lizenz zu sichern und die erzeugten PDFs in einem Viewer zu testen, der 3D unterstützt, wie z. B. Adobe Acrobat. Mit dieser Fähigkeit können Sie reichhaltigere, ansprechendere Dokumente für Ingenieur‑, Marketing‑ und Schulungsszenarien bereitstellen.
Häufig gestellte Fragen
Wie erstelle ich ein interaktives 3D-PDF in C# mit Aspose.Words Cloud?
Verwenden Sie das SDK, um ein DOCX hochzuladen, das bereits ein U3D‑ oder PRC‑Modell enthält, konfigurieren Sie PdfSaveOptionsData, um die 3D‑Streams beizubehalten, und rufen Sie ConvertDocumentAsync auf. Das vollständige Codebeispiel in diesem Artikel zeigt die genaue Reihenfolge.
Welche 3D‑Modellformate kann ich für die PDF‑Konvertierung einbetten?
Aspose.Words Cloud unterstützt die Formate U3D und PRC, die die Standardformate für interaktive 3D‑Inhalte in PDFs sind.
Ist es möglich, die Konvertierung ohne das Schreiben von C#-Code auszuführen?
Ja, derselbe Vorgang kann mit cURL-Befehlen gegen die Aspose.Words Cloud REST API durchgeführt werden, wie im cURL-Abschnitt gezeigt.
Wo finde ich Preis- und Lizenzinformationen?
Details zur kommerziellen Lizenzierung sind auf der Produktseite verfügbar, und Sie können eine temporäre Lizenz für die Evaluierung von der temporären Lizenzseite erhalten.