poppler 2.2.4-x64-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README +35 -0
- data/Rakefile +75 -0
- data/ext/poppler/depend +6 -0
- data/ext/poppler/extconf.rb +70 -0
- data/ext/poppler/poppler.def +2 -0
- data/ext/poppler/rbpoppler-action.c +372 -0
- data/ext/poppler/rbpoppler-annotation-callout-line.c +127 -0
- data/ext/poppler/rbpoppler-annotation-free-text.c +46 -0
- data/ext/poppler/rbpoppler-annotation-mapping.c +72 -0
- data/ext/poppler/rbpoppler-annotation-markup.c +98 -0
- data/ext/poppler/rbpoppler-annotation-text.c +53 -0
- data/ext/poppler/rbpoppler-annotation.c +74 -0
- data/ext/poppler/rbpoppler-attachment.c +124 -0
- data/ext/poppler/rbpoppler-button-field.c +56 -0
- data/ext/poppler/rbpoppler-choice-field.c +131 -0
- data/ext/poppler/rbpoppler-color.c +107 -0
- data/ext/poppler/rbpoppler-document.c +224 -0
- data/ext/poppler/rbpoppler-font-info.c +59 -0
- data/ext/poppler/rbpoppler-fonts-iter.c +127 -0
- data/ext/poppler/rbpoppler-form-field-mapping.c +44 -0
- data/ext/poppler/rbpoppler-form-field.c +98 -0
- data/ext/poppler/rbpoppler-image-mapping.c +48 -0
- data/ext/poppler/rbpoppler-index-iter.c +128 -0
- data/ext/poppler/rbpoppler-link-mapping.c +47 -0
- data/ext/poppler/rbpoppler-page-transition.c +59 -0
- data/ext/poppler/rbpoppler-page.c +322 -0
- data/ext/poppler/rbpoppler-private.h +77 -0
- data/ext/poppler/rbpoppler-ps-file.c +66 -0
- data/ext/poppler/rbpoppler-rectangle.c +92 -0
- data/ext/poppler/rbpoppler-text-field.c +91 -0
- data/ext/poppler/rbpoppler.c +111 -0
- data/ext/poppler/rbpoppler.h +61 -0
- data/ext/poppler/rbpopplerconversions.h +105 -0
- data/extconf.rb +49 -0
- data/lib/2.0/poppler.so +0 -0
- data/lib/2.1/poppler.so +0 -0
- data/lib/2.2/poppler.so +0 -0
- data/lib/poppler.rb +105 -0
- data/sample/number-pdf.rb +32 -0
- data/sample/pdf2.rb +132 -0
- data/sample/pdf2svg.rb +26 -0
- data/sample/pdf2text.rb +16 -0
- data/sample/pdfcrop.rb +32 -0
- data/sample/pdfdiv.rb +36 -0
- data/test/fixtures/image.pdf +0 -0
- data/test/fixtures/image.png +0 -0
- data/test/poppler-test-utils.rb +58 -0
- data/test/run-test.rb +32 -0
- data/test/test_annotation.rb +86 -0
- data/test/test_color.rb +26 -0
- data/test/test_constants.rb +30 -0
- data/test/test_document.rb +41 -0
- data/test/test_page.rb +42 -0
- data/vendor/local/bin/cjpeg.exe +0 -0
- data/vendor/local/bin/djpeg.exe +0 -0
- data/vendor/local/bin/jpegtran.exe +0 -0
- data/vendor/local/bin/libjpeg-9.dll +0 -0
- data/vendor/local/bin/libpoppler-48.dll +0 -0
- data/vendor/local/bin/libpoppler-cpp-0.dll +0 -0
- data/vendor/local/bin/libpoppler-glib-8.dll +0 -0
- data/vendor/local/bin/libsqlite3-0.dll +0 -0
- data/vendor/local/bin/pdfdetach.exe +0 -0
- data/vendor/local/bin/pdffonts.exe +0 -0
- data/vendor/local/bin/pdfimages.exe +0 -0
- data/vendor/local/bin/pdfinfo.exe +0 -0
- data/vendor/local/bin/pdfseparate.exe +0 -0
- data/vendor/local/bin/pdftocairo.exe +0 -0
- data/vendor/local/bin/pdftohtml.exe +0 -0
- data/vendor/local/bin/pdftoppm.exe +0 -0
- data/vendor/local/bin/pdftops.exe +0 -0
- data/vendor/local/bin/pdftotext.exe +0 -0
- data/vendor/local/bin/pdfunite.exe +0 -0
- data/vendor/local/bin/rdjpgcom.exe +0 -0
- data/vendor/local/bin/sqlite3.exe +0 -0
- data/vendor/local/bin/wrjpgcom.exe +0 -0
- data/vendor/local/include/jconfig.h +60 -0
- data/vendor/local/include/jerror.h +304 -0
- data/vendor/local/include/jmorecfg.h +446 -0
- data/vendor/local/include/jpeglib.h +1180 -0
- data/vendor/local/include/poppler/cpp/poppler-document.h +104 -0
- data/vendor/local/include/poppler/cpp/poppler-embedded-file.h +55 -0
- data/vendor/local/include/poppler/cpp/poppler-font.h +91 -0
- data/vendor/local/include/poppler/cpp/poppler-global.h +111 -0
- data/vendor/local/include/poppler/cpp/poppler-image.h +71 -0
- data/vendor/local/include/poppler/cpp/poppler-page-renderer.h +66 -0
- data/vendor/local/include/poppler/cpp/poppler-page-transition.h +82 -0
- data/vendor/local/include/poppler/cpp/poppler-page.h +76 -0
- data/vendor/local/include/poppler/cpp/poppler-rectangle.h +84 -0
- data/vendor/local/include/poppler/cpp/poppler-toc.h +74 -0
- data/vendor/local/include/poppler/cpp/poppler-version.h +39 -0
- data/vendor/local/include/poppler/glib/poppler-action.h +316 -0
- data/vendor/local/include/poppler/glib/poppler-annot.h +296 -0
- data/vendor/local/include/poppler/glib/poppler-attachment.h +87 -0
- data/vendor/local/include/poppler/glib/poppler-date.h +30 -0
- data/vendor/local/include/poppler/glib/poppler-document.h +299 -0
- data/vendor/local/include/poppler/glib/poppler-enums.h +116 -0
- data/vendor/local/include/poppler/glib/poppler-features.h +88 -0
- data/vendor/local/include/poppler/glib/poppler-form-field.h +111 -0
- data/vendor/local/include/poppler/glib/poppler-layer.h +43 -0
- data/vendor/local/include/poppler/glib/poppler-media.h +73 -0
- data/vendor/local/include/poppler/glib/poppler-movie.h +42 -0
- data/vendor/local/include/poppler/glib/poppler-page.h +377 -0
- data/vendor/local/include/poppler/glib/poppler-structure-element.h +357 -0
- data/vendor/local/include/poppler/glib/poppler.h +250 -0
- data/vendor/local/include/sqlite3.h +7494 -0
- data/vendor/local/include/sqlite3ext.h +487 -0
- data/vendor/local/lib/girepository-1.0/Poppler-0.18.typelib +0 -0
- data/vendor/local/lib/libjpeg.a +0 -0
- data/vendor/local/lib/libjpeg.dll.a +0 -0
- data/vendor/local/lib/libjpeg.la +41 -0
- data/vendor/local/lib/libpoppler-cpp.a +0 -0
- data/vendor/local/lib/libpoppler-cpp.dll.a +0 -0
- data/vendor/local/lib/libpoppler-cpp.la +41 -0
- data/vendor/local/lib/libpoppler-glib.a +0 -0
- data/vendor/local/lib/libpoppler-glib.dll.a +0 -0
- data/vendor/local/lib/libpoppler-glib.la +41 -0
- data/vendor/local/lib/libpoppler.a +0 -0
- data/vendor/local/lib/libpoppler.dll.a +0 -0
- data/vendor/local/lib/libpoppler.la +41 -0
- data/vendor/local/lib/libsqlite3.a +0 -0
- data/vendor/local/lib/libsqlite3.dll.a +0 -0
- data/vendor/local/lib/libsqlite3.la +41 -0
- data/vendor/local/lib/pkgconfig/poppler-cairo.pc +9 -0
- data/vendor/local/lib/pkgconfig/poppler-cpp.pc +13 -0
- data/vendor/local/lib/pkgconfig/poppler-glib.pc +13 -0
- data/vendor/local/lib/pkgconfig/poppler-splash.pc +9 -0
- data/vendor/local/lib/pkgconfig/poppler.pc +11 -0
- data/vendor/local/lib/pkgconfig/sqlite3.pc +13 -0
- data/vendor/local/share/gir-1.0/Poppler-0.18.gir +8281 -0
- data/vendor/local/share/gtk-doc/html/poppler/PopplerAnnot.html +3221 -0
- data/vendor/local/share/gtk-doc/html/poppler/PopplerAttachment.html +267 -0
- data/vendor/local/share/gtk-doc/html/poppler/PopplerDocument.html +3328 -0
- data/vendor/local/share/gtk-doc/html/poppler/PopplerFormField.html +1403 -0
- data/vendor/local/share/gtk-doc/html/poppler/PopplerLayer.html +307 -0
- data/vendor/local/share/gtk-doc/html/poppler/PopplerMedia.html +381 -0
- data/vendor/local/share/gtk-doc/html/poppler/PopplerMovie.html +197 -0
- data/vendor/local/share/gtk-doc/html/poppler/PopplerPage.html +3002 -0
- data/vendor/local/share/gtk-doc/html/poppler/PopplerStructureElement.html +3781 -0
- data/vendor/local/share/gtk-doc/html/poppler/annotation-glossary.html +63 -0
- data/vendor/local/share/gtk-doc/html/poppler/api-index-0-12.html +123 -0
- data/vendor/local/share/gtk-doc/html/poppler/api-index-0-14.html +102 -0
- data/vendor/local/share/gtk-doc/html/poppler/api-index-0-16.html +180 -0
- data/vendor/local/share/gtk-doc/html/poppler/api-index-0-18.html +72 -0
- data/vendor/local/share/gtk-doc/html/poppler/api-index-0-20.html +39 -0
- data/vendor/local/share/gtk-doc/html/poppler/api-index-0-22.html +64 -0
- data/vendor/local/share/gtk-doc/html/poppler/api-index-deprecated.html +39 -0
- data/vendor/local/share/gtk-doc/html/poppler/api-index-full.html +1830 -0
- data/vendor/local/share/gtk-doc/html/poppler/ch01.html +74 -0
- data/vendor/local/share/gtk-doc/html/poppler/home.png +0 -0
- data/vendor/local/share/gtk-doc/html/poppler/index.html +85 -0
- data/vendor/local/share/gtk-doc/html/poppler/index.sgml +557 -0
- data/vendor/local/share/gtk-doc/html/poppler/left-insensitive.png +0 -0
- data/vendor/local/share/gtk-doc/html/poppler/left.png +0 -0
- data/vendor/local/share/gtk-doc/html/poppler/poppler-PDF-Utility-functions.html +107 -0
- data/vendor/local/share/gtk-doc/html/poppler/poppler-PopplerAction.html +796 -0
- data/vendor/local/share/gtk-doc/html/poppler/poppler-PopplerColor.html +201 -0
- data/vendor/local/share/gtk-doc/html/poppler/poppler-Version-and-Features-Information.html +254 -0
- data/vendor/local/share/gtk-doc/html/poppler/poppler-poppler.html +169 -0
- data/vendor/local/share/gtk-doc/html/poppler/poppler.devhelp2 +470 -0
- data/vendor/local/share/gtk-doc/html/poppler/right-insensitive.png +0 -0
- data/vendor/local/share/gtk-doc/html/poppler/right.png +0 -0
- data/vendor/local/share/gtk-doc/html/poppler/style.css +476 -0
- data/vendor/local/share/gtk-doc/html/poppler/up-insensitive.png +0 -0
- data/vendor/local/share/gtk-doc/html/poppler/up.png +0 -0
- data/vendor/local/share/license/poppler/AUTHORS +5 -0
- data/vendor/local/share/license/poppler/COPYING +339 -0
- data/vendor/local/share/man/man1/cjpeg.1 +387 -0
- data/vendor/local/share/man/man1/djpeg.1 +252 -0
- data/vendor/local/share/man/man1/jpegtran.1 +293 -0
- data/vendor/local/share/man/man1/pdfdetach.1 +86 -0
- data/vendor/local/share/man/man1/pdffonts.1 +119 -0
- data/vendor/local/share/man/man1/pdfimages.1 +260 -0
- data/vendor/local/share/man/man1/pdfinfo.1 +152 -0
- data/vendor/local/share/man/man1/pdfseparate.1 +49 -0
- data/vendor/local/share/man/man1/pdftocairo.1 +295 -0
- data/vendor/local/share/man/man1/pdftohtml.1 +107 -0
- data/vendor/local/share/man/man1/pdftoppm.1 +170 -0
- data/vendor/local/share/man/man1/pdftops.1 +217 -0
- data/vendor/local/share/man/man1/pdftotext.1 +137 -0
- data/vendor/local/share/man/man1/pdfunite.1 +33 -0
- data/vendor/local/share/man/man1/rdjpgcom.1 +63 -0
- data/vendor/local/share/man/man1/sqlite3.1 +279 -0
- data/vendor/local/share/man/man1/wrjpgcom.1 +103 -0
- metadata +254 -0
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'open-uri'
|
2
|
+
require 'fileutils'
|
3
|
+
|
4
|
+
module PopplerTestUtils
|
5
|
+
def ensure_dir(dir)
|
6
|
+
FileUtils.mkdir_p(dir)
|
7
|
+
dir
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_dir
|
11
|
+
File.expand_path(File.dirname(__FILE__))
|
12
|
+
end
|
13
|
+
|
14
|
+
def fixtures_dir
|
15
|
+
ensure_dir(File.join(test_dir, "fixtures"))
|
16
|
+
end
|
17
|
+
|
18
|
+
def tmp_dir
|
19
|
+
ensure_dir(File.join(test_dir, "tmp"))
|
20
|
+
end
|
21
|
+
|
22
|
+
def form_pdf
|
23
|
+
file = File.join(fixtures_dir, "form.pdf")
|
24
|
+
return file if File.exist?(file)
|
25
|
+
pdf = open("http://www.irs.gov/pub/irs-pdf/fw9.pdf").read
|
26
|
+
File.open(file, "wb") do |output|
|
27
|
+
output.print(pdf)
|
28
|
+
end
|
29
|
+
file
|
30
|
+
end
|
31
|
+
|
32
|
+
def image_pdf
|
33
|
+
File.join(fixtures_dir, "image.pdf")
|
34
|
+
end
|
35
|
+
|
36
|
+
def image_png
|
37
|
+
File.join(fixtures_dir, "image.png")
|
38
|
+
end
|
39
|
+
|
40
|
+
def later_version?(major, minor, micro=nil)
|
41
|
+
micro ||= 0
|
42
|
+
(Poppler::BUILD_VERSION <=> [major, minor, micro]) >= 0
|
43
|
+
end
|
44
|
+
|
45
|
+
def only_poppler_version(major, minor, micro=nil)
|
46
|
+
micro ||= 0
|
47
|
+
unless later_version?(major, minor, micro)
|
48
|
+
omit("Require Poppler >= #{major}.#{minor}.#{micro}")
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def only_old_poppler_version(major, minor, micro=nil)
|
53
|
+
micro ||= 0
|
54
|
+
if later_version?(major, minor, micro)
|
55
|
+
omit("Require Poppler < #{major}.#{minor}.#{micro}")
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
data/test/run-test.rb
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
base_dir = File.expand_path(File.join(File.dirname(__FILE__), ".."))
|
4
|
+
|
5
|
+
have_make = system("which make > /dev/null")
|
6
|
+
|
7
|
+
glib_dir = File.expand_path(File.join(base_dir, "..", "glib2"))
|
8
|
+
gdk_pixbuf_dir = File.expand_path(File.join(base_dir, "..", "gdk_pixbuf2"))
|
9
|
+
pango_dir = File.join(File.join(base_dir, ".." , "pango"))
|
10
|
+
|
11
|
+
$LOAD_PATH.unshift(File.join(glib_dir, "test"))
|
12
|
+
require 'glib-test-init'
|
13
|
+
|
14
|
+
[[gdk_pixbuf_dir, "gdk_pixbuf2"],
|
15
|
+
[pango_dir, "pango"],
|
16
|
+
[glib_dir, "glib2"],
|
17
|
+
[base_dir, "poppler"]].each do |dir, module_name|
|
18
|
+
if have_make
|
19
|
+
system("cd #{dir.dump} && make > /dev/null") or exit(false)
|
20
|
+
end
|
21
|
+
$LOAD_PATH.unshift(File.join(dir, "ext", module_name))
|
22
|
+
$LOAD_PATH.unshift(File.join(dir, "lib"))
|
23
|
+
end
|
24
|
+
require "poppler"
|
25
|
+
|
26
|
+
$LOAD_PATH.unshift(File.join(base_dir, "test"))
|
27
|
+
require 'poppler-test-utils'
|
28
|
+
class Test::Unit::TestCase
|
29
|
+
include PopplerTestUtils
|
30
|
+
end
|
31
|
+
|
32
|
+
exit Test::Unit::AutoRunner.run(true)
|
@@ -0,0 +1,86 @@
|
|
1
|
+
class TestAnnotation < Test::Unit::TestCase
|
2
|
+
def test_type
|
3
|
+
only_poppler_version(0, 7, 2)
|
4
|
+
assert_kind_of(Poppler::AnnotationType, annotation.type)
|
5
|
+
end
|
6
|
+
|
7
|
+
def test_contents
|
8
|
+
only_poppler_version(0, 7, 2)
|
9
|
+
assert_nil(annotation.contents)
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_name
|
13
|
+
only_poppler_version(0, 7, 2)
|
14
|
+
assert_nil(annotation.name)
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_modified
|
18
|
+
only_poppler_version(0, 7, 2)
|
19
|
+
assert_nil(annotation.modified)
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_flags
|
23
|
+
only_poppler_version(0, 7, 2)
|
24
|
+
assert_kind_of(Poppler::AnnotationFlag, annotation.flags)
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_color
|
28
|
+
only_poppler_version(0, 7, 2)
|
29
|
+
assert_nil(annotation.color)
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_markup
|
33
|
+
only_poppler_version(0, 7, 2)
|
34
|
+
# We don't have a PDF that has annotation markup...
|
35
|
+
assert_method_defined(Poppler::AnnotationMarkup, :label)
|
36
|
+
assert_method_defined(Poppler::AnnotationMarkup, :popup_is_open?)
|
37
|
+
assert_method_defined(Poppler::AnnotationMarkup, :opacity)
|
38
|
+
assert_method_defined(Poppler::AnnotationMarkup, :date)
|
39
|
+
assert_method_defined(Poppler::AnnotationMarkup, :subject)
|
40
|
+
assert_method_defined(Poppler::AnnotationMarkup, :reply_to)
|
41
|
+
assert_method_defined(Poppler::AnnotationMarkup, :external_data)
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_text
|
45
|
+
only_poppler_version(0, 7, 2)
|
46
|
+
# We don't have a PDF that has annotation text...
|
47
|
+
assert_method_defined(Poppler::AnnotationText, :open?)
|
48
|
+
assert_method_defined(Poppler::AnnotationText, :icon)
|
49
|
+
assert_method_defined(Poppler::AnnotationText, :state)
|
50
|
+
end
|
51
|
+
|
52
|
+
def test_free_text
|
53
|
+
only_poppler_version(0, 7, 2)
|
54
|
+
# We don't have a PDF that has annotation free text...
|
55
|
+
assert_method_defined(Poppler::AnnotationFreeText, :quadding)
|
56
|
+
assert_method_defined(Poppler::AnnotationFreeText, :callout_line)
|
57
|
+
end
|
58
|
+
|
59
|
+
def test_callout_line
|
60
|
+
only_poppler_version(0, 7, 2)
|
61
|
+
callout_line = Poppler::AnnotationCalloutLine.new(true,
|
62
|
+
1.1, 2.2, 3.3,
|
63
|
+
4.4, 5.5, 6.6)
|
64
|
+
assert(callout_line.multiline?)
|
65
|
+
assert_equal(1.1, callout_line.x1)
|
66
|
+
assert_equal(2.2, callout_line.y1)
|
67
|
+
assert_equal(3.3, callout_line.x2)
|
68
|
+
assert_equal(4.4, callout_line.y2)
|
69
|
+
assert_equal(5.5, callout_line.x3)
|
70
|
+
assert_equal(6.6, callout_line.y3)
|
71
|
+
assert_equal([true, 1.1, 2.2, 3.3, 4.4, 5.5, 6.6], callout_line.to_a)
|
72
|
+
end
|
73
|
+
|
74
|
+
private
|
75
|
+
def annotation
|
76
|
+
document = Poppler::Document.new(form_pdf)
|
77
|
+
page = document[0]
|
78
|
+
page.annotation_mapping[0].annotation
|
79
|
+
end
|
80
|
+
|
81
|
+
def assert_method_defined(object, method)
|
82
|
+
assert do
|
83
|
+
object.method_defined?(method)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
data/test/test_color.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
class TestColor < Test::Unit::TestCase
|
2
|
+
def test_initialize
|
3
|
+
only_poppler_version(0, 7, 2)
|
4
|
+
rose = Poppler::Color.new(65535, 0, 32639)
|
5
|
+
assert_equal([65535, 0, 32639], [rose.red, rose.green, rose.blue])
|
6
|
+
assert_equal([65535, 0, 32639], rose.to_a)
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_accessor
|
10
|
+
only_poppler_version(0, 7, 2)
|
11
|
+
white = Poppler::Color.new(65535, 65535, 65535)
|
12
|
+
red = white.dup
|
13
|
+
red.green = 0
|
14
|
+
red.blue = 0
|
15
|
+
assert_equal([65535, 65535, 65535], [white.red, white.green, white.blue])
|
16
|
+
assert_equal([65535, 0, 0], [red.red, red.green, red.blue])
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_inspect
|
20
|
+
only_poppler_version(0, 7, 2)
|
21
|
+
color = Poppler::Color.new(0, 32767, 65535)
|
22
|
+
rgb = '[0, 32767, 65535]'
|
23
|
+
assert_match(/\A#<Poppler::Color:.*: #{Regexp.escape(rgb)}>\z/,
|
24
|
+
color.inspect)
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
class TestConstants < Test::Unit::TestCase
|
2
|
+
def test_annotation
|
3
|
+
if later_version?(0, 7, 2)
|
4
|
+
assertion = :assert_const_defined
|
5
|
+
else
|
6
|
+
assertion = :assert_not_const_defined
|
7
|
+
end
|
8
|
+
send(assertion, Poppler, :AnnotationType)
|
9
|
+
if assertion == :assert_const_defined
|
10
|
+
assert_equal("3d", Poppler::AnnotationType::TYPE_3D.nick)
|
11
|
+
end
|
12
|
+
send(assertion, Poppler, :AnnotationFlag)
|
13
|
+
send(assertion, Poppler, :AnnotationMarkupReplyType)
|
14
|
+
send(assertion, Poppler, :AnnotationExternalDataType)
|
15
|
+
if assertion == :assert_const_defined
|
16
|
+
assert_equal("3d", Poppler::AnnotationExternalDataType::TYPE_3D.nick)
|
17
|
+
end
|
18
|
+
if later_version?(0, 9, 0)
|
19
|
+
assert_not_const_defined(Poppler, :AnnotationTextIcon)
|
20
|
+
else
|
21
|
+
send(assertion, Poppler, :AnnotationTextIcon)
|
22
|
+
end
|
23
|
+
send(assertion, Poppler, :AnnotationTextState)
|
24
|
+
send(assertion, Poppler, :AnnotationFreeTextQuadding)
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_permissions
|
28
|
+
assert_const_defined(Poppler, :Permissions)
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
class TestDocument < Test::Unit::TestCase
|
2
|
+
def test_save
|
3
|
+
saved_pdf = File.join(tmp_dir, "saved.pdf")
|
4
|
+
FileUtils.rm_f(saved_pdf)
|
5
|
+
|
6
|
+
document = Poppler::Document.new(form_pdf)
|
7
|
+
find_first_text_field(document).text = "XXX"
|
8
|
+
assert(document.save(saved_pdf))
|
9
|
+
assert(File.exist?(saved_pdf))
|
10
|
+
|
11
|
+
only_poppler_version(0, 8, 2)
|
12
|
+
reread_document = Poppler::Document.new(saved_pdf)
|
13
|
+
assert_equal("XXX", find_first_text_field(reread_document).text)
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_save_a_copy
|
17
|
+
only_poppler_version(0, 7, 2)
|
18
|
+
copied_pdf = File.join(tmp_dir, "copied.pdf")
|
19
|
+
FileUtils.rm_f(copied_pdf)
|
20
|
+
|
21
|
+
document = Poppler::Document.new(form_pdf)
|
22
|
+
first_text_field = find_first_text_field(document)
|
23
|
+
default_text = first_text_field.text
|
24
|
+
first_text_field.text = "XXX"
|
25
|
+
assert(document.save_a_copy(copied_pdf))
|
26
|
+
assert(File.exist?(copied_pdf))
|
27
|
+
|
28
|
+
reread_document = Poppler::Document.new(copied_pdf)
|
29
|
+
assert_equal(default_text, find_first_text_field(reread_document).text)
|
30
|
+
end
|
31
|
+
|
32
|
+
private
|
33
|
+
def find_first_text_field(document)
|
34
|
+
document.each do |page|
|
35
|
+
page.form_field_mapping.each do |mapping|
|
36
|
+
field = mapping.field
|
37
|
+
return field if field.is_a?(Poppler::TextField)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
data/test/test_page.rb
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
class TestPage < Test::Unit::TestCase
|
2
|
+
def test_get_image
|
3
|
+
omit("We don't have PDF that has image...")
|
4
|
+
document = Poppler::Document.new(image_pdf)
|
5
|
+
page, mapping = find_first_image_mapping(document)
|
6
|
+
assert_kind_of(Cairo::ImageSurface, page.get_image(mapping.image_id))
|
7
|
+
assert_kind_of(Cairo::ImageSurface, mapping.image)
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_selection_region
|
11
|
+
document = Poppler::Document.new(form_pdf)
|
12
|
+
page = document[0]
|
13
|
+
rectangle = Poppler::Rectangle.new(0, 0, *page.size)
|
14
|
+
region = page.get_selection_region(0.5, :word, rectangle)
|
15
|
+
if later_version?(0, 7, 2)
|
16
|
+
assert_kind_of(Poppler::Rectangle, region[0])
|
17
|
+
else
|
18
|
+
assert_kind_of(Gdk::Region, region)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_annotation_mapping
|
23
|
+
only_poppler_version(0, 7, 2)
|
24
|
+
document = Poppler::Document.new(form_pdf)
|
25
|
+
page = document[0]
|
26
|
+
assert_equal([Poppler::AnnotationMapping],
|
27
|
+
page.annotation_mapping.collect {|mapping| mapping.class}.uniq)
|
28
|
+
mapping = page.annotation_mapping[0]
|
29
|
+
assert_kind_of(Poppler::Rectangle, mapping.area)
|
30
|
+
assert_kind_of(Poppler::Annotation, mapping.annotation)
|
31
|
+
end
|
32
|
+
|
33
|
+
private
|
34
|
+
def find_first_image_mapping(document)
|
35
|
+
document.each do |page|
|
36
|
+
page.image_mapping.each do |mapping|
|
37
|
+
return [page, mapping]
|
38
|
+
end
|
39
|
+
end
|
40
|
+
nil
|
41
|
+
end
|
42
|
+
end
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,60 @@
|
|
1
|
+
/* jconfig.h. Generated from jconfig.cfg by configure. */
|
2
|
+
/* jconfig.cfg --- source file edited by configure script */
|
3
|
+
/* see jconfig.txt for explanations */
|
4
|
+
|
5
|
+
#define HAVE_PROTOTYPES 1
|
6
|
+
#define HAVE_UNSIGNED_CHAR 1
|
7
|
+
#define HAVE_UNSIGNED_SHORT 1
|
8
|
+
/* #undef void */
|
9
|
+
/* #undef const */
|
10
|
+
/* #undef CHAR_IS_UNSIGNED */
|
11
|
+
#define HAVE_STDDEF_H 1
|
12
|
+
#define HAVE_STDLIB_H 1
|
13
|
+
#define HAVE_LOCALE_H 1
|
14
|
+
/* #undef NEED_BSD_STRINGS */
|
15
|
+
/* #undef NEED_SYS_TYPES_H */
|
16
|
+
/* #undef NEED_FAR_POINTERS */
|
17
|
+
/* #undef NEED_SHORT_EXTERNAL_NAMES */
|
18
|
+
/* Define this if you get warnings about undefined structures. */
|
19
|
+
/* #undef INCOMPLETE_TYPES_BROKEN */
|
20
|
+
|
21
|
+
/* Define "boolean" as unsigned char, not enum, on Windows systems. */
|
22
|
+
#ifdef _WIN32
|
23
|
+
#ifndef __RPCNDR_H__ /* don't conflict if rpcndr.h already read */
|
24
|
+
typedef unsigned char boolean;
|
25
|
+
#endif
|
26
|
+
#ifndef FALSE /* in case these macros already exist */
|
27
|
+
#define FALSE 0 /* values of boolean */
|
28
|
+
#endif
|
29
|
+
#ifndef TRUE
|
30
|
+
#define TRUE 1
|
31
|
+
#endif
|
32
|
+
#define HAVE_BOOLEAN /* prevent jmorecfg.h from redefining it */
|
33
|
+
#endif
|
34
|
+
|
35
|
+
#ifdef JPEG_INTERNALS
|
36
|
+
|
37
|
+
/* #undef RIGHT_SHIFT_IS_UNSIGNED */
|
38
|
+
#define INLINE __inline__
|
39
|
+
/* These are for configuring the JPEG memory manager. */
|
40
|
+
/* #undef DEFAULT_MAX_MEM */
|
41
|
+
/* #undef NO_MKTEMP */
|
42
|
+
|
43
|
+
#endif /* JPEG_INTERNALS */
|
44
|
+
|
45
|
+
#ifdef JPEG_CJPEG_DJPEG
|
46
|
+
|
47
|
+
#define BMP_SUPPORTED /* BMP image file format */
|
48
|
+
#define GIF_SUPPORTED /* GIF image file format */
|
49
|
+
#define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */
|
50
|
+
/* #undef RLE_SUPPORTED */
|
51
|
+
#define TARGA_SUPPORTED /* Targa image file format */
|
52
|
+
|
53
|
+
/* #undef TWO_FILE_COMMANDLINE */
|
54
|
+
/* #undef NEED_SIGNAL_CATCHER */
|
55
|
+
/* #undef DONT_USE_B_MODE */
|
56
|
+
|
57
|
+
/* Define this if you want percent-done progress reports from cjpeg/djpeg. */
|
58
|
+
/* #undef PROGRESS_REPORT */
|
59
|
+
|
60
|
+
#endif /* JPEG_CJPEG_DJPEG */
|
@@ -0,0 +1,304 @@
|
|
1
|
+
/*
|
2
|
+
* jerror.h
|
3
|
+
*
|
4
|
+
* Copyright (C) 1994-1997, Thomas G. Lane.
|
5
|
+
* Modified 1997-2012 by Guido Vollbeding.
|
6
|
+
* This file is part of the Independent JPEG Group's software.
|
7
|
+
* For conditions of distribution and use, see the accompanying README file.
|
8
|
+
*
|
9
|
+
* This file defines the error and message codes for the JPEG library.
|
10
|
+
* Edit this file to add new codes, or to translate the message strings to
|
11
|
+
* some other language.
|
12
|
+
* A set of error-reporting macros are defined too. Some applications using
|
13
|
+
* the JPEG library may wish to include this file to get the error codes
|
14
|
+
* and/or the macros.
|
15
|
+
*/
|
16
|
+
|
17
|
+
/*
|
18
|
+
* To define the enum list of message codes, include this file without
|
19
|
+
* defining macro JMESSAGE. To create a message string table, include it
|
20
|
+
* again with a suitable JMESSAGE definition (see jerror.c for an example).
|
21
|
+
*/
|
22
|
+
#ifndef JMESSAGE
|
23
|
+
#ifndef JERROR_H
|
24
|
+
/* First time through, define the enum list */
|
25
|
+
#define JMAKE_ENUM_LIST
|
26
|
+
#else
|
27
|
+
/* Repeated inclusions of this file are no-ops unless JMESSAGE is defined */
|
28
|
+
#define JMESSAGE(code,string)
|
29
|
+
#endif /* JERROR_H */
|
30
|
+
#endif /* JMESSAGE */
|
31
|
+
|
32
|
+
#ifdef JMAKE_ENUM_LIST
|
33
|
+
|
34
|
+
typedef enum {
|
35
|
+
|
36
|
+
#define JMESSAGE(code,string) code ,
|
37
|
+
|
38
|
+
#endif /* JMAKE_ENUM_LIST */
|
39
|
+
|
40
|
+
JMESSAGE(JMSG_NOMESSAGE, "Bogus message code %d") /* Must be first entry! */
|
41
|
+
|
42
|
+
/* For maintenance convenience, list is alphabetical by message code name */
|
43
|
+
JMESSAGE(JERR_BAD_ALIGN_TYPE, "ALIGN_TYPE is wrong, please fix")
|
44
|
+
JMESSAGE(JERR_BAD_ALLOC_CHUNK, "MAX_ALLOC_CHUNK is wrong, please fix")
|
45
|
+
JMESSAGE(JERR_BAD_BUFFER_MODE, "Bogus buffer control mode")
|
46
|
+
JMESSAGE(JERR_BAD_COMPONENT_ID, "Invalid component ID %d in SOS")
|
47
|
+
JMESSAGE(JERR_BAD_CROP_SPEC, "Invalid crop request")
|
48
|
+
JMESSAGE(JERR_BAD_DCT_COEF, "DCT coefficient out of range")
|
49
|
+
JMESSAGE(JERR_BAD_DCTSIZE, "DCT scaled block size %dx%d not supported")
|
50
|
+
JMESSAGE(JERR_BAD_DROP_SAMPLING,
|
51
|
+
"Component index %d: mismatching sampling ratio %d:%d, %d:%d, %c")
|
52
|
+
JMESSAGE(JERR_BAD_HUFF_TABLE, "Bogus Huffman table definition")
|
53
|
+
JMESSAGE(JERR_BAD_IN_COLORSPACE, "Bogus input colorspace")
|
54
|
+
JMESSAGE(JERR_BAD_J_COLORSPACE, "Bogus JPEG colorspace")
|
55
|
+
JMESSAGE(JERR_BAD_LENGTH, "Bogus marker length")
|
56
|
+
JMESSAGE(JERR_BAD_LIB_VERSION,
|
57
|
+
"Wrong JPEG library version: library is %d, caller expects %d")
|
58
|
+
JMESSAGE(JERR_BAD_MCU_SIZE, "Sampling factors too large for interleaved scan")
|
59
|
+
JMESSAGE(JERR_BAD_POOL_ID, "Invalid memory pool code %d")
|
60
|
+
JMESSAGE(JERR_BAD_PRECISION, "Unsupported JPEG data precision %d")
|
61
|
+
JMESSAGE(JERR_BAD_PROGRESSION,
|
62
|
+
"Invalid progressive parameters Ss=%d Se=%d Ah=%d Al=%d")
|
63
|
+
JMESSAGE(JERR_BAD_PROG_SCRIPT,
|
64
|
+
"Invalid progressive parameters at scan script entry %d")
|
65
|
+
JMESSAGE(JERR_BAD_SAMPLING, "Bogus sampling factors")
|
66
|
+
JMESSAGE(JERR_BAD_SCAN_SCRIPT, "Invalid scan script at entry %d")
|
67
|
+
JMESSAGE(JERR_BAD_STATE, "Improper call to JPEG library in state %d")
|
68
|
+
JMESSAGE(JERR_BAD_STRUCT_SIZE,
|
69
|
+
"JPEG parameter struct mismatch: library thinks size is %u, caller expects %u")
|
70
|
+
JMESSAGE(JERR_BAD_VIRTUAL_ACCESS, "Bogus virtual array access")
|
71
|
+
JMESSAGE(JERR_BUFFER_SIZE, "Buffer passed to JPEG library is too small")
|
72
|
+
JMESSAGE(JERR_CANT_SUSPEND, "Suspension not allowed here")
|
73
|
+
JMESSAGE(JERR_CCIR601_NOTIMPL, "CCIR601 sampling not implemented yet")
|
74
|
+
JMESSAGE(JERR_COMPONENT_COUNT, "Too many color components: %d, max %d")
|
75
|
+
JMESSAGE(JERR_CONVERSION_NOTIMPL, "Unsupported color conversion request")
|
76
|
+
JMESSAGE(JERR_DAC_INDEX, "Bogus DAC index %d")
|
77
|
+
JMESSAGE(JERR_DAC_VALUE, "Bogus DAC value 0x%x")
|
78
|
+
JMESSAGE(JERR_DHT_INDEX, "Bogus DHT index %d")
|
79
|
+
JMESSAGE(JERR_DQT_INDEX, "Bogus DQT index %d")
|
80
|
+
JMESSAGE(JERR_EMPTY_IMAGE, "Empty JPEG image (DNL not supported)")
|
81
|
+
JMESSAGE(JERR_EMS_READ, "Read from EMS failed")
|
82
|
+
JMESSAGE(JERR_EMS_WRITE, "Write to EMS failed")
|
83
|
+
JMESSAGE(JERR_EOI_EXPECTED, "Didn't expect more than one scan")
|
84
|
+
JMESSAGE(JERR_FILE_READ, "Input file read error")
|
85
|
+
JMESSAGE(JERR_FILE_WRITE, "Output file write error --- out of disk space?")
|
86
|
+
JMESSAGE(JERR_FRACT_SAMPLE_NOTIMPL, "Fractional sampling not implemented yet")
|
87
|
+
JMESSAGE(JERR_HUFF_CLEN_OVERFLOW, "Huffman code size table overflow")
|
88
|
+
JMESSAGE(JERR_HUFF_MISSING_CODE, "Missing Huffman code table entry")
|
89
|
+
JMESSAGE(JERR_IMAGE_TOO_BIG, "Maximum supported image dimension is %u pixels")
|
90
|
+
JMESSAGE(JERR_INPUT_EMPTY, "Empty input file")
|
91
|
+
JMESSAGE(JERR_INPUT_EOF, "Premature end of input file")
|
92
|
+
JMESSAGE(JERR_MISMATCHED_QUANT_TABLE,
|
93
|
+
"Cannot transcode due to multiple use of quantization table %d")
|
94
|
+
JMESSAGE(JERR_MISSING_DATA, "Scan script does not transmit all data")
|
95
|
+
JMESSAGE(JERR_MODE_CHANGE, "Invalid color quantization mode change")
|
96
|
+
JMESSAGE(JERR_NOTIMPL, "Not implemented yet")
|
97
|
+
JMESSAGE(JERR_NOT_COMPILED, "Requested feature was omitted at compile time")
|
98
|
+
JMESSAGE(JERR_NO_ARITH_TABLE, "Arithmetic table 0x%02x was not defined")
|
99
|
+
JMESSAGE(JERR_NO_BACKING_STORE, "Backing store not supported")
|
100
|
+
JMESSAGE(JERR_NO_HUFF_TABLE, "Huffman table 0x%02x was not defined")
|
101
|
+
JMESSAGE(JERR_NO_IMAGE, "JPEG datastream contains no image")
|
102
|
+
JMESSAGE(JERR_NO_QUANT_TABLE, "Quantization table 0x%02x was not defined")
|
103
|
+
JMESSAGE(JERR_NO_SOI, "Not a JPEG file: starts with 0x%02x 0x%02x")
|
104
|
+
JMESSAGE(JERR_OUT_OF_MEMORY, "Insufficient memory (case %d)")
|
105
|
+
JMESSAGE(JERR_QUANT_COMPONENTS,
|
106
|
+
"Cannot quantize more than %d color components")
|
107
|
+
JMESSAGE(JERR_QUANT_FEW_COLORS, "Cannot quantize to fewer than %d colors")
|
108
|
+
JMESSAGE(JERR_QUANT_MANY_COLORS, "Cannot quantize to more than %d colors")
|
109
|
+
JMESSAGE(JERR_SOF_BEFORE, "Invalid JPEG file structure: %s before SOF")
|
110
|
+
JMESSAGE(JERR_SOF_DUPLICATE, "Invalid JPEG file structure: two SOF markers")
|
111
|
+
JMESSAGE(JERR_SOF_NO_SOS, "Invalid JPEG file structure: missing SOS marker")
|
112
|
+
JMESSAGE(JERR_SOF_UNSUPPORTED, "Unsupported JPEG process: SOF type 0x%02x")
|
113
|
+
JMESSAGE(JERR_SOI_DUPLICATE, "Invalid JPEG file structure: two SOI markers")
|
114
|
+
JMESSAGE(JERR_TFILE_CREATE, "Failed to create temporary file %s")
|
115
|
+
JMESSAGE(JERR_TFILE_READ, "Read failed on temporary file")
|
116
|
+
JMESSAGE(JERR_TFILE_SEEK, "Seek failed on temporary file")
|
117
|
+
JMESSAGE(JERR_TFILE_WRITE,
|
118
|
+
"Write failed on temporary file --- out of disk space?")
|
119
|
+
JMESSAGE(JERR_TOO_LITTLE_DATA, "Application transferred too few scanlines")
|
120
|
+
JMESSAGE(JERR_UNKNOWN_MARKER, "Unsupported marker type 0x%02x")
|
121
|
+
JMESSAGE(JERR_VIRTUAL_BUG, "Virtual array controller messed up")
|
122
|
+
JMESSAGE(JERR_WIDTH_OVERFLOW, "Image too wide for this implementation")
|
123
|
+
JMESSAGE(JERR_XMS_READ, "Read from XMS failed")
|
124
|
+
JMESSAGE(JERR_XMS_WRITE, "Write to XMS failed")
|
125
|
+
JMESSAGE(JMSG_COPYRIGHT, JCOPYRIGHT)
|
126
|
+
JMESSAGE(JMSG_VERSION, JVERSION)
|
127
|
+
JMESSAGE(JTRC_16BIT_TABLES,
|
128
|
+
"Caution: quantization tables are too coarse for baseline JPEG")
|
129
|
+
JMESSAGE(JTRC_ADOBE,
|
130
|
+
"Adobe APP14 marker: version %d, flags 0x%04x 0x%04x, transform %d")
|
131
|
+
JMESSAGE(JTRC_APP0, "Unknown APP0 marker (not JFIF), length %u")
|
132
|
+
JMESSAGE(JTRC_APP14, "Unknown APP14 marker (not Adobe), length %u")
|
133
|
+
JMESSAGE(JTRC_DAC, "Define Arithmetic Table 0x%02x: 0x%02x")
|
134
|
+
JMESSAGE(JTRC_DHT, "Define Huffman Table 0x%02x")
|
135
|
+
JMESSAGE(JTRC_DQT, "Define Quantization Table %d precision %d")
|
136
|
+
JMESSAGE(JTRC_DRI, "Define Restart Interval %u")
|
137
|
+
JMESSAGE(JTRC_EMS_CLOSE, "Freed EMS handle %u")
|
138
|
+
JMESSAGE(JTRC_EMS_OPEN, "Obtained EMS handle %u")
|
139
|
+
JMESSAGE(JTRC_EOI, "End Of Image")
|
140
|
+
JMESSAGE(JTRC_HUFFBITS, " %3d %3d %3d %3d %3d %3d %3d %3d")
|
141
|
+
JMESSAGE(JTRC_JFIF, "JFIF APP0 marker: version %d.%02d, density %dx%d %d")
|
142
|
+
JMESSAGE(JTRC_JFIF_BADTHUMBNAILSIZE,
|
143
|
+
"Warning: thumbnail image size does not match data length %u")
|
144
|
+
JMESSAGE(JTRC_JFIF_EXTENSION,
|
145
|
+
"JFIF extension marker: type 0x%02x, length %u")
|
146
|
+
JMESSAGE(JTRC_JFIF_THUMBNAIL, " with %d x %d thumbnail image")
|
147
|
+
JMESSAGE(JTRC_MISC_MARKER, "Miscellaneous marker 0x%02x, length %u")
|
148
|
+
JMESSAGE(JTRC_PARMLESS_MARKER, "Unexpected marker 0x%02x")
|
149
|
+
JMESSAGE(JTRC_QUANTVALS, " %4u %4u %4u %4u %4u %4u %4u %4u")
|
150
|
+
JMESSAGE(JTRC_QUANT_3_NCOLORS, "Quantizing to %d = %d*%d*%d colors")
|
151
|
+
JMESSAGE(JTRC_QUANT_NCOLORS, "Quantizing to %d colors")
|
152
|
+
JMESSAGE(JTRC_QUANT_SELECTED, "Selected %d colors for quantization")
|
153
|
+
JMESSAGE(JTRC_RECOVERY_ACTION, "At marker 0x%02x, recovery action %d")
|
154
|
+
JMESSAGE(JTRC_RST, "RST%d")
|
155
|
+
JMESSAGE(JTRC_SMOOTH_NOTIMPL,
|
156
|
+
"Smoothing not supported with nonstandard sampling ratios")
|
157
|
+
JMESSAGE(JTRC_SOF, "Start Of Frame 0x%02x: width=%u, height=%u, components=%d")
|
158
|
+
JMESSAGE(JTRC_SOF_COMPONENT, " Component %d: %dhx%dv q=%d")
|
159
|
+
JMESSAGE(JTRC_SOI, "Start of Image")
|
160
|
+
JMESSAGE(JTRC_SOS, "Start Of Scan: %d components")
|
161
|
+
JMESSAGE(JTRC_SOS_COMPONENT, " Component %d: dc=%d ac=%d")
|
162
|
+
JMESSAGE(JTRC_SOS_PARAMS, " Ss=%d, Se=%d, Ah=%d, Al=%d")
|
163
|
+
JMESSAGE(JTRC_TFILE_CLOSE, "Closed temporary file %s")
|
164
|
+
JMESSAGE(JTRC_TFILE_OPEN, "Opened temporary file %s")
|
165
|
+
JMESSAGE(JTRC_THUMB_JPEG,
|
166
|
+
"JFIF extension marker: JPEG-compressed thumbnail image, length %u")
|
167
|
+
JMESSAGE(JTRC_THUMB_PALETTE,
|
168
|
+
"JFIF extension marker: palette thumbnail image, length %u")
|
169
|
+
JMESSAGE(JTRC_THUMB_RGB,
|
170
|
+
"JFIF extension marker: RGB thumbnail image, length %u")
|
171
|
+
JMESSAGE(JTRC_UNKNOWN_IDS,
|
172
|
+
"Unrecognized component IDs %d %d %d, assuming YCbCr")
|
173
|
+
JMESSAGE(JTRC_XMS_CLOSE, "Freed XMS handle %u")
|
174
|
+
JMESSAGE(JTRC_XMS_OPEN, "Obtained XMS handle %u")
|
175
|
+
JMESSAGE(JWRN_ADOBE_XFORM, "Unknown Adobe color transform code %d")
|
176
|
+
JMESSAGE(JWRN_ARITH_BAD_CODE, "Corrupt JPEG data: bad arithmetic code")
|
177
|
+
JMESSAGE(JWRN_BOGUS_PROGRESSION,
|
178
|
+
"Inconsistent progression sequence for component %d coefficient %d")
|
179
|
+
JMESSAGE(JWRN_EXTRANEOUS_DATA,
|
180
|
+
"Corrupt JPEG data: %u extraneous bytes before marker 0x%02x")
|
181
|
+
JMESSAGE(JWRN_HIT_MARKER, "Corrupt JPEG data: premature end of data segment")
|
182
|
+
JMESSAGE(JWRN_HUFF_BAD_CODE, "Corrupt JPEG data: bad Huffman code")
|
183
|
+
JMESSAGE(JWRN_JFIF_MAJOR, "Warning: unknown JFIF revision number %d.%02d")
|
184
|
+
JMESSAGE(JWRN_JPEG_EOF, "Premature end of JPEG file")
|
185
|
+
JMESSAGE(JWRN_MUST_RESYNC,
|
186
|
+
"Corrupt JPEG data: found marker 0x%02x instead of RST%d")
|
187
|
+
JMESSAGE(JWRN_NOT_SEQUENTIAL, "Invalid SOS parameters for sequential JPEG")
|
188
|
+
JMESSAGE(JWRN_TOO_MUCH_DATA, "Application transferred too many scanlines")
|
189
|
+
|
190
|
+
#ifdef JMAKE_ENUM_LIST
|
191
|
+
|
192
|
+
JMSG_LASTMSGCODE
|
193
|
+
} J_MESSAGE_CODE;
|
194
|
+
|
195
|
+
#undef JMAKE_ENUM_LIST
|
196
|
+
#endif /* JMAKE_ENUM_LIST */
|
197
|
+
|
198
|
+
/* Zap JMESSAGE macro so that future re-inclusions do nothing by default */
|
199
|
+
#undef JMESSAGE
|
200
|
+
|
201
|
+
|
202
|
+
#ifndef JERROR_H
|
203
|
+
#define JERROR_H
|
204
|
+
|
205
|
+
/* Macros to simplify using the error and trace message stuff */
|
206
|
+
/* The first parameter is either type of cinfo pointer */
|
207
|
+
|
208
|
+
/* Fatal errors (print message and exit) */
|
209
|
+
#define ERREXIT(cinfo,code) \
|
210
|
+
((cinfo)->err->msg_code = (code), \
|
211
|
+
(*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo)))
|
212
|
+
#define ERREXIT1(cinfo,code,p1) \
|
213
|
+
((cinfo)->err->msg_code = (code), \
|
214
|
+
(cinfo)->err->msg_parm.i[0] = (p1), \
|
215
|
+
(*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo)))
|
216
|
+
#define ERREXIT2(cinfo,code,p1,p2) \
|
217
|
+
((cinfo)->err->msg_code = (code), \
|
218
|
+
(cinfo)->err->msg_parm.i[0] = (p1), \
|
219
|
+
(cinfo)->err->msg_parm.i[1] = (p2), \
|
220
|
+
(*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo)))
|
221
|
+
#define ERREXIT3(cinfo,code,p1,p2,p3) \
|
222
|
+
((cinfo)->err->msg_code = (code), \
|
223
|
+
(cinfo)->err->msg_parm.i[0] = (p1), \
|
224
|
+
(cinfo)->err->msg_parm.i[1] = (p2), \
|
225
|
+
(cinfo)->err->msg_parm.i[2] = (p3), \
|
226
|
+
(*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo)))
|
227
|
+
#define ERREXIT4(cinfo,code,p1,p2,p3,p4) \
|
228
|
+
((cinfo)->err->msg_code = (code), \
|
229
|
+
(cinfo)->err->msg_parm.i[0] = (p1), \
|
230
|
+
(cinfo)->err->msg_parm.i[1] = (p2), \
|
231
|
+
(cinfo)->err->msg_parm.i[2] = (p3), \
|
232
|
+
(cinfo)->err->msg_parm.i[3] = (p4), \
|
233
|
+
(*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo)))
|
234
|
+
#define ERREXIT6(cinfo,code,p1,p2,p3,p4,p5,p6) \
|
235
|
+
((cinfo)->err->msg_code = (code), \
|
236
|
+
(cinfo)->err->msg_parm.i[0] = (p1), \
|
237
|
+
(cinfo)->err->msg_parm.i[1] = (p2), \
|
238
|
+
(cinfo)->err->msg_parm.i[2] = (p3), \
|
239
|
+
(cinfo)->err->msg_parm.i[3] = (p4), \
|
240
|
+
(cinfo)->err->msg_parm.i[4] = (p5), \
|
241
|
+
(cinfo)->err->msg_parm.i[5] = (p6), \
|
242
|
+
(*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo)))
|
243
|
+
#define ERREXITS(cinfo,code,str) \
|
244
|
+
((cinfo)->err->msg_code = (code), \
|
245
|
+
strncpy((cinfo)->err->msg_parm.s, (str), JMSG_STR_PARM_MAX), \
|
246
|
+
(*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo)))
|
247
|
+
|
248
|
+
#define MAKESTMT(stuff) do { stuff } while (0)
|
249
|
+
|
250
|
+
/* Nonfatal errors (we can keep going, but the data is probably corrupt) */
|
251
|
+
#define WARNMS(cinfo,code) \
|
252
|
+
((cinfo)->err->msg_code = (code), \
|
253
|
+
(*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), -1))
|
254
|
+
#define WARNMS1(cinfo,code,p1) \
|
255
|
+
((cinfo)->err->msg_code = (code), \
|
256
|
+
(cinfo)->err->msg_parm.i[0] = (p1), \
|
257
|
+
(*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), -1))
|
258
|
+
#define WARNMS2(cinfo,code,p1,p2) \
|
259
|
+
((cinfo)->err->msg_code = (code), \
|
260
|
+
(cinfo)->err->msg_parm.i[0] = (p1), \
|
261
|
+
(cinfo)->err->msg_parm.i[1] = (p2), \
|
262
|
+
(*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), -1))
|
263
|
+
|
264
|
+
/* Informational/debugging messages */
|
265
|
+
#define TRACEMS(cinfo,lvl,code) \
|
266
|
+
((cinfo)->err->msg_code = (code), \
|
267
|
+
(*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)))
|
268
|
+
#define TRACEMS1(cinfo,lvl,code,p1) \
|
269
|
+
((cinfo)->err->msg_code = (code), \
|
270
|
+
(cinfo)->err->msg_parm.i[0] = (p1), \
|
271
|
+
(*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)))
|
272
|
+
#define TRACEMS2(cinfo,lvl,code,p1,p2) \
|
273
|
+
((cinfo)->err->msg_code = (code), \
|
274
|
+
(cinfo)->err->msg_parm.i[0] = (p1), \
|
275
|
+
(cinfo)->err->msg_parm.i[1] = (p2), \
|
276
|
+
(*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)))
|
277
|
+
#define TRACEMS3(cinfo,lvl,code,p1,p2,p3) \
|
278
|
+
MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \
|
279
|
+
_mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); \
|
280
|
+
(cinfo)->err->msg_code = (code); \
|
281
|
+
(*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); )
|
282
|
+
#define TRACEMS4(cinfo,lvl,code,p1,p2,p3,p4) \
|
283
|
+
MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \
|
284
|
+
_mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); _mp[3] = (p4); \
|
285
|
+
(cinfo)->err->msg_code = (code); \
|
286
|
+
(*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); )
|
287
|
+
#define TRACEMS5(cinfo,lvl,code,p1,p2,p3,p4,p5) \
|
288
|
+
MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \
|
289
|
+
_mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); _mp[3] = (p4); \
|
290
|
+
_mp[4] = (p5); \
|
291
|
+
(cinfo)->err->msg_code = (code); \
|
292
|
+
(*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); )
|
293
|
+
#define TRACEMS8(cinfo,lvl,code,p1,p2,p3,p4,p5,p6,p7,p8) \
|
294
|
+
MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \
|
295
|
+
_mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); _mp[3] = (p4); \
|
296
|
+
_mp[4] = (p5); _mp[5] = (p6); _mp[6] = (p7); _mp[7] = (p8); \
|
297
|
+
(cinfo)->err->msg_code = (code); \
|
298
|
+
(*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); )
|
299
|
+
#define TRACEMSS(cinfo,lvl,code,str) \
|
300
|
+
((cinfo)->err->msg_code = (code), \
|
301
|
+
strncpy((cinfo)->err->msg_parm.s, (str), JMSG_STR_PARM_MAX), \
|
302
|
+
(*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)))
|
303
|
+
|
304
|
+
#endif /* JERROR_H */
|