Mit Canvases in XPS arbeiten
Canvases in XPS-Dateien mit der C++ API beschneiden (clip) und transformieren (transform)
In XPS-Dateien ist eine Canvas ein rechteckiger Bereich auf einer Seite, in dem visuelle Inhalte wie Text, Bilder und Formen gezeichnet werden können. Sie dient als Container für diese Elemente und bietet einen Rahmen zur Organisation und Schichtung (layering). Canvases können in verschiedenen Teilen des Dokuments oder sogar in mehreren Dokumenten wiederverwendet werden, was eine flexible Möglichkeit zur Strukturierung und Organisation von Inhalten in einem XPS-Dokument bietet. Hauptmerkmale von Canvases in XPS-Dateien:
- Canvases können innerhalb anderer Canvases verschachtelt werden, wodurch eine hierarchische Struktur entsteht, die komplexe Layouts und das Gruppieren von Elementen ermöglicht.
- Canvases können mithilfe verschiedener Operationen transformiert werden, z. B. Verschiebung (translation), Drehung (rotation) und Skalierung (scaling). Dies ermöglicht eine flexible Positionierung und Größenänderung von Inhalten.
- Canvases können auf bestimmte Bereiche beschnitten (clip) werden, wodurch der sichtbare Bereich ihres Inhalts begrenzt wird. Dies ist nützlich zum Erstellen komplizierter Formen und Effekte.
- Canvases können verschiedene visuelle Elemente enthalten, darunter Textabfolgen (text runs), Absätze (paragraphs) und Textfelder (text boxes). Sie können auch Bilder, geometrische Formen und andere Canvases enthalten.
Die Verwaltung von Canvases in Dokumenten ist eine der Funktionen, die Aspose.Page für C++ bietet. Diese Lösung funktioniert mit verschiedenen Seitenbeschreibungssprachen, insbesondere XPS.
Um Canvases einer XPS-Datei zu transformieren (transform), folgen Sie der nachstehenden Anleitung:
- Erstellen Sie eine XPS-Datei mithilfe der Klasse XpsDocument.
- Erstellen Sie die gemeinsame Haupt-Canvas für alle Seitenelemente mithilfe der Methode AddCanvas().
- Nehmen Sie mithilfe der Methode CreateMatrix() linke und obere Versätze in der Haupt-Canvas vor.
- Erstellen Sie mit der Methode CreatePathGeometry() eine Rechteckspfadgeometrie (rectangle path geometry).
- Erstellen Sie eine Füllung für Rechtecke mithilfe der Klasse XpsBrush.
- Um ein Rechteck in Canvas 2 zu erstellen und zu füllen, verwenden Sie die Klasse XpsPath.
- Um Canvas 3 so zu verschieben, dass ein neues Rechteck unterhalb des vorherigen Rechtecks positioniert wird, verwenden Sie die Methode CreateMatrix().
- Um diese Canvas auf die rechte Seite der Seite zu verschieben, verwenden Sie die Methode Translate().
- Um Canvas 4 zu skalieren, rufen Sie die Methode Scale() auf.
- Um Canvas 5 um 45 Grad um einen Punkt zu drehen, ist die Methode RotateAround() hilfreich.
- Speichern Sie das geänderte XPS-Dokument mithilfe der Methode XpsDocument.Save().
Die Canvas Transformation
Um Canvases einer XPS-Datei zu beschneiden (clip), folgen Sie der nachstehenden Anleitung:
- Erstellen oder öffnen Sie eine XPS-Datei mithilfe der Klasse XpsDocument.
- Erstellen Sie die gemeinsame Haupt-Canvas für alle Seitenelemente mithilfe der Methode AddCanvas().
- Nehmen Sie mithilfe der Methode CreateMatrix() linke und obere Versätze in der Haupt-Canvas vor.
- Erstellen Sie mit der Methode CreatePathGeometry() eine Rechteckspfadgeometrie.
- Erstellen Sie eine Füllung für Rechtecke mithilfe der Klasse XpsBrush.
- Um eine weitere Canvas mit einem Schnitt (clip) zur Haupt-Canvas hinzuzufügen, rufen Sie die Methode AddCanvas() erneut auf.
- Erstellen Sie Kreisgeometrie für den Schnitt mithilfe der Klasse XpsPathGeometry.
- Um ein Rechteck in dieser Canvas zu erstellen und zu füllen, verwenden Sie die Klasse XpsPath.
- Fügen Sie mit der Methode AddCanvas() eine weitere Canvas hinzu, erstellen Sie dann ein Rechteck in dieser Canvas und konturieren Sie es mit der Klasse XpsPathGeometry.
- Speichern Sie das geänderte XPS-Dokument mithilfe der Methode XpsDocument.Save().
Das Canvas Clipping
XPS Was ist XPS Dateiformat
XPS (XML Paper Specification) ist Microsofts PDF‑Äquivalent. Es basiert auf XML/HTML, bewahrt das Layout über verschiedene Plattformen hinweg und ist unabhängig vom Betriebssystem.