Module: PdfOxide::MarkdownConverter

Defined in:
lib/pdf_oxide/markdown_converter.rb

Overview

Static converters from a PdfDocument to Markdown or HTML.

Mirrors ‘fyi.oxide.pdf.MarkdownConverter`. Stateless — every method takes the document handle as an argument. Per-page and whole-document variants are offered for both Markdown and HTML.

Class Method Summary collapse

Class Method Details

.to_html(doc, page_index = nil) ⇒ String

Convert a page (or the whole document) to HTML.

Parameters:

  • doc (PdfDocument)
  • page_index (Integer, nil) (defaults to: nil)

    when nil, converts the whole doc.

Returns:

  • (String)

    HTML.

Raises:



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/pdf_oxide/markdown_converter.rb', line 36

def to_html(doc, page_index = nil)
  raise ::PdfOxide::ArgumentError, 'doc cannot be nil' if doc.nil?

  err = ::FFI::MemoryPointer.new(:int32)
  ptr =
    if page_index.nil?
      Bindings.pdf_document_to_html_all(doc.handle, err)
    else
      Bindings.pdf_document_to_html(doc.handle, page_index, err)
    end
  code = err.read_int32
  raise InternalError, "to_html failed (#{code})" if code != 0

  StringMarshaller.from_c_string(ptr) || ''
end

.to_markdown(doc, page_index = nil) ⇒ String

Convert a page (or the whole document) to Markdown.

Parameters:

  • doc (PdfDocument)
  • page_index (Integer, nil) (defaults to: nil)

    when nil, converts the whole doc.

Returns:

  • (String)

    Markdown.

Raises:



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/pdf_oxide/markdown_converter.rb', line 16

def to_markdown(doc, page_index = nil)
  raise ::PdfOxide::ArgumentError, 'doc cannot be nil' if doc.nil?

  err = ::FFI::MemoryPointer.new(:int32)
  ptr =
    if page_index.nil?
      Bindings.pdf_document_to_markdown_all(doc.handle, err)
    else
      Bindings.pdf_document_to_markdown(doc.handle, page_index, err)
    end
  code = err.read_int32
  raise InternalError, "to_markdown failed (#{code})" if code != 0

  StringMarshaller.from_c_string(ptr) || ''
end