Form8sn 1.5.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package Form8sn --version 1.5.0                
NuGet\Install-Package Form8sn -Version 1.5.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Form8sn" Version="1.5.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Form8sn --version 1.5.0                
#r "nuget: Form8sn, 1.5.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Form8sn as a Cake Addin
#addin nuget:?package=Form8sn&version=1.5.0

// Install Form8sn as a Cake Tool
#tool nuget:?package=Form8sn&version=1.5.0                

Form8sn

Generate PDF based templates, and fill them in from data objects

The general plan:

  1. Someone with a form does a Print to PDF with all the spaces blank
  2. They get a data structure (schema) from another app or API
  3. Both the PDF and the data are loaded into the Form8sn UI, and they:
    • Place boxes on the PDF page surfaces
    • Add rules to partition the data and repeat PDF pages (plus running totals and the like)
  4. This is exported to a command file embedded in a modified version of the PDF
  5. A programmer can then pass the command file and data to the Form8sn SDK to get back a finished PDF

The PDF generation phase should be as fast as possible. If we can, it should be a streaming process so we don't need to load the whole PDF template or output into memory.

What is working now:

Inputs are JPEG images. Schema is implicit with a sample data file. Direct output of PDF is working, but the special file format is not present.

Components

  • PDFSharp - A modified version of the main project (so I can add or specialise bits)
  • PortableGdi - A minimal version of System.Drawing to support PDFSharp. Based on GNU Portable.Net base libraries.
  • BasicImageFormFiller - GUI app to take scanned paper forms (in JPEG) and fill them in from arbitrary data, based on examples.
  • TestApp - Console app scratch space
  • PdfSharp.Charting - Currently unused.
  • Form8snCore - File formats and filtering to produce PDFs from project files
  • WebFormFiller - .Net MVC website and JS app for editing Form8sn projects

To-do:

  • Write some documentation
  • Ensure the core PDFsharp and Form8snCore don't use GDI+ (important)
    • Portable system.drawing
    • JPEG reading and writing ( Portable.Drawing.Imaging.ImageFormats.JpegReader.Load )
    • Font reading & metrics ( PdfSharp.Drawing.XFontSource.GetOrCreateFromFile )
    • Remove defunct platform specific calls in PDFsharp.
  • Handle PDFs as input
  • Decode PDF forms so we can use existing 'boxes'
  • Embed Form8sn instructions in PDF files and handle those? (not important)
  • Web-based form editor?
  • Full suite of tests
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net45 is compatible.  net451 was computed.  net452 was computed.  net46 was computed.  net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 is compatible.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.0.0 227 6/24/2024
1.5.8 509 3/7/2024
1.5.7 417 2/23/2024
1.5.6 132 2/23/2024 1.5.6 is deprecated because it has critical bugs.
1.5.5 706 1/31/2024 1.5.5 is deprecated because it has critical bugs.
1.5.3 308 1/13/2023
1.5.2 385 10/14/2022
1.5.1 694 9/13/2022
1.5.0 475 9/9/2022
1.0.1 411 5/30/2022
1.0.0 400 5/30/2022

Changes to various parts. Now has 'stamp' images that can be stored outside of individual templates