Details
-
Type: New Feature
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 3.1
-
Fix Version/s: 4.0 - Beta, 4.0
-
Component/s: Core/Parsing
-
Labels:None
-
Environment:All
Description
If anything new is added to a PDF file, or something is modified, we'll have to support appending an incremental update.
Relevant issues:
1. Linearised file becomming unlinearised. We don't support linearisation, and we'd probably want to avoid re-writing the entire file.
2. If existing file uses cross reference streams, should appended section use cross reference stream or xref table? There are also hybrid files that use both.
3. If existing file uses object streams, should new objects go into an object stream (which allows for encryption), or simply write objects directly?
4. When new objects are created, they have to be assigned object numbers, which is something you take from the existing xref table, since it tells you what the next number to use is.
5. Are we only adding objects, or will we be editing and deleting them? This affects the xref writing.
6. If the original document was encrypted, the updated document must also be encrypted.
7. Will save feature be standard or pro feature
A. Know how to write a trailer
B. Know how to write a xref table, and possibly cross reference stream
C. Possibly know how to write an object stream
D. Know how to write whichever object is being added or modified
E. Know how to write a Page object
Relevant issues:
1. Linearised file becomming unlinearised. We don't support linearisation, and we'd probably want to avoid re-writing the entire file.
2. If existing file uses cross reference streams, should appended section use cross reference stream or xref table? There are also hybrid files that use both.
3. If existing file uses object streams, should new objects go into an object stream (which allows for encryption), or simply write objects directly?
4. When new objects are created, they have to be assigned object numbers, which is something you take from the existing xref table, since it tells you what the next number to use is.
5. Are we only adding objects, or will we be editing and deleting them? This affects the xref writing.
6. If the original document was encrypted, the updated document must also be encrypted.
7. Will save feature be standard or pro feature
A. Know how to write a trailer
B. Know how to write a xref table, and possibly cross reference stream
C. Possibly know how to write an object stream
D. Know how to write whichever object is being added or modified
E. Know how to write a Page object
Issue Links
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #19914 | Wed Dec 09 16:15:56 MST 2009 | mark.collette | Fix encryption's conversion between bytes and chars. |
Files Changed | ||||
MODIFY
/icepdf/trunk/icepdf/core/src/org/icepdf/core/pobjects/HexStringObject.java
MODIFY /icepdf/trunk/icepdf/core/src/org/icepdf/core/pobjects/security/StandardEncryption.java MODIFY /icepdf/trunk/icepdf/core/src/org/icepdf/core/util/Utils.java MODIFY /icepdf/trunk/icepdf/core/src/org/icepdf/core/pobjects/LiteralStringObject.java |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #19907 | Wed Dec 09 12:18:25 MST 2009 | mark.collette | Properly write out encrypted PDFs with encrypted strings. Fail fast on java.lang.String. |
Files Changed | ||||
MODIFY
/icepdf/trunk/icepdf/core/src/org/icepdf/core/pobjects/StateManager.java
MODIFY /icepdf/trunk/icepdf/core/src/org/icepdf/core/application/Capabilities.java MODIFY /icepdf/trunk/icepdf/core/src/org/icepdf/core/pobjects/Document.java |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #19871 | Mon Dec 07 09:33:45 MST 2009 | mark.collette | |
Files Changed | ||||
MODIFY
/icepdf/trunk/icepdf/viewer/src/org/icepdf/ri/common/SwingController.java
MODIFY /icepdf/trunk/icepdf/core/src/org/icepdf/core/pobjects/StateManager.java MODIFY /icepdf/trunk/icepdf/core/src/org/icepdf/core/pobjects/annotations/BorderStyle.java ADD /icepdf/trunk/icepdf/core/src/org/icepdf/core/io/CountingOutputStream.java MODIFY /icepdf/trunk/icepdf/core/src/org/icepdf/core/pobjects/PObject.java MODIFY /icepdf/trunk/icepdf/core/src/org/icepdf/core/util/LazyObjectLoader.java MODIFY /icepdf/trunk/icepdf/core/src/org/icepdf/core/pobjects/PTrailer.java ADD /icepdf/trunk/icepdf/core/src/org/icepdf/core/application/Capabilities.java MODIFY /icepdf/trunk/icepdf/core/src/org/icepdf/core/pobjects/Document.java |