====================
PLOP and PLOP DS 5.0
====================

PLOP/PLOP DS 5 introduced a number of incompatible API changes which are
detailed below. It is recommended to take a look at the supplied programming
samples as a starting point for custom applications.

API changes:

- PLOP_close_document() requires an additional optlist parameter (which may
  be empty):
  PLOP_close_document(plop, doc);
  ==>
  PLOP_close_document(plop, doc, "");
  
- PLOP_create_file() must be replaced by PLOP_create_document().

- PLOP_create_document(): the "optimize" option now defaults to "none".


API options which are no longer supported:

- The option "sign" of PLOP_create_document()/PLOP_create_file() is no
  longer supported. Use PLOP_prepare_signature() to supply signature
  options.

- The option "compatibility" of PLOP_create_document()/PLOP_create_file())
  is no longer supported.

- The option "sacrifice" of PLOP_create_document()/PLOP_create_file() no
  longer supports the keyword "signatures"; existing signatures are always
  maintained in the default mode (incremental PDF update), and always
  removed with update=false.
  
- Renamed signature options (formerly suboptions of the "sign" option of
  PLOP_create_document()/PLOP_create_file(), now options of
  PLOP_prepare_signature():
  appearance ==> field
  fieldname ==> name


Deprecated options and keywords in the API:
- Keywords for the "sacrifice" option of PLOP_create_file():
  "pdfa1" is deprecated; use "pdfa"
  
- The "certstore" suboption of the "digitalid" signature option for
  engine=mscapi is no longer required and no longer supported.

- The suboption "keyusage" of the "digitalid" signature option is no longer
  available since the new certificate selection algorithm doesn't need it.
  
- The "subfilter" signature option is no longer supported.

  
Options of the PLOP command-line tool which are no longer supported:
- Option "--compatibility" and short form "-c" are no longer supported.
- Option "--fast" and short form "-f" are no longer supported since fast
  processing without optimization is now default.


The following deprecated API functions have been removed:

- PLOP_create_file() (deprecated in PLOP 5)
  
- PLOP_utf16_to_utf32(), PLOP_utf8_to_utf16(), PLOP_utf8_to_utf32()
  (deprecated in PLOP 4.1)

- PLOP_open_document_mem() (deprecated in PLOP 4)

- PLOP_get_value(), PLOP_set_value(),PLOP_get_parameter(), PLOP_set_parameter()
  (deprecated in PLOP 3)

- PLOP_open_file(), PLOP_close(), PLOP_open_mem(), PLOP_open_callback()
  (deprecated in PLOP 3)


====================
PLOP and PLOP DS 4.1
====================

Deprecated Functions:
PLOP_utf16_to_utf8(), PLOP_utf8_to_utf16(): use PLOP_convert_to_unicode()


Modified option default:
Changed the default of the "optimize" option of PLOP_create_file() to "none"
if the "sign" option was supplied, otherwise "all". This is for the benefit
of signature performance which usually doesn't need optimization. If you
need optimization in combination with signature supply both the "sign" and
"optimize" option to PLOP_create_file().
  
  
Namespace cleanup in various language bindings:
Several namespaces have been modified for consistency among products and
language bindings. These modifications require corresponding small changes
in application source code. The required changes are listed below:


Java
====
The name of PLOP-specific exceptions changed:

import com.pdflib.PLOPlibException;
==>
import com.pdflib.PLOPException;

catch (PLOPlibException e) {
==>
catch (PLOPException e) {


Perl
====
The name of PLOP module in the old-style (functional) Perl binding changed:

use ploplib_pl 3.0;
==>
use plop_pl 4.1


PHP
===
The name of the DSO and the name of PLOP-specific exceptions changed.
The new extension name must be used in php.ini:

extension=libplop_php.so
==>
extension=php_plop.so

catch (PLOPlibException $e) {
==>
catch (PLOPException $e) {


COM
===
The name of the PLOP object changed:

Visual Basic:
Dim plop As PLOPlib_com.plop
==>
Dim plop As PLOP_com.plop

Set plop = New PLOPlib_com.plop
==>
Set plop = New PLOP_com.plop

Similarly, the reference to PLOP in .vbp project files must be adjusted.

ASP:
plop = Server.CreateObject("PLOPlib_com.PLOP");
==>
plop = Server.CreateObject("PLOP_com.PLOP");


.NET
====
The name of the PLOP object and the name of PLOP-specific exceptions changed:

C#:
using PLOPlib_dotnet;
==>
using PLOP_dotnet;

static PLOPlib p = null;
==>
static PLOP p = null;

catch (PLOPlibException e) {
==>
catch (PLOPException e) {


VB.NET:
Imports PLOPlib_dotnet
==>
Imports PLOP_dotnet

Dim p As PLOPlib = Nothing
==>
Dim p As PLOP = Nothing

Catch ex As PLOPlibException
==>
Catch ex As PLOPException


ASP.NET:
Dim plop As PLOPlib
==>
Dim plop As PLOP

plop = New PLOPlib()
==>
plop = New PLOP()

Catch err As PLOPlibException
==>
Catch err As PLOPException



====================
PLOP and PLOP DS 4.0
====================
Deprecated Function:

PLOP_open_document_mem(): use PLOP_create_pvf() and PLOP_open_document()


====================
PLOP and PLOP DS 3.0
====================

PLOP Library
------------
Deprecated Functions:

PLOP_open_file(): use PLOP_open_document()
PLOP_open_callback(): use PLOP_open_document_callback()
PLOP_open_mem(): use PLOP_open_document_mem()
PLOP_close(): use PLOP_close_document()

PLOP_get_value(): use PLOP_pcos_get_numer()
PLOP_set_value(): was unused anyway
PLOP_get_parameter(): use PLOP_pcos_get_string()
PLOP_set_parameter(): use PLOP_set_option()


PLOP command-line tool
----------------------
The command-line option syntax has been changed. Command lines written
for PLOP 2 must be modified for PLOP 3. See the PLOP manual for details.
