我有一个RESTFul Web服务,该服务将JSON作为输出发送,但是现在我需要修改该服务以返回PDF [基本上将JSON转换为PDF] 我已经读过许多文章,其中指出将JSON转换为XML,然后转换为PDF文档。
我的服务是否可以通过更好的方法将JSON直接转换为PDF并发送该PDF作为响应。
谢谢!
答案 0 :(得分:0)
添加以下Maven依赖项:
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.10</version>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.4</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.56</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>
使用Gson美化JSON:
Gson gson = new GsonBuilder().setPrettyPrinting().create();
JsonParser jp = new JsonParser();
JsonElement je = jp.parse(uglyJSONString);
String prettyJsonString = gson.toJson(je);
使用以下脚本创建PDF文件:
Document document = new Document();
PdfWriter.getInstance(document, new FileOutputStream("myJSON.pdf"));
document.open();
Font font = FontFactory.getFont(FontFactory.COURIER, 16, BaseColor.BLACK);
Chunk chunk = new Chunk(prettyJsonString, font);
document.add(chunk);
document.close();