GroupDocs Viewer Java Tutorial: Word in HTML konvertieren und Dokumente mit Kommentaren rendern

Einführung

Haben Sie schon einmal versucht, ein Word‑Dokument in HTML zu konvertieren, nur um dabei alle wichtigen Kommentare und Anmerkungen zu verlieren? Sie sind nicht allein. Viele Java‑Entwickler haben Schwierigkeiten, die Dokumentformatierung und eingebettete Inhalte während des Konvertierungsprozesses zu erhalten.

Dieses umfassende GroupDocs Viewer Java‑Tutorial löst genau dieses Problem. Sie lernen, wie man Word in HTML konvertiert, während Dokumente (Word, Excel, PowerPoint und mehr) in sauberes HTML gerendert werden, wobei jeder Kommentar, jede Anmerkung und jedes Feedback erhalten bleibt.

Egal, ob Sie ein Dokumenten‑Management‑System bauen, eine kollaborative Review‑Plattform erstellen oder einfach annotierte Dokumente im Web anzeigen möchten – dieser Leitfaden deckt alles ab.

Dokumente mit Kommentaren rendern mit GroupDocs.Viewer für Java

Was Sie in diesem Tutorial lernen werden:

  • Vollständige Einrichtung und Konfiguration von GroupDocs Viewer
  • Schritt‑für‑Schritt Word in HTML konvertieren mit erhaltenen Kommentaren
  • Gemeinsame Fehlerbehebungs‑Lösungen und Stolperfallen, die zu vermeiden sind
  • Praxisnahe Implementierungsmuster und bewährte Vorgehensweisen
  • Leistungsoptimierungstechniken für den Produktionseinsatz

Schnelle Antworten

  • Kann GroupDocs Viewer Word in HTML konvertieren? Ja, aktivieren Sie einfach das HTML‑Rendering und die Kommentarunterstützung.
  • Bleiben Kommentare im HTML‑Ausgabe erhalten? Absolut—setRenderComments(true) bewahrt sie.
  • Welche Java‑Version wird benötigt? JDK 8 oder höher.
  • Wird für die Produktion eine Lizenz benötigt? Eine Voll‑Lizenz entfernt Wasserzeichen und schaltet alle Funktionen frei.
  • Wie kann die Rendering‑Geschwindigkeit verbessert werden? Rendern Sie bestimmte Seiten, verwenden Sie externe Ressourcen und erhöhen Sie die JVM‑Heap‑Größe.

Warum GroupDocs Viewer für Java wählen?

Bevor wir uns mit dem Code beschäftigen, wollen wir kurz verstehen, warum GroupDocs Viewer beim Rendering von Java‑Dokumenten herausragt:

Wichtige Vorteile:

  • Unterstützt über 170 Dateiformate sofort
  • Keine Notwendigkeit für Microsoft Office oder andere Drittanbieter‑Software
  • Erhält die ursprüngliche Formatierung und eingebettete Elemente
  • Leichte und schnelle Rendering‑Engine
  • Ausgezeichnete Dokumentation und Community‑Support

Wann Sie diesen Ansatz verwenden sollten:

  • Erstellung webbasierter Dokumenten‑Viewer
  • Erstellung kollaborativer Review‑Systeme
  • Entwicklung von Dokumenten‑Management‑Portalen
  • Konvertierung von Legacy‑Dokumenten für die Webanzeige
  • Aufbau von Bildungsplattformen mit annotierten Inhalten

Voraussetzungen und Umgebungseinrichtung

Was Sie benötigen

Bevor Sie mit diesem GroupDocs Viewer Java‑Tutorial beginnen, stellen Sie sicher, dass Sie Folgendes haben:

Erforderliche Grundvoraussetzungen:

  • Java Development Kit (JDK) 8 oder höher
  • Maven 3.6+ für das Abhängigkeits‑Management
  • Ihre bevorzugte IDE (IntelliJ IDEA, Eclipse oder VS Code)
  • Grundlegendes Verständnis von Java‑ und Maven‑Konzepten

Optional, aber hilfreich:

  • Beispieldokumente mit Kommentaren (Word-, Excel‑, PowerPoint‑Dateien)
  • Grundkenntnisse in HTML und Webentwicklung
  • Verständnis von Datei‑I/O‑Operationen in Java

Einrichtung Ihrer Entwicklungsumgebung

