看到那个用 WORD 筛选简历的帖子,想起这个需求。
之前谷歌到一款付费的 api,但是很坑爹
今天登陆账号一看,清零了,心疼之前没用完的配额,不知道有来源的解决方案吗,html 转 pdf 有什么难点?
1
undeflife 2018-01-18 23:17:50 +08:00 2
自建后端 使用 wkhtmltopdf
也有前端转 pdf 的方案 也就是 html->canvas->image->pdf 效果不好:文件尺寸大、不清晰等问题 如果倾向第三方 api 的话 https://www.sejda.com/html-to-pdf 我试过效果还不错 |
2
lozzow 2018-01-19 00:02:40 +08:00 via Android
chrome,打印,另存为 PDF 不可以么
|
3
Tink 2018-01-19 00:10:37 +08:00 via iPhone
打印
|
4
ospider 2018-01-19 00:11:32 +08:00 via Android
pandoc
|
5
qsnow6 OP @Tink #3 @lozzow #2 打印没办法自动化啊,每个月有几十份要转
@undeflife #1 我试试 WKHTMLTOPDF 之前我用的第三方 api 是 https://pdfcrowd.com 效果还行,就是付费策略太坑 |
6
herozhang 2018-01-19 00:51:22 +08:00
chrome,打印,另存为 PDF 不可以么
|
7
shiny 2018-01-19 00:54:21 +08:00 2
|
8
yangxiongguo 2018-01-19 01:11:38 +08:00 via Android
按按按键键键精灵,另外 7 楼是最好的方案
|
9
geelaw 2018-01-19 01:48:50 +08:00 2
可以自动化 IE 的打印功能。
大概思路: $PdfPrinter = @(Get-WmiObject -Class Win32_Printer | Where-Object Name -Like '*pdf*') If ($PdfPrinter.Count -ne 1) { Write-Error '有多个 PDF 打印机或者没有 PDF 打印机' exit } # 设置 Microsoft Print to PDF 为默认打印机 $PdfPrinter[0].SetDefaultPrinter() # 打开 IE $IE = New-Object -ComObject InternetExplorer.Application $IE.Navigate('https://geelaw.blog/') # 等 IE 加载完毕 While ($IE.Busy) { Start-Sleep 1; } # 生成一个文件名 $FileName = [System.IO.Path]::Combine($env:TMP, [System.Guid]::NewGuid().ToString('n') + '.pdf') # 准备一个脚本对象 $WSh = New-Object -ComObject WScript.Shell # 用默认打印机打印 $IE.ExecWB(6, 2) # 这里的等待时间需要动态调整才行,等保存对话框弹出来 Start-Sleep 1; # 复制文件名,按 Ctrl+V,再按 Enter $FileName | Set-Clipboard $WSh.SendKeys('^V{ENTER}') # 需要动态调整,等打印完成 Start-Sleep 1 # 关掉 IE $IE.Quit() # 打开保存的文件 $FileName | Invoke-Item 你可以使用可以编程设置保存位置的打印机来更好地自动化保存的位置(似乎 Adobe PDF Printer 是可以的)。 |
10
ysc3839 2018-01-19 02:34:48 +08:00
@geelaw 刚才试了一下,选择位置的对话框是在当前进程中的。那可以自己程序里调用 WebBrowser 打印,同时 Hook 一下相关 API,直接返回对应的位置。
|
11
binux 2018-01-19 02:37:37 +08:00 1
|
13
ysc3839 2018-01-19 02:57:58 +08:00
关于网页兼容性。
wkhtmltopdf 用的是 QtWebKit。 刚才我说的调用 WebBrowser 还有些坑,要改个注册表来使用新版本的 IE 内核,否则会使用 IE7 的内核。 另外 Win10 的话有办法调用 Edge 的内核。 论通用性兼容性,Headless Chrome 是最好的。 |
14
GreatMartial 2018-01-19 07:57:21 +08:00 via Android
simple PDF
|
15
yingfengi 2018-01-19 08:16:36 +08:00 via Android
打印成 PDF
|
16
xycool 2018-01-19 08:47:58 +08:00
试试 Puppeteer ?
|
17
murmur 2018-01-19 08:49:05 +08:00
感觉 chrome 的打印功能很好用
|