在生成包含乌尔都语文本的 PDF 时,我面临着 PHP 中的 mPDF 库的独特挑战。导致问题的特定字符是“-”(Heh),该字符在生成的 PDF 中似乎缺失或无法正确呈现。乌尔都语内容选择的字体是 Jameel Noori Nastaleeq。
以下是问题的更详细细分:
1)字体配置:
我已将字体设置为 Jameel Noori Nastaleeq,该字体以准确渲染乌尔都语文本而闻名。
2)HTML内容生成:
HTML 内容的结构是为了显示乌尔都语文本,包括有问题的字符“Á”。其他乌尔都语字符渲染正确。
3)渲染问题:
尽管努力调整字体和样式,“-”字符始终无法在生成的 PDF 中正确显示。
4)寻求解决方案:
我正在向社区寻求关于 mPDF 中这一特定字符渲染问题的潜在原因的见解,尤其是在使用乌尔都语字体时。
5)替代方法:
如果有人遇到类似的问题或对替代方法或潜在的解决方法有建议,我将非常感谢您的专业知识。 我感谢为解决此问题提供的任何帮助或指导。感谢您的时间和支持!
<?php
require_once 'vendor/autoload.php'; // Adjust the path accordingly
// Function to generate PDF using mPDF
function generatePDF($data) {
$mpdf = new \Mpdf\Mpdf();
$mpdf->SetFont("Jameel Noori Nastaleeq");
// Load HTML content
$html = "<html dir='rtl' lang='ur'><head><style>
body {
font-family: 'Jameel Noori Nastaleeq', 'Noto Nastaliq Urdu', 'Nafees Nastaleeq', 'Urdu Naskh Asiatype', 'Tahoma', sans-serif;
}
/* Add or modify styles for better layout */
.info-container {
border: 1px solid #ccc;
padding: 10px;
margin: 20px auto;
max-width: 600px; /* Adjust as needed */
}
.info-label {
font-weight: bold;
display: inline-block; /* Display labels inline */
width: 150px; /* Adjust label width as needed */
margin: 0;
}
.info-value {
display: inline-block; /* Display values inline */
margin: 0;
}
</style></head><body>";
$html .= "<div class='info-container'>";
$html .= "<p class='info-label'>والد کا پیشہ:</p><p class='info-value'>{$data['father_occupation']}</p>";
$html .= "<p class='info-label'>کیا والدین حیات ہیں؟:</p><p class='info-value'>" . ($data['are_parents_alive'] == 1 ? 'ہاں' : 'نہیں') . "</p>";
$html .= "</div>";
$html .= "</body></html>";
$mpdf->mirrorMargins = true;
$mpdf->SetDisplayMode('fullpage');
// Load HTML to mPDF
$mpdf->WriteHTML($html);
// Output PDF to the bdataser
$mpdf->Output($data['name'] . '_' . date('Y-m-d') . '.pdf', 'D');
}
include('db.php');
// Check if ID is provided in the URL
if (isset($_GET['id'])) {
$id = $_GET['id'];
// Fetch data for the specified ID
$result = $conn->query("SELECT * FROM users_data WHERE id=$id");
if ($result->num_rows == 1) {
// Fetch the row as an associative array
$fetched_data_for_id = $result->fetch_assoc();
// Call the generatePDF function with the fetched data
generatePDF($fetched_data_for_id);
} else {
echo "No data found for the specified ID.";
}
} else {
echo "No ID specified.";
}
?>
您似乎想要更改 mPDF 配置中的字体设置,以解决乌尔都语字体中缺少字符的问题。为此,您需要进行以下修改:
$mpdf->SetFont("Jameel Noori Nastaleeq");
body {
font-family: freeserif;
}
通过执行此操作,您将更新字体设置以在正文中使用“freeserif”字体,而不是“Jameel Noori Nastaleeq”。此更改应该有助于解决丢失字符的问题。
确保在进行这些修改后重新生成 PDF,看看问题是否仍然存在。如果您遇到任何其他问题,请随时提供更多详细信息以获得更多帮助。