技术标签: java
1.pdfbox对pdf流操作
//这个是获取到的pdf的base64
BASE64Decoder base64Decoder = new BASE64Decoder();
//base64转成的数组
byte[] pdfData = base64Decoder.decodeBuffer(pdfBase64);
//通过pdfbox对pdf流新增空白页
PDDocument document = PDDocument.load(pdfData);
document.addPage(new PDPage());
ByteArrayOutputStream bos=new ByteArrayOutputStream();
document.save(bos);
byte[] pdfDataAddPage = bos.toByteArray();
document.close();
2.pdfbox小demo
public static void main(String[] args) throws IOException {
//通过pdfbox对pdf流新增空白页
File file = new File("Z:\\workSpace\\csdc\\csdc-h5\\src\\main\\resources\\file\\pdfCaSign.pdf");
PDDocument document = PDDocument.load(file);
//新增空白页
PDPage blankPage = new PDPage();
//获取空白页在文档中的内容流
PDPageContentStream contentStream = new PDPageContentStream(document, blankPage);
//设置文本字体格式和大小
File fontFile = new File("C:\\Windows\\Fonts\\simfang.ttf");
PDType0Font font = PDType0Font.load(document, fontFile);
setText(contentStream,font);
//将空白页拼接至pdf尾页
document.addPage(blankPage);
ByteArrayOutputStream bos=new ByteArrayOutputStream();
document.save(bos);
byte[] pdfDataAddPage = bos.toByteArray();
document.close();
PDDocument newDoc = PDDocument.load(pdfDataAddPage);
newDoc.save("Z:\\newDoc.pdf");
}
public static void setText(PDPageContentStream contentStream,PDType0Font font) throws IOException {
//开启文本输入流
contentStream.beginText();
contentStream.setFont(font, 12);
//设置文本页面定位
contentStream.newLineAtOffset(20, 200);
//将文本写入文本流
contentStream.showText("This is a test text ! 用于测试页面是否乱码。");
contentStream.newLine();
contentStream.newLineAtOffset(40,220);
contentStream.showText("投保人签字:______________");
contentStream.newLine();
contentStream.newLineAtOffset(60,230);
contentStream.showText("被保人签字:______________");
contentStream.newLine();
contentStream.newLineAtOffset(60,235);
contentStream.showText("受益人签字:______________");
//结束文本输入流
contentStream.endText();
//关闭流
contentStream.close();
}
伴随传统巨头在产品研发、团队与生产各方面的本土化,以及面向中国市场的全面开放,智能汽车产业的竞争将更加激烈。这意味着,主机厂对于芯片、操作系统自主可控的需求将井喷式增长。及早谋划,掌握研发主动权已成为从政策制定到产业升级的共识。突破车规级芯片、车用操作系统、新型电子电气架构,突破车载智能计算平台,搭建开放共享、协同演进的良好生态也多次在数个汽车产业规划中被提及。具体来讲,整车计算平台需要高算力车规级芯片加安全的底层操作系统,同时,统一的开源开放的操作系统则可以形成构架之上的车载应用软件“百花齐放
概述:https://www.cnblogs.com/wang-jin-fu/p/10975660.html这篇只涉及基础原理,下篇会讲如何实现一个简单的资源管理框架。一、Assets和Objects资源(Asset)是存储在Unity项目的Assets文件夹中的磁盘文件。有些资源的数据格式是Unity原声支持的,有些资源则需要转换为源生的数据格式后才能被使用。对象(...
其原因是因为,用openssl生成的私钥没有进行pkcs8编码,所以导致程序无法识别。用openssl转一下码就好了,命令如下:pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt使用转码后的私钥即可。...
Avro是Doug Cutting(此人绝对是神一般的存在)牵头开发的。 开发之初就是围绕着完善Hadoop生态系统的数据处理而开展的(使用Avro作为Hadoop MapReduce需要处理数据序列化和反序列化的场景),因此Hadoop MapReduce集成Avro也就是自然而然的事情。这个例子是一个简单的Hadoop MapReduce读取Avro格式的源文件进行计数统计,然后将计算结...
测试机上一个老的DB2数据库在正常停库后,在启库时报SQL1042C错误。具体信息如下:# su - db2inst1 $ db2start2013-04-23 13:23:08 0 0 SQL1042C An unexpected system error occurred.SQL1032N No start database manager comma...
目录一、TotalCommander 简介二、TotalCommander 使用教程1、软件配置2、添加工具栏程序3、常用快捷键4、重新定义快捷键一、TotalCommander 简介Total Commander,简称 TC,原名 Windows Commander,功能强大的全能文件管理器。它支持随意自定义的菜单、工具栏、快捷键,给您最大的自由,打造个性TC,一般的文件操作,如搜索、复制、移动、改名、删除等功能应有尽有。功能介绍1、内置 ZIP/TAR/GZ/TGZ
python如何安装numpy库发布时间:2020-09-23 09:53:03来源:亿速云阅读:83作者:小新这篇文章主要介绍了python如何安装numpy库,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数...
一. 前言日志对于一个程序的重要程度不用过多的言语修饰,本篇将以实战的方式讲述开源微服务全栈项目 有来商城 是如何整合当下主流日志解决方案 ELK +Filebeat 。 话不多说,先看实现的效果图,绝不搞些浪费大家时间且没意义的东西。二. Elastic Stask 技术栈1. 为什么引入 Filebeat ?ELK 作为分布式日志解决方案让人为之津津乐道,即使没有实践过也能耳熟,可见其火热程度。 Beats 作为数据采集器后来加入进来 Elastic 家族,ELK正式更名为 Elastic
NuPlayer流媒体播放器中从网络上取得的rtp包在解码和显示时所用buffer的填充和清空的机制,与stagefright框架播放本地视频时的处理流程类似。都是通过回调函数fillbuffer及emptybuffer来实现的。NuPlayer中的ACodec与Stagefright中的OMXCodec的作用相似。以下是rtsp流媒体中填充待解码的buffer,以及把解码后的buff
一、总体形势分析2019年7月份,生鲜乳价格继续上涨,玉米价格环比上涨、豆粕价格环比下降根据农业农村部监测数据,7月有3周生鲜乳上涨,月度均价3.59元/千克,环比上涨0.9%,同比上涨6.3%,月末3.61元/公斤,比前一周上涨0.6%,同比上涨7.1%。玉米月度均价2.11元/千克,环比上涨1.0%,同比上涨3.7%;豆粕月度均价3.20元/千克,环比下降1.1%,同比下降3....
错误如题。解决方案:将环境变量中的CLASSPATH去掉就可以了!
select ROW_NUMBER() OVER(order by id desc) from e2exlation.asset