Работа с образцами штриховки в файле PS | Java

Добавить образец штриховки в документ PS

Образец штриховки представляет собой образец мозаики текстуры, обычно представленный небольшим двухцветным (обычно черно-белым) простым изображением. Основное содержание этих небольших изображений — различные штриховки.

На платформе Java нет отдельного класса для рисования фигур и текста штриховками. Однако библиотека Aspose.Page для Java предлагает com.aspose.eps.HatchPaintLibrary класс, который дает возможность создавать java.awt.TexturePaint, заполненный штриховками, определенными одним из 55 стилей, предлагаемых com.aspose.eps.HatchStyle.

Чтобы рисовать графические объекты с помощью образца штриховки в библиотеке Aspose.Page для Java, необходимо создать штриховку java.awt.TexturePaint с назначенным стилем штриховки, передать ее в setPaint() или один из методов fillText() или fillAndStrokeText(), которые принимают java.awt.Paint в качестве параметра.

Чтобы обвести графические объекты шаблоном штриховки в библиотеке Aspose.Page для Java, кто-то должен установить шаблон штриховки в качестве текущей краски в PsDocument, создать новый java.awt.BasicStroke и передать его * setStroke()* или один из методов outlineText() или fillAndStrokeText(), которые принимают java.awt.Stroke в качестве параметра.

В приведенном ниже примере мы демонстрируем, во-первых, как заполнить фигуру штриховкой, затем все многообразие стилей штриховки в Java и, наконец, как заполнить и обвести текст штриховкой.

Алгоритм рисования графических объектов штриховкой в ​​новом PS-документе включает следующие этапы:

  1. Создайте выходной поток для полученного PS-файла.
  2. Создайте PsSaveOptions.
  3. Создайте PsDocument с уже созданным потоком вывода и сохраните параметры.
  4. Создайте форму или шрифт в зависимости от того, какой объект мы собираемся заливать или обводить.
  5. Создайте с помощью com.aspose.eps.HatchPaintLibrary объект java.awt.TexturePaint с желаемым стилем.
  6. Установите краску штриховки в качестве текущей краски в PsDocument.
  7. Залейте фигуру текущей краской или заполните текст. Если мы воспользуемся одним из методов заполнения текста, принимающим в качестве параметра java.awt.Paint, предыдущий пункт можно проигнорировать.
  8. Закройте страницу.
  9. Сохраните документ.

Если нам нужно обводка (обведение) графических объектов штриховкой вместо последних 4 точек, то будет следующее:

  1. Установите краску штриховки в качестве текущей краски в PsDocument.

  2. Создайте объект java.awt.BasicStroke.

  3. Установите этот штрих в качестве текущего в PsDocument.

  4. Обведите фигуру текущей краской и обводкой или обведите текст. Если мы используем один из методов выделения текста, который принимает java.awt.Stroke в качестве параметра, предыдущую точку можно игнорировать.

  5. Закройте страницу.

  6. Сохраните документ.

 1  // Demonstrates all embedded hatch patterns that can be used to paint or outline shapes or text in PS document.
 2
 3  String outputFileName = "AddHatchPattern_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  int x0 = 20;
12  int y0 = 100;
13  int squareSide = 32;
14  int width = 500;
15  int sumX = 0;
16
17//Restore graphics state
18  document.writeGraphicsSave();
19
20  //Translate to initial point
21  document.translate(x0, y0);
22  
23  //Create a square for every pattern
24  Rectangle2D.Float square = new Rectangle2D.Float(0, 0, squareSide, squareSide);
25  
26  //Create pen for outlining pattern square
27  BasicStroke stroke = new BasicStroke(2);
28  
29  HatchStyle [] hatchStyles = HatchStyle.values();
30  
31  //For every hatch pattern style 
32  for (int i = 0; i < hatchStyles.length; i++) {            
33  	//Create a hatch texture pattern by hatch style, foreground and background colors
34  	TexturePaint paint = HatchPaintLibrary.getHatchTexturePaint(hatchStyles[i], Color.BLACK, Color.WHITE);
35  	//Set paint with the current hatch pattern
36      document.setPaint(paint);
37
38      //Calculate a displacement in order to don't go beyond the page bounds
39      int x = squareSide;
40      int y = 0;
41      if (sumX >= width) {
42          x = -(sumX - squareSide);
43          y += squareSide;
44      }
45
46      //Translate current graphics state
47      document.translate(x, y);
48      //Fill pattern square
49      document.fill(square);
50
51      //Set current paint
52      document.setPaint(Color.BLACK);
53      //Set current stroke
54      document.setStroke(stroke);
55      //Draw square outline
56      document.draw(square);
57
58      //Calculate distance from X0
59      if (sumX >= width)
60          sumX = squareSide;
61      else
62          sumX += x;
63  }
64  
65  //Restore graphics state
66  document.writeGraphicsRestore();
67  
68  //Fill a text with the hatch pattern
69  TexturePaint paint = HatchPaintLibrary.getHatchTexturePaint(HatchStyle.DiagonalCross, Color.RED, Color.YELLOW);
70  Font font = new Font("Arial", Font.BOLD, 96);
71  document.fillAndStrokeText("ABC", font, 200, 320, paint, Color.BLACK, stroke);
72
73  //Outline the text with the hatch pattern
74  paint = HatchPaintLibrary.getHatchTexturePaint(HatchStyle.Percent70, Color.BLUE, Color.WHITE);
75  document.outlineText("ABC", font, 200, 420, paint, new BasicStroke(5));
76
77  //Close current page
78  document.closePage();
79
80  //Save the document
81  document.save();

См. работу с образцом штриховки в документе PS в .NET.


Результат выполнения этого кода выглядит так:

Добавить образец штриховки

Вы можете загрузить примеры и файлы данных с GitHub.

Have any questions about Aspose.Page?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.