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

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

admin2周前 (05-26)知识普及18

网页转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://zhihuibkw.com/post/3591.html

分享给朋友:

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

理财小白入门:基础金融知识扫盲

理财小白入门:基础金融知识扫盲

在当今社会,理财已经不再是富人的专属话题,越来越多的理财小白开始关注并尝试参与到金融市场中。对于初涉理财领域的人来说,金融知识往往如同一座神秘的迷宫,充满了各种专业术语和复杂的概念。本文将为理财小白们揭开基础金融知识的神秘面纱,帮助大家建立起基本的理财观念和知识框架。一、货币与货币时间价值货币是我们...

音乐基础知识:开启音乐之旅

音乐基础知识:开启音乐之旅

音乐,作为人类表达情感和思想的重要艺术形式,拥有着无穷的魅力。无论是激昂的交响乐、抒情的钢琴曲,还是欢快的民谣,都能触动我们的心灵,引发共鸣。而要真正领略音乐的美妙,了解音乐基础知识是必不可少的。让我们一起开启这场音乐之旅,探索音乐的奥秘。音乐的基本元素包括音符、节拍、旋律、和声等。音符是音乐的基石...

常见蔬菜的营养价值

常见蔬菜的营养价值

蔬菜是我们日常饮食中不可或缺的重要组成部分,它们不仅为我们的味蕾带来丰富的口感,还蕴含着多种对人体健康至关重要的营养成分。一、绿叶蔬菜绿叶蔬菜是蔬菜家族中的佼佼者,其中以菠菜、生菜、西兰花等最为常见。菠菜富含维生素 A、C、K 以及铁、钙等矿物质。维生素 A 有助于维持视力和皮肤健康,维生素 C 具...

认识中国传统节日的由来

认识中国传统节日的由来

中国是一个拥有悠久历史和灿烂文化的,传统节日便是这文化宝库中的璀璨明珠。这些节日承载着中华民族的传统习俗、价值观念和精神内涵,历经千年而不衰,至今仍深深影响着我们的生活。春节,是农历新年的开始,也是中国最重要的传统节日。据传说,春节的由来与一个叫“年”的怪兽有关。“年”兽凶猛异常,每到除夕便会出来吞...

常见花卉的花语

常见花卉的花语

花卉,作为大自然赋予我们的美丽礼物,不仅以其绚烂的色彩和迷人的姿态装点着世界,还蕴含着丰富的情感与寓意,这便是花语的由来。每一种常见的花卉都仿佛是一位默默诉说的使者,通过独特的花语,传递着人们内心深处的情感和思想。玫瑰,无疑是花卉世界中最具代表性的存在之一,它的花语饱含着爱情、美丽与热情。红玫瑰象征...

认识不同类型的云

认识不同类型的云

在广袤的天空中,云朵宛如一幅幅变幻莫测的画卷,它们以各种形态和颜色展现在我们眼前,每一种云都有着独特的特征和意义。让我们一同走进云的世界,去认识那些不同类型的云。首先要说的是积云,这是我们在晴朗天空中最常看到的云之一。积云通常呈现出白色或灰色的蓬松状,形状如同巨大的棉花团。它们常常孤立地飘浮在空中,...