The quick answer
Add a font link inside the template’s head, using a saved File Cabinet URL the renderer can retrieve. For a custom TTF, current NetSuite guidance uses subtype="opentype" and bytes="2". Set the applicable CSS font-family to the link’s matching name, preserve the existing locale branches, then preview, save and print the same invoice to compare its data and layout.
The invoice data, file name, alias and URL are fictional examples. The example uses an approved, licensed regular font.
Before you start
Start with a copied Advanced PDF/HTML template in a sandbox or controlled test account, with the original source preserved. Advanced PDF/HTML Templates must be enabled, and you need a role that can view the approved File Cabinet file and edit the applicable template. Exact permissions and menu visibility vary by role and account configuration. A shared template change can affect every form that uses it.
This walkthrough uses INV51420 for Brookstone Outfitters, with 12 Portable Work Light units at $105.00, totaling $1,260.00. The saved Dispatch Invoice form already uses Dispatch Invoice PDF/HTML Template for printing. Before starting, inspect the applicable form under Customization > Forms > Transaction Forms: Printing Type must be Advanced and Print Template must point to your copied template. The copy and assignment are prepared before the recording.
The font is already uploaded and approved for this use, including embedding and any required redistribution. Keep its license with your implementation. This example uses one static regular TTF; separate bold or italic files and non-Latin glyph coverage require their own checks.
The file is already approved for public access. Available Without Login can expose the file to anyone who obtains its accessible URL. Do not make a restricted font or confidential file public to complete this walkthrough. If public access is unsuitable, use a supported retrieval method that meets your access requirements.
01. Inspect the original print
Open INV51420 and confirm its Dispatch Invoice form and $1,260.00 total. Choose Print. Check the original typeface, transaction identity, quantity, rate, amount and page count. This example starts with one page. Close the preview to return to the invoice.
02. Inspect the approved font file
Go to Documents > Files > File Cabinet and edit invoice-sans-regular.ttf. Confirm that it is the intended TTF File, that licensing approval is in place, and that its saved access settings allow the rendering service to retrieve it. Available Without Login is already selected in this example; the recording does not upload or change the font file.
Copy the final saved URL, then choose Cancel. Confirm that the saved URL returns the intended font file without relying solely on an authenticated browser session. Successful retrieval outside the PDF renderer does not by itself prove that the renderer will load the font.
03. Declare the custom font
Open Customization > Forms > Advanced PDF/HTML Templates, edit Dispatch Invoice PDF/HTML Template, and turn on Source Code if needed. Immediately after the opening head tag, add a separate link for the custom font. Keep the existing NotoSans and locale font declarations.
Use your own final file URL. The example declaration is:
<link name="InvoiceSans" type="font" subtype="opentype"
src="https://files.examplesupply.example/core/media/media.nl?id=7182&version=2"
bytes="2" />
The name is the alias used by CSS. For this custom TTF, use opentype and bytes="2", following current NetSuite guidance. Keep the existing built-in NotoSans declaration unchanged, including its truetype subtype. Preserve the existing locale links with their respective subtypes.
Encode each bare ampersand in a literal XML URL once as &. Preserve an existing valid entity; double encoding to &amp; can change the URL requested.
04. Apply the alias, preview and save
Find the CSS font-family declaration that applies to your intended output language. In this example, change only the default English/Latin else branch from NotoSans to InvoiceSans, retaining the fallback:
font-family: InvoiceSans, sans-serif;
Preserve the Chinese, Japanese, Korean and Thai branches above it. This change does not extend the custom font’s glyph coverage to those languages. The alias must exactly match the link name.
Choose Preview and check the sample output for syntax and font appearance. Preview uses sample data and does not save the template. Close the preview, choose Save and Edit, and confirm that the template was successfully saved. Resolve validation errors before printing.
05. Compare the same invoice
Return to INV51420 from Recent Records. Confirm that its saved Dispatch Invoice form is unchanged, then choose Print again. Compare the typeface with the original print.
The example still shows 12 units at $105.00, an amount and total of $1,260.00, and one page. The transaction itself was not edited.
Test representative long invoices, required characters, bold and italic styles, and each delivery path before broader use. A typeface can alter line wrapping and page breaks. Printed appearance alone does not prove complete font embedding in a downloaded PDF; inspect that PDF separately when embedding is required. Email and bulk output need their own verification.
Common questions
Why does the renderer fail to load the custom font?
Check that the font URL resolves to the intended file through the renderer’s access path, the link is inside head, and the CSS alias matches its name. Resolve XML errors, including bare URL ampersands. Confirm that the relevant language branch selects the alias and that the saved form prints through the template you edited. Do not expose a restricted file merely to complete the test.
Should a custom TTF use truetype or opentype?
Current NetSuite guidance for a custom TTF uses subtype opentype and bytes="2". Built-in font declarations can differ; preserve the standard NotoSans and locale links unless a separately verified change is required.
Does one regular font file supply bold and italic?
It does not supply separate designed bold or italic faces. Provide properly licensed matching files and their corresponding link attributes when those styles are required, then inspect the resulting PDF. Do not assume a regular-file test establishes those styles.
Can I use any font from my computer?
Confirm that the format is supported and that the license permits the intended server use, embedding and distribution. Uploading a font does not grant those rights. A public file setting also needs approval.
Why did Preview change but Print stayed the same?
Preview may show unsaved source with sample data. Save successfully, reopen the same invoice, and verify its saved form’s Advanced Print Template assignment and the output path you are testing.
Will this work for every language and every invoice length?
Check each required glyph set and locale branch. Keep suitable fallback fonts, and test longer documents for altered wrapping, clipping and pagination. This example establishes one English/Latin invoice using a regular font.