class Softcover::Builders::Preview
Public Instance Methods
build!()
click to toggle source
# File lib/softcover/builders/preview.rb, line 5 def build! if article? $stderr.puts "Previews not supported for articles" exit(1) end # Recall that MOBI generation makes an EPUB as a side-effect. Softcover::Builders::Mobi.new.build!(preview: true) Softcover::Builders::Pdf.new.build!(preview: true) extract_pdf_pages end
Private Instance Methods
extract_pdf_pages()
click to toggle source
Extracts pages from the PDF using GhostScript. The page range is set by the `pdf_preview_page_range` parameter in book.yml so that authors can override the default range.
# File lib/softcover/builders/preview.rb, line 21 def extract_pdf_pages input = File.join('ebooks', manifest.filename + '.pdf') output = input.sub('.pdf', '-preview.pdf') unless manifest.respond_to?(:pdf_preview_page_range) $stderr.puts("Error: Preview not built") $stderr.puts("Define pdf_preview_page_range in config/book.yml") $stderr.puts("See http://manual.softcover.io/book/getting_started#sec-build_preview") exit(1) end range = manifest.pdf_preview_page_range.split('..').map(&:to_i) cmd = %(yes | #{ghostscript} -dBATCH -sOutputFile="#{output}") cmd += %( -dFirstPage=#{range.first} -dLastPage=#{range.last}) cmd += %( -sDEVICE=pdfwrite "#{input}" > /dev/null 2> /dev/null) execute cmd end
ghostscript()
click to toggle source
# File lib/softcover/builders/preview.rb, line 37 def ghostscript @ghostscript ||= executable(dependency_filename(:ghostscript)) end