العمل مع النص في مستندات 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>

الأسئلة الشائعة

1. كيف يتم حساب مواضع النص في PsDocument؟

تمثل نقاط إحداثيات النص (X, Y) بداية خط الأساس لسلسلة النص داخل إطار صفحة PostScript (ويتم قياسها بنقاط PostScript، حيث 72 نقطة = 1 بوصة).

2. هل يمكنني عرض النص بتعبئات متدرجة بدلاً من الألوان الصلبة؟

نعم. مرر كائن طلاء متدرج، مثل java.awt.LinearGradientPaint أو java.awt.TexturePaint، إلى document.setPaint() قبل استدعاء document.fillText() لتطبيق أنماط تعبئة معقدة على النص.

3. ماذا يحدث إذا كان الخط المطلوب غير موجود على الخادم المضيف؟

إذا كان خط النظام المحدد غير موجود ولم يتم توفير مسار خط مخصص عبر PsSaveOptions.setAdditionalFontsFolders()، فإن Aspose.Page يستخدم خطوط PostScript القياسية الافتراضية، مثل Courier أو Helvetica، لضمان اكتمال إنشاء المستند دون حدوث أخطاء.