Работа с текстом в документах PostScript (PS) на Java
Добавляйте, форматируйте и стилизуйте текстовые элементы в документах PostScript (PS/EPS) с помощью Aspose.Page for Java. Выполняйте программный рендеринг текста с высокой точностью и полным контролем над выбором шрифтов (включая системные шрифты, TrueType и OpenType), эффектами заливки и обводки текста, аффинными преобразованиями (масштабированием, поворотом, наклоном), пользовательским межсимвольным интервалом и обрезкой векторного текста.
Aspose.Page for Java предоставляет гибкие методы рендеринга текста в классе PsDocument, позволяя разработчикам выводить стандартный текст с заливкой или контурный текст вдоль векторных путей.
- Для рендеринга стандартных читаемых абзацев текста, заголовков и строк меток с однотонной или градиентной заливкой используйте метод
PsDocument.fillText(). - Для создания декоративных контуров векторного текста, пустотелых заголовков или стилизованных типографских эффектов используйте метод
PsDocument.outlineText(). - Для загрузки внешних файлов шрифтов
.ttfили.otf, чтобы обеспечить точное визуальное соответствие в разных средах, используйтеDrFont/System Fonts. - Для задания угла, поворота или наклона текстовых элементов относительно координат страницы документа используйте метод
PsDocument.transform().
Добавление стандартного текста с заливкой на страницу PostScript
Выполняйте рендеринг простых строк на странице PostScript с использованием стандартных системных шрифтов и цветной заливки.
import com.aspose.page.eps.PsDocument;
import com.aspose.page.eps.device.PsSaveOptions;
import java.awt.Color;
import java.awt.Font;
import java.io.FileOutputStream;
public class AddTextToPS {
public static void main(String[] args) throws Exception {
// Initialize output stream and PS document
FileOutputStream outStream = new FileOutputStream("C:/PSProject/Output/simple_text.ps");
PsSaveOptions options = new PsSaveOptions();
PsDocument document = new PsDocument(outStream, options, 1);
document.openPage(null);
// Define font and color paint
Font font = new Font("Times New Roman", Font.BOLD, 20);
document.setPaint(Color.BLUE);
// Fill text at specified X, Y coordinates
document.fillText("Aspose.Page for Java - Text Rendering", font, 100, 150);
// Close page and save document
document.closePage();
document.save();
outStream.close();
System.out.println("Text successfully added to PostScript document.");
}
}Создание контуров и обводка текстовых путей
Рисуйте контуры векторного текста без внутренней заливки для создания выразительных заголовков или элементов типографического дизайна.
import com.aspose.page.eps.PsDocument;
import com.aspose.page.eps.device.PsSaveOptions;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Font;
import java.io.FileOutputStream;
public class StrokeTextInPS {
public static void main(String[] args) throws Exception {
FileOutputStream outStream = new FileOutputStream("C:/PSProject/Output/stroked_text.ps");
PsSaveOptions options = new PsSaveOptions();
PsDocument document = new PsDocument(outStream, options, 1);
document.openPage(null);
// Configure font, stroke width, and outline paint
Font font = new Font("Arial", Font.BOLD, 36);
document.setStroke(new BasicStroke(2.0f));
document.setPaint(Color.RED);
// Outline text string
document.outlineText("Outlined Vector Text", font, 100, 200);
document.closePage();
document.save();
outStream.close();
System.out.println("Outlined text rendered successfully.");
}
}Использование пользовательских шрифтов TrueType/OpenType (`.ttf`/`.otf`)
Интегрируйте фирменные шрифты, отсутствующие в системе, указывая пути к файлам шрифтов или встраивая пользовательские папки со шрифтами в PsSaveOptions.
import com.aspose.page.eps.PsDocument;
import com.aspose.page.eps.device.PsSaveOptions;
import java.awt.Color;
import java.awt.Font;
import java.io.FileOutputStream;
public class CustomFontTextPS {
public static void main(String[] args) throws Exception {
FileOutputStream outStream = new FileOutputStream("C:/PSProject/Output/custom_font_text.ps");
// Add custom font folder search path in options
PsSaveOptions options = new PsSaveOptions();
options.setAdditionalFontsFolders(new String[] { "C:/PSProject/Fonts/" });
PsDocument document = new PsDocument(outStream, options, 1);
document.openPage(null);
// Reference custom font by its registered family name
Font customFont = new Font("CustomBrandFont", Font.PLAIN, 24);
document.setPaint(Color.DARK_GRAY);
document.fillText("Text rendered using external TrueType font", customFont, 100, 250);
document.closePage();
document.save();
outStream.close();
System.out.println("Custom font text rendered successfully.");
}
}Установка и настройка
Добавьте Aspose.Page for Java в Maven:
Package Manager Console Command
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-page</artifactId>
<version>Latest</version>
</dependency>
FAQ
1. Как рассчитываются позиции текста в PsDocument?
Точки координат текста (X, Y) представляют начальную точку базовой линии текстовой строки в пределах рамки страницы PostScript (измеряется в точках PostScript, где 72 точки = 1 дюйм).
2. Можно ли визуализировать текст с градиентными заливками вместо сплошных цветов?
Да. Перед вызовом document.fillText() передайте объект градиентной заливки, такой как java.awt.LinearGradientPaint или java.awt.TexturePaint, в document.setPaint(), чтобы применить к тексту сложные стили заливки.
3. Что произойдет, если запрошенный шрифт отсутствует на хост-сервере?
Если указанный системный шрифт отсутствует и пользовательский путь к шрифту не указан через PsSaveOptions.setAdditionalFontsFolders(), Aspose.Page использует стандартные шрифты PostScript по умолчанию, такие как Courier или Helvetica, чтобы обеспечить завершение создания документа без сбоев.