docverter-server 1.0.1-java → 1.0.2-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.vendor_urls +2 -2
- data/Gemfile.lock +2 -1
- data/Procfile +1 -1
- data/README.md +4 -0
- data/config.ru +1 -0
- data/doc/api.md +15 -4
- data/doc/examples/php/markdown_to_pdf.php +26 -0
- data/doc/examples/{html_to_encrypted_pdf → shell/html_to_encrypted_pdf}/convert.sh +0 -0
- data/doc/examples/{html_to_encrypted_pdf → shell/html_to_encrypted_pdf}/imfeldoublepica.ttf +0 -0
- data/doc/examples/{html_to_encrypted_pdf → shell/html_to_encrypted_pdf}/input.html +0 -0
- data/doc/examples/{html_to_encrypted_pdf → shell/html_to_encrypted_pdf}/marcellus.ttf +0 -0
- data/doc/examples/{html_to_encrypted_pdf → shell/html_to_encrypted_pdf}/stylesheet.css +0 -0
- data/doc/examples/{html_to_pdf → shell/html_to_pdf}/convert.sh +0 -0
- data/doc/examples/{html_to_pdf → shell/html_to_pdf}/imfeldoublepica.ttf +0 -0
- data/doc/examples/{html_to_pdf → shell/html_to_pdf}/input.html +0 -0
- data/doc/examples/{html_to_pdf → shell/html_to_pdf}/marcellus.ttf +0 -0
- data/doc/examples/{html_to_pdf → shell/html_to_pdf}/stylesheet.css +0 -0
- data/doc/examples/{markdown_to_epub → shell/markdown_to_epub}/chapter1.md +0 -0
- data/doc/examples/{markdown_to_epub → shell/markdown_to_epub}/chapter2.md +0 -0
- data/doc/examples/{markdown_to_epub → shell/markdown_to_epub}/convert.sh +0 -0
- data/doc/examples/{markdown_to_epub → shell/markdown_to_epub}/document-open.png +0 -0
- data/doc/examples/{markdown_to_epub → shell/markdown_to_epub}/markdown_to_epub.epub +0 -0
- data/doc/examples/{markdown_to_epub → shell/markdown_to_epub}/markdown_to_epub.epub.html +0 -0
- data/doc/examples/{markdown_to_epub → shell/markdown_to_epub}/metadata.xml +0 -0
- data/doc/examples/{markdown_to_epub → shell/markdown_to_epub}/stylesheet.css +0 -0
- data/doc/examples/{markdown_to_epub → shell/markdown_to_epub}/title.txt +0 -0
- data/doc/examples/{markdown_to_mobi → shell/markdown_to_mobi}/chapter1.md +0 -0
- data/doc/examples/{markdown_to_mobi → shell/markdown_to_mobi}/chapter2.md +0 -0
- data/doc/examples/{markdown_to_mobi → shell/markdown_to_mobi}/convert.sh +0 -0
- data/doc/examples/{markdown_to_mobi → shell/markdown_to_mobi}/document-open.png +0 -0
- data/doc/examples/{markdown_to_mobi → shell/markdown_to_mobi}/metadata.xml +0 -0
- data/doc/examples/{markdown_to_mobi → shell/markdown_to_mobi}/stylesheet.css +0 -0
- data/doc/examples/{markdown_to_mobi → shell/markdown_to_mobi}/title.txt +0 -0
- data/doc/examples/{markdown_to_pdf → shell/markdown_to_pdf}/chapter1.md +0 -0
- data/doc/examples/{markdown_to_pdf → shell/markdown_to_pdf}/chapter2.md +0 -0
- data/doc/examples/{markdown_to_pdf → shell/markdown_to_pdf}/convert.sh +0 -0
- data/doc/examples/{markdown_to_pdf → shell/markdown_to_pdf}/imfeldoublepica.ttf +0 -0
- data/doc/examples/{markdown_to_pdf → shell/markdown_to_pdf}/manifest.yml +0 -0
- data/doc/examples/{markdown_to_pdf → shell/markdown_to_pdf}/marcellus.ttf +0 -0
- data/doc/examples/{markdown_to_pdf → shell/markdown_to_pdf}/stylesheet.css +0 -0
- data/docverter.gemspec +1 -0
- data/lib/docverter-server/app.rb +5 -0
- data/lib/docverter-server/error.rb +13 -0
- data/lib/docverter-server/error_handler.rb +23 -0
- data/lib/docverter-server/jars/tag_config.xml +316 -0
- data/lib/docverter-server/manifest.rb +3 -5
- data/lib/docverter-server/runner/base.rb +10 -3
- data/lib/docverter-server/runner/pdf.rb +2 -1
- data/lib/docverter-server/version.rb +1 -1
- data/lib/docverter-server.rb +2 -0
- metadata +57 -35
data/.vendor_urls
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
https://s3.amazonaws.com/docverter-binaries/calibre.tar.gz
|
2
|
-
https://s3.amazonaws.com/docverter-binaries/pandoc.tar.gz
|
3
|
-
https://s3.amazonaws.com/docverter-binaries/pandoc-templates.tar.gz
|
2
|
+
https://s3.amazonaws.com/docverter-binaries/pandoc-1.12.0.2.tar.gz
|
3
|
+
https://s3.amazonaws.com/docverter-binaries/pandoc-templates-1.12.0.2.tar.gz
|
data/Gemfile.lock
CHANGED
data/Procfile
CHANGED
@@ -1 +1 @@
|
|
1
|
-
web: mizuno -I lib -p $PORT
|
1
|
+
web: bundle exec mizuno -I lib -p $PORT
|
data/README.md
CHANGED
data/config.ru
CHANGED
data/doc/api.md
CHANGED
@@ -8,20 +8,31 @@ Conversions
|
|
8
8
|
|
9
9
|
The API has one endpoint:
|
10
10
|
|
11
|
-
POST
|
11
|
+
POST http://c.docverter.com/convert
|
12
12
|
|
13
13
|
The contents of your POST should be `multipart/form-data` and consist of your input file(s) and options which describe your conversion. For example:
|
14
14
|
|
15
|
-
curl
|
15
|
+
curl \
|
16
16
|
--form input_files[]=@chapter1.md \
|
17
17
|
--form input_files[]=@chapter2.md \
|
18
18
|
--form input_files[]=@chapter3.md \
|
19
19
|
--form from=markdown \
|
20
20
|
--form to=pdf \
|
21
21
|
--form css=stylesheet.css \
|
22
|
-
--form other_files[]=@stylesheet.css
|
22
|
+
--form other_files[]=@stylesheet.css \
|
23
|
+
http://c.docverter.com/convert
|
24
|
+
|
25
|
+
You can also use [httpie](https://github.com/jkbr/httpie), another `curl`-like command line tool:
|
23
26
|
|
24
|
-
|
27
|
+
http --form -f POST http://c.docverter.com/convert \
|
28
|
+
from=markdown \
|
29
|
+
to=html \
|
30
|
+
input_files[]@example.md \
|
31
|
+
--output out.html
|
32
|
+
|
33
|
+
The `examples` directory contains several examples showing off various API options.
|
34
|
+
|
35
|
+
*Note: At this time `wget` does not support `multipart/form-data` and so cannot be used to talk to Docverter*
|
25
36
|
|
26
37
|
Full Option Reference
|
27
38
|
=====================
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<?//set POST variables
|
2
|
+
$url = 'http://c.docverter.com/convert';
|
3
|
+
$fields = array('from' => 'markdown',
|
4
|
+
'to' => 'pdf',
|
5
|
+
'input_files[]' => "@/".realpath('markdown.md').";type=text/x-markdown; charset=UTF-8"
|
6
|
+
);
|
7
|
+
|
8
|
+
//open connection
|
9
|
+
$ch = curl_init();
|
10
|
+
|
11
|
+
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-type: multipart/form-data"));
|
12
|
+
curl_setopt($ch, CURLOPT_URL, $url);
|
13
|
+
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
|
14
|
+
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //needed so that the $result=curl_exec() output is the file and isn't just true/false
|
15
|
+
|
16
|
+
//execute post
|
17
|
+
$result = curl_exec($ch);
|
18
|
+
|
19
|
+
//close connection
|
20
|
+
curl_close($ch);
|
21
|
+
|
22
|
+
//write to file
|
23
|
+
$fp = fopen('uploads/result.pdf', 'w'); //make sure the directory markdown.md is in and the result.pdf will go to has proper permissions
|
24
|
+
fwrite($fp, $result);
|
25
|
+
fclose($fp);
|
26
|
+
?>
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/docverter.gemspec
CHANGED
data/lib/docverter-server/app.rb
CHANGED
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'multi_json'
|
2
|
+
|
3
|
+
module DocverterServer
|
4
|
+
class ErrorHandler
|
5
|
+
def initialize(app)
|
6
|
+
@app = app
|
7
|
+
end
|
8
|
+
|
9
|
+
def call(env)
|
10
|
+
begin
|
11
|
+
@app.call env
|
12
|
+
rescue => ex
|
13
|
+
env['rack.errors'].puts ex
|
14
|
+
env['rack.errors'].puts ex.backtrace.join("\n")
|
15
|
+
env['rack.errors'].flush
|
16
|
+
|
17
|
+
hash = { :error => ex.to_s }
|
18
|
+
|
19
|
+
[500, {'Content-Type' => 'application/json'}, [MultiJson.dump(hash)]]
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,316 @@
|
|
1
|
+
<!--
|
2
|
+
General description of a tag is in the following format:
|
3
|
+
|
4
|
+
<tag name="TAG NAME"
|
5
|
+
content="all | text | none"
|
6
|
+
section="all | head | body"
|
7
|
+
deprecated="true | false"
|
8
|
+
unique="true | false"
|
9
|
+
ignore-permitted="true | false">
|
10
|
+
|
11
|
+
<fatal-tags>LIST OF COMMA-SEPARATED TAGS</fatal-tags>
|
12
|
+
<req-enclosing-tags>LIST OF COMMA-SEPARATED TAGS</req-enclosing-tags>
|
13
|
+
<forbidden-tags>LIST OF COMMA-SEPARATED TAGS</forbidden-tags>
|
14
|
+
<allowed-children-tags>LIST OF COMMA-SEPARATED TAGS</allowed-children-tags>
|
15
|
+
<higher-level-tags>LIST OF COMMA-SEPARATED TAGS</higher-level-tags>
|
16
|
+
<close-before-copy-inside-tags>LIST OF COMMA-SEPARATED TAGS</close-before-copy-inside-tags>
|
17
|
+
<close-inside-copy-after-tags>LIST OF COMMA-SEPARATED TAGS</close-inside-copy-after-tags>
|
18
|
+
<close-before-tags>LIST OF COMMA-SEPARATED TAGS</close-before-tags>
|
19
|
+
|
20
|
+
</tag>
|
21
|
+
|
22
|
+
Explanation of dependancies:
|
23
|
+
|
24
|
+
* fatal tags - required outer tag - the tag will be ignored during parsing (will be skipped)
|
25
|
+
if this fatal tag is missing. For example, most web browsers ignore elements TD, TR, TBODY
|
26
|
+
if they are not in the context of TABLE tag.
|
27
|
+
* required enclosing tags - if there is no such, it is implicitely created. For example if TD
|
28
|
+
is out of TR - open TR is created before.
|
29
|
+
* forbidden tags - it is not allowed to occure inside - for example FORM cannot be inside
|
30
|
+
other FORM and it will be ignored during cleanup.
|
31
|
+
* allowed children tags - for example TR allowes TD and TH. If there are some dependant
|
32
|
+
allowed tags defined then cleaner ignores other tags, treating them as unallowed, unless
|
33
|
+
they are in some other relationship with this tag.
|
34
|
+
* higher level tags - for example for TR higher tags are THEAD, TBODY, TFOOT.
|
35
|
+
* close-before-copy-inside-tags - tags that must be closed and copied - for example, in
|
36
|
+
<a href="#"><div>.... tag A must be closed before DIV but copied again inside DIV.
|
37
|
+
* close-inside-copy-after-tags - tags that must be closed before closing this tag and copied
|
38
|
+
again after - for example, in <i><b>at</i> first</b> text tag B must be closed before
|
39
|
+
closing I, but it must be copied again after resulting finally in sequence:
|
40
|
+
<i><b>at</b></i&><b> first</b> text.
|
41
|
+
* close-before-tag - tags that simply must be closed before actual tag - for example TR will be closed
|
42
|
+
before open TABLE tag.
|
43
|
+
-->
|
44
|
+
|
45
|
+
<tags>
|
46
|
+
<tag name="div" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
47
|
+
<close-before-copy-inside-tags>a,bdo,strong,em,q,b,i,u,tt,sub,sup,big,small,strike,s,font</close-before-copy-inside-tags>
|
48
|
+
<close-before-tags>p,address,label,abbr,acronym,dfn,kbd,samp,var,cite,code,param,xml</close-before-tags>
|
49
|
+
</tag>
|
50
|
+
<tag name="bookmark" content="all" section="head" deprecated="false" unique="false" ignore-permitted="false"/>
|
51
|
+
<tag name="bookmarks" content="all" section="head" deprecated="false" unique="false" ignore-permitted="false"/>
|
52
|
+
<tag name="span" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false"/>
|
53
|
+
<tag name="meta" content="none" section="head" deprecated="false" unique="false" ignore-permitted="false"/>
|
54
|
+
<tag name="link" content="none" section="head" deprecated="false" unique="false" ignore-permitted="false"/>
|
55
|
+
<tag name="title" content="text" section="head" deprecated="false" unique="true" ignore-permitted="false"/>
|
56
|
+
<tag name="style" content="text" section="head" deprecated="false" unique="false" ignore-permitted="false"/>
|
57
|
+
<tag name="bgsound" content="none" section="head" deprecated="false" unique="false" ignore-permitted="false"/>
|
58
|
+
<tag name="h1" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
59
|
+
<close-before-copy-inside-tags>a,bdo,strong,em,q,b,i,u,tt,sub,sup,big,small,strike,s,font</close-before-copy-inside-tags>
|
60
|
+
<close-before-tags>h1,h2,h3,h4,h5,h6,p,address,label,abbr,acronym,dfn,kbd,samp,var,cite,code,param,xml</close-before-tags>
|
61
|
+
</tag>
|
62
|
+
<tag name="h2" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
63
|
+
<close-before-copy-inside-tags>a,bdo,strong,em,q,b,i,u,tt,sub,sup,big,small,strike,s,font</close-before-copy-inside-tags>
|
64
|
+
<close-before-tags>h1,h2,h3,h4,h5,h6,p,address,label,abbr,acronym,dfn,kbd,samp,var,cite,code,param,xml</close-before-tags>
|
65
|
+
</tag>
|
66
|
+
<tag name="h3" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
67
|
+
<close-before-copy-inside-tags>a,bdo,strong,em,q,b,i,u,tt,sub,sup,big,small,strike,s,font</close-before-copy-inside-tags>
|
68
|
+
<close-before-tags>h1,h2,h3,h4,h5,h6,p,address,label,abbr,acronym,dfn,kbd,samp,var,cite,code,param,xml</close-before-tags>
|
69
|
+
</tag>
|
70
|
+
<tag name="h4" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
71
|
+
<close-before-copy-inside-tags>a,bdo,strong,em,q,b,i,u,tt,sub,sup,big,small,strike,s,font</close-before-copy-inside-tags>
|
72
|
+
<close-before-tags>h1,h2,h3,h4,h5,h6,p,address,label,abbr,acronym,dfn,kbd,samp,var,cite,code,param,xml</close-before-tags>
|
73
|
+
</tag>
|
74
|
+
<tag name="h5" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
75
|
+
<close-before-copy-inside-tags>a,bdo,strong,em,q,b,i,u,tt,sub,sup,big,small,strike,s,font</close-before-copy-inside-tags>
|
76
|
+
<close-before-tags>h1,h2,h3,h4,h5,h6,p,address,label,abbr,acronym,dfn,kbd,samp,var,cite,code,param,xml</close-before-tags>
|
77
|
+
</tag>
|
78
|
+
<tag name="h6" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
79
|
+
<close-before-copy-inside-tags>a,bdo,strong,em,q,b,i,u,tt,sub,sup,big,small,strike,s,font</close-before-copy-inside-tags>
|
80
|
+
<close-before-tags>h1,h2,h3,h4,h5,h6,p,address,label,abbr,acronym,dfn,kbd,samp,var,cite,code,param,xml</close-before-tags>
|
81
|
+
</tag>
|
82
|
+
<tag name="p" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
83
|
+
<close-before-copy-inside-tags>a,bdo,strong,em,q,b,i,u,tt,sub,sup,big,small,strike,s,font</close-before-copy-inside-tags>
|
84
|
+
<close-before-tags>p,p,address,label,abbr,acronym,dfn,kbd,samp,var,cite,code,param,xml</close-before-tags>
|
85
|
+
</tag>
|
86
|
+
<tag name="strong" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false"/>
|
87
|
+
<tag name="em" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false"/>
|
88
|
+
<tag name="abbr" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false"/>
|
89
|
+
<tag name="acronym" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false"/>
|
90
|
+
<tag name="address" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
91
|
+
<close-before-copy-inside-tags>a,bdo,strong,em,q,b,i,u,tt,sub,sup,big,small,strike,s,font</close-before-copy-inside-tags>
|
92
|
+
<close-before-tags>p,address,label,abbr,acronym,dfn,kbd,samp,var,cite,code,param,xml</close-before-tags>
|
93
|
+
</tag>
|
94
|
+
<tag name="bdo" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false"/>
|
95
|
+
<tag name="blockquote" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
96
|
+
<close-before-copy-inside-tags>a,bdo,strong,em,q,b,i,u,tt,sub,sup,big,small,strike,s,font</close-before-copy-inside-tags>
|
97
|
+
<close-before-tags>p,address,label,abbr,acronym,dfn,kbd,samp,var,cite,code,param,xml</close-before-tags>
|
98
|
+
</tag>
|
99
|
+
<tag name="cite" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false"/>
|
100
|
+
<tag name="q" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false"/>
|
101
|
+
<tag name="code" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false"/>
|
102
|
+
<tag name="ins" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false"/>
|
103
|
+
<tag name="del" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false"/>
|
104
|
+
<tag name="dfn" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false"/>
|
105
|
+
<tag name="kbd" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false"/>
|
106
|
+
<tag name="pre" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
107
|
+
<close-before-copy-inside-tags>a,bdo,strong,em,q,b,i,u,tt,sub,sup,big,small,strike,s,font</close-before-copy-inside-tags>
|
108
|
+
<close-before-tags>p,address,label,abbr,acronym,dfn,kbd,samp,var,cite,code,param,xml</close-before-tags>
|
109
|
+
</tag>
|
110
|
+
<tag name="samp" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false"/>
|
111
|
+
<tag name="listing" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
112
|
+
<close-before-copy-inside-tags>a,bdo,strong,em,q,b,i,u,tt,sub,sup,big,small,strike,s,font</close-before-copy-inside-tags>
|
113
|
+
<close-before-tags>p,address,label,abbr,acronym,dfn,kbd,samp,var,cite,code,param,xml</close-before-tags>
|
114
|
+
</tag>
|
115
|
+
<tag name="var" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false"/>
|
116
|
+
<tag name="br" content="none" section="body" deprecated="false" unique="false" ignore-permitted="false"/>
|
117
|
+
<tag name="wbr" content="none" section="body" deprecated="false" unique="false" ignore-permitted="false"/>
|
118
|
+
<tag name="nobr" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
119
|
+
<close-before-tags>nobr</close-before-tags>
|
120
|
+
</tag>
|
121
|
+
<tag name="xmp" content="text" section="body" deprecated="false" unique="false" ignore-permitted="false"/>
|
122
|
+
<tag name="a" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
123
|
+
<close-before-tags>a</close-before-tags>
|
124
|
+
</tag>
|
125
|
+
<tag name="base" content="none" section="head" deprecated="false" unique="false" ignore-permitted="false"/>
|
126
|
+
<tag name="img" content="none" section="body" deprecated="false" unique="false" ignore-permitted="false"/>
|
127
|
+
<tag name="area" content="none" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
128
|
+
<fatal-tags>map</fatal-tags>
|
129
|
+
<close-before-tags>area</close-before-tags>
|
130
|
+
</tag>
|
131
|
+
<tag name="map" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
132
|
+
<close-before-tags>map</close-before-tags>
|
133
|
+
</tag>
|
134
|
+
<tag name="object" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false"/>
|
135
|
+
<tag name="param" content="none" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
136
|
+
<close-before-copy-inside-tags>a,bdo,strong,em,q,b,i,u,tt,sub,sup,big,small,strike,s,font</close-before-copy-inside-tags>
|
137
|
+
<close-before-tags>p,address,label,abbr,acronym,dfn,kbd,samp,var,cite,code,param,xml</close-before-tags>
|
138
|
+
</tag>
|
139
|
+
<tag name="applet" content="all" section="body" deprecated="true" unique="false" ignore-permitted="false"/>
|
140
|
+
<tag name="xml" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false"/>
|
141
|
+
<tag name="ul" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
142
|
+
<close-before-copy-inside-tags>a,bdo,strong,em,q,b,i,u,tt,sub,sup,big,small,strike,s,font</close-before-copy-inside-tags>
|
143
|
+
<close-before-tags>p,address,label,abbr,acronym,dfn,kbd,samp,var,cite,code,param,xml</close-before-tags>
|
144
|
+
</tag>
|
145
|
+
<tag name="ol" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
146
|
+
<close-before-copy-inside-tags>a,bdo,strong,em,q,b,i,u,tt,sub,sup,big,small,strike,s,font</close-before-copy-inside-tags>
|
147
|
+
<close-before-tags>p,address,label,abbr,acronym,dfn,kbd,samp,var,cite,code,param,xml</close-before-tags>
|
148
|
+
</tag>
|
149
|
+
<tag name="li" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
150
|
+
<close-before-copy-inside-tags>a,bdo,strong,em,q,b,i,u,tt,sub,sup,big,small,strike,s,font</close-before-copy-inside-tags>
|
151
|
+
<close-before-tags>li,p,address,label,abbr,acronym,dfn,kbd,samp,var,cite,code,param,xml</close-before-tags>
|
152
|
+
</tag>
|
153
|
+
<tag name="dl" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
154
|
+
<close-before-copy-inside-tags>a,bdo,strong,em,q,b,i,u,tt,sub,sup,big,small,strike,s,font</close-before-copy-inside-tags>
|
155
|
+
<close-before-tags>p,address,label,abbr,acronym,dfn,kbd,samp,var,cite,code,param,xml</close-before-tags>
|
156
|
+
</tag>
|
157
|
+
<tag name="dt" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
158
|
+
<close-before-tags>dt,dd</close-before-tags>
|
159
|
+
</tag>
|
160
|
+
<tag name="dd" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
161
|
+
<close-before-tags>dt,dd</close-before-tags>
|
162
|
+
</tag>
|
163
|
+
<tag name="menu" content="all" section="body" deprecated="true" unique="false" ignore-permitted="false">
|
164
|
+
<close-before-copy-inside-tags>a,bdo,strong,em,q,b,i,u,tt,sub,sup,big,small,strike,s,font</close-before-copy-inside-tags>
|
165
|
+
<close-before-tags>p,address,label,abbr,acronym,dfn,kbd,samp,var,cite,code,param,xml</close-before-tags>
|
166
|
+
</tag>
|
167
|
+
<tag name="dir" content="all" section="body" deprecated="true" unique="false" ignore-permitted="false">
|
168
|
+
<close-before-copy-inside-tags>a,bdo,strong,em,q,b,i,u,tt,sub,sup,big,small,strike,s,font</close-before-copy-inside-tags>
|
169
|
+
<close-before-tags>p,address,label,abbr,acronym,dfn,kbd,samp,var,cite,code,param,xml</close-before-tags>
|
170
|
+
</tag>
|
171
|
+
<tag name="table" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
172
|
+
<allowed-children-tags>tr,tbody,thead,tfoot,colgroup,col,form,caption,tr</allowed-children-tags>
|
173
|
+
<close-before-copy-inside-tags>a,bdo,strong,em,q,b,i,u,tt,sub,sup,big,small,strike,s,font</close-before-copy-inside-tags>
|
174
|
+
<close-before-tags>tr,thead,tbody,tfoot,caption,colgroup,table,address,label,abbr,acronym,dfn,kbd,samp,var,cite,code,param</close-before-tags>
|
175
|
+
</tag>
|
176
|
+
<tag name="tr" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
177
|
+
<fatal-tags>table</fatal-tags>
|
178
|
+
<req-enclosing-tags>tbody</req-enclosing-tags>
|
179
|
+
<allowed-children-tags>td,th</allowed-children-tags>
|
180
|
+
<higher-level-tags>thead,tfoot</higher-level-tags>
|
181
|
+
<close-before-tags>tr,td,th,caption,colgroup</close-before-tags>
|
182
|
+
</tag>
|
183
|
+
<tag name="td" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
184
|
+
<fatal-tags>table</fatal-tags>
|
185
|
+
<req-enclosing-tags>tr</req-enclosing-tags>
|
186
|
+
<close-before-tags>td,th,caption,colgroup</close-before-tags>
|
187
|
+
</tag>
|
188
|
+
<tag name="th" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
189
|
+
<fatal-tags>table</fatal-tags>
|
190
|
+
<req-enclosing-tags>tr</req-enclosing-tags>
|
191
|
+
<close-before-tags>td,th,caption,colgroup</close-before-tags>
|
192
|
+
</tag>
|
193
|
+
<tag name="tbody" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
194
|
+
<fatal-tags>table</fatal-tags>
|
195
|
+
<allowed-children-tags>tr,form</allowed-children-tags>
|
196
|
+
<close-before-tags>td,th,tr,tbody,thead,tfoot,caption,colgroup</close-before-tags>
|
197
|
+
</tag>
|
198
|
+
<tag name="thead" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
199
|
+
<fatal-tags>table</fatal-tags>
|
200
|
+
<allowed-children-tags>tr,form</allowed-children-tags>
|
201
|
+
<close-before-tags>td,th,tr,tbody,thead,tfoot,caption,colgroup</close-before-tags>
|
202
|
+
</tag>
|
203
|
+
<tag name="tfoot" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
204
|
+
<fatal-tags>table</fatal-tags>
|
205
|
+
<allowed-children-tags>tr,form</allowed-children-tags>
|
206
|
+
<close-before-tags>td,th,tr,tbody,thead,tfoot,caption,colgroup</close-before-tags>
|
207
|
+
</tag>
|
208
|
+
<tag name="col" content="none" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
209
|
+
<fatal-tags>table</fatal-tags>
|
210
|
+
</tag>
|
211
|
+
<tag name="colgroup" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
212
|
+
<fatal-tags>table</fatal-tags>
|
213
|
+
<allowed-children-tags>col</allowed-children-tags>
|
214
|
+
<close-before-tags>td,th,tr,tbody,thead,tfoot,caption,colgroup</close-before-tags>
|
215
|
+
</tag>
|
216
|
+
<tag name="caption" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
217
|
+
<fatal-tags>table</fatal-tags>
|
218
|
+
<close-before-tags>td,th,tr,tbody,thead,tfoot,caption,colgroup</close-before-tags>
|
219
|
+
</tag>
|
220
|
+
<tag name="form" content="all" section="body" deprecated="false" unique="false" ignore-permitted="true">
|
221
|
+
<forbidden-tags>form</forbidden-tags>
|
222
|
+
<close-before-copy-inside-tags>a,bdo,strong,em,q,b,i,u,tt,sub,sup,big,small,strike,s,font</close-before-copy-inside-tags>
|
223
|
+
<close-before-tags>option,optgroup,textarea,select,fieldset,p,address,label,abbr,acronym,dfn,kbd,samp,var,cite,code,param,xml</close-before-tags>
|
224
|
+
</tag>
|
225
|
+
<tag name="input" content="none" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
226
|
+
<close-before-tags>select,optgroup,option</close-before-tags>
|
227
|
+
</tag>
|
228
|
+
<tag name="textarea" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
229
|
+
<close-before-tags>select,optgroup,option</close-before-tags>
|
230
|
+
</tag>
|
231
|
+
<tag name="select" content="all" section="body" deprecated="false" unique="false" ignore-permitted="true">
|
232
|
+
<allowed-children-tags>option,optgroup</allowed-children-tags>
|
233
|
+
<close-before-tags>option,optgroup,select</close-before-tags>
|
234
|
+
</tag>
|
235
|
+
<tag name="option" content="text" section="body" deprecated="false" unique="false" ignore-permitted="true">
|
236
|
+
<fatal-tags>select</fatal-tags>
|
237
|
+
<close-before-tags>option</close-before-tags>
|
238
|
+
</tag>
|
239
|
+
<tag name="optgroup" content="all" section="body" deprecated="false" unique="false" ignore-permitted="true">
|
240
|
+
<fatal-tags>select</fatal-tags>
|
241
|
+
<allowed-children-tags>option</allowed-children-tags>
|
242
|
+
<close-before-tags>optgroup</close-before-tags>
|
243
|
+
</tag>
|
244
|
+
<tag name="button" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
245
|
+
<close-before-tags>select,optgroup,option</close-before-tags>
|
246
|
+
</tag>
|
247
|
+
<tag name="label" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false"/>
|
248
|
+
<tag name="fieldset" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
249
|
+
<close-before-copy-inside-tags>a,bdo,strong,em,q,b,i,u,tt,sub,sup,big,small,strike,s,font</close-before-copy-inside-tags>
|
250
|
+
<close-before-tags>p,address,label,abbr,acronym,dfn,kbd,samp,var,cite,code,param,xml</close-before-tags>
|
251
|
+
</tag>
|
252
|
+
<tag name="legend" content="text" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
253
|
+
<req-enclosing-tags>fieldset</req-enclosing-tags>
|
254
|
+
<close-before-tags>legend</close-before-tags>
|
255
|
+
</tag>
|
256
|
+
<tag name="isindex" content="none" section="body" deprecated="true" unique="false" ignore-permitted="false">
|
257
|
+
<close-before-copy-inside-tags>a,bdo,strong,em,q,b,i,u,tt,sub,sup,big,small,strike,s,font</close-before-copy-inside-tags>
|
258
|
+
<close-before-tags>p,address,label,abbr,acronym,dfn,kbd,samp,var,cite,code,param,xml</close-before-tags>
|
259
|
+
</tag>
|
260
|
+
<tag name="script" content="all" section="all" deprecated="false" unique="false" ignore-permitted="false"/>
|
261
|
+
<tag name="noscript" content="all" section="all" deprecated="false" unique="false" ignore-permitted="false"/>
|
262
|
+
<tag name="b" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
263
|
+
<close-inside-copy-after-tags>u,i,tt,sub,sup,big,small,strike,blink,s</close-inside-copy-after-tags>
|
264
|
+
</tag>
|
265
|
+
<tag name="i" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
266
|
+
<close-inside-copy-after-tags>b,u,tt,sub,sup,big,small,strike,blink,s</close-inside-copy-after-tags>
|
267
|
+
</tag>
|
268
|
+
<tag name="u" content="all" section="body" deprecated="true" unique="false" ignore-permitted="false">
|
269
|
+
<close-inside-copy-after-tags>b,i,tt,sub,sup,big,small,strike,blink,s</close-inside-copy-after-tags>
|
270
|
+
</tag>
|
271
|
+
<tag name="tt" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
272
|
+
<close-inside-copy-after-tags>b,u,i,sub,sup,big,small,strike,blink,s</close-inside-copy-after-tags>
|
273
|
+
</tag>
|
274
|
+
<tag name="sub" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
275
|
+
<close-inside-copy-after-tags>b,u,i,tt,sup,big,small,strike,blink,s</close-inside-copy-after-tags>
|
276
|
+
</tag>
|
277
|
+
<tag name="sup" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
278
|
+
<close-inside-copy-after-tags>b,u,i,tt,sub,big,small,strike,blink,s</close-inside-copy-after-tags>
|
279
|
+
</tag>
|
280
|
+
<tag name="big" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
281
|
+
<close-inside-copy-after-tags>b,u,i,tt,sub,sup,small,strike,blink,s</close-inside-copy-after-tags>
|
282
|
+
</tag>
|
283
|
+
<tag name="small" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
284
|
+
<close-inside-copy-after-tags>b,u,i,tt,sub,sup,big,strike,blink,s</close-inside-copy-after-tags>
|
285
|
+
</tag>
|
286
|
+
<tag name="strike" content="all" section="body" deprecated="true" unique="false" ignore-permitted="false">
|
287
|
+
<close-inside-copy-after-tags>b,u,i,tt,sub,sup,big,small,blink,s</close-inside-copy-after-tags>
|
288
|
+
</tag>
|
289
|
+
<tag name="blink" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
290
|
+
<close-inside-copy-after-tags>b,u,i,tt,sub,sup,big,small,strike,s</close-inside-copy-after-tags>
|
291
|
+
</tag>
|
292
|
+
<tag name="marquee" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
293
|
+
<close-before-copy-inside-tags>a,bdo,strong,em,q,b,i,u,tt,sub,sup,big,small,strike,s,font</close-before-copy-inside-tags>
|
294
|
+
<close-before-tags>p,address,label,abbr,acronym,dfn,kbd,samp,var,cite,code,param,xml</close-before-tags>
|
295
|
+
</tag>
|
296
|
+
<tag name="s" content="all" section="body" deprecated="true" unique="false" ignore-permitted="false">
|
297
|
+
<close-inside-copy-after-tags>b,u,i,tt,sub,sup,big,small,strike,blink</close-inside-copy-after-tags>
|
298
|
+
</tag>
|
299
|
+
<tag name="hr" content="none" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
300
|
+
<close-before-copy-inside-tags>a,bdo,strong,em,q,b,i,u,tt,sub,sup,big,small,strike,s,font</close-before-copy-inside-tags>
|
301
|
+
<close-before-tags>p,address,label,abbr,acronym,dfn,kbd,samp,var,cite,code,param,xml</close-before-tags>
|
302
|
+
</tag>
|
303
|
+
<tag name="font" content="all" section="body" deprecated="true" unique="false" ignore-permitted="false"/>
|
304
|
+
<tag name="basefont" content="none" section="body" deprecated="true" unique="false" ignore-permitted="false"/>
|
305
|
+
<tag name="center" content="all" section="body" deprecated="true" unique="false" ignore-permitted="false">
|
306
|
+
<close-before-copy-inside-tags>a,bdo,strong,em,q,b,i,u,tt,sub,sup,big,small,strike,s,font</close-before-copy-inside-tags>
|
307
|
+
<close-before-tags>p,address,label,abbr,acronym,dfn,kbd,samp,var,cite,code,param,xml</close-before-tags>
|
308
|
+
</tag>
|
309
|
+
<tag name="comment" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false"/>
|
310
|
+
<tag name="server" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false"/>
|
311
|
+
<tag name="iframe" content="all" section="body" deprecated="false" unique="false" ignore-permitted="false"/>
|
312
|
+
<tag name="embed" content="none" section="body" deprecated="false" unique="false" ignore-permitted="false">
|
313
|
+
<close-before-copy-inside-tags>a,bdo,strong,em,q,b,i,u,tt,sub,sup,big,small,strike,s,font</close-before-copy-inside-tags>
|
314
|
+
<close-before-tags>p,address,label,abbr,acronym,dfn,kbd,samp,var,cite,code,param,xml</close-before-tags>
|
315
|
+
</tag>
|
316
|
+
</tags>
|
@@ -2,8 +2,6 @@ require 'yaml'
|
|
2
2
|
|
3
3
|
class DocverterServer::Manifest
|
4
4
|
|
5
|
-
class InvalidManifestError < RuntimeError; end
|
6
|
-
|
7
5
|
def pdf
|
8
6
|
@pdf
|
9
7
|
end
|
@@ -67,12 +65,12 @@ class DocverterServer::Manifest
|
|
67
65
|
|
68
66
|
options.each do |k,v|
|
69
67
|
|
70
|
-
raise
|
68
|
+
raise InvalidManifestError.new("Invalid option: #{k}") unless k.match(/^[a-z0-9-]+/)
|
71
69
|
|
72
70
|
option_key = k.to_s.gsub('_', '-')
|
73
71
|
[v].flatten.each do |option_val|
|
74
|
-
raise
|
75
|
-
if option_val.is_a?(TrueClass)
|
72
|
+
raise InvalidManifestError.new("Invalid option value: #{option_val}") unless option_val.to_s.match(/^[a-zA-Z0-9._-]+/)
|
73
|
+
if option_val.is_a?(TrueClass) || option_val == 'true'
|
76
74
|
command_options << "--#{option_key}"
|
77
75
|
else
|
78
76
|
command_options << "--#{option_key}=#{option_val}"
|
@@ -1,3 +1,6 @@
|
|
1
|
+
require 'open3'
|
2
|
+
require 'shellwords'
|
3
|
+
|
1
4
|
module DocverterServer
|
2
5
|
module Runner
|
3
6
|
class Base
|
@@ -18,11 +21,15 @@ module DocverterServer
|
|
18
21
|
end
|
19
22
|
|
20
23
|
def run_command(options)
|
21
|
-
|
22
|
-
|
24
|
+
p options
|
25
|
+
output = ""
|
26
|
+
cmd = Shellwords.join(options) + " 2>&1"
|
27
|
+
p cmd
|
28
|
+
IO.popen(cmd) do |io|
|
29
|
+
output = io.read
|
23
30
|
end
|
24
31
|
if $?.exitstatus != 0
|
25
|
-
raise output
|
32
|
+
raise DocverterServer::CommandError.new(output)
|
26
33
|
end
|
27
34
|
end
|
28
35
|
|
@@ -7,6 +7,7 @@ require File.expand_path('../../jars/bcprov-ext-jdk15-1.43.jar', __FILE__)
|
|
7
7
|
java_import org.xhtmlrenderer.pdf.ITextRenderer
|
8
8
|
java_import org.xhtmlrenderer.pdf.ITextUserAgent
|
9
9
|
java_import org.htmlcleaner.HtmlCleaner
|
10
|
+
java_import org.htmlcleaner.ConfigFileTagProvider
|
10
11
|
java_import org.htmlcleaner.DomSerializer
|
11
12
|
java_import com.lowagie.text.pdf.PdfReader
|
12
13
|
java_import com.lowagie.text.pdf.PdfStamper
|
@@ -15,7 +16,7 @@ java_import com.lowagie.text.pdf.PdfEncryption
|
|
15
16
|
class DocverterServer::Runner::PDF < DocverterServer::Runner::Base
|
16
17
|
|
17
18
|
def create_java_dom(html)
|
18
|
-
cleaner = HtmlCleaner.new
|
19
|
+
cleaner = HtmlCleaner.new(ConfigFileTagProvider.new(java.io.File.new(File.expand_path('../../jars/tag_config.xml', __FILE__))))
|
19
20
|
props = cleaner.get_properties
|
20
21
|
props.setTranslateSpecialEntities(true)
|
21
22
|
props.setAdvancedXmlEscape(true)
|
data/lib/docverter-server.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
module DocverterServer; end
|
2
2
|
|
3
3
|
require 'docverter-server/version'
|
4
|
+
require 'docverter-server/error'
|
4
5
|
require 'docverter-server/conversion_types'
|
5
6
|
require 'docverter-server/manifest'
|
6
7
|
require 'docverter-server/runner/base'
|
@@ -9,3 +10,4 @@ require 'docverter-server/runner/calibre'
|
|
9
10
|
require 'docverter-server/runner/pdf'
|
10
11
|
require 'docverter-server/conversion'
|
11
12
|
require 'docverter-server/app'
|
13
|
+
require 'docverter-server/error_handler'
|
metadata
CHANGED
@@ -2,14 +2,14 @@
|
|
2
2
|
name: docverter-server
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 1.0.
|
5
|
+
version: 1.0.2
|
6
6
|
platform: java
|
7
7
|
authors:
|
8
8
|
- Pete Keen
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-10-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: mime-types
|
@@ -101,6 +101,24 @@ dependencies:
|
|
101
101
|
none: false
|
102
102
|
prerelease: false
|
103
103
|
type: :runtime
|
104
|
+
- !ruby/object:Gem::Dependency
|
105
|
+
name: multi_json
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ! '>='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: !binary |-
|
111
|
+
MA==
|
112
|
+
none: false
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ! '>='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: !binary |-
|
118
|
+
MA==
|
119
|
+
none: false
|
120
|
+
prerelease: false
|
121
|
+
type: :runtime
|
104
122
|
- !ruby/object:Gem::Dependency
|
105
123
|
name: mocha
|
106
124
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -155,46 +173,50 @@ files:
|
|
155
173
|
- Rakefile
|
156
174
|
- config.ru
|
157
175
|
- doc/api.md
|
158
|
-
- doc/examples/
|
159
|
-
- doc/examples/html_to_encrypted_pdf/
|
160
|
-
- doc/examples/html_to_encrypted_pdf/
|
161
|
-
- doc/examples/html_to_encrypted_pdf/
|
162
|
-
- doc/examples/html_to_encrypted_pdf/
|
163
|
-
- doc/examples/
|
164
|
-
- doc/examples/html_to_pdf/
|
165
|
-
- doc/examples/html_to_pdf/
|
166
|
-
- doc/examples/html_to_pdf/
|
167
|
-
- doc/examples/html_to_pdf/
|
168
|
-
- doc/examples/
|
169
|
-
- doc/examples/markdown_to_epub/
|
170
|
-
- doc/examples/markdown_to_epub/
|
171
|
-
- doc/examples/markdown_to_epub/
|
172
|
-
- doc/examples/markdown_to_epub/
|
173
|
-
- doc/examples/markdown_to_epub/markdown_to_epub.epub
|
174
|
-
- doc/examples/markdown_to_epub/
|
175
|
-
- doc/examples/markdown_to_epub/
|
176
|
-
- doc/examples/markdown_to_epub/
|
177
|
-
- doc/examples/
|
178
|
-
- doc/examples/markdown_to_mobi/
|
179
|
-
- doc/examples/markdown_to_mobi/
|
180
|
-
- doc/examples/markdown_to_mobi/
|
181
|
-
- doc/examples/markdown_to_mobi/
|
182
|
-
- doc/examples/markdown_to_mobi/
|
183
|
-
- doc/examples/markdown_to_mobi/
|
184
|
-
- doc/examples/
|
185
|
-
- doc/examples/markdown_to_pdf/
|
186
|
-
- doc/examples/markdown_to_pdf/
|
187
|
-
- doc/examples/markdown_to_pdf/
|
188
|
-
- doc/examples/markdown_to_pdf/
|
189
|
-
- doc/examples/markdown_to_pdf/
|
190
|
-
- doc/examples/markdown_to_pdf/
|
176
|
+
- doc/examples/php/markdown_to_pdf.php
|
177
|
+
- doc/examples/shell/html_to_encrypted_pdf/convert.sh
|
178
|
+
- doc/examples/shell/html_to_encrypted_pdf/imfeldoublepica.ttf
|
179
|
+
- doc/examples/shell/html_to_encrypted_pdf/input.html
|
180
|
+
- doc/examples/shell/html_to_encrypted_pdf/marcellus.ttf
|
181
|
+
- doc/examples/shell/html_to_encrypted_pdf/stylesheet.css
|
182
|
+
- doc/examples/shell/html_to_pdf/convert.sh
|
183
|
+
- doc/examples/shell/html_to_pdf/imfeldoublepica.ttf
|
184
|
+
- doc/examples/shell/html_to_pdf/input.html
|
185
|
+
- doc/examples/shell/html_to_pdf/marcellus.ttf
|
186
|
+
- doc/examples/shell/html_to_pdf/stylesheet.css
|
187
|
+
- doc/examples/shell/markdown_to_epub/chapter1.md
|
188
|
+
- doc/examples/shell/markdown_to_epub/chapter2.md
|
189
|
+
- doc/examples/shell/markdown_to_epub/convert.sh
|
190
|
+
- doc/examples/shell/markdown_to_epub/document-open.png
|
191
|
+
- doc/examples/shell/markdown_to_epub/markdown_to_epub.epub
|
192
|
+
- doc/examples/shell/markdown_to_epub/markdown_to_epub.epub.html
|
193
|
+
- doc/examples/shell/markdown_to_epub/metadata.xml
|
194
|
+
- doc/examples/shell/markdown_to_epub/stylesheet.css
|
195
|
+
- doc/examples/shell/markdown_to_epub/title.txt
|
196
|
+
- doc/examples/shell/markdown_to_mobi/chapter1.md
|
197
|
+
- doc/examples/shell/markdown_to_mobi/chapter2.md
|
198
|
+
- doc/examples/shell/markdown_to_mobi/convert.sh
|
199
|
+
- doc/examples/shell/markdown_to_mobi/document-open.png
|
200
|
+
- doc/examples/shell/markdown_to_mobi/metadata.xml
|
201
|
+
- doc/examples/shell/markdown_to_mobi/stylesheet.css
|
202
|
+
- doc/examples/shell/markdown_to_mobi/title.txt
|
203
|
+
- doc/examples/shell/markdown_to_pdf/chapter1.md
|
204
|
+
- doc/examples/shell/markdown_to_pdf/chapter2.md
|
205
|
+
- doc/examples/shell/markdown_to_pdf/convert.sh
|
206
|
+
- doc/examples/shell/markdown_to_pdf/imfeldoublepica.ttf
|
207
|
+
- doc/examples/shell/markdown_to_pdf/manifest.yml
|
208
|
+
- doc/examples/shell/markdown_to_pdf/marcellus.ttf
|
209
|
+
- doc/examples/shell/markdown_to_pdf/stylesheet.css
|
191
210
|
- docverter.gemspec
|
192
211
|
- lib/docverter-server.rb
|
193
212
|
- lib/docverter-server/app.rb
|
194
213
|
- lib/docverter-server/conversion.rb
|
195
214
|
- lib/docverter-server/conversion_types.rb
|
215
|
+
- lib/docverter-server/error.rb
|
216
|
+
- lib/docverter-server/error_handler.rb
|
196
217
|
- lib/docverter-server/jars/bcprov-ext-jdk15-1.43.jar
|
197
218
|
- lib/docverter-server/jars/htmlcleaner-2.2.jar
|
219
|
+
- lib/docverter-server/jars/tag_config.xml
|
198
220
|
- lib/docverter-server/manifest.rb
|
199
221
|
- lib/docverter-server/runner/base.rb
|
200
222
|
- lib/docverter-server/runner/calibre.rb
|