Created
July 1, 2020 14:58
-
-
Save equivalent/27d4abbb78ea991778316526f87fff94 to your computer and use it in GitHub Desktop.
wkhtmltoimage / IMGKit gem UTF-8 test of Chinese and Arabic characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# IMGKit lib is a Ruby wrapper around wkhtmltoimage | |
# | |
# * https://github.com/csquared/IMGKit | |
# * https://wkhtmltopdf.org/ | |
# | |
class Html2image | |
def call | |
head = '<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head>' | |
div = "<div class='ping'>Pong 读写汉字 - 学中文 ... ﺩ ﻁ ﺽ ﻙ ﻕ. ﻑ ﺙ ﺱ ﺹ ﺵ چ ﺥ ﺡ ﻩ. ڤ ﺫ ﺯ ﻅ ﺝ ﻍ ﻉ ﺓ. ﻡ ﻥ. ﻭ ﻝ ﺭ ﻱ ﻯ. ﺀ ﺃ ﺇ ﺅ ﺉ. ـِﻳ ـِ ـٍ. ـُﻭ ـُ ـٌ. ـَﺍ ✅</</div>" # randomly googled Chinese and Arabic characters, I have no idea what they mean | |
html = '<html>' + head +'<body><h1>Abc</h1><p>test</p>' + div +'</body></html>' | |
kit = IMGKit.new(html, :quality => 50) | |
file = kit.to_file('/tmp/file.jpg') | |
end | |
end | |
# Html2image.new.call |
This gist / note is part of my Investigation around how to convert text to image discussed in https://www.reddit.com/r/rails/comments/hi14ou/can_you_recommend_convert_text_to_image_gems/
Alternative - htmlcsstoimage.com
there is 3rd party API doing same thing if you are interested in test results of it you can find it at https://gist.github.com/equivalent/02aa376f8552f79cf50dd096dd7e47f5
long text test
class Html2image
include ActionView::Helpers::TextHelper
def call
head = '<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head>'
body = '<body>'
body += '<h1>Rose Tattoo</h1>'
body += '<h2>Dropkick Murphys</h2>'
body +=<<EOF
<p>
The pictures tell the story</br>
This life has many shades</br>
I'd wake up every morning and before I'd start each day</br>
I'd take a drag from last night's cigarette</br>
That smoldered in it's tray</br>
Down a little something and then be on my way</br>
</p>
<p>
I traveled far and wide</br>
And laid this head in many ports</br>
I was guided by a compass</br>
I saw beauty to the north</br>
I drew the tales of many lives</br>
And wore the faces of my own</br>
I had these memories all around me</br>
So I wouldn't be alone</br>
</p>
<p>
Some may be from showing up</br>
Others are from growing up</br>
Sometimes I was so messed up and didn't have a clue</br>
I ain't winning no one over</br>
I wear it just for you</br>
I've got your name written here</br>
In a rose tattoo</br>
</p>
<p>
In a rose tattoo</br>
In a rose tattoo</br>
I've got your name written here</br>
In a rose tattoo</br>
</p>
<p>
This one's for the mighty sea</br>
Mischief, gold and piracy</br>
This ones for the man that raised me</br>
Taught me sacrifice and bravery</br>
This one's for our favorite game</br>
Black and gold, we wave the flag</br>
This one's for my family name</br>
With pride I wear it to the grave</br>
</p>
<p>
Some may be from showing up</br>
Others are from growing up</br>
Sometimes I was so messed up and didn't have a clue</br>
I ain't winning no one over</br>
I wear it just for you</br>
I've got your name written here</br>
In a rose tattoo</br>
</p>
<p>
In a rose tattoo</br>
In a rose tattoo</br>
I've got your name written here</br>
In a rose tattoo</br>
In a rose tattoo</br>
In a rose tattoo</br>
I've got your name written here</br>
In a rose tattoo</br>
</p>
<p>
This one means the most to me</br>
Stays here for eternity</br>
A ship that always stays the course</br>
An anchor for my every choice</br>
</p>
<p>
A rose that shines down from above</br>
I signed and sealed these words in blood</br>
I heard them once, sung in a song</br>
It played again and we sang along</br>
</p>
<p>
You'll always be there with me</br>
Even if you're gone</br>
You'll always have my love</br>
Our memory will live on</br>
</p>
<p>
Some may be from showing up</br>
Others are from growing up</br>
Sometimes I was so messed up and didn't have a clue</br>
I ain't winning no one over</br>
I wear it just for you</br>
I've got your name written here</br>
In a rose tattoo</br>
</p>
<p>
In a rose tattoo</br>
In a rose tattoo</br>
I've got your name written here</br>
In a rose tattoo</br>
In a rose tattoo</br>
In a rose tattoo</br>
With pride I'll wear it to the grave for you</br>
In a rose tattoo</br>
In a rose tattoo</br>
I've got your name written here</br>
In a rose tattoo</br>
In a rose tattoo</br>
In a rose tattoo</br>
Signed and sealed in blood I would die for you</br>
</p>
<p>
Oh, oh, oh, oh, oh, oh</br>
Oh, oh, oh</br>
</p>
<p>
Oh, oh, oh, oh, oh, oh</br>
Oh, oh, oh</br>
</p>
EOF
body += '<h2>Encoding test</h2>'
body += "<div class='ping'>Pong 读写汉字 - 学中文 ... د ط ض ك ق. ف ث س ص ش چ خ ح ه. ڤ ذ ز ظ ج غ ع ة. م ن. و ل ر ي ى. ء أ إ ؤ ئ. ـِي ـِ ـٍ. ـُو ـُ ـٌ. ـَا ✅</</div>"
body += '</body>'
html = '<html>' + head + ' ' + body + '</html>'
kit = IMGKit.new(html, :quality => 50)
kit.stylesheets << Rails.root.join('app', 'bounded_context', 'pupil_activities', 'html2image.css')
file = kit.to_file('/tmp/file.jpg')
end
end
.ping { padding: 20px; font-family: 'sans-serif' }
p { margin: 20px 0; font-family: 'sans-serif'; line-height: 1.5em; font-size: 12px }
long text test - paragraphs
.ping { padding: 20px; font-family: 'sans-serif' }
p { margin: 20px 0; font-family: 'sans-serif'; line-height: 1.5em; font-size: 12px }
class Html2image
include ActionView::Helpers::TextHelper
def call
head = '<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head>'
body = '<body>'
body += <<EOF
<p>Hac posuere rhoncus consequat mauris diam tempor vestibulum dictumst. Sit amet hymenaeos nulla condimentum imperdiet cras tortor sem feugiat suspendisse sociis augue semper. Vel fringilla class aptent, adipiscing auctor libero ornare bibendum dolor potenti pede varius nunc rutrum nascetur. Ac habitasse augue Quis netus imperdiet bibendum hymenaeos.</p>
<p>Nostra per dictumst nunc primis iaculis lorem. Leo. Blandit purus ipsum quisque. Fringilla eleifend id ante facilisi primis tempus diam dignissim nisl eu potenti netus sem fames elementum neque hac nec scelerisque duis aliquet. Phasellus ad egestas metus arcu quam cursus molestie hymenaeos mattis convallis volutpat montes vitae dictumst magnis natoque velit vivamus nunc ultrices nec ultrices porttitor consequat morbi nibh ultricies auctor pretium tristique vestibulum maecenas curae; tellus sed amet. Lorem ridiculus ultricies tristique nisi potenti Donec. Hendrerit.</p>
<p>Cubilia, vehicula tempus maecenas id ad. Sollicitudin netus pretium, suscipit luctus, ullamcorper curae; posuere class blandit, aliquet Lectus pretium.</p>
<p>Nulla cum montes fusce aliquet condimentum accumsan vitae dolor augue per. Cras fames vestibulum tincidunt cursus integer viverra eu proin malesuada donec inceptos ridiculus scelerisque justo, pharetra, sem tincidunt nascetur senectus Quisque morbi tincidunt habitasse sociosqu, vulputate odio vitae, penatibus. Hendrerit sit pharetra nibh nullam enim nam mattis dignissim mattis lacinia. Ligula convallis torquent magna varius quis tellus sodales suscipit vehicula hymenaeos lacinia facilisis risus tortor ad.</p>
<p>Bibendum rutrum vitae porttitor libero a lacus primis pulvinar mus cras nisi bibendum eu nullam class feugiat. Parturient. Gravida per. Ante ornare facilisis magnis mi nunc natoque luctus Morbi metus id.</p>
<p>Molestie risus feugiat faucibus. Turpis risus pretium enim etiam tempor nisl non fringilla natoque est montes nonummy viverra. Sollicitudin. Fermentum cursus sed nibh. Erat turpis interdum tincidunt quis condimentum cubilia convallis pulvinar torquent senectus praesent pede inceptos scelerisque sodales auctor tristique odio ad varius, ad curae; bibendum a cras dui duis phasellus torquent faucibus vel et blandit pretium congue nulla nonummy penatibus ultrices. Convallis dictum dictum dictum dictumst et rhoncus sagittis ac vehicula aliquet libero nascetur a. Amet, consequat. Suscipit.</p>
<p>Aliquam lorem taciti non eget blandit habitasse lobortis elit etiam montes, hymenaeos. Hac cursus feugiat sapien mollis nec proin laoreet tortor potenti convallis gravida. Enim parturient rhoncus aliquet bibendum venenatis magna Conubia velit tellus sed primis neque. Fringilla. Est porta ad dapibus et. Nullam. Vitae nascetur. Dictum mauris lectus feugiat, suscipit. Taciti ad iaculis a rutrum. Malesuada diam mauris. Commodo sem a. Quam pede mattis, suspendisse varius curae; urna. Penatibus aptent quam cras ac.</p>
<p>Sociis, urna. Laoreet, risus ad. Pulvinar nibh turpis nam aliquam pulvinar fames quis dictum. Iaculis ornare ac. Phasellus pede non pellentesque dis ullamcorper. Congue integer natoque leo vehicula. Facilisis velit. Aptent faucibus lacinia, erat inceptos maecenas dignissim et eleifend cubilia hac fringilla volutpat netus nibh interdum eu ultricies dictumst ornare etiam aliquet non.</p>
<p>Malesuada habitant curae; ligula et vivamus orci mi non dictumst, lacus integer ultricies tellus. Senectus lectus pretium donec scelerisque ac mattis interdum accumsan at lacinia. Varius ipsum dignissim euismod aliquam justo ipsum tellus urna pulvinar. Nam nibh senectus augue nunc augue volutpat aliquam primis Mi, laoreet eleifend eros hendrerit hendrerit volutpat odio gravida ullamcorper litora maecenas inceptos at sagittis augue Platea erat sollicitudin imperdiet venenatis consequat, feugiat imperdiet in, congue.</p>
<p>Placerat eu arcu class platea. Ultricies sit erat aenean ornare cum Dapibus etiam turpis placerat maecenas pretium orci mauris nascetur eleifend consectetuer curabitur. Hymenaeos praesent Etiam praesent nunc nisi congue ligula viverra placerat aliquam praesent consequat. Luctus tincidunt nisi habitasse luctus interdum sociis per in sagittis hymenaeos conubia. Vulputate condimentum sociosqu taciti mus. Dolor blandit. Amet hymenaeos velit. Dapibus erat per. Molestie donec dolor laoreet volutpat per. Nisl elementum pretium. Lorem sociis non fermentum. Vehicula volutpat ullamcorper, sit malesuada aliquet euismod neque.</p>
<p>Odio dictum feugiat id congue amet tortor porttitor porta. Hendrerit urna senectus hendrerit congue sed praesent nam parturient et dis felis magna faucibus ligula lectus volutpat nascetur curae; praesent lectus magnis ut non risus, at arcu nam potenti lectus at elit aliquam nisi morbi nec lobortis ridiculus. Donec. Nunc viverra iaculis sollicitudin suscipit sollicitudin pharetra justo.</p>
<p>Neque condimentum posuere ultrices phasellus pulvinar dui eget hymenaeos dapibus imperdiet consequat euismod in est vitae ridiculus nisi metus lobortis. In. Faucibus, urna integer est suspendisse ac viverra augue at auctor platea fringilla elit mauris. Diam mus eget lorem gravida consequat massa molestie eros curabitur platea. Accumsan. Eu molestie id nam sociosqu.</p>
<p>Felis blandit. Fusce magna mollis cubilia risus cubilia consequat sagittis. Praesent et nisi rutrum metus fermentum facilisi per a felis montes sociis. Pede enim velit. Quam. Vel ante. Posuere. Nam malesuada risus, lectus purus dapibus. Nostra sapien posuere. Tincidunt at interdum. Bibendum aptent curae; porttitor nisl diam quisque tristique posuere sagittis sapien per per ridiculus ipsum congue enim nam nam odio sit parturient orci volutpat cras.</p>
<p>Condimentum est vestibulum tempus platea a nisi interdum molestie felis ultrices curae; tortor. Lacinia montes, velit et nulla elementum. Augue natoque erat nec erat aptent magna aliquet senectus lacus elit sapien curae; auctor lectus ante praesent mollis enim. Posuere platea interdum leo. Metus. Donec cum risus fames quisque malesuada mi aenean non lectus laoreet. Arcu donec laoreet accumsan lacinia nullam vitae potenti fames ornare est non.</p>
<p>Tincidunt parturient nibh ultrices faucibus suscipit molestie mi. Viverra natoque. Litora integer ultrices pretium. Potenti hac hac ante nibh Phasellus risus. Sodales enim ad curabitur metus. Class dapibus ante. Netus, montes suscipit praesent ridiculus semper taciti potenti. Neque augue. Sociis fringilla, lobortis, mi magna ante litora massa lectus Ligula dictum Pulvinar tincidunt feugiat sagittis sit euismod. Nascetur ridiculus lobortis metus sodales rutrum risus rutrum fermentum enim tincidunt cursus neque enim nostra nisl.</p>
<p>Nullam dictum nec. Ultricies platea. Lobortis mus pede facilisis lobortis dolor molestie sapien eu imperdiet vitae hac sem mattis id nam elit mi. Cubilia lobortis est rhoncus ultricies litora, pretium posuere ante donec curabitur sit ultrices vivamus feugiat. Semper tristique a urna a. Adipiscing nec felis dis. Facilisis. Aliquet. Lorem. Natoque malesuada, interdum hymenaeos sem vulputate molestie eget egestas ligula aliquet metus. Lectus placerat cubilia tempor tellus. Proin curabitur nunc lorem Porttitor morbi laoreet penatibus leo posuere facilisi iaculis turpis. Fermentum habitant nisl per fusce facilisis.</p>
<p>Nostra per dictumst nunc primis iaculis lorem. Leo. Blandit purus ipsum quisque. Fringilla eleifend id ante facilisi primis tempus diam dignissim nisl eu potenti netus sem fames elementum neque hac nec scelerisque duis aliquet. Phasellus ad egestas metus arcu quam cursus molestie hymenaeos mattis convallis volutpat montes vitae dictumst magnis natoque velit vivamus nunc ultrices nec ultrices porttitor consequat morbi nibh ultricies auctor pretium tristique vestibulum maecenas curae; tellus sed amet. Lorem ridiculus ultricies tristique nisi potenti Donec. Hendrerit.</p>
<p>Cubilia, vehicula tempus maecenas id ad. Sollicitudin netus pretium, suscipit luctus, ullamcorper curae; posuere class blandit, aliquet Lectus pretium.</p>
<p>Nulla cum montes fusce aliquet condimentum accumsan vitae dolor augue per. Cras fames vestibulum tincidunt cursus integer viverra eu proin malesuada donec inceptos ridiculus scelerisque justo, pharetra, sem tincidunt nascetur senectus Quisque morbi tincidunt habitasse sociosqu, vulputate odio vitae, penatibus. Hendrerit sit pharetra nibh nullam enim nam mattis dignissim mattis lacinia. Ligula convallis torquent magna varius quis tellus sodales suscipit vehicula hymenaeos lacinia facilisis risus tortor ad.</p>
<p>Bibendum rutrum vitae porttitor libero a lacus primis pulvinar mus cras nisi bibendum eu nullam class feugiat. Parturient. Gravida per. Ante ornare facilisis magnis mi nunc natoque luctus Morbi metus id.</p>
<p>Molestie risus feugiat faucibus. Turpis risus pretium enim etiam tempor nisl non fringilla natoque est montes nonummy viverra. Sollicitudin. Fermentum cursus sed nibh. Erat turpis interdum tincidunt quis condimentum cubilia convallis pulvinar torquent senectus praesent pede inceptos scelerisque sodales auctor tristique odio ad varius, ad curae; bibendum a cras dui duis phasellus torquent faucibus vel et blandit pretium congue nulla nonummy penatibus ultrices. Convallis dictum dictum dictum dictumst et rhoncus sagittis ac vehicula aliquet libero nascetur a. Amet, consequat. Suscipit.</p>
<p>Aliquam lorem taciti non eget blandit habitasse lobortis elit etiam montes, hymenaeos. Hac cursus feugiat sapien mollis nec proin laoreet tortor potenti convallis gravida. Enim parturient rhoncus aliquet bibendum venenatis magna Conubia velit tellus sed primis neque. Fringilla. Est porta ad dapibus et. Nullam. Vitae nascetur. Dictum mauris lectus feugiat, suscipit. Taciti ad iaculis a rutrum. Malesuada diam mauris. Commodo sem a. Quam pede mattis, suspendisse varius curae; urna. Penatibus aptent quam cras ac.</p>
<p>Sociis, urna. Laoreet, risus ad. Pulvinar nibh turpis nam aliquam pulvinar fames quis dictum. Iaculis ornare ac. Phasellus pede non pellentesque dis ullamcorper. Congue integer natoque leo vehicula. Facilisis velit. Aptent faucibus lacinia, erat inceptos maecenas dignissim et eleifend cubilia hac fringilla volutpat netus nibh interdum eu ultricies dictumst ornare etiam aliquet non.</p>
<p>Malesuada habitant curae; ligula et vivamus orci mi non dictumst, lacus integer ultricies tellus. Senectus lectus pretium donec scelerisque ac mattis interdum accumsan at lacinia. Varius ipsum dignissim euismod aliquam justo ipsum tellus urna pulvinar. Nam nibh senectus augue nunc augue volutpat aliquam primis Mi, laoreet eleifend eros hendrerit hendrerit volutpat odio gravida ullamcorper litora maecenas inceptos at sagittis augue Platea erat sollicitudin imperdiet venenatis consequat, feugiat imperdiet in, congue.</p>
<p>Placerat eu arcu class platea. Ultricies sit erat aenean ornare cum Dapibus etiam turpis placerat maecenas pretium orci mauris nascetur eleifend consectetuer curabitur. Hymenaeos praesent Etiam praesent nunc nisi congue ligula viverra placerat aliquam praesent consequat. Luctus tincidunt nisi habitasse luctus interdum sociis per in sagittis hymenaeos conubia. Vulputate condimentum sociosqu taciti mus. Dolor blandit. Amet hymenaeos velit. Dapibus erat per. Molestie donec dolor laoreet volutpat per. Nisl elementum pretium. Lorem sociis non fermentum. Vehicula volutpat ullamcorper, sit malesuada aliquet euismod neque.</p>
<p>Odio dictum feugiat id congue amet tortor porttitor porta. Hendrerit urna senectus hendrerit congue sed praesent nam parturient et dis felis magna faucibus ligula lectus volutpat nascetur curae; praesent lectus magnis ut non risus, at arcu nam potenti lectus at elit aliquam nisi morbi nec lobortis ridiculus. Donec. Nunc viverra iaculis sollicitudin suscipit sollicitudin pharetra justo.</p>
<p>Neque condimentum posuere ultrices phasellus pulvinar dui eget hymenaeos dapibus imperdiet consequat euismod in est vitae ridiculus nisi metus lobortis. In. Faucibus, urna integer est suspendisse ac viverra augue at auctor platea fringilla elit mauris. Diam mus eget lorem gravida consequat massa molestie eros curabitur platea. Accumsan. Eu molestie id nam sociosqu.</p>
<p>Felis blandit. Fusce magna mollis cubilia risus cubilia consequat sagittis. Praesent et nisi rutrum metus fermentum facilisi per a felis montes sociis. Pede enim velit. Quam. Vel ante. Posuere. Nam malesuada risus, lectus purus dapibus. Nostra sapien posuere. Tincidunt at interdum. Bibendum aptent curae; porttitor nisl diam quisque tristique posuere sagittis sapien per per ridiculus ipsum congue enim nam nam odio sit parturient orci volutpat cras.</p>
<p>Condimentum est vestibulum tempus platea a nisi interdum molestie felis ultrices curae; tortor. Lacinia montes, velit et nulla elementum. Augue natoque erat nec erat aptent magna aliquet senectus lacus elit sapien curae; auctor lectus ante praesent mollis enim. Posuere platea interdum leo. Metus. Donec cum risus fames quisque malesuada mi aenean non lectus laoreet. Arcu donec laoreet accumsan lacinia nullam vitae potenti fames ornare est non.</p>
<p>Tincidunt parturient nibh ultrices faucibus suscipit molestie mi. Viverra natoque. Litora integer ultrices pretium. Potenti hac hac ante nibh Phasellus risus. Sodales enim ad curabitur metus. Class dapibus ante. Netus, montes suscipit praesent ridiculus semper taciti potenti. Neque augue. Sociis fringilla, lobortis, mi magna ante litora massa lectus Ligula dictum Pulvinar tincidunt feugiat sagittis sit euismod. Nascetur ridiculus lobortis metus sodales rutrum risus rutrum fermentum enim tincidunt cursus neque enim nostra nisl.</p>
<p>Nullam dictum nec. Ultricies platea. Lobortis mus pede facilisis lobortis dolor molestie sapien eu imperdiet vitae hac sem mattis id nam elit mi. Cubilia lobortis est rhoncus ultricies litora, pretium posuere ante donec curabitur sit ultrices vivamus feugiat. Semper tristique a urna a. Adipiscing nec felis dis. Facilisis. Aliquet. Lorem. Natoque malesuada, interdum hymenaeos sem vulputate molestie eget egestas ligula aliquet metus. Lectus placerat cubilia tempor tellus. Proin curabitur nunc lorem Porttitor morbi laoreet penatibus leo posuere facilisi iaculis turpis. Fermentum habitant nisl per fusce facilisis.</p>
<p>Nostra per dictumst nunc primis iaculis lorem. Leo. Blandit purus ipsum quisque. Fringilla eleifend id ante facilisi primis tempus diam dignissim nisl eu potenti netus sem fames elementum neque hac nec scelerisque duis aliquet. Phasellus ad egestas metus arcu quam cursus molestie hymenaeos mattis convallis volutpat montes vitae dictumst magnis natoque velit vivamus nunc ultrices nec ultrices porttitor consequat morbi nibh ultricies auctor pretium tristique vestibulum maecenas curae; tellus sed amet. Lorem ridiculus ultricies tristique nisi potenti Donec. Hendrerit.</p>
<p>Cubilia, vehicula tempus maecenas id ad. Sollicitudin netus pretium, suscipit luctus, ullamcorper curae; posuere class blandit, aliquet Lectus pretium.</p>
<p>Nulla cum montes fusce aliquet condimentum accumsan vitae dolor augue per. Cras fames vestibulum tincidunt cursus integer viverra eu proin malesuada donec inceptos ridiculus scelerisque justo, pharetra, sem tincidunt nascetur senectus Quisque morbi tincidunt habitasse sociosqu, vulputate odio vitae, penatibus. Hendrerit sit pharetra nibh nullam enim nam mattis dignissim mattis lacinia. Ligula convallis torquent magna varius quis tellus sodales suscipit vehicula hymenaeos lacinia facilisis risus tortor ad.</p>
<p>Bibendum rutrum vitae porttitor libero a lacus primis pulvinar mus cras nisi bibendum eu nullam class feugiat. Parturient. Gravida per. Ante ornare facilisis magnis mi nunc natoque luctus Morbi metus id.</p>
<p>Molestie risus feugiat faucibus. Turpis risus pretium enim etiam tempor nisl non fringilla natoque est montes nonummy viverra. Sollicitudin. Fermentum cursus sed nibh. Erat turpis interdum tincidunt quis condimentum cubilia convallis pulvinar torquent senectus praesent pede inceptos scelerisque sodales auctor tristique odio ad varius, ad curae; bibendum a cras dui duis phasellus torquent faucibus vel et blandit pretium congue nulla nonummy penatibus ultrices. Convallis dictum dictum dictum dictumst et rhoncus sagittis ac vehicula aliquet libero nascetur a. Amet, consequat. Suscipit.</p>
<p>Aliquam lorem taciti non eget blandit habitasse lobortis elit etiam montes, hymenaeos. Hac cursus feugiat sapien mollis nec proin laoreet tortor potenti convallis gravida. Enim parturient rhoncus aliquet bibendum venenatis magna Conubia velit tellus sed primis neque. Fringilla. Est porta ad dapibus et. Nullam. Vitae nascetur. Dictum mauris lectus feugiat, suscipit. Taciti ad iaculis a rutrum. Malesuada diam mauris. Commodo sem a. Quam pede mattis, suspendisse varius curae; urna. Penatibus aptent quam cras ac.</p>
<p>Sociis, urna. Laoreet, risus ad. Pulvinar nibh turpis nam aliquam pulvinar fames quis dictum. Iaculis ornare ac. Phasellus pede non pellentesque dis ullamcorper. Congue integer natoque leo vehicula. Facilisis velit. Aptent faucibus lacinia, erat inceptos maecenas dignissim et eleifend cubilia hac fringilla volutpat netus nibh interdum eu ultricies dictumst ornare etiam aliquet non.</p>
<p>Malesuada habitant curae; ligula et vivamus orci mi non dictumst, lacus integer ultricies tellus. Senectus lectus pretium donec scelerisque ac mattis interdum accumsan at lacinia. Varius ipsum dignissim euismod aliquam justo ipsum tellus urna pulvinar. Nam nibh senectus augue nunc augue volutpat aliquam primis Mi, laoreet eleifend eros hendrerit hendrerit volutpat odio gravida ullamcorper litora maecenas inceptos at sagittis augue Platea erat sollicitudin imperdiet venenatis consequat, feugiat imperdiet in, congue.</p>
<p>Placerat eu arcu class platea. Ultricies sit erat aenean ornare cum Dapibus etiam turpis placerat maecenas pretium orci mauris nascetur eleifend consectetuer curabitur. Hymenaeos praesent Etiam praesent nunc nisi congue ligula viverra placerat aliquam praesent consequat. Luctus tincidunt nisi habitasse luctus interdum sociis per in sagittis hymenaeos conubia. Vulputate condimentum sociosqu taciti mus. Dolor blandit. Amet hymenaeos velit. Dapibus erat per. Molestie donec dolor laoreet volutpat per. Nisl elementum pretium. Lorem sociis non fermentum. Vehicula volutpat ullamcorper, sit malesuada aliquet euismod neque.</p>
<p>Odio dictum feugiat id congue amet tortor porttitor porta. Hendrerit urna senectus hendrerit congue sed praesent nam parturient et dis felis magna faucibus ligula lectus volutpat nascetur curae; praesent lectus magnis ut non risus, at arcu nam potenti lectus at elit aliquam nisi morbi nec lobortis ridiculus. Donec. Nunc viverra iaculis sollicitudin suscipit sollicitudin pharetra justo.</p>
<p>Neque condimentum posuere ultrices phasellus pulvinar dui eget hymenaeos dapibus imperdiet consequat euismod in est vitae ridiculus nisi metus lobortis. In. Faucibus, urna integer est suspendisse ac viverra augue at auctor platea fringilla elit mauris. Diam mus eget lorem gravida consequat massa molestie eros curabitur platea. Accumsan. Eu molestie id nam sociosqu.</p>
<p>Felis blandit. Fusce magna mollis cubilia risus cubilia consequat sagittis. Praesent et nisi rutrum metus fermentum facilisi per a felis montes sociis. Pede enim velit. Quam. Vel ante. Posuere. Nam malesuada risus, lectus purus dapibus. Nostra sapien posuere. Tincidunt at interdum. Bibendum aptent curae; porttitor nisl diam quisque tristique posuere sagittis sapien per per ridiculus ipsum congue enim nam nam odio sit parturient orci volutpat cras.</p>
<p>Condimentum est vestibulum tempus platea a nisi interdum molestie felis ultrices curae; tortor. Lacinia montes, velit et nulla elementum. Augue natoque erat nec erat aptent magna aliquet senectus lacus elit sapien curae; auctor lectus ante praesent mollis enim. Posuere platea interdum leo. Metus. Donec cum risus fames quisque malesuada mi aenean non lectus laoreet. Arcu donec laoreet accumsan lacinia nullam vitae potenti fames ornare est non.</p>
<p>Tincidunt parturient nibh ultrices faucibus suscipit molestie mi. Viverra natoque. Litora integer ultrices pretium. Potenti hac hac ante nibh Phasellus risus. Sodales enim ad curabitur metus. Class dapibus ante. Netus, montes suscipit praesent ridiculus semper taciti potenti. Neque augue. Sociis fringilla, lobortis, mi magna ante litora massa lectus Ligula dictum Pulvinar tincidunt feugiat sagittis sit euismod. Nascetur ridiculus lobortis metus sodales rutrum risus rutrum fermentum enim tincidunt cursus neque enim nostra nisl.</p>
<p>Nullam dictum nec. Ultricies platea. Lobortis mus pede facilisis lobortis dolor molestie sapien eu imperdiet vitae hac sem mattis id nam elit mi. Cubilia lobortis est rhoncus ultricies litora, pretium posuere ante donec curabitur sit ultrices vivamus feugiat. Semper tristique a urna a. Adipiscing nec felis dis. Facilisis. Aliquet. Lorem. Natoque malesuada, interdum hymenaeos sem vulputate molestie eget egestas ligula aliquet metus. Lectus placerat cubilia tempor tellus. Proin curabitur nunc lorem Porttitor morbi laoreet penatibus leo posuere facilisi iaculis turpis. Fermentum habitant nisl per fusce facilisis.</p>
EOF
body += '<h2>Encoding test</h2>'
body += "<div class='ping'>Pong 读写汉字 - 学中文 ... د ط ض ك ق. ف ث س ص ش چ خ ح ه. ڤ ذ ز ظ ج غ ع ة. م ن. و ل ر ي ى. ء أ إ ؤ ئ. ـِي ـِ ـٍ. ـُو ـُ ـٌ. ـَا ✅</</div>"
body += '</body>'
html = '<html>' + head + ' ' + body + '</html>'
kit = IMGKit.new(html, :quality => 50)
kit.stylesheets << Rails.root.join('app', 'bounded_context', 'pupil_activities', 'html2image.css')
file = kit.to_file('/tmp/file.jpg')
end
end
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
IMGKit lib is a Ruby wrapper around
wkhtmltoimage
.Here is an output file: