Class: Libis::Format::Converter::PdfConverter
- Inherits:
-
Base
- Object
- Base
- Libis::Format::Converter::PdfConverter
show all
- Defined in:
- lib/libis/format/converter/pdf_converter.rb
Overview
noinspection DuplicatedCode
Constant Summary
collapse
- OPTIONS_TABLE =
{
title: 'md_title',
author: 'md_author',
creator: 'md_creator',
keywords: 'md_keywords',
subject: 'md_subject'
}
Instance Attribute Summary
Attributes inherited from Base
#flags, #options
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Base
category, #check_file_exist, inherited, #initialize, #using_temp, using_temp
Class Method Details
17
18
19
|
# File 'lib/libis/format/converter/pdf_converter.rb', line 17
def self.input_types
[:PDF]
end
|
.output_types(format = nil) ⇒ Object
21
22
23
24
|
# File 'lib/libis/format/converter/pdf_converter.rb', line 21
def self.output_types(format = nil)
return [] unless input_types.include?(format) if format
[:PDF, :PDFA]
end
|
Instance Method Details
#author(v) ⇒ Object
30
31
32
|
# File 'lib/libis/format/converter/pdf_converter.rb', line 30
def author(v)
@options[:author] = v.blank? ? nil : v
end
|
#convert(source, target, format, opts = {}) ⇒ Object
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
# File 'lib/libis/format/converter/pdf_converter.rb', line 52
def convert(source, target, format, opts = {})
super
result = nil
unless @options.empty?
result = convert_pdf(source, target)
return nil unless result
source = result
end
if format == :PDFA and source
result = pdf_to_pdfa(source, target)
end
result
end
|
#convert_pdf(source, target) ⇒ Object
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
# File 'lib/libis/format/converter/pdf_converter.rb', line 79
def convert_pdf(source, target)
using_temp(target) do |tmpname|
result = Libis::Format::Tool::PdfCopy.run(
source, tmpname,
@options.map {|k, v|
if v.nil?
nil
else
k = OPTIONS_TABLE[k] || k
["--#{k}", (v.is_a?(Array) ? v : v.to_s)]
end}.compact.flatten
)
unless result[:err].empty?
error("Pdf conversion encountered errors:\n%s", result[:err].join(join("\n")))
next nil
end
tmpname
end
end
|
#creator(v) ⇒ Object
34
35
36
|
# File 'lib/libis/format/converter/pdf_converter.rb', line 34
def creator(v)
@options[:creator] = v.blank? ? nil : v
end
|
#keywords(v) ⇒ Object
38
39
40
|
# File 'lib/libis/format/converter/pdf_converter.rb', line 38
def keywords(v)
@options[:keywords] = v.blank? ? nil : v
end
|
#pdf_to_pdfa(source, target) ⇒ Object
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
# File 'lib/libis/format/converter/pdf_converter.rb', line 101
def pdf_to_pdfa(source, target)
using_temp(target) do |tmpname|
result = Libis::Format::Tool::PdfToPdfa.run source, tmpname
if result[:status] != 0
error("Pdf/A conversion encountered errors:\n%s", result[:err].join("\n"))
next nil
else
warn("Pdf/A conversion warnings:\n%s", result[:err].join("\n")) unless result[:err].empty?
end
tmpname
end
end
|
#range(selection) ⇒ Object
Select a partial list of pages
48
49
50
|
# File 'lib/libis/format/converter/pdf_converter.rb', line 48
def range(selection)
@options[:ranges] = selection.blank? ? nil : selection
end
|
#subject(v) ⇒ Object
42
43
44
|
# File 'lib/libis/format/converter/pdf_converter.rb', line 42
def subject(v)
@options[:subject] = v.blank? ? nil : v
end
|
#title(v) ⇒ Object
26
27
28
|
# File 'lib/libis/format/converter/pdf_converter.rb', line 26
def title(v)
@options[:title] = v.blank? ? nil : v
end
|