社区
C#
帖子详情
wkhtmltopdf 网页转PDF
Wu??
2017-01-06 10:09:34
动态网页,带背景图和图片。现在只能转出文本内容。
...全文
336
7
打赏
收藏
wkhtmltopdf 网页转PDF
动态网页,带背景图和图片。现在只能转出文本内容。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qq_43709033
2020-05-13
打赏
举报
回复
package com.htmlToPdf.cn; import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.InputStreamReader; import java.nio.charset.Charset; import java.util.UUID; class wkthmltopdf { // wkhtmltopdf在系统中的路径 // private static final String toPdfTool = "D:\\wkhtmltox-0.12.5-1.mxe-cross-win64\\bin\\wkhtmltopdf.exe"; /** * html转pdf * * @param srcPath * html路径,可以是硬盘上的路径,也可以是网络路径 * @param destPath * pdf保存路径 * @return 转换成功返回true */ public static boolean convert(String srcPath, String destPath) throws IOException { Process ps = Runtime.getRuntime().exec("where wkhtmltopdf.exe"); BufferedReader br = null; br = new BufferedReader(new InputStreamReader(ps.getInputStream(), Charset.forName("GBK"))); //wkhtmltopdf在系统中的路径 String path =""; String text =""; while ((text = br.readLine())!=null){ path =text; } File file = new File(destPath); File parent = file.getParentFile(); // 如果pdf保存路径不存在,则创建路径 if (!parent.exists()) { //true代表拥有读写权限 file.setWritable(true); parent.mkdirs(); } StringBuilder cmd = new StringBuilder(); if (!System.getProperty("os.name").contains("Windows")) { // 非windows 系统 //toPdfTool = FileUtil.convertSystemFilePath("/home/ubuntu/wkhtmltox/bin/wkhtmltopdf"); } cmd.append(path); cmd.append(" "); //页眉下面的线 cmd.append(" --header-line"); //设置页面上的边距 cmd.append(" --margin-top 3cm "); // (设置页眉和内容的距离,默认0) cmd.append(" --header-spacing 5 "); //设置在中心位置的页脚内容 cmd.append(" --footer-center 第[page]页/共[topage]页"); // * 显示一条线在页脚内容上) cmd.append(" --footer-line"); // (设置页脚和内容的距离) cmd.append(" --footer-spacing 5 "); //要转换的URL链接地址 cmd.append(srcPath); cmd.append(" "); //pdf存放路径 cmd.append(destPath); boolean result = true; try { Process proc = Runtime.getRuntime().exec(cmd.toString()); HtmlToPdfInterceptor error = new HtmlToPdfInterceptor(proc.getErrorStream()); HtmlToPdfInterceptor output = new HtmlToPdfInterceptor(proc.getInputStream()); error.start(); output.start(); proc.waitFor(); } catch (Exception e) { System.out.println("pdf转换出错"); result = false; e.printStackTrace(); } return result; } public static void main(String[] args) throws IOException { wkthmltopdf.convert("https://www.baidu.com", "D:\\test201905\\13.pdf"); } } 亲测可用
assky124
2019-10-10
打赏
举报
回复
cef 直接保存为PDF
qq_16805359
2019-10-10
打赏
举报
回复
九云图文档转换接口, 支持word转pdf、pdf转网页、ppt转pdf、html转pdf、html转pdf等各种格式的文档转换,保留原有格式和布局,矢量缩放,简单调用即可轻松实现在线转换。想体验的可以到九云图官网看下
Jeffery Chan
2017-06-23
打赏
举报
回复
楼主教教我
Wu??
2017-01-06
打赏
举报
回复
string fileNameWithOutExtention = HttpContext.Current.Server.MapPath("..\Content\pdf\" + Guid.NewGuid() + ".pdf"); string wkhtmltopdfPath = HttpContext.Current.Server.MapPath("..\App_Start\wkhtmltopdf.exe"); if (string.IsNullOrEmpty(html)) { return "false"; } ProcessStartInfo si; StringBuilder paramsBuilder = new StringBuilder(); paramsBuilder.Append("--page-size A4 "); paramsBuilder.AppendFormat("\"{0}\" \"{1}\"", "-", fileNameWithOutExtention); si = new ProcessStartInfo(); si.CreateNoWindow = true; si.FileName = wkhtmltopdfPath; si.Arguments = paramsBuilder.ToString(); si.UseShellExecute = false; si.RedirectStandardError = true; si.RedirectStandardInput = true; using (var process = new Process()) { process.StartInfo = si; process.Start(); using (var stream = process.StandardInput) { byte[] buffer = Encoding.UTF8.GetBytes(html); stream.BaseStream.Write(buffer, 0, buffer.Length); stream.WriteLine(); } process.WaitForExit(); } if (File.Exists(fileNameWithOutExtention)) { //把文件读进文件流 FileStream fs = new FileStream(fileNameWithOutExtention, FileMode.Open); byte[] file = new byte[fs.Length]; fs.Read(file, 0, file.Length); fs.Close(); } else { throw new Exception("文件不存在!"); } return fileNameWithOutExtention;
Wu??
2017-01-06
打赏
举报
回复
引用 1 楼 qq_33035717的回复:
求助大神,急。代码如下:
有没有,有没有人回答我啊啊啊
Wu??
2017-01-06
打赏
举报
回复
求助大神,急。代码如下:
使用
wkhtmlto
pdf
将
网页
转
PDF
本文介绍了使用
wkhtmlto
pdf
工具将
网页
转
换为
PDF
和图片的简单方法。首先,你需要从官方网站下载并安装
wkhtmlto
pdf
。安装完成后,在命令行中定位到软件的bin目录,然后通过命令`
wkhtmlto
pdf
.exe <需要导出的地址> <文件保存的目录>`生成
PDF
。若要将
网页
保存为图片,只需将命令中的`
wkhtmlto
pdf
.exe`替换为`wkhtmltoimage.exe`。为了方便使用,可以将bin目录添加到环境变量中。
5分钟搞定
网页
转
PDF
:
wkhtmlto
pdf
完全使用手册
本文介绍了如何使用
wkhtmlto
pdf
将HTML
网页
或本地文件高效
转
换为高质量
PDF
文档。基于WebKit引擎,支持页面设置、页眉页脚定制及批量处理,并提供常见问题如中文显示、图片加载失败的解决方案,适用于各类文档生成场景。
网页
转
PDF
文件工具——
wkhtmlto
pdf
本文介绍了使用
wkhtmlto
pdf
工具将
网页
批量保存为
PDF
的详细步骤,包括下载安装、环境变量配置和测试过程。通过这个工具,可以有效解决多页
网页
打印时可能出现的页面不完整问题。
wkhtmlto
pdf
网页
转
PDF
程序安装教程
本文介绍如何在CentOS 6.8 x64环境下安装并配置
网页
转
PDF
工具
wkhtmlto
pdf
,包括安装依赖、解压二进制包、设置环境变量及验证工具可用性的详细步骤。
怎么拷贝HTML5到centos8网站,centos8平台使用
wkhtmlto
pdf
实现html
网页
转
pdf
本文介绍了
wkhtmlto
pdf
工具的用途,它能将
网页
直接
转
换为
PDF
。文章详细讲解了在CentOS系统中下载、安装及解决依赖问题的过程,并提供了
转
换本地和线上页面的示例。在使用中遇到的文字显示问题,可以通过添加字体或指定字体路径来解决。最后,给出了一个完整的HTML例子,展示了如何生成
PDF
页面。
C#
111,129
社区成员
642,534
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章