解析PDF等文档里面的内容,非常全,简单易懂

直接上代码:

解析文档的依赖:

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

 Controller代码:

     /**
     * 上传文件
     */
    @SaIgnore
    @PostMapping("/upload")
    @ResponseBody
    public SysFileDetailsBo addSave(@RequestParam("file") MultipartFile file, SysFileDetailsBo details) throws IOException {
        //TODO: 返回的URL:去除profile: C:/uploadPath之后的路径,在nginx里面的nginx.conf文件中配置的路径也是这样配置
        // 系统上传文件路径
        String filePath = FileConfig.getUploadPath();
        String originalFilename = file.getOriginalFilename();
        // 上传并返回新文件名称
        String fileName = FileUploadUtils.upload(filePath, file);
        details.setFilePath(fileName);
        details.setFileName(originalFilename);
        //这里我需要发布到Windows服务器上拼接可供前端实现浏览器在线浏览的URL返回
        details.setFilePath("http://xxx.xxx.xx.xx:80/upload/" + fileName);
        //加载PDF文档
        File pdfFile = new File(filePath + "/" + fileName);
        PDDocument document = PDDocument.load(pdfFile);
        // 创建PDFTextStripper对象来提取文本
        PDFTextStripper pdfTextStripper = new PDFTextStripper();
        String text = pdfTextStripper.getText(document);
        details.setFileDetails(text);
        document.close();
        //这里是把文档内容、文档名称、URL插入到数据库的方法;因为我前端需要我的URL所以给他返回过去所以就注掉了
        //return toAjax(sysFileDetailsService.insertByBo(details));
        return details;
    }

 File Config工具类:

public class FileConfig {

    /** 项目名称 */
    private static String name;

    /** 版本 */
    private static String version;

    /** 版权年份 */
    private static String copyrightYear;

    /** 实例演示开关 */
    private static boolean demoEnabled;

    /** 上传路径 */
    @Value(注入你自己在配置文件的路径)
    private static String profile;

    /** 获取地址开关 */
    private static boolean addressEnabled;

    public static String getName()
    {
        return name;
    }

    public void setName(String name)
    {
        FileConfig.name = name;
    }

    public static String getVersion()
    {
        return version;
    }

    public void setVersion(String version)
    {
        FileConfig.version = version;
    }

    public static String getCopyrightYear()
    {
        return copyrightYear;
    }

    public void setCopyrightYear(String copyrightYear)
    {
        FileConfig.copyrightYear = copyrightYear;
    }

    public static boolean isDemoEnabled()
    {
        return demoEnabled;
    }

    public void setDemoEnabled(boolean demoEnabled)
    {
        FileConfig.demoEnabled = demoEnabled;
    }

    public static String getProfile()
    {
        return profile;
    }

    public void setProfile(String profile)
    {
        FileConfig.profile = profile;
    }

    public static boolean isAddressEnabled()
    {
        return addressEnabled;
    }

    public void setAddressEnabled(boolean addressEnabled)
    {
        FileConfig.addressEnabled = addressEnabled;
    }

    /**
     * 获取导入上传路径
     */
    public static String getImportPath()
    {
        return getProfile() + "/import";
    }

    /**
     * 获取头像上传路径
     */
    public static String getAvatarPath()
    {
        return getProfile() + "/avatar";
    }

    /**
     * 获取下载路径
     */
    public static String getDownloadPath()
    {
        return getProfile() + "/download/";
    }

    /**
     * 获取上传路径
     */
    public static String getUploadPath()
    {
        return getProfile() + "/upload";
    }

}

这里结束了,希望大家给留一个赞,感谢大家

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值