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 CHANGED
@@ -1,3 +1,7 @@
1
+ === 0.0.5 / 2008-05-23
2
+
3
+ * Added support for DeviceRGB or "jpg" images embedded in pdf files
4
+
1
5
  === 0.0.4 / 2008-05-20
2
6
 
3
7
  * 3 major enhancement
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 (Currently from SVN as of May 20, 2008
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
- cdata = String.new(colorspace[3])
536
- end
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
 
@@ -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
- myimage(png_name, name)
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
@@ -1,3 +1,3 @@
1
1
  class Pdftoruby
2
- VERSION = '0.0.4'
2
+ VERSION = '0.0.5'
3
3
  end
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
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-20 00:00:00 +08:00
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.1
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: