How to Create a PDF with PDF Mosaic on a Web Server (ASP.NET)

You may use any Web server and any library to handle writing to an output stream. You can use to write binary data to the Response in ASP.NET. (Different libraries may provide different ways for writing out data)

C# :

using PDFMosaic;
using System;
using System.IO;
using System.Web.UI;

namespace CreatePDFonWebServer
{
  class CreatePDFonWebServer
  {
    static void Main(string[] args)
    {
      // Create pdf object
      PDFDocument document = new PDFDocument();
      
      // Create pdf page
      PDFPage page = new PDFPage(PDFPaperFormat.A4);

      // Fill your document with some data
      PDFFont font = new PDFFont(PDFStandardFont.Helvetica, 16);
      PDFBrush brush = new PDFSolidBrush();
      page.Canvas.DrawString("Hello!", font, brush, 100, 100);
      document.Pages.Add(page);
      
      // Save pdf document to stream
      MemoryStream pdfStream = new MemoryStream();
      document.Save(pdfStream);
      
      // Then send it directly to an output stream
      Response.Clear();
      Response.ContentType = "application/pdf";
      Response.AddHeader("Content-Disposition", "inline;filename=form.pdf");
      Response.AddHeader("Content-Length", pdfStream.Length.ToString());
      Response.BinaryWrite(pdfStream.GetBuffer());
      Response.End();
    }
  }
}

 

Visual Basic.NET  :

Imports PDFMosaic
Imports System
Imports System.IO
Imports System.Web.UI

Module CreatePDFonWebServer
  Sub Main()
  ' Create pdf object
  Dim document As New PDFDocument()
  
  ' Create pdf page
  Dim page As New PDFPage(PDFPaperFormat.A4)
  
  ' Fill your document with some data
  Dim font As New PDFFont(PDFStandardFont.Helvetica, 16)
  Dim brush As New PDFSolidBrush()
  page.Canvas.DrawString("Hello!", font, brush, 100, 100)
  document.Pages.Add(page)
  
  ' Save pdf document to stream
  Dim pdfStream As New MemoryStream()
  document.Save(pdfStream)
  
  ' Then send it directly to an output stream
  Response.Clear()
  Response.ContentType = "application/pdf"
  Response.AddHeader("Content-Disposition", "inline;filename=form.pdf")
  Response.AddHeader("Content-Length", pdfStream.Length.ToString())
  Response.BinaryWrite(pdfStream.GetBuffer())
  Response.End()
  
  System.Windows.Forms.MessageBox.Show("!")
  
  End Sub
End Module