当前位置:首页 > 知识普及 > 正文内容

网页转pdf,这个工具真好用

网页转pdf,这个工具真好用

http://doctron.lampnick.com/

网页转pdf,这个工具真好用 第1张

doctron在线体验demo

还有挺多其他的,可以自己搜索,但是都不符合我的预期。

在浏览器中启用打印功能,您可以通过右键点击选择“打印”或按快捷键Ctrl+P。随后,在弹出的打印设置窗口中,挑选合适的打印机,并勾选“另存为PDF”选项。完成这些步骤后,点击“保存”按钮,即可将文件下载为PDF格式。若需使用本地软件进行转换本地html转换成pdf,请按照相应软件的操作指南进行操作。

Doctron,这是我今天要介绍的重头戏。

Doctron是一款依托于Docker技术的文档转换服务,其特点是无状态、易于使用、响应迅速且保证输出质量。目前本地html转换成pdf,该服务能够实现HTML到PDF以及图片格式的转换,其中图片转换采用了基于Chrome(Chromium)浏览器的内核,以确保转换效果。此外,Doctron还支持在PDF文档上添加水印功能。

管他的网页转pdf,这个工具真好用,先把代码下载下来再说

克隆代码,请访问链接:https://gitcode.net/mirrors/lampnick/doctron.git,执行git clone命令。

网页转pdf,这个工具真好用 第2张

仓库

运行

go build
执行命令:./doctron,配置文件为conf目录下的default.yaml。

网页转pdf,这个工具真好用 第3张

运行截图

转pdf,访问

访问http://127.0.0.1:8080/convert/html2pdf?u=doctron&p=lampnick&url=,只需将链接中的url替换为你想要转换的网址,即可完成操作。

网页转pdf,这个工具真好用 第4张

转换效果

接下来,我将编写程序以实现所需网页的大规模转换,然而,我面临的网页转换任务存在两项特定的要求。

1、网站需要会员登录,不然只能看得到一部分

2、需要把网站的头和尾去掉的

这让我感到很棘手,对go语言并不熟悉,尽管如此我还是硬着头皮尝试,相信一定有方法可以打开这个网址网页转pdf,这个工具真好用,于是我开始在代码中逐一排查,边找边调试,经过不懈的努力本地html转换成pdf,最终成功找到了调用该网址的位置。

第一步:添加网站用户登录cookie

网页转pdf,这个工具真好用 第5张

添加cookie之前

网页转pdf,这个工具真好用 第6张

添加cookie之后

第二步:去掉网站头尾

chromedp执行评估操作,指定选择器为`$('.header')`,并对其应用CSS样式,将`display`属性设置为`none`,以实现隐藏效果。
将具有类名“btn-group”的元素样式设置为“display:none”,使其不可见。
选择器“$.container .container:first”对应的元素,其CSS样式中的“display”属性将被设置为“none”,从而实现隐藏效果。
将具有类名“breadcrumb”的元素样式设置为“display:none”。
将类名为'.footer'的元素样式设置为"不显示",并将缓冲区变量buf的内容进行操作。

打开网页后执行js代码把头尾隐藏掉

