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
Next revision Both sides next revision
releasenotes [2020/02/22 11:02]
christian
releasenotes [2020/02/23 15:42]
christian [CMaps]
Line 3: Line 3:
 ===== PDFtalk 2.3 ===== ===== PDFtalk 2.3 =====
  
 +February 2020
 +==== PostScript ====
 +
 +Added **[[PostScript]]** to the PDFtalk runtime.
 +
 +The package **[PostScript]** implements some low level methods which are used by PDFtalk. 
 +
 +PostScript was implemented after PDFtalk and used some basic methods of it (Number reading and writing, ASCII85 encoding and PostScript character names). These dependencies have been reversed so that PostScript can be used stand-alone while PDFtalk now depends on it. This also reflects the correct historical relationship.
 +
 +==== CMaps ====
 +
 +Added **[[CMap]]** to the **{PDFtalk Fonts}** bundle.
 +
 +**CMaps** are PostScript programs defining complex code mappings. The mechanism is very general and allows for variable byte length encodings. Because of its generality, CMaps are used by some PDF writers to even encode simple mappings. Hence, it is necessary to fully implement CMaps in order to decode PDF text.
 +
 +This is not intended to be used by the user of the library. Rather, it is part of the basic font infrastructure enabling decoding of PDF strings. This will be the base for Text extraction in the next step.
 +
 +=== Standard CMaps ===
 +
 +PDF defines 181 standard CMaps which are to be understood by a conforming reader. These CMaps are available at GitHub(([[https://github.com/adobe-type-tools/cmap-resources]] Standard CMaps from Adobe)). All maps have been imported as methods containing the source of the CMaps. Since they are rather large (16 MB with sources), it might be important to not load them into a runtime image when you don't need them, i.e. do text extraction in your application.
 +
 +Therefore, I put them into a seperate package (outside of the runtime, but part of the project bundle): **[PostScript CMap instances]**. The CMaps are constructed from the source methods lazily when needed. If the package is not loaded, the source of a requested CMap is downloaded from GitHub, which is slower.
 +
 +=== Known problem ===
 +
 +The PDF specification allows bfchar-mappings to have a string of UTF-16BE characters as destination. This is not yet implemented.
 +
 +==== Typing ====
 +
 +=== Allow narrower types to shadow broader types ===
 +
 +Example:
 +<code smalltalk>
 +DecodeParms
 + <type: #ZipFilterParameter>
 + <type: #Dictionary>
 +</code>
 +
 +''ZipFilterParameter'' is a subtype of ''Dictionary''. Because it is declared before, it is tried to match it first. Before, both alternatives were equal and ''Dictionary'' might have matched, even when the dictionary was a valid ''ZipFilterParameter''.
 +
 +=== Generalized ''Textstring'' to ''String'' ===
 +
 +Textstring does not need to be differenciated. We can rely on VisualWorks handling of multi byte strings.
 +
 +===== PDFtalk 2.2 =====
 +
 +August 2019
 +
 +Renamed ''OrderedDictionary'' to ''Valuemap'' in the **[Values]** package.
 +This version replaces all references of ''OrderedDictionary''.
 +
 +PDFtalk now depends on the **[Values]** package with version 3.x and up and is incompatible the earlier versions.
 +
 +===== PDFtalk 2.1 =====
 +
 +July 2019
 +
 +Flate encoding is using zlib of VW 8.1 now.
 +This solved problems allocating buffers under heavy load
 ===== PDFtalk 2.0 ===== ===== PDFtalk 2.0 =====
  
-This is the release of the second major version of the PDF library in October 2017.+October 2017
  
 ==== What's new ==== ==== What's new ====
  • releasenotes.txt
  • Last modified: 2021/07/29 20:10
  • by christian