问题标签 [browsershot]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
606 浏览

laravel - 无法从 spatie bowsershot 生成 PDF

我已经在我的 laravel 项目中安装了 browsershot 我已经安装了 puppeteer,安装了 chromium,我的 npm 版本已更新,但我仍然无法获取我的简单 html 输入的 PDF,我尝试通过 URL 方法截屏并保存为图像(它有效),但我的要求是生成我的 html 的 PDF。

这是我在控制器中的代码

错误信息:

"message": "进程"PATH=$PATH:/usr/local/bin NODE_PATH='/var/www/html/ProjectName/node_modules/'/usr/local/bin/node'/var/www/html/ benesprint/vendor/spatie/browsershot/src/../bin/browser.js''{"url":"file:\/\/\/tmp\/1933874416-0068512001600765779\/index.html","action" :"pdf","options":{"path":"\/var\/www\/html\/ProjectName\/public\/DevTest.pdf","args":["--no-sandbox"] ,"viewport":{"width":800,"height":600},"displayHeaderFooter":false,"executablePath":"\/usr\/bin\/chromium-browser","timeout":60000," printBackground":true}}'" 超过了 60 秒的超时时间。",

0 投票
0 回答
546 浏览

laravel - 如何将html转换为pdf并存储在laravel中?

我正在使用 BrowserShot 将 HTML 转换为 PDF。当我在存储磁盘上保存 pdf 文件时,我面临以下问题。 The command "PATH=$PATH:/usr/local/bin NODE_PATH=`npm root -g` node '/home/irshad/Desktop/projects/seller-suite/vendor/spatie/browsershot/src/../bin/browser.js' '{"url":"file:\/\/\/tmp\/146500948-0992198001603349147\/index.html","action":"pdf","options":{"args":[],"viewport":{"width":800,"height":600},"displayHeaderFooter":false,"margin":{"top":"18mm","right":"18mm","bottom":"24mm","left":"18mm"},"format":"A4","printBackground":true}}'" failed. Exit Code: 1(General error) Working directory: /home/irshad/Desktop/projects/seller-suite/public Output: ================ Error Output: ================ { TimeoutError: Navigation timeout of 30000 ms exceeded at Promise.then (/home/irshad/Desktop/projects/seller-suite/node_modules/puppeteer/lib/cjs/puppeteer/common/LifecycleWatcher.js:106:111) name: 'TimeoutError' }

我正在使用代码将 HTML 转换为 PDF

我该如何解决它,我浪费了很多时间。谢谢

0 投票
1 回答
249 浏览

laravel - Browsershot:每张纸显示两页

我正在使用 spatie/browsershot 包和 puppeteer 在我的应用程序中生成 pdf。我有几个用于生成的模板,所以我为每个制作的模板创建了一个刀片模板。

我在使用其中一个模板时遇到问题,我正在尝试模拟打印在一张 A4 纸上的两个 A5 页面(横向模式)。纯粹在 css 中执行此操作太困难了(计算页面末尾,在正确的时间进入另一列等),所以我正常生成它,但宽度和高度设置为 A5 尺寸。当然,它出现在工作表的中间,每张纸一页。

我想知道是否有办法用 Browsershot 将两个页面“粘合”在一起。这是我生成pdf的调用:

我认为,如果有办法制作这样的东西,那一定是在这一代。非常感谢!

0 投票
0 回答
232 浏览

laravel - 本地字体未正确加载?

我正在使用Browsershot,它基于Puppeteer从 HTML 创建 PDF。HTML 源代码呈现为 Laravel-Blade。

这是我正在渲染的刀片模板:

app.css包含@font-faces如下:

现在,如果我尝试创建 pdf,这些字体未正确加载。

如果我使用以下方法追踪它:

我看到了这些请求:

我可以使用浏览器打开此路径,并且 Laravel 所在的虚拟机也可以这样做:

但字体仍未应用。

现在,如果我只是使用这样的 Google 字体

它工作得很好。

那么我做错了什么?

0 投票
0 回答
122 浏览

node.js - Windows 10 上的 Laravel 开发 - 无法识别节点

这是我的问题,我正在处理它一天,非常感谢任何帮助。

我正在使用 Laravel 在 Windows 10 上开发一个项目。我已经安装了 NodeJS,NPM 可以正常工作,并且当我node -v通过 CMD 或 PowerShell 检查时,它会显示当前版本。

所以,我的环境变量被放置在它应该在的地方,并且可以正常工作。

