Trabalhe com telas

Recorte e transforme telas de arquivos XPS

 

Gerenciar Canvas nos documentos é uma das funcionalidades oferecidas pelo Aspose.Page para .NET. Esta é uma solução para trabalhar com diferentes linguagens de descrição de página, XPS XPS em específico. No exemplo abaixo você descobrirá como:

  • Crie uma tela em um arquivo XPS.

  • Faça os deslocamentos esquerdo e superior na tela principal.

  • Adicione uma nova tela com uma transformação traduzida à tela principal.

  • Adicione uma nova tela com uma rotação em torno de uma transformação de ponto na tela principal.

  • Clipe de tela. E muito mais manipulações com telas em arquivos XPS.

Para transformar telas de arquivo XPS, siga o próximo guia:

  1. Crie um arquivo XPS usando a XpsDocument Class .
  2. Crie a tela principal, comum para todos os elementos da página com o método AddCanvas() .
  3. Faça os deslocamentos esquerdo e superior na tela principal usando o método CreateMatrix() .
  4. Crie uma geometria de caminho retangular com o método CreatePathGeometry() .
  5. Crie um preenchimento para retângulos por meio da classe XpsBrush .
  6. Para criar um retângulo na tela 2 e preenchê-lo, use a classe XpsPath .
  7. Para traduzir a tela 3 para posicionar um novo retângulo abaixo do retângulo anterior, use o método CreateMatrix() .
  8. Para traduzir esta tela para o lado direito da página, o método Translate() .
  9. Para dimensionar a tela 4, chame o método Scale() .
  10. Para girar a tela 5 em torno de um ponto de 45 graus, o método RotateAround() vai a calhar.
  11. Salve o documento XPS alterado usando o método XPsDocument.Save() .

Código C# de transformação de tela do arquivo XPS

    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");
O próximo trecho de código mostra como recortar telas de arquivos XPS dentro do Aspose.Page para .NET Api Solution.

Para Recortar telas do arquivo XPS, siga o próximo guia:

  1. Crie ou abra um arquivo XPS usando XpsDocument Class.
  2. Crie a tela principal, comum para todos os elementos da página com o método AddCanvas() .
  3. Faça os deslocamentos esquerdo e superior na tela principal usando o método CreateMatrix() .
  4. Crie uma geometria de caminho retangular com o método CreatePathGeometry() .
  5. Crie um preenchimento para retângulos por meio da classe XpsBrush .
  6. Para adicionar outra tela com um clipe à tela principal, chame o método AddCanvas() novamente.
  7. Crie a geometria do círculo para o clipe usando a classe XpsPathGeometry .
  8. Para criar um retângulo nesta tela e preenchê-lo, use a classe XpsPath .
  9. Adicione outra tela com o método AddCanvas() e, em seguida, crie um retângulo nesta tela e trace-o com a classe XpsPathGeometry.
  10. Salve o documento XPS alterado por meio do método XPsDocument.Save().

Código C# de recorte de tela de arquivo XPS

    // 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");



Perguntas frequentes

1. Como posso adicionar uma tela a um arquivo XPS?

Defina o caminho para o diretório de documentos. Para adicionar telas use o método AddCanvas().

2. Como manipular deslocamentos de tela em um arquivo XPS?

Defina o caminho para o diretório de documentos e adicione telas. Use o método CreateMatrix() para fazer deslocamentos.

3. Quais operações com telas no arquivo XPS são suportadas?

Você pode criar, recortar e adicionar uma tela, bem como manipular seus deslocamentos.

XPS O que é XPS Formato de Arquivo

O formato XPS é semelhante ao formato PDF. Ambos são formatos de linguagem de descrição de página (PDL). EPS é baseado em HTML e não em linguagem PostScript. O arquivo .eps é capaz de conter uma marcação da estrutura do documento junto com as informações de como o documento ficaria. Há também instruções adicionadas sobre como imprimir e renderizar o documento. A característica do formato é que ele corrige a descrição do documento, o que significa que ele terá a mesma aparência, não importa quem e de qual sistema operacional o abra.