sharp_office 0.0.1 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.rspec +1 -0
- data/.travis.yml +16 -0
- data/README.md +17 -4
- data/lib/sharp_office/office.rb +3 -2
- data/lib/sharp_office/version.rb +1 -1
- data/lib/sharp_office.rb +2 -2
- data/sharp_office.gemspec +4 -2
- data/spec/sharp_office_spec.rb +10 -16
- data/spec/spec_helper.rb +5 -0
- metadata +18 -16
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--color
|
data/.travis.yml
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
language: ruby
|
2
|
+
rvm:
|
3
|
+
- 1.9.2
|
4
|
+
- 1.9.3
|
5
|
+
- 2.0.0
|
6
|
+
script: bundle exec rspec spec
|
7
|
+
before_install:
|
8
|
+
- sudo apt-get update
|
9
|
+
- sudo apt-get install imagemagick libmagickcore-dev
|
10
|
+
- sudo apt-get install -y ffmpeg libavcodec-extra-53 openoffice.org openoffice.org-writer unoconv ghostscript gsfonts ufraw graphicsmagick libgraphicsmagick1-dev libfreetype6-dev libjpeg-dev libgif-dev libtiff-dev libdjvulibre-dev libwmf-dev libmagickcore-dev libmagickwand-dev libpng-dev xpdf libexpat-dev gettext zlib1g-dev build-essential libfaac-dev libmp3lame0 libx264-dev libvpx-dev libtheora-dev libvorbis-dev gpac dcraw ufraw
|
11
|
+
- sudo apt-get clean
|
12
|
+
- wget http://www.swftools.org/swftools-0.9.1.tar.gz
|
13
|
+
- sh -c "tar xzvf swftools-0.9.1.tar.gz && cd swftools-0.9.1 && ./configure && make && sudo make install"
|
14
|
+
- wget http://pecl.php.net/get/gmagick-1.1.0RC2.tgz
|
15
|
+
- tar -xzf gmagick-1.1.0RC2.tgz
|
16
|
+
- sh -c "cd gmagick-1.1.0RC2 && phpize && ./configure --with-gmagick=/usr/local && make && sudo make install"
|
data/README.md
CHANGED
@@ -1,15 +1,25 @@
|
|
1
|
-
|
1
|
+
## SharpOffice
|
2
2
|
|
3
|
-
|
3
|
+
[![Build Status](https://travis-ci.org/SharpV/sharp_office.png?branch=master)](https://travis-ci.org/SharpV/sharp_office)
|
4
4
|
|
5
5
|
## Requirements
|
6
6
|
|
7
7
|
### Swftools
|
8
8
|
|
9
|
-
|
9
|
+
sudo add-apt-repository ppa:guilhem-fr/swftools
|
10
|
+
sudo apt-get update
|
11
|
+
sudo apt-get install swftools
|
12
|
+
|
13
|
+
### LibreOffice
|
14
|
+
|
15
|
+
sudo add-apt-repository ppa:libreoffice/ppa
|
16
|
+
sudo apt-get update
|
17
|
+
sudo apt-get install libreoffice
|
10
18
|
|
11
19
|
### ImageMagick
|
12
20
|
|
21
|
+
sudo apt-get install imagemagick libmagickcore-dev
|
22
|
+
|
13
23
|
## Installation
|
14
24
|
|
15
25
|
Add this line to your application's Gemfile:
|
@@ -27,11 +37,14 @@ Or install it yourself as:
|
|
27
37
|
## Usage
|
28
38
|
|
29
39
|
``` ruby
|
30
|
-
require 'rubygems'
|
31
40
|
require 'sharp_office'
|
41
|
+
|
32
42
|
SharpOffice.process('/Users/apple/Documents/test.doc')
|
33
43
|
=> {:status=>"ok", :pdf_path=>"/Users/apple/Documents/test-doc.pdf", :swf_path=>"/Users/apple/Documents/test-doc.swf", :cover_path=>"/Users/apple/Documents/test-doc.png"}
|
34
44
|
|
45
|
+
SharpOffice.process('/Users/apple/Documents/test.doc', {pages: '1-20'})
|
46
|
+
=> {:status=>"ok", :pdf_path=>"/Users/apple/Documents/test-doc.pdf", :swf_path=>"/Users/apple/Documents/test-doc.swf", :cover_path=>"/Users/apple/Documents/test-doc.png"}
|
47
|
+
|
35
48
|
```
|
36
49
|
|
37
50
|
## Contributing
|
data/lib/sharp_office/office.rb
CHANGED
@@ -8,15 +8,16 @@ module SharpOffice
|
|
8
8
|
attr_reader :path, :pdf_path, :swf_path
|
9
9
|
include Singleton
|
10
10
|
|
11
|
-
def start(path)
|
11
|
+
def start(path, options)
|
12
12
|
@path = File.expand_path(path)
|
13
13
|
system_or_exit convert_to_pdf
|
14
14
|
swfile = FlashTool::FlashObject.new(pdf_path)
|
15
|
+
swfile.pages(options[:pages])
|
15
16
|
swfile.save(swf_path)
|
16
17
|
system_or_exit "convert #{pdf_path} #{temp_file_path}"
|
17
18
|
|
18
19
|
image = MiniMagick::Image.open(temp_file_path)
|
19
|
-
image.resize "
|
20
|
+
image.resize "300x300"
|
20
21
|
image.write cover_path
|
21
22
|
|
22
23
|
File.delete(temp_file_path)
|
data/lib/sharp_office/version.rb
CHANGED
data/lib/sharp_office.rb
CHANGED
@@ -16,9 +16,9 @@ module SharpOffice
|
|
16
16
|
@logger = logger
|
17
17
|
end
|
18
18
|
|
19
|
-
def self.process(path)
|
19
|
+
def self.process(path, options={pages: '1-10'})
|
20
20
|
raise Errno::ENOENT, "the file '#{path}' does not exist" unless File.exists?(path)
|
21
|
-
Office.instance.start(path)
|
21
|
+
Office.instance.start(path, options)
|
22
22
|
end
|
23
23
|
|
24
24
|
end
|
data/sharp_office.gemspec
CHANGED
@@ -17,7 +17,9 @@ Gem::Specification.new do |gem|
|
|
17
17
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
18
18
|
gem.require_paths = ["lib"]
|
19
19
|
|
20
|
+
gem.add_dependency "mini_magick"
|
21
|
+
gem.add_dependency "flash_tool"
|
22
|
+
|
20
23
|
gem.add_development_dependency "rspec", "~> 2.13.0"
|
21
|
-
|
22
|
-
gem.add_development_dependency "flash_tool"
|
24
|
+
|
23
25
|
end
|
data/spec/sharp_office_spec.rb
CHANGED
@@ -12,34 +12,28 @@ describe SharpOffice do
|
|
12
12
|
end
|
13
13
|
it "should convert doc successfully" do
|
14
14
|
@response = SharpOffice.process(File.expand_path("spec/fixture/test.doc"))
|
15
|
-
@response
|
16
|
-
File.exist?(@response[:pdf_path]).should be_true
|
17
|
-
File.exist?(@response[:swf_path]).should be_true
|
18
|
-
File.exist?(@response[:cover_path]).should be_true
|
15
|
+
@response.should be_converted_successfully
|
19
16
|
end
|
20
17
|
|
21
18
|
it "should convert ppt successfully" do
|
22
19
|
@response = SharpOffice.process(File.expand_path("spec/fixture/test.ppt"))
|
23
|
-
@response
|
24
|
-
|
25
|
-
File.exist?(@response[:swf_path]).should be_true
|
26
|
-
File.exist?(@response[:cover_path]).should be_true
|
20
|
+
@response.should be_converted_successfully
|
21
|
+
|
27
22
|
end
|
28
23
|
|
29
24
|
it "should convert xls successfully" do
|
30
25
|
@response = SharpOffice.process(File.expand_path("spec/fixture/test.xls"))
|
31
|
-
@response
|
32
|
-
File.exist?(@response[:pdf_path]).should be_true
|
33
|
-
File.exist?(@response[:swf_path]).should be_true
|
34
|
-
File.exist?(@response[:cover_path]).should be_true
|
26
|
+
@response.should be_converted_successfully
|
35
27
|
end
|
36
28
|
|
37
29
|
it "should convert docx successfully" do
|
38
30
|
@response = SharpOffice.process(File.expand_path("spec/fixture/test.docx"))
|
39
|
-
@response
|
40
|
-
|
41
|
-
|
42
|
-
|
31
|
+
@response.should be_converted_successfully
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should convert docx with params successfully" do
|
35
|
+
@response = SharpOffice.process(File.expand_path("spec/fixture/test.docx"), {pages: '1-20'})
|
36
|
+
@response.should be_converted_successfully
|
43
37
|
end
|
44
38
|
end
|
45
39
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -8,3 +8,8 @@ RSpec.configure do |config|
|
|
8
8
|
config.run_all_when_everything_filtered = true
|
9
9
|
end
|
10
10
|
|
11
|
+
RSpec::Matchers.define :be_converted_successfully do
|
12
|
+
match do |conversion_response|
|
13
|
+
conversion_response[:status] == 'ok' && File.exist?(conversion_response[:pdf_path]) && File.exist?(conversion_response[:swf_path]) && File.exist?(conversion_response[:cover_path])
|
14
|
+
end
|
15
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sharp_office
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,33 +9,33 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-05-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
15
|
+
name: mini_magick
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
|
-
- -
|
19
|
+
- - ! '>='
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
22
|
-
type: :
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
none: false
|
26
26
|
requirements:
|
27
|
-
- -
|
27
|
+
- - ! '>='
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version:
|
29
|
+
version: '0'
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
|
-
name:
|
31
|
+
name: flash_tool
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
33
33
|
none: false
|
34
34
|
requirements:
|
35
35
|
- - ! '>='
|
36
36
|
- !ruby/object:Gem::Version
|
37
37
|
version: '0'
|
38
|
-
type: :
|
38
|
+
type: :runtime
|
39
39
|
prerelease: false
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
@@ -44,21 +44,21 @@ dependencies:
|
|
44
44
|
- !ruby/object:Gem::Version
|
45
45
|
version: '0'
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
|
-
name:
|
47
|
+
name: rspec
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
49
49
|
none: false
|
50
50
|
requirements:
|
51
|
-
- -
|
51
|
+
- - ~>
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version:
|
53
|
+
version: 2.13.0
|
54
54
|
type: :development
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
none: false
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 2.13.0
|
62
62
|
description: Convert office document to pdf and swf
|
63
63
|
email:
|
64
64
|
- liu19850701@gmail.com
|
@@ -67,6 +67,8 @@ extensions: []
|
|
67
67
|
extra_rdoc_files: []
|
68
68
|
files:
|
69
69
|
- .gitignore
|
70
|
+
- .rspec
|
71
|
+
- .travis.yml
|
70
72
|
- Gemfile
|
71
73
|
- LICENSE.txt
|
72
74
|
- README.md
|
@@ -125,7 +127,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
125
127
|
version: '0'
|
126
128
|
requirements: []
|
127
129
|
rubyforge_project:
|
128
|
-
rubygems_version: 1.8.
|
130
|
+
rubygems_version: 1.8.25
|
129
131
|
signing_key:
|
130
132
|
specification_version: 3
|
131
133
|
summary: Convert office document to pdf and swf
|