origami 1.2.7 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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