docverter-server 1.0.1-java → 1.0.2-java
Sign up to get free protection for your applications and to get access to all the features.
- 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
|