使用Java将PDF解析成HTML页面进行展示并从页面中提取Json数据设置到Table中

一、前言

        最近在做一个解析PDF文件的功能,试了很方法,最后终于成功,在这里给大家分享一下。很多PDF解析的API或工具都有一些问题,我尝试过如pdf2htmlEX、xpdf、pdfbox等API或工具,效果都不太理想,后来无意中发现了pdfdom,pdfdom是一个JavaAPI,它是在pdfbox的基础上进行了扩展,专门用于解析PDF文件生成HTML文件,效果非常好,下面我们来看一下具体如何实现。

二、pdfdom的POM依赖

    <dependency>
        <groupId>net.sf.cssbox</groupId>
        <artifactId>pdf2dom</artifactId>
        <version>1.6</version>
    </dependency>

    <dependency>
        <groupId>org.apache.pdfbox</groupId>
        <artifactId>pdfbox</artifactId>
        <version>2.0.4</version>
    </dependency>

    <dependency>
        <groupId>org.apache.pdfbox</groupId>
        <artifactId>pdfbox-tools</artifactId>
        <version>2.0.4</version>
    </dependency>

三、上传PDF文件并解析PDF文件

1、简单的JSP页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
    <script type="text/javascript" src="js/jquery-3.2.1.js"></script>
    <script type="text/javascript" src="js/ajaxfileupload.js"></script>
    <script charset="UTF-8" type="text/javascript" src="js/demo.js"></script>
    <style>
        #dataTable tbody tr td {
            border: 1px solid black;
            white-space: nowrap;
            width: auto;
        }
    </style>
</head>
<body>
<div>
    <input id="file" type="file" name="file" value="打开PDF文件">
    <input id="getData" type="button" value="生成表格数据" οnclick="getData()">
</div>
<div>
    <iframe id="text_iframe" src="" name="text_iframe" style="width: 800px;height: 500px;float: left"></iframe>
</div>
<div style="width: 800px;height: 500px;">
    <table id="dataTable" border="0" cellspacing="0"
           style="height: a
  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
在Android开发,可以使用Java解析JSON数据,并将解析后的数据用于应用程序。 以下是一种常见的解析JSON数据的方法: 1. 获取JSON数据 在Android应用程序,可以使用HttpURLConnection或OkHttp等库来获取JSON数据。以下是使用HttpURLConnection获取JSON数据的示例代码: ```java URL url = new URL("http://example.com/data.json"); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.connect(); InputStream inputStream = connection.getInputStream(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); String line; StringBuilder stringBuilder = new StringBuilder(); while ((line = bufferedReader.readLine()) != null) { stringBuilder.append(line); } String jsonString = stringBuilder.toString(); ``` 2. 解析JSON数据 可以使用Java标准库JSONObject和JSONArray类来解析JSON数据。以下是一个简单的解析JSON数据的示例代码: ```java JSONObject jsonObject = new JSONObject(jsonString); JSONArray jsonArray = jsonObject.getJSONArray("data"); for (int i = 0; i < jsonArray.length(); i++) { JSONObject item = jsonArray.getJSONObject(i); String name = item.getString("name"); int age = item.getInt("age"); // ... } ``` 上述代码首先将JSON字符串转换JSONObject,然后从获取名为"data"的JSONArray,遍历这个数组,从每个JSONObject获取需要的数据。 3. 使用解析后的数据 可以将解析后的数据用于应用程序,例如显示在UI控件。以下是一个简单的示例代码: ```java TextView textView = findViewById(R.id.text_view); textView.setText(name + ", " + age); ``` 这是一个简单的Android应用程序使用Java解析JSON数据的示例。在实际应用,可能需要根据具体需求进行更复杂的JSON数据解析数据处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值