poppler 2.0.2 → 2.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (31) hide show
  1. checksums.yaml +7 -0
  2. data/README +1 -1
  3. data/Rakefile +69 -9
  4. data/ext/poppler/extconf.rb +5 -2
  5. data/ext/poppler/rbpoppler-action.c +242 -86
  6. data/ext/poppler/{rbpoppler-annotationcalloutline.c → rbpoppler-annotation-callout-line.c} +2 -3
  7. data/ext/poppler/{rbpoppler-annotationfreetext.c → rbpoppler-annotation-free-text.c} +2 -3
  8. data/ext/poppler/{rbpoppler-annotationmapping.c → rbpoppler-annotation-mapping.c} +2 -3
  9. data/ext/poppler/{rbpoppler-annotationmarkup.c → rbpoppler-annotation-markup.c} +5 -4
  10. data/ext/poppler/{rbpoppler-annotationtext.c → rbpoppler-annotation-text.c} +2 -7
  11. data/ext/poppler/{rbpoppler-buttonfield.c → rbpoppler-button-field.c} +0 -0
  12. data/ext/poppler/{rbpoppler-choicefield.c → rbpoppler-choice-field.c} +0 -0
  13. data/ext/poppler/{rbpoppler-fontinfo.c → rbpoppler-font-info.c} +2 -8
  14. data/ext/poppler/{rbpoppler-fontsiter.c → rbpoppler-fonts-iter.c} +5 -6
  15. data/ext/poppler/{rbpoppler-formfieldmapping.c → rbpoppler-form-field-mapping.c} +2 -3
  16. data/ext/poppler/{rbpoppler-imagemapping.c → rbpoppler-image-mapping.c} +2 -7
  17. data/ext/poppler/{rbpoppler-indexiter.c → rbpoppler-index-iter.c} +2 -3
  18. data/ext/poppler/{rbpoppler-linkmapping.c → rbpoppler-link-mapping.c} +2 -3
  19. data/ext/poppler/{rbpoppler-pagetransition.c → rbpoppler-page-transition.c} +2 -3
  20. data/ext/poppler/rbpoppler-page.c +0 -29
  21. data/ext/poppler/rbpoppler-private.h +13 -13
  22. data/ext/poppler/{rbpoppler-psfile.c → rbpoppler-ps-file.c} +2 -3
  23. data/ext/poppler/{rbpoppler-textfield.c → rbpoppler-text-field.c} +0 -0
  24. data/ext/poppler/rbpoppler.c +14 -22
  25. data/ext/poppler/rbpoppler.h +3 -6
  26. data/ext/poppler/rbpopplerconversions.h +1 -1
  27. data/sample/pdf2.rb +46 -10
  28. data/test/fixtures/image.png +0 -0
  29. data/test/run-test.rb +7 -4
  30. data/test/test_page.rb +1 -0
  31. metadata +53 -27
@@ -1,7 +1,6 @@
1
1
  /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
