我尝试使用laravel-snappy进行pdf生成.
步骤1:
跑 composer require barryvdh/laravel-snappy
第2步:
在app.php中添加提供程序Barryvdh\DomPDF\ServiceProvider::class,和别名'PDF' => Barryvdh\DomPDF\Facade::class,
第3步:
创造功能
public function pdfTest() {
$pdf = App::make('snappy.pdf.wrapper');
$pdf->loadHTML('<h1>Test</h1>');
return $pdf->inline();
}
Run Code Online (Sandbox Code Playgroud)
然后发现错误:
Class 'App\Http\Controllers\App' not found
Run Code Online (Sandbox Code Playgroud)
如何解决它.我很感激所有的回应.谢谢你.
我正在尝试加载图表,然后使用Laravel-snappy将其转换为 PDF
这是我用来生成pdf的代码:
$pdf = SnappyPDF::loadView('report', []);
$pdf->setOption('enable-javascript', true);
$pdf->setOption('no-stop-slow-scripts', true);
$pdf->setOption('page-size', 'A4');
$pdf->setOption('lowquality', false);
$pdf->setOption('disable-smart-shrinking', true);
$pdf->setOption('images', true);
$pdf->setOption('window-status', 'ready');
$pdf->setOption('run-script', 'window.setTimeout(function(){window.status="ready";},5000);');
return $pdf->inline();
Run Code Online (Sandbox Code Playgroud)
这是 HTML/CSS report.blade.php:
<head>
<script src="http://www.gstatic.com/charts/loader.js"></script>
<script>
function init() {
google.charts.load('current', {packages: ['corechart']});
var interval = setInterval(function () {
if (google.visualization !== undefined && google.visualization.DataTable !== undefined
&& google.visualization.PieChart !== undefined) {
clearInterval(interval);
window.status = 'ready';
drawChart();
}
}, 100);
}
function drawChart() {
// Define the chart to be drawn.
var …Run Code Online (Sandbox Code Playgroud) 我已经阅读了几个类似的StackOverflow帖子,但没有一个能够解决我的问题.
我有一个由WkHTMLtoPDF生成的PDF,其中包含一个unicode RIGHT SINGLE QUOTATION MARK(U + 2019或者’)字符.在浏览器中呈现,输出如下所示:
当我通过WkHTMLtoPDF运行时,我得到以下内容:
我在CSS中使用以下内容:
@font-face {
font-family: localGeorgia;
src: url("file:///usr/share/fonts/truetype/georgia/GEORGIA.TTF");
}
body {
overflow: visible !important;
font-family: localGeorgia, Georgia, Times, "Times New Roman", serif;
font-size: 12px;
}
Run Code Online (Sandbox Code Playgroud)
我还将Georgia字体从我的本地计算机复制到服务器(/usr/share/fonts/truetype/georgia/目录中有几个文件),我已经运行fc-cache -fv清除字体缓存并运行fc-list以验证是否Georgia已正确安装.该localGeorgia字体系列中添加的形式,因为我还没有得到一个工作显示.
我已经通过在线文档和我的操作系统的字符映射验证了佐治亚字体确实支持RIGHT SINGLE QUOTATION MARK(见下文),虽然我不知道如何明确证明这个字形在TrueType文件中(我不熟悉)打开或解析TrueType文件)
在这一点上,我不清楚为什么WkHTMLtoPDF显示这些乱七八糟的字符而不是正确的unicode字形
我正在运行Ubuntu 16.04
Laravel版本5.3
我正在使用Laravel-Snappy版本0.3.3(使用KNP-Snappy版本0.4.3)
我对Snappy的配置很简单:
<?php
return array(
'pdf' => array(
'enabled' => true,
'binary' => base_path('vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64'),
'timeout' => false,
'options' => …Run Code Online (Sandbox Code Playgroud) 我正在使用基于 wkhtmltopdf 的 laravel snappy,一切正常,但现在在服务器和本地我收到此错误:
无法加载 about:blank,网络状态代码为 301,http 状态代码为 0 - 协议“about”未知错误。和
阻止访问文件 /var/www/app/public/css/app.css
并且没有图像以 pdf 格式呈现。
这对于总是快速调试是非常奇怪和令人沮丧的。我不明白这个问题,也不知道如何解决它。任何人都可以帮助我吗?谢谢
我使用 barryvdh/laravel-snappy 生成 pdf,需要在我的 pdf 文档中创建签名区域。必须有两个签名字段,因为它是一份合同 pdf,但是当我使用 css grid 或 flex 时,它们将一个签名字段放在另一个签名字段下面。如何将它们并排放置?
<div class="flex-container" style=" display:flex;
padding: 10px;">
<div class="flex-item" style="padding: 20px; text-align: center;">
<h2 style="text-decoration:underline">sign1</h2>
</div>
<div class="flex-item" style="padding: 20px; text-align: center;">
<h2 style="text-decoration:underline">sign2</h2>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)