我正在使用 dompdf 来整理大量现有 HTML 页面。其中很多页面都有我想保留的锚链接。当我整理这些文章时,pdf 整理得非常好,但锚链接不起作用。文本像链接一样带有下划线,但单击它后您不会去任何地方。
我有一些测试 HTML,用于尝试锚链接。例如:
$content .= '<div style="page-break-after: always;"><a href="#link">blah</a></div>
<div><a id="blah">link location</a></div>';
Run Code Online (Sandbox Code Playgroud)
而且我还尝试根据此论坛帖子使用名称而不是 id - http://www.dashinteractive.net/dompdf/index.php?v=1530231。例如:
$content .= '<div style="page-break-after: always;"><a href="#link">blah</a></div>
<div><a name="blah">link location</a></div>';
Run Code Online (Sandbox Code Playgroud)
当然,这些都没有像我预期的那样工作。
我在互联网上找不到太多关于 dompdf 如何处理内部链接的信息。除了这个页面http://webresourcesdepot.com/html-to-pdf-rendering-engine-dompdf/说它可以处理链接和锚点。不知道可信度如何...
请问如何使用 dompdf 将内部锚链接放入 pdf 中?它能做到吗?
有没有办法防止接收者在dompdf中选择和复制pdf文件的内容?
像其他的pdf文件打开时看起来像图片一样,所有的字母和图像都无法选择?
我使用的是最新版本的 DomPDF (0.6.0 beta 3)。
PHP 版本为 5.2.17。
不幸的是,我使用的是共享主机帐户,无法升级 PHP 和类似操作。我也无权访问 apache 错误日志,无论如何我认为这不会很有帮助。
我给自己定的memory_limitPHP来2048M和max_execution_time到999。虽然不知道有没有生效。我认为它们实际上并不重要,因为我觉得 DomPDF 没有超时或内存不足。500 错误似乎在请求页面后仅 10 秒发生,当我尝试生成页面较少的 PDF 时,脚本需要更长的时间(12-15 秒)但成功结束。
我有一个 72.3kb 大的 HTML 文件,只有一个小的 HTML 表。(实际上,删除带有表格的页面对解决问题没有任何帮助。)PDF 应该有大约 35 页。
经过大量的挖掘,我发现错误发生在第 30 - 31 页,在函数page_frame_reflower.cls.php内部的以下代码行中reflow:
// Render the page
$this->_frame->get_renderer()->render($child);
Run Code Online (Sandbox Code Playgroud)
当echo荷兰国际集团memory_get_usage在每个循环(页)的值保持相当一致,根据可用内存的5%,它似乎。
使用get_classon$this->_frame->get_renderer()我能够确定问题函数是Renderer::render().
不幸的是,我没有简单的方法可以继续使用我当前的方法进行调试。该方法Renderer::render()不允许我将计数器变量添加到参数中,因为它需要与其父函数兼容。
任何人都对我有任何帮助,你看到我遗漏了什么 - 你能指出我修复这 500 个错误的正确方向吗?
编辑:我已经从 HTML 文档中删除了内联 PHP 的所有使用,它似乎没有改变任何东西。 …
我有以下代码:
\n\n$pdf = \\App::make(\'dompdf\');\n$pdf->loadView(\'offers.pdf\',compact(\'email\',\'messages\'));\nreturn $pdf->stream();\nRun Code Online (Sandbox Code Playgroud)\n\npdf.blade.php:
<!doctype html>\n<html class="no-js" lang="sk">\n<head>\n <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\n <title></title>\n <style type="text/css">\n * {\n font-family: "Arial";\n }\n </style>\n</head>\n<body>\nRozpo\xc4\x8det, Volite\xc4\xben\xc3\xa9 \xc4\x8dasti\n</body>\n</html>\nRun Code Online (Sandbox Code Playgroud)\n\nPDF 文档如下所示:
\n\nRozpo?et,Volite?n\xc3\xa9 ?asti\nRun Code Online (Sandbox Code Playgroud)\n\n但我需要显示文件中的特殊字符pdf.blade.php,你有什么解决方案吗?
下列:
在单元格图中找不到框架
https://github.com/dompdf/dompdf/issues/657
是互联网上众所周知的问题。但我找不到问题的解决方案。我正在尝试将我的 html 模板转换为 pdf。当我删除它时,<table>它正在工作。否则它会抛出异常。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Example 2</title>
<link rel="stylesheet" href="/administration/style.css" media="all" />
</head>
<body>
<header class="clearfix">
<div id="logo">
<img src="/administration/logo.png">
</div>
<div id="company">
<h2 class="name">Company Name</h2>
<div>455 Foggy Heights, AZ 85004, US</div>
<div>(602) 519-0450</div>
<div><a href="mailto:company@example.com">company@example.com</a></div>
</div>
</div>
</header>
<main>
<div id="details" class="clearfix">
<div id="client">
<div class="to">INVOICE TO:</div>
<h2 class="name">John Doe</h2>
<div class="address">796 Silver Harbour, TX 79273, US</div>
<div class="email"><a href="mailto:john@example.com">john@example.com</a></div>
</div>
<div id="invoice">
<h1>INVOICE 3-2-1</h1>
<div class="date">Date of …Run Code Online (Sandbox Code Playgroud) 请原谅我的英语。
我正在打印一份 pdf 格式的大型报告,其中包括一些表格(一张接一张的表格)。为此,我首先在 html 中生成报告,然后使用dompdf将其传递给 pdf
这是我一张一张地打印一张桌子的方式:
<div>
<table>
-----
</table>
</div>
<div>
<table>
-----
</table>
</div>
Run Code Online (Sandbox Code Playgroud)
问题是当有分页符时,表格行被拆分。我想避免它。
我尝试使用 CSS 打印属性,但它不起作用,在其他情况下,page-break-before: always;将我的报告的每个表格打印在不同的页面上。
<style type="text/css">
table { page-break-inside:auto }
tr { page-break-inside:avoid; page-break-after:auto }
thead { display:table-header-group }
tfoot { display:table-footer-group }
</style>
Run Code Online (Sandbox Code Playgroud)
因为只有在必要时,我才能在报告中的所有表格中强制分页。
请帮忙。
我使用dompdf通过php将html页面保存为pdf。我在我的 html 页面(实际上是 php 页面)中使用波斯字符,但是当我尝试将其另存为 pdf 时,导出看起来像 '?????' :(。我已经搜索了所有网络,我在“ dompdf_config.inc.php ”中找到了 unicode 字符的配置 https://github.com/dompdf/dompdf/wiki/UnicodeHowTo#configure-dompdf-for-unicode-support或“dompdf_config.custom.inc.php”文件。但问题是我无法在我的所有 dompdf 文件夹和我的所有文件系统中找到这样的文件。请有人告诉我它在哪里或我必须做什么。另一件事是我必须使用 dompdf,因为它具有出色的 CSS 兼容性。谢谢。
这是导出
。http://i.stack.imgur.com/nYAzW.png
这是我的代码。
require("dompdf/autoload.inc.php");
use Dompdf\Dompdf;
$dompdf = new Dompdf();
$dompdf->loadHtml("<html><head>
<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\">
<link rel=\"stylesheet\" type=\"text/css\" href=\"styles/scorestyle.css\">
</head>
<body><div>
<div id=\"showscorediv\"><table><tbody><tr class=\"scoresubject\"><th colspan=\"2\">??????? ???????</th></tr><tr class=\"scorecategory\"><th>???? ??</th><th>?????? ??</th></tr><tr><td><span class=\"level_0\">???? ??? ????</span></td><td class=\"scoretd\">62</td></tr><tr><td><span class=\"level_1\">???? ??? ????? ?? ??? ????</span></td><td class=\"scoretd\">10</td></tr><tr><td><span class=\"level_1\">???? ??? ????? ?? ?????</span></td><td class=\"scoretd\">28</td></tr><tr><td><span class=\"level_1\">???? ??? ????? ?? ?????</span></td><td class=\"scoretd\">24</td></tr><tr><td><span class=\"level_0\">???? ??? ???</span></td><td class=\"scoretd\">60</td></tr><tr><td><span class=\"level_1\">???? …Run Code Online (Sandbox Code Playgroud) 在我的 Laravel 5 项目中,我使用Lavacharts(由 Google Charts 提供支持)来显示图表,并使用dompdf包装器laravel-dompdf来生成 PDF 文件。
是否可以使用dompdf导出此类图表,如果可以,如何实现?
据推测,我必须首先将图表保存为图像,但这并不是一个真正的选择,因为保存图像是通过 Javascript 完成的,并且为了生成 PDF,所有工作都是在后端 (PHP) 中完成的。
我想在 Laravel 5.5 中使用 Dompdf 从 Blade 模板制作 pdf 发票。
问题是,当单击下载按钮时,页面正在加载,大约 3 分钟后,pdf 开始下载。
为什么要花这么长时间?
下载链接
<a href="{{ route('admin.download-invoice', $order->OrderID) }}" target="_blank" class="btn btn-danger"><i class="fa fa-file-pdf-o"></i> Download Invoice</a>
Run Code Online (Sandbox Code Playgroud)
网络路线:
Route::get('/order/download-invoice/{OrderID}', 'Admin\AdminOrderController@downloadOrderInvoice')->name('admin.download-invoice');
Run Code Online (Sandbox Code Playgroud)
一个简单的模板(invoice.blade.php)
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other
head content must come *after* these tags -->
<title>Invoice</title>
<link rel="stylesheet" href="{{ asset('css/bootstrap.min.css') }}" media="screen">
</head>
<body>
<div>{{ …Run Code Online (Sandbox Code Playgroud) 我们使用的是 dompdf 版本 0.8.3。我们在报告中使用它,我们希望通过在每个页面的底部添加一些标题和页码来改进我们的报告。
目前,我们有页码,我们想要一些标题。
控制器
<!-- My other function/data -->
$pdf = PDF::loadView('purchase-order.export.export-pdf', $data)->setPaper('a4');
$pdf->getDomPDF()->set_option("enable_php", true);
return $pdf->stream('purchase-order-'.$purchase_order->number.'.pdf');
Run Code Online (Sandbox Code Playgroud)
@extends('layouts.formpdf')
@section('content')
<div id="page-wrap">
<script type="text/php">
if (isset($pdf)) {
$x = 550;
$y = 800;
$text = "{PAGE_NUM}";
$font = null;
$size = 12;
$color = array(255,0,0);
$word_space = 0.0; // default
$char_space = 0.0; // default
$angle = 0.0; // default
$pdf->page_text($x, $y, $text, $font, $size, $color, $word_space, $char_space, $angle);
}
</script>
.......
</div>
Run Code Online (Sandbox Code Playgroud)
问题:如何在每个页面中添加一些标题?