使用html2canvas截屏,利用itextpdf转为pdf保存到数据库

项目里的一个需求,需要将html转为pdf保存到远程FTP服务器和数据库

解决方案:使用html2canvas截取页面元素,类似截图的效果,再利用itextpdf转为pdf保存到数据库。

优点:支持中文(也想过使用其他的插件,如jsPDF等插件,可是不支持中文,可惜了);容易上手

缺点:html2canvas截图的缺点就是,不够清晰,这点不是很满意;

html2canvas 这个就不上教程了,官网很多。

主要是这里碰到一个问题,值得分享一下:如何保存到远程FTP服务器和数据库

(1)使用html2canvas截取的界面其实是一个图像,以byte[]数组的形式传到后台处理,需要经过itextpdf的处理转为PDF,以下是itextPDF的处理,

需要一个输出流FOS作为输出的目的地,对于上传到ftp服务器的话,没有问题(ftp就是一个远程的地址uri)。但是怎么保存到数据库?

(2)我们知道,对文件的保存,一般有两个办法:1.保存到本地或者远程的文件系统地址 2.暂时放在内存中(memory),处理完后,放入数据库中

这就是我们的解决方案,放在内存中

关键就是这个ByteArrayOutputStream,可以创建一个byte类型的缓冲区,大小取决于你虚拟机的内存大小,

然后再用toByteArray()方法转为byte类型的数据,存放在BLOB类型的数据库中(此处用的是oracle)。

有什么不对的地方,还请指摘,相互进步。如果有人知道如何提高截图的精确度,欢迎讨论,google了很多方法,没有效果。

引用地址:

How do insert
itext pdf into database

时间: 2024-10-03 06:35:04

使用html2canvas截屏,利用itextpdf转为pdf保存到数据库的相关文章

html2canvas截屏后上传到服务器端(springmvc3)

利用html2canvas截屏后可以生成base64类型的图片,但是这样的图片很明显不能被引用或者被SNS工具来分享.这样就必须截屏后再上传数据到后台服务器端重新保存. 前端js代码: $("#saveImage").click(function() {html2canvas($('#mypics'), {onrendered : function(canvas) {var myImage = canvas.toDataURL("image/jpeg");//并将图

java使用代理 html2canvas 截屏 将页面内容生成图片

1.html2canvas 生成图片简单又好用,但涉及到跨域就会出现问题,官方给出的解决办法是设置代理.基本原理就是在后端将图片的数据生成base64再返回给前端使用.使canvas画布分析元素的时候像分析本地的一样简单.这就是我的理解.官网给出的只有php的方法,我是照扒了一般java的出来.有写的不好的地方,欢迎大家指正.废话不多说了,先上代码. @RequestMapping(value="/proxy", method = RequestMethod.GET) public v

html2canvas截屏用法

<!DOCTYPE html><html lang="en"><head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, i

html2canvas 截屏 兼容手机端

<template> <div> <!--<input type="button" id="btnsavaImg" value="检测" @click="check()"/>--> <input type="button" value="检测" @click="check()" style="width:

使用 html2canvas 实现截屏,以及踩坑过程

wap手机移动端有个需求,对手机端动态生成数据的一个页面,实现截屏,并且长按保存到相册.百度了一下资料,参考了以下文章: 1.https://www.hangge.com/blog/cache/detail_2211.html# 2.https://blog.csdn.net/torrent0318/article/details/83055085 3.https://www.jianshu.com/p/069739d33e02 第1个链接,入门教程,很详细,基本介绍.基本用法,让你简单上手.

Javascript网页截屏的方法

最近我在研究开发一个火狐插件,具体的功能是将网页内容截屏并分享到微博上.目前基本功能已经实现,大家可以在 @程序师视野 里看到用这个截图插件分享的微博的效果. 之前我曾写过如何将canvas图形转换成图片和下载canvas图像的方法,这些都是在为这个插件做技术准备. 技术路线很清晰,将网页的某个区域的内容生成图像,保持到canvas里,然后将canvas内容转换成图片,保存到本地,最后上传到微博. 我在网上搜寻到html2canvas这个能将指定网页元素内容生成canvas图像的javascri

javaWeb项目springMVC框架下利用ITextpdf 工具打印PDF文件的方法(打印表单、插入图片)

方法一:打印PDF表单以及在PDF中加入图片 需要的资料: jar包:iTextAsian.jar ,itext-2.1.7.jar: 源码: 1 public static void main(String args[]) throws IOException, DocumentException { 2 String fileName = "D:/testPDF.pdf"; // pdf模板 3 InputStream input = new FileInputStream(new

Android中利用命令行进行截屏并导出到电脑上

声明:本博客为原创博客,未经允许,不得转载!原文链接为http://blog.csdn.net/bettarwang/article/details/27819525 大多数人最常用的截屏方法可能就是利用手机的快捷按键了,但是那样如果要导入到电脑中效率会比较低.实际上有更好的截屏方式,最简单的当然就是利用Eclipse中的DDMS进行截屏了,点击"Screen Capture"按钮后等待10多秒,然后就可直接利用Save按钮保存到电脑中. 显然,由于要进行图片显示的原因,在DDMS中会

js利用clipboardData在网页中实现截屏粘贴的功能

目前仅有高版本的 Chrome 浏览器支持这样直接粘贴,其他浏览器目前为止还无法粘贴,不过火狐和ie11浏览器在可编辑的div中能够粘贴截图的图片也是base64位和Chrome利用clipboardData的效果是一样的,只是在火狐和ie11浏览器中目前还无法实现类似用clipboardData直接获取图片的base64数据,它是自带的直接进去img数据 完整实例: <!DOCTYPE HTML><html lang="en-US"><head>&