Робота з текстом у документах PostScript (PS) у Java

Додавайте, форматуйте та стилізуйте текстові елементи в документах PostScript (PS/EPS) за допомогою Aspose.Page для Java. Виконуйте високоточний програмний рендеринг тексту з повним контролем вибору шрифтів (включно із системними шрифтами, шрифтами TrueType та OpenType), ефектами заливки й обведення тексту, афінними перетвореннями (масштабування, обертання, нахил), користувацьким інтервалом між символами та обрізанням за векторним текстом.

 

Aspose.Page для 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 для 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), щоб забезпечити завершення генерації документа без помилок.