Skip to content

Alt-Soft · Windows library

XSL-FO to PDF
for .NET 10

Render existing XSL-FO documents into PDF directly in your Windows C# application. No Java required.

Unlimited evaluationWatermarked PDFsNo registration

  • net10.0-windows
  • x64 only
  • 0 NuGet deps
  • 22-fixture corpus
Program.csC#
// one renderer per conversion
using AltSoft.Xml2Pdf;

using var renderer = new FoPdfRenderer();
renderer.Convert("invoice.fo", "invoice.pdf");

// streams: output must be writable and seekable
// renderer.Convert(foStream, pdfStream);

// optional custom font folders
// new FoPdfRenderer(new[] { @"C:\Fonts" });

Three public types, two Convert overloads, no options object or builder.

Trusted across industries since 2001

  • Microsoft
  • Visa
  • Siemens
  • Toyota
  • Motorola
  • Monotype Imaging
  • Rogers

Selected organisations that have used previous versions of Alt-Soft XML2PDF.

Since 2001

How it was used

Insurance

Policies and forms printed by agents from inside an existing policy-administration application. The agent enters the premium and customer data; the application prints the document.

Automotive

New-vehicle price offers rendered for prospects, with layout changes handled without re-engineering the application that produced them.

Technical reporting

Reports generated from a design program's XML data, then bundled into the quotation packages sent to its customers.

Document management

Construction transmittals created as XML, stored non-editable and rendered for review by the people receiving them.

01 — What it does

One input. One output.
No surprises.

XSL-FO in, PDF out — one input format, one output format, one call, in your own process, with no network access.

Input

XSL-FO document

invoice.fo

AltSoft.Xml2Pdf

FoPdfRenderer

Convert()

Output

PDF file

invoice.pdf

InputA file path or a readable stream. The stream does not need to be seekable.
OutputA file path written through a temp file and an atomic move, or a writable, seekable stream.

02 — How it works

Install, render, open.

Three steps, no build pipeline of your own. The Evaluation package ships as a local folder feed in this release, rather than from nuget.org.

01

Add the package

Reference it from the folder feed. The project must target net10.0-windows and build for x64.

<PackageReference
  Include="AltSoft.Xml2Pdf" Version="1.0.0" />

02

Call Convert

Point it at a file or a stream. Failures arrive as Xml2PdfException, carrying an ErrorCode you can switch on.

renderer.Convert(input, output);

03

Open the PDF

The file is at your path once the conversion returns. The Evaluation build stamps a diagonal watermark on every page.

// written atomically
out\march.pdf

03 — Working example

One input, one call, one file.

A truncated XSL-FO input and the complete call path, including the error case. Nothing is configured outside the call.

statements\march.fo — input, truncated

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
  <fo:page-sequence master-reference="A4">
    <fo:flow flow-name="xsl-region-body">
      <fo:table table-layout="fixed"> … </fo:table>
    </fo:flow>
  </fo:page-sequence>
</fo:root>

Program.cs — render and handle the failure

Program.csC#
using AltSoft.Xml2Pdf;

try
{
    using var renderer = new FoPdfRenderer();
    renderer.Convert(@"statements\march.fo", @"out\march.pdf");
}
catch (Xml2PdfException ex)
{
    Console.Error.WriteLine($"{ex.ErrorCode}: {ex.Message}");
}
Rendered page 1 of 2 from the repeated-table-header fixture, produced by the XML2PDF Core Evaluation build
Rendered output — page 1 of 2 from 07-repeated-table-header.fo, produced by XML2PDF Core 1.0.0 Evaluation. The faint diagonal watermark is part of Evaluation output.

04 — Compatibility

Windows x64. .NET 10. Stated limits.

The restrictions are part of the design, not fine print. Read them before you plan the integration.

Project requirements

<PropertyGroup>
  <TargetFramework>net10.0-windows</TargetFramework>
  <PlatformTarget>x64</PlatformTarget>
  <UseWindowsForms>true</UseWindowsForms>
</PropertyGroup>
Runtime
Microsoft.WindowsDesktop.App
NuGet dependencies
none, either build
Edition
compile-time variant
Concurrency
one per conversion

