【问题标题】:Add image in pdf using itext使用 itext 在 pdf 中添加图像
【发布时间】:2014-08-18 03:35:08
【问题描述】:

我正在创建 Spring MVC Web 应用程序。我的图像位于我的 MVC 应用程序的 webapp/resources/img/logo.png 文件夹中。如何将图像从该文件夹加载到 pdf。

我尝试使用此代码。但它引发了 java.io.FileNotFoundException。

  String imageUrl = "webapp/resources/img/logo.png"

  logo = Image.getInstance(imageUrl);

【问题讨论】:

    标签: spring spring-mvc pdf-generation itext


    【解决方案1】:

    增强你找一个例子我是怎么做的:

    Document document = new Document();
    PdfWriter.getInstance(document, new FileOutputStream("C:\\test.pdf"));
    document.open();
    
    Image img = Image.getInstance(ClassLoader.getSystemResource("attention-icon.jpg"));
    img.scaleAbsolute(10, 10);
    
    Phrase phrase = new Phrase();
    phrase.add(new Chunk(img, 0,0));
    
    document.add(new Paragraph(phrase));
    document.close();
    

    我认为你的情况是文件“webapp/resources/img/logo.png”是相对的。尝试创建一个文件对象来检查它的位置:

    File logo = new File("webapp/resources/img/logo.png");
    if(! logo.exists()){
        LOG.warn("File " + logo.getName() + " not exists");
    }
    

    【讨论】:

    • 这对我不起作用。在您的示例中,您将图像“attention-icon.jpg”存储在哪里?
    • 虽然正确的答案。您可以将图标放在不同的位置:在 Web 应用程序的工作目录中,在您的 jar 中,... 这个问题与 iText 无关。这只是知道如何从 Web 应用程序访问资源的问题。
    • 在我的例子中, attention-icon.jpg 是类路径的一部分。就像布鲁诺所说的那样,问题是从您的应用程序类路径中定位 Web 应用程序范围内的资源。我确信 spring 提供了这种功能。
    • 只是一个侧面的想法。 OP 提到该图像位于 webapp 文件夹中(而不是在 WEB-INF 下)。 webapp 文件夹中的资源文件夹不是真正的资源文件夹。将它放在 src/main/resources 下是一个好主意,然后使用资源文件夹中的相对路径加载它。然后它将在类路径上,服务器将毫无问题地找到它。
    猜你喜欢
    • 2017-12-19
    • 1970-01-01
    • 2010-12-22
    • 1970-01-01
    • 2018-04-08
    • 1970-01-01
    • 1970-01-01
    • 2019-03-26
    • 2013-03-22
    相关资源
    最近更新 更多