New themes are here

not entirely sure, but based on my tests, the print preview and the generated PDF are identical. Including the font type, size, and page margin.

but, I haven’t tried using fonts from a CDN yet.
I’m currently using the same font as the default themes.

Can you paste your theme into AI and see if it can tell you why is that? My guess would be that you have something wrong in your print stylesheet of custom theme

What if we do like to author by hand. We have custom logic on invoice that cannot be achieved by using AI, or requires much more time training AI than manualy write code. Will there be so reference for themes. Exposed data, using custom fields, data structures, etc… With Theme Enhancer we had data variables rendered at the bottom. What about now ?

Nobody is stopping you coding it by hand. I would not.

Regarding custom fields, AI won’t know what are your custom fields just from the theme or OpenAPI spec but you can tell AI:

If you see field named QR Code then show it with thick border around so it’s easier to scan and more prominent

And AI will add the necessary rule into your custom theme.

What about build in ones as reference and/or starting point. Reference and documentation is what always developers are/were asking for all new things in manager.

Using Perplexity Pro with ChatGPT 5.4. Copy/Pasted skeleton. Asked to create minimalistic black and white invoice. Returned code pasted into theme. Not working at all.

Can we have a tutorial, or at least some pics with step by step, and produced code for reference.

Two reasons I’ve observed why it wouldn’t work.

  1. AI won’t access the internet to read OpenAPI spec so it will try to guess the shape of data and will make the wrong guess. So it won’t work.
  2. AI will not return complete HTML code, only renderDocument(data) function so if you copy/paste that, it won’t work.

If you show me what output you’ve received from AI, I can tell you what went wrong.

Initially I struggled. Although I am familiar with HTML, CSS and java script I found it easier to ask Chatgpt (we have business edition and I used the Pro-Extended agent). Initially I just got a blanc screen when using @Hazem suggestion. However when adding that it needs to use OpenAPI spec it all worked perfectly well. If anything this is an excellent improvement to Manager. Liquid was giving issues but this is excellent. So if having issues using AI tell it to use OpenAPI spec. If it can not use another AI.

I’m thinking to just include OpenAPI spec in skeleton theme. That will eliminate half of the issues. The second half of the issues can be eliminated by simply Manager checking theme starts with <!DOCTYPE html> which would indicate you are really pasting the full HTML code, not just portion of it. AI will often give you just changed code block to save on tokens. This can be confusing.

Other than these two recurring issues which can be solved, it works very well.

I would ask for users to share Prompts and if they used just skeleton provided. Ready, nice looking themes also acceptable to start from, because probably this iteration is hating me, or I ask too much. I cannot get a decent “normal” invoice look from AI. Theme Enhancer was MasterGPT 10.0 :smiley: for this invoices I get right now. I wonder how new users, that have no previous theme experience, or saved themes from previous iteration, how will they get simple useful invoice.

Where did you find this info? Where to find all data field reference? For build in ones, and also for custom fields inside business (Second name, additional info needed, etc) , invoices (some added custom fields, etc), …

Hi, the Classic custom field images doesnt work even with using HTML code using ChatGpt, please help

Since Images in Classic Custom Field doesnt work. i have to manually update all of Sales Invoice record to have Image on new Custom Field. imagine manually clicking all 1000 records just to have the Image, since Batch update doesnt update Images unlike Classic Custom fields

@MarV

What I usually do to help the AI understand my requirements is to provide it with:
– An image or draft layout of the invoice
– The skeleton structure from Manager
– The log data received from the API

and chat
Hi, please help me create a template like the image I provided.

After that, it’s just a matter of making adjustments.

How to obtain this?

Here’s your request rewritten in English, keeping the technical details intact:


Create a complete invoice.

Create new custom themes, and add the following line:

console.log(JSON.stringify(data, null, 2));

just before:

renderDocument(data);

Use the custom themes in the invoice.
When you view the invoice and inspect the browser, you should see the logged data in the console. Provide that data to the AI.


