Skip to content

Generate PDFs in your own infrastructure

Print-ready PDFs created inside your app in milliseconds: Node, Python, Java, C#, Rust, PHP, or the browser. One template format. No headless Chrome, no per-document fees, no data leaving your servers.

Invoices, reports, contracts, certificates, and statements designed in Typst. Free for non-commercial use, commercial evaluation free for 30 days.

Template main.typ
#import "@preview/oicana:0.2.0": 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)
Compile from
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 Template
import 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']]
);
Output certificate.pdf
Certificate for Alex KimCertificate for Marcus LeeCertificate for Priya PatelCertificate for Jakob MüllerCertificate for Sofía GarcíaCertificate for Yui TanakaCertificate for Anya Volkov

Your Data Stays With You

PDFs are generated inside your own application. No data is sent to a third-party service, which keeps compliance with regulations like GDPR or HIPAA in your hands. That makes Oicana a fit for fintech, health, and other regulated software. With the browser integration, documents can even be created directly on your users’ devices.

Flat Price, Unlimited Documents

No metering, no per-document fees. One flat license per application covers unlimited documents, seats, and environments. A hundred invoices a month cost the same as a hundred thousand. Non-commercial use is free.

Milliseconds, Not Seconds

No headless browser eating hundreds of megabytes of memory, no network round-trip. Warmed up templates produce non-trivial PDF files in single digit milliseconds, in process.

Multi-platform

The same templates can be compiled from the browser or server-side with C#, Java, Node.js, Rust, Python, and PHP.

Templates Are Code

Templates are plain text files. Diff them in Git, review them in pull requests, and let AI assist in writing them.

Escape Vendor Lock-in

Reuse templates with other Typst based solutions; The Typst compiler is open source!

Documentation

Pricing

Non-commercial

Free

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 →

Commercial

Free 30-day trial

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.

Startup

For small companies and individuals

Up to €2M yearly revenue

19.00€ / month

Scaleup

For growing companies

Up to €25M yearly revenue

49.00€ / month

Enterprise

For large organizations

Above €25M yearly revenue

199.00€ / month

Free 30-day commercial evaluation. Every purchase is covered by a 30-day money-back guarantee. Oicana is in public beta and has been used in production since the alpha.

Already subscribed? Manage your subscriptions.

FAQ

What counts as one application?

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.

  • A SaaS with multiple microservices generating documents 1 application
  • Web, iOS, and Android apps sharing one backend 1 application
  • Production, staging, and dev environments 1 application
  • A customer-facing SaaS plus a separate internal admin tool 2 applications
  • One codebase white-labeled and sold as 3 separate products (reach out to us for a custom solution) 3 applications
Can I try Oicana commercially before buying?

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 and use Oicana in production without a subscription. See Section 4.2 of our Terms of Service for the full terms.

Is Oicana open source?

Oicana is source available, not open source. All code is public on GitHub under the PolyForm Noncommercial License 1.0.0 : non-commercial use is free, commercial use requires a subscription. The Typst package is MIT licensed, and the example projects and templates are open source under their respective licenses.

Your templates are plain Typst projects and the Typst compiler itself is open source. Even if you stop using Oicana, most of your templates keep working with other Typst based tooling.

Do you offer a money-back guarantee?

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.