Natively built and tested on Windows x64 in CI

Limits

Stated limits of XML2PDF Core 1.0.0
PlatformWindows x64 only. x86 and non-win-x64 RIDs fail at build time with XML2PDF010 or XML2PDF011. ARM64 is not a supported target.
OSNo Linux or macOS build. No .NET Framework 4.8 support in this release.
ThreadingNot thread-safe. A second concurrent call on the same instance throws InvalidOperationException; separate-instance parallelism is not claimed.
Output bytesSame input, same layout, different bytes per run — timestamps and font-subset IDs differ between files.
FontsA font the document names but the host lacks is substituted, not reported as an error. Pass font folders to control what is available.
ConformanceNo XSL-FO conformance level is asserted. Capability is evidenced by a 22-document regression corpus.

History

XML2PDF has been developed since 2001. XML2PDF Core 1.0 is its modern .NET implementation. Core 1.0 is a new SDK with a different API and a narrower feature set than the legacy product; it does not carry every legacy capability.

Need another .NET version?

XML2PDF has supported .NET Framework through .NET 5, and the latest release supports .NET 10. We maintain the original source code and can build for other .NET versions on request, at no extra cost with your Commercial + OEM licence, subject to technical feasibility. Email support@alt-soft.com with your requirements.

05 — Licensing

One company licence. Unlimited developers, applications and deployments. OEM included. $999 once.

One legal entity, everything it ships. No per-server, per-document or per-customer fee.

Evaluation Build

Free

$0no key, no expiry

Everything renders. Every page carries the watermark, and the output is for evaluation and review.

Rendering
Full core rendering
Duration
Unlimited
Watermark
Every page
Registration
None
Key or activation
None
Delivery
Local folder feed
Use
Development, evaluation
Download Free Evaluation

Evaluation output is for evaluation and review; customer delivery needs the Commercial licence.

Commercial + OEM

One-time

$999per company

The same renderer without the watermark, licensed for embedding in the products you ship.

Royalty-free redistribution

Ship the unmodified compiled dependency inside your own applications. No per-seat, per-server or per-customer fee.

Developers
Unlimited
Applications
Unlimited
Deployments
Unlimited
Updates
12 months
Term
Perpetual
Renewal
None required
Buy the Commercial licence

Delivered privately after purchase.

06 — FAQ

Questions developers ask first.

Licensing, the watermark, fonts, and the platform edges — answered from the build's behaviour.

Do I need a licence key?

No. Neither build has a key, activation, expiry, account or call-home. The Evaluation build is free for unlimited duration and renders in full; the Commercial build is a separate package compiled without the watermark code.

Can I ship the Evaluation build?

No. Evaluation output is for evaluation, review and approval; it may not be delivered to third parties as part of a product or service. Use the Commercial build for anything a customer receives.

How is the watermark applied?

Three diagonal bands reading XML2PDF EVALUATION are drawn into every page's content stream, blank pages included. There is no switch to remove it.

Does it run on Linux?

No. Windows x64 only, targeting net10.0-windows. The renderer throws PlatformNotSupportedException in its constructor on any other platform.

Can you target another .NET version?

Yes. The latest release is XML2PDF Core 1.0, certified for .NET 10 on Windows x64. We maintain the original source code and can build for other .NET versions on request, at no extra cost with your Commercial + OEM licence, subject to technical feasibility. Email support@alt-soft.com with the target framework and the environment it will run in — see compatibility builds.

What about our fonts?

System fonts are the default. Pass an array of font folders to the constructor, or use %SystemFonts% and %StdPDFType1Fonts%. A missing font is substituted rather than failing the render.

What does the $999 licence cover?

One company: unlimited developers, including contractors acting on your behalf, plus unlimited applications and deployments, and royalty-free redistribution of the unmodified compiled dependency inside your own applications. Perpetual for the version you buy, with 12 months of released updates and no required renewal. It does not cover reselling the library as a competitor. The full wording is in the licence terms.

Start with the evaluation build.

Unlimited evaluation · watermarked output · no registration.

Download Free Evaluation