`
戴氏家族
  • 浏览: 5510 次
  • 性别: 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文件过程解析" Java根据富文本生成pdf文件过程解析是指使用Java语言将富文本内容转换为pdf文件的过程。该过程主要涉及到HTML解析、CSS样式应用、PDF文件生成等技术。 首先,需要使用HTML...

    freemarker+html生成pdf.zip

    `Freemarker`是一个强大的模板引擎,通常用于动态生成HTML、XML等文本格式,而将`Freemarker`与HTML模板结合生成PDF,可以充分利用HTML的易编辑性和富文本特性,为用户提供高质量的文档输出。下面我们将深入探讨如何...

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

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

    java+pdf生成.zip

    Java生成PDF文件是一种常见的技术需求,特别是在开发报告生成、电子发票、文档自动化等领域。PDF(Portable Document Format)格式因其跨平台、保持原始样式的特点而被广泛使用。在Java环境中,有多个库可以帮助...

    CoreRenderer实现Html2pdf支持富文本,图片等比缩小

    在IT行业中,生成PDF文档是常见的需求,尤其在数据报告、文档分享或网页保存为离线阅读材料时。`CoreRenderer`是一个Java库,它允许开发者将HTML内容转换为高质量的PDF格式,同时支持富文本、分页、中文字符以及图片...

    java集成富文本编辑器KindEditor

    Java集成富文本编辑器KindEditor是一项常见的Web开发任务,它能提供给用户一个可视化的文本编辑界面,使得在网页上创建、编辑带有格式的文本变得简单。KindEditor是一款开源的JavaScript富文本编辑器,适用于Java...

    IOS应用源码——PDF生成类(将文本,html网页生成pdf的类).zip

    1. **文本绘制**:使用 `CTFramesetterCreateWithAttributedString` 创建一个基于Core Text的帧设置器,它可以处理富文本。然后,使用 `CTFramesetterSuggestFrameRect` 来确定文本的大小,最后调用 `CTFrameDraw` ...

    Flying-Saucer使用HTML或者FTL(Freemarker模板)生成PDF

    Flying-Saucer通过html生成pdf。。。项目中已经附带了jar包,放到项目中就可以运行了。亲测了,解决了中文不显示或者样式的问题,感觉蛮实用的。网上找了很久和下载其他资源用了好多积分,如果有需要的就下载吧!!...

    富文本文档转化工具pandoc

    富文本文档转换工具Pandoc是一款强大的命令行工具,专用于在各种文档格式之间进行转换。它支持从Markdown、HTML、Word文档(.docx)等格式转换为PDF、LaTeX、EPUB、ODT等多种格式,极大地提高了文档处理的灵活性和...

    使用QPrinter生成pdf或用打印机打印数据 - 恒月美剑 - 博客园1

    2. 创建一个QTextDocument对象,它是Qt的富文本处理类,可以解析HTML内容。 3. 将HTML字符串加载到QTextDocument中,`setHtml()`方法用于此目的。 4. 设置QPrinter的其他参数,如页面大小、方向等。 5. 使用...

    基于itext7+freemarker模板导出pdf

    在IT领域,生成PDF文档是常见的需求,尤其在报表、合同和文档自动化中。本教程将探讨如何使用iText7和FreeMarker库结合,来创建一个基于模板的PDF生成流程,确保中文支持和图片的正常显示。 首先,iText7是一款强大...

    JS实现的将html转为pdf功能【基于浏览器端插件jsPDF】

    最后一步是调用`addHTML`方法,传入我们希望转换的HTML元素(在这个例子中是整个`document.body`)以及上面定义的配置项,完成转换后,我们通过回调函数调用`save`方法,将生成的PDF文件保存到本地,文件名被设置为`...

    word文档转成Html方案

    通常,这个过程会涉及到解析Word文档的内部结构,提取文本、样式和图像等元素,然后使用Jsoup或其他HTML生成工具将它们转化为符合HTML规范的结构。 在实际应用中,扩展富文本编辑器,如Ueditor,以支持Word导入功能...

    自己在用的富文本编辑器

    HTMLBox是一款基于JavaScript的富文本编辑器,它允许用户在浏览器环境中编辑HTML内容,提供了一个类似Word的界面,使得非程序员也能轻松创建和修改网页内容。 1. **JavaScript与Web开发** JavaScript是Web开发中的...

    网页导出 pdf 内容被截断的终极解决方案

    html2canvas 与 jspdf 相结合生成 pdf 内容被截断的终极解决方案,设置背景色为白色,然后转成图片后,获取截断处图片像素点,从截断处往上一行行扫描像素点颜色,碰到这一行颜色都是全白的,代表是从这里开始截断,...

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

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

    利用Poi-tl将富文本Html转换为Word文件

    相关思路是先通过Jsoup将富文本Html迭代循环,在特定的方法里处理每一个标签,目前支持处理的标签包括img,table,sup,以及类似span,h等文本标签,其他的标签处理需要自己自定义处理。另外这种方法不会保存富文本的...

    演示html转pdf程序

    `jspdf`是一个开源JavaScript库,它提供了在浏览器中生成PDF文件的能力。这个库设计的目标是尽可能接近PDF规范,同时也提供了多种实用的功能,如文本、图像、表格的处理,以及自定义字体的支持。在HTML到PDF的转换...

    flex生成pdf全套

    在Flex中生成PDF是一项常见的需求,特别是在需要将用户界面的内容导出为可打印或可分享的文档时。本资源“flex生成pdf全套”提供了一个解决方案,通过AlivePDF库来实现这一目标。 AlivePDF是Flex中一个轻量级的库,...

Global site tag (gtag.js) - Google Analytics