return a fz_font from a number of parameters
(
fontname,
fontfile,
fontbuffer,
script,
lang,
ordering,
is_bold,
is_italic,
is_serif,
embed,
)
| 19701 | |
| 19702 | |
| 19703 | def JM_get_font( |
| 19704 | fontname, |
| 19705 | fontfile, |
| 19706 | fontbuffer, |
| 19707 | script, |
| 19708 | lang, |
| 19709 | ordering, |
| 19710 | is_bold, |
| 19711 | is_italic, |
| 19712 | is_serif, |
| 19713 | embed, |
| 19714 | ): |
| 19715 | ''' |
| 19716 | return a fz_font from a number of parameters |
| 19717 | ''' |
| 19718 | def fertig(font): |
| 19719 | if not font.m_internal: |
| 19720 | raise RuntimeError(MSG_FONT_FAILED) |
| 19721 | # if font allows this, set embedding |
| 19722 | if not font.m_internal.flags.never_embed: |
| 19723 | mupdf.fz_set_font_embedding(font, embed) |
| 19724 | return font |
| 19725 | |
| 19726 | index = 0 |
| 19727 | font = None |
| 19728 | if fontfile: |
| 19729 | #goto have_file; |
| 19730 | font = mupdf.fz_new_font_from_file( None, fontfile, index, 0) |
| 19731 | return fertig(font) |
| 19732 | |
| 19733 | if fontbuffer: |
| 19734 | #goto have_buffer; |
| 19735 | res = JM_BufferFromBytes(fontbuffer) |
| 19736 | font = mupdf.fz_new_font_from_buffer( None, res, index, 0) |
| 19737 | return fertig(font) |
| 19738 | |
| 19739 | if ordering > -1: |
| 19740 | # goto have_cjk; |
| 19741 | font = mupdf.fz_new_cjk_font(ordering) |
| 19742 | return fertig(font) |
| 19743 | |
| 19744 | if fontname: |
| 19745 | # goto have_base14; |
| 19746 | # Base-14 or a MuPDF builtin font |
| 19747 | font = mupdf.fz_new_base14_font(fontname) |
| 19748 | if font.m_internal: |
| 19749 | return fertig(font) |
| 19750 | font = mupdf.fz_new_builtin_font(fontname, is_bold, is_italic) |
| 19751 | return fertig(font) |
| 19752 | |
| 19753 | # Check for NOTO font |
| 19754 | #have_noto:; |
| 19755 | data, size, index = mupdf.fz_lookup_noto_font( script, lang) |
| 19756 | font = None |
| 19757 | if data: |
| 19758 | font = mupdf.fz_new_font_from_memory( None, data, size, index, 0) |
| 19759 | if font.m_internal: |
| 19760 | return fertig(font) |
no test coverage detected
searching dependent graphs…