java pdf 导出方案

java代码

import com.itextpdf.text.DocumentException;
import com.itextpdf.text.pdf.BaseFont;
import org.xhtmlrenderer.pdf.ITextFontResolver;
import org.xhtmlrenderer.pdf.ITextRenderer;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

public class ITextRendererCNWebDiy {

    public static void main( String[] args ) throws DocumentException, IOException
    {
        //注 :如果样式 body里加了,那么 具体的div span里面就不要加,否则显示不出来?  不对,是 div span里的字体写错了 要这么写,不能小写 SimSun
        String inputFile="index-cn.html";
        String outputFile="F:\\develop\\workspace-idea\\iTextStudy\\ITextRendererCNWebDiy.pdf";
        OutputStream os = new FileOutputStream(outputFile);
        ITextRenderer renderer = new ITextRenderer();
        String url = new File(inputFile).toURI().toURL().toString();

        renderer.setDocument("http://120.26.208.6:8090/xieyi.jsp");

        // 解决中文支持问题
        ITextFontResolver fontResolver = renderer.getFontResolver();
        try {
            //注 俩个方式都可以  但是linux服务器中 估计要用后者
            //fontResolver.addFont("C:/Windows/Fonts/simsun.ttc", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
            fontResolver.addFont("src/simsun.ttc", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
        }catch (Exception e){
            e.printStackTrace();
        }
        //解决图片的相对路径问题
        renderer.getSharedContext().setBaseURL("file:/D:/");
        renderer.layout();
        try {
            renderer.createPDF(os);
        }catch (Exception ex){
            ex.printStackTrace();
        }

        os.flush();
        os.close();
    }
}

html文件:

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>HTML to PDF</title>
    <link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<h1>HTML to PDF</h1>
<p>
    <span class="itext">itext</span> 5.4.2 <span class="description"> converting HTML to PDF</span>
</p>
<table>
    <tr>
        <th class="label" style="font-size:12.0pt; font-family:SimSun">Title-中午网页</th>
        <td>iText - Java HTML to PDF 你好网页</td>
    </tr>
    <tr>
        <th>URL</th>
        <td>http://hmkcode.com/itext-html-to-pdf-using-java</td>
    </tr>
</table>
</body>
</html>

pom文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>huisoft</groupId>
    <artifactId>com.zhanghui</artifactId>
    <version>1.0-SNAPSHOT</version>

    <repositories>

        <repository>
            <!-- Maven 自带的中央仓库使用的Id为central 如果其他的仓库声明也是用该Id 就会覆盖中央仓库的配置 -->
            <id>mvnrepository</id>
            <name>mvnrepository</name>
            <url>http://repo1.maven.org/maven2/</url>
            <layout>default</layout>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>com.itextpdf</groupId>
            <artifactId>itextpdf</artifactId>
            <version>5.4.3</version>
        </dependency>
        <dependency>
            <groupId>com.itextpdf</groupId>
            <artifactId>itext-asian</artifactId>
            <version>5.2.0</version>
        </dependency>

       <dependency>
            <groupId>com.itextpdf.tool</groupId>
            <artifactId>xmlworker</artifactId>
            <version>5.4.3</version>
        </dependency>

        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.7.1</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>

        <dependency>
            <groupId>org.xhtmlrenderer</groupId>
            <artifactId>flying-saucer-pdf</artifactId>
            <version>9.0.9</version>
        </dependency>

