1. 程式人生 > >svg圖片(url)插入pdf檔案--itext+batik

svg圖片(url)插入pdf檔案--itext+batik

mop.xml--新增相關的依賴

    <dependency>
      <groupId>org.apache.xmlgraphics</groupId>
      <artifactId>xmlgraphics-commons</artifactId>
      <version>2.0.1</version>
    </dependency>
    <dependency>
      <groupId>org.apache.xmlgraphics</groupId>
      <artifactId>batik-svggen</artifactId>
      <version>1.8</version>
    </dependency>
    <dependency>
      <groupId>org.apache.xmlgraphics</groupId>
      <artifactId>batik-xml</artifactId>
      <version>1.8</version>
    </dependency>
    <dependency>
      <groupId>org.apache.xmlgraphics</groupId>
      <artifactId>batik-rasterizer</artifactId>
      <version>1.8</version>
    </dependency>
    
// 獲取操作的頁面
PdfContentByte under = pdfStamper.getOverContent(pageNo);
PdfTemplate template = under.createTemplate(900, 520);//建立指定大小的template 和生成的svg檔案大小一致
//設定字型格式和大小
template.setFontAndSize(baseFont,14);			
//生成awt Graphics2D
Graphics2D g2d = new PdfGraphics2D(template, 900, 520);
g2d.setFont(JFreeChartHandler.getFont(java.awt.Font.PLAIN,14f));
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
SVGDocument svgDocument = factory.createSVGDocument(url);//svg圖片的url
GraphicsNode graphNode = builder.build(ctx, svgDocument);
//畫svg到畫布
graphNode.paint(g2d);
g2d.dispose();
//生成Img
ImgTemplate img = new ImgTemplate(template);
//縮放圖片  根據pdf設定的域的大小縮放圖片
img.scaleToFit(signRect.getWidth(), signRect.getHeight());
//設定圖片的絕對位置
img.setAbsolutePosition(x,y);
//新增圖片到pdf Document
under.addImage(img);
注意jar版本