Schritt 1: Java‑Installation überprüfen

java -version
javac -version

Schritt 2: Maven‑Installation überprüfen

mvn -version

Falls Ihnen etwas fehlt, laden Sie es von den offiziellen Websites herunter und folgen Sie den Installationsanleitungen.

Schritt 3: Ein neues Maven‑Projekt erstellen

mvn archetype:generate -DgroupId=com.example.documentviewer -DartifactId=groupdocs-viewer-demo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

Jetzt sind Sie bereit, GroupDocs Viewer zu Ihrem Projekt hinzuzufügen!

Einrichtung von GroupDocs.Viewer für Java

Hinzufügen der Abhängigkeit

Der erste Schritt in jedem GroupDocs Viewer Java‑Tutorial besteht darin, die Bibliothek in Ihr Projekt zu integrieren. Fügen Sie diese Konfiguration zu Ihrer pom.xml‑Datei hinzu:

<repositories>
   <repository>
      <id>repository.groupdocs.com</id>
      <name>GroupDocs Repository</name>
      <url>https://releases.groupdocs.com/viewer/java/</url>
   </repository>
</repositories>
<dependencies>
   <dependency>
      <groupId>com.groupdocs</groupId>
      <artifactId>groupdocs-viewer</artifactId>
      <version>25.2</version>
   </dependency>
</dependencies>

Pro‑Tipp: Prüfen Sie stets die GroupDocs releases page für die neueste Version. Die Bibliothek wird aktiv gepflegt und erhält regelmäßige Updates und Fehlerbehebungen.

Verständnis der Lizenzoptionen

GroupDocs bietet flexible Lizenzmodelle, die zu unterschiedlichen Projektanforderungen passen:

Kostenlose Testversion (Perfekt zum Lernen):

  • 30‑tägige Evaluierungsphase
  • Voller Funktionszugriff mit Evaluierungs‑Wasserzeichen
  • Ideal, um diesem Tutorial zu folgen und Konzepte zu testen

Temporäre Lizenz (Für Entwicklung):

Vollständige Lizenz (Produktionsbereit):

Grundlegendes Initialisierungsmuster

Hier ist das grundlegende Muster, das Sie während dieses Tutorials verwenden werden:

import com.groupdocs.viewer.Viewer;

// The try-with-resources pattern ensures proper cleanup
try (Viewer viewer = new Viewer("path/to/your/document.docx")) {
    // All rendering operations happen here
    // Resources are automatically closed when done
} catch (Exception e) {
    System.err.println("Error rendering document: " + e.getMessage());
    e.printStackTrace();
}

Warum dieses Muster funktioniert:

  • Automatisches Ressourcen‑Management verhindert Speicherlecks
  • Ausnahmebehandlung fängt häufige Datei‑Zugriffsprobleme ab
  • Sauberer, lesbarer Code, der leicht zu warten ist

Kernimplementierung: Rendern von Dokumenten mit Kommentaren

Jetzt zum Hauptteil! Lassen Sie uns das Rendern eines Dokuments mit allen erhaltenen Kommentaren durchgehen.

Verständnis des Prozesses

Wenn Sie ein Dokument mit GroupDocs Viewer rendern, passiert Folgendes im Hintergrund:

  1. Dokumentanalyse: Die Bibliothek liest und parst Ihre Eingabedatei
  2. Kommentarextraktion: Kommentare und Anmerkungen werden identifiziert und erhalten
  3. HTML‑Generierung: Sauberes, standardkonformes HTML wird erstellt (hier wird Word in HTML konvertiert)
  4. Ressourcenverwaltung: Bilder, Stile und andere Assets werden verwaltet
  5. Ausgabenerstellung: Endgültige HTML‑Dateien werden in das angegebene Verzeichnis geschrieben

Schritt‑für‑Schritt‑Implementierung

Schritt 1: Dateipfade einrichten

Zuerst organisieren wir, wohin unsere Dateien gehen. Das mag einfach erscheinen, aber ein korrektes Pfad‑Management verhindert 90 % der üblichen Probleme:

import java.nio.file.Path;
import java.nio.file.Paths;

// Create a descriptive output directory
Path outputDirectory = Paths.get("rendered-documents");
Path pageFilePathFormat = outputDirectory.resolve("page_{0}.html");

