背景

我们在日常编程中,可能会遇到,无法直接传送PDF文件的情况,这就需要将PDF转成字符串。待接收方收到字符串再将字符串转成PDF文件。

代码


import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;public class PdfToBinaryUtil {static BASE64Encoder encoder = new BASE64Encoder();static BASE64Decoder decoder = new BASE64Decoder();public static void main(String[] args) {String base64String = getPDFBinary("q.pdf");System.out.println(base64String);//FileTool.writeStringToFile(base64String, "1.txt");//FileTool可参考https://blog.csdn.net/Kangyucheng/article/details/86981414base64StringToPDF(base64String, "1.pdf");}public static String getPDFBinary(String filePath) {File file = new File(filePath);try {FileInputStream fileInputStream = new FileInputStream(file);BufferedInputStream bufferInputStream = new BufferedInputStream(fileInputStream);ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();BufferedOutputStream bout = new BufferedOutputStream(byteArrayOutputStream);byte[] buffer = new byte[1024];int len = bufferInputStream.read(buffer);while (len != -1) {bout.write(buffer, 0, len);len = bufferInputStream.read(buffer);}bout.flush();byte[] bytes = byteArrayOutputStream.toByteArray();bufferInputStream.close();return encoder.encodeBuffer(bytes).trim();} catch (Exception e) {e.printStackTrace();}return null;}public static void base64StringToPDF(String base64String, String newFile) {try {byte[] bytes = decoder.decodeBuffer(base64String);ByteArrayInputStream bais = new ByteArrayInputStream(bytes);BufferedInputStream bin = new BufferedInputStream(bais);File file = new File(newFile);FileOutputStream fout = new FileOutputStream(file);BufferedOutputStream bout = new BufferedOutputStream(fout);byte[] buffers = new byte[1024];int len = bin.read(buffers);while (len != -1) {bout.write(buffers, 0, len);len = bin.read(buffers);}bout.flush();bout.close();} catch (Exception e) {e.printStackTrace();}}}

输出:

节选最后几行

MDAwMDAgbg0KMDAwMDgwNDEyNSAwMDAwMCBuDQowMDAwODA0NDY1IDAwMDAwIG4NCjAwMDA4MDQ3
MzUgMDAwMDAgbg0KMDAwMDgwNDk2MyAwMDAwMCBuDQp0cmFpbGVyDQo8PC9TaXplIDQ4MC9Sb290
IDEgMCBSL0luZm8gODkgMCBSL0lEWzxGQkUzQUE2MUI2RDk2MDQwQTQwMTUwNjI0OEQ5RjY5Qj48
RkJFM0FBNjFCNkQ5NjA0MEE0MDE1MDYyNDhEOUY2OUI+XSA+Pg0Kc3RhcnR4cmVmDQo4MDYyNjAN
CiUlRU9GDQp4cmVmDQowIDANCnRyYWlsZXINCjw8L1NpemUgNDgwL1Jvb3QgMSAwIFIvSW5mbyA4
OSAwIFIvSURbPEZCRTNBQTYxQjZEOTYwNDBBNDAxNTA2MjQ4RDlGNjlCPjxGQkUzQUE2MUI2RDk2
MDQwQTQwMTUwNjI0OEQ5RjY5Qj5dIC9QcmV2IDgwNjI2MC9YUmVmU3RtIDgwNDk2Mz4+DQpzdGFy
dHhyZWYNCjgxNjAyMA0KJSVFT0Y=

【java】将PDF转成字符串相关推荐

  1. java将PDF转成字符串_【java】将PDF转成字符串

    背景 我们在日常编程中,可能会遇到,无法直接传送PDF文件的情况,这就需要将PDF转成字符串.待接收方收到字符串再将字符串转成PDF文件. 代码 import java.io.BufferedInpu ...

  2. java中pdf转html框架,java实现pdf转成html

    java实现pdf转成html [2021-02-09 16:26:32]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace(" ...

  3. java对pdf分割_Java如何使用Java将PDF分割成多个文档?

    在Java编程中,如何使用Java将PDF分割成多个文档? 以下是使用Java将PDF文档页面分割成多个文档的示例程序. package com.yiibai; import org.apache.p ...

  4. java简易pdf转换成doc

    java转换pdf文档需要用到 pdfbox 的类库(用于读取和创建PDF文档) 代码如下: String pdf = " < 所要转换的文档位置 > .pdf";tr ...

  5. java将属性练成字符串,Java中通过属性字符串名取属性内容

    在Android开发当中资源的获取其实是间接通过R文件进行的,这个R文件就相当于是一个地址列表,存放着每个资源的地址 那么如何快速高效的获取就是这篇文章要分析的问题 假设我们有一个图片资源叫btn_b ...

  6. java类对象转化成字符串_String类型字符串(xml格式)转换成java对象类型

    使用到的包: 1. 2. 将字符串类型的字符串转换成的Java的对象时,需要先将字符的格式转换成JSON格式的字符串(所以用到了json.jar包),在使用JSON格式的字符串转换成的Java的对象类 ...

  7. java中pdf写成base64文件流,Java操作pdf文件与Base64编码相互转换与文件流操作

    1.第一步,引入bc包的安装依赖. 在pom.xml中引入. org.bouncycastle bcprov-jdk15on 1.60 引入后reimport一下项目. 2.pdf文件转换成Base6 ...

  8. Java把数字翻译成字符串

    给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 "a" ,1 翻译成 "b",--,11 翻译成 "l",--,25 翻译成 & ...

  9. java 将pdf转换成word_java如何实现pdf转word?

    Atitit pdf转文本 pdfutil java -jar C:\Users\attilax\Pictures\pdfbox-app-2.0.9.jar ExtractText "C:\ ...

最新文章

  1. Qt pro使用sql之类的需要添加的模块
  2. Distributed Systems-leader based分布式一致性协议
  3. JAVA编写的7个规范
  4. Cross-Validation(交叉验证)详解
  5. SAP Spartacus 会使用 Session timeout 吗?
  6. 数据结构——用栈解决回文字符问题
  7. jsf 自定义属性_必填字段的自定义JSF验证器
  8. CNG 关于 Key 相关的操作
  9. 中国企业2017年数据_根据数据,2017年最好的免费在线课程
  10. SQLSERVER查询数据库所有表名及行数
  11. access用扫描枪输入_工业级高精度扫描枪适用在哪些环境
  12. 计算机网络实验-路由器IP地址配置及直连网络和ARP协议分析
  13. mapreduce流量统计与自定义分区算法:手机号码按归属地输出
  14. html class生效顺序,HTML5 CSS3小猪日历(动物挂历)
  15. L130被围绕的区域
  16. 2.4 放大电路静态工作点的稳定
  17. WITH AS的用法
  18. 美国股市入门一:基本概念介绍
  19. 教育小程序源码包含哪些功能?
  20. 动漫的python语言代码_由Python编写的全异步实现的动漫之家(dmzj)漫画批量下载器(爬虫)...

热门文章

  1. linux开机自动启动(自启动)脚本、程序(初始化脚本)(海康摄像头自启动程序)
  2. 进程间通信 IPC 的本地过程调用 LPC(Local Procedure Call)和远程过程调用 RPC(Remote Procedure Call)
  3. xftp传输文件错误解决办法
  4. web前端入门学习 css(3)(背景相关)
  5. python PyQt5 QtWidgets.QWidget.size()函数 QSize
  6. 质数,约数(数论) AcWing算法课
  7. mstem函数怎么定义_PYTHON--函数定义
  8. 引入antd组件样式_如何使用 dumi 和 fatherbuild 创建组件库
  9. 利用matlab命令画出以下信号的波形,MATLAB实验报告
  10. 翻牌游戏如何打乱牌面java_剑仙登上虎牙封面C位,成为新的牌面,虎牙造星能力真的强...