pdftoruby 0.0.4 → 0.0.5
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.
- data/History.txt +4 -0
- data/README.txt +2 -3
- data/Rakefile +2 -0
- data/bin/pdftoruby.rb +47 -8
- data/lib/pdf-extended-ops.rb +8 -1
- data/lib/pdftoruby.rb +1 -1
- metadata +3 -3
data/History.txt
CHANGED
data/README.txt
CHANGED
@@ -10,10 +10,9 @@ Convert pdf files into ruby classes - allow creation of complex pdf files from e
|
|
10
10
|
|
11
11
|
Support for text
|
12
12
|
Support for Line Graphics
|
13
|
-
Support for Images (Indexed Color)
|
13
|
+
Support for Images (Indexed Color, and DeviceRGB)
|
14
14
|
|
15
15
|
Problems:
|
16
|
-
JPG Embedded Images not supported
|
17
16
|
|
18
17
|
== SYNOPSIS:
|
19
18
|
|
@@ -25,7 +24,7 @@ A subdirectory of the name MyPdf will be created with resources.
|
|
25
24
|
|
26
25
|
== REQUIREMENTS:
|
27
26
|
|
28
|
-
PDF::Reader (
|
27
|
+
PDF::Reader (Version .072)
|
29
28
|
PDF::Writer
|
30
29
|
|
31
30
|
== INSTALL:
|
data/Rakefile
CHANGED
@@ -7,6 +7,8 @@ require './lib/pdftoruby.rb'
|
|
7
7
|
Hoe.new('pdftoruby', Pdftoruby::VERSION) do |p|
|
8
8
|
p.rubyforge_name = 'pdftoruby' # if different than lowercase project name
|
9
9
|
p.developer('glennswest', 'glennswest@yahoo.com.sg')
|
10
|
+
p.need_zip = false
|
11
|
+
p.need_tar = false
|
10
12
|
end
|
11
13
|
|
12
14
|
# vim: syntax=Ruby
|
data/bin/pdftoruby.rb
CHANGED
@@ -329,18 +329,14 @@ class PDFReceiver < PDF::Reader
|
|
329
329
|
end
|
330
330
|
|
331
331
|
def begin_page(values)
|
332
|
-
pp values
|
333
332
|
rotate_value = values[:Rotate]
|
334
333
|
media_box = values[:MediaBox]
|
335
|
-
pp rotate_value
|
336
334
|
if rotate_value == 90.0
|
337
335
|
mypaper = ":paper => [#{media_box[0]}, #{media_box[1]}, #{media_box[2]}, #{media_box[3]}]"
|
338
|
-
pp mypaper
|
339
336
|
# @ruby.printf(" @pdf = PDF::Writer.new(:orientation => :landscape,#{mypaper})\n")
|
340
337
|
@ruby.printf(" @pdf = PDF::Writer.new(#{mypaper})\n")
|
341
338
|
else
|
342
339
|
mypaper = ":paper => [#{media_box[0]}, #{media_box[1]}, #{media_box[2]}, #{media_box[3]}]"
|
343
|
-
pp mypaper
|
344
340
|
@ruby.printf(" @pdf = PDF::Writer.new(#{mypaper})\n")
|
345
341
|
end
|
346
342
|
#@ruby.printf(" @pdf = PDF::Writer.new\n")
|
@@ -527,13 +523,49 @@ class PDFReceiver < PDF::Reader
|
|
527
523
|
@ruby.printf(" @pdf.concatenate_matrix(#{a},#{b},#{c},#{d},#{e},#{f})\n")
|
528
524
|
end
|
529
525
|
|
526
|
+
# specs For Jpeg
|
527
|
+
#{:ColorSpace=>:DeviceRGB,
|
528
|
+
# :Length=>1190.0,
|
529
|
+
# :Width=>625.0,
|
530
|
+
# :DecodeParms=>{:Predictor=>15.0, :Columns=>625.0, :Colors=>3.0},
|
531
|
+
# :Filter=>:FlateDecode,
|
532
|
+
# :Height=>21.0,
|
533
|
+
# :BitsPerComponent=>8.0,
|
534
|
+
# :Subtype=>:Image}
|
535
|
+
#
|
536
|
+
# specs for index color
|
537
|
+
#{:ColorSpace=>
|
538
|
+
# [:Indexed,
|
539
|
+
# [:ICCBased,
|
540
|
+
# ....data....
|
541
|
+
#:Type=>:XObject,
|
542
|
+
# :BitsPerComponent=>8.0,
|
543
|
+
# :Length=>3701.0,
|
544
|
+
# :Width=>453.0,
|
545
|
+
# :Filter=>:FlateDecode,
|
546
|
+
# :Height=>61.0,
|
547
|
+
# :Subtype=>:Image}
|
548
|
+
|
530
549
|
def resource_xobject(name,image_data)
|
531
550
|
specs = image_data.hash
|
551
|
+
dir_name = @rubyclass.to_s
|
552
|
+
spec_name = dir_name + "/" + name.to_s + ".spec"
|
553
|
+
spec = File.open(spec_name,"w")
|
554
|
+
spec.puts specs
|
555
|
+
spec.close
|
532
556
|
colorspace = specs[:ColorSpace]
|
557
|
+
filename = String.new(name.to_s)
|
558
|
+
width = specs[:Width]
|
559
|
+
height = specs[:Height]
|
560
|
+
if colorspace == :DeviceRGB
|
561
|
+
external_rgb_image(filename,image_data,width,height)
|
562
|
+
return
|
563
|
+
end
|
564
|
+
# Handle index color image
|
533
565
|
colorspacetype = colorspace[0]
|
534
566
|
if colorspacetype.to_s == "Indexed"
|
535
|
-
|
536
|
-
|
567
|
+
cdata = String.new(colorspace[3])
|
568
|
+
end
|
537
569
|
filename = String.new(name.to_s)
|
538
570
|
width = specs[:Width]
|
539
571
|
height = specs[:Height]
|
@@ -562,10 +594,18 @@ class PDFReceiver < PDF::Reader
|
|
562
594
|
|
563
595
|
|
564
596
|
|
597
|
+
def external_rgb_image(name,data,width,height)
|
598
|
+
dir_name = @rubyclass.to_s
|
599
|
+
FileUtils.mkdir_p dir_name
|
600
|
+
jpg_name = dir_name + "/" + name + ".jpg"
|
601
|
+
jpg = File.open(jpg_name,"wb")
|
602
|
+
jpg.write data
|
603
|
+
jpg.close
|
604
|
+
end
|
605
|
+
|
565
606
|
def external_image(name,data,width,height,cdata)
|
566
607
|
dir_name = @rubyclass.to_s
|
567
608
|
FileUtils.mkdir_p dir_name
|
568
|
-
pp dir_name
|
569
609
|
raw_name = dir_name + "/" + name + ".raw"
|
570
610
|
cs_name = dir_name + "/" + name + ".cs"
|
571
611
|
png_name = dir_name + "/" + name + ".png"
|
@@ -594,7 +634,6 @@ class PDFReceiver < PDF::Reader
|
|
594
634
|
end
|
595
635
|
end
|
596
636
|
png = PNG.new canvas
|
597
|
-
pp png_name
|
598
637
|
png.save png_name
|
599
638
|
end
|
600
639
|
|
data/lib/pdf-extended-ops.rb
CHANGED
@@ -38,7 +38,14 @@ class PDF::Writer
|
|
38
38
|
def invoke_xobject(form,name)
|
39
39
|
dir_name = @rubyclass.to_s
|
40
40
|
png_name = form + "/" + name + ".png"
|
41
|
-
|
41
|
+
jpg_name = form + "/" + name + ".jpg"
|
42
|
+
if File.exists?(jpg_name)
|
43
|
+
the_name = jpg_name
|
44
|
+
end
|
45
|
+
if File.exists?(png_name)
|
46
|
+
the_name = png_name
|
47
|
+
end
|
48
|
+
myimage(the_name, name)
|
42
49
|
add_content("\n/#{name} Do")
|
43
50
|
end
|
44
51
|
|
data/lib/pdftoruby.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pdftoruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- glennswest
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-05-
|
12
|
+
date: 2008-05-23 00:00:00 +08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -19,7 +19,7 @@ dependencies:
|
|
19
19
|
requirements:
|
20
20
|
- - ">="
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 1.5.
|
22
|
+
version: 1.5.3
|
23
23
|
version:
|
24
24
|
description: Convert pdf files into ruby classes - allow creation of complex pdf files from existing pdf files
|
25
25
|
email:
|