104
StreamEDS: Users Guide TargetStream Technologies: Electronic Document Services Version: 1.7 Last Updated: 28 Aug 2020

S t r e a mE D S : Us e r s Gu id e

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: S t r e a mE D S : Us e r s Gu id e

StreamEDS: Users Guide 

TargetStream Technologies: Electronic Document Services

Version: 1.7 

Last Updated: 28 Aug 2020 

 

 

   

Page 2: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

Table of Contents Table of Contents 2

Chapter 1 Product Overview 7

1.1 Application Architecture 7

1.2 Product Features 8

1.2.1 Real-time Document Conversions 8

1.2.2 Batch AFP to PDF Conversion 8

1.2.3 Easy to Understand Java API 8

1.2.4 100% Pure Java 8

1.2.5 Platform Independent 8

1.2.6 High Performance 8

1.2.7 Integrates With Other Vendor's Components 9

1.2.8 Secure PDF 9

1.2.9 Flexible Font Mappings 9

1.2.10 Dynamic Type 3 Font Creation 9

1.2.11 Dynamic Page Modifications 9

Chapter 2 Hardware / Software Requirements 10

Chapter 3 StreamEDS Installation Instructions 16

3.1 Installation Instructions 16

3.4.1 Verify the Installation 19

3.4.2 Test StreamEDS with your AFP documents 21

Chapter 4 StreamEDS Workbench Layout 22

4.1 Title Bar 23

4.2 Menu Bar 23

4.3 Tool Bar 26

4.4 Perspectives 26

4.5 Project View/Resource View 27

4.6 Work Area / Document View Area 27

4.7 Navigation View 27

4.8 Console View / Problems View / Font Mapping View 27

4.9 Properties View 27

Chapter 5 Installation Directories 28

5.1 root 28

- 2 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 3: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

Chapter 6 TSTWorkspace 29

6.1 root 29

6.2 .metadata 29

6.3 com.tst.eds 29

6.4 data 30

6.5 docs 30

6.6 eds-gen 30

6.7 lib 30

6.8 scripts 30

6.9 src 30

Chapter 7 Workflows 31

7.1 Workflow Concepts 31

7.2 Workflow Examples 31

7.2.1 Workflow Example 1 31

7.2.2 Workflow Example 2 32

7.2.3 Workflow Example 3 33

Chapter 8 Running Headless 35

8.1 Check Java Version 35

8.2 Executing StreamEDS Headless Via the StreamEDS Script 35

8.3 Running Headless From a Deployment 36

Chapter 9 Resolving Missing AFP Resources 37

Chapter 10 Font Mapping 40

10.1 Mapping AFP Bitmap Font to Adobe Referenced Font 42

10.2 Toggle Selected Font 44

10.3 Edit Glyphs 45

10.4 Edit Unicode Mappings 47

Chapter 11 Running Code Samples / Eclipse Project 49

11.1 Importing Sample Eclipse Project 49

Chapter 12 Deploying Workbench Changes 52

12.1 Workbench Deploy Option 52

Chapter 13 Environment Sizing 54

Chapter 14 Custom Logging In StreamEDS 56

14.1 Define log location in the workflow 56

14.2 Define custom logger in the workflow 56

- 3 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 4: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

14.3 Implementing a custom logger 56

Chapter 15 PDF User Accessibility PDF/UA 58

15.1 PDF/UA Background 58

15.1.1 Required Reading 58

15.1.1.1: PDF/UA In A Nutshell 58

15.1.1.2: Tagged PDF Best Practice Guide: Syntax 58

15.1.1.3: The Matterhorn Protocol 58

15.1.2 Resources 59

15.1.2.1: Validators 59

15.1.2.2: Screen Readers 59

15.1.2.3: Specifications 59

15.1.3 General StreamEDS Information 59

15.1.3.1: Change 59

15.1.3.2: Mark Page 59

15.1.3.3: Conditions 60

15.1.3.3: Rectangles 60

15.2 Automark 60

15.2.1 Text 60

15.2.1.1 Processors 60

Join Chars To Words 60

Join Words To Lines 61

Join Inlines To Paragraphs 62

Chapter 16 PDF/A 64

Background 64

Definitions and Specifications 64

Conformance levels 64

Level A 64

Level B 64

Level U 65

StreamEDS Supported Conformance Levels 65

StreamEDS Implementation (workflow instructions/examples) 65

Validation 67

Instructional Videos 68

Installing Workbench for the first time on Windows 68

Importing a New License Key 68

How to Deploy and Run From Command Line 68

Resolving AFP Resources 68

- 4 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 5: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

How To Import Sample Eclipse Project 68

How To Map a Font 68

Creating Resource Set Versions 68

Resource Set Versions 69

Deploying With Like Named Resources 69

Appendix A: THIRD PARTY License GRANT. 70

A.1 Apache Software License 2.0 70

Acknowledgement 70

License 70

A.2 Bouncy Castle 76

Acknowledgement 76

License 76

A.3 Groovy 77

Acknowledgement 77

License 77

A.4 ANTLR 78

Acknowledgement 78

License 78

A.5 ASM 79

Acknowledgement 79

License 79

A.6 CLI 80

Acknowledgement 80

License 80

A.7 JSSR 81

Acknowledgement 81

License 81

A.8 Woodstox 82

Acknowledgement 82

License 82

A.9 Eclipse and Eclipse RCP 83

Acknowledgement 83

License 83

A.10 JAI_CORE, JAI_CODEC 85

Acknowledgement 85

License 85

A.11 JAI_IMAGEIO 90

- 5 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 6: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

Acknowledgement 90

License 90

A.12 Guice 97

Acknowledgement 97

License 97

A.13 JCommander 98

Acknowledgement 98

License 98

A.14 javax.inject api (JSR-330: Dependency Injection for Java) 99

Acknowledgement 99

License 99

A.15 Guava 100

Acknowledgement 100

License 100

A.16 JGit 101

Acknowledgement 101

License 101

A.17 PRTree 103

Acknowledgement 103

License 103

- 6 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 7: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

Chapter 1 Product Overview StreamEDS is computer software that transforms document, report, and print stream data to other electronic document formats. It is architected to utilize advanced threading algorithms and written to be extremely fast and efficient so that companies can perform real-time print stream to electronic document conversions. StreamEDS will integrate with any other document indexing and retrieval software because it is designed with an open API. StreamEDS facilitates rendering document information such as bill images, statements, invoices, and reports. One of the most popular document conversions that StreamEDS supports is the conversion of IBM’s Advanced Function Presentation (AFP) data and resources to an Adobe Portable Document Format (PDF). Many clients also use StreamEDS for PDF to AFP conversions to better leverage AFP printing infrastructure.

1.1 Application Architecture StreamEDS was written using a component-based architecture which will enable easy integration in your J2EE console or web applications. This pure JAVA AFP to PDF component will accept an AFP (and its resources) as input, and will convert the AFP to a PDF document. The diagram below shows a typical system flow for document conversions.

StreamEDS utilizes a multithreading application model in order to convert documents as fast as possible. Users can apply multiple threads to a given document conversion allowing individual documents to convert faster on multi CPU systems. This means that StreamEDS can utilize multiple threads to convert a single document resulting in industry leading document conversion times. StreamEDS is thread-safe allowing a system to convert multiple documents at the same time. For those AFP’s that utilize custom resources and fonts, StreamEDS contains a graphical user interface for configuring resource mappings and editing workflows. Improved performance is realized by the StreamEDS caching architecture. This caching architecture stores frequently used resources in memory so that they do not have to be transformed over and over when they are referenced multiple times.

- 7 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 8: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

1.2 Product Features

1.2.1 Real-time Document Conversions StreamEDS converts documents and their associated resources to other electronic documents. The conversion process is extremely fast and has been developed to convert even the largest documents to other electronic documents real-time.

1.2.2 Batch AFP to PDF Conversion StreamEDS provides command line utilities that allow AFP to PDF document conversion in a batch mode.

1.2.3 Easy to Understand Java API StreamEDS takes the complexity out of AFP document conversion by providing an extremely easy to use Java API. There is one main method developer’s call to perform conversions that accepts an AFP and returns a PDF.

1.2.4 100% Pure Java StreamEDS is written in java. The Java implementation improves product stability because systems are not required to interface with native code. The java implementation also allows server side developers to leverage their existing J2EE containers (i.e. Application Servers) to perform document conversions.

1.2.5 Platform Independent StreamEDS is pure Java; it can run on any platform that has a JVM ported for it.

1.2.6 High Performance StreamEDS provides multi-threaded document conversion support. Not only is StreamEDS thread safe so that an invoking application can call the converter from multiple threads, but StreamEDS itself is multi-threaded. Internally StreamEDS converts an AFP to PDF using multiple worker threads so that applications that run on multi-CPU boxes can realize the fastest conversion times possible. Improved performance is also realized by the StreamEDS caching architecture. This caching architecture stores frequently used resources in memory so that they do not have to be transformed over and over when they are referenced multiple times.

- 8 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 9: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

1.2.7 Integrates With Other Vendor's Components StreamEDS was architected with an open API. There are no restrictions in the API that prevent it from integrating with any other AFP indexing or retrieval software.

1.2.8 Secure PDF The StreamEDS API provides behavior to encrypt a PDF using a password. Business applications that take advantage of this feature can encrypt a PDF with a password that only the recipient knows. With this encryption only the individual who knows the password used to encrypt the PDF can view the content by supplying the password to open the PDF document. For an encrypted PDF, the Acrobat Reader prompts for a password before it will open it. PDF’s can also be encrypted using various combinations of Access Flags. These Access Flags can restrict certain features of the PDF document. With StreamEDS developers can restrict user’s ability to: add or modify annotations, as well as modify, print or copy contents of the PDF.

1.2.9 Flexible Font Mappings StreamEDS provides standard AFP font mappings. Custom AFP fonts can be easily mapped to standard PDF fonts using the easy to maneuver Graphical User Interface provided.

1.2.10 Dynamic Type 3 Font Creation StreamEDS can dynamically convert raster AFP fonts to type 3 PDF fonts. The type 3 font creation is efficient because only the portion of the AFP font that is actually used in a given document is converted to a PDF font and embedded in the document resulting in smaller document sizes for PDFs using StreamEDS type 3 font conversions.

1.2.11 Dynamic Page Modifications StreamEDS provides the ability to add background images, watermarks, text, and hyperlinks to converted PDFs.

- 9 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 10: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

Chapter 2 Hardware / Software Requirements StreamEDS can be run with a Graphical User Interface or headless. The StreamEDS GUI artifact is a Windows based component that requires Windows Vista or later to install. You have to have Administrator rights to install the StreamEDS GUI artifact. The StreamEDS deployment artifact is a 100% pure Java component which requires a 1.5.x or later JRE (Java Runtime Environment). The deployment artifact is usually what developers package with their applications to deploy within their J2EE containers or Java Runtime Environments (JREs). There are no Hardware limitations except those that require the ability to run a 1.5.x JRE. Virtual Memory settings vary (ie minimum and maximum heap sizes) based upon the type and size of the documents to be transformed. The following table shows the supported platforms and operating systems.  Hardware Platform

JFB Support

J2SE Support Operating System Version Desktop Managers Browsers JRE JDK

Solaris™ Operating System, 32-bit and 64-bit

Solaris x64 (64-bit)

JFB J2SE Solaris 10 OS (32/64 bit) JDS, Gnome 2-metacity, CDE-dtwm

Firefox 1.5 Firefox 2.0.x Mozilla 1.7

32-bit Install 53MB Disk 64-bit Install 23MB Disk

32-bit Install 122MB Disk 64-bit Install 26MB Disk

Solaris SPARC JFB J2SE Solaris 10 OS (32/64 bit) JDS-Gnome 2-metacity,

CDE-dtwm

Firefox 1.5 Firefox 2.0.x Mozilla 1.7

32-bit Install 65MB Disk 64-bit Install 29MB Disk

32-bit Install 134MB Disk 64-bit Install 33MB Disk

JFB J2SE Solaris 9 OS (32/64 bit) Gnome 2-metacity, CDE-dtwm

Mozilla 1.4 Netscape 7

JFB J2SE Solaris 8 OS (32/64 bit) CDE-dtwm/OpenWin-olwm Netscape 4.7

Solaris x86 (32-bit)

JFB J2SE Solaris 10 OS (32 bit) JDS-Gnome 2-metacity, CDE-dtwm

Firefox 1.5 Firefox 2.0.x Mozilla 1.7 32-bit Inst

all 53MB Disk

32-bit Install 122MB Disk

JFB J2SE Solaris 9 OS (32 bit) Gnome 2-metacity, CDE-dtwm

Mozilla 1.4 Netscape 7

JFB J2SE Solaris 8 OS (32 bit) CDE-dtwm/OpenWin-olwm Netscape 4.7

Windows (32-bit)

Windows x86

JFB Windows 7 Home Premium Aero, Windows XP & Classic Desktop

IE 8.x Firefox 2.0.x, Firefox 3.0.x or Firefox 3.5.x

Install Disk space

Install Disk space

JFB Windows 7 Professional

JFB Windows 7 Ultimate

JFB J2SE Windows Vista Home Basic (SP1,SP2)

Windows XP & Classic Desktop

IE 7.x or IE 8.x Firefox 2.0.x,

- 10 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 11: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

JFB J2SE Windows Vista Home Premium (SP1,SP2)

