Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
start [2017/10/11 08:59]
christian [Get started]
start [2022/03/01 10:35] (current)
christian [PDFtalk]
Line 1: Line 1:
- ====== PDFtalk ======+{{:pdf:PDFtalk_Icon.png?40 |PDFtalk}} 
 + 
 +====== PDFtalk ======
  
 Library for reading and writing PDF files. Library for reading and writing PDF files.
Line 5: Line 7:
 PDF files can be opened and all PDF objects are available as Smalltalk objects, which can be manipulated in any way you like. Likewise, any Smalltalk PDF object (net) can be written out as conforming PDF file. PDF files can be opened and all PDF objects are available as Smalltalk objects, which can be manipulated in any way you like. Likewise, any Smalltalk PDF object (net) can be written out as conforming PDF file.
  
-The library implements the PDF specification (ISO standard PDF 32000-1:2008) in Cincom's VisualWorks Smalltalk in version 7.10 and up. The syntax is covered comprehensively, which means that //any// PDF file can be read and //any// PDF object can be written in a conforming way. +The library implements the {{pdf:pdf32000_2008.pdf|PDF specification (ISO standard PDF 32000-1:2008)}} in Cincom's VisualWorks Smalltalk.  
 + 
 +The syntax and basic machinery is covered comprehensively, which let's you read //any// PDF file and write //any// PDF object in a conforming way. 
  
 ===== The Library ===== ===== The Library =====
  
-The library is for programmers who need full control over all details of PDFs. The licence is MIT.+The library is for programmers who want full control over all details of PDFs.
  
-PDF objects are typically dictionaries or arrays. The object types and their attributes are well documented by the PDF Specification. The library defines many PDF objects as Smalltalk objects (and it is easy to add more PDF types).+See the [[releaseNotes|release notes]] for details.
  
-The library code is annotated with the original descriptions and definitions from the specification, so that learning about PDF itself is well supported.+The licence is MIT.
  
-Included is a UI tool to inspect PDFs: the [[PDFExplorer]].+PDF objects are typically dictionaries or arrays. The object types and their attributes are well documented by the PDF Specification. The library defines many PDF objects as Smalltalk objects (and it is easy to add more PDF types).
  
-===== What's new ===== +The code is as close to the specification as possible. The names of types and attributes are directly used for the implementation when appropriateWhen studying the PDF specification (a nice read in most parts!), it is easy to find the relevant implementation in the library.
- +
-This is version 2.0 of the library (October 2017). See the [[releaseNotes|release notes]] for details. +
- +
- +
-**Name** The new name is //**PDFtalk**//. The first version was called //PDF4Smalltalk//. The namespace changed from ''PDF'' to ''PDFtalk'' and the domain "pdftalk.de" provides a home with a wiki dedicated to the library: [[https://wiki.pdftalk.de|wiki.pdftalk.de]]. +
- +
-**Typing** The heard of the “PDF engine” is the [[newtyping|typing system]] which allows the assignment of Smalltalk classes to raw PDF objects. The new version has a redesigned type system where PDF types are properly modeled independent from the Smalltalk class hierarchy. This allows to rename classes freely (i.e. adding prefixes) without affecting PDF types. Also, boxing of some simple objects like "null" and booleans is not necessary anymore. Instead, existing classes are declared as PDF types. +
- +
-**[[PDFtalk4Gemstone|PDFtalk for Gemstone]]** The new release was triggered by a contract to port the library to Gemstone (thanks to HTS and Bob Nemec)A talk about this was held at ESUG 2017: "PDFtalk for Gemstone" (slides are [[https://www.slideshare.net/esug/pdftalk-for-gemstone|here]]). +
- +
-**[[GemstoneFileout|Gemstone Fileout]]** A VisualWorks to Gemstone translation tool. This tool, with project specific code transformation declarations, creates a Gemstone filein. Used to create the Gemstone PDFtalkLibrary from the Values package and PDFtalk bundle. +
- +
-Both new projects are open source with MIT licence. +
-===== Get started ===== +
- +
-The slides {{pdf:esug2011_slides_pdf_in_smalltalk.pdf|"PDF in Smalltalk"}} (a talk at [[http://www.esug.org/|ESUG]] 2011), give an overview of what this project is about. +
- +
-Load the **{PDFtalk Project}** bundle from the [[storeaccess|Cincom Public Store]] into your [[http://www.cincomsmalltalk.com/main/products/visualworks/|VisualWorks]] image. +
- +
-Try the [[examples|demos and examples]]. +
- +
-To get the latest news and to participate in discussions, subscribe to the [[http://www.freelists.org/list/pdf4st|mailing list]]. +
- +
-===== Documentation ===== +
- +
- +
-The {{pdf:pdf32000_2008.pdf|PDF specification}} is vast and this implementation covers only parts of it. Topics of interest: +
- +
-==== Using the library ==== +
- +
-  * [[PaintingAPage|Text]] Shows how to put text on a page. +
- +
-  * [[Colors]] Usage of colorspaces and colors +
- +
-  * [[Images]] Bitmapped images in PDF +
- +
-  * [[Changing]] Changing existing PDFs +
- +
-  * [[Examples]] Various examples of Smalltalk generated PDF documents. +
-==== About the library ==== +
- +
-  * [[Implementation]] Notes the state of the implementation of the features structured along the specification chapters. +
- +
-  * [[Typing]] PDF attributes are typed. To make use of this, the typing system was implemented. Since this is complex, it deserves its own topic. +
- +
-  * [[Extending]] How to add a new PDF Object to the library from the specification. +
- +
-==== Related projects ==== +
- +
-  * [[PDFtalk4Gemstone|PDFtalk for Gemstone]] A port of the library to Gemstone. +
- +
-  * [[GemstoneFileout|Gemstone Fileout]] Tool for porting VW code to Gemstone +
- +
-  * [[complexvalues|Complex Values]] The paper and slides about the basic values framework.+
  
 +The library code is annotated with the original descriptions and definitions from the specification, so that learning about PDF itself is well supported.
  
-Brief descriptions of the releases are documented in the [[History]] of the project.+Included is a UI tool to inspect PDFs: the PDFExplorer (internal version of the [[PDFtalkSnooper]] application).
  
 ===== References ===== ===== References =====
  • start.1507705186.txt.gz
  • Last modified: 2017/10/11 08:59
  • by christian