Dompdf 显示尼泊尔语字符的问题

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

我正在使用 Dompdf 为我的尼泊尔内容创建 pdf。我在控制器中编写了以下代码:

public function generatePDF(Request $request){
  $data = $this->news->where('slug', $request->slug)->first();
  $html = "<!DOCTYPE html>
  <html>
  <head>
    <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
    <meta charset='UTF-8'>
      <title>". $data->title ."</title>
      <style>
      @font-face {
        font-family: preeti;
        font-style: normal;
        font-weight: 400;
        src: url('{{ asset('/frontend/fonts/preeti.ttf') }}') format('truetype');
      }
      </style>
  </head>
  <body style='font-family: preeti;'>
      <img src='".$data->image ."' style='width: 100%; height: auto'>
      ". $data->description ."
  </body>
  </html>";
  $html = mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8');
  $pdf = PDF::setOptions(['dpi' => 150, 'defaultFont' => 'preeti']);
  $pdf = PDF::loadHTML($html);      
  return $pdf->download('sample.pdf');
}

但这给出了???作为画布内尼泊尔内容的输出。但是,

<title>". $data->title ."</title>
显示正确的字符。我可以做什么来解决这个问题?

如你所见,我将

UTF-8
保留在我的
meta
中,还包含了字体的 CSS,但它似乎不起作用。我还包括了
mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8');
但它没有做任何改变。有没有人解决了这种问题?

$data->description
的输出是

<p>अहिले कार्यान्वयनको चरणमा रहेको नेपालको संघीय प्रणालीमा एकभन्दा बढी संसद् र 

