Travailler avec des toiles

Découpez et transformez des canevas de fichiers XPS

 

La gestion des canevas dans les documents est l'une des fonctionnalités offertes par Aspose.Page pour .NET. Il s'agit d'une solution pour travailler avec différents langages de description de page, XPS XPS en particulier. Dans l'exemple ci-dessous, vous découvrirez comment :

  • Créez un canevas dans un fichier XPS.

  • Effectuez des décalages gauche et supérieur dans le canevas principal.

  • Ajoutez un nouveau canevas avec une transformation traduite au canevas principal.

  • Ajoutez un nouveau canevas avec une rotation autour d'un point de transformation au canevas principal.

  • Clip toile. Et bien d'autres manipulations avec des canevas dans des fichiers XPS.

Pour transformer des canevas de fichier XPS, suivez le guide suivant :

  1. Créez un fichier XPS à l’aide de XpsDocument Class .
  2. Créez le canevas principal, commun à tous les éléments de la page avec la méthode AddCanvas() .
  3. Effectuez des décalages gauche et supérieur dans le canevas principal à l’aide de la méthode CreateMatrix() .
  4. Créez une géométrie de chemin rectangulaire avec la méthode CreatePathGeometry() .
  5. Créez un remplissage pour les rectangles à l’aide de la classe XpsBrush .
  6. Pour créer un rectangle dans le canevas 2 et le remplir, utilisez la classe XpsPath .
  7. Pour traduire le canevas 3 afin de positionner un nouveau rectangle sous le rectangle précédent, utilisez la méthode CreateMatrix() .
  8. Pour traduire ce canevas sur le côté droit de la page, utilisez la méthode Translate() .
  9. Pour mettre à l’échelle le canevas 4, appelez la méthode Scale() .
  10. Pour faire pivoter la toile 5 autour d’un point de 45 degrés, la méthode RotateAround() va à portée de main.
  11. Enregistrez le document XPS modifié à l’aide de la méthode XPsDocument.Save() .

Fichier XPS Transformation du canevas Code C#

    using Aspose.Page.Xps;
    using Aspose.Page.Xps.XpsModel;
    using System.Drawing;
    // The path to the documents directory.
    string dataDir = RunExamples.GetDataDir_WorkingWithCanvas();
            
    // Create a new XPS Document
    XpsDocument doc = new XpsDocument();

    // Create main canvas, common for all page elemnts
    XpsCanvas canvas1 = doc.AddCanvas();

    // Make left and top offsets in the main canvas
    canvas1.RenderTransform = doc.CreateMatrix(1, 0, 0, 1, 20, 10);

    // Create the rectangle path geometry
    XpsPathGeometry rectGeom = doc.CreatePathGeometry("M 0,0 L 200,0 200,100 0,100 Z");

    // Create a fill for rectangles
    XpsBrush fill = doc.CreateSolidColorBrush(doc.CreateColor(12, 15, 159));
            
    // Add new canvas without any transformations to the main canvas
    XpsCanvas canvas2 = canvas1.AddCanvas();
    // Create rectangle in this canvas and fill it
    XpsPath rect = canvas2.AddPath(rectGeom);
    rect.Fill = fill;

    // Add new canvas with translate transformation to the main canvas
    XpsCanvas canvas3 = canvas1.AddCanvas();
    // Translate this canvas to position new rectangle below the previous rectnagle
    canvas3.RenderTransform = doc.CreateMatrix(1, 0, 0, 1, 0, 200);
    // Translate this canvas to the right side of the page
    canvas3.RenderTransform.Translate(500, 0);
    // Create the rectangle in this canvas and fill it
    rect = canvas3.AddPath(rectGeom);
    rect.Fill = fill;

    // Add new canvas with the double scale transformation to the main canvas
    XpsCanvas canvas4 = canvas1.AddCanvas();
    // Translate this canvas to position new rectangle below the previous rectnagle
    canvas4.RenderTransform = doc.CreateMatrix(1, 0, 0, 1, 0, 400);
    // Scale this canvas
    canvas4.RenderTransform.Scale(2, 2);
    // Create a rectangle in this canvas and fill it
    rect = canvas4.AddPath(rectGeom);
    rect.Fill = fill;

    // Add new canvas with rotation around a point transformation to the main canvas
    XpsCanvas canvas5 = canvas1.AddCanvas();
    // Translate this canvas to position new rectangle below the previous rectnagle
    canvas5.RenderTransform = doc.CreateMatrix(1, 0, 0, 1, 0, 800);
    // Rotate this canvas aroud a point on 45 degrees
    canvas5.RenderTransform.RotateAround(45, new PointF(100, 50));
    rect = canvas5.AddPath(rectGeom);
    rect.Fill = fill;
            
    // Save the resultant XPS document
    doc.Save(dataDir + "output1.xps");
