Trabalhar com texto em documentos PostScript (PS) em Java

Adicione, formate e estilize elementos de texto em documentos PostScript (PS/EPS) usando o Aspose.Page for Java. Renderize texto de alta precisão programaticamente com controle total sobre a seleção de fontes (incluindo fontes do sistema, TrueType e OpenType), efeitos de preenchimento e contorno de texto, transformações afins (dimensionamento, rotação, inclinação), espaçamento personalizado entre caracteres e recorte de texto vetorial.

 

O Aspose.Page for Java fornece métodos flexíveis de renderização de texto na classe PsDocument, permitindo que os desenvolvedores gerem texto padrão preenchido ou texto com contorno ao longo de caminhos vetoriais.

  • Para renderizar parágrafos de texto, títulos e strings de rótulos padrão e legíveis com preenchimentos sólidos ou gradientes, use o método PsDocument.fillText().
  • Para criar contornos de texto vetoriais decorativos, títulos vazados ou efeitos tipográficos estilizados, use o método PsDocument.outlineText().
  • Para carregar arquivos de fontes externos .ttf ou .otf e manter uma identidade visual exata em diferentes ambientes, use DrFont/System Fonts.
  • Para adicionar ângulos, girar ou inclinar elementos de texto em relação às coordenadas da página do documento, use o método PsDocument.transform().

Adicionar texto com preenchimento padrão a uma página PostScript

Renderize strings simples em uma página PostScript usando fontes do sistema padrão e preenchimentos coloridos.

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.");
    }
}

Criar contornos e traçar caminhos de texto

Desenhe contornos de texto vetoriais sem preenchimentos internos para criar cabeçalhos de alto impacto ou elementos de design tipográfico.

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.");
    }
}

Usar fontes TrueType/OpenType personalizadas (`.ttf`/`.otf`)

Integre fontes de marca que não estejam disponíveis no sistema especificando os caminhos dos arquivos de fontes ou incorporando pastas de fontes personalizadas em 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.");
    }
}

Instalação e configuração

Adicione o Aspose.Page for Java ao seu 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. Como as posições do texto são calculadas em PsDocument?

Os pontos de coordenadas do texto (X, Y) representam o início da linha de base da sequência de texto dentro da moldura da página PostScript (medidos em pontos PostScript, onde 72 pontos = 1 polegada).

2. Posso renderizar texto com preenchimentos em gradiente em vez de cores sólidas?

Sim. Passe um objeto de pintura com gradiente, como java.awt.LinearGradientPaint ou java.awt.TexturePaint, para document.setPaint() antes de chamar document.fillText() para aplicar estilos de preenchimento complexos ao texto.

3. O que acontece se uma fonte solicitada estiver ausente no servidor host?

Se uma fonte do sistema especificada estiver ausente e nenhum caminho de fonte personalizado for fornecido por meio de PsSaveOptions.setAdditionalFontsFolders(), o Aspose.Page usará tipos de letra PostScript padrão, como Courier ou Helvetica, para garantir que a geração do documento seja concluída sem interrupções.