preflight 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. data/CHANGELOG +8 -1
  2. data/README.rdoc +21 -4
  3. data/lib/preflight.rb +1 -0
  4. data/lib/preflight/issue.rb +35 -0
  5. data/lib/preflight/profile.rb +38 -16
  6. data/lib/preflight/profiles/pdfa1a.rb +0 -1
  7. data/lib/preflight/profiles/pdfx1a.rb +4 -3
  8. data/lib/preflight/rules.rb +17 -2
  9. data/lib/preflight/rules/box_nesting.rb +35 -23
  10. data/lib/preflight/rules/compression_algorithms.rb +14 -4
  11. data/lib/preflight/rules/consistent_boxes.rb +63 -0
  12. data/lib/preflight/rules/cropbox_matches_mediabox.rb +38 -0
  13. data/lib/preflight/rules/document_id.rb +14 -2
  14. data/lib/preflight/rules/info_has_keys.rb +15 -3
  15. data/lib/preflight/rules/info_specifies_trapping.rb +16 -3
  16. data/lib/preflight/rules/match_info_entries.rb +17 -3
  17. data/lib/preflight/rules/max_ink_density.rb +69 -0
  18. data/lib/preflight/rules/max_version.rb +14 -2
  19. data/lib/preflight/rules/mediabox_at_origin.rb +42 -0
  20. data/lib/preflight/rules/min_bleed.rb +171 -0
  21. data/lib/preflight/rules/min_ppi.rb +54 -116
  22. data/lib/preflight/rules/no_cmyk.rb +113 -0
  23. data/lib/preflight/rules/no_filespecs.rb +15 -5
  24. data/lib/preflight/rules/no_font_subsets.rb +15 -6
  25. data/lib/preflight/rules/no_gray.rb +105 -0
  26. data/lib/preflight/rules/no_page_rotation.rb +36 -0
  27. data/lib/preflight/rules/no_private_data.rb +37 -0
  28. data/lib/preflight/rules/no_registration_black.rb +102 -0
  29. data/lib/preflight/rules/no_rgb.rb +112 -0
  30. data/lib/preflight/rules/no_separation.rb +85 -0
  31. data/lib/preflight/rules/no_transparency.rb +90 -0
  32. data/lib/preflight/rules/only_embedded_fonts.rb +28 -14
  33. data/lib/preflight/rules/output_intent_for_pdfx.rb +14 -2
  34. data/lib/preflight/rules/page_box_height.rb +88 -0
  35. data/lib/preflight/rules/page_box_size.rb +106 -0
  36. data/lib/preflight/rules/page_box_width.rb +88 -0
  37. data/lib/preflight/rules/page_count.rb +87 -0
  38. data/lib/preflight/rules/pdfx_output_intent_has_keys.rb +12 -2
  39. data/lib/preflight/rules/print_boxes.rb +21 -19
  40. data/lib/preflight/rules/root_has_keys.rb +15 -3
  41. metadata +97 -113
  42. data/lib/preflight/rules/no_encryption.rb +0 -16
  43. data/lib/preflight/rules/no_proprietary_fonts.rb +0 -50
@@ -1,16 +0,0 @@
1
- # coding: utf-8
2
-
3
- module Preflight
4
- module Rules
5
- class NoEncryption
6
-
7
- def messages(ohash)
8
- if ohash.trailer[:Encrypt]
9
- ["File is encrypted"]
10
- else
11
- []
12
- end
13
- end
14
- end
15
- end
16
- end
@@ -1,50 +0,0 @@
1
- # coding: utf-8
2
-
3
- require 'ttfunk'
4
-
5
- module Preflight
6
- module Rules
7
-
8
- # check a file has no proprietary fonts. They look nice, but we can't
9
- # print the damn things.
10
- #
11
- class NoProprietaryFonts
12
-
13
- def messages(ohash)
14
- array = []
15
- ohash.each do |key, obj|
16
- next unless obj.is_a?(::Hash) && obj[:Type] == :Font
17
- if proprietary?(ohash, obj[:FontDescriptor])
18
- array << "Font #{obj[:BaseFont]} is proprietary"
19
- end
20
- end
21
- array
22
- end
23
-
24
- private
25
-
26
- def proprietary?(ohash, descriptor)
27
- descriptor = ohash.object(descriptor)
28
-
29
- return false if descriptor.nil?
30
- raise ArgumentError, 'expected a FontDescriptor hash' unless descriptor[:Type] == :FontDescriptor
31
-
32
- if descriptor.has_key?(:FontFile)
33
- # TODO embedded type 1 font
34
- false
35
- elsif descriptor.has_key?(:FontFile2) && ttf_proprietary?(ohash, descriptor[:FontFile2])
36
- true
37
- else
38
- false
39
- end
40
- end
41
-
42
- def ttf_proprietary?(ohash, font_file)
43
- font_file = ohash.object(font_file)
44
- ttf = TTFunk::File.new(font_file.unfiltered_data)
45
- #puts ttf.name.strings
46
- false
47
- end
48
- end
49
- end
50
- end