Firefox 3.0.x or Firefox 3.5.x

JFB J2SE Windows Vista Home Business (SP1,SP2)

JFB J2SE Windows Vista Home Ultimate (SP1, SP2)

JFB Windows Server 2008 Standard (SP1, SP2)

Windows XP & Classic Desktop

IE 7.x or IE 8.x Firefox 2.0.x, Firefox 3.0.x or Firefox 3.5.x

JFB Windows Server 2008 Enterprise (SP1, SP2)

JFB Windows Server 2008 Datacenter (SP1, SP2)

JFB Windows Web Server 2008 (SP1, SP2)

JFB J2SE Windows XP Professional (SP1, SP2, SP3) Windows XP & Classic

Desktop

IE 6 or IE 7.x or IE 8.x Firefox 2.0.x, Firefox 3.0.x or Firefox 3.5.x

JFB J2SE Windows XP Home (SP1, SP2, SP3)

JFB J2SE Windows 2000 Professional (SP3, SP4) Windows Active & Classic

Desktop

IE 5.50 or IE 6 Mozilla 1.4 Mozilla 1.7 Firefox 2.0.x JFB J2SE Windows 2000 Server (SP3,

SP4)

JFB J2SE Windows 98 (2nd Edition) Classic Desktop IE 5.50 or IE 6

JFB J2SE Windows ME Classic Desktop IE 5.50 or IE 6

JFB J2SE Windows Server 2003, Web Edition (R2, SP1, SP2)

Windows XP & Classic Desktop

IE 6 or IE 7.x or IE 8.x Firefox 2.0.x, Firefox 3.0.x or Firefox 3.5.x

JFB J2SE Windows Server 2003, Standard Edition (R2, SP1, SP2)

JFB J2SE Windows Server 2003, Enterprise Edition (R2, SP1, SP2)

JFB J2SE Windows Server 2003, Datacenter Edition (R2, SP1, SP2)

Windows 64-bit

Windows x64

JFB Windows 7 Home Premium

Aero, Windows XP & Classic Desktop

64-bit OS, 32-bit Browsers: IE 8.x Firefox 2.0.x, Firefox 3.0.x or Firefox 3.5.x

Install Disk space

Install Disk space

JFB Windows 7 Professional

JFB Windows 7 Ultimate

JFB Windows Server 2008 R2 Standard

Aero, Windows XP & Classic Desktop

64-bit OS, 32-bit Browsers: IE 8.x Firefox 2.0.x, Firefox 3.0.x or Firefox 3.5.x

JFB Windows Server 2008 R2 Enterprise

JFB Windows Server 2008 R2 Datacenter

JFB Windows Web Server 2008 R2

JFB J2SE Windows Vista Home Basic Windows XP & Classic 64-bit OS, 32-bit

- 11 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 12: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

(SP1, SP2) Desktop Browsers: IE 7.x or IE 8.x Firefox 2.0.x, Firefox 3.0.x or Firefox 3.5.x

JFB J2SE Windows Vista Home Premium (SP1, SP2)

JFB J2SE Windows Vista Home Business (SP1, SP2)

JFB J2SE Windows Vista Home Ultimate (SP1, SP2)

JFB Windows Server 2008 Standard (SP1, SP2)

Windows XP & Classic Desktop

64-bit OS, 32-bit Browsers: IE 7.x or IE 8.x Firefox 2.0.x, Firefox 3.0.x or Firefox 3.5.x

JFB Windows Server 2008 Enterprise (SP1, SP2)

JFB Windows Server 2008 Datacenter (SP1, SP2)

JFB Windows Web Server 2008 (SP1, SP2)

JFB J2SE Windows XP Professional (SP1, SP2, SP3)

Windows XP & Classic Desktop

64-bit OS, 32-bit Browsers: IE 6 or IE 7.x or IE 8.x Firefox 2.0.x, Firefox 3.0.x or Firefox 3.5.x

JFB J2SE Windows 2003, Standard Edition (R2, SP1, SP2)

Windows XP & Classic Desktop

64-bit OS, 32-bit Browsers: IE 6 or IE 7.x or IE 8.x Firefox 2.0.x, Firefox 3.0.x or Firefox 3.5.x

JFB J2SE Windows 2003, Enterprise Edition (R2, SP1, SP2)

JFB J2SE Windows 2003, Datacenter Edition (R2, SP1, SP2)

Linux 32-bit

Linux x86 JFB Oracle Enterprise Linux 6.x Gnome 2.16.0-6.el5 -

Metacity 2.16.0-12.el5 Firefox 3.0.x or Firefox 3.5.x

Install 59MB Disk

Install 131MB Disk

JFB Oracle Enterprise Linux 5.6+ Gnome 2.16.0-6.el5 - Metacity 2.16.0-12.el5

Firefox 3.0.x or Firefox 3.5.x

JFB Oracle Enterprise Linux 5.5 Gnome 2.16.0-6.el5 - Metacity 2.16.0-12.el5

Firefox 3.0.x or Firefox 3.5.x

JFB Oracle Enterprise Linux 5.4 Gnome 2.16.0-6.el5 - Metacity 2.16.0-12.el5

Firefox 3.0.x or Firefox 3.5.x

JFB Oracle Enterprise Linux 4.8 Gnome 2.7.3 - Metacity 2.6.2

Firefox 2.0.x or Firefox 3.0.x

JFB Red Hat Enterprise Linux 6.x Gnome 2.16.0-6.el5 - Metacity 2.16.0-12.el5

Firefox 3.0.x or Firefox 3.5.x

JFB Red Hat Enterprise Linux 5.6+

Gnome 2.16.0-6.el5 - Metacity 2.16.0-12.el5

Firefox 3.0.x or Firefox 3.5.x

JFB Red Hat Enterprise Linux 5.5 Gnome 2.16.0-6.el5 - Metacity 2.16.0-12.el5

Firefox 3.0.x or Firefox 3.5.x

JFB Red Hat Enterprise Linux 5.4 Gnome 2.16.0-6.el5 - Metacity 2.16.0-12.el5

Firefox 2.0.x or Firefox 3.0.x

JFB J2SE Red Hat Enterprise Linux 5.0 (5.1, 5.2, 5.3)

Gnome 2.16.0-6.el5 - Metacity 2.16.0-12.el5

Firefox 2.0.x or Firefox 3.0.x

JFB J2SE Red Hat Enterprise Linux AS 4.0 (4.1 - 4.8)

Gnome 2.8.0-metacity 2.6.2

Firefox 2.0.x Mozilla 1.4

- 12 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 13: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

JFB J2SE Red Hat Enterprise Linux ES 4.0 (4.1 - 4.8)

Gnome 2.8.0-metacity 2.6.2

Mozilla 1.7

JFB J2SE Red Hat Enterprise Linux AS 3.0

Gnome 2.2.2-metacity 2.6.2

Mozilla 1.4

JFB J2SE Red Hat Enterprise Linux ES 3.0

Gnome 2.2.2-metacity 2.6.2

JFB J2SE Red Hat Enterprise Linux WS 2.1 Gnome 1.4-sawfish 1.0

JFB J2SE Red Hat Enterprise Linux ES 2.1 Gnome 1.4-sawfish 1.0

JFB J2SE Red Hat Enterprise Linux AS 2.1 Gnome 1.4-sawfish 1.0

JFB J2SE SUSE 10 Gnome 2.12.0.1-2 - Metacity 2.12.0-3 Firefox 2.0.x

JFB J2SE SUSE 9.2 Gnome 2.6.1-metacity 2.6.2

Mozilla 1.4 JFB J2SE SUSE 9.1 Gnome 2.2-metacity 2.6.2

JFB J2SE SUSE 9 Gnome 2.2-metacity 2.6.2

JFB J2SE SUSE 8.2 Gnome 2.2-metacity 2.6.2

JFB J2SE SLEC 8 Gnome 2.0-metacity 2.6.2

JFB SLES 11 GNOME 2.24.1-2.28 - Metacity is 2.24.0-3

Firefox 3.0.6 or 3.0.8

JFB J2SE SLES 10 Gnome 2.12.0.1-26.6 - Metacity 2.12.3-0.15 Firefox 2.0.x

JFB J2SE SLES 9 Gnome 2.4.0-metacity 2.6.2

Mozilla 1.4

JFB J2SE SLES 8 Gnome 2.0.5-metacity 2.6.2

JFB J2SE TurboLinux 8.0 Gnome-sawfish 1.0

JFB J2SE Sun Java™ Desktop System, Release 2 Gnome 2-metacity 2.4

JFB J2SE Sun Java™ Desktop System, Release 1 Gnome 2-metacity 2.4

Linux 64-bit

Linux x64 JFB Oracle Enterprise Linux 6.x Gnome 2.16.0-6.el5 -

Metacity 2.16.0-12.el5

64-bit OS, 32-bit Browsers: Firefox 3.0.x or Firefox 3.5.x

Install 57MB Disk

Install 118MB Disk

JFB Oracle Enterprise Linux 5.6+ Gnome 2.16.0-6.el5 - Metacity 2.16.0-12.el5

64-bit OS, 32-bit Browsers: Firefox 3.0.x or Firefox 3.5.x

JFB Oracle Enterprise Linux 5.5 Gnome 2.16.0-6.el5 - Metacity 2.16.0-12.el5

64-bit OS, 32-bit Browsers: Firefox 3.0.x or Firefox 3.5.x

JFB Oracle Enterprise Linux 5.4 Gnome 2.16.0-6.el5 - Metacity 2.16.0-12.el5

64-bit OS, 32-bit Browsers: Firefox 3.0.x or Firefox 3.5.x

JFB Oracle Enterprise Linux 4.8 Gnome 2.7.3 - Metacity 64-bit OS, 32-bit

- 13 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 14: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

2.6.2 Browsers: Firefox 2.0.x or Firefox 3.0.x

JFB Red Hat Enterprise Linux 6.x Gnome 2.16.0-6.el5 - Metacity 2.16.0-12.el5

64-bit OS, 32-bit Browsers: Firefox 3.0.x or Firefox 3.5.x

JFB Red Hat Enterprise Linux 5.6+

Gnome 2.16.0-6.el5 - Metacity 2.16.0-12.el5

64-bit OS, 32-bit Browsers: Firefox 3.0.x or Firefox 3.5.x

JFB Red Hat Enterprise Linux 5.5 Gnome 2.16.0-6.el5 - Metacity 2.16.0-12.el5

64-bit OS, 32-bit Browsers: Firefox 3.0.x or Firefox 3.5.x

JFB Red Hat Enterprise Linux 5.4 Gnome 2.16.0-6.el5 - Metacity 2.16.0-12.el5

64-bit OS, 32-bit Browsers: Firefox 2.0.x or Firefox 3.0.x

JFB J2SE Red Hat Enterprise Linux 5.0 (5.1, 5.2, 5.3)

Gnome 2.16.0-6.el5 - Metacity 2.16.0-12.el5

64-bit OS, 32-bit Browsers: Firefox 2.0.x or Firefox 3.0.x

JFB J2SE Red Hat Enterprise Linux AS 4.0 (4.1 - 4.8).

Gnome 2.8.0-metacity 2.6.2

64-bit OS, 32-bit Browsers: Firefox 2.0.x Mozilla 1.4 or Mozilla 1.7

JFB J2SE Red Hat Enterprise Linux ES 4.0 (4.1 - 4.8)

Gnome 2.8.0-metacity 2.6.2

JFB J2SE Red Hat Enterprise Linux AS 3.0

Gnome 2.2.2-metacity 2.6.2

64-bit OS, 32-bit Browsers: Mozilla 1.4

JFB J2SE Red Hat Enterprise Linux ES 3.0

Gnome 2.2.2-metacity 2.6.2

JFB J2SE SUSE 9.2 Gnome 2.6.1-metacity 2.6.2

JFB J2SE SUSE 9.1 Gnome 2.2-metacity 2.6.2

JFB J2SE SUSE 9 Gnome 2.2-metacity 2.6.2

JFB J2SE SUSE 8.2 Gnome 2.2-metacity 2.6.2

JFB SLES 11 GNOME 2.24.1-2.28 - Metacity is 2.24.0-3

64-bit OS, 32-bit Browsers: Firefox 3.0.6 or 3.0.8

JFB J2SE SLES 10 Gnome 2.12.0.1-26.6 - Metacity 2.12.3-0.15

64-bit OS, 32-bit Browsers: Firefox 2.0.x

JFB J2SE SLES 9 Gnome 2.4.0-metacity 2.6.2 64-bit OS, 32-bit

Browsers: Mozilla 1.4 JFB J2SE SLES 8 Gnome 2.0.5-metacity

2.6.2 Update Release Footnotes Oracle Enterprise Linux 5.5 support for JFB was introduced in 1.5.0_24. Oracle Enterprise Linux 5.4 support for JFB was introduced in 1.5.0_24. Oracle Enterprise Linux 4.8 support for JFB was introduced in 1.5.0_24. Red Hat Enterprise Linux 5.6 support for JFB was introduced in 1.5.0_29.

- 14 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 15: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