L'extrait de code suivant montre comment découper des canevas de fichiers XPS dans la solution Aspose.Page pour .NET Api.

Pour couper les toiles du fichier XPS, suivez le guide suivant :

  1. Créez ou ouvrez un fichier XPS à l’aide de XpsDocument Class.
  2. Créez le canevas principal, commun à tous les éléments de la page avec la méthode AddCanvas() .
  3. Effectuez des décalages gauche et supérieur dans le canevas principal à l’aide de la méthode CreateMatrix() .
  4. Créez une géométrie de chemin rectangulaire avec la méthode CreatePathGeometry() .
  5. Créez un remplissage pour les rectangles à l’aide de la classe XpsBrush .
  6. Pour ajouter un autre canevas avec un clip au canevas principal, appelez à nouveau la méthode AddCanvas().
  7. Créez une géométrie de cercle pour le clip à l’aide de la classe XpsPathGeometry .
  8. Pour créer un rectangle dans ce canevas et le remplir, utilisez la classe XpsPath .
  9. Ajoutez un autre canevas avec la méthode AddCanvas() puis créez un rectangle dans ce canevas et tracez-le avec la classe XpsPathGeometry.
  10. Enregistrez le document XPS modifié au moyen de la méthode XPsDocument.Save().

Découpage de canevas de fichier XPS code C#

    // The path to the documents directory.
    string dataDir = RunExamples.GetDataDir_WorkingWithCanvas();
            
    // Create a new XPS Document
    XpsDocument doc = new XpsDocument();

    // Create main canvas, common for all page elemnts
    XpsCanvas canvas1 = doc.AddCanvas();

    // Make left and top offsets in the main canvas
    canvas1.RenderTransform = doc.CreateMatrix(1, 0, 0, 1, 20, 10);

    // Create the rectangle path geometry
    XpsPathGeometry rectGeom = doc.CreatePathGeometry("M 0,0 L 500,0 500,300 0,300 Z");

    // Create a fill for rectangles
    XpsBrush fill = doc.CreateSolidColorBrush(doc.CreateColor(12, 15, 159));
            
    // Add another canvas with the clip to the main canvas
    XpsCanvas canvas2 = canvas1.AddCanvas();

    // Create circle geometry for the clip
    XpsPathGeometry clipGeom = doc.CreatePathGeometry("M250,250 A100,100 0 1 1 250,50 100,100 0 1 1 250,250");
    canvas2.Clip = clipGeom;

    // Create rectangle in this canvas and fill it
    XpsPath rect = canvas2.AddPath(rectGeom);
    rect.Fill = fill;

    // Add the second canvas with stroked rectangle to the main canvas
    XpsCanvas canvas3 = canvas1.AddCanvas();

    // Create rectangle in this canvas and stroke it
    rect = canvas3.AddPath(rectGeom);
    rect.Stroke = fill;
    rect.StrokeThickness = 2;

    // Save resultant XPS document
    doc.Save(dataDir + "output2.xps");



FAQ

1. Comment puis-je ajouter un canevas à un fichier XPS ?

Définissez le chemin d’accès au répertoire des documents. Pour ajouter des canevas, utilisez la méthode AddCanvas().

2. Comment manipuler les décalages du canevas dans un fichier XPS ?

Définissez le chemin d’accès au répertoire des documents et ajoutez des canevas. Utilisez la méthode CreateMatrix() pour effectuer des décalages.

3. Quelles opérations avec les canevas dans le fichier XPS sont prises en charge ?

Vous pouvez créer, découper et ajouter un canevas ainsi que manipuler ses décalages.

XPS Qu'est-ce que le format de fichier XPS

Le format XPS est similaire au format PDF. Les deux sont des formats de langage de description de page (PDL). EPS est basé sur HTML et non sur le langage PostScript. Le fichier .eps est capable de contenir un balisage de la structure du document ainsi que des informations sur l'apparence du document. Il existe également des instructions supplémentaires sur la façon d'imprimer et de rendre le document. La caractéristique du format est qu'il fixe la description du document, ce qui signifie qu'il aura le même aspect, peu importe qui et à partir de quel système opérationnel l'ouvre.