Skip to content

i-e-b/Form8sn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

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.

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

Useful pointers

To add new prefixes, see Form8snCore.DataExtraction.MappingActions.GetDataAtPath and Form8snCore.HelpersAndConverters.DataPickerBuilder

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published