как сделать сочетание текста и картинок PDF с помощью itext? - PullRequest
0 голосов
/ 03 мая 2020

У меня проблема. Я сделал приложение, которое получает некоторые текстовые данные от пользователя и превращает его в PDF. Теперь я решил добавить изображения (подписи пользователей) в свое приложение, которые должны быть показаны в файле PDF. В первом упражнении приложение получает текст и подписи, затем во втором упражнении будет показано, что его нужно проверить, а затем есть кнопка для преобразования текста и изображений в PDF-файл. текст будет сохранен, а изображения нет. (изображения передаются между действиями с использованием методов putExtra и getExtra!). Я должен извиниться, потому что мои коды слишком много, но я просто оставляю здесь метод getExtra и метод pdf creator. вот мои коды во втором упражнении: (я удалил методы сохранения изображений!)

Intent i = getIntent();

        byte[] bytearray_signaling = i.getByteArrayExtra("signaturesignaling");
        byte[] bytearray_navgan = i.getByteArrayExtra("signaturenavgan");
        byte[] bytearray_driver = i.getByteArrayExtra("signaturedriver");

        bitmap4= BitmapFactory.decodeByteArray(bytearray_signaling,0,bytearray_signaling.length);
        bitmap5= BitmapFactory.decodeByteArray(bytearray_navgan,0,bytearray_navgan.length);
        bitmap6= BitmapFactory.decodeByteArray(bytearray_driver,0,bytearray_driver.length);



private void Save111() {

        todayDate = new SimpleDateFormat("ddMMyyyy").format(new java.util.Date());
        todayTime = new SimpleDateFormat("HH:mm").format(new java.util.Date());

        t111 = new File(Environment.getExternalStorageDirectory() + "/Navgan/111/");

        if (!t111.exists()) {
            t111.mkdirs();
            Toast.makeText(this, "تحویل گیری 111 انجام شد", Toast.LENGTH_SHORT).show();
            document = new Document();
            tFileName = "111";
            tFilePath = Environment.getExternalStorageDirectory() + "/Navgan/111/" + todayDate + ".pdf";
            try {
                PdfWriter.getInstance(document, new FileOutputStream(tFilePath));
                document.open();
                Paragraph p111 = new Paragraph();
                BaseFont font = BaseFont.createFont("assets/fonts/Roya.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
                paraFont = new Font(font, 13);
                tFileText = ("سازمان حمل و نقل\n\n" +
                        "شماره قطار: " + V0 + "\n\n" +
                        "شیفت: " + V1 + "\n\n" +
                        "نوع مجوز: " + V2 + "\n\n" +
                        "موارد معیوب: \n" + V3 + "\n\n" +
                        "نماینده سیگنالینگ: " + V4 + "\n\n" +
                        "نماینده ناوگان: " + V5 + "\n\n" +
                        "نماینده سیر و حرکت: " + V6 + "\n\n\n" +
                        "تاریخ تحویل گیری: " + todayDate + "\n\n" +
                        "زمان تحویل گیری: " + todayTime + "\n\n");
                p111.setFont(paraFont);
                p111.add(tFileText);

                PdfPTable table = new PdfPTable(1);
                PdfPCell cell = new PdfPCell(p111);

                cell.setBorderWidthRight(1f);
                cell.setBorderWidthLeft(1f);
                cell.setBorderWidthTop(1f);
                cell.setBorderWidthBottom(1f);

                cell.setRunDirection(PdfWriter.RUN_DIRECTION_RTL);
                table.addCell(cell);

                document.add(table);
                document.close();


            } catch (Exception e) {

            }
        } else {
            document = new Document();
            tFileName = "111";
            tFilePath = Environment.getExternalStorageDirectory() + "/Navgan/111/" + todayDate + ".pdf";
            Toast.makeText(this, "تحویل گیری 111 انجام شد", Toast.LENGTH_SHORT).show();
            try {
                PdfWriter.getInstance(document, new FileOutputStream(tFilePath));
                document.open();
                Paragraph p111 = new Paragraph();
                BaseFont font = BaseFont.createFont("assets/fonts/Roya.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
                paraFont = new Font(font, 13);
                tFileText = ("سازمان حمل و نقل ریلی شهرداری شیراز\n\n" +
                        "شماره قطار: " + V0 + "\n\n" +
                        "شیفت: " + V1 + "\n\n" +
                        "نوع مجوز: " + V2 + "\n\n" +
                        "موارد معیوب: \n" + V3 + "\n\n" +
                        "نماینده سیگنالینگ: " + V4 + "\n\n" +
                        "نماینده ناوگان: " + V5 + "\n\n" +
                        "نماینده سیر و حرکت: " + V6 + "\n\n\n" +
                        "تاریخ تحویل گیری: " + todayDate + "\n\n" +
                        "زمان تحویل گیری: " + todayTime + "\n\n");
                p111.setFont(paraFont);
                p111.add(tFileText);
                Image i = Image.getInstance("image4.bmp");


                PdfPTable table = new PdfPTable(1);
                PdfPCell cell = new PdfPCell(p111);

                cell.setBorderWidthRight(1f);
                cell.setBorderWidthLeft(1f);
                cell.setBorderWidthTop(1f);
                cell.setBorderWidthBottom(1f);

                cell.setRunDirection(PdfWriter.RUN_DIRECTION_RTL);
                table.addCell(cell);

                document.add(table);
                document.close();


            } catch (Exception e) {

            }


        }
    }

, если понадобится больше объяснений, я буду готов. спасибо всем дорогие друзья.

...