Japanese and Non-English Fonts in PDF Invoices

PDF Invoices

Use this when Japanese or other non-English names, addresses, or membership labels show as blank squares (□) on a PDF invoice. From version 2.2, every built-in template already loads a Noto font stack, so you usually do not need a custom font setup.

Available from version 2.2. Default, Corporate, Green, and Split now include Noto Sans plus Japanese, Chinese, Korean, Arabic, Hebrew, Thai, and Devanagari. Update the plugin, then re-apply a built-in template if you already have a custom one.

What 2.2 includes

PDF Invoices 2.2 loads these Google Fonts on every built-in template:

  • Noto Sans (Latin, Cyrillic, Greek, Vietnamese)
  • Noto Sans JP / SC / TC / KR
  • Noto Sans Arabic, Hebrew, Thai, and Devanagari

English still uses Noto Sans. Other scripts fall through to the matching family. Arabic and Hebrew glyphs should appear; full right-to-left layout is still limited by Dompdf.

What you need to do

  1. Update to PDF Invoices 2.2 or later from File downloads.
  2. If you use a built-in template and have not customized it, generate a sample PDF. Japanese and other covered scripts should render.
  3. If you already saved a custom template, re-apply Default, Corporate, Green, or Split so the new font stack is copied in. Then regenerate invoices from the Tools tab if old PDFs still show tofu boxes.

Custom templates

Keep this only if you maintain your own HTML. Dompdf draws characters that exist in the font used by the template, so load a Unicode family and apply it to the invoice markup.

Load the fonts

Copy the Google Fonts stylesheet line from any built-in template (templates/order.html, Corporate, Green, or Split) into the head of your custom template.

Apply the font family

html, body, div, p, table, td, th, h1, h2, h3, h4, span, strong {
  font-family: 'Noto Sans', 'Noto Sans JP', 'Noto Sans SC', 'Noto Sans TC', 'Noto Sans KR', 'Noto Sans Arabic', 'Noto Sans Hebrew', 'Noto Sans Thai', 'Noto Sans Devanagari', sans-serif;
}

Keep the HTML charset as UTF-8. You can still use another Google Font or a local font path if you prefer.

View an example of the default PDF template.

Why Noto

Noto Sans JP is part of Google’s Noto family, built so most languages share a consistent look. “Noto” comes from “No Tofu” — the blank rectangles that appear when a font is missing a character.