Utiliser du texte dans des documents PostScript (PS) en Java

Ajoutez, formatez et stylisez des éléments de texte dans des documents PostScript (PS/EPS) à l’aide d’Aspose.Page for Java. Effectuez le rendu de texte haute précision par programmation avec un contrôle total sur la sélection des polices (y compris les polices système, TrueType et OpenType), les effets de remplissage et de contour du texte, les transformations affines (mise à l’échelle, rotation, cisaillement), l’espacement personnalisé des caractères et le découpage du texte vectoriel.

 

Aspose.Page for Java fournit des méthodes flexibles de rendu de texte au sein de la classe PsDocument, permettant aux développeurs de générer du texte standard rempli ou du texte en contour le long de chemins vectoriels.

  • Pour effectuer le rendu de paragraphes de texte, de titres et de chaînes d’étiquettes standard et lisibles avec des remplissages unis ou en dégradé, utilisez la méthode PsDocument.fillText().
  • Pour créer des contours de texte vectoriels décoratifs, des titres évidés ou des effets typographiques stylisés, utilisez la méthode PsDocument.outlineText().
  • Pour charger des fichiers de polices externes .ttf ou .otf afin de conserver une identité visuelle exacte dans différents environnements, utilisez DrFont/System Fonts.
  • Pour ajouter des angles, faire pivoter ou incliner des éléments de texte par rapport aux coordonnées de la page du document, utilisez la méthode PsDocument.transform().

Ajouter du texte avec un remplissage standard à une page PostScript

Effectuez le rendu de chaînes de texte simples sur une page PostScript à l’aide des polices système standard et de remplissages de couleur.

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

Créer des contours et tracer des chemins de texte

Dessinez des contours de texte vectoriels sans remplissage intérieur pour créer des en-têtes percutants ou des éléments de conception typographique.

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

Utiliser des polices TrueType/OpenType personnalisées (`.ttf`/`.otf`)

Intégrez des polices de marque non disponibles sur le système en déclarant les chemins des fichiers de polices ou en intégrant des dossiers de polices personnalisées dans 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.");
    }
}

Installation et configuration

Ajoutez Aspose.Page for Java à votre 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. Comment les positions du texte sont-elles calculées dans PsDocument ?

Les points de coordonnées du texte (X, Y) représentent le début de la ligne de base de la chaîne de texte dans le cadre de la page PostScript (mesurés en points PostScript, où 72 points = 1 pouce).

2. Puis-je restituer du texte avec des remplissages en dégradé au lieu de couleurs unies ?

Oui. Transmettez un objet de peinture en dégradé, tel que java.awt.LinearGradientPaint ou java.awt.TexturePaint, à document.setPaint() avant d’appeler document.fillText() afin d’appliquer des styles de remplissage complexes au texte.

3. Que se passe-t-il si une police demandée est absente du serveur hôte ?

Si la police système spécifiée est absente et qu’aucun chemin de police personnalisé n’est fourni via PsSaveOptions.setAdditionalFontsFolders(), Aspose.Page utilise des polices PostScript standard par défaut, telles que Courier ou Helvetica, afin de garantir que la génération du document se termine sans erreur.