Skip to content
Logo

PDF Fonts

PDF Fonts allow you to customize the typography of your printed materials. This is especially useful for multilingual support (Arabic, Hindi, Chinese, etc.), maintaining brand consistency, and ensuring proper character rendering in PDF documents like bills, invoices, and reports. Navigate to Settings → PDF Fonts to manage fonts.

PDF Fonts - List Page


Why Custom PDF Fonts?

Multilingual Support

  • Default fonts may not support all characters in languages like Arabic, Hindi, Thai, Chinese, Japanese
  • Custom fonts ensure proper rendering of special characters and scripts
  • Essential for restaurants serving international communities

Brand Consistency

  • Match your restaurant's brand fonts on printed materials
  • Create professional, cohesive look across all customer touchpoints
  • Use the same fonts as your menu, signage, and website

Character Support

  • Some special characters or symbols require specific fonts
  • Ensure currency symbols, measurement units, and special characters display correctly
  • Avoid "missing character" boxes in PDFs

Creating a New PDF Font

PDF Fonts - Add/Edit Form

When creating or editing a PDF font, configure the following fields:

Name

  • Font Name: Enter the full, descriptive name of the font (required)
    • Examples: Roboto Regular, Noto Sans Arabic, Helvetica Bold, Open Sans
    • Should clearly identify the font family and style
    • Appears in font selection dropdowns throughout the application

File

  • Font File: Upload the font file (required)
    • Accepted Format: .ttf (TrueType Font) files only
    • Font file size should be reasonable (typically under 5MB)
    • Ensure you have proper licensing rights to use the font
    • Where to get fonts:
      • Google Fonts (free, open-source)
      • Adobe Fonts (with subscription)
      • Purchase from font foundries
      • Your designer may provide branded fonts

Font Licensing

Ensure you have the legal right to use any font you upload. Many fonts require commercial licenses for business use, even if they're free for personal use.

Use Kashida

  • Use Kashida: Enable or disable Kashida justification (Yes/No)
    • Value: Yes (1) or No (0)
    • What is Kashida?
      • A typographic feature used primarily in Arabic script
      • Elongates certain characters to justify text
      • Creates visually balanced text alignment
    • When to use:
      • Set to Yes if you're using an Arabic font and want proper text justification
      • Set to No for non-Arabic fonts or if you don't need this feature
    • Default: No (0) for most fonts

Arabic Fonts

If your restaurant serves Arabic-speaking customers and prints materials in Arabic, set Use Kashida to Yes for Arabic fonts. For all other languages, leave it as No.

Use OTL

  • Use OTL: Enable or disable OpenType Layout features (Yes/No)
    • Value: Yes (255) or No (0)
    • What is OTL?
      • OpenType Layout provides advanced typography features
      • Includes ligatures, kerning, contextual alternates
      • Improves text rendering for complex scripts
    • When to use:
      • Set to Yes (255) for fonts with OpenType features, especially:
        • Arabic, Persian, Urdu fonts
        • Devanagari (Hindi) fonts
        • Complex script fonts
        • Fonts with special ligatures
      • Set to No (0) for simple Latin fonts without special features
    • Default: No (0) for most Latin fonts

Complex Scripts

If you're using fonts for languages with complex character shaping (Arabic, Hindi, Thai, etc.), set Use OTL to Yes (255) for proper character rendering. For standard English/Latin fonts, No (0) is fine.


Font Examples by Language

English / Latin Scripts

Font: Roboto, Open Sans, Helvetica, Arial

  • Use Kashida: No
  • Use OTL: No
  • Use: Standard English restaurant materials

Arabic

Font: Noto Sans Arabic, Cairo, Amiri

  • Use Kashida: Yes
  • Use OTL: Yes
  • Use: Arabic bills, menus, signage

Hindi / Devanagari

Font: Noto Sans Devanagari, Lohit Devanagari

  • Use Kashida: No
  • Use OTL: Yes
  • Use: Hindi restaurant materials

Chinese

Font: Noto Sans CJK, Source Han Sans

  • Use Kashida: No
  • Use OTL: No (unless font has advanced features)
  • Use: Chinese menus and bills

Japanese

Font: Noto Sans JP, Source Han Sans JP

  • Use Kashida: No
  • Use OTL: No (unless font has advanced features)
  • Use: Japanese restaurant materials

Thai

Font: Noto Sans Thai, Sarabun

  • Use Kashida: No
  • Use OTL: Yes
  • Use: Thai bills and menus

Step-by-Step: Adding a Font

1. Obtain the Font File

  • Download from Google Fonts (free) or purchase
  • Ensure file is in .ttf format
  • Check licensing for commercial use

