dompdf 相关问题

用PHP编写的HTML到PDF转换器

Barryvdh\DomPDF\Facade\Pdf 不加载 css 和图像

在本地一切正常,但一旦我去检查部署,它就完全失败了。如果我将其转换为视图而不是像我的代码那样的 pdf,则可以按照我的意图检查 pdf 文件 什么...

回答 1 投票 0

dompdf:找不到图像或类型未知

这是我的代码, 我几乎尝试了所有在 PDF 上显示图像的方法,但仍然不起作用。 你能帮我解决这个问题吗? 我还将 DOMPDF_ENABLE_REMOTE 设置为 true,结果仍然相同...

回答 11 投票 0

使用 Laravel 的 amazon s3 中的 dompdf 输出未上传数据

嗨,我正在尝试上传未上传的 dompdf 输出 我试过 $path = \Storage::disk('s3')->put('invoice/invoice-1001aaaaaa.pdf', $pdf->output(), ['visibility' => 'public']); $...

回答 1 投票 0

希腊字母被替换为???一旦我使用 PHPWord 将 docx 转换为 pdf?

我做了以下简单的 laravel artisan 命令: Artisan::command('测试:pdf',function(){ \PhpOffice\PhpWord\Settings::setPdfRendererName(\PhpOffice\PhpWord\Settings::PDF_RENDERER_DOMPDF); ...

回答 2 投票 0

Laravel:在 pdf 上添加具有特定位置的图像

构建Laravel API,我有合同PDF文件存储在远程服务器中,并以uid保存在数据库中,还有在线签名文件,是png。现在,当用户单击签名按钮时,我想要...

回答 1 投票 0

dompdf 添加到附件 Laravel

我想将 pdf 文件保存在 laravel 中而不是下载它,以便在创建邮件时可以附加它。 似乎在文档中找不到保存功能。 $document = new Dompdf($option...

回答 1 投票 0

在 Symfony 应用程序中使用 Dompdf 识别和解决内存问题

问题描述 我在使用 Dompdf 生成 PDF 文件时在 Symfony 应用程序中遇到内存不足问题。我怀疑 Dompdf 库中可能存在内存泄漏。投资...

回答 1 投票 0

laravel dompdf 导出不导出我视图的所有内容

我目前正在使用 Laravel 9,laravel dompdf 包来导出我的文件,这是我得到的 pdf 文件,根本没有内容。我传递的数据没有显示在 PDF 中。 但是当我把它打开为 v...

回答 2 投票 0

dompdf 字符编码 UTF-8

我正在尝试使用正确的字符创建pdf,但有“?”字符。 我创建了一个测试 php 文件,我试图在其中寻找最佳解决方案。如果我在浏览器中打开 html,我看起来不错 你...

回答 12 投票 0

Dompdf 显示尼泊尔语字符的问题

我正在使用 Dompdf 为我的尼泊尔内容创建 pdf。我在我的控制器中编写了以下代码: 公共函数generatePDF(请求$请求){ $data = $this->news->where('slug', $r...

回答 2 投票 0

如何使用 dompdf 获取多个不同大小的 pdf

我有一个 php 文件。我想用dompdf将php页面中的html代码转换为pdf。 我的PHP页面是这样的; 帕格... 我有一个 php 文件。我想用dompdf将php页面中的html代码转换为pdf。 我的PHP页面是这样的; <!--First Page--> <div class="container"> Page 1 </div> <div class="page-break></div> <!--Second Page--> <div class="container"> Page 2 </div> <div class="page-break></div> <!--Third Page--> <div class="container"> Page 3 </div> <div class="page-break></div> .... <!--Sixth Page--> <div class="container"> Page 6 </div> 我想将此 php 页面转换为 pdf,如下所示。 页面尺寸横向, 页面尺寸横向, 页面尺寸横向, 页面尺寸纵向, 页面尺寸纵向, 页面尺寸纵向 你能帮忙吗? 我可以使用 dompdf 将 php 页面中的 html 代码转换为 pdf 文件。但是,我无法使我的 php 页面中的 html 页面水平和垂直。 我的PHP页面是这样的; -html- -div-容器 第1页 -div-分页符 -div-容器 第2页 -div-分页符 -div-容器 第3页 -div-分页符 。 . -div-容器 第 6 页 我想将此 php 页面转换为 pdf,如下所示。 1.页面尺寸横向,2.页面尺寸横向,3.页面尺寸横向,4.页面尺寸纵向,5.页面尺寸纵向,6.页面尺寸纵向

回答 1 投票 0

使用 dom pdf 打开时生成的 pdf 已损坏

我正在从数据模态传递后变量。我使用的查询已经过检查并且是正确的。我对如何定义变量 $html 感到困惑 这是我的代码 我正在从数据模态传递后变量。我使用的查询已经过检查并且是正确的。我对如何定义变量感到困惑$html 这是我的代码 <?php require_once __DIR__ . "/../functions.php"; require_once __DIR__ . "/../dompdf/autoload.inc.php"; use Dompdf\Dompdf; if (isset($_POST['exprt'])) { $html = '<!DOCTYPE html> <html> <center> <div class="icon-centered"> <img style="object-fit: contain; margin-left: 40px;" src="' . $init->base_url('assets/img/profil_rs/' . $klinik->foto_rs) . '" alt="Logo" width="13%"> </div> <h1>Sensus Harian Rawat Inap <br /> RSPAD Gatot Soebroto</h1> </center> <!-- Table --> <div class="table-responsive datatable-custom"> <table border="1"> <thead>'; foreach ($arrDisplay as $date => $pasien): $html .= ' <tr> <td colspan="12" align="center"> ' . print($date) . ' </td> </tr> <tr> <th>No</th> <th>Nomor Registrasi</th> <th>Nomor Rekam Medis</th> <th>Nama Pasien</th> <th>Umur</th> <th>Poliklinik</th> <th>Dokter</th> <th>Ruang Perawatan</th> <th>Tanggal Masuk</th> <th>Tanggal Keluar</th> <th>Lama Dirawat</th> <th>Cara Keluar</th> </tr> </thead> <tbody>'; $no = 1; foreach ($pasien as $s): $datemasuk = new DateTime($s->tglmasuk); $datekeluar = new DateTime($s->tglkeluar); $age = $init->findage($s->tglahirP); $lamarawat = $init->lamarawat($s->tglmasuk, $s->tglkeluar); $html .= ' <tr role="row" class="even"> <td> ' . $no . ' </td> <td> ' . $s->no_register . ' </td> <td> ' . $s->norm . ' </td> <td> ' . $s->nmpasien . ' </td> <td> ' . $age . ' </td> <td> ' . $s->nmpoli . ' </td> <td> ' . $s->nmdokter . ' </td> <td> ' . $s->nmruang . ' </td> <td> ' . $datemasuk->format('d/m/Y H:i:s') . ' </td> <td> ' . $datekeluar->format('d/m/Y H:i:s') . ' </td> <td> ' . "$lamarawat hari" . ' </td> <td> ' . $s->nmcrkeluar . ' </td> </tr>'; $no++; endforeach; $html .= '</tbody>'; endforeach; $html .= '</table> </div> <!-- End Table --> </body> </html>'; $dompdf = new Dompdf(); $dompdf->loadHtml($html); $savein = 'download/Document/'; $dompdf->setPaper('A4', 'Landscape'); $dompdf->render(); // Download pdf $dompdf->stream($filename, ["Attachment" => 0]); } ?> 我尝试过ob_start(),但没用 我的代码有问题吗? 你的语法有很多错误,你的开始标签在循环之外,但它们的结束标签在循环内。 不漂亮,但试试这个: <?php require_once __DIR__ . "/../functions.php"; require_once __DIR__ . "/../dompdf/autoload.inc.php"; use Dompdf\Dompdf; if (isset($_POST['exprt'])) { $html = ' <!DOCTYPE html> <html> <center> <div class="icon-centered"> <img style="object-fit: contain; margin-left: 40px;" src="' . $init->base_url('assets/img/profil_rs/' . $klinik->foto_rs) . '" alt="Logo" width="13%"> </div> <h1>Sensus Harian Rawat Inap <br /> RSPAD Gatot Soebroto</h1> </center> <!-- Table --> <div class="table-responsive datatable-custom"> <table border="1">'; if (!empty($arrDisplay) && is_array($arrDisplay)) foreach ($arrDisplay as $date => $pasien): $html .= ' <thead> <tr> <td colspan="12" align="center"> ' . print($date) . ' </td> </tr> <tr> <th>No</th> <th>Nomor Registrasi</th> <th>Nomor Rekam Medis</th> <th>Nama Pasien</th> <th>Umur</th> <th>Poliklinik</th> <th>Dokter</th> <th>Ruang Perawatan</th> <th>Tanggal Masuk</th> <th>Tanggal Keluar</th> <th>Lama Dirawat</th> <th>Cara Keluar</th> </tr> </thead> <tbody> '; $no = 1; if (!empty($pasien) && is_array($pasien)) foreach ($pasien as $s): $datemasuk = new DateTime($s->tglmasuk); $datekeluar = new DateTime($s->tglkeluar); $age = $init->findage($s->tglahirP); $lamarawat = $init->lamarawat($s->tglmasuk, $s->tglkeluar); $html .= ' <tr role="row" class="even"> <td> ' . $no . ' </td> <td> ' . $s->no_register . ' </td> <td> ' . $s->norm . ' </td> <td> ' . $s->nmpasien . ' </td> <td> ' . $age . ' </td> <td> ' . $s->nmpoli . ' </td> <td> ' . $s->nmdokter . ' </td> <td> ' . $s->nmruang . ' </td> <td> ' . $datemasuk->format('d/m/Y H:i:s') . ' </td> <td> ' . $datekeluar->format('d/m/Y H:i:s') . ' </td> <td> ' . "$lamarawat hari" . ' </td> <td> ' . $s->nmcrkeluar . ' </td> </tr> '; $no++; endforeach; $html .= '</tbody>'; endforeach; $html .= '</table> </div> <!-- End Table --> </body> </html> '; $dompdf = new Dompdf(); $dompdf->loadHtml($html); $savein = 'download/Document/'; $dompdf->setPaper('A4', 'Landscape'); $dompdf->render(); // Download pdf $dompdf->stream($filename, ["Attachment" => 0]); } ?>

回答 1 投票 0

未找到 DomPDF 的类

当我在控制器中使用为 Facades::class 创建的别名时,遇到“使用未知类”错误。 $pdf = PDF ::loadView('测试', $data); 这行表示 PDF 是未知类别...

回答 1 投票 0

如何使用Dompdf获取多个页面和不同尺寸(纵向,横向)

我在单个 html 文件中有六个 html 页面,我想使用 dompdf 转换为 pdf,如下所示; 页面尺寸横向, 页面尺寸横向, 页面尺寸横向, 页面尺寸纵向, 页面大小端口...

回答 1 投票 0

如何使用Dompdf获取多个页面

我在 Magento 2 中使用 dompdf 下载发票的多个 PDF,但只得到一页。有人可以帮帮我吗? $domPdf = new Dompdf(); $domPdf->loadHtml($html); $domPdf->

回答 2 投票 0

使用DomPDF在生成的PDF上获取PNG

我在使用 DOMPDF 在生成的 PDF 上显示图片时遇到问题。我的DomPDF的版本是v2.0.3。我正在将 XAMPP 用于本地主机。 这是输出 在此输入图像描述 ...

回答 1 投票 0

Laravel Vapor + Docker,DomPDF 不渲染自定义字体,在本地工作,而不是在登台上

我在使用 DomPDF 和 Laravel Vapor 获取自定义字体时遇到一些问题。 (本地字体有效) 这些是我的 CSS 字体定义(字体存储在 public/fonts 内) @font-face { ...

回答 1 投票 0

DomPDF:图像不可读或为空

出于某种原因,DomPDF 不会渲染正在解析的 html 中包含的图像: 但是,当图像作为 html 返回时,图像会呈现在页面上: 我已经研究过这些问题并且有

回答 12 投票 0

当我将 docx 转换为 pdf 时,它失去了风格

当我将 docx 文件转换为 pdf 文件时,它已转换,但没有样式和阿拉伯字母,它变得像“???” 这是代码: 公共函数attr(请求$请求) { /* 设置 PDF En...

回答 1 投票 0

Laravel - 将使用 TailwindCSS 样式的视图输出为 PDF

我正在尝试从视图生成pdf,但样式就是不出来。我尝试过使用 3 个不同的库,但结果并没有太大不同。我错过了什么吗? 看法 我正在尝试从视图生成 pdf,但样式就是不出来。我尝试过使用 3 个不同的库,但结果并没有太大不同。我是不是错过了什么? view <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Test View</title> <link rel="stylesheet" type="text/css" media="screen" href="{{ asset('css/app.css') }}"> <script src="{{ asset('js/app.js') }}" defer></script> </head> <body class="font-sans antialiased"> <div class="grid grid-cols-3"> <div class="bg-red-200 col-span-2 h-screen"></div> <div class="bg-blue-200 h-screen"> <div class="grid grid-cols-8"> <div class="col-span-7"> <div class="rounded-t-full w-full h-screen flex items-center justify-center bg-green-600"> <div class="h-60 w-60 rounded-full bg-blue-500">TEST</div> </div> </div> </div> </div> </div> </body> </html> appearance dompdf export method protected function dompdfImplementation() { $dompdf = new Dompdf; $dompdf->getOptions()->setChroot(public_path()); $dompdf->loadHtml(view('view')->render()); $dompdf->stream('view.pdf', ['Attachment' => false]); } dompdf export result mpdf export method protected function mpdfImplementation() { $mpdf = new Mpdf; $mpdf->WriteHTML(view('view')->render()); $mpdf->output(); } mpdf export result tcpdf export method protected function tcpdfImplementation() { $tcpdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8', false); $tcpdf->AddPage(); $tcpdf->writeHTML(view('view')->render()); $tcpdf->Output('view.pdf', 'I'); } tcpdf export result 如果没有 css 内联,是否无法将视图导出为 pdf? 我是否最好手动截取整页屏幕截图,将其粘贴到文本文档中并将其另存为 pdf 文件? 这个包的作用就像一个魅力(就像通常的 spatie 一样): https://github.com/spatie/browsershot 根据医生的说法: 该软件包可以将网页转换为图像或 pdf。转换 是由 Puppeteer 在幕后完成的,它控制着一个无头的 谷歌浏览器版本。 如果您需要支持现代CSS功能,例如flexbox(我想您的Tailwind示例使用了flexbox),那么最好使用headless chrome(或有点旧的wkhtmltopdf)来生成PDF。 使用 chrome-php/chrome 的示例: <?php use HeadlessChromium\BrowserFactory; use HeadlessChromium\Page; require_once __DIR__ . '/vendor/autoload.php'; $browserFactory = new BrowserFactory(); $browser = $browserFactory->createBrowser([ 'noSandbox' => true, 'customFlags' => [ '--proxy-server="direct://"', '--proxy-bypass-list=*', '--font-render-hinting=none', ], ]); $page = $browser->createPage(); $tempname = '//<path to your HTML over HTTP>'; $page->navigate('file://' . $tempname) ->waitForNavigation(Page::NETWORK_IDLE); $outputPath = __DIR__ . '/output.pdf'; $page->pdf([ 'printBackground' => true, 'preferCSSPageSize' => true, 'marginTop' => 0.4, 'marginBottom' => 0.2, 'marginLeft' => 0.2, 'marginRight' => 0.2, ])->saveToFile($outputPath); 使用 PHP PDF 库可以利用其相对于浏览器方法的一些优势 - 颜色处理、预打印、条形码支持、页眉和页脚、页码、目录等,但考虑到它们对 HTML 和 CSS 的支持,需要定制模板和很可能需要样式表。 当然,当您无法通过托管提供商运行除 PHP 之外的其他软件时,上一段也适用。 这个答案可能会解决问题: https://stackoverflow.com/a/36695827/5540654 基本上,您需要在文档的 base 中添加 head 标签。 <html> <head> ... <base href="http://www.example.com/"> <link href="/assets/css/style.css" rel="stylesheet"> ... </head> 使用 wkhtmltopdf 为我工作。可能是类似的问题。 之后 尝试barryvdh/laravel-dompdf而不是dompdf/dompdf 在我的样式表上使用media="print" 使用 TailwindCSS 的 print:* 类 试图让chrome-php工作却无济于事 尝试 barryvdh/excel 的 pdf 导出。 没有任何效果,所以我达到的解决方案是一个糟糕的解决方案。 在 Firefox 中打开视图。 截取整个页面(不仅仅是可见内容)。 使用我找到的第一个在线 PNG 到 PDF 转换器。 我希望有一种不那么痛苦的方法来做到这一点,但它看起来不像。这个糟糕的解决方案实际上有效。

回答 4 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.