第三步:程序化,批量自动生成pdf


        try {
fileName = pdfFile中的斜杠被冒号所替代。
filePath变量被赋值为folder路径与fileName文件名连接后的结果。
创建一个名为srcFile的File对象,其路径设置为filePath。
创建一个新文件夹,路径为/Volumes/disk2/myproject,随后加上分隔符,再接上cl变量所表示的路径。
创建一个新文件对象,该对象指向位于新文件夹中的指定文件,命名为destFile。
            if(destFile.exists()){
                return;
            }
            if(srcFile.exists()){
                //移动到对应目录
                if(!newFolder.exists()){
                    newFolder.mkdirs();
                }
FileUtils执行了文件移动操作,将源文件(srcFile)转移至目标文件(destFile)。
                return;
            }
            if(!newFolder.exists()){
                newFolder.mkdirs();
            }
String url = "请访问以下网址进行转换操作,该地址为本地服务器地址,端口号为8888,具体路径为convert/html2pdf,查询参数包括用户名为doctron,项目名为lampnick,以及需要转换的URL链接,具体链接内容如下:";
            HttpEntity entity = new HttpEntity(null, null);
初始化RestTemplate对象,命名为restTemplate。
            ResponseEntity通过 restTemplate,执行对指定 URL 的 GET 请求,将请求实体与 byte[] 类型的响应数据关联,并完成数据交换。
            if (bytes.getBody().length <= 100) {
                if(urlList.containsKey(urlhref)){
                    Integer failCount = urlList.get(urlhref);
                    if(failCount > 3){
输出信息显示:“下载未果,原因如下:客户端标识为” + cl + “,文件名为” + pdfFile + “,链接地址为” + urlhref;”
                        return;
                    }
                    failCount++;
将urlhref对应的失败次数记录到urlList中,具体操作为:urlList.put(urlhref, failCount)。
                }else{
                    urlList.put(urlhref , 1);
                }
在指定文件夹内,针对给定的类和PDF文件,对URL链接进行PDF生成处理。
            }else{
                if (!destFile.exists()) {
                    try {
                        destFile.createNewFile();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
尝试执行以下操作:以输出流的形式创建一个指向目标文件的连接,并确保在操作完成后自动关闭该连接(FileOutputStream out = new FileOutputStream(destFile);)。
输出流写入字节内容,起始位置为0,长度等于字节内容本身的长度。
                    out.flush();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

最终成果:

网页转pdf,这个工具真好用 第7张

文件夹分类存放

网页转pdf,这个工具真好用 第8张

pdf文件

加入微信交流群:************ ,请猛戳这里→点击入群

扫描二维码推送至手机访问。

版权声明:本文由智汇百科网发布,如需转载请注明出处。

本文链接:https://www.zhihuibkw.com/post/3591.html

分享给朋友:

“网页转pdf,这个工具真好用” 的相关文章

江歌案二审维持原判!刘鑫需赔偿69万元,网友欢呼

江歌案二审维持原判!刘鑫需赔偿69万元,网友欢呼

江歌案,这一曾引起广泛关注和热议的事件,在历经漫长的司法程序后,终于迎来了二审的维持原判结果。刘鑫需赔偿 69 万元,这一判决无疑是对逝者江歌的告慰,也是司法公正的彰显,而网友们的欢呼更是表达了他们内心深处对于正义的渴望与坚守。江歌案的一审判决曾引发了巨大的社会震动,刘鑫在江歌为保护她而惨遭杀害的事...

北大教授呼吁取消英语主科地位!网友:早该如此

北大教授呼吁取消英语主科地位!网友:早该如此

在教育领域,英语一直占据着重要的地位,是众多学生学习的重点科目。近年来,越来越多的声音开始质疑英语的主科地位,认为其在教育资源分配、学生负担等方面存在诸多问题。北大教授的这一呼吁,无疑再次引发了社会各界对英语教育的深入思考。英语作为一门国际语言,其重要性不可否认。在全球化的时代背景下,掌握英语能够为...

如何看懂天气预报:气象知识大普及

如何看懂天气预报:气象知识大普及

天气预报,作为我们日常生活中不可或缺的一部分,它为我们提供了关于天气状况的重要信息,帮助我们做出各种决策,如出行、穿衣、农业生产等。对于许多人来说,看懂天气预报可能并不是一件容易的事情。下面,我们将进行一次气象知识大普及,帮助大家更好地理解和看懂天气预报。一、天气预报的基本要素天气预报主要包括以下几...

法律常识维护自身权益的武器

法律常识维护自身权益的武器

在生活的舞台上,我们每个人都可能遭遇各种权益被侵犯的情况,无论是在消费领域、职场之中,还是在日常生活的点滴之中。当权益受到侵害时,我们不能只是默默忍受,而应拿起法律这一强大的武器,来捍卫自己的合法权益。法律常识就如同我们手中的利剑,能在关键时刻为我们劈开迷雾,指引我们走向公正的道路。了解基本的法律概...

昆虫知识认识身边的小昆虫

昆虫知识认识身边的小昆虫

在我们的日常生活中,身边常常有一些小小的生物在默默活动,它们就是昆虫。昆虫是地球上最繁盛的动物类群,种类繁多,形态各异,几乎无处不在。通过了解昆虫知识,我们能更好地认识这些微小而神奇的生命,也能更加珍惜和保护我们的自然环境。让我们来认识一些常见的昆虫。蜜蜂是大家非常熟悉的昆虫,它们忙碌地在花丛中飞来...

葡萄酒品鉴知识:从新手到行家

葡萄酒品鉴知识:从新手到行家

葡萄酒,那是一种流淌在时光与味蕾之间的神奇液体,它承载着历史、文化与自然的馈赠。对于葡萄酒的品鉴,从新手到行家,是一段充满趣味与挑战的旅程,让我们一同踏上这美妙的品鉴之路。新手阶段,仿佛是打开葡萄酒世界大门的初始时刻。我们需要了解葡萄酒的基本分类。从颜色上,有红葡萄酒、白葡萄酒和桃红葡萄酒之分;从酿...