poppler 2.0.2 → 2.0.3

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 (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: []