Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $YECBGYFECGEAFWHA as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2

Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $BBWFDDBHHYHDXXAB as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2
从HTML创建PDF_创想鸟

从HTML创建PDF

从html创建pdf:一种无需php库的简易方法

许多开发者使用PHP库(如tcpdf)从HTML生成PDF,但这些库代码复杂,修改困难且效率低下。本文介绍一种更简洁的方法,利用JavaScript库jspdf和jspdf-autotable直接从HTML元素生成PDF,再通过PHP文件发送邮件,无需任何PHP PDF库。

从HTML创建PDF

步骤1:准备HTML内容

首先,创建包含所需内容的HTML代码。例如:

立即学习“前端免费学习笔记(深入)”;

关键雇佣条款

所有字段均为必填项,除非不适用

签发日期:

所有信息均以签发日期为准

步骤2:设置打印样式 (CSS)

使用CSS控制打印内容的格式。以下CSS代码只在打印模式下生效:

@media print {    body * { visibility: hidden; }    body { counter-reset: page; }    #printarea, #printarea * { visibility: visible; }    #printarea { position: absolute; left: 0; top: 0; }    .btnadd, button { display: none !important; }}

此CSS隐藏页面所有内容,只显示#printarea div。

步骤3:JavaScript打印页面

点击“打印”按钮时,JavaScript触发打印功能并动态设置PDF文件名:

function printdiv() {    const employeename = 'somename'; // 使用动态名称替换    document.title = `${employeename}.pdf`;    window.print();}

浏览器将提示打印或保存为PDF。

步骤4:使用jspdf生成PDF

为了程序化生成PDF并发送邮件,使用jspdf库。

步骤5:处理非拉丁字符和表格

为了支持非拉丁字符,需要预加载字体。将TTF字体(如droidsansfallback.ttf)转换为base64编码,并将其包含在PDF生成过程中。以下代码演示了如何加载字体并生成包含表格和非拉丁字符的PDF:

async function generateAndSendPDF() {    const doc = new window.jspdf.jsPDF();    const employeeName = 'SomeName';    const filename = `${employeeName}.pdf`;    const base64Font = await loadFontOnce(); // 加载字体函数 (见下文)    doc.addFileToVFS("DroidSansFallback.ttf", base64Font);    doc.addFont("DroidSansFallback.ttf", "DroidSansFallback", "normal");    doc.setFont("DroidSansFallback");    doc.text("员工信息1русский1书、杂志等中区别于图片的)正文,文字材料", 10, 10);    // ... 添加其他内容 ...    doc.autoTable({        // ... 表格配置 ...    });    const pdfBase64 = doc.output("datauristring").split(',')[1];    // 使用AJAX发送PDF到PHP文件    fetch("filename.php", {        // ... 发送请求 ...    });    window.open(doc.output("bloburl"), "_blank");}async function loadFontOnce() {    // ... 加载base64字体的函数 ...}

在filename.php文件中,添加发送邮件的代码。

结论

此方法使用JavaScript直接从HTML生成PDF,无需外部PHP库,支持表格和非拉丁字符,灵活且高效。生成的PDF可通过PHP文件发送邮件。

不足之处:

需要为每个HTML编写JavaScript代码。需要包含较大的base64编码字体文件。

希望此方法能帮助您简化PDF生成流程!

以上就是从HTML创建PDF的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1501499.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
顶级React JS访谈问题
上一篇 2025年12月19日 23:36:47
下一篇 2025年12月19日 23:37:02

相关推荐

发表回复

登录后才能评论
关注微信