`
wwwxxx286
  • 浏览: 50306 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

PD4ML

阅读更多
PD4ML is an excellent tool which convert html to pdf, can support most of the standard html tag and css.

Can append string page $[page] of $[total] on page header/footer to display page number.

Java code:
protected Dimension format = PD4Constants.A4;
protected boolean landscapeValue = false;
protected int topValue = 10;
protected int leftValue = 10;
protected int rightValue = 10;
protected int bottomValue = 10;
protected String unitsValue = "mm";
protected String proxyHost = "";
protected int proxyPort = 0;
protected int userSpaceWidth = 780;

public void pd4mlTesting(){
	try {
		String filename = "test.pdf";
		replaceHtml();
		File fz = new File("D:/PD4ML/test.html");
		java.io.FileInputStream fis = new java.io.FileInputStream(fz);
		InputStreamReader isr = new InputStreamReader( fis, "UTF-8" ); 
		PD4ML pd4ml = new PD4ML();
		try {
			pd4ml.setPageSize(landscapeValue ? pd4ml
					.changePageOrientation(format) : format);
		} catch (Exception e) {
			e.printStackTrace();
		}
		if (unitsValue.equals("mm")) {
			pd4ml.setPageInsetsMM(new Insets(topValue, leftValue,  bottomValue,rightValue));
		} else {
			pd4ml.setPageInsets(new Insets(topValue, leftValue, bottomValue,rightValue));
		}

		pd4ml.setHtmlWidth(userSpaceWidth);
   
		FileOutputStream fos = new FileOutputStream("D:/PD4ML/"+filename);
		
     String pageHeader = "";
     String pageFooter = "";
     if (null != pageHeader && !"".equals(pageHeader.trim())) {
			PD4PageMark headerMark = new PD4PageMark();
			headerMark.setAreaHeight(30);
			headerMark.setInitialPageNumber(0);
			headerMark.setPagesToSkip(1);
			if (pageHeader.toUpperCase().startsWith("<HTML>") && pageHeader.toUpperCase().endsWith("</HTML>")) {
				//need page header and is HTML format
				headerMark.setHtmlTemplate(pageHeader);
			} else {
				//need page header and is text format
//				headerMark.setTitleAlignment(PD4PageMark.LEFT_ALIGN);
				headerMark.setTitleTemplate(pageHeader);
			}
			pd4ml.setPageHeader(headerMark);
		}
		
		if (null != pageFooter && !"".equals(pageFooter.trim())) {
			PD4PageMark footerMark = new PD4PageMark();
			footerMark.setAreaHeight(30);
			footerMark.setInitialPageNumber(0);
//			footerMark.setPagesToSkip(1);
			if (pageFooter.toUpperCase().startsWith("<HTML>") && pageFooter.toUpperCase().endsWith("</HTML>")) {
				//need page header and is HTML format
				footerMark.setHtmlTemplate(pageFooter);
			} else {
				//need page header and is text format
//				headerMark.setTitleAlignment(PD4PageMark.RIGHT_ALIGN);
				footerMark.setTitleTemplate(pageFooter);
			}
			pd4ml.setPageFooter(footerMark);
		}
		Map<String, Object> parameters = new HashMap<String, Object>();
		parameters.put("ccRecipientsName","ccRecipientsName");
		parameters.put("subject","subject");
		parameters.put("minutesPurposeCode","minutesPurposeCode");
		pd4ml.setDynamicParams(parameters);
		pd4ml.render(isr, fos);
			
		} catch (InvalidParameterException e) {
			e.printStackTrace();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
private void replaceHtml(){
	String path = "D:/PD4ML/test.html";
	try {
	  StringBuffer bs = new StringBuffer();
	  InputStreamReader isr = new InputStreamReader(new FileInputStream(path));
	  BufferedReader br = new BufferedReader(isr);
	  String line = null;
	  while ((line = br.readLine()) != null) {
	   bs.append(line + "\n");
	   }
	   br.close();
	   String str = bs.toString();
	   if (str.indexOf("@@minutesContent@@") != -1) {
	       str = str.replaceAll("@@minutesContent@@", getTestString());
	   }
	   OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(path));
	   BufferedWriter bw = new BufferedWriter(osw); 
	   bw.write(str);
	   bw.flush();
	   bw.close();
	  } catch (Exception e) {
	  }
}


HTML Template:

<html>
<body>
<table>
	<tr>
		<td>CC:</td>
		<td>$[ccRecipientsName]</td>
	</tr>
	<tr>
		<td>subject:</td>
		<td>$[subject]</td>
	</tr>
	<tr>
		<td>minutesPurposeCode:</td>
		<td>$[minutesPurposeCode]</td>
	</tr>
	<tr>
		<td style="vertical-align:top">Content:</td>
		<td>@@minutesContent@@</td>
	</tr>
	
</table>
</body>
</html>



分享到:
评论
1 楼 liangzi4454 2013-08-02  
 

相关推荐

    pd4ml所需要的jar包

    PD4ML pd4ml = new PD4ML(); pd4ml.setPageWidth(595); // A4纸宽度 pd4ml.setPageHeight(842); // A4纸高度 DocumentInfo docInfo = new DocumentInfo(); docInfo.setTitle("PDF Title"); pd4ml....

    PD4ml所有jar包依赖,HTML转PDF。

    PD4ML pd4ml = new PD4ML(); pd4ml.setPageWidth(595); pd4ml.setPageHeight(842); // A4 size // Load HTML content String htmlPath = "path/to/your/html/file.html"; pd4ml.convertHtmlToFile(htmlPath, ...

    PD4ML JAR包 PDF生成

    在"PD4ML JAR包 PDF生成"这个主题中,我们将深入探讨PD4ML的核心功能、使用方法以及它在实际项目中的应用。 首先,PD4ML的基本工作原理是通过解析HTML和CSS,然后将其渲染成符合PDF标准的文档。这使得开发人员可以...

    pd4ml_pdf_pd4ml_PD4ML的jar包_

    6. **自定义设置**:PD4ML提供了丰富的API,允许开发人员自定义PDF的页眉、页脚、水印、页码等元素,以满足特定的品牌要求或合规性标准。 7. **性能和效率**:由于PD4ML是基于Java的,因此可以在任何支持Java的平台...

    pd4ml 依赖jar包

    1. **PD4ML**: PD4ML是主要的库文件,它的全名是`pd4ml.jar`。这个库提供了核心的PDF生成逻辑,能够解析HTML、CSS,并将其渲染成PDF文档。PD4ML支持多种HTML特性,包括表格、图像、链接、内联样式和外部样式表等。它...

    PD4ML的官方API说明文档和开发jar包

    PD4ML是一款强大的Java库,专门用于在服务器端生成高质量的PDF文档。它允许开发者通过简单的API调用来将HTML内容转换为PDF格式,非常适合于Web应用程序中的报告、发票或者其他需要打印或下载为PDF的场景。 **PD4ML ...

    利用PD4ML将html生成pdf 所需jar包及样例

    PD4ML pd4ml = new PD4ML(); // 设置HTML内容 String htmlContent = "&lt;h1&gt;你好,世界!&lt;/h1&gt;&lt;p&gt;这是一个PD4ML生成的PDF文档示例。&lt;/p&gt;"; // 创建PDF文档 PD4Document document = pd4ml.getDocument(); ...

    解决PD4ML导出pdf中文乱码问题

    PD4ML默认可能使用的是西方字符集,不支持中文字符,所以需要进行相应的配置调整。 解决PD4ML导出PDF中文乱码问题,可以从以下几个方面入手: 1. **设定正确的字符编码**:确保你的HTML文件是以UTF-8编码保存的,...

    PD4ML是一个功能强大的PDF生成工具

    例如,如果一个项目需要生成包含中文、日文或阿拉伯文的PDF,PD4ML可以方便地处理这些非英文字符,确保文档的正确显示。 在实际应用中,PD4ML支持多种编程语言,如Java、.NET和Groovy等,这使得它能广泛应用于各种...

    使用PD4Ml将html转pdf需要

    PD4ML pd4ml = new PD4ML(options); ``` 3. 加载HTML内容:可以从文件或字符串中读取HTML内容。 ```java InputStream htmlStream = new FileInputStream("path/to/your/html/file.html"); pd4ml.convertHtml...

    PD4ML 实测Java将HTML导出为PDF 成功解决中文乱码问题

    本篇将深入探讨如何使用PD4ML实现在Java环境中处理中文乱码问题,并提供相关文件的背景和用途。 首先,我们要理解为何会出现中文乱码。在处理非ASCII字符,如中文字符时,如果字体、编码设置不正确,就可能出现乱码...

    pd4ml官方api和jar

    **pd4ml官方API和jar** 是一个与PDF生成相关的工具包,主要针对Java开发者设计。PD4ML(PDF for Java)是一个强大的Java库,它允许开发者将HTML内容转换为高质量的PDF文档。这个工具广泛应用于需要从网页或动态生成...

    官方pd4ml的jar包

    包含pd4ml-323b2.jar pd4ml-310b10.jar pd4ml_demo.jar pd4ml.pro.trial.3100.zip pd4ml.pro.trial.390b3.zip pd4ml.pro.trial.381fx1.zip fonts.jar ss_css2.jar

    PD4ML的官方开发jar包

    1. **pd4ml_demo.jar**:这是PD4ML的主要库文件,包含了所有必要的类和方法,使得开发者可以通过编程接口来生成PDF。这个JAR文件包含了PD4ML的核心功能,包括HTML解析、CSS处理、页面布局以及图像和字体的支持。 2....

    pd4ml 设置中文字体问题.zip

    本教程将详细讲解如何配置PD4ML以正确显示中文字符。 首先,我们需要理解PD4ML的工作原理。PD4ML依赖于字体文件来渲染文本,特别是对于非ASCII字符,如中文,它需要包含相应的Unicode支持的字体。默认情况下,PD4ML...

    java后端实现html转pdf的工具类,pd4ml

    2. **创建PD4ML实例**:初始化PD4ML对象,配置必要的参数,如页面大小、边距等。 3. **加载HTML源**:可以是URL、文件路径或者HTML字符串,PD4ML提供相应的API来加载。 4. **转换为PDF**:调用PD4ML的转换方法,将...

    pd4ml相关jar包

    这个压缩包文件包含了一系列与PD4ML相关的资源,特别是jar包,这是一组预编译的类和函数,允许开发者在Java应用程序中集成PDF生成功能。字体配置文件和宋体字体文件是PD4ML生成PDF时需要用到的重要组成部分。 1. **...

    htmltopdf pd4ml_demo.jar、pd4ml__css2.jar、fonts.jar

    这个压缩包包含三个核心组件:`pd4ml_demo.jar`、`pd4ml__css2.jar` 和 `fonts.jar`。 `pd4ml_demo.jar` 是 `pd4ml` 库的演示版本。它提供了基础的HTML到PDF转换功能,让开发者能够快速测试和理解如何使用这个库。...

    (html转pdf)pd4ml官方api和jar—pd4ml.lib.trial.380fx9.jar

    PD4ML pd4ml = new PD4ML(); pd4ml.setPageWidth(595); pd4ml.setPageHeight(842); // A4 size pd4ml.setPdfDocument(new PDFDocument(new FileOutputStream("output.pdf"))); pd4ml.convert(...

    pd4ml技术html导出pdf,支持中文,兼容linux

    此外,PD4ML的跨平台性,特别是其对Linux操作系统的兼容性,使其成为Java开发者在各种系统环境下生成PDF的理想工具。 1. **HTML到PDF的转换**:PD4ML的核心功能是将HTML文档或网页内容转换为PDF格式。它解析HTML...

Global site tag (gtag.js) - Google Analytics