कार्यपालिकाहरू छन् । तर, पनि संघीय प्रणालीबारे हामीकहाँ एक प्रकारको नका ▶
<p>स्थानीय संरचना भनेको तपाईं, हामी सबैले आ&ndash;आफ्नै घरदैलोमा भेट्ने सरकार हो । स्थानीय तह पुनर्संंरचना गर्दा संख्या घटाउनुलाई नै बहादुरी ठानियो । ७५३ वटा स् ▶
<p>स्थानीय तहलाई अहिले जति अधिकार दिइएको छ, त्यो पनि धान्न सक्ने ल्याकत तिनमा देखिंदैन । संविधानले दिएका धेरै अधिकार स्थानीय तहमा कार्यान्वयन भइरहेका छैनन् । ति ▶
<p>संविधानमा पनि केही त्रुटिहरू छन् । संविधान बनाउँदा स्थानीय तहलाई व्यवस्था गरिएका अधिकारहरूबारे आवश्यक गृहकार्य भएन, सोचिएन । क्षमता विनाको भारी बोकाउन खोज्दा ▶
<p><strong>संघीयताः कतिपय अमिल्दा पक्ष</strong><br />संविधानको कार्यान्वयन हुँदै जाँदा प्रदेशहरू निरन्तर असान्दर्भिक र भूमिकाहीन देखिंदै गएका छन् । अहिले संविधा ▶
<p>जत्रो आकारमा ७५३ वटा स्थानीय तह रचना गरिएको छ र त्यसले जुन प्रकारको राजनीतिक र प्रशासनिक संरचनाको माग गर्छ; त्यो कतै प्रदेशकै विकल्प सोचेर गरिएको त होइन भन्न ▶
<p>हुन पनि, काठमाडौंमा बस्ने धेरैजसोलाई संघीयता मन परेको छैन । कार्यकारी जिम्मेवारी लिएको हुनाले यसको ठूलो अपजस चाहिं सत्तारूढ दललाई नै जान्छ । प्रधानमन्त्रीलाई ▶
<p>तर प्रदेशलाई कमजोर पार्दा अन्ततः संविधानको कार्यान्वयन कमजोर हुन्छ । किनभने, संघीय संरचनाको एउटा अङ्ग कमजोर भएपछि त्यसको असर अरू अङ्गमा स्वतः पर्छ र संविधान  ▶
<p>प्रदेशको कुरा गर्दा म अहिले तीनवटा मह&OElig;वपूर्ण पक्ष देख्छु । पहिलो, प्रदेशहरूले आफ्नो विशिष्ट उपस्थिति देखाउन सकिरहेका छैनन् । प्रदेश सभा छ, त्यसका सदस्य ▶
<p>संविधानको अनुसूचीको व्यवस्था अनुसार संघ, प्रदेश र स्थानीय तहको अधिकार छुट्याउन मुख्यसचिवको कार्यदलले लामो कार्यसूची तयार पारेको थियो । पछि त्यसैको आधारमा &ls ▶
<p><strong>परिणामतः</strong> सबै कुरामा प्रदेशहरूले सिंहदरबारकै सिको गर्न थाले । सिंहदरबारको योजना आयोगको साटो प्रदेशमा नीति आयोगहरू बने । सिंहदरबारकै जस्ता अरू ▶
<p>केन्द्र या काठमाडौंलाई नक्कल गरेका नमूना ठाउँठाउँमा भेट्न सकिन्छ । जस्तो, गण्डकी प्रदेशमा &lsquo;मुख्यमन्त्री नमूना कृषि कार्यक्रम&rsquo; छ । लुम्ले, जहाँ हि ▶
<p><strong>केन्द्रको प्रतिछायाँका रूपमा प्रदेश</strong><br />संघ र ६ वटा प्रदेश सभामा नेकपाको बहुमत छ । त्यसैले त्यहाँको राजनीति र नीति निर्माणमा ऊ हावी हुने कु ▶
<p>संघीयता कार्यान्वयनको सन्दर्भमा प्रदेश&ndash;२ को भिन्न र सार्थक भूमिका किन पनि अपेक्षित थियो भने त्यो प्रदेश सिंहदरबारमा बस्नेहरू भन्दा फरक दलको नेतृत्वमा छ ▶
<p>प्रदेशहरूले कसरी अगाडि जान सकिन्छ भन्ने चिन्तन गरेकै देखिएन । संविधान कार्यान्वयन भएको चार वर्ष बितिसक्दा पनि प्रदेशहरूले आफ्नो अस्तित्व नागरिकसामु पु&yen;या ▶
<p><strong>प्रदेशका लागि &lsquo;फूटनोट&rsquo;</strong><br />हाम्रा यावत् समस्या र विसङ्गतिका निम्ति संविधानलाई दोष दिएर मात्र पुग्दैन । सबैभन्दा ठूलो खाँचो सकार ▶
<p>अहिले प्रदेशहरू बढी नै केन्द्रीय सत्तामुखी देखिएका छन् । सात वटै प्रदेशबाट एकैचोटि भिन्न व्यवहारको अपेक्षा गर्न नसकिएला तर, एक&divide;दुई वटाले यसप्रकारको भू ▶
<p>अहिले सबै प्रदेशले कर्मचारीको कुरा उठाउँछन् । संविधानले प्रदेशहरूलाई लोकसेवा आयोग बनाउन अधिकार दिएको छ । त्यसअनुरूप सबै प्रदेशले लोकसेवा आयोग बनाएका पनि छन्  ▶
<p>प्रदेशले बनाएका कानून भोलि संघीय कानूनसित बाझे भने त्यो त्यसैबेला छिनोफानो हुने कुरा हो । तर, अहिले संघीय कानून नै नबनेका बेला त्यससँग बाझिने भन्ने कुरा कहाँ ▶
<p>त्यस्तै; विकासको क्षेत्रमा पनि प्रदेशले एउटा, दुइटा नमूना कार्यक्रम सञ्चालन गर्न सक्थे । जस्तो&mdash; प्रदेश&ndash;२ मा &lsquo;बेटी पढाओ, बेटी बचाओ&rsquo; मु ▶
<p>संविधानले प्रदेशहरूलाई प्रदेश तहका योजना बनाएर कार्यान्वयन गर्न छूट दिएको छ । प्रदेश तहको योजना भनेको के हो ? त्यसको पहिचान गर्न सकिन्थ्यो । मानौं, प्रदेश तह ▶
<p>जलविद्युत्मा सम्भाव्यता भएका प्रदेशका नेतृत्व बसेर सहमतिका आधारमा कतै १०० मेगावाट, कतै २०० मेगावाट त कतै ९०० मेगावाटसम्मका जलविद्युत् आयोजना सञ्चालन गर्ने भन ▶
<p><strong>संविधान बुझ्ने सूत्र</strong><br />अहिले मिडिया, अझ &lsquo;सोसल मिडिया&rsquo; मा संघीयता &lsquo;चल्दैन&rsquo; भन्ने कुरा बारम्बार आइरहन्छ । जबकि, संव ▶
<p>यस्तो ऐतिहासिक पृष्ठभूमिमा आमनागरिकमा अस्थिर सोचाइ आउनु त्यति अव्यावहारिक र अस्वाभाविक होइन । हाम्रोमा सधैं अस्थिरताको जुन किसिमको पृष्ठभूमि रह्यो त्यसले पनि ▶
<p>हामीमा संविधानप्रतिको चेतना, संविधानप्रतिको बुझाइको अभाव छ । यो असाध्य मह&OElig;वपूर्ण पक्ष हो । संविधान कार्यान्वयनको शुरूआती चरणमा यस्तो चेतना सत्तारूढ दल  ▶
<p>संविधान कार्यान्वयनले अहिले एउटा बाटो लिंदैछ । घोषणा गर्दा जति चुनौती थिए तिनलाई पार गरेर संविधान अगाडि बढेको छ । सत्ता सञ्चालन गर्ने दलको कार्यशैलीले भन्दा  ▶
<p><em><strong>राजनीतिशास्त्री खनालसँगको वार्तामा आधारित</strong></em></p>
laravel pdf unicode utf-8 dompdf
2个回答
2
投票

