origami 1.2.7 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +66 -0
  3. data/README.md +112 -0
  4. data/bin/config/pdfcop.conf.yml +232 -233
  5. data/bin/gui/about.rb +27 -37
  6. data/bin/gui/config.rb +108 -117
  7. data/bin/gui/file.rb +416 -365
  8. data/bin/gui/gtkhex.rb +1138 -1153
  9. data/bin/gui/hexview.rb +55 -57
  10. data/bin/gui/imgview.rb +48 -51
  11. data/bin/gui/menu.rb +388 -386
  12. data/bin/gui/properties.rb +114 -130
  13. data/bin/gui/signing.rb +571 -617
  14. data/bin/gui/textview.rb +77 -95
  15. data/bin/gui/treeview.rb +382 -387
  16. data/bin/gui/walker.rb +227 -232
  17. data/bin/gui/xrefs.rb +56 -60
  18. data/bin/pdf2pdfa +53 -57
  19. data/bin/pdf2ruby +212 -228
  20. data/bin/pdfcop +338 -348
  21. data/bin/pdfdecompress +58 -65
  22. data/bin/pdfdecrypt +56 -60
  23. data/bin/pdfencrypt +75 -80
  24. data/bin/pdfexplode +185 -182
  25. data/bin/pdfextract +201 -218
  26. data/bin/pdfmetadata +83 -82
  27. data/bin/pdfsh +4 -5
  28. data/bin/pdfwalker +1 -2
  29. data/bin/shell/.irbrc +45 -82
  30. data/bin/shell/console.rb +105 -130
  31. data/bin/shell/hexdump.rb +40 -64
  32. data/examples/README.md +34 -0
  33. data/examples/attachments/attachment.rb +38 -0
  34. data/examples/attachments/nested_document.rb +51 -0
  35. data/examples/encryption/encryption.rb +28 -0
  36. data/{samples/actions/triggerevents/trigger.rb → examples/events/events.rb} +13 -16
  37. data/examples/flash/flash.rb +37 -0
  38. data/{samples → examples}/flash/helloworld.swf +0 -0
  39. data/examples/forms/javascript.rb +54 -0
  40. data/examples/forms/xfa.rb +115 -0
  41. data/examples/javascript/hello_world.rb +22 -0
  42. data/examples/javascript/js_emulation.rb +54 -0
  43. data/examples/loop/goto.rb +32 -0
  44. data/examples/loop/named.rb +33 -0
  45. data/examples/signature/signature.rb +65 -0
  46. data/examples/uri/javascript.rb +56 -0
  47. data/examples/uri/open-uri.rb +21 -0
  48. data/examples/uri/submitform.rb +47 -0
  49. data/lib/origami.rb +29 -42
  50. data/lib/origami/3d.rb +350 -225
  51. data/lib/origami/acroform.rb +262 -288
  52. data/lib/origami/actions.rb +268 -288
  53. data/lib/origami/annotations.rb +697 -722
  54. data/lib/origami/array.rb +258 -184
  55. data/lib/origami/boolean.rb +74 -84
  56. data/lib/origami/catalog.rb +397 -434
  57. data/lib/origami/collections.rb +144 -0
  58. data/lib/origami/destinations.rb +233 -194
  59. data/lib/origami/dictionary.rb +253 -232
  60. data/lib/origami/encryption.rb +1274 -1243
  61. data/lib/origami/export.rb +232 -268
  62. data/lib/origami/extensions/fdf.rb +307 -220
  63. data/lib/origami/extensions/ppklite.rb +368 -435
  64. data/lib/origami/filespec.rb +197 -0
  65. data/lib/origami/filters.rb +301 -295
  66. data/lib/origami/filters/ascii.rb +177 -180
  67. data/lib/origami/filters/ccitt.rb +528 -535
  68. data/lib/origami/filters/crypt.rb +26 -35
  69. data/lib/origami/filters/dct.rb +46 -52
  70. data/lib/origami/filters/flate.rb +95 -94
  71. data/lib/origami/filters/jbig2.rb +49 -55
  72. data/lib/origami/filters/jpx.rb +38 -44
  73. data/lib/origami/filters/lzw.rb +189 -183
  74. data/lib/origami/filters/predictors.rb +221 -235
  75. data/lib/origami/filters/runlength.rb +103 -104
  76. data/lib/origami/font.rb +173 -186
  77. data/lib/origami/functions.rb +67 -81
  78. data/lib/origami/graphics.rb +25 -21
  79. data/lib/origami/graphics/colors.rb +178 -187
  80. data/lib/origami/graphics/instruction.rb +79 -85
  81. data/lib/origami/graphics/path.rb +142 -148
  82. data/lib/origami/graphics/patterns.rb +160 -167
  83. data/lib/origami/graphics/render.rb +43 -50
  84. data/lib/origami/graphics/state.rb +138 -153
  85. data/lib/origami/graphics/text.rb +188 -205
  86. data/lib/origami/graphics/xobject.rb +819 -815
  87. data/lib/origami/header.rb +63 -78
  88. data/lib/origami/javascript.rb +596 -597
  89. data/lib/origami/linearization.rb +285 -290
  90. data/lib/origami/metadata.rb +139 -148
  91. data/lib/origami/name.rb +112 -148
  92. data/lib/origami/null.rb +53 -62
  93. data/lib/origami/numeric.rb +162 -175
  94. data/lib/origami/obfuscation.rb +186 -174
  95. data/lib/origami/object.rb +593 -573
  96. data/lib/origami/outline.rb +42 -47
  97. data/lib/origami/outputintents.rb +73 -82
  98. data/lib/origami/page.rb +703 -592
  99. data/lib/origami/parser.rb +238 -290
  100. data/lib/origami/parsers/fdf.rb +41 -33
  101. data/lib/origami/parsers/pdf.rb +75 -95
  102. data/lib/origami/parsers/pdf/lazy.rb +137 -0
  103. data/lib/origami/parsers/pdf/linear.rb +64 -66
  104. data/lib/origami/parsers/ppklite.rb +34 -70
  105. data/lib/origami/pdf.rb +1030 -1005
  106. data/lib/origami/reference.rb +102 -102
  107. data/lib/origami/signature.rb +591 -609
  108. data/lib/origami/stream.rb +668 -551
  109. data/lib/origami/string.rb +397 -373
  110. data/lib/origami/template/patterns.rb +56 -0
  111. data/lib/origami/template/widgets.rb +151 -0
  112. data/lib/origami/trailer.rb +144 -158
  113. data/lib/origami/tree.rb +62 -0
  114. data/lib/origami/version.rb +23 -0
  115. data/lib/origami/webcapture.rb +88 -79
  116. data/lib/origami/xfa.rb +2863 -2882
  117. data/lib/origami/xreftable.rb +472 -384
  118. data/test/dataset/calc.pdf +85 -0
  119. data/test/dataset/crypto.pdf +82 -0
  120. data/test/dataset/empty.pdf +49 -0
  121. data/test/test_actions.rb +27 -0
  122. data/test/test_annotations.rb +90 -0
  123. data/test/test_pages.rb +31 -0
  124. data/test/test_pdf.rb +16 -0
  125. data/test/test_pdf_attachment.rb +34 -0
  126. data/test/test_pdf_create.rb +24 -0
  127. data/test/test_pdf_encrypt.rb +95 -0
  128. data/test/test_pdf_parse.rb +96 -0
  129. data/test/test_pdf_sign.rb +58 -0
  130. data/test/test_streams.rb +182 -0
  131. data/test/test_xrefs.rb +67 -0
  132. metadata +88 -58
  133. data/README +0 -67
  134. data/bin/pdf2graph +0 -121
  135. data/bin/pdfcocoon +0 -104
  136. data/lib/origami/file.rb +0 -233
  137. data/samples/README.txt +0 -45
  138. data/samples/actions/launch/calc.rb +0 -87
  139. data/samples/actions/launch/winparams.rb +0 -22
  140. data/samples/actions/loop/loopgoto.rb +0 -24
  141. data/samples/actions/loop/loopnamed.rb +0 -21
  142. data/samples/actions/named/named.rb +0 -31
  143. data/samples/actions/samba/smbrelay.rb +0 -26
  144. data/samples/actions/webbug/submitform.js +0 -26
  145. data/samples/actions/webbug/webbug-browser.rb +0 -68
  146. data/samples/actions/webbug/webbug-js.rb +0 -67
  147. data/samples/actions/webbug/webbug-reader.rb +0 -90
  148. data/samples/attachments/attach.rb +0 -40
  149. data/samples/attachments/attached.txt +0 -1
  150. data/samples/crypto/crypto.rb +0 -28
  151. data/samples/digsig/signed.rb +0 -46
  152. data/samples/exploits/cve-2008-2992-utilprintf.rb +0 -87
  153. data/samples/exploits/cve-2009-0927-geticon.rb +0 -65
  154. data/samples/exploits/exploit_customdictopen.rb +0 -55
  155. data/samples/exploits/getannots.rb +0 -69
  156. data/samples/flash/flash.rb +0 -31
  157. data/samples/javascript/attached.txt +0 -1
  158. data/samples/javascript/js.rb +0 -52
  159. data/templates/patterns.rb +0 -66
  160. data/templates/widgets.rb +0 -173
  161. data/templates/xdp.rb +0 -92
  162. data/test/ts_pdf.rb +0 -50
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d17b0e4071c2342bd02ad39ac239edc3e185296c
4
- data.tar.gz: ed34fe83604f52063e0340b06e95bce6a2f2c801
3
+ metadata.gz: ce1a44a58ce5b5e21a3279fda0f8195b10820eb7
4
+ data.tar.gz: d47ccde08ad05ece6b5008fcbbf19de9916709d9
5
5
  SHA512:
