Работа с текстом в документах 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, чтобы обеспечить завершение создания документа без сбоев.