我有这样的代码:
$html2pdf = new HTML2PDF('P','A4','en');
$html2pdf->WriteHTML($html);
$html2pdf->Output();
Run Code Online (Sandbox Code Playgroud)
如何在文档底部添加页码?
首先,我已经看到了其他线程,我已经尝试了几乎所有尝试解决这个问题,但......
当使用Pisa将HTML页面呈现为PDF时,所述HTML中的图像显然会丢失.也就是说,当页面呈现为HTML时,一切都只是花花公子,但是当我使用Pisa将输出切换为PDF时,图像会消失.
我发现最常见的事情就是创建一个链接回调函数:
def fetch_resources(uri, rel):
path = os.path.join(settings.MEDIA_ROOT, uri.replace(settings.MEDIA_URL, ""))
return path
def my_view(request, variable1):
html = render_to_string('template_goes_here.html', dict, context_instance=RequestContext(request))
result = StringIO()
pdf = pisa.pisaDocument(StringIO(html.encode("UTF-8")), dest=result, link_callback=fetch_resources)
if not pdf.err:
return HttpResponse(result.getvalue(), mimetype='application/pdf')
return HttpResponse('Pisa hates you! %s' % cgi.escape(html))
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用.PDF出现了,很棒,但图像不存在.
我还阅读了关于将HTML写入mkstemp的另一个线程的建议,通过命令行将其转换为PDF,然后输出HTML,也没有成功.
我甚至尝试安装PIL 1.1.16而不是1.1.17因为有类似问题的人 - 没有骰子.
有没有人知道我在哪里出错了?
我有一些HTML文档,我需要在服务器上打印/生成(没有UI,自动化,基于Linux).
我对Google Chrome"html to pdf"文件非常满意,但我想知道是否可以为此目的以某种方式使用Google Chrome浏览器中的"html to pdf"打印引擎的"组件"?
我的文件中的一些文字在 PPDF 中被删掉了。我可以看到文字在那里,但包装不正确。
我的输出看起来像:

