JSPDF - 从 wp_mail 发送 PDF 作为附件 - 特殊字符

问题描述 投票:0回答:0

这是我的第一篇文章。感谢您在其他帖子上的所有回答,从哪里,我已经拿起代码并试图到达这里。

我正在使用 JSPDF 通过 AJAX 调用将附件发送到 PHP 服务器 - 从这里发送一封邮件,其中包含生成的 PDF 作为附件。我看过很多帖子,他们说其他语言如丹麦语(在本例中)需要自定义字体。

但我的问题是 -> 当我使用 doc.save 保存文件时,它完全没问题。但是当我通过 AJAX 调用将数据发送到 PHP 时,附件中有特定丹麦字母的乱序字符。

HTML 正文也显示字母,但不显示 PDF 附件。

与编码有关吗?只有附加的 PDF 不显示字母(前端保存的 PDF 确实显示字母)。

我的 HTML 代码:

<!--?xml version="1.0" encoding="iso-8859-1"?-->
<!DOCTYPE html>
<html>

<head>
</head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.5.3/jspdf.debug.js"></script>

<script>
    function sendmail() {
        var doc = new jsPDF('p', 'pt', 'a4');

        var con1 = document.getElementById("dispID1");

        doc.fromHTML(con1, 10, 10);
        doc.save("file.pdf"); // This is to test from frontend if the PDF is saving

        var pdf = doc.output();
        var data = new FormData();
        data.append("data", pdf);
        var mailid = document.getElementById('mailadd').value;


        var xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
                var mailresp = this.responseText;
                //  alert(mailresp);

            }
        }

        xmlhttp.open("POST", "/sendmailattach.php?q=" + mailid, true);
        xmlhttp.send(data);

    }
</script>

<body>

    <div id="dispID1">
        These are the danish characters å æ ø that needs be sent as PDF attachment
    </div>
    <div id="dispID2">

        <input type="text" style="width:auto;" id="mailadd" size="32" name="mailadd" maxlength="32" value="Indtast email-adresse">
        <br>

        <input type="submit" style=" width: auto;background-color: #eb5f1f;padding: 5px 5px;border: none;border-radius: 1px;cursor: pointer;text-transform: none;" value="Send" onclick="sendmail()">

    </div>


</body>

</html>

来自服务器的我的 PHP 代码

<?php

require __DIR__ . '/wp-load.php';

if(!empty($_POST['data'])){

$filepath =  __DIR__ . DIRECTORY_SEPARATOR;
$filename = __DIR__ . DIRECTORY_SEPARATOR."test.pdf";


    $data = $_POST['data'];
    $fname = "test.pdf"; 
    $in = fopen($filename , "a+");
    $attachment = array($filename);

    fwrite($in, $data.PHP_EOL);
    fclose($in);
} else {
    $hint= "No Data Sent";
}

// get the q parameter from URL
$q = $_REQUEST["q"];
$to = $q;
$subject = 'This email has attachment';

$body = "<html>
<body>
<p> These are the danish characters “å æ ø ” that needs be sent as PDF attachment-but appearing in email</p>
</body>
</html>";
$headers = array('Content-Type: text/html; charset=UTF-8');



wp_mail( $to, $subject, $body, $headers, $attachment  );

unlink($filename); // Deletion of the created file.
echo $hint;

?>

:

前端保存的PDF文件有清晰的丹麦字母:

Front end stored PDF image

邮件正文: 这些是需要作为 PDF 附件发送但出现在电子邮件中的丹麦字符“å æ ø”

作为附件收到的PDF文件: enter image description here

请求您是否可以帮忙解决这个问题。

php ajax attachment jspdf
© www.soinside.com 2019 - 2024. All rights reserved.