Warum dieser Ansatz:

  • Verwendet die moderne Java NIO.2 Path‑API (zuverlässiger als die alte File‑Klasse)
  • Beschreibende Namen erleichtern das Debuggen
  • Der {0}‑Platzhalter wird automatisch durch Seitenzahlen ersetzt

Schritt 2: HTML‑Rendering‑Optionen konfigurieren

Hier geschieht die Magie. Wir teilen GroupDocs mit, wie das Dokument gerendert werden soll:

import com.groupdocs.viewer.options.HtmlViewOptions;

// Create HTML options with embedded resources
HtmlViewOptions viewOptions = HtmlViewOptions.forEmbeddedResources(pageFilePathFormat);

// The crucial setting – enable comment rendering!
viewOptions.setRenderComments(true);

Wichtige Konfigurationsdetails:

  • forEmbeddedResources(): Bindet alle CSS, Bilder und Schriftarten direkt in das HTML ein (ideal für Portabilität)
  • setRenderComments(true): Bewahrt jeden Kommentar und jede Anmerkung (der Kern von Word in HTML konvertieren mit Kommentaren)
  • Alternative: forExternalResources(), falls Sie separate Ressourcendateien bevorzugen

Schritt 3: Rendering ausführen

Jetzt fügen wir alles zusammen:

import com.groupdocs.viewer.Viewer;

try (Viewer viewer = new Viewer("path/to/your/document.docx")) {
    // Create output directory if it doesn't exist
    if (!outputDirectory.toFile().exists()) {
        outputDirectory.toFile().mkdirs();
    }
    
    // Perform the actual rendering
    viewer.view(viewOptions);
    
    System.out.println("Document rendered successfully!");
    System.out.println("Output location: " + outputDirectory.toAbsolutePath());
    
} catch (Exception e) {
    System.err.println("Rendering failed: " + e.getMessage());
    e.printStackTrace();
}

Komplettes funktionierendes Beispiel

Hier ist alles in einer einzigen, ausführbaren Klasse zusammengefasst:

package com.example.documentviewer;

import com.groupdocs.viewer.Viewer;
import com.groupdocs.viewer.options.HtmlViewOptions;
import java.nio.file.Path;
import java.nio.file.Paths;

public class DocumentRenderer {
    
    public static void main(String[] args) {
        renderDocumentWithComments("sample-document.docx", "output");
    }
    
    public static void renderDocumentWithComments(String inputFile, String outputDir) {
        // Set up paths
        Path outputDirectory = Paths.get(outputDir);
        Path pageFilePathFormat = outputDirectory.resolve("page_{0}.html");
        
        // Configure rendering options
        HtmlViewOptions viewOptions = HtmlViewOptions.forEmbeddedResources(pageFilePathFormat);
        viewOptions.setRenderComments(true);
        
        // Render the document
        try (Viewer viewer = new Viewer(inputFile)) {
            // Ensure output directory exists
            outputDirectory.toFile().mkdirs();
            
            // Execute rendering
            viewer.view(viewOptions);
            
            System.out.println("✓ Document rendered with comments preserved");
            System.out.println("📂 Output directory: " + outputDirectory.toAbsolutePath());
            
        } catch (Exception e) {
            System.err.println("❌ Rendering failed: " + e.getMessage());
            e.printStackTrace();
        }
    }
}

Erweiterte Konfiguration und Optionen

Einrichtung dynamischer Ausgabeverzeichnisse

Für größere Anwendungen benötigen Sie ein ausgefeilteres Pfad‑Management:

import java.nio.file.Path;
import java.nio.file.Paths;

public class PathManager {
    
    /**
     * Creates a structured output path based on document name and timestamp
     */
    public static Path getOutputDirectoryPath(String documentName) {
        String timestamp = String.valueOf(System.currentTimeMillis());
        String cleanDocName = documentName.replaceAll("[^a-zA-Z0-9]", "_");
        
        return Paths.get("rendered-docs")
                   .resolve(cleanDocName)
                   .resolve(timestamp);
    }
    
    /**
     * Simple output directory for basic use cases
     */
    public static Path getSimpleOutputPath(String folderName) {
        return Paths.get("output").resolve(folderName);
    }
}

Häufige Probleme und Fehlersuche

Problem 1: „Datei nicht gefunden“-Fehler