Red Hat Enterprise Linux 5.5 support for JFB was introduced in 1.5.0_24. Red Hat Enterprise Linux 5.4 support for JFB was introduced in 1.5.0_21. Windows 7 support was introduced in 1.5.0_21. Windows Server 2008 R2 support was introduced in 1.5.0_21. Windows Vista SP2 support was added in 1.5.0_21. Windows Server 2008 SP2 support was added in 1.5.0_21. SLES 11 support was added in 1.5.0_19. Red Hat Enterprise Linux 5.3 support was added in 1.5.0_19. Windows Server 2008 support was added in 1.5.0_19. Red Hat Enterprise Linux 5.0 support was added in 1.5.0_16. Windows Vista support was added in 1.5.0_14. Solaris x64 support was introduced in 1.5.0_02. AMD64/EM64T 32-bit mode Windows support was introduced in 1.5.0_02. Prior to 1.5.0_02, J2SE 5.0 supports AMD Opteron (32) Windows in this configuration. AMD64/EM64T 64-bit mode Windows support was introduced in 1.5.0_02. Prior to 1.5.0_02, J2SE 5.0 supports AMD Opteron (64) Windows in this configuration. AMD64/EM64T 32-bit mode Linux support was introduced in 1.5.0_02. Prior to 1.5.0_02, J2SE 5.0 supports AMD Opteron (32) Linux in this configuration. AMD64/EM64T 64-bit mode Linux support was introduced in 1.5.0_02. Prior to 1.5.0_02, J2SE 5.0 supports AMD Opteron (64) Linux in this configuration.

- 15 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 16: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

Chapter 3 StreamEDS Installation Instructions

3.1 Installation Instructions Download StreamEDS using the link provided by TargetStream. The downloaded file will look like this: StreamEDS_Workbench-v1.X-win32.exe. You will need Administrator rights to run and install the executable provided. “Double Click” the executable to start the installation. A Setup Dialog will appear:

Click “Next” By default, StreamEDS will install in “C:\Program Files\StreamEDS Workbench

- 16 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 17: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

Click “Next” A Confirmation Dialog will appear:

Click “Next” A Status Dialog showing the installation progress will appear as StreamEDS Workbench is installed.

- 17 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 18: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

Once the installation is complete, an Installation Complete Dialog will appear, and you will have the option to launch the StreamEDS Workbench.

Click “Finish” and the StreamEDS Workbench will launch.

A demonstration video is available in chapter 15.

- 18 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 19: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

3.4.1 Verify the Installation Once the StreamEDS Workbench has been installed, test the installation. In the “Work” area(See chapter 4) of the workbench, you will see links to:

● Getting Started ● User’s Guide ● TargetStream.com

Click on “Getting Started”. A Welcome Dialog will appear describing how you have just opened an AFP for display using the workbench, and other ways you can open AFP documents.

Click “OK”, the dialog will close and you will set our “utility.afp” (a sample AFP we provide), displayed in the workbench. If you are running the evaluation copy, a StreamEDS Demo” watermark will be displayed on the AFP.

- 19 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 20: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

You will notice with an AFP open the toolbar has changed.

To complete the installation test, click on the PDF toolbar icon. This will convert the AFP that is “active” and “open” to convert from AFP to PDF. The AFP to PDF transform will occur and the converted PDF should open using your system’s default PDF viewer. If you close the PDF created, you will see a new file in the workbench output folder called “utility.afp.pdf” You can open this PDF by double clicking it, or by using the right mouse click and selecting open.

- 20 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 21: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

3.4.2 Test StreamEDS with your AFP documents After you have verified StreamEDS is working by converting the sample AFP provided (“utility.afp”), you are now ready to try StreamEDS on your own documents.

1. From the Menu Bar, you can select File>Open AFP 2. Double Click on the file in the “data” folder of the Project View. 3. Right Click on the file in the “data” folder and click Open. 4. Drag the AFP file from your file system onto the document view area. 5. Click the Open AFP file folder icon on the toolbar.

From here, you can use the Tool Bar Icons to convert your AFP to any of the supported formats. NOTE: Your converted document may not appear with the same fidelity as the print version; this is because StreamEDS needs access to certain AFP resources like overlays and custom fonts.

- 21 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 22: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

Chapter 4 StreamEDS Workbench Layout The StreamEDS Workbench has a very similar look and feel to Eclipse. That is due to StreamEDS being developed using the Eclipse RCP (Rich Client Platform). Here is what StreamEDS looks like immediately after an install:

Here is what the workbench looks like after you have opened an AFP:

- 22 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 23: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

4.1 Title Bar A - At the top of the StreamEDS workbench, you will find the Title Bar. If you are running an evaluation version of StreamEDS, the title bar will display how many days are left in the evaluation.

4.2 Menu Bar B - Below the Title Bar, you will find the Menu Bar. The Menu Bar provides general product options and functions. Menu Bar options are:

● File o New

▪ Resource Set – Creates a new Resource set that can be viewed in the resources view.

o Open ▪ AFP – open an AFP via a Windows Explorer dialog ▪ PDF – open a PDF via a Windows Explorer dialog

o Save/Save All – saves the workspace o Eds-gen

▪ Import – Import an eds-gen replacing the current one. ▪ Export – Export current eds-gen.

o Workspace ▪ Open – Opens a Window’s Explorer window in C:\Users\john

doe\TSTWorkspace ▪ Import – Opens a dialog to import and replace current workspace ▪ Export – Exports current TSTWorkspace, does NOT reset or

replace current workspace ▪ Refresh – refreshes the GUI to the file system. ▪ Clean & Rebuild – removes compiled files and rebuilds everything ▪ Reset – Restores workspace to default settings removing any and

all changes. o Deploy

▪ EDS for Java – Opens a dialog to create artifacts for deployment in 100% java

▪ EDSN for .Net – Opens a dialog to create artifacts for deployment to .NET environments

o Export AFP – Opens a dialog with options for exporting an AFP from the workbench

o Import License – Opens a Windows Explorer to navigate to a license o Exit – Closes workbench

● Workflow

- 23 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 24: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

o New – Opens a dialog to select a workflow to add to the workspace from the included examples

o Copy – Make a copy of a workflow in the workspace o Import – Opens a Windows Explorer to import a workflow into the

workspace. ● Resources

o Import ▪ AFP

● Charset – Import missing/external Charset(s) into the resource set

● Codefont - Import missing/external CodeFont(s) into the resource set

● Codepage - Import missing/external Codepage(s) into the resource set

● Formdef - Import missing/external Formdef(s) into the resource set

● Pagedef - Import missing/external Pagedef(s) into the resource set

● Overlay - Import missing/external Overlay(s) into the resource set

● Object - Import missing/external Object(s) into the resource set

● Object Container - Import missing/external Object container(s) into the resource set

● PageSegment - Import missing/external Pagesegment(s) into the resource set

● Resource Group - Import missing/external resource group(s) into the resource set

▪ Data – Opens a dialog to import any other resources that don’t fit into the above categories. i.e: A PDF backer page

▪ Image – Opens a dialog to import images used/needed for transformation.

▪ OTF – Opens a dialog to import Open Type Fonts into the resource set.

▪ Type 1 - Opens a dialog to import Type 1 Fonts into the resource set.

▪ Encoding - Opens a dialog to import encoding(s) into the resource set.

▪ Fontres – Opens a dialog to import virtual font resources ▪ Workflow

● Change – Opens a dialog to import a .change file ● Sink - Opens a dialog to import a workflow sink

o Manage Versions – opens a dialog that lists all resource sets and gives the ability to switch between, add, or remove resource sets.

- 24 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 25: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

● Tools o Deploy

▪ EDS for Java – Opens a dialog to create artifacts for deployment in 100% java

▪ EDSN for .Net – Opens a dialog to create artifacts for deployment to .NET environments

o AFP ▪ Export AFP AFP – Opens a dialog with options for exporting an

AFP from the workbench ▪ Validate AFP – Provides a log of any errors or missing resources

in a selected AFP document. ▪ Extract Fonts - Extracts all fonts from an AFP and places them in

the active AFP charset resources. ▪ Extract Images – Extracts all images from an AFP and places them

in the images folder of the active resource set. o Map Fonts

▪ Current Document - ● Auto Map Fonts - Automatically maps any fonts that match

any of the 13 Adobe Referenced fonts ● Delete Font Mappings - Deletes all font mappings

configured for the current document selected. ▪ Reset Font Mappings - Globally resets all font mappings to factory

defaults. ▪ Set Missing Glyphs Action - Default setting is “UseSourceGlyph”,

to use the source glyph from the source font when the destination font does not have a corresponding glyph. Setting it to “Ignore” will force StreamEDS to use the destination font’s glyph(s)

▪ Set AutoFill GlyphKeys Option - Default setting is true/enabled. When enabled StreamEDS will automatically add equivalent Glyph Keys for different systems to each character. When this option is disabled StreamEDS will only use the Glyph Keys defined in the encoding.

● NOTE: Disabling this option can boost performance but may require adding/creating a StreamEDS encoding XML resource for correct output.

● Window o Views

▪ Console –Focuses on the console view in the bottom center of the workbench

▪ Outline - ▪ PageView - Focuses on the console view on the right side of the

workbench ▪ Problems – Focuses on the problems view in the bottom center of

the workbench

- 25 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 26: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

▪ Projects - Focuses on the projects view on the left side of the workbench

▪ Properties – Focuses on the properties view on the bottom right side of the workbench

▪ Resources - Focuses on the resources view on the left side of the workbench

▪ Content Details – Focuses on the content details view. Found below the work area, bottom center, and only available in the Mark Perspective

o Perspectives – set the views and layout of the workbench ▪ Code – replaces the resource and project views with “Sample

Code” view giving access to the sample included java classes. ▪ Font – Replaces the outline view with the font view enabling easier

management of fonts ▪ Browse – The default perspective to view the AFP, resources, and

metadata ▪ Mark – Only perspective capable of marking documents, gives

access to the Stream Changes, Logical Structures, and Content Details views.

o Clear Console – clears all content from the console o Reset Perspective – returns all views and sidebars to their default

positioning ● Help

o Welcome – Opens welcome page in the work area o Changelog – Opens changelog in the work area o Java API o Check for Updates o Post-Update Processing o About Targetstream

Many of these Menu Bar options lead to Sub Options

4.3 Tool Bar C – Below the Menu Bar you will find the Tool Bar. The Tool Bar option will change depending on which perspective you are in.

4.4 Perspectives D – In the upper right hand corner of the workbench you will find the Perspectives. AFP Browse – Used to view AFP documents. Font – Used to view AFP Fonts referenced within an AFP. Used to map AFP fonts to

- 26 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 27: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

Open Type, True Type, or Outline Fonts. Code – Used to view sample code. Mark – Used to graphically mark documents initially to conform to PDFUA and ADA standards.

4.5 Project View/Resource View E –Used to browse the project folders and resource folders.

4.6 Work Area / Document View Area F – The central area of the workbench used to view AFP documents and view/edit Workflows.

4.7 Navigation View G – There are two Navigation Options, PageView and Outline View. PageView – provides a thumbnail image of pages. Outline View – provides a metadata outline of the active (open) AFP.

4.8 Console View / Problems View / Font Mapping View H –There are three options at the center bottom of the workbench, Problems View, Console View, Font Mapping. Problems View – The Problems View will display any problems with the open AFP. Typical messages displayed here will be missing resource messages like, missing fonts, codedfonts, codepages, overlays, formdefs, or pagesgments. Console View – The Console View will display any messages from running a workflow. Font Mapping View – The Font Mapping View will display the options available when mapping an AFP Font to a font resource that PDF understands.

4.9 Properties View I –The lower right section of the workbench will display the properties for the file open, selected or active.

- 27 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 28: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

Chapter 5 Installation Directories By default, StreamEDS is installed in the C:\Program Files\StreamEDS Workbench directory. The files in this directory will probably never have to be touched.

5.1 root The “root” of the installation directory contains the executable files and StreamEDS Workbench startup configuration. The TSTWorkbench.ini is used to establish the StreamEDS startup environment variables. The following directories should not be touched or edited.

● configuration ● features ● jre ● p2 ● plugins

- 28 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 29: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

Chapter 6 TSTWorkspace When the StreamEDS Workbench is run for the first time, a folder will be created in the User Home directory called TSTWorkspace. Here is an example: C:\Users\John Doe\TSTWorkspace.

Any changes made while the StreamEDS Workbench is open will be persisted in this directory. This directory also contains a sample Eclipse project that can be used to run the Java code samples. A demonstration video is available in chapter 14.

6.1 root The root of the TSTWorkspace directory contains the:

● .classpath – Eclipse project file. ● .project – Eclipse project file. ● CHANGELOG.txt – a list of the releases and the changes included in each

release. ● README.txt – a list of quick start instructions and acknowledgements. ● StreamEDS.lic – the StreamEDS license file.

6.2 .metadata The .metadata folder contains StreamEDS workbench runtime data. This folder may also contain a .log file which will report any problems performing GUI based transformations.

6.3 com.tst.eds The com.tst.eds folder is the main folder that contains project specific configuration settings and external resources. One specific folder often accessed is the output folder.

- 29 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 30: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

C:\Users\John Doe\TSTWorkspace\com.tst.eds\projects\EDSProject\output When a document transform is run using the GUI, the output of the transform is written here.

6.4 data The data folder is where the sample AFPs provided are located. Users can also copy there AFPs to this folder for quick easy access from the workbench.

6.5 docs The docs directory contains the Java API.

6.6 eds-gen The eds-gen directory is a proprietary directory where our resource repository is stored and the configuration changes are staged.

6.7 lib The lib directory contains all of the jar files needed to run the transform.