6
- metadata.gz: 5332359f279fb3e88d28229f1bbd9b361aaeb84724ce3682d296d67b9d1c729c2c8da288a644add7109f7090692dcc669706e907731a308c13f635931c43dea3
7
- data.tar.gz: 1fe6ceb2f9cfff14bd15018bc1c965c43ad01e96d46de67538d58c48d9d8a9c97a7dc9b520aeb9b1e2caa2d9958f3f741406a90d4f7f4ee90e9b01d0f9198e89
6
+ metadata.gz: 064c8a4052fb0a0b471bccb62351be31f00bd6362ed615affb31b0230c0d05b3c35819d7c69576b4c5ccfb203d3eab4187f4aad4b490003a88193c22f7ba377d
7
+ data.tar.gz: 8e6ee0137acfd94f3bb569f0dc6614c59e5aba05ef80a815f241a3b0309b5f8d200a7ffbe40955ac805ad4c7143c1f6709d4f014e3e8ad3afbd60fb6ab51526e
@@ -0,0 +1,66 @@
1
+ 2.0.0
2
+ -----
3
+ * Code reindented to 4 spaces.
4
+ * Code base refactored for Ruby 2.x (requires at least 2.1).
5
+ * Support for Crypt filters.
6
+ * The parser now supports a lazy mode.
7
+ * Fixed all Ruby warnings.
8
+ * Better type propagation.
9
+ * Use namespace refinements to protect the standard namespace.
10
+ * PDF#each_* methods can return Enumerators.
11
+ * Use the colorize gem for console output.
12
+ * Faster loading of objects in pdfwalker.
13
+ * Better handling of cross-references in pdfwalker.
14
+ * Many bug fixes.
15
+
16
+ 1.2.0 (2011-09-29)
17
+ -----
18
+ * Support for JavaScript emulation based on V8 (requires therubyracer gem).
19
+
20
+ 1.1.0 (2011-09-14)
21
+ -----
22
+ * Support for standard security handler revision 6.
23
+
24
+ 1.0.2 (2011-05-25)
25
+ -----
26
+ * Added a Rakefile to run unit tests, build rdoc and build gem.
27
+ * Added a Ruby shell for Origami.
28
+ * Added a bin folder, with some useful command-line tools.
29
+ * Can now be installed as a RubyGem.
30
+ * AESV3 support (AES256 encryption/decryption).
31
+ * Encryption/decryption can be achieved with or without openssl.
32
+ * Changed PDF#encrypt prototype.
33
+ * Support for G3 unidimensional encoding/decoding of CCITTFax filter.
34
+ * Support for TIFF stream predictor functions.
35
+ * Name trees lookup methods.
36
+ * Renamed PDF#saveas to PDF#save.
37
+ * Lot of bug fixes.
38
+
39
+ beta3 (2010-08-26)
40
+ -----
41
+ * Faster decryption process.
42
+ * Properly parse objects with no endobj token.
43
+ * Image viewer in pdfwalker.
44
+
45
+ beta2 (2010-04-01)
46
+ -----
47
+ * Support for Flash/RichMedia integration.
48
+ * XFA forms.
49
+ * Search feature for pdfwalker.
50
+ * Fixed various bugs.
51
+
52
+ beta1 (2009-09-15)
53
+ -----
54
+ * Basic support for graphics drawing as lines, colors, shading, shapes...
55
+ * Support for numerical functions.
56
+ * Support for date strings.
57
+ * Added PDF#insert_page(index, page) method.
58
+ * Added a forms widgets template.
59
+ * Ability to delinearize documents.
60
+ * Fixed various bugs.
61
+
62
+ beta0 (2009-07-06)
63
+ -----
64
+ * Support for XRef streams.
65
+ * Support for Object streams creation.
66
+ * Support for PNG stream predictor functions.
@@ -0,0 +1,112 @@
1
+ Origami
2
+ =====
3
+ [![Gem Version](https://badge.fury.io/rb/origami.svg)](http://rubygems.org/gems/origami)
4
+
5
+ Overview
6
+ --------
7
+
8
+ Origami is a framework written in pure Ruby to manipulate PDF files.
9
+
10
+ It offers the possibility to parse the PDF contents, modify and save the PDF
11
+ structure, as well as creating new documents.
12
+
13
+ Origami supports some advanced features of the PDF specification:
14
+
15
+ * Compression filters with predictor functions
16
+ * Encryption using RC4 or AES, including the undocumented Revision 6 derivation algorithm
17
+ * Digital signatures and Usage Rights
18
+ * File attachments
19
+ * AcroForm and XFA forms
20
+ * Object streams
21
+
22
+ Origami is able to parse PDF, FDF and PPKLite (Adobe certificate store) files.
23
+
24
+ Requirements
25
+ ------------
26
+
27
+ As of version 2, the minimal version required to run Origami is Ruby 2.1.
28
+
29
+ Some optional features require additional gems:
30
+
31
+ * [Gtk2][ruby-gtk2] for running the GUI interface
32
+ * [therubyracer][the-ruby-racer] for JavaScript emulation of PDF scripts
33
+
34
+ [ruby-gtk2]: https://rubygems.org/gems/gtk2
35
+ [the-ruby-racer]: https://rubygems.org/gems/therubyracer
36
+
37
+ Quick start
38
+ -----------
39
+
40
+ First install Origami using the latest gem available:
41
+
42
+ $ gem install origami
43
+
44
+ Then import Origami with:
45
+
46
+ ```ruby
47
+ require 'origami'
48
+ ```
49
+
50
+ To process a PDF document, you can use the ``PDF.read`` method:
51
+
52
+ ```ruby
53
+ pdf = PDF.read "something.pdf"
54
+
55
+ puts "This document has #{pdf.pages.size} page(s)"
56
+ ```
57
+
58
+ The default behavior is to parse the entire contents of the document at once. This can be changed by passing the ``lazy`` flag to parse objects on demand.
59
+
60
+ ```ruby
61
+ pdf = PDF.read "something.pdf", lazy: true
62
+
63
+ pdf.each_page do |page|
64
+ page.each_font do |name, font|
65
+ # ... only parse the necessary bits
66
+ end
67
+ end
68
+ ```
69
+
70
+ You can also create documents directly by instanciating a new PDF object:
71
+
72
+ ```ruby
73
+ pdf = PDF.new
74
+
75
+ pdf.append_page
76
+ pdf.pages.first.write "Hello", size: 30
77
+
78
+ pdf.save("example.pdf")
79
+
80
+ # Another way of doing it
81
+ PDF.write("example.pdf") do |pdf|
82
+ pdf.append_page do |page|
83
+ page.write "Hello", size: 30
84
+ end
85
+ end
86
+ ```
87
+
88
+ Take a look at the [examples](examples) and [bin](bin) directories for some examples of advanced usage.
89
+
90
+ Tools
91
+ -----
92
+
93
+ Origami comes with a set of tools to manipulate PDF documents from the command line.
94
+
95
+ * [pdfcop](bin/pdfcop): Runs some heuristic checks to detect dangerous contents.
96
+ * [pdfdecompress](bin/pdfdecompress): Strips compression filters out of a document.
97
+ * [pdfdecrypt](bin/pdfdecrypt): Removes encrypted contents from a document.
98
+ * [pdfencrypt](bin/pdfencrypt): Encrypts a PDF document.
99
+ * [pdfexplode](bin/pdfexplode): Explodes a document into several documents, each of them having one deleted resource. Useful for reduction of crash cases after a fuzzing session.
100
+ * [pdfextract](bin/pdfextract): Extracts binary resources of a document (images, scripts, fonts, etc.).
101
+ * [pdfmetadata](bin/pdfmetadata): Displays the metadata contained in a document.
102
+ * [pdf2ruby](bin/pdf2ruby): Converts a PDF into an Origami script rebuilding an equivalent document (experimental).
103
+ * [pdfsh](bin/pdfsh): An IRB shell running inside the Origami namespace.
104
+ * [pdfwalker](bin/pdfwalker): A graphical interface to dig into the contents of a PDF document.
105
+
106
+
107
+ License
108
+ -------
109
+
110
+ Origami is distributed under the [LGPL](COPYING.LESSER) license, except for the graphical interface which is distributed under the [GPL](bin/gui/COPYING) license.
111
+
112
+ Copyright © 2016 Guillaume Delugré.
@@ -1,237 +1,236 @@
1
- ---
2
- POLICY_NONE:
3
-
4
- #
5
- # General features.
6
- #
7
- allowParserErrors: true
8
- allowAttachments: true
9
- allowEncryption: true
10
- allowFormCalc: true
11
- allowJSAtOpening: true
12
- allowJS: true
13
- allowAcroForms: true
14
- allowXFAForms: true
15
-
16
- #
17
- # Page annotations.
18
- #
19
- allowAnnotations: true
20
- allow3DAnnotation: true
21
- allowFileAttachmentAnnotation: true
22
- allowMovieAnnotation: true
23
- allowRichMediaAnnotation: true
24
- allowScreenAnnotation: true
25
- allowSoundAnnotation: true
26
-
27
- #
28
- # PDF Actions.
29
- #
30
- allowChainedActions: true
31
- allowOpenAction: true
32
- allowGoTo3DAction: true
33
- allowGoToAction: true
34
- allowGoToEAction: true
35
- allowGoToRAction: true
36
- allowImportDataAction: true
37
- allowJSAction: true
38
- allowLaunchAction: true
39
- allowMovieAction: true
40
- allowNamedAction: true
41
- allowRenditionAction: true
42
- allowRichMediaAction: true
43
- allowSoundAction: true
44
- allowSubmitFormAction: true
45
- allowURIAction: true
46
-
47
- #
48
- # Stream filters.
49
- #
50
- allowASCII85Filter: true
51
- allowASCIIHexFilter: true
52
- allowCCITTFaxFilter: true
53
- allowCryptFilter: true
54
- allowDCTFilter: true
55
- allowFlateFilter: true
56
- allowJBIG2Filter: true
57
- allowJPXFilter: true
58
- allowLZWFilter: true
59
- allowRunLengthFilter: true
60
-
61
- POLICY_STANDARD:
62
-
63
- #
64
- # General features.
65
- #
66
- allowParserErrors: false
67
- allowAttachments: false
68
- allowAcroForms: true
69
- allowEncryption: true
70
- allowFormCalc: true
71
- allowJS: true
72
- allowJSAtOpening: false
73
- allowXFAForms: true
74
-
75
- #
76
- # Page annotations.
77
- #
78
- allowAnnotations: true
79
- allow3DAnnotation: false
80
- allowFileAttachmentAnnotation: false
81
- allowMovieAnnotation: false
82
- allowRichMediaAnnotation: false
83
- allowScreenAnnotation: false
84
- allowSoundAnnotation: false
85
-
86
- #
87
- # PDF Actions.
88
- #
89
- allowChainedActions: true
90
- allowOpenAction: true
91
- allowGoTo3DAction: false
92
- allowGoToAction: true
93
- allowGoToEAction: false
94
- allowGoToRAction: false
95
- allowImportDataAction: false
96
- allowJSAction: true
97
- allowLaunchAction: false
98
- allowMovieAction: false
99
- allowNamedAction: false
100
- allowRenditionAction: false
101
- allowRichMediaAction: false
102
- allowSoundAction: false
103
- allowSubmitFormAction: true
104
- allowURIAction: true
105
-
106
- #
107
- # Stream filters.
108
- #
109
- allowASCII85Filter: false
110
- allowASCIIHexFilter: false
111
- allowCCITTFaxFilter: true
112
- allowCryptFilter: true
113
- allowDCTFilter: true
114
- allowFlateFilter: true
115
- allowJBIG2Filter: false
116
- allowJPXFilter: false
117
- allowLZWFilter: false
118
- allowRunLengthFilter: false
119
-
120
- POLICY_STRONG:
121
-
122
- #
123
- # General features.
124
- #
125
- allowParserErrors: false
126
- allowAttachments: false
127
- allowAcroForms: false
128
- allowEncryption: true
129
- allowFormCalc: true
130
- allowJS: false
131
- allowJSAtOpening: false
132
- allowXFAForms: false
133
-
134
- #
135
- # Page annotations.
136
- #
137
- allowAnnotations: true
138
- allow3DAnnotation: false
139
- allowFileAttachmentAnnotation: false
140
- allowMovieAnnotation: false
141
- allowRichMediaAnnotation: false
142
- allowScreenAnnotation: false
143
- allowSoundAnnotation: false
144
-
145
- #
146
- # PDF Actions.
147
- #
148
- allowChainedActions: false
149
- allowOpenAction: true
150
- allowGoTo3DAction: false
151
- allowGoToAction: true
152
- allowGoToEAction: false
153
- allowGoToRAction: false
154
- allowImportDataAction: false
155
- allowJSAction: false
156
- allowLaunchAction: false
157
- allowMovieAction: false
158
- allowNamedAction: false
159
- allowRenditionAction: false
160
- allowRichMediaAction: false
161
- allowSoundAction: false
162
- allowSubmitFormAction: false
163
- allowURIAction: true
164
-
165
- #
166
- # Stream filters.
167
- #
168
- allowASCII85Filter: false
169
- allowASCIIHexFilter: false
170
- allowCCITTFaxFilter: false
171
- allowCryptFilter: true
172
- allowDCTFilter: true
173
- allowFlateFilter: true
174
- allowJBIG2Filter: false
175
- allowJPXFilter: false
176
- allowLZWFilter: false
177
- allowRunLengthFilter: false
1
+ ---
2
+ POLICY_NONE:
3
+
4
+ #
5
+ # General features.
6
+ #
7
+ allowParserErrors: true
8
+ allowAttachments: true
9
+ allowEncryption: true
10
+ allowFormCalc: true
11
+ allowJSAtOpening: true
12
+ allowJS: true
13
+ allowAcroForms: true
14
+ allowXFAForms: true
15
+
16
+ #
17
+ # Page annotations.
18
+ #
19
+ allowAnnotations: true
20
+ allow3DAnnotation: true
21
+ allowFileAttachmentAnnotation: true
22
+ allowMovieAnnotation: true
23
+ allowRichMediaAnnotation: true
24
+ allowScreenAnnotation: true
25
+ allowSoundAnnotation: true
26
+
27
+ #
28
+ # PDF Actions.
29
+ #
30
+ allowChainedActions: true
31
+ allowOpenAction: true
32
+ allowGoTo3DAction: true
33
+ allowGoToAction: true
34
+ allowGoToEAction: true
35
+ allowGoToRAction: true
36
+ allowImportDataAction: true
37
+ allowJSAction: true
38
+ allowLaunchAction: true
39
+ allowMovieAction: true
40
+ allowNamedAction: true
41
+ allowRenditionAction: true
42
+ allowRichMediaAction: true
43
+ allowSoundAction: true
44
+ allowSubmitFormAction: true
45
+ allowURIAction: true
46
+
47
+ #
48
+ # Stream filters.
49
+ #
50
+ allowASCII85Filter: true
51
+ allowASCIIHexFilter: true
52
+ allowCCITTFaxFilter: true
53
+ allowCryptFilter: true
54
+ allowDCTFilter: true
55
+ allowFlateFilter: true
56
+ allowJBIG2Filter: true
57
+ allowJPXFilter: true
58
+ allowLZWFilter: true
59
+ allowRunLengthFilter: true
60
+
61
+ POLICY_STANDARD:
62
+
63
+ #
64
+ # General features.
65
+ #
66
+ allowParserErrors: false
67
+ allowAttachments: false
68
+ allowAcroForms: true
69
+ allowEncryption: true
70
+ allowFormCalc: true
71
+ allowJS: true
72
+ allowJSAtOpening: false
73
+ allowXFAForms: true
74
+
75
+ #
76
+ # Page annotations.
77
+ #
78
+ allowAnnotations: true
79
+ allow3DAnnotation: false
80
+ allowFileAttachmentAnnotation: false
81
+ allowMovieAnnotation: false
82
+ allowRichMediaAnnotation: false
83
+ allowScreenAnnotation: false
84
+ allowSoundAnnotation: false
85
+
86
+ #
87
+ # PDF Actions.
88
+ #
89
+ allowChainedActions: true
90
+ allowOpenAction: true
91
+ allowGoTo3DAction: false
92
+ allowGoToAction: true
93
+ allowGoToEAction: false
94
+ allowGoToRAction: false
95
+ allowImportDataAction: false
96
+ allowJSAction: true
97
+ allowLaunchAction: false
98
+ allowMovieAction: false
99
+ allowNamedAction: false
100
+ allowRenditionAction: false
101
+ allowRichMediaAction: false
102
+ allowSoundAction: false
103
+ allowSubmitFormAction: true
104
+ allowURIAction: true
105
+
106
+ #
107
+ # Stream filters.
108
+ #
109
+ allowASCII85Filter: false
110
+ allowASCIIHexFilter: false
111
+ allowCCITTFaxFilter: true
112
+ allowCryptFilter: true
113
+ allowDCTFilter: true
114
+ allowFlateFilter: true
115
+ allowJBIG2Filter: false
116
+ allowJPXFilter: false
117
+ allowLZWFilter: false
118
+ allowRunLengthFilter: false
119
+
120
+ POLICY_STRONG:
121
+
122
+ #
123
+ # General features.
124
+ #
125
+ allowParserErrors: false
126
+ allowAttachments: false
127
+ allowAcroForms: false
128
+ allowEncryption: true
129
+ allowFormCalc: true
130
+ allowJS: false
131
+ allowJSAtOpening: false
132
+ allowXFAForms: false
133
+
134
+ #
135
+ # Page annotations.
136
+ #
137
+ allowAnnotations: true
138
+ allow3DAnnotation: false
139
+ allowFileAttachmentAnnotation: false
140
+ allowMovieAnnotation: false
141
+ allowRichMediaAnnotation: false
142
+ allowScreenAnnotation: false
143
+ allowSoundAnnotation: false
144
+
145
+ #
146
+ # PDF Actions.
147
+ #
148
+ allowChainedActions: false
149
+ allowOpenAction: true
150
+ allowGoTo3DAction: false
151
+ allowGoToAction: true
152
+ allowGoToEAction: false
153
+ allowGoToRAction: false
154
+ allowImportDataAction: false
155
+ allowJSAction: false
156
+ allowLaunchAction: false
157
+ allowMovieAction: false
158
+ allowNamedAction: false
159
+ allowRenditionAction: false
160
+ allowRichMediaAction: false
161
+ allowSoundAction: false
162
+ allowSubmitFormAction: false
163
+ allowURIAction: true
164
+
165
+ #
166
+ # Stream filters.
167
+ #
168
+ allowASCII85Filter: false
169
+ allowASCIIHexFilter: false
170
+ allowCCITTFaxFilter: false
171
+ allowCryptFilter: true
172
+ allowDCTFilter: true
173
+ allowFlateFilter: true
174
+ allowJBIG2Filter: false
175
+ allowJPXFilter: false
176
+ allowLZWFilter: false
177
+ allowRunLengthFilter: false
178
178
 
179
179
  POLICY_PARANOID:
180
180
 
181
- #
182
- # General features.
183
- #
184
- allowParserErrors: false
185
- allowAttachments: false
186
- allowAcroForms: false
187
- allowEncryption: false
188
- allowFormCalc: false
189
- allowJS: false
190
- allowJSAtOpening: false
191
- allowXFAForms: false
192
-
193
- #
194
- # Page annotations.
195
- #
196
- allowAnnotations: true
197
- allow3DAnnotation: false
198
- allowFileAttachmentAnnotation: false
199
- allowMovieAnnotation: false
200
- allowRichMediaAnnotation: false
201
- allowScreenAnnotation: false
202
- allowSoundAnnotation: false
203
-
204
- #
205
- # PDF Actions.
206
- #
207
- allowChainedActions: false
208
- allowOpenAction: false
209
- allowGoTo3DAction: false
210
- allowGoToAction: true
211
- allowGoToEAction: false
212
- allowGoToRAction: false
213
- allowImportDataAction: false
214
- allowJSAction: false
215
- allowLaunchAction: false
216
- allowMovieAction: false
217
- allowNamedAction: false
218
- allowRenditionAction: false
219
- allowRichMediaAction: false
220
- allowSoundAction: false
221
- allowSubmitFormAction: false
222
- allowURIAction: false
223
-
224
- #
225
- # Stream filters.
226
- #
227
- allowASCII85Filter: false
228
- allowASCIIHexFilter: false
229
- allowCCITTFaxFilter: false
230
- allowCryptFilter: false
231
- allowDCTFilter: true
232
- allowFlateFilter: true
233
- allowJBIG2Filter: false
234
- allowJPXFilter: false
235
- allowLZWFilter: false
236
- allowRunLengthFilter: false
181
+ #
182
+ # General features.
183
+ #
184
+ allowParserErrors: false
185
+ allowAttachments: false
186
+ allowAcroForms: false
187
+ allowEncryption: false
188
+ allowFormCalc: false
189
+ allowJS: false
190
+ allowJSAtOpening: false
191
+ allowXFAForms: false
192
+
193
+ #
194
+ # Page annotations.
195
+ #
196
+ allowAnnotations: true
197
+ allow3DAnnotation: false
198
+ allowFileAttachmentAnnotation: false
199
+ allowMovieAnnotation: false
200
+ allowRichMediaAnnotation: false
201
+ allowScreenAnnotation: false
202
+ allowSoundAnnotation: false
203
+
204
+ #
205
+ # PDF Actions.
206
+ #
207
+ allowChainedActions: false
208
+ allowOpenAction: false
209
+ allowGoTo3DAction: false
210
+ allowGoToAction: true
211
+ allowGoToEAction: false
212
+ allowGoToRAction: false
213
+ allowImportDataAction: false
214
+ allowJSAction: false
215
+ allowLaunchAction: false
216
+ allowMovieAction: false
217
+ allowNamedAction: false
218
+ allowRenditionAction: false
219
+ allowRichMediaAction: false
220
+ allowSoundAction: false
221
+ allowSubmitFormAction: false
222
+ allowURIAction: false
237
223
 
224
+ #
225
+ # Stream filters.
226
+ #
227
+ allowASCII85Filter: false
228
+ allowASCIIHexFilter: false
229
+ allowCCITTFaxFilter: false
230
+ allowCryptFilter: false
231
+ allowDCTFilter: true
232
+ allowFlateFilter: true
233
+ allowJBIG2Filter: false
234
+ allowJPXFilter: false
235
+ allowLZWFilter: false
236
+ allowRunLengthFilter: false