1 安装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是非常简单的事情。
public boolean convertHtmlToPdf(String inputFile, String outputFile)
throws Exception {
OutputStream os = new FileOutputStream(outputFile);
ITextRenderer renderer = new ITextRenderer();
String url = new File(inputFile).toURI().toURL().toString();
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:/");
renderer.layout();
renderer.createPDF(os);
os.flush();
os.close();
return true;
}
上面这段代码是这样的,输入一个HTML地址URL = inputFile,输入一个要输出的地址,就可以在输出的PDF地址中生成这个PDF。
注意事项:
1.输入的HTML页面必须是标准的XHTML页面。页面的顶上必须是这样的格式:
并且HTML页面的语法必须是非常严谨的,所有标签都必须闭合等等(由于flying-Saucer做了XML解析的工作,不严谨会报错的。),这是对页面的第一个要求。
2.要用到图片的地方写相对路径的形式,比如:
而它的图片位置则必须在Java代码中指定。
renderer.getSharedContext().setBaseURL("file:/D:/");
也有另一种方法就是直接在标签中写绝对路径。
3.Flying-Saucer在解析tiff格式的图片的时候会报错。具体原因我还没找到。希望大家能够指点我。
4.如果在页面中有中文字体的话。必须在HTML代码中的样式中写上某种字体的css,并且必须是用英文的,然后在Java代码中写上对应的文件位置。
ITextFontResolver fontResolver = renderer.getFontResolver();
fontResolver.addFont("C:/Windows/Fonts/SIMSUN.TTC", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
上面的方法是添加了宋体。也可以添加其他字体。
安装一个虚拟的PDF打印机就可以转成PDF了
打开网页 选择打印 然后选择打印源 选择保存为pdf
不能转换的,只能旋转PDF文件页面
旋转PDF文件页面的话,用工具就很好的解决了,能节省很多时间的
把PDF文件打开在工具上面,可以熟悉下工具
在选择旋转页面,旋转90度就可以了(迅捷 PDF 编辑器)