A. java中,用itext把html转pdf的时候,html中的一个空格在pdf中显示有2个空格那么大
可以先在后台直接将html里的空格替换成pdf中正常的空格再输出。
B. java中html字符串如何完美转换成pdf文件
1、首先导入itext的包,
然后直接上代码
private static void versionsone(String htmlCode, String pdfPath){
Document document = new Document();
try{
StyleSheet st = new StyleSheet();
st.loadTagStyle("body", "leading", "16,0");
PdfWriter.getInstance(document, new FileOutputStream(pdfPath));
document.open();
BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
Font FontChinese = new Font(bfChinese, 12, Font.NORMAL);
ArrayList<ArrayList> p = HTMLWorker.parseToList(dome_2(htmlCode), st);
for(int k=0;k<p.size();k++){
for(int m=0;m<p.get(k).size();m++){
Paragraph pCode = new Paragraph(p.get(k).get(m).toString(),FontChinese);
document.add(pCode);
}
}
}catch(Exception e){
e.printStackTrace();
}finally{
document.close();
}
}
private static Reader dome_2(String htmlCode){
if(htmlCode != null && !htmlCode.trim().equals("")){
try{
InputStream tInputStringStream = new ByteArrayInputStream(htmlCode.getBytes());
InputStreamReader isr = new InputStreamReader(tInputStringStream,"utf-8");
BufferedReader reader = new BufferedReader(isr);
return reader;
}catch(Exception e){
e.printStackTrace();
}
}
return null;
}
其实此处和别人的最大的不一样的是,
ArrayList<ArrayList> p = HTMLWorker.parseToList(dome_2(htmlCode), st);
其实刚刚开始我在网上找来的代码中是这样写的“ArrayList p = HTMLWorker.parseToList(dome_2(htmlCode), st);”
但后来我通过debug发现,ArrayList 里面装的还是一个集合,然后集合中放得才是真正不含html标签的字符串。对于普通得文章,一般html标签一般都是<p></p>
占大多数。所以我直接用了两层for循环直接从里面取得我们想要的字符串。然后直接“Paragraph pCode = new Paragraph(p.get(k).get(m).toString(),FontChinese);”document.add(pCode);这样就能解决中文问题了
C. 怎样用Java把html转为pdf
java中利用第三方jar包iText 5.4.2就可以实现转为pdf。
比如有如下index.html文件:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<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">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>
样式文件:
h1 {
color:#ccc;
}
table tr td{
text-align:center;
border:1px solid gray;
padding:4px;
}
table tr th{
background-color:#84C7FD;
color:#fff;
width:100px;
}
.itext{
color:#84C7FD;
font-weight:bold;
}
.description{
color:gray;
}
后台转换的接口:
package com.hmkcode;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.pdf.PdfWriter;
import com.itextpdf.tool.xml.XMLWorkerHelper;
public class App
{
public static void main( String[] args )throws DocumentException, IOException
{
// step 1
Document document =new Document();
// step 2
PdfWriter writer = PdfWriter.getInstance(document,new FileOutputStream("pdf.pdf"));
// step 3
document.open();
// step 4
XMLWorkerHelper.getInstance().parseXHtml(writer, document,
new FileInputStream("index.html"));
//step 5
document.close();
System.out.println("PDF Created!" );
}
}
转换结果:
D. java目前有哪些支持中文的html转pdf的开源jar
实例讲述了Java实现Html转Pdf的方法。分享给大家供大家参考。具体如下:
package test;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import org.xhtmlrenderer.pdf.ITextFontResolver;
import org.xhtmlrenderer.pdf.ITextRenderer;
import com.lowagie.text.pdf.BaseFont;
public class wordToPdf {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
String inputFile = "D://test.html";
String url = new File(inputFile).toURI().toURL().toString();
String outputFile = "D://test.pdf";
System.out.println(url);
OutputStream os = new FileOutputStream(outputFile);
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(url);
// 解决中文支持问题
ITextFontResolver fontResolver = renderer.getFontResolver();
fontResolver.addFont("C:/Windows/Fonts/SIMSUN.TTC",
BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
// 解决图片的相对路径问题
// renderer.getSharedContext().setBaseURL("file:/D:/z/temp/");
renderer.layout();
renderer.createPDF(os);
os.close();
}
}
E. java中html怎么转换为可编辑pdf文件
Java代码
//step1
Documentdocument=newDocument();
//step2
PdfWriterwriter=PdfWriter.getInstance(document,newFileOutputStream("pdf.pdf"));
//step3
document.open();
//step4
XMLWorkerHelper.getInstance().parseXHtml(writer,document,
newFileInputStream("index.html"));
//step5
document.close();
System.out.println("PDFCreated!");
Maven构建对应的版本
Xml代码
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.4.2</version>
</dependency>
<dependency>
<groupId>com.itextpdf.tool</groupId>
<artifactId>xmlworker</artifactId>
<version>5.4.1</version>
</dependency>
F. java使用什么工具可以把html页面转换成pdf文件,要支持中文的。
用 这个jar 包 iText-5.0.6.jar
.........................................................................................
import com.itextpdf.text.Document;
import com.itextpdf.text.Font;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfWriter;
public class PaperManager {
public static void buildPaper(IDao , OutputStream outputstream,
long paperid) {
Document document = new Document();
try {
PdfWriter.getInstance(document, outputstream);
document.open();
/** 开始添加内容 * */
BaseFont bfChinese = BaseFont.createFont("STSong-Light",
"UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
Font font1 = new Font(bfChinese, 16, Font.BOLD);
Font font2 = new Font(bfChinese, 14, Font.BOLD);
Font font3 = new Font(bfChinese, 12, Font.NORMAL);
Paragraph par = new Paragraph(“fdfd”, font1);
document.add(par);
par = new Paragraph(“中文”, font2);
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
document.close();
}
}
}
G. itext html转word 字体 linux
一、iText介绍iText是着名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。
二、建立第一个PDF文档用iText生成PDF文档需要5个步骤:
①建立com.lowagie.text.Document对象的实例。
Document document = new Document();
②建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中。
PDFWriter.getInstance(document, new FileOutputStream("Helloworld.PDF"));
③打开文档。
document.open();
④向文档中添加内容。
document.add(new Paragraph("Hello World"));
⑤关闭文档。
document.close();
通过上面的5个步骤,就能产生一个Helloworld.PDF的文件,文件内容为"Hello World"。
建立com.lowagie.text.Document对象的实例
com.lowagie.text.Document对象的构建函数有三个,分别是:
public Document();
public Document(Rectangle pageSize);
public Document(Rectangle pageSize,
int marginLeft,
H. wps支持linux下java文档转换成pdf吗
首先下载安装unoconv采用下面任一种方法:
1)到 http://dag.wieers.com/home-made/unoconv/
下载,再安装.
2) yum install unoconv
然后就可以用命令
unoconv -f pdf
myDoc.doc
进行转换了.以上命令即会生成一个名为 myDoc.pdf 的 pdf
文件。
批量转换需要结合find命令或脚本使用,使用时需注意最好使用C/S模式以加快速度:
unoconv --listener
&
unoconv -f pdf some-document.odt
unoconv -f doc
other-document.odt
unoconv -f jpg some-image.png
unoconv -f xsl
some-spreadsheet.csv
多个PDF文件的合并:
gs -q -dNOPAUSE -dBATCH
-sDEVICE=pdfwrite -sOutputFile=out.pdf
*.pdf
就会生成一个名为out.pdf的文件.但要保证当前目录下没有out.pdf这个文件.
I. 有人做过在Linux环境下用java 语言把html转成word这个功能吗
http://git.oschina.net/Count/html2pdf
这儿有一个html转pdf的
J. 在linux环境下,java怎么实现从word格式转换为pdf格式
linux环境下,word格式转换为pdf格式
word转换到PDF的步骤就相对简单了,我们只需要安装一款虚拟打印机软件“Virtual Pdf Printer”即可,它可以将你编辑好的word文档直接输出为PDF文件格式。
安装后在word中点击“打开”→“打印”,
在“打印机名称”中会看到多了一个“Virtual Printer”选项,
选中它,点击确定后(未注册版本有10秒的等待时间),
弹出“保存PDF文件”对话框,先选择文件的保存路径,
再点击“生成设置”按钮,弹出“系统设置”面板,
对输出后的PDF文件进行加密和字体等设置,
点击两次确定,当前的word文档就被转换成PDF格式的文件了.