Lavorare con il testo nei documenti PostScript (PS) in Java

Aggiungi, formatta e definisci lo stile degli elementi di testo nei documenti PostScript (PS/EPS) utilizzando Aspose.Page for Java. Esegui il rendering di testo ad alta precisione a livello programmatico con controllo completo sulla selezione dei font (inclusi font di sistema, TrueType e OpenType), sugli effetti di riempimento e contorno del testo, sulle trasformazioni affini (ridimensionamento, rotazione, inclinazione), sulla spaziatura personalizzata dei caratteri e sul clipping del testo vettoriale.

 

Aspose.Page for Java offre metodi flessibili per il rendering del testo all’interno della classe PsDocument, consentendo agli sviluppatori di generare testo standard con riempimento o testo delineato lungo percorsi vettoriali.

  • Per eseguire il rendering di paragrafi di testo, titoli ed etichette standard e leggibili con riempimenti uniformi o sfumati, utilizza il metodo PsDocument.fillText().
  • Per creare contorni di testo vettoriali decorativi, titoli cavi o effetti tipografici stilizzati, utilizza il metodo PsDocument.outlineText().
  • Per caricare file di font esterni .ttf o .otf e mantenere un’identità visiva esatta in diversi ambienti, utilizza DrFont/System Fonts.
  • Per aggiungere angoli, ruotare o inclinare gli elementi di testo rispetto alle coordinate della pagina del documento, utilizza il metodo PsDocument.transform().

Aggiungere testo con riempimento standard a una pagina PostScript

Esegui il rendering di semplici stringhe su una pagina PostScript utilizzando font di sistema standard e riempimenti colorati.

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

Delineare e tracciare i percorsi del testo

Disegna contorni di testo vettoriali senza riempimenti interni per creare intestazioni di forte impatto o elementi di design tipografico.

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

Utilizzare font TrueType/OpenType personalizzati (`.ttf`/`.otf`)

Integra font di brand non disponibili nel sistema specificando i percorsi dei file dei font o incorporando cartelle di font personalizzate in 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.");
    }
}

Installazione e configurazione

Aggiungi Aspose.Page for Java al tuo 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. Come vengono calcolate le posizioni del testo in PsDocument?

I punti delle coordinate del testo (X, Y) rappresentano l’inizio della linea di base della stringa di testo all’interno della cornice della pagina PostScript (misurata in punti PostScript, dove 72 punti = 1 pollice).

2. Posso eseguire il rendering del testo con riempimenti sfumati invece che con colori uniformi?

Sì. Passa un oggetto paint con sfumatura, come java.awt.LinearGradientPaint o java.awt.TexturePaint, a document.setPaint() prima di chiamare document.fillText() per applicare stili di riempimento complessi al testo.

3. Cosa succede se il font richiesto non è presente sul server host?

Se un font di sistema specificato è assente e non viene fornito alcun percorso di font personalizzato tramite PsSaveOptions.setAdditionalFontsFolders(), Aspose.Page utilizza i caratteri tipografici PostScript predefiniti standard, come Courier o Helvetica, per garantire che la generazione del documento venga completata senza errori.