// Always check if file exists before processing
Path inputPath = Paths.get("your-document.docx");
if (!inputPath.toFile().exists()) {
    throw new IllegalArgumentException("Input file not found: " + inputPath.toAbsolutePath());
}

// Check if file is readable
if (!inputPath.toFile().canRead()) {
    throw new IllegalArgumentException("Cannot read input file: " + inputPath.toAbsolutePath());
}

Problem 2: Kommentare erscheinen nicht in der Ausgabe

HtmlViewOptions viewOptions = HtmlViewOptions.forEmbeddedResources(pageFilePathFormat);
// This line is crucial – don't forget it!
viewOptions.setRenderComments(true);

// For debugging, you can verify the setting:
System.out.println("Comments enabled: " + viewOptions.isRenderComments());

Problem 3: Out‑of‑Memory‑Fehler bei großen Dokumenten

// Increase JVM heap size when running
// java -Xmx2g -Xms1g YourApplication

// Or process documents page by page for very large files
HtmlViewOptions viewOptions = HtmlViewOptions.forEmbeddedResources(pageFilePathFormat);
viewOptions.setRenderComments(true);

// Render only specific pages if needed
viewer.view(viewOptions, 1, 2, 3); // Renders only pages 1, 2, and 3

Problem 4: Langsame Rendering‑Leistung

// Use external resources for faster processing of multiple pages
HtmlViewOptions viewOptions = HtmlViewOptions.forExternalResources(
    pageFilePathFormat, 
    "resources/page_{0}/", 
    "resources/page_{0}/{0}"
);

// Enable caching if processing the same document multiple times
// (Note: Implement caching at application level)

Praxisnahe Implementierungsmuster

Muster 1: Integration in Web‑Anwendung

So könnten Sie dies in einen Spring‑Boot‑Controller integrieren:

@RestController
@RequestMapping("/api/documents")
public class DocumentController {
    
    @PostMapping("/render")
    public ResponseEntity<String> renderDocument(
            @RequestParam("file") MultipartFile file) {
        
        try {
            // Save uploaded file temporarily
            Path tempFile = Files.createTempFile("upload", ".tmp");
            file.transferTo(tempFile.toFile());
            
            // Render with comments
            String outputDir = renderDocumentWithComments(
                tempFile.toString(), 
                "web-output"
            );
            
            return ResponseEntity.ok("Document rendered: " + outputDir);
            
        } catch (Exception e) {
            return ResponseEntity.badRequest()
                .body("Rendering failed: " + e.getMessage());
        }
    }
}

Muster 2: Stapelverarbeitung mehrerer Dokumente

public class BatchDocumentProcessor {
    
    public void processFolderWithComments(String inputFolder) {
        File folder = new File(inputFolder);
        File[] files = folder.listFiles((dir, name) -> 
            name.toLowerCase().endsWith(".docx") || 
            name.toLowerCase().endsWith(".xlsx") ||
            name.toLowerCase().endsWith(".pptx")
        );
        
        if (files == null) return;
        
        for (File file : files) {
            try {
                String outputDir = file.getName().replace(".", "_") + "_output";
                renderDocumentWithComments(file.getAbsolutePath(), outputDir);
                System.out.println("✓ Processed: " + file.getName());
                
            } catch (Exception e) {
                System.err.println("❌ Failed to process " + file.getName() + ": " + e.getMessage());
            }
        }
    }
}

Leistungsoptimierung und bewährte Vorgehensweisen

Tipps zum Speicher‑Management

Bei der Arbeit mit GroupDocs Viewer in der Produktion ist ein effizientes Speicher‑Management entscheidend:

Best Practices

  1. Immer try‑with‑resources verwenden für automatische Bereinigung
  2. Große Dokumente stapelweise verarbeiten statt alles auf einmal
  3. JVM‑Heap‑Nutzung überwachen und bei Bedarf anpassen
  4. Richtige Caching‑Strategien implementieren für häufig genutzte Dokumente

Richtlinien zur Ressourcennutzung

Für kleine Anwendungen (< 100 Dokumente/Tag):

// Simple approach works fine
try (Viewer viewer = new Viewer(documentPath)) {
    viewer.view(viewOptions);
}

Für Hochvolumen‑Anwendungen (1000+ Dokumente/Tag):

public class DocumentRenderingService {
    private final ExecutorService executorService = 
        Executors.newFixedThreadPool(4); // Limit concurrent renderings
    
