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:
- Crie um fluxo de saída para o ficheiro PS resultante.
- Crie o objeto PsSaveOptions com as opções padrão.
- Crie um PsDocument de 1 página com um fluxo de saída já criado e guarde as opções.
- Crie um novo estado gráfico e translade-o para a posição necessária.
- Crie java.awt.image.BufferedImage a partir do ficheiro de imagem.
- Crie java.awt.TexturePaint a partir da imagem.
- Defina a transformação necessária no pincel de textura.
- Defina a pintura de textura como a pintura atual no estado gráfico atual do PsDocument.
- Crie um percurso retangular.
- Preencha o retângulo com a pintura de textura.
- Guarde a pintura atual como uma variável local para utilização futura.
- Defina a pintura atual com uma cor vermelha.
- Defina o traço com uma largura de 2 pontos java.awt.BasicStroke
- Contorne o retângulo com um traço atual.
- Saia do estado gráfico atual para o estado gráfico de nível superior.
- Crie uma fonte system.
- Preencha e traceje (contorne) o texto. Para preencher a textura, utilize tinta e, para traçar, caneta preta.
- Contorne o texto na outra posição com a tinta e o novo java.awt.BasicStroke.
- Feche a página.
- 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

Pode descarregar exemplos e ficheiros de dados do GitHub.