pdf 怎么把html变成pdf

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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是非常简单的事情。

参考技术A 文件的转换我们经常使用,那么如何将pdf转换成html文件呢?,这里小编使用的方法就简单了。步骤如下:
1、我们打开电脑,浏览器百度搜索“迅捷在线pdf转换器”关键字,找到相关的网页资料,打开
2、进入界面,在首页一栏的“文档转换”“PDF转换”下找到“PDF转HTML”点击
3、在刷新的页面,点击“点击选择文件”进行添加需要转换的文件

4、在“自定义设置转换如下”里,可以对转换的页码,文件的是否公开进行选择

5、设置好后点击“开始转换”就可以进行转换了

6、耐心等待转换条的完成,点击“立即下载”对文件进行保存,在下载之前你也可以先预览转换效果

pdf转html的转换到这就结束了。
参考技术B 方法一:

最初是在老外的网站看到 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查找其所有的版本

以上是关于pdf 怎么把html变成pdf的主要内容,如果未能解决你的问题,请参考以下文章

iText7高级教程之html2pdf——6.在pdfHTML中使用字体

iText7高级教程之html2pdf——6.在pdfHTML中使用字体

java 生成pdf 怎么设置下划线

iText7高级教程之html2pdf——4.使用pdfHTML创建报告

iText7高级教程之html2pdf——4.使用pdfHTML创建报告

怎么样把word文档变成HTML格式