【问题标题】:File not found when inserting image file into PDF using itext使用 itext 将图像文件插入 PDF 时找不到文件
【发布时间】:2012-02-12 02:15:14
【问题描述】:

如何使用 itext 在 pdf 中添加图像和设计页眉、页脚? 我已经写了这个,但是找不到异常文件。

Image image = Image.getInstance("\resources\image.gif");

谢谢

【问题讨论】:

    标签: java exception pdf pdf-generation itext


    【解决方案1】:

    我使用以下代码从类路径插入图像。当您需要包含无法从公共 url 访问的图像时,通常很有用。

    Image img = Image.getInstance(getClass().getClassLoader().getResource("MyImage.jpg"));
    

    就我而言,我使用的是 maven,所以我将 MyImage.jpg 放在 src/main/resources 中

    【讨论】:

    • 我的情况类似,但我不得不使用Image img = Image.getInstance(MyClassName.class.getResource("/check_mark.jpg"));
    【解决方案2】:

    看看这个example

    import java.io.*;
    import com.lowagie.text.*;
    import com.lowagie.text.pdf.*;
    
    public class CreatePDF{
        public static void main(String arg[])throws Exception{
          try{
                    Document document=new Document();
                    FileOutputStream fos=new FileOutputStream("C:/header-footer.pdf");
                    PdfWriter writer = PdfWriter.getInstance(document, fos);
                    document.open();
                    Image image1 = Image.getInstance("C:/image1.jpg");
                    Image image2 = Image.getInstance("C:/image2.jpg");
    
                    image1.setAbsolutePosition(0, 0);
                    image2.setAbsolutePosition(0, 0);
    
                    PdfContentByte byte1 = writer.getDirectContent();
                    PdfTemplate tp1 = byte1.createTemplate(600, 150);
                    tp1.addImage(image2);
    
                    PdfContentByte byte2 = writer.getDirectContent();
                    PdfTemplate tp2 = byte2.createTemplate(600, 150);
                    tp2.addImage(image1);
    
                    byte1.addTemplate(tp1, 0, 715);
                    byte2.addTemplate(tp2, 0, 0);
    
                    Phrase phrase1 = new Phrase(byte1 + "", FontFactory.getFont(FontFactory.TIMES_ROMAN, 7, Font.NORMAL));
                    Phrase phrase2 = new Phrase(byte2 + "", FontFactory.getFont(FontFactory.TIMES_ROMAN, 7, Font.NORMAL));
    
                    HeaderFooter header = new HeaderFooter(phrase1, true);
                    HeaderFooter footer = new HeaderFooter(phrase2, true);
                    document.setHeader(header);
                    document.setFooter(footer);
                    document.close();
                    System.out.println("File is created successfully showing header and footer.");
                    }
                    catch (Exception ex){
                        System.out.println(ex);
    
                    }
                }
            }
    

    【讨论】:

    • 到 O.D,顺便问一下我如何设置放在 project/resources/images/.jpg 下的图片?
    • 通过使用从驱动器名称开始的绝对路径或根据您开始搜索的位置使用相对路径来终止。
    猜你喜欢
    • 2017-12-19
    • 2017-02-07
    • 2014-06-26
    • 1970-01-01
    • 2015-12-20
    • 2010-12-19
    • 2013-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多