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/12 12:26]
christian [The Library]
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 library is for programmers who want full control over all details of PDFs
 + 
 +See the [[releaseNotes|release notes]] for details.
  
 The licence is MIT. The licence is MIT.
Line 19: Line 25:
 The library code is annotated with the original descriptions and definitions from the specification, so that learning about PDF itself is well supported. The library code is annotated with the original descriptions and definitions from the specification, so that learning about PDF itself is well supported.
  
-Included is a UI tool to inspect PDFs: the [[PDFExplorer]]. +Included is a UI tool to inspect PDFs: the PDFExplorer (internal version of the [[PDFtalkSnooper]] application).
- +
-===== What's new ===== +
- +
-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 prefixeswithout 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 extensive. The implementation covers the core mechanisms to read and write PDF objects in a conforming way. This is comparable to the virtual machine and core classes in Smalltalk. Many of the PDF features and possibilities are implemented by sets of PDF types and a clear definition of their structure and interplay. This compares to class libraries in Smalltalk. +
- +
-PDF has many features which are more or less independent from each other. Implementing a PDF feature with the PDFtalk library means to define classes for each relevant PDF type for the feature and providing some automations or helpers for constructing the proper structures. +
- +
-Some simple features are implemented by the library apart from the core mechanisms. Many others are not. For an overview see [[Implementation|the state of the implementation]]. The documentation here is not comprehensive and covers only a few topics. +
-==== 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. +
- +
- +
-Brief descriptions of the releases are documented in the [[History]] of the project.+
  
 ===== References ===== ===== References =====
  • start.1507803961.txt.gz
  • Last modified: 2017/10/12 12:26
  • by christian