`
戴氏家族
  • 浏览: 5437 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

富文本(html)生成pdf

阅读更多
ckeditor、fckeditor富文本编辑器生成pdf,用pd4ml实现

package com.ais.test;

import java.awt.Insets;
import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.StringReader;
import java.net.MalformedURLException;
import java.security.InvalidParameterException;

import org.zefer.pd4ml.PD4Constants;
import org.zefer.pd4ml.PD4ML;

public class Test {
	protected int topValue = 10;
	protected int leftValue = 20;
	protected int rightValue = 10;
	protected int bottomValue = 10;
	protected int userSpaceWidth = 1300;

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		try {
			Test jt = new Test();
			String html = readFile("D:\\Test\\pdf_sample.html", "UTF-8");
			jt.doConversion2(html, "D:\\Test\\pd4ml.pdf");
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

	public void doConversion2(String htmlDocument, String outputPath)
			throws InvalidParameterException, MalformedURLException,
			IOException {

		PD4ML pd4ml = new PD4ML();

		pd4ml.setHtmlWidth(userSpaceWidth); // set frame width of
											// "virtual web browser"

		// choose target paper format
		pd4ml.setPageSize(pd4ml.changePageOrientation(PD4Constants.A4));

		// define PDF page margins
		pd4ml.setPageInsetsMM(new Insets(topValue, leftValue, bottomValue,
				rightValue));

		// source HTML document also may have margins, could be suppressed this
		// way
		// (PD4ML *Pro* feature):
		pd4ml.addStyle("BODY {margin: 0; font-family:MSJH}", true);

		// If built-in basic PDF fonts are not sufficient or
		// if you need to output non-Latin texts, TTF embedding feature should
		// help
		// (PD4ML *Pro*)
//		pd4ml.useTTF("C:\\workspace\\HtmlToPDF", true);
		pd4ml.useTTF( "java:fonts", true );
		pd4ml.setDefaultTTFs("MSJH", "Arial", "Courier New");


		ByteArrayOutputStream baos = new ByteArrayOutputStream();
		// actual document conversion from HTML string to byte array
		pd4ml.render(new StringReader(htmlDocument), baos);
		// if the HTML has relative references to images etc,
		// use render() method with baseDirectory parameter instead
		baos.close();

		System.out.println("resulting PDF size: " + baos.size() + " bytes");
		// in Web scenarios it is a good idea to send the size with
		// "Content-length" HTTP header

		File output = new File(outputPath);
		java.io.FileOutputStream fos = new java.io.FileOutputStream(output);
		fos.write(baos.toByteArray());
		fos.close();

		System.out.println(outputPath + "\ndone.");
	}

	private final static String readFile(String path, String encoding)
			throws IOException {

		File f = new File(path);
		FileInputStream is = new FileInputStream(f);
		BufferedInputStream bis = new BufferedInputStream(is);

		ByteArrayOutputStream fos = new ByteArrayOutputStream();
		byte buffer[] = new byte[2048];

		int read;
		do {
			read = is.read(buffer, 0, buffer.length);
			if (read > 0) {
				fos.write(buffer, 0, read);
			}
		} while (read > -1);

		fos.close();
		bis.close();
		is.close();

		return fos.toString(encoding);
	}

}


需要的jar包:fonts.jar\pd4ml_demo.jar\ss_css2.jar

附件中少了font.jar包,由于太大,请自行下载
0
0
分享到:
评论

相关推荐

    java根据富文本生成pdf文件过程解析

    主要介绍了java根据富文本生成pdf文件过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    使用wkhtmltox将HTML富文本生成Pdf(wkhtmlpdf)和图片SpringBoot代码项目示例

    1、此Java项目利用开源工具包wkhtmltopdf及SpringBoot框架将富文本转换为PDF和Image实战示例。 2、有丰富的示例文件,包括将url转image/pdf,将html转image/pdf。 3、提供有Postman接口配置文件,助您快速掌握并高效...

    强大的php生成word ,html,rtf,pdf框架(包含中文文档)

    添加GD生成图片 14 添加水印 14 添加对象 15 添加标题 15 添加目录 16 表格 17 添加表格 17 添加行 17 添加单元格 17 单元格样式 19 表格样式 20 页脚 22 页眉 23 模版 23 其他问题修改 25 解决文本缩进问题 25 表格...

    Word转JPG转换器 - 批量Word转JPG工具

    为了方便在互联网上阅读,传输,以及保持内容不被...除了Doc和Docx格式,Word转JPG转换器也支持将富文本RTF格式,HTML和HTM网页格式,以及开放文档格式ODT(Open Document Format)作为输入格式转换成JPG等各种图片格式。

    ASP.NET4高级程序设计第4版 带目录PDF 分卷压缩包 part1

    手动优化了PDF的书签,书签可折叠,书签链接以目录方式保存,多达1000多页,每页都做了书签定位,手都累酸啦。 ============================== 因权限只能到60MB,分卷压缩了,共3个压缩包,需下载完3个一起解压, ...

    Markdown编辑器原始编辑页面

    格式转换方便,Markdown 的文本你可以轻松转换为 html、pdf等。 可以保存称纯文本 支持Markdown的编辑器太多,功能也不完全一致,有的是用来进行基本的写作,有的是用来写代码的,有的甚至只是博客平台配套的编辑器...

    vue-element-manage:vue + element的后台管理系统

    富文本编辑器:Tinymce 数据:axios,Mock 地图:高德 项目地址 功能 登录/退出 全屏浏览 一键换肤 系统风格 元素大小 个人中心 侧边菜单 标签导航 图表 折线图 面积图 柱状图 条形图 饼图 散点图 表单 基础表单 ...

    aspose-words-19.1

    Aspose.Words是一款先进的...Aspose.Words如何将富文本保存为Word Aspose.Words如何导出带图片人员信息到Word中 文档操作: Aspose.Words分节后如何重新开始页码编号 Aspose.Words如何改变整个文档页面设置 Asp

    思维导图让你的思维更清晰 iThoughts 5.28.0 中文多语免费版.zip

    • 纯文本/富文本 • 此外,仅支持 CMAP、Scapple、Mindmeister、Mindnode、Mindmapper、SimpleMind 和 MyThoughts 导入 导出至: • MS Powerpoint/Keynote (PPTX) • MS Word/Pages (DOCX) • MS Project (XML) ...

    prototype_vislit_vue:使用Vue Electron Builder CLI进行原型测试以测试Vislit功能

    Vislit Vue原型主项目的Vislit... 一种方式: : 测试技术数据存储 - 唯一id生成器数据可视化 -MIT下的富文本编辑器,是为Vue制作的,很快就会推出V2。 导出为HTML,以便轻松转换为Word或重新加载到应用程序中。 富文本

    FortesReport4lazarus323-开源

    FortesReport4Lazarus,一个像 FortesReport for Delphi 的报告生成器现在移植到 Lazarus freepascal。 它基于 Bands、Groups、... 导出为 pdf、excel、html 和富文本。 FortesReport4Lazarus323 正在进行中,测试版。

    JAVA上百实例源码以及开源项目

     Java编写的网页版魔方游戏,编译后生成.class文件,然后用HTML去调用,不过运行时候需要你的浏览器安装有运行Class的插件。Java源代码实现部分,比较有意思,也具参考性。像坐标控制、旋转矩阵、定时器、生成图像...

    JAVA上百实例源码以及开源项目源代码

     Java编写的网页版魔方游戏,编译后生成.class文件,然后用HTML去调用,不过运行时候需要你的浏览器安装有运行Class的插件。Java源代码实现部分,比较有意思,也具参考性。像坐标控制、旋转矩阵、定时器、生成图像...

    java开源包1

    jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。提供了一个基于对象模型的 ActionScript 字节码,并提供了 ActionScript 字节码统计工具。 Java类重加载工具 JReloader JReloader 是一个用来重新...

    java开源包11

    jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。提供了一个基于对象模型的 ActionScript 字节码,并提供了 ActionScript 字节码统计工具。 Java类重加载工具 JReloader JReloader 是一个用来重新...

    java开源包2

    jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。提供了一个基于对象模型的 ActionScript 字节码,并提供了 ActionScript 字节码统计工具。 Java类重加载工具 JReloader JReloader 是一个用来重新...

Global site tag (gtag.js) - Google Analytics