pdf 怎么把html变成pdf
1 用Adobe Acroat 8.1.2,打开网页后,页面右键菜单中会出现一个“转换为Aobe PDF的选项,点击就可以转换。
安装Adobe Acrobat后会默认在IE浏览器中添加PDF工具栏。
该工具可以方便的将网页转化成PDF文档,或者添加入已有的PDF文档,Adobe PDF Explorer工具栏则可以在IE的收藏夹界面内管理window内的HTML文档与PDF文档的转化。
2、安装单独的pdf虚拟打印机(pdffactory、ultra pdf等),通过网页的打印功能转换。
3 使用客户端软件HTML2PDF_Pilot。
HTML2PDF_Pilot的截面如上图,很简洁。
如果只是要完成最简单的工作只需如箭头所示,点击上方的添加按钮添加HTML文档然后点击转换,稍等既可以完成一个HTML文档的转化工作。
两种方法的比较
灵活性:
PDF工具栏的方式相比客户端的方式要灵活许多。
在使用的过程中发现HTML2PDF_Pilot不能通过URL(网址)直接转化PDF文档,而工具栏只需在浏览的过程随意使用。
功能: 在功能的环节上,客户端方式的HTML2PDF_Pilot就明显要比PDF工具栏要强大许多
工具栏只提供了最基本的保存和添加入已有文档的功能,而HTML2PDF_Pilot则提供了更为丰富的选项。
另外,如果需要批量转化网页文件的话,工具栏的方式也无法提供对应的功能。
其实还是有很多可以选择的方式,比如把网页转化为WORD的文件格式然后通过WPS软件来转化文档等,只要能灵活运用,html文件转PDF是非常简单的事情。
1、我们打开电脑,浏览器百度搜索“迅捷在线pdf转换器”关键字,找到相关的网页资料,打开
2、进入界面,在首页一栏的“文档转换”“PDF转换”下找到“PDF转HTML”点击
3、在刷新的页面,点击“点击选择文件”进行添加需要转换的文件
4、在“自定义设置转换如下”里,可以对转换的页码,文件的是否公开进行选择
5、设置好后点击“开始转换”就可以进行转换了
6、耐心等待转换条的完成,点击“立即下载”对文件进行保存,在下载之前你也可以先预览转换效果
pdf转html的转换到这就结束了。
最初是在老外的网站看到 http://hmkcode.com/itext-html-to-pdf-using-java/
Java代码
// 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!" );
Maven构建对应的版本 关于eclipse配置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>
最简单的方式,HTML支持度很好,可惜不支持中文 源码地址:https://github.com/hmkcode/Java/blob/master/itext-java-html-pdf
方法二:
使用的jar包:itext-2.0.8.jar core-render.jar
App.java
Java代码
/**
*
* @author LJS
*
*/
public class App {
public void createPdf() throws Exception {
// step 1
String inputFile = "index.html";
String url = new File(inputFile).toURI().toURL().toString();
String outputFile = "index.pdf";
System.out.println(url);
// step 2
OutputStream os = new FileOutputStream(outputFile);
org.xhtmlrenderer.pdf.ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(url);
// step 3 解决中文支持
org.xhtmlrenderer.pdf.ITextFontResolver fontResolver = renderer
.getFontResolver();
fontResolver.addFont("c:/Windows/Fonts/simsun.ttc", BaseFont.IDENTITY_H,
BaseFont.NOT_EMBEDDED);
renderer.layout();
renderer.createPDF(os);
os.close();
System.out.println("create pdf done!!");
}
public static void main(String[] args) throws Exception {
App app = new App();
app.createPdf();
}
}
注意指定中文字体
要转换的HTML
index.html
Html代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns="http://www.w3.org/1999/xhtml ">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>itext-zh-cn</title>
<style type="text/css">
body {
font-family: SimSun;
}
</style></head>
<body>
<p align="left" >OK,支持中文了:)</p>
</body>
</html>
同样也要指定中文字体,区分大小写
运行程序,转换结果:
(字体样式和大家熟知的宋体不同,因为我替换了系统默认的宋体,pdf查看工具推荐PDF-XChange Viewer)
pdf样式修改为A4 ( Document doc = new Document(PageSize.A4.rotate());)
在index.html中添加
Html代码
<style type="text/css">
@page{ size: 11.69in 8.27in;}
...
</style>
注意:无论哪种方式的Html格式转换pdf,对于html源文件要求是语法严格的;方法二支持基本的CSS样式,可以调整出合适的HTML模板。
大家有更好的方法,欢迎交流
其他:itext添加图片方法:实际应用中,应该与生成pdf合成一步提升性能
Java代码
public static void addImg(String fm) throws Exception {
PdfReader reader = new PdfReader("temp.pdf");
PdfStamper stamp = new PdfStamper(reader,new FileOutputStream("model.pdf"));
Image img = Image.getInstance("code.png"); //使用png格式
img.setAlignment(Image.LEFT | Image.TEXTWRAP);
img.setBorderWidth(10);
img.setAbsolutePosition(420, 240);
img.scaleToFit(1000, 60);// 大小
PdfContentByte over = stamp.getUnderContent(1); // overCount 与underCount
over.addImage(img);
stamp.close();
reader.close();
}
itext 版本号众多,可以在gerpcode查找其所有的版本
广告 您可能关注的内容 |