JAVA-将JSON转换为PDF的最佳方法

时间:2018-07-10 16:32:18

标签: java json pdf spring-rest

我有一个RESTFul Web服务,该服务将JSON作为输出发送,但是现在我需要修改该服务以返回PDF [基本上将JSON转换为PDF] 我已经读过许多文章,其中指出将JSON转换为XML,然后转换为PDF文档。

我的服务是否可以通过更好的方法将JSON直接转换为PDF并发送该PDF作为响应。

谢谢!

1 个答案:

答案 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();