themsaid / ibis

A PHP tool that helps you write eBooks in markdown and convert to PDF.
MIT License
1.97k stars 148 forks source link

[Feature Request]: Emoji Support #41

Open bhushan opened 3 years ago

bhushan commented 3 years ago

Screenshot 2021-08-21 at 1 45 48 PM

Markdown supports Emojis, HTML Supports Emojis but In generated PDF, Emojis are shown incorrectly.

@themsaid Please have a look when you have time.

plabbett commented 3 years ago

I was able to get a little bit of emoji support working (enough for my pressing needs) using the following steps:

  1. Get the emoji fonts here: https://github.com/MorbZ/OpenSansEmoji
  2. Put the OpenSansEmoji.ttf file in the fonts directory as per the readme.md
  3. Edit the ibis.php file to include the new font

ibis.php:

/**
     * The list of fonts to be used in the different themes.
     */
    'fonts' => [
        //        'calibri' => 'Calibri-Regular.ttf',
        //        'times' => 'times-regular.ttf',
        'emoji' => 'OpenSansEmoji.ttf',
    ],
  1. Use the font in the theme file (theme-dark.html and/or theme-light.html)

theme-dark.html, theme-dark.html:

In the style section, add an emoji class:

.pdfEmoji{
      font-family: emoji;
    }
  1. In your markdown, use <span class="pdfEmoji">😎</span>

yourcontentfile.md:

<span class="pdfEmoji">😎</span>

The result looks like this:

image

There's a lot to desire - I presume a better emoji font would be the next starting point, but this served my needs for my pressing project. Hope it helps someone else in the meantime.

This also was useful in getting this to work: https://github.com/mpdf/mpdf/issues/223

bhushan commented 3 years ago

Thank you @plabbett its still not perfect will check it more.. thank you for idea

shalvah commented 2 years ago

Thanks @plabbett this helped.

Yinci commented 8 months ago

I know this is an old thread, but I stumbled upon it regardless; consider users entering emojis into a textarea, meaning it will just be plain text. If I apply an emoji font, the "normal" characters won't display. I hoped a font-family with fallback would work (e.g. font-family: Helvetice, 'emoji', sans-serif) however that seems to not work within mPDF. Any suggestions?

(And yes I know this isn't the mPDF repo, however I got here via the mentioned 223 to begin with. I also realize the linked font is a merge font, however I'm struggling with more characters and I doubt it to be a good idea to try and mashup all required fonts into one ttf file, if it would even fit to begin with).