استبدال النص في ملف PDF

استبدال النص في ملف PDF موجود (الواجهات)

من أجل استبدال النص في ملف PDF موجود، تحتاج إلى إنشاء كائن من فئة pdfContentEditor، وربط ملف PDF مدخل باستخدام طريقة bindPdf. بعد ذلك، تحتاج إلى استدعاء طريقة replaceText. تحتاج إلى حفظ ملف PDF المحدث باستخدام طريقة save من فئة pdfContentEditor. يوضح لك مقتطف الشفرة التالي كيفية استبدال النص في ملف PDF موجود.

package com.aspose.pdf.examples;

import com.aspose.pdf.TextState;
import com.aspose.pdf.facades.PdfContentEditor;
import com.aspose.pdf.facades.ReplaceTextStrategy;

public class PdfContentEditorText {

    private static String _dataDir = "/home/aspose/pdf-examples/Samples/";

    public static void ReplaceText01(){
        PdfContentEditor editor = new PdfContentEditor();
        editor.bindPdf(_dataDir+"sample.pdf");        
        editor.replaceText("Value", "Label");

        // حفظ ملف الإخراج
        editor.save(_dataDir+"replaced_text_demo.pdf");
    }    

تحقق من كيف تبدو في المستند الأصلي:

استبدال النص

وتحقق من النتيجة بعد استبدال النص:

نتيجة استبدال النص

في المثال الثاني، سترى كيف يمكنك، بالإضافة إلى استبدال النص، زيادة أو تقليل حجم الخط:

public static void ReplaceText02(){
        PdfContentEditor editor = new PdfContentEditor();
        editor.bindPdf(_dataDir+"sample.pdf");        
        editor.replaceText("Value", "Label", 12);

        // حفظ ملف الإخراج
        editor.save(_dataDir+"replaced_text_demo.pdf");
    }    

لإمكانيات أكثر تقدمًا للعمل مع نصوصنا، سنستخدم طريقة TextState. باستخدام هذه الطريقة، يمكننا جعل النص عريض، مائل، ملون، وهكذا.

public static void ReplaceText03(){
        PdfContentEditor editor = new PdfContentEditor();
        editor.bindPdf(_dataDir+"sample.pdf");        
        TextState textState = new TextState();
        textState.setFontSize(12);
        editor.replaceText("Value", "Label", textState);

        // حفظ ملف الإخراج
        editor.save(_dataDir+"replaced_text_demo.pdf");
    }    

في حالة الحاجة لاستبدال كل النص المحدد في المستند، استخدم جزء الشيفرة البرمجية التالي. أي أن الاستبدال للنص سيتم أينما واجه النص المحدد للاستبدال، وسيتم أيضًا حساب عدد مثل هذه الاستبدالات.

    public static void ReplaceText04()
    {
        PdfContentEditor editor = new PdfContentEditor();
        editor.bindPdf(_dataDir + "sample.pdf");
        int count = 0;
        while (editor.replaceText("Value", "Label")) count++;

        System.out.println(count+" occurrences have been replaced.");

        // احفظ ملف الإخراج
        editor.save(_dataDir + "PdfContentEditorDemo04.pdf");
    }

استبدال كل النص

يظهر جزء الشيفرة البرمجية التالي كيفية إجراء كل استبدالات النص ولكن في صفحة محددة من المستند.

    public static void ReplaceText05()
    {
        PdfContentEditor editor = new PdfContentEditor();
        editor.bindPdf(_dataDir + "sample.pdf");
        int count = 0;
        while (editor.replaceText("9999", 2, "ABCDE")) count++;
        System.out.println(count+" occurrences have been replaced.");

        // احفظ ملف الإخراج
        editor.save(_dataDir + "PdfContentEditorDemo05.pdf");
    }

في مقتطف الشيفرة التالي، سنوضح كيفية استبدال، على سبيل المثال، رقم معين بالحروف التي نحتاجها.

    public static void ReplaceText06()
    {
        PdfContentEditor editor = new PdfContentEditor();
        ReplaceTextStrategy replaceTextStrategy = new ReplaceTextStrategy();
        replaceTextStrategy.setRegularExpressionUsed(true);
        replaceTextStrategy.setReplaceScope(ReplaceTextStrategy.Scope.ReplaceAll);
        editor.setReplaceTextStrategy(replaceTextStrategy);
        
        editor.bindPdf(_dataDir + "sample.pdf");
        editor.replaceText("\\d{4}", "ABCDE");

        // حفظ ملف الإخراج
        editor.save(_dataDir + "PdfContentEditorDemo06.pdf");
    }

}