这是我的代码的片段:
<table>
<tr align=''>
<td colspan='5' class='heading'>Corporate URC Use Only</td>
</tr>
<tr>
<td>Consult Determination<span class='required'></span>:</td>
<td><strong>";
if(isset($updated_history) && !is_null($updated_history)){
$html .= $data['original_decision'];
}
else{
$html .= $data['final_decision'];
}
$html .="</strong></td>
</tr>
</table>
<table>
<tr>
<td>Notes:</td>
<td><strong>" . $data['notes'] . "</strong></td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
我的 html2pdf 实现非常简单:
require_once("../include/html2pdf/html2pdf.class.php");
$html2pdf = new HTML2PDF('P','A4','en');
$html2pdf->pdf->SetDisplayMode('real');
$html2pdf->WriteHTML($html);
$html2pdf->Output($c_file, "F");
Run Code Online (Sandbox Code Playgroud)
编辑:这是展示此行为的示例 pdf 的链接。 https://www.dropbox.com/s/h91g40bo4b2cmlw/Test_T_2312321.pdf?dl=0
我尝试使用pdflayer.com的api从HTML/CSS文档生成PDF文件.到现在为止还挺好.一切正常.但是有一个问题.如果有分页符,有时会像照片中那样分割一行:
有没有办法摆脱这个问题?我也试过html2pdfrocket.com就是那个.
该文本放在这个html-construct中:
<html>
<body>
<div class="overall">
<div class="content">
<div class="wrapper">
<div class="article">
Text
Run Code Online (Sandbox Code Playgroud) 我目前正在通过 html2canvas 将 div 的内容转换为 png,但是使用 scale: 5 或 dpi: 等对随后的图像质量没有任何影响。这是 html2canvas 的结果,因为我在 pdfcon() 函数期间附加了画布,并且非常模糊:)。我已经在互联网上搜索了无济于事的答案,任何帮助将不胜感激:)。(我也在使用 Quill 编辑器)
HTML:
<div id="editorOne" class="pdf-convert ql-container ql-snow">
<div id="specialEdit" class="ql-editor" data-gramm="false" contenteditable="false">
<?php echo stripslashes($newClean); ?>
</div>
</div>
<button onclick="pdfcon()">Save Pdf</button>
Run Code Online (Sandbox Code Playgroud)
JS:
function pdfcon() {
html2canvas($("#editorOne"), {
scale: 5,
onrendered: function (canvas) {
document.body.appendChild(canvas);
var img = canvas.toDataURL("png");
var doc = new jsPDF("p", "mm", "a4");
var width = doc.internal.pageSize.getWidth();
var height = doc.internal.pageSize.getHeight();
doc.addImage(img, 'PNG', 0, 0, width, height);
doc.save('testing.pdf');
}
})
};
Run Code Online (Sandbox Code Playgroud) 我编写了以下代码来使用 html2pdf.js 创建多个 pdf 文件。后来我想将它们保存到存档并下载所述存档。我正在使用 jsZip 来创建和填充存档和 fileSaver 来保存它:
window.zip = new JSZip();
let masterDiv = document.createElement('div');
masterDiv.id = 'masterDiv';
document.body.appendChild(masterDiv);
// Stundenplan für jeden Kandidaten erstellen
for (let i = 0; i < window.allCandidates.length; i++) {
let candidate = window.allCandidates[i].split(',');
window.lastName = candidate[0];
window.firstName = candidate[1];
window.filter = 'candidate';
setScheduleView('masterDiv');
let worker = html2pdf();
let opt = {
margin: 1,
image: {
type: 'jpeg',
quality: 1
},
html2canvas: {
scale: 2
},
jsPDF: {
unit: 'mm',
format: 'A3',
orientation: …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 html2pdf 在我的 html 中制作合理数量的文本和图形的 PDF。到目前为止一切顺利,PDF 制作完成,看起来不错。它大约有 20 页。但是,缺少多个图形。一些相关资料:
缩放会影响它们是否被渲染,这一事实让我觉得时间/超时之类的东西在这里是一个问题。更大的比例显然意味着更长的渲染时间,但它似乎没有等待它完成。或类似的东西。
下面是制作 PDF 的大部分代码。onClone 是正确渲染图形所必需的。如果去掉了,还是会出现上面描述的问题(但是渲染出来的图很难看)。
const options = {
filename: 'test.pdf',
margin: [15, 0, 15, 0],
image: { type: 'jpeg', quality: 1 }
html2canvas: {
scale: 2,
scrollY: 0,
onclone: (element) => {
const svgElements = element.body.querySelectorAll('svg');
Array.from(svgElements).forEach((item: any) => {
item.setAttribute('width', item.getBoundingClientRect().width.toString());
item.setAttribute('height', item.getBoundingClientRect().height.toString());
item.style.width = null;
item.style.height = null;
});
}
},
jsPDF: { orientation: 'portrait', format: 'a4' }
}; …Run Code Online (Sandbox Code Playgroud) 这会为我生成空白pdf:
<vue3-html2pdf
:show-layout="false"
:float-layout="true"
:enable-download="true"
:preview-modal="true"
:paginate-elements-by-height="1400"
filename="invoice"
:pdf-quality="2"
:manual-pagination="false"
pdf-format="a4"
:pdf-margin="10"
pdf-orientation="portrait"
pdf-content-width="800px"
@progress="onProgress($event)"
ref="html2Pdf"
>
<section slot="pdf-content"><div>hii</div></section>
</vue3-html2pdf>
Run Code Online (Sandbox Code Playgroud)
功能:
<img
:style="{ cursor: 'pointer' }"
src="../assets/images/download-arrow.png"
alt="«"
@click="generatePDF()"
/>
generatePDF() {
this.$refs.html2Pdf.generatePdf();
},
Run Code Online (Sandbox Code Playgroud)
请尽快帮助我。我有严格的期限。我会尝试所有可能的解决方案,任何人都可以帮助我。
html2pdf ×10
javascript ×4
pdf ×4
html ×3
php ×3
html2canvas ×2
css ×1
django ×1
html-to-pdf ×1
linux ×1
pisa ×1
python ×1
server-side ×1
vue.js ×1