Trabalhar com Texturas em Ficheiro PS | Java

Adicionar Padrão de Textura em Azulejos no Documento PS

Um padrão de textura em azulejos é uma imagem utilizada para preencher ou desenhar objetos: formas ou texto. Se o tamanho da imagem for inferior ao tamanho do objeto, esta será repetida nas direções X e Y para cobrir todas as áreas necessárias.

O processo de repetição da imagem dentro de objetos gráficos é designado por azulejo. Para definir pintura ou traço em PsDocument, devemos passar um objeto da classe java.awt.Paint para uma pintura e um objeto da classe java.awt.Stroke para traçado nos respetivos métodos.

A biblioteca Aspose.Page para Java processa todas as classes importantes implementadas java.awt.Paint oferecidas pela plataforma Java. São elas: java.awt.Color, java.awt.TexturePaint, java.awt.LinearGradientPaint e java.awt.RadialGradientPaint. A cor do traço em Java é atribuída separadamente das propriedades do traço no objeto java.awt.Stroke, utilizando novamente java.awt.Paint. Assim, a biblioteca Aspose.Page para Java pode também utilizar um conjunto completo de implementações de pintura para desenhar linhas e contornar formas e texto.

Para pintar objetos gráficos com um padrão texturizado na biblioteca Aspose.Page para Java, basta passar java.awt.TexturePaint para setPaint() ou um dos métodos fillText() ou fillAndStrokeText() que aceitam java.awt.Paint como parâmetro.

Para contornar os objetos gráficos com um padrão texturizado na biblioteca Aspose.Page para Java, deve passar o objeto java.awt.TexturePaint também para setPaint() ou um dos métodos outlineText() ou fillAndStrokeText() que aceitam trace painting como parâmetro.

No exemplo abaixo, demonstramos como preencher uma forma e um texto, e contornar um texto com um padrão de mosaico texturado.

Descrição dos passos de trabalho com o Padrão de Textura e PsDocument no exemplo:

  1. Crie um fluxo de saída para o ficheiro PS resultante.
  2. Crie o objeto PsSaveOptions com as opções padrão.
  3. Crie um PsDocument de 1 página com um fluxo de saída já criado e guarde as opções.
  4. Crie um novo estado gráfico e translade-o para a posição necessária.
  5. Crie java.awt.image.BufferedImage a partir do ficheiro de imagem.
  6. Crie java.awt.TexturePaint a partir da imagem.
  7. Defina a transformação necessária no pincel de textura.
  8. Defina a pintura de textura como a pintura atual no estado gráfico atual do PsDocument.
  9. Crie um percurso retangular.
  10. Preencha o retângulo com a pintura de textura.
  11. Guarde a pintura atual como uma variável local para utilização futura.
  12. Defina a pintura atual com uma cor vermelha.
  13. Defina o traço com uma largura de 2 pontos java.awt.BasicStroke
  14. Contorne o retângulo com um traço atual.
  15. Saia do estado gráfico atual para o estado gráfico de nível superior.
  16. Crie uma fonte system.
  17. Preencha e traceje (contorne) o texto. Para preencher a textura, utilize tinta e, para traçar, caneta preta.
  18. Contorne o texto na outra posição com a tinta e o novo java.awt.BasicStroke.
  19. Feche a página.
  20. Guarde o documento.
 1  // Paint rectangle and text and outline text with tiled image (texture pattern) in PS document.
 2
 3  String outputFileName = "AddTextureTilingPattern_outPS.ps";
 4
 5  //Create save options with A4 size
 6  PsSaveOptions options = new PsSaveOptions();
 7
 8  // Create new 1-paged PS Document
 9  PsDocument document = new PsDocument(getOutputDir() + outputFileName, options, false);
10
11  document.writeGraphicsSave();
12  document.translate(200, 100);
13
14//Create a BufferedImage object from image file
15  BufferedImage image = ImageIO.read(new File(getDataDir() + "TestTexture.bmp"));
16  
17  //Create image area doubled in width
18  Rectangle2D.Float imageArea = new Rectangle2D.Float(0, 0, image.getWidth() * 2, image.getHeight());
19  //Create texture brush from the image
20  TexturePaint paint = new TexturePaint(image, imageArea);
21  
22  //Create rectangle
23  Rectangle2D.Float shape = new Rectangle2D.Float(0, 0, 200, 100);
24  
25  //Set this texture brush as current paint
26  document.setPaint(paint);
27  //Fill rectangle
28  document.fill(shape);
29  
30  
31  document.setPaint(Color.RED);
32  document.setStroke(new BasicStroke(2));
33  document.draw(shape);
34  
35  document.writeGraphicsRestore();
36  
37  //Fill the text with the texture pattern
38  Font font = new Font("Arial", Font.BOLD, 96);
39  document.fillAndStrokeText("ABC", font, 200, 300, paint, Color.BLACK, new BasicStroke(2));
40
41  //Outline the text with the texture pattern
42  document.outlineText("ABC", font, 200, 400, paint, new BasicStroke(5));
43
44  //Close current page
45  document.closePage();
46
47  //Save the document
48  document.save();

Veja como trabalhar com texturas em documentos PS em .NET.


O resultado da execução deste código é apresentado como

Adicionar Padrão de Mosaico de Textura

Pode descarregar exemplos e ficheiros de dados do GitHub.

Have any questions about Aspose.Page?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.