Робота з шаблонами штрихування у файлі 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 включає такі кроки:
- Створіть вихідний потік для отриманого файлу PS.
- Створіть PsSaveOptions.
- Створіть PsDocument із уже створеним вихідним потоком і параметрами збереження.
- Створіть фігуру або шрифт залежно від того, який об’єкт ми збираємося заповнити або окреслити.
- Створіть за допомогою com.aspose.eps.HatchPaintLibrary об’єкт java.awt.TexturePaint із бажаним стилем.
- Встановіть фарбу штрихування як поточну фарбу в PsDocument
- Заповніть форму поточною фарбою або заповніть текст. Якщо ми використовуємо один із методів заповнення тексту, який приймає java.awt.Paint як параметр, попередній пункт можна проігнорувати.
- Закрийте сторінку.
- Збережіть документ.
Якщо нам потрібно штрихування (контур) графічних об’єктів із шаблоном штрихування замість останніх 4 пунктів, наступним буде:
- Установіть фарбу штрихування як поточну фарбу в PsDocument.
- Створіть об’єкт java.awt.BasicStroke.
- Установіть цей штрих як поточний штрих у PsDocument.
- Окресліть фігуру поточною фарбою та обведіть або обведіть текст. Якщо ми використовуємо один із методів для виділення тексту, який приймає java.awt.Stroke як параметр, попередній пункт можна проігнорувати.
- Закрийте сторінку.
- Збережіть документ.
1// The path to the documents directory.
2String dataDir = Utils.getDataDir();
3
4//Create output stream for PostScript document
5FileOutputStream outPsStream = new FileOutputStream(dataDir + "AddHatchPattern_outPS.ps");
6//Create save options with A4 size
7PsSaveOptions options = new PsSaveOptions();
8
9//Create new PS Document with the page opened
10PsDocument document = new PsDocument(outPsStream, options, false);
11
12int x0 = 20;
13int y0 = 100;
14int squareSide = 32;
15int width = 500;
16int sumX = 0;
17
18//Restore graphics state
19document.writeGraphicsSave();
20
21//Translate to initial point
22document.translate(x0, y0);
23
24//Create a square for every pattern
25Rectangle2D.Float square = new Rectangle2D.Float(0, 0, squareSide, squareSide);
26
27//Create pen for outlining pattern square
28BasicStroke stroke = new BasicStroke(2);
29
30HatchStyle [] hatchStyles = HatchStyle.values();
31
32//For every hatch pattern style
33for (int i = 0; i < hatchStyles.length; i++) {
34 //Create a hatch texture pattern by hatch style, foreground і background colors
35 TexturePaint paint = HatchPaintLibrary.getHatchTexturePaint(hatchStyles[i], Color.BLACK, Color.WHITE);
36 //Set paint with the current hatch pattern
37 document.setPaint(paint);
38
39 //Calculate a displacement in order to don't go beyond the page bounds
40 int x = squareSide;
41 int y = 0;
42 if (sumX >= width) {
43 x = -(sumX - squareSide);
44 y += squareSide;
45 }
46
47 //Translate current graphics state
48 document.translate(x, y);
49 //Fill pattern square
50 document.fill(square);
51
52 //Set current paint
53 document.setPaint(Color.BLACK);
54 //Set current stroke
55 document.setStroke(stroke);
56 //Draw square outline
57 document.draw(square);
58
59 //Calculate distance from X0
60 if (sumX >= width)
61 sumX = squareSide;
62 else
63 sumX += x;
64}
65
66//Restore graphics state
67document.writeGraphicsRestore();
68
69//Fill a text with the hatch pattern
70TexturePaint paint = HatchPaintLibrary.getHatchTexturePaint(HatchStyle.DiagonalCross, Color.RED, Color.YELLOW);
71Font font = new Font("Arial", Font.BOLD, 96);
72document.fillAndStrokeText("ABC", font, 200, 400, paint, Color.BLACK, stroke);
73
74//Outline the text with the hatch pattern
75paint = HatchPaintLibrary.getHatchTexturePaint(HatchStyle.Percent70, Color.BLUE, Color.WHITE);
76document.outlineText("ABC", font, 200, 600, paint, new BasicStroke(5));
77
78//Close current page
79document.closePage();
80//Save the document
81document.save();
Дивіться роботу з шаблоном штрихування в документі PS у .NET.
Результат виконання цього коду виглядає як
Ви можете завантажити приклади і файли даних з GitHub.