在Java中使用嵌入式SVG创建PDF文件

在Java中使用嵌入式SVG创建PDF文件,java,pdfbox,Java,Pdfbox,我有一个SVG文件,我需要创建一个嵌入SVG的PDF。我尝试使用ApachePDFBox(见下文),但我得到一个错误,即“不支持SVG文件”。有没有关于如何使用嵌入式SVG创建PDF的想法?它不必与PDFBox一起使用,而且我不希望将SVG转换为图像文件 PDDocument doc = new PDDocument(); PDPage page = new PDPage(); doc.addPage(page); PDImageXObject pdIm

我有一个SVG文件,我需要创建一个嵌入SVG的PDF。我尝试使用ApachePDFBox(见下文),但我得到一个错误,即“不支持SVG文件”。有没有关于如何使用嵌入式SVG创建PDF的想法?它不必与PDFBox一起使用,而且我不希望将SVG转换为图像文件

    PDDocument doc = new PDDocument();
    PDPage page = new PDPage();
    doc.addPage(page);
    
    PDImageXObject pdImage = PDImageXObject.createFromFile("C:/chart.svg", doc);
    PDPageContentStream contentStream = new PDPageContentStream(doc, page);
    contentStream.drawImage(pdImage, 70, 250);
    contentStream.close();
    doc.save("C:/chart.pdf");
    doc.close();
线程“main”java.lang.IllegalArgumentException中出现异常:Image 不支持的类型:位于的chart.svg org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject.createFromFileByExtension(PDImageXObject.java:257) 在 org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject.createFromFile(PDImageXObject.java:202) 位于testjava.TestPdfBox.main(TestPdfBox.java:18)


也许可以试试jasper reports,谢谢,我试过了,但是因为我没有数据,只有一张图片,所以我没有办法创建一个页面(没有数据)并添加图片。最后我用图表创建了一个“没有数据”的页面,谢谢你在PDF中指向jasperSVG。或者您想将SVG转换为矢量图形,这是您的问题吗?如果这是你想要的,你可以将Apache BATIK与我嵌入了一个SVG和JasperReports结合起来,你是说SVG是在幕后转换的吗?也许可以试试jasper reports,谢谢,我试过了,但是因为我没有数据,只有一个图像,所以我找不到创建页面(没有数据)和添加图像的方法。我最终创建了一个“无数据”页面和图表,感谢您指出jasperSVG在PDF中不受支持。或者您想将SVG转换为矢量图形,这是您的问题吗?如果这是您想要的,您可以将Apache BATIK与我嵌入的SVG与JasperReports结合起来,您是说SVG是在幕后转换的吗?