--- /dev/null
+from sys import *
+from pdflib_py import *
+p = PDF_new()
+PDF_open_file(p, "links.pdf")
+
+PDF_set_parameter(p, "usercoordinates", "true")
+PDF_set_info(p, "Creator", "links.py")
+
+width=200
+height=200
+
+PDF_begin_page(p, width, height)
+def draw_link(x1,y1,x2,y2,url):
+ action = PDF_create_action(p, "URI", "url="+url);
+ optlist = "action={activate "+str(action)+"} linewidth=5"
+ PDF_create_annotation(p, x1,y1,x2,y2, "Link", optlist);
+draw_link(0, 0, 100, 100, "http://www.swftools.org")
+draw_link(0, 100, 100, 200, "http://www.quiss.org")
+PDF_end_page(p)
+
+PDF_begin_page(p, width, height)
+draw_link(0, 0, 100, 100, "http://www.pdf2swf.org")
+PDF_end_page(p)
+
+PDF_close(p)
+PDF_delete(p);
--- /dev/null
+require File.dirname(__FILE__) + '/spec_helper'
+
+describe "pdf conversion" do
+ convert_file "links.pdf" do
+ area_at(0,0,200,200).should_contain_link("http://www.swftools.org")
+ area_at(0,0,200,200).should_contain_link("http://www.pdf2swf.org")
+ area_at(0,0,200,200).should_contain_link("http://www.quiss.org")
+ end
+end
text2 = @file.get_text(@x1,@y1,@x2,@y2)
text2 == text or raise AreaError.new(self, "doesn't contain text \"#{text}\" (found: \"#{text2}\")")
end
+ def should_contain_link(url)
+ links = @file.get_links(@x1,@y1,@x2,@y2)
+ (links & [url]) or raise AreaError.new(self, "doesn't contain url \"#{url}\")
+ end
def to_s
"(#{@x1},#{@y1},#{@x2},#{@y2})"
end
#puts `swfstrings -x #{x1} -y #{y1} -W #{x2-x1} -H #{y2-y1} #{@swfname}`
`swfstrings -x #{x1} -y #{y1} -W #{x2-x1} -H #{y2-y1} #{@swfname}`.chomp
end
+ def get_links(x1,y1,x2,y2)
+ self.convert()
+ `swfdump -a #{@swfname}`.scan(/GetUrl2? URL:"([^"]*)"/).inject([]) do |a,u| a + u end
+ end
def get_area(x1,y1,x2,y2)
self.render()
data = @img.export_pixels(x1, y1, x2-x1, y2-y1, "RGB")