svg圖片(url)插入pdf檔案--itext+batik
阿新 • • 發佈:2019-01-27
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>
注意jar版本// 獲取操作的頁面 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);