2
  /*
3
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
- * Copyright (C) 2006 Ruby-GNOME2 Project Team
3
+ * Copyright (C) 2006-2013 Ruby-GNOME2 Project Team
5
4
  *
6
5
  * This library is free software; you can redistribute it and/or
7
6
  * modify it under the terms of the GNU Lesser General Public
@@ -56,7 +55,7 @@ rg_set_duplex(VALUE self, VALUE duplex)
56
55
  }
57
56
 
58
57
  void
59
- Init_poppler_psfile(VALUE mPoppler)
58
+ Init_poppler_ps_file(VALUE mPoppler)
60
59
  {
61
60
  VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(POPPLER_TYPE_PS_FILE, "PSFile", mPoppler);
62
61
 
@@ -1,7 +1,6 @@
1
1
  /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
2
  /*
3
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
- * Copyright (C) 2006-2008 Ruby-GNOME2 Project Team
3
+ * Copyright (C) 2006-2013 Ruby-GNOME2 Project Team
5
4
  *
6
5
  * This library is free software; you can redistribute it and/or
7
6
  * modify it under the terms of the GNU Lesser General Public
@@ -40,11 +39,7 @@ rg_s_version(G_GNUC_UNUSED VALUE self)
40
39
  static VALUE
41
40
  rg_s_cairo_available_p(G_GNUC_UNUSED VALUE self)
42
41
  {
43
- #ifdef RB_POPPLER_CAIRO_AVAILABLE
44
42
  return Qtrue;
45
- #else
46
- return Qfalse;
47
- #endif
48
43
  }
49
44
 
50
45
  void
@@ -82,9 +77,6 @@ Init_poppler(void)
82
77
  G_RENAME_NICK("3D", "TYPE_3D");
83
78
  G_DEF_CLASS(POPPLER_TYPE_ANNOT_EXTERNAL_DATA_TYPE,
84
79
  "AnnotationExternalDataType", RG_TARGET_NAMESPACE);
85
- # if !POPPLER_CHECK_VERSION(0, 9, 0)
86
- G_DEF_CLASS(POPPLER_TYPE_ANNOT_TEXT_ICON, "AnnotationTextIcon", RG_TARGET_NAMESPACE);
87
- # endif
88
80
  G_DEF_CLASS(POPPLER_TYPE_ANNOT_TEXT_STATE, "AnnotationTextState", RG_TARGET_NAMESPACE);
89
81
  G_DEF_CLASS(POPPLER_TYPE_ANNOT_FREE_TEXT_QUADDING,
90
82
  "AnnotationFreeTextQuadding", RG_TARGET_NAMESPACE);
@@ -95,25 +87,25 @@ Init_poppler(void)
95
87
  RG_DEF_SMETHOD(version, 0);
96
88
  RG_DEF_SMETHOD_P(cairo_available, 0);
97
89
 
98
- Init_poppler_indexiter(RG_TARGET_NAMESPACE);
99
- Init_poppler_fontinfo(RG_TARGET_NAMESPACE);
90
+ Init_poppler_index_iter(RG_TARGET_NAMESPACE);
91
+ Init_poppler_font_info(RG_TARGET_NAMESPACE);
100
92
  Init_poppler_document(RG_TARGET_NAMESPACE);
101
- Init_poppler_fontsiter(RG_TARGET_NAMESPACE);
102
- Init_poppler_psfile(RG_TARGET_NAMESPACE);
93
+ Init_poppler_fonts_iter(RG_TARGET_NAMESPACE);
94
+ Init_poppler_ps_file(RG_TARGET_NAMESPACE);
103
95
  Init_poppler_rectangle(RG_TARGET_NAMESPACE);
104
96
  Init_poppler_page(RG_TARGET_NAMESPACE);
105
97
  Init_poppler_color(RG_TARGET_NAMESPACE);
106
- Init_poppler_linkmapping(RG_TARGET_NAMESPACE);
107
- Init_poppler_pagetransition(RG_TARGET_NAMESPACE);
108
- Init_poppler_imagemapping(RG_TARGET_NAMESPACE);
109
- Init_poppler_formfieldmapping(RG_TARGET_NAMESPACE);
110
- Init_poppler_annotationmapping(RG_TARGET_NAMESPACE);
98
+ Init_poppler_link_mapping(RG_TARGET_NAMESPACE);
99
+ Init_poppler_page_transition(RG_TARGET_NAMESPACE);
100
+ Init_poppler_image_mapping(RG_TARGET_NAMESPACE);
101
+ Init_poppler_form_field_mapping(RG_TARGET_NAMESPACE);
102
+ Init_poppler_annotation_mapping(RG_TARGET_NAMESPACE);
111
103
  Init_poppler_attachment(RG_TARGET_NAMESPACE);
112
104
  Init_poppler_action(RG_TARGET_NAMESPACE);
113
105
  Init_poppler_annotation(RG_TARGET_NAMESPACE);
114
- Init_poppler_annotationmarkup(RG_TARGET_NAMESPACE);
115
- Init_poppler_annotationtext(RG_TARGET_NAMESPACE);
116
- Init_poppler_annotationfreetext(RG_TARGET_NAMESPACE);
117
- Init_poppler_annotationcalloutline(RG_TARGET_NAMESPACE);
106
+ Init_poppler_annotation_markup(RG_TARGET_NAMESPACE);
107
+ Init_poppler_annotation_text(RG_TARGET_NAMESPACE);
108
+ Init_poppler_annotation_free_text(RG_TARGET_NAMESPACE);
109
+ Init_poppler_annotation_callout_line(RG_TARGET_NAMESPACE);
118
110
  Init_poppler_form_field(RG_TARGET_NAMESPACE);
119
111
  }
@@ -1,6 +1,6 @@
1
1
  /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
2
  /*
3
- * Copyright (C) 2006-2011 Ruby-GNOME2 Project Team
3
+ * Copyright (C) 2006-2013 Ruby-GNOME2 Project Team
4
4
  *
5
5
  * This library is free software; you can redistribute it and/or
6
6
  * modify it under the terms of the GNU Lesser General Public
@@ -47,18 +47,15 @@ extern GType poppler_dest_get_type (void) G_GNUC_CONST;
47
47
  # define RB_POPPLER_TYPE_DEST_NOT_DEFINED
48
48
  #endif
49
49
 
50
- #if defined(HAVE_RB_CAIRO_H) && defined(POPPLER_HAS_CAIRO)
51
- # define RB_POPPLER_CAIRO_AVAILABLE 1
52
- # include <rb_cairo.h>
53
- #endif
50
+ #include <rb_cairo.h>
54
51
 
55
52
  #ifdef POPPLER_TYPE_COLOR
56
53
  extern PopplerColor *rb_poppler_ruby_object_to_color(VALUE color);
57
54
  extern VALUE rb_poppler_ruby_object_from_color_with_free(PopplerColor *color);
58
55
  #endif
59
56
 
57
+ extern VALUE rb_poppler_ruby_object_from_form_field(PopplerFormField *field);
60
58
  extern VALUE rb_poppler_ruby_object_from_action(PopplerAction *action);
61
59
  extern PopplerAction *rb_poppler_action_from_ruby_object(VALUE action);
62
- extern VALUE rb_poppler_ruby_object_from_form_field(PopplerFormField *field);
63
60
 
64
61
  #endif
@@ -1,6 +1,6 @@
1
1
  /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
2
  /*
3
- * Copyright (C) 2006-2011 Ruby-GNOME2 Project Team
3
+ * Copyright (C) 2006-2013 Ruby-GNOME2 Project Team
4
4
  *
5
5
  * This library is free software; you can redistribute it and/or
6
6
  * modify it under the terms of the GNU Lesser General Public
@@ -1,17 +1,53 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require 'tempfile'
3
+ require "tempfile"
4
+ require "optparse"
4
5
  require "poppler"
5
6
  require "gdk_pixbuf2"
6
7
 
7
- if ARGV.size < 2
8
- puts "usage: #{$0} input.pdf output [scale_ratio] [rotate_angle]"
9
- exit(-1)
8
+ page = 0
9
+ scale = 1.0
10
+ rotate = 0
11
+
12
+ parser = OptionParser.new
13
+ parser.banner = <<-BANNER
14
+ Usage: #{parser.program_name} INPUT.PDF OUTPUT [options]
15
+
16
+ #{parser.program_name} coverts the target page in INPUT.PDF to an image file.
17
+ Many popular image formats such as PNG and JPEG are supported.
18
+ You can specify output image format by OUTPUT file extension.
19
+ For example, the following comand generates PNG file:
20
+
21
+ % #{$0} INPUT.PDF OUTPUT.png
22
+
23
+ BANNER
24
+
25
+ parser.on("--page=PAGE", Integer,
26
+ "Use PAGE as the target page",
27
+ "(0-origin)",
28
+ "[#{page}]") do |value|
29
+ page = value.to_i
10
30
  end
11
31
 
12
- input, output, scale, rotate = ARGV
13
- scale = (scale || 1.0).to_f
14
- rotate = (rotate || 0).to_i % 360
32
+ parser.on("--scale=RATIO", Float,
33
+ "Scale the target page in INPUT.PDF RATIO times larger in OUTPUT",
34
+ "[#{scale}]") do |value|
35
+ scale = value.to_f
36
+ end
37
+
38
+ parser.on("--rotate=DEGREE", Integer,
39
+ "Rotate the target page in INPUT.PDF DEGREE degrees clockwise in OUTPUT",
40
+ "(available values: 0...360)",
41
+ "[#{rotate}]") do |value|
42
+ rotate = value.to_i % 360
43
+ end
44
+
45
+ rest_args = parser.parse!
46
+ if rest_args.size != 2
47
+ puts(parser.help)
48
+ exit(false)
49
+ end
50
+ input, output = rest_args
15
51
 
16
52
  ext_name = File.extname(output)[1..-1]
17
53
  if ext_name
@@ -52,9 +88,9 @@ def compute_size(width, height, rotate)
52
88
  end
53
89
  end
54
90
 
55
- def to_pixbuf_with_cairo(input, scale, rotate)
91
+ def to_pixbuf_with_cairo(input, page_number, scale, rotate)
56
92
  doc = Poppler::Document.new(input)
57
- page = doc[0]
93
+ page = doc[page_number]
58
94
  width, height = page.size.collect {|x| x * scale}
59
95
  surface_width, surface_height = compute_size(width, height, rotate)
60
96
 
@@ -86,7 +122,7 @@ unless Poppler.cairo_available?
86
122
  puts "cairo isn't available."
87
123
  exit(false)
88
124
  end
89
- pixbuf = to_pixbuf_with_cairo(input, scale, rotate)
125
+ pixbuf = to_pixbuf_with_cairo(input, page, scale, rotate)
90
126
 
91
127
  if pixbuf.nil?
92
128
  puts "Is it a PDF file?: #{input}"
Binary file
@@ -2,21 +2,24 @@
2
2
 
3
3
  base_dir = File.expand_path(File.join(File.dirname(__FILE__), ".."))
4
4
 
5
- if system("which make > /dev/null")
6
- system("cd #{base_dir.dump} && make > /dev/null") or exit(1)
7
- end
5
+ have_make = system("which make > /dev/null")
8
6
 
9
7
  glib_dir = File.expand_path(File.join(base_dir, "..", "glib2"))
10
8
  gdk_pixbuf_dir = File.expand_path(File.join(base_dir, "..", "gdk_pixbuf2"))
9
+ pango_dir = File.join(File.join(base_dir, ".." , "pango"))
11
10
  gtk_dir = File.expand_path(File.join(base_dir, "..", "gtk2"))
12
11
 
13
12
  $LOAD_PATH.unshift(File.join(glib_dir, "test"))
14
13
  require 'glib-test-init'
15
14
 
16
15
  [[gtk_dir, "gtk2"],
17
- [gdk_pixbuf_dir, "gdk_pibuf2"],
16
+ [gdk_pixbuf_dir, "gdk_pixbuf2"],
17
+ [pango_dir, "pango"],
18
18
  [glib_dir, "glib2"],
19
19
  [base_dir, "poppler"]].each do |dir, module_name|
20
+ if have_make
21
+ system("cd #{dir.dump} && make > /dev/null") or exit(false)
22
+ end
20
23
  $LOAD_PATH.unshift(File.join(dir, "ext", module_name))
21
24
  $LOAD_PATH.unshift(File.join(dir, "lib"))
22
25
  end
@@ -31,6 +31,7 @@ class TestPage < Test::Unit::TestCase
31
31
  end
32
32
 
33
33
  def test_render
34
+ only_poppler_version(0, 20, 0)
34
35
  document = Poppler::Document.new(image_pdf)
35
36
  page = document[0]
36
37
  png = StringIO.new
metadata CHANGED
@@ -1,16 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: poppler
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.2
5
- prerelease:
4
+ version: 2.0.3
6
5
  platform: ruby
7
6
  authors:
8
7
  - The Ruby-GNOME2 Project Team
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-05-26 00:00:00.000000000 Z
13
- dependencies: []
11
+ date: 2013-12-28 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: cairo
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: 1.12.8
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: 1.12.8
27
+ - !ruby/object:Gem::Dependency
28
+ name: gdk_pixbuf2
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '='
32
+ - !ruby/object:Gem::Version
33
+ version: 2.0.3
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '='
39
+ - !ruby/object:Gem::Version
40
+ version: 2.0.3
14
41
  description: Ruby/Poppler is a Ruby binding of poppler-glib.
15
42
  email: ruby-gnome2-devel-en@lists.sourceforge.net
16
43
  executables: []
@@ -26,30 +53,30 @@ files:
26
53
  - ext/poppler/extconf.rb
27
54
  - ext/poppler/poppler.def
28
55
  - ext/poppler/rbpoppler-action.c
56
+ - ext/poppler/rbpoppler-annotation-callout-line.c
57
+ - ext/poppler/rbpoppler-annotation-free-text.c
58
+ - ext/poppler/rbpoppler-annotation-mapping.c
59
+ - ext/poppler/rbpoppler-annotation-markup.c
60
+ - ext/poppler/rbpoppler-annotation-text.c
29
61
  - ext/poppler/rbpoppler-annotation.c
30
- - ext/poppler/rbpoppler-annotationcalloutline.c
31
- - ext/poppler/rbpoppler-annotationfreetext.c
32
- - ext/poppler/rbpoppler-annotationmapping.c
33
- - ext/poppler/rbpoppler-annotationmarkup.c
34
- - ext/poppler/rbpoppler-annotationtext.c
35
62
  - ext/poppler/rbpoppler-attachment.c
36
- - ext/poppler/rbpoppler-buttonfield.c
37
- - ext/poppler/rbpoppler-choicefield.c
63
+ - ext/poppler/rbpoppler-button-field.c
64
+ - ext/poppler/rbpoppler-choice-field.c
38
65
  - ext/poppler/rbpoppler-color.c
39
66
  - ext/poppler/rbpoppler-document.c
40
- - ext/poppler/rbpoppler-fontinfo.c
41
- - ext/poppler/rbpoppler-fontsiter.c
67
+ - ext/poppler/rbpoppler-font-info.c
68
+ - ext/poppler/rbpoppler-fonts-iter.c
69
+ - ext/poppler/rbpoppler-form-field-mapping.c
42
70
  - ext/poppler/rbpoppler-form-field.c
43
- - ext/poppler/rbpoppler-formfieldmapping.c
44
- - ext/poppler/rbpoppler-imagemapping.c
45
- - ext/poppler/rbpoppler-indexiter.c
46
- - ext/poppler/rbpoppler-linkmapping.c
71
+ - ext/poppler/rbpoppler-image-mapping.c
72
+ - ext/poppler/rbpoppler-index-iter.c
73
+ - ext/poppler/rbpoppler-link-mapping.c
74
+ - ext/poppler/rbpoppler-page-transition.c
47
75
  - ext/poppler/rbpoppler-page.c
48
- - ext/poppler/rbpoppler-pagetransition.c
49
76
  - ext/poppler/rbpoppler-private.h
50
- - ext/poppler/rbpoppler-psfile.c
77
+ - ext/poppler/rbpoppler-ps-file.c
51
78
  - ext/poppler/rbpoppler-rectangle.c
52
- - ext/poppler/rbpoppler-textfield.c
79
+ - ext/poppler/rbpoppler-text-field.c
53
80
  - ext/poppler/rbpoppler.c
54
81
  - ext/poppler/rbpoppler.h
55
82
  - ext/poppler/rbpopplerconversions.h
@@ -70,26 +97,25 @@ files:
70
97
  - test/test_page.rb
71
98
  homepage: http://ruby-gnome2.sourceforge.jp/
72
99
  licenses: []
100
+ metadata: {}
73
101
  post_install_message:
74
102
  rdoc_options: []
75
103
  require_paths:
76
104
  - lib
77
105
  required_ruby_version: !ruby/object:Gem::Requirement
78
- none: false
79
106
  requirements:
80
- - - ! '>='
107
+ - - '>='
81
108
  - !ruby/object:Gem::Version
82
- version: 1.8.5
109
+ version: 1.9.3
83
110
  required_rubygems_version: !ruby/object:Gem::Requirement
84
- none: false
85
111
  requirements:
86
- - - ! '>='
112
+ - - '>='
87
113
  - !ruby/object:Gem::Version
88
114
  version: '0'
89
115
  requirements: []
90
116
  rubyforge_project:
91
- rubygems_version: 1.8.23
117
+ rubygems_version: 2.0.14
92
118
  signing_key:
93
- specification_version: 3
119
+ specification_version: 4
94
120
  summary: Ruby/Poppler is a Ruby binding of poppler-glib.
95
121
  test_files: []