تحويل النص إلى PDF

يوفر Aspose.PDF لنظام Android عبر Java القدرة على تحويل ملفات النص إلى تنسيق PDF. في هذه المقالة، نوضح كيف يمكننا بسهولة وكفاءة تحويل ملف نصي إلى PDF باستخدام Aspose.PDF.

عندما تحتاج إلى تحويل ملف نصي إلى PDF، قم في البداية بقراءة ملف النص المصدر في بعض القارئ. لقد استخدمنا StringBuilder لقراءة محتويات ملف النص. قم بإنشاء كائن Document وأضف صفحة جديدة في مجموعة الصفحات. أنشئ كائن جديد من TextFragment ومرر كائن StringBuilder إلى منشئه. أضف فقرة جديدة في مجموعة الفقرات باستخدام كائن TextFragment واحفظ ملف PDF الناتج باستخدام طريقة Save لفئة Document.

تحويل ملف نصي عادي إلى PDF

public void convertTXTtoPDF_Simple () {
        // تهيئة كائن المستند

        File pdfDocumentFileName=new File(fileStorage, "demo_txt.pdf");
        File txtDocumentFileName=new File(fileStorage, "Conversion/rfc822.txt");

        // إنشاء كائن Document عن طريق استدعاء منشئه الفارغ
        document=new Document();

        // إضافة صفحة جديدة في مجموعة الصفحات للمستند
        Page page=document.getPages().add();

        String string;
        StringBuilder stringBuilder=new StringBuilder();
        InputStream is;
        try {
            is=new FileInputStream(txtDocumentFileName);
        } catch (FileNotFoundException e) {
            resultMessage.setText(e.getMessage());
            return;
        }
        BufferedReader reader=new BufferedReader(new InputStreamReader(is));
        while (true) {
            try {
                if ((string=reader.readLine()) == null) break;
            } catch (IOException e) {
                resultMessage.setText(e.getMessage());
                return;
            }
            stringBuilder.append(string).append("\n");
        }
        try {
            is.close();
        } catch (IOException e) {
            resultMessage.setText(e.getMessage());
            return;
        }


        // إنشاء مثيل لـ TextFragment وتمرير النص من كائن القارئ إلى منشئه كحجة
        TextFragment text=new TextFragment(stringBuilder.toString());

        // إضافة فقرة نصية جديدة في مجموعة الفقرات وتمرير كائن TextFragment
        page.getParagraphs().add(text);

        // حفظ ملف PDF الناتج
        try {
            document.save(pdfDocumentFileName.toString());
        } catch (Exception e) {
            resultMessage.setText(e.getMessage());
            return;
        }
        resultMessage.setText(R.string.success_message);
    }

تحويل ملف نصي منسق مسبقًا إلى PDF

    public void convertPreFormattedTextToPdf () {

        File txtDocumentFile=new File(fileStorage, "Conversion/rfc822.txt");
        File pdfDocumentFileName=new File(fileStorage, "demo_txt.pdf");
        Path txtDocumentFileName=Paths.get(txtDocumentFile.toString());

        // قراءة الملف النصي كمصفوفة من السلاسل
        List<String> lines;
        try {
            lines=Files.readAllLines(txtDocumentFileName, ENCODING);
        } catch (IOException e) {
            resultMessage.setText(e.getMessage());
            return;
        }

        // إنشاء كائن Document عن طريق استدعاء منشئه الفارغ
        document=new Document();

        // إضافة صفحة جديدة في مجموعة Pages من Document
        Page page=document.getPages().add();
        int count=4;

        Font font=FontRepository.findFont("Droid Sans Mono");
        // تعيين هوامش اليسار واليمين لتحسين العرض
        page.getPageInfo().getMargin().setLeft(20);
        page.getPageInfo().getMargin().setRight(10);
        page.getPageInfo().getDefaultTextState().setFont(font);
        page.getPageInfo().getDefaultTextState().setFontSize(12);

        for (String line : lines) {
            // التحقق مما إذا كانت السطر يحتوي على حرف "استمارة تغذية"
            // انظر https://en.wikipedia.org/wiki/Page_break
            if (line.startsWith("\f")) {
                page=document.getPages().add();
                page.getPageInfo().getMargin().setLeft(20);
                page.getPageInfo().getMargin().setRight(10);
                page.getPageInfo().getDefaultTextState().setFont(font);
                page.getPageInfo().getDefaultTextState().setFontSize(12);
            } else {
                // إنشاء مثيل من TextFragment و
                // تمرير السطر إلى منشئه
                // كحجة
                TextFragment text=new TextFragment(line);

                // إضافة فقرة نصية جديدة في مجموعة الفقرات وتمرير كائن TextFragment
                // الكائن
                page.getParagraphs().add(text);
            }
        }
        // حفظ ملف PDF الناتج
        try {
            document.save(pdfDocumentFileName.toString());
        } catch (Exception e) {
            resultMessage.setText(e.getMessage());
            return;
        }
        resultMessage.setText(R.string.success_message);
    }