6.8 scripts The scripts directory contains sample scripts for running headless.

6.9 src The src directory contains sample code for executing workflows.

- 30 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 31: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

Chapter 7 Workflows At the heart of StreamEDS is the Workflow. The Workflow is an XML based file contains nodes and sinks used to describe to the StreamEDS Engine what operation(s) to perform. The Workflow also facilitates the ability to have multiple configurations for different types of conversions. For example, your organization may have many different types of AFP documents (invoices, statements, bill images, etc….), and each AFP may have a different set of resources like AFP Fonts, Overlays, Page Segments, etc… In this case, you are able to define a separate Workflows for each conversion, with each specifying a different location for the various resources needed at conversion time.

7.1 Workflow Concepts Workflows are what control StreamEDS. They model a process that can be executed repeatedly, and concurrently, to generate a desired paginated output, or even set of paginated outputs, given a set of input parameters. They model this process using the concept of Operator Streams, Changes and Sinks.

● Operator Stream: o Models primitives commonly found in print streams such as "Draw Page".

● Change:

o Modifies the operator stream in some way. For instance, an "afpIn" change adds the contents of a MODCA AFP document to the operator stream, "modifyPage" conditionally applies a page modifications to all draw page operators.

o Changes can be stacked. For instance, two afpIn changes can be stacked to

produce an operator stream containing the contents of two AFP's.

● Sink: o Consumes the operator stream, and terminates the workflow. Typically

represents an output document type such as a PDF, Postscript, or TIFF.

7.2 Workflow Examples

7.2.1 Workflow Example 1 This example is a simple workflow that adds the contents of an AFP to the operator stream via the "afpIn" node, and defines a "pdfOut" node to digest the operator stream and terminate the workflow. In effect, a simple AFP->PDF transform.

- 31 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 32: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

<Workflow version="1.0">

<cli> <cliMain>

<run/> </cliMain>

</cli> <main>

<afpIn version="1.0"> <stream>path/to/utility.afp</stream>

</afpIn> <pdfOut version="1.0">

<stream>path/to/out.pdf</stream> </pdfOut>

</main> </Workflow>

7.2.2 Workflow Example 2 Parameters passed to nodes can either be constants or Groovy scripts (see below) to be evaluated. Groovy scripts:

There are two ways to evaluate a groovy script in a workflow. The first is: ${Script Here} The second, for more complex scripts is: <![CDATA[${Script Here}]]>

Evaluating a groovy script (http://groovy.codehaus.org/Documentation) to retrieve parameter values as opposed to hard coding strings. Groovy doesn't require a return statement unlike Java, and if none is given the last object in a script is returned.

All of these are the same in groovy: <stream>${

'/git/input/afp/utility.afp' }</stream> <stream>${

return '/git/input/afp/utility.afp' }</stream>

Return types: Groovy scripts must return type required of parameter, but we support implicit conversions. For example, we can implicitly convert from String or File to InputStream so all these would be acceptable for a parameter type of InputStream:

- 32 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 33: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

<stream>${ '/git/input/afp/utility.afp'

}</stream> <stream>${

new java.io.File('/git/input/afp/utility.afp') }</stream> <stream>${

new java.io.FileInputStream('/git/input/afp/utility.afp') }</stream>

<Workflow version="1.0">

<cli> <cliMain>

<run/> </cliMain>

</cli> <main>

<afpIn version="1.0"> <stream>${

println('executing script to retrieve afpIn->stream parameter')

'path/to/utility.afp'

}</stream> </afpIn> <pdfOut version="1.0">

<stream>${ println('executing script to retrieve

pdfOut->stream parameter')

return 'path/to/out.pdf' }</stream>

</pdfOut> </main>

</Workflow>

7.2.3 Workflow Example 3 How about if we want a parameter value to be derived from a keyed value passed in on a workflow execution? The variable can be retrieved via an implicit object passed into all scripts "ctx". ctx is of type java.util.Map, and all variables passed into a workflow execution can be accessed via that object. Note: thanks to groovy magic, a shortcut can be used to access keyed values in the map.

- 33 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 34: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

Java: ctx.get("input")

Groovy: ctx.input

You can still use the old way if you'd like, but just an FYI because we make use of the shortcut in a lot of our examples <Workflow version="1.0">

<cli> <parm id="input" type="String" options="-i">

<desc>Input AFP document</desc> </parm> <cliMain>

<run> <def id="output">${

'path/to/' + new File(ctx.input).getName() + '.pdf' }</def>

</run> </cliMain>

</cli> <main>

<afpIn version="1.0"> <stream>${ctx.input}</stream>

</afpIn> <pdfOut version="1.0">

<stream>${ctx.output}</stream> </pdfOut>

</main> </Workflow>

- 34 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 35: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

Chapter 8 Running Headless StreamEDS has two modes that it can run, 1) Using the StreamEDS Workbench (GUI), and 2) Headless. The headless mode was developed for use in systems that did not support a GUI environment and to demonstrate batch operations. If you want to run a workflow using a batch file or a script you can do so from the command prompt.

8.1 Check Java Version Before attempting to execute TargetStream StreamEDS Headless, you should first ensure that you can execute Java in your environment and that the correct version of Java runs. TargetStream StreamEDS Headless requires Java version 1.5 or greater. To check your Java version, execute the following command: java -version In the output, you should see a line like the following: java version "1.5.0_21" If you receive a message like "java: command not found" or "'java' is not recognized", your environment is not configured to run Java. If your Java version is less than 1.5 or your environment is not configured to run Java, you must correctly configure your environment before trying to use TargetStream StreamEDS Headless. Configuring your environment to run Java 1.5 (or greater) is beyond the scope of this document.

8.2 Executing StreamEDS Headless Via the StreamEDS Script Open a command prompt and change directory to the scripts directory. For example, if you installed StreamEDS Workbench, open to "C:\Users\My User\ TSTWorkspace\scripts", then you would execute the following command:

- 35 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 36: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

cd "C:\Users\My User\ TSTWorkspace\scripts " Then execute the StreamEDS script. On Windows, execute: StreamEDS.bat AFPtoPDF utility.afp On all other supported operating systems, execute: sh StreamEDS.sh AFPtoPDF utility.afp This command should create a file named utility.afp.pdf. You should be able to open the file using your favorite PDF viewer. Read the builtin usage information for more advanced syntax. On Windows, execute: StreamEDS.bat help On all other supported operating systems, execute: sh StreamEDS.sh help

8.3 Running Headless From a Deployment StreamEDS can also be run headless from a deployment. (See chapter 12 for deployment details) You must ensure you include the scripts directory in the deployment for this method to work. A demonstration video is available for this process in Chapter 15.

- 36 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 37: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

Chapter 9 Resolving Missing AFP Resources AFP documents can reference the following external resource types:

● CharacterSets (fonts) ● Codedfonts ● Codepages ● Overlays ● Pagesegments ● Formdefs ● Pagedefs

Generally speaking, the first character of the resource name indicates the resource type. This is just a naming convention and may not be a strictly enforced standard.

● C - CharacterSets (fonts) ● X - Codedfonts ● T - Codepages ● O - Overlays ● S - Pagesegments ● F - Formdef ● P - Pagedef

After you have opened an AFP you may notice the Problems View warning the AFP is missing a resource. StreamEDS Workbench has parsed the AFP provided and the AFP is referencing a specific AFP resource that has not been provided. Until you resolve missing AFP resources, your AFP may not look correct in the StreamEDS Workbench AFP viewer. AFP documents may or may not contain “in-line” resources. “in-line” resources are external AFP resources that are prepended (prefixed) on the front of the AFP document within an AFP Resource Group. Some document archive systems will dynamically create an “in-line” Resource Group and add it to the front of the AFP as the requested document is returned from the archival system. If your AFP document contains “in-line” resources, your document should open and render fine within the StreamEDS workbench. If your AFP document references external resources and they are not included “in-line” you will see something like this:

- 37 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 38: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

You may have to request the missing AFP resources from the AFP producer, the Print Center, or the AFP Provider. To resolve the missing resources, double click on the missing resource message, and you will be prompt to import the missing resource:

- 38 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 39: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

Once you have resolved all of the missing resource messages, the warning messages within the Problems View will clear and your AFP should display correctly.

You are now ready to use the Toolbar Icons, or desired workflow, to transform to the desired output type. See Chapter 15 for demonstration video.

- 39 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 40: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

Chapter 10 Font Mapping PDF does not understand what an AFP font is. One of the hardest parts transforming AFP to PDF is getting an AFP font into a form that PDF understands. By default, if you have not mapped an AFP font to something PDF can understand, StreamEDS will, on-the-fly during transformation, convert the AFP bitmap font to an Adobe Type 3 raster font and embed it in the PDF. There are a couple of advantages to this approach, 1) you don’t have to do anything, and 2) the PDF generated should look exactly like the AFP because the PDF is using the exact bitmap glyph patterns the AFP font used. There are a couple of disadvantages to this approach, 1) the generated PDF is usually larger in size due to embedding the Adobe Type 3 raster fonts, and 2) raster fonts when viewed electronically sometimes appear “fuzzy” on a computer monitor. Raster fonts can easily be recognized when you zoom in by their blocky outline, especially on characters that are round or are not composed of vertical and horizontal lines. Look at the two versions of the of “Plat” from the word “Platinum” from our sample statement above. Zoomed in to the resulting PDFs, the first one with unmapped bitmap font and the second with a mapped font in StreamEDS, you can clearly see the difference. Bitmap font converted to Adobe Type 3 raster:

Font mapped in StreamEDS converted to Type 1 outline:

- 40 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 41: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

Another way to tell if the PDF you generated using StreamEDS is using dynamic Adobe Type 3 raster fonts is to open a PDF and from the Acrobat menu select File>Properties>Fonts tab. You will see something that looks like this:

In the previous chapter, we opened an AFP and resolved all of the missing resources. When we converted that AFP to PDF, you can see the size by looking at the Properties View.

- 41 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 42: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

10.1 Mapping AFP Bitmap Font to Adobe Referenced Font 1. Open the StreamEDS Workbench. 2. Open your AFP and resolve any missing AFP resources. (Demo video available in

chapter 14) 3. In the upper right hand corner of the workbench, change from the AFP Browse

Perspective to the Font Perspective by selecting the font perspective button. When you change perspectives, you will notice a “Font” tab replaces the Outline tab and a list of all the fonts used by this document will display. To display an AFP character, you need a Character Set and a Code Page. The Character Set contains the

glyphs and the CGCSGIDs (Coded Graphic Character Set Global Identifiers). The Code Page contains the encoding mapping the codepoint to a CGCSGID. In the above image, you can see the name of the Character Set and the name of the Code Page. Next to the Code Page column is a Status column. The status column currently indicates the AFP Character Sets are Bitmap Character Sets. 4. Click on a font within the font list and the text associated with that font will

highlight, and all other text will fade: The Properties view will change and display the Font Descriptor of the AFP Font. The Font Descriptor can display the name of the font family and the point size of the Character Set.

- 42 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 43: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

5. At the bottom of the StreamEDS Workbench the “Font Mapping” tab will display

any active or in active font mappings created. If the list is empty, no font mapping entries have been created. To create a new font mapping, click the “New” button within the Font Mapping tab. A Font Mapping dialog will appear.

6. To select the PDF font to map the AFP font to, use the drop down list and select the

name of the font. Once the font is selected, set the point size of the font. Below, we have selected the Helvetica font with a point size of 9. We will leave the encoding as “source” as we do not need to transcode this font.

7. With the new mapping entry created, you will see the mapping appear in the list

under the Font Mapping tab, and you will see the status of the font change from “Bitmap” to “Mapped”.

- 43 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 44: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

**Note, you can change the point size clicking on the number under the “Point Size” column. You can also check / uncheck the “Use Mapping” checkbox to toggle between mapped and not mapped. 8. Repeat steps 4-7 for all the fonts you wish to map.

10.2 Toggle Selected Font To toggle between having the fonts selected and not selected, mouse click on the box next to the “Character Set” column heading, as shown here.

- 44 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 45: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

10.3 Edit Glyphs StreamEDS offers the ability to customize a font for specific glyphs. Editing glyphs in this fashion only applies to the font and mapping selected. If you wish to change a glyph for every font that utilizes a particular codepage see 10.4 Edit Unicode Mappings. To edit specific glyphs in a font:

1. Navigate to the font perspective and select the font and mapping you wish to edit. In the bottom right of the font mappings view there is an “Edit Glyphs” button, select it. (See below)

2. This will bring up the Customize Encoding dialog.

- 45 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 46: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

3. In the Customize Encoding dialog you will see the source and destination glyph pairs for this mapping. Find the glyph you wish to edit. Then click on the box in the right column, i.e. the destination glyph. This will bring up the Select Glyph dialog. The figure below shows the Select Glyph dialog for codepoint 66. NOTE: The right column may be red and empty if the font does not contain a destination glyph for that codepoint (Example: codepoint 63 in figure above). You can still set/edit the destination glyph for this codepoint.

3.1. 1: Info bar containing which code point you are currently editing. 3.2. 2: Glyph keys for the currently selected code point in the source font will

be displayed here. 3.3. 3: Destination glyph keys for the new/current selection will be displayed

here. 3.4. 4: If the mapping already has a destination glyph, it will be highlighted by

a light blue background when the dialog opens. If there is no destination glyph in the mapping, nothing will be selected when the dialog opens.

