# fspdf **Repository Path**: mirrors_dlbeer/fspdf ## Basic Information - **Project Name**: fspdf - **Description**: F# PDF manipulation - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-08 - **Last Updated**: 2026-07-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README Low-level PDF manipulation for F# Daniel Beer 13 Mar 2017 The code contained here consists of a module for manipulating PDF objects (pdf.fs), and a very simple parser for Adobe Font Metrics files and glyph-lists (afm.fs). Things it can do: * Create arbitrary PDF documents. * Read objects from PDF documents (although it does not support parsing or decompression of content streams -- you need to implement this yourself). * Deep-copy objects from one PDF document to another (e.g. to use a page of one document as an image or background in another). * Calculate text sizes given a string, a point size, and an Adobe Font Metrics file. PDFs of arbitrary complexity can be created, but you may find it useful to wrap the module in something higher-level and more specific to your needs. Included is an example program (example.fs), which takes as arguments the name of an input and an output PDF file. Page 1 of the input file is extracted, and then a single-page output file is created which shows page 1 of the input file scaled down and centered in the middle of the page, with a blue border and a centered caption above it. Building the example -------------------- The included code should be able to be run on nearly any system. It has no dependencies outside the .NET standard library. If you're on a Linux system with mono and the F# compiler installed, type "make" to build. If you're building manually, select all F# files for building, with example.fs last in the list. You will also need to include glyphlist.txt and Times-Roman.afm as assembly resources. The names of these resources should be the same as their filenames.