jPod

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » PDF » jPod 
jPod
License:BSD License
URL:http://sourceforge.net/projects/jpodlib/
Description:jPod is a PDF manipulation and rendering library.
Package NameComment
de.intarsys.font
de.intarsys.font.afm
de.intarsys.font.truetype
de.intarsys.pdf.app.acroform This package encapsulates the quite complex logic when filling forms.

This comes to its full power when integrated in a feature rich, JavaScript enabled interactive application. All this features can be made available to jPod via the application level frameworks ( for example for handling appearances and actions).

de.intarsys.pdf.app.action Some application level framework to handle the event mechanics in a PDF document.

Concrete implementations have to be provided by the application itself, as the heavily depend on the applications abilities (JavaScript) and interaction behavior.

de.intarsys.pdf.app.appearance The "framework" for dealing with appearances. This is really needed when later on an interactive/viewer application needs to create appearances. It is here already to satisfy the dependencies from the IFormHandler frameworks.

de.intarsys.pdf.cds CDS (Common Data Structure) defines higher level data structures or types on top of COS types that are used all over the PDF spec.

Examples of such data structures that are no longer COS "primitives" (like strings and numbers) or "composites" (like arrays or dictionaries) but have already domain specific behavior are the date or rectangle object.

The CDS objects are implemented as wrappers on COS objects. Every change is reflected immediately in the implementation (COS) layer and vice versa.

de.intarsys.pdf.content The "content" package contains functionality to work on PDF content streams. Content streams are the PDF way of expressing page or form visual content, expressed using the PDF content stream operators.

Content streams define a page or form content, implemented using COSStreams with a specific format. The stream data is built using a sequence of content stream operators. The stream dictionary additionally contains resources referenced by these operators.

This package contains higher level abstractions of the COSStream representing a content stream, CSContent, CSOperation and CSOperator.

A list of all known CSOperators is provided with CSOperators.

A framework for interpreting content streams is provided with ICSInterpreter and ICSDevice.

de.intarsys.pdf.content.common Some common implementations on PDF content stream.

This is not yet application level but also not pure "specification" level, so we put it here.

The most interesting class is PCContentStreamCreator, allowing to create CSContent via high level API calls. This class is used througout the PDF implementation for clean content construction and even higher level tasks, for example when it comes to cross rendering from HTML.

de.intarsys.pdf.cos This package implements the low level document and its datatypes according to the pdf specification.

Every PDF document is finally composed using COS primitive and composite objects. These objects are aggregated to a COSDocument. The available primitives are

  • Boolean: true or false
  • Name: A special unique string like object, most often used as a key for dictionaries.
  • Fixed: A fixed point real number.
  • Integer: An integer number
  • String: A string object
COS objects are composed using
  • Array: A dynamic indexed collection implementation.
  • Dictionary: A associative (Map) data structure.
Kind of hybrid structure is a
  • Stream: A sequence of bytes, combined with a dictionary with additional information about the stream itself.

This implementation uses a special object representing "null", COSNull. A lookup in a composite will never return an ordinary Java null, always COSNull, so you are never forced to check (obj == null || obj.isFoo()). Another useful convention is the "marshalling" using the "as" flavor of methods. This methods will return either Java "null" or an instance of the requested type. These conventions help around the sometimes lazy implemented data structures of the PDF documents available out there.

In a COS structure, other standalone objects and substructures can be referenced. This is represented using COSIndirectObject. An indirect object is not returned by the standard accessors or iterators from composite COS objects, you will always receive the dereferenced COS object. To access the reference itself, you have to use the "basic" flavor of methods.

Based on these purely technical objects without PDF domain specific behavior the meaningful data types like "Rectangle", "Page" and so on are defined. This is reflected in the framework provided by COSBasedObject, the super class for all PDF domain objects. Only a few are defined directly in the COS level itself, the most of them are found in the "pd" package.

While this seems not to be too complicated, this implementation is a quite complex and powerful one, supporting things like

  • update propagation
  • lazy reading
  • swapping
  • state management (for example for simple undo)
  • preserve COS invariants that in most implementations lead to failures in the resulting documents that are hard to debug, like constraints on containement, identity etc.
de.intarsys.pdf.crypt This package implements the security relevant aspects of the PDF spec.

Performing an encryption from scratch for a document is currently not implemented.

de.intarsys.pdf.encoding This package implements the encodings of the PDF spec.

de.intarsys.pdf.example.annotation.link
de.intarsys.pdf.example.common
de.intarsys.pdf.example.content
de.intarsys.pdf.example.pd.doc
de.intarsys.pdf.example.pd.form
de.intarsys.pdf.example.pd.misc
de.intarsys.pdf.fd A basic implementation of the FDF part of the PDF spec. This is not used very much, so quite incomplete to the moment.

de.intarsys.pdf.filter The filter relevant parts of the PDF spec.

de.intarsys.pdf.font The font part of the PDF is quite large for itself, so it is extracted to a package of its own.

de.intarsys.pdf.font.outlet This package summarizes the handling of fonts. It may be used for example for looking up and create new fonts in the context of a document while rendering new content.

de.intarsys.pdf.parser Everything related to reading PDF and COS data from data streams.

de.intarsys.pdf.pd The higher level building blocks of a PDF document. The PD level objects carry the PDF document semantics like "this is a page" and "this is a image". The PD objects itself are built upon COS objects, sometimes primitives like COSString or COSName, but most often COSDictionary and COSStream.

This implementation is guided by the following rules:

  • META class structure:
    Every PD class is accompanied with a META class defining META information and acting as a factory.
  • Factory creation:
    The PD level object is created or looked up using the factory methods provided by its META class.
  • Identity:
    A PD object is always 1:1 associated with a COSObject.
  • COSObject and Java return types:
    The return types of the PDObject level methods are as follows: All "cos" prefixed methods reference back to the COS level and return COSObjects. All other methods return (or act upon) either higher level data structures like CDS or PD itself or plain Java objects.
  • COSObject, COSNull and plain null:
    All methods with a COSObject in return signature will never return plain Java null, but COSNull. Methods that are already narrowed to a specific subtype, like COSName, will return either an instance of that type or Java null.

de.intarsys.pdf.postscript A simple generated parser/interpreter for PDF embedded postscript.

de.intarsys.pdf.st The storage level semantics of a PDF document.

de.intarsys.pdf.tools.kernel Tool classes for working with the kernel of the PDF implementation.

de.intarsys.pdf.writer Serializing a PDF document.

Serializing currently supports "full" and "incremental" writing.

Somebody around wants to do linearization??

de.intarsys.tools.attribute
de.intarsys.tools.authenticate
de.intarsys.tools.file
de.intarsys.tools.locator
de.intarsys.tools.randomaccess
de.intarsys.tools.string
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.