pdftoruby 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +4 -1
- data/bin/pdftoruby.rb +28 -1
- data/lib/pdftoruby.rb +1 -1
- metadata +1 -1
data/History.txt
CHANGED
data/bin/pdftoruby.rb
CHANGED
@@ -554,9 +554,14 @@ class PDFReceiver < PDF::Reader
|
|
554
554
|
spec.puts specs
|
555
555
|
spec.close
|
556
556
|
colorspace = specs[:ColorSpace]
|
557
|
+
filter = specs[:Filter]
|
557
558
|
filename = String.new(name.to_s)
|
558
559
|
width = specs[:Width]
|
559
560
|
height = specs[:Height]
|
561
|
+
if filter == :DCTDecode
|
562
|
+
external_dct_image(filename,image_data,width,height)
|
563
|
+
return
|
564
|
+
end
|
560
565
|
if colorspace == :DeviceRGB
|
561
566
|
external_rgb_image(filename,image_data,width,height)
|
562
567
|
return
|
@@ -594,7 +599,7 @@ class PDFReceiver < PDF::Reader
|
|
594
599
|
|
595
600
|
|
596
601
|
|
597
|
-
def
|
602
|
+
def external_dct_image(name,data,width,height)
|
598
603
|
dir_name = @rubyclass.to_s
|
599
604
|
FileUtils.mkdir_p dir_name
|
600
605
|
jpg_name = dir_name + "/" + name + ".jpg"
|
@@ -603,6 +608,28 @@ class PDFReceiver < PDF::Reader
|
|
603
608
|
jpg.close
|
604
609
|
end
|
605
610
|
|
611
|
+
def external_rgb_image(name,data,width,height)
|
612
|
+
dir_name = @rubyclass.to_s
|
613
|
+
FileUtils.mkdir_p dir_name
|
614
|
+
raw_name = dir_name + "/" + name + ".raw"
|
615
|
+
png_name = dir_name + "/" + name + ".png"
|
616
|
+
raw = File.open(raw_name,"wb")
|
617
|
+
raw.write data
|
618
|
+
raw.close
|
619
|
+
#need to convert the RGB file to PNG
|
620
|
+
canvas = PNG::Canvas.new width, height
|
621
|
+
offset = 0
|
622
|
+
for x in (0..height-1)
|
623
|
+
offset = offset + 1 # A per line transparrency value?
|
624
|
+
for y in (0..width-1)
|
625
|
+
canvas[y,x] = PNG::Color.new 255 - data[offset], 255 - data[offset+1], 255 - data[offset+2], 0x00
|
626
|
+
offset = offset + 3
|
627
|
+
end
|
628
|
+
end
|
629
|
+
png = PNG.new canvas
|
630
|
+
png.save png_name
|
631
|
+
end
|
632
|
+
|
606
633
|
def external_image(name,data,width,height,cdata)
|
607
634
|
dir_name = @rubyclass.to_s
|
608
635
|
FileUtils.mkdir_p dir_name
|
data/lib/pdftoruby.rb
CHANGED