Alternatively, a more effective approach: if you already have older Custom Themes, you can provide that data to the AI and ask it to refactor.

Provide the old Custom Theme and the new Custom Theme skeleton.
Ask the AI to rebuild the theme so that it produces the same output as before, but now the data is obtained from the API.

@Mabaega giving AI example of the data it can receive gives even more context. I think I could make JSON data visible when editing the custom theme from specific document. This would avoid console.log step.

“Custom theme” not exist for booth desktop and server editions

This is based on the ‘RAW HTML theme’. The view follows any style changes like expected (eg. body font size value change), it is the PDF that doesn’t follow. I cannot seem to influence that. Still inestigating.

There are no issues with the fonts. Everything remains consistent across the on‑screen view, print preview, and the final PDF. All outputs look identical.

In this sample, I used fonts served from a CDN, and they all rendered consistently.

Manager Desktop v26.5.10.3573


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Font Test Document</title>
<!-- Google Fonts CDN -->
<link href="https://fonts.googleapis.com/css2?family=Roboto&family=Open+Sans&family=Lato&family=Montserrat&family=Amiri&family=Scheherazade+New&display=swap" rel="stylesheet">
<style>
    @page {
        size: A4;
        margin: 0mm; /* margin cetak konsisten, ubah sesuai kebutuhan (misal 5mm, 10mm) */
    }

    :root { --bg: #f5f5f5; --paper: #fff; }

    body {
        background-color: var(--bg);
        margin: 0;
        padding: 0;
        display: flex;
        justify-content: center;
        font-size: 0.875rem;
        line-height: 1.5rem;
        font-family: ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
    }

    main {
        background-color: var(--paper);
        margin: 10mm; /* margin visual di layar */
        border: 1px solid #e5e5e5;
        border-radius: 5px;
        box-shadow: 0px 4px 6px rgb(0 0 0 / 0.05);
        padding: 2rem 2rem 2rem 2rem;
        max-width: 210mm;
        width: 100%;
        box-sizing: border-box;
        min-height: 297mm; /* tinggi A4 */
    }

    main > *:first-child {
        margin-top: 0;
        padding-top: 0;
    }

    @media print {
        body {
            background: none;
            margin: 0;
            padding: 0;
            display: block;
        }
        main {
            margin: 0; /* margin diatur oleh @page */
            border: none;
            box-shadow: none;
            border-radius: 0;
            max-width: none;
            min-height: auto;
            padding: 10mm; /* padding dalam kertas */
        }
    }

    h1 { font-family: 'Roboto', sans-serif; }
    .opensans { font-family: 'Open Sans', sans-serif; }
    .lato { font-family: 'Lato', sans-serif; }
    .montserrat { font-family: 'Montserrat', sans-serif; }
    .amiri { font-family: 'Amiri', serif; font-size: 18px; }
    .scheherazade { font-family: 'Scheherazade New', serif; font-size: 18px; }
    .block { margin-bottom: 25px; }
</style>
</head>
<body>
<main>
  <h1>Font Consistency Test</h1>

  <div class="block opensans">
    <strong>Open Sans:</strong><br>
    The quick brown fox jumps over the lazy dog.
  </div>

  <div class="block lato">
    <strong>Lato:</strong><br>
    The quick brown fox jumps over the lazy dog.
  </div>

  <div class="block montserrat">
    <strong>Montserrat:</strong><br>
    The quick brown fox jumps over the lazy dog.
  </div>

  <div class="block amiri">
    <strong>Amiri (Arabic):</strong><br>
    العربية لغة جميلة وتستخدم في العديد من الدول.
  </div>

  <div class="block scheherazade">
    <strong>Scheherazade New (Arabic):</strong><br>
    الخط العربي له تاريخ طويل وفن رائع.
  </div>
</main>
</body>
</html>

Mr @Lubos this them is very great I tried to to create my own them using Deep seek AI and I get a good template invoice

This what I get. It provide the template according to your explanation.

Its working thanks alot.