3.5. 5: Use Source Glyph button will use the glyph from the source font. 3.6. 6: Use Selected Glyph will use the currently selected glyph.

4. Find and select the glyph you wish to use then select the Use Selected Glyph button in the bottom right.

5. Back on the Customize Encoding dialog all edited glyphs will be highlighted in bright red. (Below you can see code point 66 was changed and the new

- 46 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 47: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

destination glyph is highlighted in bright red)

You can edit multiple glyphs in this fashion and click OK when done. This process will update the Font Table. Like with any other change in workbench, changes made here will have to be redeployed to take effect in any deployed environment.

10.4 Edit Unicode Mappings For a PDF document to be text searchable, unicode values need to be assigned to the character set glyphs. This can be achieved using the Edit Unicode Mappings dialog. Editing Unicode mappings is much like editing glyphs, but where editing glyphs is intended to change/customize a particular character set/codepage combination, editing Unicode mappings affects all character sets that share a given codepage. Editing unicode mappings will create a new encoding which is derived using the current encoding as a parent.

1. To edit the Unicode mapping select the font from the Fonts view, then right click and select “Edit Unicode Mappings” This will bring up the Edit Unicode Mappings dialog. (See below)

- 47 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 48: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

2. Edit Unicode Mappings Dialog

2.1. 1: Title bar 2.2. 2: Name of code page currently being edited. 2.3. 3: Changes the label of the source glyph 2.4. 4: Lists all character sets that use this codepage. 2.5. 5: Encoding used for mapping. 2.6. 6: Changes the scale of currently displayed glyphs.