    public CompletableFuture<String> renderAsync(String documentPath) {
        return CompletableFuture.supplyAsync(() -> {
            try (Viewer viewer = new Viewer(documentPath)) {
                // Rendering logic here
                return "success";
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        }, executorService);
    }
}

Caching‑Strategien

public class CachedDocumentRenderer {
    private final Map<String, String> renderCache = new ConcurrentHashMap<>();
    
    public String renderWithCaching(String documentPath) {
        String cacheKey = generateCacheKey(documentPath);
        
        return renderCache.computeIfAbsent(cacheKey, key -> {
            // Only render if not already cached
            return performActualRendering(documentPath);
        });
    }
    
    private String generateCacheKey(String documentPath) {
        // Include file modification time in cache key
        File file = new File(documentPath);
        return documentPath + "_" + file.lastModified();
    }
}

Wann GroupDocs Viewer vs. Alternativen verwenden

GroupDocs Viewer ist perfekt für

  • Dokumenten‑Management‑Systeme: Müssen verschiedene Dateitypen mit Anmerkungen anzeigen
  • Kollaborative Plattformen: Kommentare und Feedback müssen sichtbar sein
  • Bildungs‑Tools: Dozenten‑Anmerkungen müssen den Studierenden gezeigt werden
  • Rechts‑Anwendungen: Vertragsprüfungen mit Anwaltskommentaren

Alternativen in Betracht ziehen, wenn

  • Einfache PDF‑Anzeige: Der integrierte PDF‑Viewer des Browsers reicht aus
  • Einfache Bildkonvertierung: ImageIO oder ähnliche Bibliotheken könnten leichter sein
  • Reine Textextraktion: Apache POI oder iText könnten passender sein

Erweiterter FAQ‑Abschnitt

Technische Implementierungsfragen

F: Kann ich Dokumente ohne Kommentare rendern?
A: Absolut! Lassen Sie einfach setRenderComments(true) weg oder setzen Sie es auf false.

F: Welche Dateiformate unterstützen das Rendern von Kommentaren?
A: Die meisten gängigen Formate—einschließlich DOC/DOCX, XLS/XLSX, PPT/PPTX, PDF und viele mehr. Siehe die offizielle Dokumentation für die vollständige Liste.

F: Kann ich das Styling der HTML‑Ausgabe anpassen?
A: Ja! Verwenden Sie HtmlViewOptions.setEmbedResources(false), um mit externen Stylesheets zu arbeiten, oder fügen Sie nach dem Rendern benutzerdefiniertes CSS ein.

F: Wie gehe ich mit passwortgeschützten Dokumenten um?
A: Verwenden Sie die Klasse LoadOptions:

LoadOptions loadOptions = new LoadOptions();
loadOptions.setPassword("your-password");
try (Viewer viewer = new Viewer("protected-doc.docx", loadOptions)) {
    // Render as usual
}

F: Ist es möglich, nur bestimmte Seiten zu rendern?
A: Ja! Verwenden Sie die überladene view()‑Methode:

viewer.view(viewOptions, 1, 3, 5); // Renders only pages 1, 3, and 5

Fehlersuche und Leistung

F: Warum ist das Rendern bei großen Dokumenten langsam?
A: Große Dateien benötigen mehr Verarbeitungszeit. Erwägen Sie:

