Skip to content

Instantly share code, notes, and snippets.

@jgautheron
Forked from pietrop/issuu_downloader.rb
Created June 27, 2017 18:26
Show Gist options
  • Save jgautheron/9c4ad57bda0d185b38133ed8a2122b3c to your computer and use it in GitHub Desktop.
Save jgautheron/9c4ad57bda0d185b38133ed8a2122b3c to your computer and use it in GitHub Desktop.
To download magazine from issuu.com when the download option has been disabled. in practice the script doesn't actually download the pdf, but rather download the images of the pages of the flash object and then combines those into a pdf
require 'mechanize'
require 'prawn'
=begin
running from terminal to download any pdf from issuu.com, given
- magazine name
- page count
- document-id
=end
prompt = "> "
puts "What is the name of the magazine you'd like to download from issuu.com? ps: this will be the name of your pdf file\n"
print prompt
magazine_name = gets.chomp
puts "How many pages does it have?\n ie 104\n"
print prompt
page_number = gets.chomp
puts "document Id? \n to get the 'document-id' inspect page in chrome,\n search for document-id and paste here,\n ie 140601160255-3a4c0f75ec731801ef369f5000f03104\n"
print prompt
document_id = gets.chomp
for i in 1..page_number.to_i
print "downloading\tpage n #{i}\n"
agent = Mechanize.new
link = "http://image.issuu.com/#{document_id.to_s}/jpg/page_#{i.to_s}.jpg"
agent.get(link).save "page_#{i.to_s}.jpg"
print "downloaded\tpage n #{i}\n"
end
print "images from 1 to #{page_number.to_s} downloaded as jpg\n"
########to combine all images into a pdf
Prawn::Document.generate("#{magazine_name}.pdf", :page_layout => :portrait) do |pdf|
for i in 1..page_number.to_i
pdf.image "page_#{i.to_s}.jpg", :at => [0,750], :width => 530
pdf.start_new_page
end#end of loop
end
print "images from 1 to #{page_number.to_s} combined into pdf \n"
########to delete all images, once pdf as been created, to clean up a bit
for i in 1..page_number.to_i
File.delete("page_#{i.to_s}.jpg")
end#end of prawn
print "images from 1 to #{page_number.to_s} deleted \n"
# print "your pdf #{magazine_name}.pdf is in: \n #{Dir.pwd}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment