目录
零 一、保存网页快照的三种方法 二、利用打印机保存pdf的方法
零
最近星球有人问如何使用页面打印功能,另存为pdf
一、保存网页快照的三种方法
解决方案已经放在星球内:https://articles.zsxq.com/id_55mr53xahr9a.html 当然也可以看如下代码,如下三种保存快照的方法,分别是保存pdf、保存mhtml文件、保存全局截图,的方法,具体看网页加载情况可以设置滚动到底部再进行如下操作等
from DrissionPage import ChromiumPage
from urllib. parse import urlparse
browser = ChromiumPage( )
url = "https://www.baidu.com/"
file_name = urlparse( url) . netloc. split( ':' ) [ 0 ] . lstrip( 'www.' )
browser. get( url)
browser. save( path= "D:\\" , name= file_name, as_pdf= True )
browser. save( path= "D:\\" , name= file_name, as_pdf= False )
browser. get_screenshot( path= "D:\\" , name= file_name, full_page= True )
二、利用打印机保存pdf的方法
常规步骤,一般我们在浏览器打开网页,然后鼠标右击检查,选择打印,会出现如下页面,然后我们选择另存为pdf,保存这么一个流程,那么dp如何实现这个流程,代码在文章末尾 打印机保存pdf最终代码
import json
from DrissionPage import ChromiumPage, ChromiumOptions
settings = {
"recentDestinations" : [ { "id" : "Save as PDF" , "origin" : "local" , "account" : "" } ] ,
"selectedDestinationId" : "Save as PDF" ,
"version" : 2 ,
"isHeaderFooterEnabled" : True ,
"isLandscapeEnabled" : False ,
"isCssBackgroundEnabled" : True ,
"mediaSize" : { "height_microns" : 297000 , "name" : "ISO_A4" , "width_microns" : 210000 , "custom_display_name" : "A4 210 x 297 mm" } ,
}
co = ChromiumOptions( )
co. set_argument( "--window-size=1920, 1080" )
co. set_pref( 'printing.print_preview_sticky_settings.appState' , json. dumps( settings) )
co. set_pref( 'savefile.default_directory' , r'D:\\' )
co. set_argument( '--kiosk-printing' )
print ( co. preferences)
browser = ChromiumPage( co)
browser. get( "https://www.baidu.com/" )
browser. run_js( f'document.title=" { browser. title} ";window.print();' , timeout= 6 )
参考文章 https://www.cnblogs.com/caroline2016/p/18348831 https://shandianchengzi.blog.csdn.net/article/details/137883196
调用浏览器打印机,另存为pdf
co.set_argument("--print-to-pdf")
co.set_pref("download.prompt_for_download", False)
co.set_pref('plugins.always_open_pdf_externally', False)
co.set_pref('plugins.plugins_disabled', ["Chrome PDF Viewer"])
co.set_pref('profile.default_content_settings.popups', 0)
co.set_pref('directory_upgrade', True)
co.set_argument('--enable-print-browser')
browser.run_js("return window.print()", timeout=6)
"""