正如评论中提到的,

dompdf/domPDF
按照上述步骤后没有给出预期的结果,请参阅this

我建议使用TCPDF。 elibyy / tcpdf-laravel 提供了一种在 Laravel 中添加 tcpdf 的方法。
使用
composer require elibyy/tcpdf-laravel
安装它。

将此添加到您的
provider
中的
config/app.php


Elibyy\TCPDF\ServiceProvider::class,


然后在你的控制器中添加行

use Elibyy\TCPDF\Facades\TCPDF;

public function generatePDF(){
        $data = new \stdClass(); //can be your model, I have just used empty object
        $public_path = public_path();
        $data->title = "<p>प्रणालीबारे हामीकहाँ एक</p>";
        $data->description =  "<p>अहिले कार्यान्वयनको चरणमा रहेको नेपालको संघीय प्रणालीमा एकभन्दा बढी संसद् र 

        कार्यपालिकाहरू छन् । तर, पनि संघीय प्रणालीबारे हामीकहाँ एक प्रकारको नका ▶
        <p>स्थानीय संरचना भनेको तपाईं, हामी सबैले आ&ndash;आफ्नै घरदैलोमा भेट्ने सरकार हो । स्थानीय तह पुनर्संंरचना गर्दा संख्या घटाउनुलाई नै बहादुरी ठानियो । ७५३ वटा स् ▶
        <p>स्थानीय तहलाई अहिले जति अधिकार दिइएको छ, त्यो पनि धान्न सक्ने ल्याकत तिनमा देखिंदैन । संविधानले दिएका धेरै अधिकार स्थानीय तहमा कार्यान्वयन भइरहेका छैनन् । ति ▶
        <p>संविधानमा पनि केही त्रुटिहरू छन् । संविधान बनाउँदा स्थानीय तहलाई व्यवस्था गरिएका अधिकारहरूबारे आवश्यक गृहकार्य भएन, सोचिएन । क्षमता विनाको भारी बोकाउन खोज्दा ▶
        <p><strong>संघीयताः कतिपय अमिल्दा पक्ष</strong><br />संविधानको कार्यान्वयन हुँदै जाँदा प्रदेशहरू निरन्तर असान्दर्भिक र भूमिकाहीन देखिंदै गएका छन् । अहिले संविधा ▶
        <p>जत्रो आकारमा ७५३ वटा स्थानीय तह रचना गरिएको छ र त्यसले जुन प्रकारको राजनीतिक र प्रशासनिक संरचनाको माग गर्छ; त्यो कतै प्रदेशकै विकल्प सोचेर गरिएको त होइन भन्न ▶
        <p>हुन पनि, काठमाडौंमा बस्ने धेरैजसोलाई संघीयता मन परेको छैन । कार्यकारी जिम्मेवारी लिएको हुनाले यसको ठूलो अपजस चाहिं सत्तारूढ दललाई नै जान्छ । प्रधानमन्त्रीलाई ▶
        <p>तर प्रदेशलाई कमजोर पार्दा अन्ततः संविधानको कार्यान्वयन कमजोर हुन्छ । किनभने, संघीय संरचनाको एउटा अङ्ग कमजोर भएपछि त्यसको असर अरू अङ्गमा स्वतः पर्छ र संविधान  ▶
        <p>प्रदेशको कुरा गर्दा म अहिले तीनवटा मह&OElig;वपूर्ण पक्ष देख्छु । पहिलो, प्रदेशहरूले आफ्नो विशिष्ट उपस्थिति देखाउन सकिरहेका छैनन् । प्रदेश सभा छ, त्यसका सदस्य ▶
        <p>संविधानको अनुसूचीको व्यवस्था अनुसार संघ, प्रदेश र स्थानीय तहको अधिकार छुट्याउन मुख्यसचिवको कार्यदलले लामो कार्यसूची तयार पारेको थियो । पछि त्यसैको आधारमा &ls ▶
        <p><strong>परिणामतः</strong> सबै कुरामा प्रदेशहरूले सिंहदरबारकै सिको गर्न थाले । सिंहदरबारको योजना आयोगको साटो प्रदेशमा नीति आयोगहरू बने । सिंहदरबारकै जस्ता अरू ▶
        <p>केन्द्र या काठमाडौंलाई नक्कल गरेका नमूना ठाउँठाउँमा भेट्न सकिन्छ । जस्तो, गण्डकी प्रदेशमा &lsquo;मुख्यमन्त्री नमूना कृषि कार्यक्रम&rsquo; छ । लुम्ले, जहाँ हि ▶
        <p><strong>केन्द्रको प्रतिछायाँका रूपमा प्रदेश</strong><br />संघ र ६ वटा प्रदेश सभामा नेकपाको बहुमत छ । त्यसैले त्यहाँको राजनीति र नीति निर्माणमा ऊ हावी हुने कु ▶
        <p>संघीयता कार्यान्वयनको सन्दर्भमा प्रदेश&ndash;२ को भिन्न र सार्थक भूमिका किन पनि अपेक्षित थियो भने त्यो प्रदेश सिंहदरबारमा बस्नेहरू भन्दा फरक दलको नेतृत्वमा छ ▶
        <p>प्रदेशहरूले कसरी अगाडि जान सकिन्छ भन्ने चिन्तन गरेकै देखिएन । संविधान कार्यान्वयन भएको चार वर्ष बितिसक्दा पनि प्रदेशहरूले आफ्नो अस्तित्व नागरिकसामु पु&yen;या ▶
        <p><strong>प्रदेशका लागि &lsquo;फूटनोट&rsquo;</strong><br />हाम्रा यावत् समस्या र विसङ्गतिका निम्ति संविधानलाई दोष दिएर मात्र पुग्दैन । सबैभन्दा ठूलो खाँचो सकार ▶
        <p>अहिले प्रदेशहरू बढी नै केन्द्रीय सत्तामुखी देखिएका छन् । सात वटै प्रदेशबाट एकैचोटि भिन्न व्यवहारको अपेक्षा गर्न नसकिएला तर, एक&divide;दुई वटाले यसप्रकारको भू ▶
        <p>अहिले सबै प्रदेशले कर्मचारीको कुरा उठाउँछन् । संविधानले प्रदेशहरूलाई लोकसेवा आयोग बनाउन अधिकार दिएको छ । त्यसअनुरूप सबै प्रदेशले लोकसेवा आयोग बनाएका पनि छन्  ▶
        <p>प्रदेशले बनाएका कानून भोलि संघीय कानूनसित बाझे भने त्यो त्यसैबेला छिनोफानो हुने कुरा हो । तर, अहिले संघीय कानून नै नबनेका बेला त्यससँग बाझिने भन्ने कुरा कहाँ ▶
        <p>त्यस्तै; विकासको क्षेत्रमा पनि प्रदेशले एउटा, दुइटा नमूना कार्यक्रम सञ्चालन गर्न सक्थे । जस्तो&mdash; प्रदेश&ndash;२ मा &lsquo;बेटी पढाओ, बेटी बचाओ&rsquo; मु ▶
        <p>संविधानले प्रदेशहरूलाई प्रदेश तहका योजना बनाएर कार्यान्वयन गर्न छूट दिएको छ । प्रदेश तहको योजना भनेको के हो ? त्यसको पहिचान गर्न सकिन्थ्यो । मानौं, प्रदेश तह ▶
        <p>जलविद्युत्मा सम्भाव्यता भएका प्रदेशका नेतृत्व बसेर सहमतिका आधारमा कतै १०० मेगावाट, कतै २०० मेगावाट त कतै ९०० मेगावाटसम्मका जलविद्युत् आयोजना सञ्चालन गर्ने भन ▶
        <p><strong>संविधान बुझ्ने सूत्र</strong><br />अहिले मिडिया, अझ &lsquo;सोसल मिडिया&rsquo; मा संघीयता &lsquo;चल्दैन&rsquo; भन्ने कुरा बारम्बार आइरहन्छ । जबकि, संव ▶
        <p>यस्तो ऐतिहासिक पृष्ठभूमिमा आमनागरिकमा अस्थिर सोचाइ आउनु त्यति अव्यावहारिक र अस्वाभाविक होइन । हाम्रोमा सधैं अस्थिरताको जुन किसिमको पृष्ठभूमि रह्यो त्यसले पनि ▶
        <p>हामीमा संविधानप्रतिको चेतना, संविधानप्रतिको बुझाइको अभाव छ । यो असाध्य मह&OElig;वपूर्ण पक्ष हो । संविधान कार्यान्वयनको शुरूआती चरणमा यस्तो चेतना सत्तारूढ दल  ▶
        <p>संविधान कार्यान्वयनले अहिले एउटा बाटो लिंदैछ । घोषणा गर्दा जति चुनौती थिए तिनलाई पार गरेर संविधान अगाडि बढेको छ । सत्ता सञ्चालन गर्ने दलको कार्यशैलीले भन्दा  ▶
        <p><em><strong>राजनीतिशास्त्री खनालसँगको वार्तामा आधारित</strong></em></p> "; 
        $html = "<!DOCTYPE html>
        <html>
        <head>
          <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
          <meta charset='UTF-8'>
            <title>". $data->title ."</title>
            <style>
            @font-face {
              font-family: 'preeti';
              font-style: normal;
              font-weight: 400;
              src:url('".$public_path."/public/PREETI.TTF' format('woff');
            }
            </style>
        </head>
        <body style='font-family: preeti;'>
            ". $data->description ."
        </body>
        </html>";
        $html = mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8');
        
        
        $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
        $pdf::setFontSubSetting(true);
        $pdf::setFont('freeserif','',12);
        // $pdf->SetFont('dejavusans', '', 14, '', true);
        $pdf::AddPage();
        $pdf::writeHTML($html, true, 0, true, true);
        $output = $pdf::Output('001.pdf', 'I');

        return $output;    
      }

应该得到这样的输出。


0
投票

我对此太晚了,但对于将来需要这个的人来说,这个解决方案对我有用。这使用 Dompdf\Dompdf。

    $pdfOptions = new Options();
    $pdfOptions->setChroot(storage_path('fonts/'));
    $pdfOptions->set('fontDir', storage_path('fonts/'));
    $pdfOptions->set('fontCache', storage_path('fonts/'));
    $pdfOptions->set('defaultFont', 'Preeti');

    $pdf = new Dompdf($pdfOptions);

    $pdf->getFontMetrics()->registerFont(
        ['family' => 'Preeti', 'style' => 'normal', 'weight' => 'normal'],
        storage_path('fonts/') . 'Preeti.ttf'
    ); 

    $pdf->loadHtml(\View::make('pdf.template', compact('data'))->render());

    $pdf->render();

    $pdf->stream();
© www.soinside.com 2019 - 2024. All rights reserved.