  • Rendern bestimmter Seiten statt des gesamten Dokuments
  • Verwendung externer Ressourcen statt eingebetteter
  • Erhöhung der JVM‑Heap‑Größe
  • Implementierung asynchroner Verarbeitung

F: Wie kann ich den Rendering‑Fortschritt überwachen?
A: GroupDocs Viewer bietet keine integrierten Callbacks, aber Sie können die Dauer der Operation messen:

System.out.println("Starting render for: " + documentName);
long startTime = System.currentTimeMillis();
viewer.view(viewOptions);
long endTime = System.currentTimeMillis();
System.out.println("Rendering completed in: " + (endTime - startTime) + "ms");

F: Was passiert, wenn das Quell‑Dokument beschädigt ist?
A: GroupDocs Viewer wirft eine Ausnahme. Implementieren Sie stets eine robuste Fehlerbehandlung:

try (Viewer viewer = new Viewer(documentPath)) {
    viewer.view(viewOptions);
} catch (CorruptOrDamagedFileException e) {
    System.err.println("Document is corrupted: " + e.getMessage());
} catch (Exception e) {
    System.err.println("General error: " + e.getMessage());
}

Business und Lizenzierung

F: Kann ich GroupDocs Viewer in einer kommerziellen Anwendung verwenden?
A: Ja, aber Sie benötigen eine kommerzielle Lizenz. Die kostenlose Testversion enthält Evaluierungs‑Wasserzeichen, die für den Produktionseinsatz entfernt werden müssen.

F: Gibt es Nutzungslimits?
A: Die Bibliothek selbst hat keine Limits, aber Ihr Lizenzvertrag könnte welche enthalten. Prüfen Sie Ihre spezifischen Bedingungen.

F: Kann ich Anwendungen, die GroupDocs Viewer enthalten, weiterverbreiten?
A: In der Regel dürfen Sie Ihre Anwendung verbreiten, jedoch nicht die GroupDocs‑Bibliothek selbst. Prüfen Sie die Lizenzdetails.

Nächste Schritte und fortgeschrittene Themen

Herzlichen Glückwunsch! Sie haben nun eine solide Grundlage für die Verwendung von GroupDocs Viewer für Java. Hier sind einige Themen, die Sie als Nächstes erkunden können:

Fortgeschrittene Funktionen zum Erkunden

  1. Wasserzeichen: Benutzerdefinierte Wasserzeichen zu gerenderten Dokumenten hinzufügen
  2. Dokumenten‑Informations‑Extraktion: Metadaten, Seitenzahlen und Dateidetails abrufen
  3. Benutzerdefinierte Viewer: Spezialisierte Viewer für bestimmte Dokumenttypen erstellen
  4. Cloud‑Speicher‑Integration: Direkt von AWS S3, Google Drive usw. rendern

Empfohlener Lernpfad

  1. Mit verschiedenen Dateitypen üben: Excel-, PowerPoint- und PDF‑Dateien ausprobieren
  2. Einen einfachen Web‑Viewer bauen: Eine Basis‑UI erstellen, die das gerenderte HTML anzeigt
  3. Das GroupDocs‑Ökosystem erkunden: Andere GroupDocs‑Produkte für ein vollständiges Dokumenten‑Management ansehen
  4. Der Community beitreten: Im GroupDocs Forum mitmachen für Tipps und Unterstützung

Hilfe und Support erhalten

Offizielle Ressourcen

Community‑Ressourcen

  • Stack Overflow (Tag: groupdocs-viewer)
  • Reddit‑Programmier‑Communities
  • Java‑Entwickler‑Foren und Discord‑Server

Fazit

Sie haben erfolgreich die Grundlagen des Word in HTML konvertierens mit Erhaltung von Kommentaren mithilfe von GroupDocs Viewer für Java gemeistert. Von der grundlegenden Einrichtung und Konfiguration bis hin zu fortgeschrittener Fehlersuche und Leistungsoptimierung verfügen Sie nun über das Wissen, um robustes Dokumenten‑Rendering in realen Anwendungen zu implementieren.

Wichtige Erkenntnisse

  • GroupDocs Viewer vereinfachte Dokument‑Rendering‑Aufgaben
  • Das Erhalten von Kommentaren erfordert nur eine einzige Konfigurationszeile (setRenderComments(true))
  • Richtige Fehlerbehandlung und Ressourcen‑Management sind für die Produktion essenziell
  • Die Bibliothek skaliert von einfachen Hilfsprogrammen bis zu Enterprise‑Lösungen

Ihre nächsten Schritte

  1. Beispiele ausführen mit eigenen Dokumenten
  2. Ein kleines Projekt erstellen, das das gerenderte HTML auf einer Webseite zeigt
  3. Tiefe einsteigen in Anpassungsoptionen wie Wasserzeichen und Metadaten‑Extraktion
  4. Erfahrungen teilen mit der Community, um anderen zu helfen

Beginnen Sie noch heute, beeindruckende Dokumenten‑Viewer‑Erlebnisse zu bauen, und denken Sie daran – die GroupDocs‑Community ist immer da, um Ihnen zu helfen, wenn Sie sie benötigen!


Zuletzt aktualisiert: 2026-01-28
Getestet mit: GroupDocs.Viewer 25.2 für Java
Autor: GroupDocs