【问题标题】:How to Export an eclipse project with pdf generation code(itext)如何使用 pdf 生成代码 (itext) 导出 eclipse 项目
【发布时间】:2016-12-29 20:57:43
【问题描述】:

我在 SO 上遇到了这个问题。
Java application runs properly in Eclipse, but not as .jar
我的代码中没有任何图像。我通过以下方式创建了一个可运行的 jar 文件,

  • 右键项目,
  • 点击导出,
  • 选择“可运行的 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();
        }

【问题讨论】:

    标签: java eclipse pdf jar itext


    【解决方案1】:

    帮助您解决问题的几个指针

    1. 比较两个 PDF 文件大小,第一个从 eclipse 生成,第二个从 jar 文件生成。是否存在大小差异,如果存在则意味着生成的 jar 缺少 eclipse 项目所具有的东西。
    2. 您是否通过双击运行生成的jar?如果“是”,那么即使 jar 文件中的任何程序抛出任何错误,它也不会在窗口立即关闭时出现(假设这不是 Swing/AWT GUI 应用程序)。 所以我建议从命令提示符运行它,例如: java -jar xyz.jar

    希望这两个能解决您的问题。

    【讨论】:

    • 我已经纠正了一些错误。然后我添加了图像显示代码。现在显示java.io.FileNotFoundException C:\Users\Pradeep\Desktop\resources\logo.jpg (The system cannot find the path specified)
    • 尝试检查 logo.jpg 是否存在。如果存在
    • docs.oracle.com/javase/7/docs/api/java/io/…。 JavaDoc 说,即使尝试打开只读文件进行写入,也会引发异常
    • 是的。它存在于resources文件夹中。它在eclipse中可以正常工作。但是当导出到jar文件时,它会导致异常。
    • 理想情况下,绝对路径必须有效,除非从给定位置访问资源时出现问题。您可以尝试在C盘新建一个文件夹,添加image和jar文件(程序必须更新为指向最新路径)并运行程序。
    猜你喜欢
    • 1970-01-01
    • 2014-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多