3. You can change the source label to display the different labels associated with each source glyph. The source drop down (#4) is used to view all character sets associated with the code page to view how the changes made here will affect them.

4. If you desire to change a glyph for every charset that uses this codepage simply select the destination glyph on the right column, this will bring up the Select Glyph dialog (see Edit Glyphs #3 for explanation of the Select Glyph dialog) 4.1. Note: you will not be able to select “Use Source Glyph” as this only

applies when editing glyphs for a charset. 5. Select OK when done to apply changes to workspace.

- 48 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 49: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

Chapter 11 Running Code Samples / Eclipse Project Within the TSTWorkspace (see Chapter 6), we have included a sample eclipse project to quickly and easily facilitate running code samples that demonstrate how to use the API to invoke StreamEDS. A video demonstration can be found in Chapter 15.

11.1 Importing Sample Eclipse Project 1. Open Eclipse. Create a new Eclipse Workspace if you want. 2. Select File>Import. The following dialog will appear:

3. Select General>Existing Projects into Workspace, then click “Next”.

- 49 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 50: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

4. An Import dialog will display, click “Browse”. A “Browse For Folder” dialog will

display. Navigate to your TSTWorkspace directory (The TSTWorkspace will be created under your USER_HOME directory)…. Click “OK”.

5. From the Import Dialog click “Finish”.

- 50 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 51: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

6. The Eclipse Project Explorer will now show a new Eclipse project called “com.tst.eds.project”. Under the project, the src folder will show sample code for invoking the API. Open the AFPtoPDF.java sample.

7. This particular class is set up to take two string paths and a workflow name as a string

and converts the document using the provided hard-coded pathways. Make sure you change line 9 to include the correct path to the document you wish to transform and the path and name of the location you wish it to be output to.

8. On line 15 in the createWorkflowExecutor() method input the string name without the .tstwf extension of the workflow you wish to use for transform. NOTE: the workflow must be present in your workspace for it to be found.

9. Next, run the EDSTransformerString java class. Within Eclipse, from the Menu Bar, select Run>Run Configurations. Double click on “Java Application” on the left, this will create a new Run Configuration for the active java class. Click Run.

- 51 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 52: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

Chapter 12 Deploying Workbench Changes Once the PDF, generated from the StreamEDS Workbench, looks like you want it to, you are ready to create a StreamEDS Workbench deployment artifact that can be used (integrated) within your code/application/system. A video demonstration can be found in Chapter 15.

12.1 Workbench Deploy Option From the Menu Bar, select File>Deploy. This will package and create all of the artifacts from StreamEDS that you will need to bundle with your application.

NOTE: Ensure all changes to workflows have been made and all required resources have been added before deploying. Once deployed the deployment will be completely decoupled from the workbench and any further changes there will NOT be reflected in previous deployments.

All of the classes and configuration changes made within the StreamEDS Workbench will be included in the jar files located within the lib directory.

- 52 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 53: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

1. Location you want the deployment to be saved 2. Name of your deployment (defaults to current StreamEDS version) 3. The eds-gen.jar file contains all of the configuration changes. The other jar files

contain the classes used by StreamEDS to support the API being invoked. You may have noticed there was an option to output the eds-gen as a jar or dir. It is purely a decision of convenience and will not affect how StreamEDS works in its deployed location.

4. Mandatory deployment requirement as it contains the required jars for running. If eds-gen is packaged as a jar it will be located in this directory. However, if packaged as a dir it will be placed as a dir at the same level as the lib dir.

5. Includes the script directory. If you plan to run from command line this is required. It also comes packaged with utility.afp and utlity_spool.afp for easier command line testing and convenience.

6. Contains compiled class files from the included sample java classes. 7. Contains the uncompiled java classes included in workbench. 8. Contains the “src” items needed in case a build is necessary from the deployment 9. Contains the same contents as the data folder in your project. By default it only

contains utility.afp and utility_spool.afp 10.Contains the StreamEDS documentation 11.Outputs the deployment as a dir 12.Outputs the deployment as a zip 13.Outputs the deployment as a tar.gz

- 53 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 54: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

Chapter 13 Environment Sizing When trying to size your environment for performing document transformations, you should architect a simple application using your AFP documents as input and run a series of tests to check your throughput. Our transformation software can transform AFP to PDF in excess of 1000 pages per second, however there are factors that impact performance such as:

● Document complexity ● Document size ● Processing Power / Processing Speed. ● Virtual memory availability.

If you are unable to run your own load tests, you should size based on the target Transactions Per Second (TPS) rate you anticipate. A general heuristic is to allocate one CPU or core per one TPS. Since the conversion/transformation is CPU intensive, you should also allocate additional CPUs/Cores for application server processing and other applications that may be sharing the server. Example 1-2 TPS: 1 server, 4 CPU/Cores, 4GB Ram 3-4 TPS: 2 servers, 4 CPU/Cores each, 4GB Ram each Or 1 server, 8 CPU/Cores, 8GB Ram running two separate application server instances. Each application server instance allocated 4 CPUs, and 4 GB Ram 8 TPS: 4 servers, 4 CPU/Cores each, 4GB Ram each Or 2 servers, 8 CPU/Cores each, 8GB Ram each. Each running two separate application server instances. Each application server instance allocated 4 CPUs, and 4 GB Ram

- 54 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 55: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

Here is a graphic illustrating scaling horizontally for additional load.

A customer recently asked, "Do you know how many concurrent conversions StreamEDS is able to handle at the same time? We are using StreamEDS in a customer facing situation where a number of customers could request conversion at the same time, and need to know how the concurrent conversion situations are handled. " The number of "concurrent conversions" StreamEDS can handle is not a function of our software, rather a function of your environment. Because our document transformation is thread safe and written in JAVA, it scales very well when you have to add additional Application Server instances.

- 55 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 56: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

Chapter 14 Custom Logging In StreamEDS By default the eds.log file is created in the directory the transform is executed. Below are a few examples on how to change where the default log file is created and updated, and how to customize or implement your own logging class.

14.1 Define log location in the workflow To define a new location for the default eds.log file add the following code snippet to your workflow. Add this block inside the <main> section of the workflow.

1. Define new location with the following code snippet: <context>

<log level="INFO"> <file path="C:\Users\zak\Desktop\eds.log"/>

</log> </context>

2. This example would output the log to the desktop.

14.2 Define custom logger in the workflow To define a new logging class for logging add the following code snippet to your workflow. Add this block inside the <main> section of the workflow.

1. Update the logger with the following code snippet: <context>

<log level="INFO"> <class name="com.tst.eds.SampleFileLogger"/>

</log> </context>

2. This example will use the provided SampleFileLogger.java class TargetStream provides. 2.1. Ensure you provide a fully qualified classname , and ensure that the class

is included in the classpath.

14.3 Implementing a custom logger If you have more specific needs for logging, wish to customize what is logged, or perform actions based on log messages a custom logger will be your best solution. To implement your own logger follow the instructions below: 1. You may specify your custom logger as shown in 14.2 above by giving a fully

qualified classname. 2. We provide a SampleFileLogger.java class to use as a starting point. You may

find it in the src folder, navigate to it using the code perspective, or view it through your IDE after importing the project we provide. (instructions below) 2.1. The easiest way to see this is to edit the SampleFileLogger class on line 25

to something like: StringfileName = "C:\\Users\\zak\\Desktop\\StreamEDS.log”;

- 56 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 57: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

3. At this point StreamEDS will be configured to use the SampleFileLogger class instead of the default behavior. However you decide to pass/handoff the information to an external application or java class can then be done programmatically through the class defined in the workflow.

Note: the easiest way to edit the java classes is to import the workspace into eclipse and edit the classes from there. A video demonstration of this process can be found in Chapter 16

- 57 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 58: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

Chapter 15 PDF User Accessibility PDF/UA

15.1 PDF/UA Background A basic understanding of PDF/UA is a prerequisite to utilizing StreamEDS to create PDF/UA compliant documents. StreamEDS enables the ability for proper tagging, but does not validate or ensure proper tagging. This is the responsibility of the user. It is not feasible for this document to be all encompassing of PDF/UA, and as such below are resources TargetStream suggests reading/using before beginning to attempt PDF/UA marking in StreamEDS. This reading will introduce much of the verbage used in this section as it relates to PDF/UA. The purpose of the chapter is to introduce many of the most common use-cases and how to utilize StreamEDS in creating a PDF/UA document with the knowledge of correct reading order and logical structure.

15.1.1 Required Reading

15.1.1.1: PDF/UA In A Nutshell The best place to start if unfamiliar with PDF/UA. Gives a description of history, applicable laws, users and usage, validating/compliance, and more.

15.1.1.2: Tagged PDF Best Practice Guide: Syntax TargetStream recommends reading this guide after PDF/UA In A Nutshell. This document will introduce most of the syntax a developer will need in discussing and understanding the technical aspects of tagging a document for PDF/UA. This document doesn’t instruct or explain how these elements should be used, rather it introduces and defines them.

15.1.1.3: The Matterhorn Protocol This document is best to skim at first and will become increasingly helpful as your understanding increases and you move on to the validation stage of document marking. Pay close attention to the checkpoints that are marked as “Human” for validation. StreamEDS transform ensures most, but not all, of the “Machine” requirements are met. You will still want to run your PDF/UA output through a validator (see below). As described in the introduction of the specification: “ Intended for software developers and document testers, the Matterhorn Protocol is designed to foster PDF/UA adoption by specifying a common set of tests to facilitate the exchange of detailed information on PDF/UA conformance.”

- 58 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 59: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

15.1.2 Resources

15.1.2.1: Validators ● PDF Accessibility Checker (PAC 3)

○ This is the primary validator that TargetStream recommends.

15.1.2.2: Screen Readers Caveat: Each screen reader has its own nuances, can pass all validator and Matterhorn checks, and still yield imperfect results in the various screen readers. Testing is mandatory to identify these issues and adjust and/or correct tagging structure to result in proper reading. Here you can find a survey of Primary Screen Readers. The top 3, as well as the ones TargetStream primarily uses are linked below:

● JAWS ● NVDA ● Apple’s VoiceOver

15.1.2.3: Specifications ● ISO_32000-1

○ This is the primary specification for PDF/UA standards.

● ISO_14289-1_2014 ○ This edition cancels and replaces the first edition,

ISO 14289-1:2012, Corrected version. ○ This specification describes the utilization of the

PDF specification ISO_32000-1 for PDF/UA standards.

15.1.3 General StreamEDS Information For more information on Workflow basics and concepts please refer to Chapter 7.

15.1.3.1: Change A change file, or <change> in StreamEDS, is simply a container for arbitrary stream changes and aids in organizing logical sections of a document within the file structure of StreamEDS.

15.1.3.2: Mark Page Or <markPage version=”1.0”> in StreamEDS is the stream change

- 59 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 60: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

that is responsible for marking the document in StreamEDS. All markPage changes must have a condition evaluate to true (more below), for the subsequent marking to be applied to the page.

15.1.3.3: Conditions Conditions for PDF/UA documents are as simple or as complex as the document being marked. On completely static, fixed location, documents it’s as simple as evaluating to true if on a certain page number. In more complicated, dynamic location, cases you will need to determine if a section in the document exists first before evaluating to true. These complicated cases are outside of the scope of this document and you will need to contact TargetStream support for additional information.

15.1.3.3: Rectangles Rectangles are the fundamental building blocks in StreamEDS to mark the content in the document. Just like the other aspects of PDF/UA marking in StreamEDS rectangles can be fixed location or dynamic. In order for StreamEDS to mark anything on the page it must first know where to mark. The easiest way to determine a rectangle is to click and drag in the Workbench in Mark Perspective.

15.2 Automark Automark is a powerful tool for marking large blocks of text and/or fixed content. It can be applied in dynamic ways, but that is out of the scope of this document. It is used widely in both fixed location and dynamic documents. By adjusting the processors inside the text marking of Automark you can easily and accurately mark sections in StreamEDS.

15.2.1 Text

15.2.1.1 Processors Join Chars To Words Combine adjoining text drawing commands that have the same font and baseline into words. Useful when characters are individually positioned.

SpaceWidthScalar Multiplier to use for finding maximum space width from a font's space width. Consecutive chars in a line of text are joined if the gap between them is greater than (spaceWidthScalar * max(spaceWidth1, spaceWidth2)), where the space width for each char is determined by its font. To join chars that are farther apart,

- 60 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 61: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

use a larger value. To prevent joining chars that are close together, use a smaller value.

Default: .9 Join Words To Lines

In order to be joined, words must both be adjacent horizontally as determined by spaceWidthScalar and in the same logical text line. Logical text lines are found from the top and bottom edges of font bounding boxes. The containsFactor, nearEdgeContainsFactor, and nearnessThresholdFactor options control how close top and bottom edges for different text items need to be in order for the text items to be considered part of the same logical text line. The logical text line handling is useful for subscripts and superscripts. ContainsFactor A number between 0 and 1 that tells how much of the vertical range of the taller text must be overlapped by the vertical range of the shorter text. For two words to be considered vertically in the same logical line, the overlapping vertical range must be greater than or equal to: containsFactor * max(range1, range2) To join words that are more offset vertically, use a smaller number. To prevent joining words that are more offset vertically, use a larger number. Example: The word "Target" has a 0.10" vertical range of [1.11"-1.21"]. The word "Stream" has a 0.05" vertical range of [1.18"-1.23"]. "Target" has the taller vertical range: 0.10". The overlap is 0.03": [1.18"-1.21"]. If containsFactor = 0.4, then 0.03" < 0.4 * 0.1" = 0.04" and the words WILL NOT be joined. If containsFactor = 0.3, then 0.03" = 0.3 * 0.1" = 0.03" and the words WILL be joined. If containsFactor = 0.2, then 0.03" > 0.2 * 0.1" = 0.02" and the words WILL be joined. Default: .6

NearEdgeContainsFactor Alternate containsFactor used when two text words have "near" top or bottom edges. See nearnessThresholdFactor for information on how "near" is determined. NearEdgeContainsFactor is usually an order of

- 61 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 62: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

magnitude smaller than containsFactor. To join words that are more offset vertically, use a smaller number. To prevent joining words that are more offset vertically, use a larger number. Default: .05

NearnessThresholdFactor Amount of minimum height used as a threshold to determine whether or not two top edges or two bottom edges are near each other. Two edges are considered "near" if the absolute value of their difference is less than the "nearness threshold". The nearness threshold is: nearnessThresholdFactor * min(height1, height2). Stated with an inequality, two edges are considered "near" if this is true: abs(edge1, edge2) <= nearnessThresholdFactor * min(height1, height2) If the top edges or the bottom edges are considered "near", nearEdgeContainsFactor is used instead of containsFactor for checking the vertical overlap.

SpaceWidthScalar See Join Chars To Words above

Join Inlines To Paragraphs Joins words and lines into paragraphs.

Contains Factor A number between 0 and 1 that tells how much of the horizontal range of the longer line must be overlapped by the horizontal range of the shorter line. Example: If consecutive lines of text have horizontal ranges of 1" to 3" and 2.5" to 3.5", then the shorter line is 1" long and the longer line is 2" long. The overlap is 0.5". The ratio of the overlap to the longer line is 0.5" ÷ 2" = 0.25. If 0.25 is greater than or equal to containsFactor, then the lines will be joined. Default: .6

Line Spacing Maximum line spacing within a paragraph. To join paragraph lines that are farther apart, use a larger value. To prevent joining paragraphs that are close together, use a smaller value.

- 62 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 63: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

Default: 1.5

NearEdgeContainsFactor Alternate containsFactor used when two lines of text have "near" beginning or ending edges. See nearnessThresholdFactor for information on how "near" is determined. Example: The final line is a paragraph is often significantly shorter than the other lines. Default: .05

NearnessThresholdFactor Amount of average character length used as a threshold to determine whether or not two beginning edges or two ending edges are near each other. Example: Given two consecutive lines of text with the following properties: Line 1:

Character Count: 25 Horizontal Range: from 1" to 3" Average Character Length: 2" ÷ 25 characters = 0.08" per character

Line 2: Character Count: 5 Horizontal Range: from 1.02" to 1.5" Average Character Length: 0.48" ÷ 5 characters = 0.096" per character

The minimum average character length is 0.08". If the nearnessThresholdFactor is 0.5, then the nearness threshold is 0.5 * 0.08" = 0.04". The beginning and ending edges are different by0.02" and 1.5" respectively. Since the difference between the beginning edges, 0.02", is less than the nearness threshold of 0.04", the nearEdgeContainsFactor will be used instead of containsFactor to determine whether or not to join the lines. Default: .5

- 63 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 64: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

Chapter 16 PDF/A

Background

Definitions and Specifications As defined in ISO 3200-2: “PDF/A (ISO 19005) is the industry standard for the archiving of digital documents”. ISO 19005-1 is the primary specification document for PDF/A, there are also corrections and additional supplements further extending the specifications for PDF/A. The contents and details of these specifications in their entirety are out of scope for this document. For in depth information on the PDF/A document format please refer to the specifications as needed.

Conformance levels As per ISO 19005-3: — “PDF/A” – a synonym for the ISO 19005 family of standards; — “PDF/A-1” – a synonym for ISO 19005-1; — “PDF/A-1a” – a synonym for ISO 19005-1, Level A conformance; — “PDF/A-1b” – a synonym for ISO 19005-1, Level B conformance; — “PDF/A-2” – a synonym for ISO 19005-2; — “PDF/A-2a” – a synonym for ISO 19005-2, Level A conformance; — “PDF/A-2b” – a synonym for ISO 19005-2, Level B conformance; — “PDF/A-2u” – a synonym for ISO 19005-2, Level U conformance; — “PDF/A-3” – a synonym for ISO 19005-3; — “PDF/A-3a” – a synonym for ISO 19005-3, Level A conformance; — “PDF/A-3b” – a synonym for ISO 19005-3, Level B conformance; — “PDF/A-3u” – a synonym for ISO 19005-3, Level U conformance.

Level A StreamEDS does not support level A, the most strict, of compliance. See below for a more detailed explanation. This level of compliance encompasses all the requirements in ISO 19005-*.

Level B This conformance level encompasses the requirements of ISO 19005 regarding the visual appearance of electronic documents, but not those regarding their structural and semantic properties nor the requirement that all text have Unicode equivalents. StreamEDS supports PDF/A-1(2)B.

- 64 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 65: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

Level U This conformance level encompasses the requirements regarding the visual appearance of electronic documents, together with their requirement that all text in the document have Unicode equivalents. Simply put, this level of compliance is Level B plus Unicode Equivalents, and falls in between A and B.

StreamEDS Supported Conformance Levels StreamEDS supports: PDF/A-1b PDF/A-2b PDF/A-2u StreamEDS does not support PDF/A-1a (or 2a) because it is required to embed information about the logical structure of a document that StreamEDS doesn’t have access to when generating the PDF. For instance, it recommends that pagination artifacts such as page numbers be marked as such. It strongly recommends that formatting elements such as tables, table headers, table cells, and more be marked.

In short, PDF/A-1a (2a) documents should have everything a document would need to feed a formatting engine. Given that inputs into the StreamEDS process are a rendered document, StreamEDS doesn’t have access to any of that information. TargetStream currently does not have any plans to support PDF/A-1a (2a) at this time.

TargetStream does not currently support any of the PDF/A-3* conformance levels. For more information regarding PDF/A-3* please contact TargetStream at [email protected].

StreamEDS Implementation (workflow instructions/examples) To create a PDF/A document in StreamEDS a flag will need to be set in the pdfOut sink. (see chapter 7 for definitions on workflows) Examples are below. Inside the pdfOut sink you may use “Context-sensitive help” by pressing ctrl+space to aid in bringing up the proper formatting for the PDF/A node inside the pdfOut sink. The two screenshots below show using the context-sensitive help to find the <pdfa> node as well as the acceptable values to input into it. <pdfOut version="1.0">

<stream>${ctx.output}</stream> <compression>MEDIUM</compression> <autoRotate>true</autoRotate>

- 65 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 66: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

<renderThreads>2</renderThreads> <pdfA>ONE_B</pdfA>

</pdfOut>

- 66 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 67: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

Validation One way to check a PDF for PDF/A is through one of Adobe’s PDF viewer/editors. When opening a PDF claiming compliance to one of the PDF/A standards the left side bar contains a “Standards” tab. The one selected in the screenshot below. The icon looks like a page with a dog ear, a small box in the top left, and a circle i in the bottom right. Clicking this tab, as seen in the screenshot below of Acrobat Pro, brings up the details of the claimed compliance. You are not able to verify PDF/A compliance of the document in Acrobat Reader, but verification is available in Acrobat Professional.

- 67 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 68: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

Instructional Videos

Installing Workbench for the first time on Windows ● Brief demonstration of how to install workbench via the installer on Windows.

Importing a New License Key ● Brief demonstration on how to import a new license key into StreamEDS

Workbench

How to Deploy and Run From Command Line ● Demonstrates how to deploy StreamEDS from the GUI and then run StreamEDS

headless from the command line.

Resolving AFP Resources ● Demonstrates various ways to resolve missing AFP resources.

How To Import Sample Eclipse Project ● Demonstrates how to import the sample project contained in StreamEDS into

Eclipse.

How To Map a Font ● Demonstrates the process to map a font in an AFP.

Creating Resource Set Versions ● Demonstrates how to create resource set versions.

- 68 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 69: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

Resource Set Versions ● Demonstrates how resource set versions work, using the example of like named

resources.

Deploying With Like Named Resources ● Demonstrates how to deploy StreamEDS with multiple resource set versions

containing like named resources.

- 69 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 70: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

Appendix A: THIRD PARTY License GRANT.

A.1 Apache Software License 2.0

Acknowledgement Certain features or functionality of Licensor’s software may invoke modules, routines, or software developed by entities that license their software or components under the Apache Software License 2.0.

License Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical

- 70 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 71: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual,

- 71 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 72: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside

- 72 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 73: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill,

- 73 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 74: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

- 74 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 75: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

- 75 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 76: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

A.2 Bouncy Castle

Acknowledgement Certain features or functionality of Licensor’s software may invoke modules or routines of software developed by Bouncy Castle.

License Copyright (c) 2000 - 2011 The Legion Of The Bouncy Castle (http://www.bouncycastle.org) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. http://www.bouncycastle.org/licence.html

- 76 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 77: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

A.3 Groovy

Acknowledgement Certain features or functionality of Licensor’s software may invoke modules or routines of software developed by The Groovy community. ========================================================================= == NOTICE file corresponding to the section 4 d of ==

== the Apache License, Version 2.0, ==

== in this case for the Groovy Language distribution. ==

=========================================================================

Groovy Language Copyright 2003-2011 The respective authors and developers This product includes software developed by The Groovy community (http://groovy.codehaus.org/).

License http://groovy.codehaus.org/License+Information Groovy is licensed under the Apache 2 license, refer to section A.1: http://www.apache.org/licenses/LICENSE-2.0.html

- 77 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 78: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

A.4 ANTLR

Acknowledgement Certain features or functionality of Licensor’s software may invoke modules or routines of the ANTLRsoftware.

License SOFTWARE RIGHTS ANTLR 1989-2006 Developed by Terence Parr Partially supported by University of San Francisco & jGuru.com We reserve no legal rights to the ANTLR--it is fully in the public domain. An individual or company may do whatever they wish with source code distributed with ANTLR or the code generated by ANTLR, including the incorporation of ANTLR, or its output, into commerical software. We encourage users to develop software with ANTLR. However, we do ask that credit is given to us for developing ANTLR. By "credit", we mean that if you use ANTLR or incorporate any source code into one of your programs (commercial product, research project, or otherwise) that you acknowledge this fact somewhere in the documentation, research report, etc... If you like ANTLR and have developed a nice tool with the output, please mention that you developed it using ANTLR. In addition, we ask that the headers remain intact in our source code. As long as these guidelines are kept, we expect to continue enhancing this system and expect to make other tools available as they are completed. The primary ANTLR guy: Terence Parr [email protected] [email protected]

- 78 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 79: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

A.5 ASM

Acknowledgement Certain features or functionality of Licensor’s software may invoke modules or routines of software developed by ASM.

License http://asm.objectweb.org/ ASM: a very small and fast Java bytecode manipulation framework Copyright (c) 2000-2005 INRIA, France Telecom All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holders nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

- 79 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 80: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

A.6 CLI

Acknowledgement Certain features or functionality of Licensor’s software may invoke modules or routines of software developed by CLI.

License CLI is licensed under the Apache 2 license, refer to section A.1: http://www.apache.org/licenses/LICENSE-2.0.html

- 80 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 81: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

A.7 JSSR

Acknowledgement Certain features or functionality of Licensor’s software may invoke modules or routines of software developed by JSSR.

License The following notice applies to the files: src/main/org/codehaus/groovy/jsr223/GroovyCompiledScript.java src/main/org/codehaus/groovy/jsr223/GroovyScriptEngineFactory.java src/main/org/codehaus/groovy/jsr223/GroovyScriptEngineImpl.java Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of the Sun Microsystems nor the names of is contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCEOR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

- 81 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 82: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

A.8 Woodstox

Acknowledgement Certain features or functionality of Licensor’s software may invoke modules or routines of the Woodstox software.

License Woodstox uses the Apache 2.0 License, refer to section A.1.

- 82 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 83: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

A.9 Eclipse and Eclipse RCP

Acknowledgement Certain features or functionality of Licensor’s software may invoke modules or routines from the Eclipse and Eclipse RCP. Eclipse is a multi-language software development environment comprising an integrated development environment (IDE) and an extensible plug-in system. It is written mostly in Java and can be used to develop applications in Java and, by means of various plug-ins, other programming languages including Ada, C, C++, COBOL, Perl, PHP, Python, R. Ruby (including Ruby on Rails framework), Scala, Clojure, and Scheme. It can also be used to develop packages for the software Mathematica. The IDE is often called Eclipse ADT (Ada Development Toolkit) for Ada, Eclipse CDT for C/C++, Eclipse JDT for Java, and Eclipse PDT for PHP. The initial codebase originated from VisualAge.[1] In its default form it is meant for Java developers, consisting of the Java Development Tools (JDT). Users can extend its abilities by installing plug-ins written for the Eclipse software framework, such as development toolkits for other programming languages, and can write and contribute their own plug-in modules. Released under the terms of the Eclipse Public License, Eclipse is free and open source software. Rich Client Platform Eclipse provides the Eclipse Rich Client Platform (RCP) for developing general purpose applications. The following components constitute the rich client platform: Equinox OSGi – a standard bundling framework Core platform – boot Eclipse, run plug-ins Standard Widget Toolkit (SWT) – a portable widget toolkit JFace – viewer classes to bring model view controller programming to SWT, file buffers, text handling, text editors Eclipse Workbench – views, editors, perspectives, wizards

License Eclipse was originally released under the Common Public License, but was later relicensed under the Eclipse Public License. The Free Software Foundation has said that both licenses are free software licenses The Eclipse Public License (EPL) is an open source software license used by the Eclipse Foundation for its software. It replaces the Common Public License (CPL) and removes certain terms relating to litigations related to patents.[4] The Eclipse Public License is designed to be a business-friendly free software license and features weaker copy left provisions than contemporary licenses such as the GNU General Public License (GPL). The receiver of EPL-licensed programs can use, modify, copy and distribute the work and modified versions, in some cases being obligated to release their own changes.[5]

- 83 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 84: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

The EPL is approved by the Open Source Initiative (OSI)[3] and is listed as a "free software license" by the Free Software Foundation (FSF).[2] From the EPL FAQ: (http://www.eclipse.org/legal/eplfaq.php) 15. Can I take a Program licensed under the EPL, compile it without modification, and commercially license the result? Yes. You may compile a Program licensed under the EPL without modification and commercially license the result in accordance with the terms of the EPL. 17 When I incorporate a portion of a Program licensed under the EPL into my own proprietary product distributed in object code form, can I use a single license for the full product, in other words, covering the portion of the Program plus my own code? Yes. The object code for the product may be distributed under a single license

- 84 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 85: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

A.10 JAI_CORE, JAI_CODEC

Acknowledgement Certain features or functionality of Licensor’s software may invoke modules or routines of the Java Advanced Imaging software.

License http://download.java.net/media/jai/builds/release/1_1_3/LICENSE-jai.txt Sun Microsystems, Inc. Binary Code License Agreement JAVA ADVANCED IMAGING API, VERSION 1.1.3 READ THE TERMS OF THIS AGREEMENT AND ANY PROVIDED SUPPLEMENTAL LICENSE TERMS (COLLECTIVELY "AGREEMENT") CAREFULLY BEFORE OPENING THE SOFTWARE MEDIA PACKAGE. BY OPENING THE SOFTWARE MEDIA PACKAGE, YOU AGREE TO THE TERMS OF THIS AGREEMENT. IF YOU ARE ACCESSING THE SOFTWARE ELECTRONICALLY, INDICATE YOUR ACCEPTANCE OF THESE TERMS BY SELECTING THE "ACCEPT" BUTTON AT THE END OF THIS AGREEMENT. IF YOU DO NOT AGREE TO ALL THESE TERMS, PROMPTLY RETURN THE UNUSED SOFTWARE TO YOUR PLACE OF PURCHASE FOR A REFUND OR, IF THE SOFTWARE IS ACCESSED ELECTRONICALLY, SELECT THE "DECLINE" BUTTON AT THE END OF THIS AGREEMENT. 1. LICENSE TO USE. Sun grants you a non-exclusive and non-transferable license for the internal use only of the accompanying software and documentation and any error corrections provided by Sun (collectively "Software"), by the number of users and the class of computer hardware for which the corresponding fee has been paid. 2. RESTRICTIONS. Software is confidential and copyrighted. Title to Software and all associated intellectual property rights is retained by Sun and/or its licensors. Except as specifically authorized in any Supplemental License Terms, you may not make copies of Software, other than a single copy of Software for archival purposes. Unless enforcement is prohibited by applicable law, you may not modify, decompile, or reverse engineer Software. Licensee acknowledges that Software is not designed or intended for use in the design, construction,

- 85 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 86: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

operation or maintenance of any nuclear facility. Sun Microsystems, Inc. disclaims any express or implied warranty of fitness for such uses. No right, title or interest in or to any trademark, service mark, logo or trade name of Sun or its licensors is granted under this Agreement. 3. LIMITED WARRANTY. Sun warrants to you that for a period of ninety (90) days from the date of purchase, as evidenced by a copy of the receipt, the media on which Software is furnished (if any) will be free of defects in materials and workmanship under normal use. Except for the foregoing, Software is provided "AS IS". Your exclusive remedy and Sun's entire liability under this limited warranty will be at Sun's option to replace Software media or refund the fee paid for Software. 4. DISCLAIMER OF WARRANTY. UNLESS SPECIFIED IN THIS AGREEMENT, ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT THESE DISCLAIMERS ARE HELD TO BE LEGALLY INVALID. 5. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF OR RELATED TO THE USE OF OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. In no event will Sun's liability to you, whether in contract, tort (including negligence), or otherwise, exceed the amount paid by you for Software under this Agreement. The foregoing limitations will apply even if the above stated warranty fails of its essential purpose. 6. Termination. This Agreement is effective until terminated. You may terminate this Agreement at any time by destroying all copies of Software. This Agreement will terminate immediately without notice from Sun if you fail to comply with any provision of this Agreement. Upon Termination, you must destroy all copies of Software. 7. Export Regulations. All Software and technical data delivered under this Agreement are subject to US export control laws and may be subject to export or import regulations in other countries. You agree to comply strictly with all such laws and regulations and acknowledge that you have the responsibility to obtain such licenses to export, re-export, or import as may be required after delivery to

- 86 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 87: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

you. 8. U.S. Government Restricted Rights. If Software is being acquired by or on behalf of the U.S. Government or by a U.S. Government prime contractor or subcontractor (at any tier), then the Government's rights in Software and accompanying documentation will be only as set forth in this Agreement; this is in accordance with 48 CFR 227.7201 through 227.7202-4 (for Department of Defense (DOD) acquisitions) and with 48 CFR 2.101 and 12.212 (for non-DOD acquisitions). 9. Governing Law. Any action related to this Agreement will be governed by California law and controlling U.S. federal law. No choice of law rules of any jurisdiction will apply. 10. Severability. If any provision of this Agreement is held to be unenforceable, this Agreement will remain in effect with the provision omitted, unless omission would frustrate the intent of the parties, in which case this Agreement will immediately terminate. 11. Integration. This Agreement is the entire agreement between you and Sun relating to its subject matter. It supersedes all prior or contemporaneous oral or written communications, proposals, representations and warranties and prevails over any conflicting or additional terms of any quote, order, acknowledgment, or other communication between the parties relating to its subject matter during the term of this Agreement. No modification of this Agreement will be binding, unless in writing and signed by an authorized representative of each party. JAVA ADVANCED IMAGING, VERSION 1.1.3 SUPPLEMENTAL LICENSE TERMS These supplemental license terms ("Supplemental Terms") add to or modify the terms of the Binary Code License Agreement (collectively, the "Agreement"). Capitalized terms not defined in these Supplemental Terms shall have the same meanings ascribed to them in the Agreement. These Supplemental Terms shall supersede any inconsistent or conflicting terms in the Agreement, or in any license contained within the Software. 1. Software Internal Use and Development License Grant. Subject to the terms and conditions of this Agreement, including, but not limited to Section 3 (Java Technology Restrictions) of these Supplemental Terms, Sun grants you a non-exclusive, non-transferable, limited license to reproduce internally and use internally the binary form of the Software, complete and unmodified, for the sole

- 87 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 88: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

purpose of designing, developing and testing your Java applets and applications ("Programs"). 2. License to Distribute Software. In addition to the license granted in Section 1 (Software Internal Use and Development License Grant) of these Supplemental Terms, subject to the terms and conditions of this Agreement, including but not limited to, Section 3 (Java Technology Restrictions) of these Supplemental Terms, Sun grants you a non-exclusive, non-transferable, limited license to reproduce and distribute the Software in binary code form only, provided that you (i) distribute the Software complete and unmodified and only bundled as part of your Programs, (ii) do not distribute additional software intended to replace any component(s) of the Software, (iii) do not remove or alter any proprietary legends or notices contained in the Software, (iv) only distribute the Software subject to a license agreement that protects Sun's interests consistent with the terms contained in this Agreement, and (v) agree to defend and indemnify Sun and its licensors from and against any damages, costs, liabilities, settlement amounts and/or expenses (including attorneys' fees) incurred in connection with any claim, lawsuit or action by any third party that arises or results from the use or distribution of any and all Programs and/or Software. 3. Java Technology Restrictions. You may not modify the Java Platform Interface ("JPI", identified as classes contained within the "java" package or any subpackages of the "java" package), by creating additional classes within the JPI or otherwise causing the addition to or modification of the classes in the JPI. In the event that you create an additional class and associated API(s) which (i) extends the functionality of the Java platform, and (ii) is exposed to third party software developers for the purpose of developing additional software which invokes such additional API, you must promptly publish broadly an accurate specification for such API for free use by all developers. You may not create, or authorize your licensees to create additional classes, interfaces, or subpackages that are in any way identified as "java", "javax", "sun" or similar convention as specified by Sun in any naming convention designation. 4. Java Runtime Availability. Refer to the appropriate version of the Java Runtime Environment binary code license (currently located at http://www.java.sun.com/jdk/index.html) for the availability of runtime code which may be distributed with Java applets and applications. 5. Trademarks and Logos. You acknowledge and agree as between you and Sun that Sun owns the SUN, SOLARIS, JAVA, JINI, FORTE, and iPLANET trademarks and all SUN, SOLARIS, JAVA, JINI, FORTE, and iPLANET-related trademarks, service marks, logos and other brand designations ("Sun Marks"), and you agree to comply with the Sun Trademark and Logo Usage Requirements currently located at http://www.sun.com/policies/trademarks. Any use you make

- 88 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 89: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

of the Sun Marks inures to Sun's benefit. 6. Source Code. Software may contain source code that is provided solely for reference purposes pursuant to the terms of this Agreement. Source code may not be redistributed unless expressly provided for in this Agreement. 7. Termination for Infringement. Either party may terminate this Agreement immediately should any Software become, or in either party's opinion be likely to become, the subject of a claim of infringement of any intellectual property right. 8. Third Party Code. Additional copyright notices and license terms applicable to portions of the Software are set forth in the THIRDPARTYLICENSEREADME. In addition to any terms and conditions of any third party open source/freeware license identified in the THIRDPARTYLICENSEREADME, the disclaimer of warranty and limitation of liability provisions in paragraphs 5 and 6 of the Binary Code License Agreement shall apply to all Software in this distribution. For inquiries please contact: Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, California 95054, U.S.A (LFI#143342/Form ID#011801)

- 89 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 90: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

A.11 JAI_IMAGEIO

Acknowledgement Certain features or functionality of Licensor’s software may invoke modules or routines of the JAI_IMAGEIO software.

License http://download.java.net/media/jai-imageio/builds/release/1.1/LICENSE-jai_imageio.txt Sun Microsystems, Inc. ("Sun") ENTITLEMENT for SOFTWARE

Licensee/Company: Entity receiving Software.

Effective Date: Date of delivery of the Software to You.

Software: Java Advanced Imaging Image I/O Tools 1.1.

License Term: Perpetual (subject to termination under the SLA).

Licensed Unit: Software Copy.

Licensed unit Count: Unlimited.

Permitted Uses:

1. You may reproduce and use the Software for Your own Individual,

Commercial and Research and Instructional Use only for the purposes

of designing, developing, testing, and running Your applets and

applications ("Programs").

2. Subject to the terms and conditions of this Agreement and

restrictions and exceptions set forth in the Software's

documentation, You may reproduce and distribute portions of

Software identified as a redistributable in the documentation (each

a "Redistributable"), provided that You comply with the following

(note that You may be entitled to reproduce and distribute other

portions of the Software not defined in the documentation as a

Redistributable under certain other licenses as described in the

THIRDPARTYLICENSEREADME, if applicable):

(a) You distribute Redistributable complete and unmodified and only

bundled as part of Your Programs,

(b) Your Programs add significant and primary functionality to the

Redistributable,

(c) You distribute Redistributable for the sole purpose of running

Your Programs,

(d) You do not distribute additional software intended to replace

any

component(s) of the Redistributable,

- 90 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 91: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

(e) You do not remove or alter any proprietary legends or notices

contained in or on the Redistributable.

(f) You only distribute the Redistributable subject to a license

agreement that protects Sun's interests consistent with the terms

contained in this

Agreement, and

(g) You agree to defend and indemnify Sun and its licensors from

and against any damages, costs, liabilities, settlement amounts

and/or expenses (including attorneys' fees) incurred in connection

with any claim, lawsuit or action by any third party that arises or

results from the use or distribution of any and all Programs and/or

Redistributable.

3. Java Technology Restrictions. You may not create, modify, or

change the behavior of, or authorize Your licensees to create,

modify, or change the behavior of, classes, interfaces, or

subpackages that are in any way identified as "java", "javax",

"sun" or similar convention as specified by Sun in any naming

convention designation.

Sun Microsystems, Inc. ("Sun")

SOFTWARE LICENSE AGREEMENT

READ THE TERMS OF THIS AGREEMENT ("AGREEMENT") CAREFULLY BEFORE

OPENING SOFTWARE MEDIA PACKAGE. BY OPENING SOFTWARE MEDIA PACKAGE,

YOU AGREE TO THE TERMS OF THIS AGREEMENT. IF YOU ARE ACCESSING

SOFTWARE ELECTRONICALLY, INDICATE YOUR ACCEPTANCE OF THESE TERMS BY

SELECTING THE "ACCEPT" BUTTON AT THE END OF THIS AGREEMENT. IF YOU

DO NOT AGREE TO ALL OF THE TERMS, PROMPTLY RETURN THE UNUSED

SOFTWARE TO YOUR PLACE OF PURCHASE FOR A REFUND OR, IF SOFTWARE IS

ACCESSED ELECTRONICALLY, SELECT THE "DECLINE" (OR "EXIT") BUTTON AT

THE END OF THIS AGREEMENT. IF YOU HAVE SEPARATELY AGREED TO LICENSE

TERMS ("MASTER TERMS") FOR YOUR LICENSE TO THIS SOFTWARE, THEN

SECTIONS 1-6 OF THIS AGREEMENT ("SUPPLEMENTAL LICENSE TERMS") SHALL

SUPPLEMENT AND SUPERSEDE THE MASTER TERMS IN RELATION TO THIS

SOFTWARE.

1. Definitions.

(a) "Entitlement" means the collective set of applicable

documents authorized by Sun evidencing your obligation to pay

associated fees (if any) for the license, associated Services, and

the authorized scope of use of Software under this Agreement.

(b) "Licensed Unit" means the unit of measure by which your

use of Software and/or Service is licensed, as described in your

Entitlement.

- 91 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 92: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

(c) "Permitted Use" means the licensed Software use(s)

authorized in this Agreement as specified in your Entitlement. The

Permitted Use for any bundled Sun software not specified in your

Entitlement will be evaluation use as provided in Section 3.

(d) "Service" means the service(s) that Sun or its delegate

will provide, if any, as selected in your Entitlement and as

further described in the applicable service listings at

www.sun.com/service/servicelist.

(e) "Software" means the Sun software described in your

Entitlement. Also, certain software may be included for evaluation

use under Section 3.

(f) "You" and "Your" means the individual or legal entity

specified in the Entitlement, or for evaluation purposes, the

entity performing the evaluation.

2. License Grant and Entitlement.

Subject to the terms of your Entitlement, Sun grants you a

nonexclusive, nontransferable limited license to use Software for

its Permitted Use for the license term. Your Entitlement will

specify (a) Software licensed, (b) the Permitted Use, (c) the

license term, and (d) the Licensed Units.

Additionally, if your Entitlement includes Services, then it will

also specify the (e) Service and (f) service term.

If your rights to Software or Services are limited in duration and

the date such rights begin is other than the purchase date, your

Entitlement will provide that beginning date(s).

The Entitlement may be delivered to you in various ways depending

on the manner in which you obtain Software and Services, for

example, the Entitlement may be provided in your receipt, invoice

or your contract with Sun or authorized Sun reseller. It may also

be in electronic format if you download Software.

3. Permitted Use.

As selected in your Entitlement, one or more of the following

Permitted Uses will apply to your use of Software. Unless you have

an Entitlement that expressly permits it, you may not use Software

for any of the other Permitted Uses. If you don't have an

Entitlement, or if your Entitlement doesn't cover additional

software delivered to you, then such software is for your

Evaluation Use.

(a) Evaluation Use. You may evaluate Software internally for a

period of 90 days from your first use.

- 92 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 93: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

(b) Research and Instructional Use. You may use Software internally

to design, develop and test, and also to provide instruction on

such uses.

(c) Individual Use. You may use Software internally for personal,

individual use.

(d) Commercial Use. You may use Software internally for your own

commercial purposes.

(e) Service Provider Use. You may make Software functionality

accessible (but not by providing Software itself or through

outsourcing services) to your end users in an extranet deployment,

but not to your affiliated companies or to government agencies.

4. Licensed Units.

Your Permitted Use is limited to the number of Licensed Units

stated in your Entitlement. If you require additional Licensed

Units, you will need additional Entitlement(s).

5. Restrictions.

(a) The copies of Software provided to you under this Agreement are

licensed, not sold, to you by Sun. Sun reserves all rights not

expressly granted. (b) You may make a single archival copy of

Software, but otherwise may not copy, modify, or distribute

Software. However if the Sun documentation accompanying Software

lists specific portions of Software, such as header files, class

libraries, reference source code, and/or redistributable files,

that may be handled differently, you may do so only as provided in

the Sun documentation. (c) You may not rent, lease, lend or

encumber Software. (d) Unless enforcement is prohibited by

applicable law, you may not decompile, or reverse engineer

Software. (e) The terms and conditions of this Agreement will apply

to any Software updates, provided to you at Sun's discretion, that

replace and/or supplement the original Software, unless such update

contains a separate license. (f) You may not publish or provide the

results of any benchmark or comparison tests run on Software to any

third party without the prior written consent of Sun. (g) Software

is confidential and copyrighted. (h) Unless otherwise specified, if

Software is delivered with embedded or bundled software that

enables functionality of Software, you may not use such software on

a stand-alone basis or use any portion of such software to

interoperate with any program(s) other than Software. (i) Software

may contain programs that perform automated collection of system

data and/or automated software updating services. System data

collected through such programs may be used by Sun, its

subcontractors, and its service delivery partners for the purpose

of providing you with remote system services and/or improving Sun's

software and systems. (j) Software is not designed, licensed or

intended for use in the design, construction, operation or

- 93 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 94: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

maintenance of any nuclear facility and Sun and its licensors

disclaim any express or implied warranty of fitness for such uses.

(k) No right, title or interest in or to any trademark, service

mark, logo or trade name of Sun or its licensors is granted under

this Agreement.

6. Term and Termination.

The license and service term are set forth in your Entitlement(s).

Your rights under this Agreement will terminate immediately without

notice from Sun if you materially breach it or take any action in

derogation of Sun's and/or its licensors' rights to Software. Sun

may terminate this Agreement should any Software become, or in

Sun's reasonable opinion likely to become, the subject of a claim

of intellectual property infringement or trade secret

misappropriation. Upon termination, you will cease use of, and

destroy, Software and confirm compliance in writing to Sun.

Sections 1, 5, 6, 7, and 9-15 will survive termination of the

Agreement.

7. Java Compatibility and Open Source.

Software may contain Java technology. You may not create additional

classes to, or modifications of, the Java technology, except under

compatibility requirements available under a separate agreement

available at www.java.net.

Sun supports and benefits from the global community of open source

developers, and thanks the community for its important

contributions and open standards-based technology, which Sun has

adopted into many of its products.

Please note that portions of Software may be provided with notices

and open source licenses from such communities and third parties

that govern the use of those portions, and any licenses granted

hereunder do not alter any rights and obligations you may have

under such open source licenses, however, the disclaimer of

warranty and limitation of liability provisions in this Agreement

will apply to all Software in this distribution.

8. Limited Warranty.

Sun warrants to you that for a period of 90 days from the date of

purchase, as evidenced by a copy of the receipt, the media on which

Software is furnished (if any) will be free of defects in materials

and workmanship under normal use. Except for the foregoing,

Software is provided "AS IS". Your exclusive remedy and Sun's

entire liability under this limited warranty will be at Sun's

option to replace Software media or refund the fee paid for

Software. Some states do not allow limitations on certain implied

warranties, so the above may not apply to you. This limited

warranty gives you specific legal rights. You may have others,

- 94 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 95: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

which vary from state to state.

9. Disclaimer of Warranty.

UNLESS SPECIFIED IN THIS AGREEMENT, ALL EXPRESS OR IMPLIED

CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED

WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR

NON-INFRINGEMENT ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT THESE

DISCLAIMERS ARE HELD TO BE LEGALLY INVALID.

10. Limitation of Liability.

TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT WILL SUN OR ITS

LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR

SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES,

HOWEVER CAUSED REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT

OF OR RELATED TO THE USE OF OR INABILITY TO USE SOFTWARE, EVEN IF

SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. In no

event will Sun's liability to you, whether in contract, tort

(including negligence), or otherwise, exceed the amount paid by you

for Software under this Agreement. The foregoing limitations will

apply even if the above stated warranty fails of its essential

purpose. Some states do not allow the exclusion of incidental or

consequential damages, so some of the terms above may not be

applicable to you.

11. Export Regulations.

All Software, documents, technical data, and any other materials

delivered under this Agreement are subject to U.S. export control

laws and may be subject to export or import regulations in other

countries. You agree to comply strictly with these laws and

regulations and acknowledge that you have the responsibility to

obtain any licenses to export, re-export, or import as may be

required after delivery to you.

12. U.S. Government Restricted Rights.

If Software is being acquired by or on behalf of the U.S.

Government or by a U.S. Government prime contractor or

subcontractor (at any tier), then the Government's rights in

Software and accompanying documentation will be only as set forth

in this Agreement; this is in accordance with 48 CFR 227.7201

through 227.7202-4 (for Department of Defense (DOD) acquisitions)

and with 48 CFR 2.101 and 12.212 (for non-DOD acquisitions).

13. Governing Law.

Any action related to this Agreement will be governed by California

law and controlling U.S. federal law. No choice of law rules of any

jurisdiction will apply.

- 95 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 96: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

14. Severability.

If any provision of this Agreement is held to be unenforceable,

this Agreement will remain in effect with the provision omitted,

unless omission would frustrate the intent of the parties, in which

case this Agreement will immediately terminate.

15. Integration.

This Agreement, including any terms contained in your Entitlement,

is the entire agreement between you and Sun relating to its subject

matter. It supersedes all prior or contemporaneous oral or written

communications, proposals, representations and warranties and

prevails over any conflicting or additional terms of any quote,

order, acknowledgment, or other communication between the parties

relating to its subject matter during the term of this Agreement.

No modification of this Agreement will be binding, unless in

writing and signed by an authorized representative of each party.

Please contact Sun Microsystems, Inc. 4150 Network Circle, Santa

Clara, California 95054 if you have questions.

- 96 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 97: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

A.12 Guice

Acknowledgement Certain features or functionality of Licensor’s software may invoke modules or routines of the Guice software.

License Guice uses the Apache 2.0 License, refer to section A.1. http://code.google.com/p/google-guice/

- 97 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 98: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

A.13 JCommander

Acknowledgement Certain features or functionality of Licensor’s software may invoke modules or routines of the JCommander software.

License JCommander uses the Apache 2.0 License, refer to section A.1. https://github.com/cbeust/jcommander/blob/master/license.txt

- 98 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 99: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

A.14 javax.inject api (JSR-330: Dependency Injection for Java)

Acknowledgement Certain features or functionality of Licensor’s software may invoke modules or routines of the javax.inject api (JSR-330: Dependency Injection for Java)software.

License javax.inject api uses the Apache 2.0 License, refer to section A.1. Copyright (C) 2009 The JSR-330 Expert Group. Licensed under the Apache License, Version 2.0.

- 99 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 100: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

A.15 Guava

Acknowledgement Certain features or functionality of Licensor’s software may invoke modules or routines of the Guava software.

License Guava uses the Apache 2.0 License, refer to section A.1. http://code.google.com/p/guava-libraries/

- 100 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 101: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

A.16 JGit

Acknowledgement Certain features or functionality of Licensor’s software may invoke modules or routines of the JGit software.

License http://www.eclipse.org/jgit/ This program and the accompanying materials are made available under the terms of the Eclipse Distribution License v1.0 which accompanies this distribution, is reproduced below, and is available at http://www.eclipse.org/org/documents/edl-v10.php All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither the name of the Eclipse Foundation, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,

- 101 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 102: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

- 102 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 103: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

A.17 PRTree

Acknowledgement Certain features or functionality of Licensor’s software may invoke modules or routines of the PRTree software.

License Copyright (c) 2008-2012 Robert Olofsson. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the authors nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY

- 103 - Copyright © 2003-2020 TargetStream Technologies Inc.

Page 104: S t r e a mE D S : Us e r s Gu id e

StreamEDS Users Guide TargetStream Technologies Inc.

OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

- 104 - Copyright © 2003-2020 TargetStream Technologies Inc.