Sha256: d38f9635367808f1b04c6cb479f1ec714cfbdabbdeb5042a8b82953b81b5b5ed

Contents?: true

Size: 1.2 KB

Versions: 1

Compression:

Stored size: 1.2 KB

Contents

require 'pdf_writing_tools_actions'
require 'pdf_writing_tools_process'

module PdfWritingTools
  # Disegna nel pdf (prawn), il testo rappresentato da xml_object
  # La proprietà .name di xml_object, deve essere uguale a 'nothtml', altrimenti,
  # non viene prodotto nulla.
  # Al momento, vengono processati i seguenti tag:
  # p   (paragrafo)
  # ul  (lista non ordinata)
  # li  (elemento di lista non ordinata)
  # b   (grassetto)
  # i   (italico)
  # Altri tag non in elenco, vengono ignorati o causano errore
  def self.draw_xml_object(pdf, xml_object)
    # Ottengo una lista di azioni, ciascuna delle quali, quando eseguita,
    # permette di disegnare una parte del documento xml all'interno del pdf
    actions_list = get_actions_list(xml_object)

    # "Eseguo" le azioni contenute nella lista
    PdfWritingToolsActions.execute_actions(pdf, actions_list, nil, [])
  end

  # Produce le actions necessarie per disegnare nel PDF l'intero documento
  # XML
  def self.get_actions_list(xml_object)
    actions_list = []
    if xml_object.name == 'nothtml'
      xml_object.children.each do |child|
        actions_list += PdfWritingToolsProcess.process_xml_obj(child, [])
      end
    end
    actions_list
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
pdf_writing_tools-0.0.10 lib/pdf_writing_tools.rb