SynPDF是Delphi编写的PDF文档生成组件,可以用于生成符合标准的PDF文档,全源码,在Delphit各版本中直接引用即可。
2023-09-08 09:47:04 809KB SynPDF
1
SynPDF ====== Synopse PDF engine is a fully featured *Open Source* PDF document creation library for Delphi and FPC, embedded in one unit. It's used e.g. in our [*mORMot* framework](https://github.com/synopse/mORMot), for creating PDF files from generated reports. But you can use it stand-alone, without our main ORM/SOA framework. If you download the whole *mORMot* source code, you do not need this separate package: ensure you get rid of any existing separated *SynPDF* installation, and use the PDF units as available in the main *mORMot* trunk. This *SynPDF* distribution/GitHub account targets only people needing PDF writing, without other *mORMot* features. Features -------- * Pure Delphi code, with no external .dll, and adding very small code size to your executable; * Targets Delphi 5 up to Delphi 10 Seattle (and latest version of FPC), for Win32 and Win64 platforms, with full source code provided; * Includes most vectorial drawing commands, including text,lines or curves; * Renders bitmaps, and metafiles (even most .emf files with clipping and regioning); * Introduce metadata, bookmarks and outline information; * Produce very small .pdf files; * Optionally [encrypt and secure the .pdf content](http://blog.synopse.info/post/2013/06/19/SynPDF-now-implements-40-bit-and-128-bit-security) using 40 bit or 128 bit keys; * Fast file generation with low memory overhead (tested with several thousands of pages); * Access a true VCL TCanvas instance to create the PDF content; * Optionally embed True Type fonts subsets; * Unicode ready, even with pre-Unicode versions of Delphi, including advanced [Uniscribe Glyph shading and Font fallback](http://blog.synopse.info/tag/Uniscribe); * Can publish PDF/A-1 archive files; * Used in a lot of applications, with regular enhancements, mainly from active end-users; * Licensed under a [MPL/GPL/LGPL tri-license](http://synopse.info/forum/viewtopic.php?id=27). Sample code ----------- In fact, you have at least three ways of generating pdfs using the library: * [Directly call](http://synopse.info/forum/viewtopic.php?pid=370#p370) of a `TPdfCanvas` as published by a `TPdfDocument` instance - this is the most direct but also more difficult way of rendering; * [Use regular VCL `TCanvas` methods](http://synopse.info/forum/viewtopic.php?pid=1909#p1909) thanks to `TMetaFile` support - see `TPdfDocumentGDI.VCLCanvas` property and the `TPdfCanvas.RenderMetaFile` method - this is very easy if you want to use "regular" `TCanvas` methods to draw the page content, especially if you have some existing printing code; * [Use `TGDIPages` of the supplied `mORMotReport.pas` unit](http://blog.synopse.info/post/2010/06/30/Making-report-from-code) (extracted from our *mORMot* ORM/SOA framework) to easily create the content from code, with some report-oriented methods (including complex rtf with `TGDIPages.AppendRichEdit`) - for basic reporting features, it is pretty much the solution. The 2nd and 3rd ways are preferred, for most applications. Documentation
2023-04-13 14:48:54 707KB delphi
1