Powerful Layouting
Builds on the modern open source typesetter Typst. Oicana templates can use all of Typst’s functionality including its extensive package ecosystem.
Generate print-ready PDFs from your code in Node, Python, Java, Rust, C#, PHP, or the browser. One template format. No headless Chrome, no per-document SaaS bills.
Invoices, reports, contracts, certificates, and statements designed in Typst, compiled in milliseconds, and deployed wherever you already run code.
#import "@preview/oicana:0.1.1": setup#import "certificate.typ": *
#let project-file(path) = read(path, encoding: none)#let (input, _, _) = setup(project-file)
#let name = input.certificate.name
#show: certificate.with(name: name)import { Template } from "@oicana/browser";
const template = new Template(templateBytes);const inputs = new Map<string, string>();inputs.set("certificate", JSON.stringify({ name: "Alex Kim" }));const pdf = template.compile(inputs, new Map());import { Template } from "@oicana/node";
const template = new Template(templateBytes);const inputs = new Map<string, string>();inputs.set("certificate", JSON.stringify({ name: "Marcus Lee" }));const pdf = template.compile(inputs, new Map());from oicana import Templateimport json
template = Template(template_bytes)pdf = template.compile( json_inputs={"certificate": json.dumps({"name": "Priya Patel"})})import com.oicana.Template;
Template template = new Template(templateBytes);byte[] pdf = template.compile( Map.of("certificate", "{\"name\": \"Jakob Müller\"}"), Map.of());using Oicana;using System.Text.Json.Nodes;
var template = new Template(templateBytes);var inputs = new Dictionary<string, JsonNode>{ ["certificate"] = JsonNode.Parse("{ \"name\": \"Sofía García\" }")!};var pdf = template.Compile(inputs, new(), ExportFormat.Pdf(), new CompilationOptions(CompilationMode.Production));use oicana::Template;use oicana_input::{TemplateInputs, input::json::JsonInput};
let mut template = Template::init(Cursor::new(template_bytes))?;let mut inputs = TemplateInputs::new();inputs.with_input(JsonInput::new( "certificate".into(), json!({ "name": "Yui Tanaka" }).to_string(),));let pdf = template.compile(inputs)?;use Oicana\Template;
$template = new Template($templateBytes);$pdf = $template->compile( jsonInputs: ['certificate' => ['name' => 'Anya Volkov']]);Powerful Layouting
Builds on the modern open source typesetter Typst. Oicana templates can use all of Typst’s functionality including its extensive package ecosystem.
Performant
Templates can be “warmed up” and can produce non-trivial PDF files in single digit milliseconds.
Multi-platform
The same templates can be compiled from the browser or server-side with C#, Java, Node.js, Rust, Python, and PHP.
Version Control and AI Ready
Templates are plain text files and can be checked in to version control and AI can assist in writing them.
Escape Vendor Lock-in
Reuse templates with other Typst based solutions; The Typst compiler is open source!
Oicana is source-available under the PolyForm Noncommercial License 1.0.0 . Any non-commercial use is free — personal projects, hobby use, research, and education. The license also explicitly permits use by charitable organizations, educational institutions, public research organizations, and government institutions, regardless of their funding source.
View license →Flat fee, no metering. Licenses are per application, priced by company size. Pay once for unlimited seats, environments, and documents. Every subscription includes all Oicana components like the CLI and the integrations.
For small companies and individuals
Up to €2M yearly revenue
19.00€ / month
For growing companies
Up to €25M yearly revenue
49.00€ / month
For large organizations
Above €25M yearly revenue
99.00€ / month
Already subscribed? Manage your subscriptions.
Our order processes are conducted by our merchant of record Creem.
An application is one distinct software product or internal tool, regardless of how many services, environments, or users it has. See Section 4.3 of our Terms of Service for the binding definition.
Yes, commercial evaluation is free for 30 days from your first commercial use. You can follow the getting-started guide, build a proof-of-concept integration, and test Oicana internally without a subscription. Documents generated during evaluation must not be distributed externally or used in production. See Section 4.2 of our Terms of Service for the full terms.
Yes, we offer a 30-day money-back guarantee. If Oicana isn't the right fit, just email support@oicana.com within 30 days of your purchase and we'll refund you in full. See our Refund Policy for the full terms.
Ready to dive in? Head to the getting started guide to set up Oicana in your project.
A confirmation email from Creem with your receipt should arrive in your inbox shortly.
Not happy? You're covered by our 30-day money-back guarantee, just contact us at support@oicana.com. You can manage your subscription anytime through the Creem customer portal .