Travailler avec les canevas (canvases) dans XPS
Rogner (clip) et transformer (transform) les canevas dans les fichiers XPS à l’aide de l’API C++
Dans les fichiers XPS, un canevas (canvas) est une zone rectangulaire sur une page où du contenu visuel, comme du texte, des images et des formes, peut être dessiné. Il sert de conteneur pour ces éléments et fournit un cadre pour les organiser et les superposer. Les canevas peuvent être réutilisés dans différentes parties du document ou même dans plusieurs documents, ce qui offre une façon flexible de structurer et d'organiser le contenu dans un document XPS. Caractéristiques clés des canevas dans les fichiers XPS :
- Les canevas peuvent être imbriqués dans d’autres canevas, créant une structure hiérarchique qui permet des mises en page (layouts) complexes et le regroupement d’éléments.
- Les canevas peuvent être transformés à l’aide de diverses opérations, telles que la translation, la rotation et la mise à l’échelle (scaling). Cela permet un positionnement flexible et le redimensionnement du contenu.
- Les canevas peuvent être rognés (clip) sur des régions spécifiques, limitant la zone visible de leur contenu. Ceci est utile pour créer des formes et des effets complexes.
- Les canevas peuvent contenir différents éléments visuels, notamment des exécutions de texte (text runs), des paragraphes et des zones de texte (text boxes). Ils peuvent également contenir des images, des formes géométriques et d’autres canevas.
La gestion des canevas dans les documents est l'une des fonctionnalités proposées par Aspose.Page pour C++. Cette solution fonctionne avec différents langages de description de page, XPS en particulier.
Pour transformer (transform) les canevas d'un fichier XPS, suivez le guide ci-dessous :
- Créez un fichier XPS à l’aide de la classe XpsDocument.
- Créez le canevas principal, commun à tous les éléments de la page, à l’aide de la méthode AddCanvas().
- Effectuez des décalages gauche et supérieur dans le canevas principal à l’aide de la méthode CreateMatrix().
- Créez une géométrie de chemin rectangulaire (rectangle path geometry) avec la méthode CreatePathGeometry().
- Créez un remplissage pour les rectangles à l’aide de la classe XpsBrush.
- Pour créer un rectangle dans le canevas 2 et le remplir, utilisez la classe XpsPath.
- Pour translater le canevas 3 afin de positionner un nouveau rectangle sous le rectangle précédent, utilisez la méthode CreateMatrix().
- Pour translater ce canevas vers la droite de la page, utilisez la méthode Translate().
- Pour mettre à l’échelle (scale) le canevas 4, appelez la méthode Scale().
- Pour faire pivoter (rotate) le canevas 5 autour d’un point de 45 degrés ; la méthode RotateAround() est très utile.
- Enregistrez le document XPS modifié à l’aide de la méthode XpsDocument.Save().
La transformation du canevas (canvas transformation)
Pour rogner (clip) les canevas d'un fichier XPS, suivez le guide ci-dessous :
- Créez ou ouvrez un fichier XPS à l’aide de la classe XpsDocument.
- Créez le canevas principal, commun à tous les éléments de la page, à l’aide de la méthode AddCanvas().
- Effectuez des décalages gauche et supérieur dans le canevas principal à l’aide de la méthode CreateMatrix().
- Créez une géométrie de chemin rectangulaire avec la méthode CreatePathGeometry().
- Créez un remplissage pour les rectangles à l’aide de la classe XpsBrush.
- Pour ajouter un autre canevas avec un rognage (clip) au canevas principal, appelez à nouveau la méthode AddCanvas().
- Créez une géométrie de cercle pour le rognage à l’aide de la classe XpsPathGeometry.
- Pour créer un rectangle dans ce canevas et le remplir, utilisez la classe XpsPath.
- Ajoutez un autre canevas avec la méthode AddCanvas(), puis créez un rectangle dans ce canevas et tracez-le avec la classe XpsPathGeometry.
- Enregistrez le document XPS modifié à l’aide de la méthode XpsDocument.Save().
Le rognage du canevas (canvas clipping)
XPS Qu'est-ce que le format de fichier XPS
XPS (XML Paper Specification) est l’équivalent Microsoft du PDF. Il repose sur XML/HTML, préserve la mise en page sur toutes les plateformes et est indépendant du système d’exploitation.