require_relative "base_convert" require "fileutils" require "isodoc" require_relative "metadata" module IsoDoc module Ogc # A {Converter} implementation that generates PDF HTML output, and a # document schema encapsulation of the document for validation class PdfConvert < IsoDoc::PdfConvert def initialize(options) @libdir = File.dirname(__FILE__) super #FileUtils.cp html_doc_path('logo.jpg'), "logo.jpg" #@files_to_delete << "logo.jpg" end def default_fonts(options) { bodyfont: (options[:script] == "Hans" ? '"SimSun",serif' : '"Overpass",sans-serif'), headerfont: (options[:script] == "Hans" ? '"SimHei",sans-serif' : '"Overpass",sans-serif'), monospacefont: '"Space Mono",monospace' } end def default_file_locations(_options) { htmlstylesheet: html_doc_path("htmlstyle.scss"), htmlcoverpage: html_doc_path("html_ogc_titlepage.html"), htmlintropage: html_doc_path("html_ogc_intro.html"), scripts_pdf: html_doc_path("scripts.pdf.html"), } end def metadata_init(lang, script, labels) @meta = Metadata.new(lang, script, labels) end def googlefonts <<~HEAD.freeze HEAD end def admonition_class(node) case node["type"] when "important" then "Admonition.Important" when "warning" then "Admonition.Warning" else "Admonition" end end def make_body(xml, docxml) body_attr = { lang: "EN-US", link: "blue", vlink: "#954F72", "xml:lang": "EN-US", class: "container" } xml.body **body_attr do |body| make_body1(body, docxml) make_body2(body, docxml) make_body3(body, docxml) end end def html_toc(docxml) docxml end def make_body3(body, docxml) body.div **{ class: "main-section" } do |div3| @prefacenum = 0 boilerplate docxml, div3 abstract docxml, div3 keywords docxml, div3 foreword docxml, div3 introduction docxml, div3 submittingorgs docxml, div3 submitters docxml, div3 middle docxml, div3 footnotes div3 comments div3 end end def authority_cleanup(docxml) authority_cleanup1(docxml, "contact") super end include BaseConvert end end end