但问题是,每当我尝试在 Laravel 中使用依赖节点的某些包时,它都会显示“节点无法识别......”出现此问题的示例有spatie/browsershotrialto-php/puphpeteer和许多其他这通常依赖于 puphpeteer 或节点。

再一次,我的环境变量被设置了,但也许它们没有提供给 Laravel 或类似的东西?

关于这个的任何想法..

提前致谢!

0 投票
1 回答
624 浏览

html - HTML 到 PDF:元素重叠固定页脚

我想将 HTML 呈现为 PDF。为了让它工作,我使用了 Browsershot,它使用无头 Chrome 来呈现 HTML 和 CSS。

这是我适合 A4 格式的附加样式:

这是我的页脚,包括:

我的问题是:非常大的元素现在与页脚部分重叠,如下所示:

在此处输入图像描述

我的问题:如何避免重叠并将表格打断到下一页?

0 投票
0 回答
312 浏览

laradock - 在 Laradock 上为 Browsershot 安装 chromium

我有一个在 Laradock 上运行的 Laravel 项目,我正在尝试使用这个包从视图中生成 PDF 文件:https ://github.com/spatie/browsershot

它使用 Puppeteer 来完成该部分并使用无头镀铬。

至此,我刚刚制作了一个控制器,它调用了一个基本函数进行测试:

我得到错误:

我确实通过 npm 在本地安装了 puppeteer 并且/var/www/projects/my-project/node_modules/puppeteer/.local-chromium/linux-856583/chrome-linux/chrome确实存在。

我不确定该怎么做。在 Browsershot 文档中,它说您可以运行:

在锻造。我不确定这是否也适用于我的 laradock 环境。但是错误是抱怨它在我的文件夹中找不到该文件node_modules

完整的原始错误是:

编辑:在我的 Dockerfile 中添加了以下内容php-fpm

/usr/lib/node_modules/文件夹从未创建,现在当我尝试加载页面时,出现503错误。

0 投票
0 回答
345 浏览

node.js - 在 spatie/browsershot 中生成 pdf 不起作用

我正在尝试使用 spatie/browsershot 包生成 pdf,但面临一些套接字(10106)错误。

错误 :-

我正在使用“laravel/framework”:“5.7.*”,“spatie/browsershot”:“3.40”,npm 6.9.0,节点 12.5.0

代码:-

请提供一些反馈,谢谢。

0 投票
0 回答
1284 浏览

php - Browsershot 不会保存或写入我的 pdf -> 由于某种原因 Chrome 没有写入

寻找聪明的头脑来帮助我解决我的问题。我继承了一个 Laravel v5.3 项目,该项目应该能够将 CV 从 html 传递到 .pdf。他们一直在使用 spatie/browsershot 来完成这项任务。但是由于某种原因,该软件包不会写入该死的文件。我一直在查看传递给该函数的 html,并且全部检查出来。于是我去Github上的指南,把这行代码作为函数中唯一剩下的一行代码放入了代码文件中。

无论我做什么,我都会收到以下错误消息:

我还尝试为 Browsershot 提供一个绝对路径来保存文件。但是不要紧。在过去的两周里,我查阅了许多不同的指南,但似乎没有任何效果。Puppeteer 也安装在本地。

顺便说一句,我正在运行带有最新更新的 Windows 10 机器,如果这很重要的话。

0 投票
1 回答
1028 浏览

laravel - 为什么在使用 spatie/browsershot 生成的 pdf 文件中没有标题并且任何页面的最后一行被截断?

在 Laravel 8 应用程序中,我使用 browsershot 制作 pdf 文件,它对我来说大部分都可以正常工作,除非我的数据包含多个页面,我有 2 个问题:

  1. 我没有看到我用页脚定义的标题(下面的代码):https ://imgur.com/a/2bkn3aD

  2. 我看到任何页面的最后一行都被切断了:https ://imgur.com/a/cKpv7yR

我通过将代码传递到控制 html 内容和生成的文件名来做到这一点:

在 composer.json :

如何解决?

修改: 我在生成 pdf 时仍然遇到这些问题:我在实时服务器上上传了示例。 请在登录页面凭据已填写时打开 http://tads-back.my-demo-apps.tk/admin/ads/2/edit 。只需点击登录,上面的链接将打开模式页面,请点击“生成”按钮。默认情况下,将生成 pdf 文件,并在我的主题的打印屏幕中显示问题。我在 bootstrap 4.5 中使用了这个库,但没有这样的库问题。同样在https://github.com/spatie/browsershot的描述中,我没有看到任何带有页脚的错误描述。

我的代码我展示了我如何设置顺风类

也许顺风有一些我错过的渲染功能?

谢谢!