preflight 0.1.1 → 0.2.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 (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