2. Upload to Restrofly

  • Go to Settings → PDF Fonts
  • Click Add New Font
  • Enter Name (e.g., "Noto Sans Arabic Regular")
  • Click Upload or Choose File
  • Select your .ttf file from your computer
  • Wait for upload to complete

3. Configure Font Settings

  • Set Use Kashida: - Yes: For Arabic fonts only - No: For all other languages
  • Set Use OTL: - Yes: For Arabic, Hindi, Thai, and complex scripts - No: For simple English/Latin fonts

4. Save and Test

  • Click Save or Create
  • Go to App Settings → Appearance
  • Select your new font for PDFs
  • Generate a test invoice/bill
  • Verify characters render correctly

Using PDF Fonts

After uploading fonts:

  1. Set Default PDF Font - Go to App Settings → Appearance (or Preferences) - Find PDF Font or Bill Font setting - Select your uploaded font from dropdown - Save settings

  2. Generate PDFs - When you generate bills, invoices, or reports as PDFs - The system uses your selected font - All characters should render properly

  3. Verify Output - Print a test bill to ensure font displays correctly - Check all special characters and numbers - Verify line spacing and readability


Best Practices

Choose Readable Fonts

  • Bills and invoices need clear, legible fonts
  • Avoid overly decorative fonts for transactional documents
  • Reserve fancy fonts for marketing materials

Test Before Production

  • Always generate test PDFs after adding a new font
  • Verify all characters, numbers, and currency symbols display correctly
  • Print test pages to check real-world appearance

Keep Font Files Organized

  • Use consistent naming: "FontFamily-Style" (e.g., "Roboto-Bold")
  • Document which fonts are used where
  • Keep backup copies of font files

Mind the File Size

  • Larger font files increase PDF generation time
  • If possible, use optimized font files
  • Consider subsetting fonts if available (only include needed characters)

Licensing Compliance

  • Only upload fonts you have rights to use commercially
  • Keep license documentation for audits
  • Use open-source fonts (Google Fonts, Open Font License) to avoid licensing issues

Multilingual Setup

  • Upload separate fonts for each language if needed
  • Name fonts clearly: "Arabic Font", "Hindi Font", etc.
  • Test with actual content in each language

Update Fonts When Needed

  • If a font is updated (bug fixes, new characters), re-upload
  • Delete old font version to avoid confusion
  • Notify staff if font appearance changes

Troubleshooting

Characters Not Displaying (Showing Boxes)

  • The uploaded font doesn't support those characters
  • Solution: Upload a font that includes the character set for your language
  • Try Noto Sans fonts from Google Fonts (comprehensive language support)

Font Not Appearing in Selection Dropdown

  • Font upload may have failed
  • Solution: Try uploading again, ensure file is .ttf format
  • Check file size is not too large

PDF Generation is Slow

  • Large font files can slow down PDF creation
  • Solution: Use optimized/compressed font files if available
  • Consider using web-safe fonts for simple documents

Text Appears Jumbled (Arabic, Hindi)

  • Use Kashida or Use OTL settings are incorrect
  • Solution: For Arabic, enable Use Kashida = Yes and Use OTL = Yes
  • For Hindi/Devanagari, enable Use OTL = Yes
  • Regenerate PDF

Font Looks Different in PDF vs Screen

  • PDF rendering may differ slightly from screen rendering
  • Solution: This is normal; verify PDF output is acceptable
  • Adjust font choice if needed

Can't Delete a Font

  • Font may be set as default or in use
  • Solution: Change default font to another option first
  • Then delete the unwanted font

For Multilingual Support:

  • Noto Sans family (Google Fonts) - supports 100+ languages
  • Open Sans (Google Fonts) - excellent readability
  • Roboto (Google Fonts) - modern, clean appearance

For Arabic:

  • Noto Sans Arabic
  • Cairo
  • Amiri

For Hindi/Devanagari:

  • Noto Sans Devanagari
  • Hind

For Chinese:

  • Noto Sans SC (Simplified Chinese)
  • Noto Sans TC (Traditional Chinese)

For Japanese:

  • Noto Sans JP

All Noto fonts are free, open-source, and available at https://fonts.google.com/noto

Font Recommendation

For multi-language restaurants, the Noto Sans font family from Google Fonts is highly recommended. It's free, covers almost all languages, and maintains consistent appearance across scripts.

System Fonts vs Uploaded Fonts

Default system fonts may not render correctly in PDFs for all languages. Always upload and explicitly select fonts for PDF generation, especially for non-Latin scripts.