-
-
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
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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