繁体   English   中英

我如何在没有包装器的情况下将 dompdf 与 laravel 一起使用

[英]How i use dompdf with laravel without a wrapper

我正在尝试使用没有 barryvdh 包装器的 dompdf,因为我的项目中安装了 laravel 收银员并收到消息:

 - Root composer.json requires barryvdh/laravel-dompdf ^0.9.0 -> satisfiable by barryvdh/laravel-dompdf[v0.9.0].
    - Conclusion: don't install dompdf/dompdf v0.8.4 (conflict analysis result)
    - Conclusion: don't install dompdf/dompdf v1.0.2 (conflict analysis result)
    - Conclusion: don't install dompdf/dompdf v0.8.5 (conflict analysis result)
    - Conclusion: don't install dompdf/dompdf v1.1.0 (conflict analysis result)
    - Conclusion: don't install dompdf/dompdf v0.8.6 (conflict analysis result)
    - Conclusion: don't install dompdf/dompdf v1.1.1 (conflict analysis result)
    - laravel/cashier is locked to version v10.7.1 and an update of this package was not requested.
    - laravel/cashier v10.7.1 requires dompdf/dompdf ^0.8.0 -> satisfiable by dompdf/dompdf[v0.8.0, ..., v0.8.6].
    - You can only install one version of a package, so only one of these can be installed: dompdf/dompdf[v0.8.0, ..., v0.8.6, v1.0.0, ..., v1.1.1].
    - barryvdh/laravel-dompdf v0.9.0 requires dompdf/dompdf ^1 -> satisfiable by dompdf/dompdf[v1.0.0, ..., v1.1.1].
    - Conclusion: don't install dompdf/dompdf v1.0.1 (conflict analysis result)

每当我尝试安装 package 时。 所以我使用收银员附带的 0.8.6 版本来生成我的 pdf。 我做了一个简单的测试:

Route::get('manual-test-pdf', function () {
  $dompdf = new Dompdf();
  $html = view('pdf.test')->render();
  $dompdf->loadHtml($html);

  return $dompdf->stream();
});

尝试渲染视图:

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Pdf test</title>
</head>

<body>
  <h1>Test one</h1>
</body>

</html>

但结果始终是空白页。 ->render()->stream()给出了相同的结果。 我想我做错了什么,但我没有在网上找到任何关于使用纯 dompdf 返回/渲染 pdf 的正确方法,因为每个人都使用 barryvdh 的版本。

谁能告诉我这个?

截至本文发布时,laravel/cashier 的最新稳定版本是v13.7.0 ,它需要:
"dompdf/dompdf": "^0.8.6|^1.0.1"
"php": "^7.3|^8.0"

barryvdh/laravel-dompdf 的最新稳定版本是v0.9.0 ,它需要: "dompdf/dompdf": "^1"
"php": "^7.1 || ^8.0"

对于最近的 PHP 版本,这些软件包看起来很像彼此兼容。

您的 composer.json 文件已经指定:
"barryvdh/laravel-dompdf": "^0.9.0"
但是您的 composer.json 文件将 laravel/cashier 锁定到 v10.7.1 版本。 所以基本上你只需要将你的 cachier 版本从 v10.7.1 更新到更新的版本,例如截至本文发布时的最新版本:v13.7.0

你应该能够通过一个简单的:
composer update

您还可以尝试删除您的 composer.lock 文件,这样您就不会被锁定到特定版本,然后使用composer installcomposer update重试安装/更新。
如果您在删除 composer.lock 文件后需要保留任何特定版本的内容,例如如果它破坏了代码,请在您的 composer.json 文件中指定它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM