Как экспортировать проект eclipse с кодом генерации pdf(itext)

Я наткнулся на этот вопрос на SO.


Приложение Java работает правильно в Eclipse, но не как .jar


У меня нет никаких изображений в коде.Я создал файл jar следующим образом,

  • Щелкните правой кнопкой мыши на project,
  • Нажмите Кнопку Экспорт,
  • выберите » запускаемый JAR-файл»,
  • Извлеките необходимые библиотеки в сгенерированный JAR

Когда я бегу .jar файл на моем рабочем столе, файл PDF создается.
Но он показывает следующую ошибку

Adobe Reader не удалось открыть » Result-itext.pdf ‘ потому что это либо
тип файла не поддерживается или файл поврежден

мой код:

try {
            PdfWriter w = new PdfWriter("Result-itext.pdf");
            PdfDocument d = new PdfDocument(w);
            Document doc = new Document(d); 
           /** Added **/
            Image img = new Image(ImageDataFactory.create(logo));           
            img.setHorizontalAlignment(HorizontalAlignment.CENTER);
            doc.add(img);                           
          /** Added **/
            doc.add(new Paragraph("Test Name : Hello World").setTextAlignment(TextAlignment.CENTER));
            doc.add(new Paragraph("Maximum Marks : 20").setTextAlignment(TextAlignment.CENTER));
            doc.add(new Paragraph("RESULTS").setBold().setTextAlignment(TextAlignment.CENTER));
            PdfFont font = PdfFontFactory.createFont(FontConstants.HELVETICA_OBLIQUE);

            Table t = new Table(3);
            t.setWidthPercent(70);
            t.setHorizontalAlignment(HorizontalAlignment.CENTER);
            t.setFont(font);
            Cell cell = new Cell().add("User-ID").setTextAlignment(TextAlignment.CENTER).setFont(font);
            t.addCell(cell);
            cell = new Cell().add("User-Name").setTextAlignment(TextAlignment.CENTER).setFont(font);
            t.addCell(cell);
            cell = new Cell().add("Marks").setTextAlignment(TextAlignment.CENTER).setFont(font);
            t.addCell(cell);

            PdfFont font1 = PdfFontFactory.createFont(FontConstants.TIMES_ROMAN);           
            t.setFont(font1);
            ArrayList<String> a = new ArrayList<String>();
            for(int i=0;i<3;i++){
                a.add(String.valueOf(i));a.add("jack");a.add(String.valueOf(i+10));
            }

            for(int i=0;i<9;i++){
                cell = new Cell().add(a.get(i)).setTextAlignment(TextAlignment.CENTER);
                t.addCell(cell);
            }
            doc.add(t);
            doc.close();
            JOptionPane.showMessageDialog(null, "Created file");
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

1 ответ

  1. Пара указателей, чтобы помочь с вашей проблемой

    1. Сравните два размера файла PDF, первый из которых сгенерирован из eclipse, второй сгенерирован из jar-файла. Есть ли разница в размере, если есть, то это означает, что сгенерированный jar отсутствует что-то, что проект eclipse имеет.
    2. Вы запускаете сгенерированную банку, дважды щелкнув по ней? Если «да», то даже если есть какая-либо ошибка, вызванная какой-либо программой в файле jar, он не появится, как окно закрывается сразу (предполагая, что это не Swing/AWT GUI приложение).
      Поэтому я предлагаю запустить его из командной строки, как:
      java -jar xyz.jar

    Надеюсь, эти два должны решить вашу проблему.