﻿//
// version-history
//
// This file is part of Ghostscript.NET library
// Author: Josip Habjan (habjan@gmail.com, http://www.linkedin.com/in/habjan) 
//
// Development files: http://ghostscriptnet.codeplex.com
//
// License: Affero General Public License (AGPL) http://www.gnu.org/licenses/agpl.html
// 
// Copyright (c) 2013-2014 by Josip Habjan 

HISTORY of the Ghostscript.NET library

1.1.6.         2014-04-23
-------------------------
- simplified GetInstalledVersions and GetLastInstalledVersion functions
- fixed problem with the CropBox in the GhostscriptViewer and GhostscripRasterizer.
  (reported by "mahbuburrahman"")
- license changed to AGPL

1.1.5.         2014-03-20
-------------------------
- fixed the default cropping to the BoundingBox problem for the EPS file format in
  the GhostscriptViewer and GhostscriptRasterizer. (reported by "midora")
- exposed GhostscriptViewer.EPSClip and GhostscriptRasterizer.EPSClip properties with
  a default value set to true (affects only EPS format).
- fixed problem with the paths that contains diacritics (reported by "GambitRicky")
- added GhostscriptProcessor.Started and GhostscriptProcessor.Completed events.
  (requested by "Ray H.")
- all methods that works with MemoryStream are changed to use a generic Stream type.
  (suggested by "midora") 

1.1.4.         2014-02-14
-------------------------
- fixed problem with applying GraphicsAlphaBits and TextAlphaBits which improved
  antialiasing in GhostscriptViewer and GhostscriptRasterizer.
- fixed problem with output through main stderr callback handler.
- added support for MemoryStream in the GhostscriptPdfInfo.GetInkCoverage method.
- added GraphicsAlphaBits and TextAlphaBits properties in GhostscriptViewer and
  GhostscriptRasterizer so antialiasing can now be changed from outside.

1.1.3.         2014-02-05
-------------------------
- added GhostscriptPdfInfo.GetInkCoverage function which has ability to return ink 
  coverage for the CMYK inks, separately for each single page (for RGB colors, it 
  does a silent conversion to CMYK color space internally). This function can be used
  to check if the pdf is grayscale or color.
- fixed problem with opening MemoryStream EPS files which contains "EPS Preview Header"
  (reported by "Chanan Eli")
- fixed problem with empty %%BoundingBox value when handling PostScript files.
  (thanks to by "Shane_S")
- fixed problem with rasterizing EPS files created with Adobe Illustrator.
  (reported by "Chanan Eli")
- fixed problem with retrieving exported function handle in DynamicNativeLibrary
  noticed on the Server 2012 R2 with large amount of memory (thanks to "antonyoni")
- assembly is now signed with a strong name key (requested by "netmajor")

1.1.2.         2013-12-13
-------------------------
- fixed GhostscriptPipedOutput.Data property get accesor in order to prevent a race 
  condition. (thanks to "Marc Klenotic").
- added GhostscriptPipedOutput class as part of the Ghostscript.NET library. 
- fixed GhostscriptException error code text message resolving.
- implemented better methods parameters checking and exception handling.
- changed ImageMemoryHelper class from public to internal.
- implemented opening files represented as MemoryStream from GhostscriptRasterizer
  and GhostscriptViewer. (that was some users request although there is no point of 
  passing PDF as MemoryStream (or byte array) as it will anyway end up on the disk 
  before it will be interpreted as PDF language, unlike the PostScript language, 
  inherently requires random access to the file).

1.1.1.         2013-10-09
-------------------------
- fixed problem in the GhostscriptRasterizer and GhostscriptViewer when MediaBox 
  contains negative llx or lly values. (problem reported by "Prasenjit Das").
- added GhostscriptPngDevice, a friendly output device class with all png devices 
  related switches. (GhostscriptPngDevice supports: png16m, pngalpha, pnggray, 
  png256, png16, pngmono, pngmonod).
- added GhostscriptJpegDevice, a friendly output device class with all jpeg devices 
  related switches. (GhostscriptJpegDevice supports: jpeg, jpeggray).
- extended GhostscriptProcessor.StartProcessing method to support GhostscriptDevice
  base class as StartProcessing parameter.
- for each constructor / method that requires GhostscriptVersionInfo parameter, now
  there is one more constructor / method available with a same functionality but
  without a need to pass GhostscriptVersionInfo parameter. This new constructors and 
  methods automatically retrieves and use last installed Ghostscript version.
- added new samples to the Ghostscript.NET.Samples project (AddWatermarkSample,
  ProcessorSample, DeviceUsageSample).

1.1.0.         2013-10-07
-------------------------
- added GhostscriptViewer state handling (SaveState, RestoreState)
- GhostscriptRasterizer constructor is extended in order to support usage of the
  existing GhostscriptViewer instance.
- fixed problem while using a 32-bit assembly with 32-bit version of Ghostscript
  on 64-bit Windows: It couldn't find a registry key of installed Ghostscript.
  (problem reported and fixed by "r0land".

1.0.9.         2013-09-27
-------------------------
- implemented EPS (Encapsulated PostScript) support for the GhostscriptViewer.
- added GhostscriptRasterizer class which provides ability to easily export PDF  
  pages, PostScript pages and EPS files to the System.Drawing.Image object in the
  memory. For each page different x and y dpi settings can be set.
- fixed gsapi_stdin callback and it's value passing to the ghostscript library.
- added ProgressiveUpdate property to the GhostscriptViewer class so progressive 
  update can be controlled outside the library.

1.0.8.         2013-09-20
-------------------------
- GhostscriptProcessor.Process method name changed to StartProcessing.
- implemented StopProcessing method in the GhostscriptProcessor class which allows
  us to terminate gsapi_init_with_args call in the multithread environment.
- fixed GhostscriptViewer ZoomIn and ZoomOut problem on the systems where windows 
  region and language settings has number decimal symbol set to comma.
- added page navigation and zoom checker properties to the GhostscriptViewer class.
- fixed problem in GhostscriptViewer class when trying to view PostScript files 
  without DSC header.

1.0.7.         2013-09-17
-------------------------
- implemented multi-page PostScript support for the GhostscriptViewer.
- included Microsoft.WinAny.Helper code files in order to have a single dll for the 
  deployment. This will leave Ghostscript.NET library without any extra dependencies.
- added Processing event to the GhostscriptProcessor class. Processing event contains
  TotalPages and CurrentPage information.
- added Error event in the GhostscriptProcessor class. Raised when error occures in
  the Ghostscript interpreter.
- added DisplayPdfSample into the Ghostscript.NET.Samples project.

1.0.6.         2013-09-03
-------------------------
- added zoom-in and zoom-out functionality
- fixed ImageMemoryHelper.Set24bppRgbImageColor function when stride size is not
  multiple of 3 bytes
- fixed displayed page size

1.0.5.         2013-09-02
-------------------------
- implemented progressive display update while ghostscript is drawing / rasterizing,
  now a custom update interval can be set in GhostscriptViewer class.
- fixed problem when using 64-bit ghostscript library where raster (stride) line 
  size is not equal to 32-bit ghostscript library raster line size.
- changed GhostscriptViewer class event logic.
- changed Ghostscript.NET.Viewer application in order to show progressive update.
- modified Ghostscript.NET.DisplayTest, now it uses GhostscriptViewer class with 
  ability to interpret postscript and display standard input output messages.

1.0.4.         2013-08-30
-------------------------
- fixed display_device callback for 64-bit systems, now this library is compatibile
  with both 32-bit and 64-bit version of Ghostscript interpreter.
- added GhostscriptViewer Postscript file handler.

1.0.3.         2013-08-28
-------------------------
- fixed GhostscriptInterpreter.Run string limit, strings larger than 64 kb are now 
  supported.
- added GhostscriptViewer* classes which allows you to render and navigate through 
  PDF file on the screen.
- Ghostscript.NET.Viewer project added to shows how simple GhostscriptViewer class 
  implementation is.

1.0.2.         2013-08-26
-------------------------
- added GhostscriptInterpreter class with StdIO and Display callbacks. This class can
  run postscript from the memory and display raster result from the memory on to the
  screen.
- added Ghostscript.NET.DisplayTest sample with GhostscriptInterpreter class implemented.
- changed Ghostscript.NET.Samples logic to make samples run easier.
- fixed GetInstalledVersion method to search for both GPL and AFPL versions also
  making sure it returns only x86 or x64 ones based on running process.

1.0.1.         2013-08-26
-------------------------
- implementation logic is changed
- added GhostscriptProcessor class with StdIO which allows you to process the files
  by defining init arguments only with ability to handle Ghostscrtip output messages.


1.0.0.         2013-08-22
-------------------------
- initial release, all ghostscript functions are implemented and base wrapper created.
- ability to run multiple instances of the Ghostscript within a single process.
