You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用iText7将SVG添加至PDF?附iText5实现代码

当然可以用iText7实现SVG添加到PDF的需求!相比iText5,iText7专门推出了itext7-svg模块,让SVG的处理更加模块化、简洁。下面我会给你对应iText5实现的iText7版本代码,以及关键步骤的说明:

第一步:引入依赖

首先确保你的项目中包含iText7核心库和SVG处理模块(以Maven为例):

<dependency>
    <groupId>com.itextpdf</groupId>
    <artifactId>itext7-core</artifactId>
    <version>7.2.5</version>
    <type>pom</type>
</dependency>
<dependency>
    <groupId>com.itextpdf</groupId>
    <artifactId>svg</artifactId>
    <version>7.2.5</version>
</dependency>

第二步:实现代码示例

对应你提供的iText5代码,iText7的实现会更简洁,不需要手动解析SVG文档获取宽高(模块会自动处理,也支持自定义尺寸):

import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Image;
import com.itextpdf.svg.converter.SvgConverter;

import java.io.InputStream;
import java.net.URL;

public class SvgToPdfExample {
    public static void main(String[] args) throws Exception {
        // 输出PDF路径
        String pdfPath = "output.pdf";
        // SVG资源URL
        URL svgUrl = new URL("your-svg-url-here");

        // 初始化PDF文档
        PdfDocument pdfDoc = new PdfDocument(new PdfWriter(pdfPath));
        Document doc = new Document(pdfDoc);

        try (InputStream svgStream = svgUrl.openStream()) {
            // 将SVG转换为PdfFormXObject,iText7会自动解析SVG的宽高
            Image svgImage = SvgConverter.convertToImage(svgStream, pdfDoc);
            
            // 如果需要自定义尺寸,可以手动设置(比如缩放)
            // svgImage.scaleToFit(500, 500);
            
            // 将SVG图片添加到PDF文档
            doc.add(svgImage);
        }

        // 关闭文档
        doc.close();
    }
}

关键说明

  • 自动解析尺寸:SvgConverter.convertToImage()方法会自动读取SVG根元素的width和height属性,无需像iText5那样手动解析XML文档。
  • 自定义尺寸:如果SVG没有指定宽高,或者需要调整显示大小,可以通过scaleToFit()、setWidth()/setHeight()等方法修改图片尺寸。
  • 资源处理:iText7的SVG模块会自动处理SVG中的内嵌资源(如字体、图片),比iText5的兼容性更好。

如果你的SVG有特殊样式或复杂结构,iText7的SVG模块也支持大部分标准SVG特性,能很好地兼容常见的SVG文件。

内容的提问来源于stack exchange,提问作者Ap Tsi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:01:47