    </dependencies>

</project>

导出结果:

时间: 2024-11-09 09:16:47

java pdf 导出方案的相关文章

基于one2team框架的Highcharts图表图片导出方案

这篇文章已经没有什么意义了,新版的HIghcharts提供Java图片导出解决方案,你需要做的就是下个Maven,bulid一个war就Ok了.---addedy on 2012-11-15 多说一句废话:我觉得这个功能其实对于大多数应用场景来说是多余的. Highcharts是一个纯JSWeb图表绘制解决方案,它的功能之丰富,使用之简单可能是目前开源领域排名比较考前的优秀解决方案,它对个人使用是免费的. 它的默认版本也有图片导出功能,不过导出服务器是Highcharts官方服务器,我开发的过程

iReport 5.6.0 PDF导出中文不显示问题 解决方案

问题描述 iReport 5.6.0 PDF格式导出,中文不显示. 报错信息如下: Error exporting print... Could not load the following font : pdfFontName   : STSong-LightpdfEncoding   : UniGB-UCS2-HisPdfEmbedded : truenet.sf.jasperreports.engine.JRRuntimeException: Could not load the foll

办公系统中MS Word文件转换为PDF技术方案

MS Word文件转换为PDF技术方案比较多,比较常见的方案是使用开源的OpenOffice,但是此方案存在兼容的问题,有些文件转换不了或出现问题.而采用现成的产品,成本又比较高.通过对各种Word转PDF解决方案的综合考察,采用在Windows平台调用Word接口的方案,是转换成功率最高的一种,在这里提供个折中的方案. 架设Windows服务器,并安装MS Office 2007,使用MS Office 2007转换PDF功能. Office 2007 只需安装一个加载项,就能导出文件并将其保

SpreadJS 表格控件发布V11版本,新增图表及前端PDF导出!

日前,全球最大的控件提供商葡萄城宣布,SpreadJS 纯前端表格控件正式发布V11 版本.新版本亮点颇多,不但为用户带来期待已久的图表功能,还新增前端导出 PDF.列分组等功能,在数据可视化方面更进一步,受到了开发人员的广泛关注. SpreadJS是基于HTML5的JavaScript电子表格和网格功能控件,适用于.NET.Java和移动端等各平台在线编辑类Excel功能的表格程序开发.开发人员可利用SpreadJS,更好的显示和管理类似 Excel 的数据,更方便的进行公式引擎.排序.过滤.

java excel导出

1.  Excel导出的核心方法在ExportExcel类中,使用时请将该类完整的引入. 1 import java.io.IOException; 2 import java.io.OutputStream; 3 import java.lang.reflect.Field; 4 import java.lang.reflect.InvocationTargetException; 5 import java.lang.reflect.Method; 6 import java.text.Si

eclipse导出jar(java打包导出jar)

有时候需要将j2se工程导出,这样可以在别处运作,就不必拘泥于开发感觉中才能运行了.具体做法如下:方法一:(工程没有引用外部jar包时,直接导出) 选中工程---->右键,Export...--->Java--->JAR file--->next-->选择jar file的路径及名称-->next-->next---> 选择main class--->finish. 方法2: 当工程引用了其他的外部jar时,由于eclipse不支持同时导出外部jar包

Big Faceless Java Pdf报表生成器

Report Generator 建立在 PDF 库之上,可将 XML 转换为 PDF,是生成复杂.多页报表的绝佳方式.现在,您可使用 JSP.ASP 或类似技术来创建动态 PDF 报表,与 HTML 一样快速简便 – 它与时下的 servlet 引擎(如 WebSphere 或 Tomcat)搭配效果极佳. 正如我们的 PDF 库一样,Report Generator 完全支持 Unicode,因此可极其简便地创建阿拉伯语.中文.葡萄牙语或多语种的 PDF 报表. Big Faceless J

Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类

Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类 ============================== ?Copyright 蕃薯耀 2017年9月13日 http://www.cnblogs.com/fanshuyao/ 直接上代码: import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.lang.ref

java项目导出为可运行jar包

1.选中要导出的项目, 右键->export,选中java下的JAR file->next,选择要导出的路径->next,finish. 2.选中导出的jar文件用压缩文件管理器打开 3.有个META-INF目录,把里面的MANIFEST.MF文件拖出来.此时MANIFEST文件内容应该只有下面这一行: <span style="font-size:24px;"> Manifest-Version:1.0</span> 4.修改MANIFEST