Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dompdf shows boxes instead of text for a custom font #2209

Closed
abbbhucho opened this issue Aug 13, 2020 · 2 comments
Closed

Dompdf shows boxes instead of text for a custom font #2209

abbbhucho opened this issue Aug 13, 2020 · 2 comments
Labels

Comments

@abbbhucho
Copy link

abbbhucho commented Aug 13, 2020

Hello, I am trying solve the issue of using a custom font(Preeti.ttf) in my pdf,
Here is my code

use Dompdf\Dompdf;
use Dompdf\Options;

public function generatePDF(){
        $data = new \stdClass();
        $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');
        // return $html;
        $options = new Options();
        $options->set('defaultFont', 'preeti');
        $dompdf = new Dompdf($options);
        // $dompdf->setOptions(['dpi' => 150, 'defaultFont' => 'preeti']);
        $dompdf->loadHTML($html);
        $dompdf->setPaper('A4', 'landscape');
        $dompdf->render();
        return $dompdf->stream();
}

The html works fine, but I was getting ???? in the pdf as shown in picture
image




Then I tried using this suggestion given in dompdf wiki.
I successfully managed to generate preeti.ttf and preeti-bold.ttf using php load_font.php preeti /path/to/preeti.ttf /path/to/preeti-bold.ttf . adding PhenX / php-font-lib and PhenX / php-svg-lib to vendor/dompdf/dompdf/lib and adding autoload.inc.php(changing it to autoload.php) and load_font.php from dompdf / utils .
But still I get this as shown in image
image

Please help what should I do next to get the desired font in pdf?

@tfevan
Copy link

tfevan commented Aug 15, 2020

I got the same with bangla font

@bsweeney
Copy link
Member

The format you specified is WOFF but it should be truetype.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants