pdflib_wrapper 0.0.2 → 0.0.2.1
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.
- checksums.yaml +4 -4
- data/README.md +53 -2
- data/lib/pdflib_wrapper/page.rb +1 -4
- data/lib/pdflib_wrapper/pdf.rb +1 -1
- data/lib/pdflib_wrapper/version.rb +1 -1
- data/spec/option_list_mapper_spec.rb +6 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d45035deab6bdc94c14007b85538324afbe942d9
|
4
|
+
data.tar.gz: e3085075ed6e76bf1e3636fe7a3201a212eabf14
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 407d271ea859d4230d1efa4addf0377110501e54fe63dca818d01370c1743e01c9e49cc4d0c3a3144133a386217edf0a62cbe27757f5e9396be64e8cb41917f8
|
7
|
+
data.tar.gz: a26c003aea1f909c028b255ff0421d03dc4ac9b04f223f57c9b4c2d1de99c7a529c35c0a50395b7f06e92b2a4b88a29a143243ff97d47c3f727d9c8a57a93706
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# PdflibWrapper
|
2
2
|
|
3
|
-
|
3
|
+
Pdflib Wrapper is a wrapper around PDFLib's api. PDFlib is a commerical software and requires a license for use without watermarks. PDFlib only supports ruby for linux and mac. To purchase your license visit http://www.pdflib.com/download/pdflib-family/pdflib-9/. This wrapper imports the ruby mri 2.0 files. This gem only supports limited parts of the api but forks are welcome as long as there are passing tests.
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
@@ -18,7 +18,58 @@ Or install it yourself as:
|
|
18
18
|
|
19
19
|
## Usage
|
20
20
|
|
21
|
-
|
21
|
+
Creating PDF
|
22
|
+
```ruby
|
23
|
+
metadata = {author: 'Max Studener',
|
24
|
+
subject: 'Testing Pdf',
|
25
|
+
title: 'This is a test pdf',
|
26
|
+
creator: 'This Test',
|
27
|
+
keywords: ['Array', 'of', 'keywords']}
|
28
|
+
opts = {license_path: Rails.root.join('config','pdflib.license')}
|
29
|
+
|
30
|
+
pdf = PdflibWrapper::Pdf.new('/tmp/test.pdf', metadata, opts)
|
31
|
+
new_page = new_pdf.new_page(10,10)
|
32
|
+
#Do stuff
|
33
|
+
new_page.save
|
34
|
+
pdf.save
|
35
|
+
```
|
36
|
+
|
37
|
+
Opening PDF
|
38
|
+
```ruby
|
39
|
+
pdf = PdflibWrapper::Pdf.open_pdf(external_pdf.path)
|
40
|
+
page = pdf.open_page(1)
|
41
|
+
#Do stuff
|
42
|
+
page.close
|
43
|
+
pdf.close
|
44
|
+
```
|
45
|
+
|
46
|
+
Open/Create password protected PDF
|
47
|
+
```ruby
|
48
|
+
tempfile = Tempfile.new("external.pdf")
|
49
|
+
passworded_pdf = PdflibWrapper::Pdf.new(tempfile.path, {}, {with_blank_page: true, masterpassword: 'magic'}).save
|
50
|
+
|
51
|
+
PdflibWrapper::Pdf.open_pdf(passworded_pdf.path, {password: 'magic'})
|
52
|
+
```
|
53
|
+
|
54
|
+
Embed PDF inside PDF
|
55
|
+
```ruby
|
56
|
+
embed_pdf = PdflibWrapper::Pdf.new(Tempfile.new("embed.pdf").path)
|
57
|
+
embed_pdf.new_page(2,4).save
|
58
|
+
embed_pdf.save
|
59
|
+
|
60
|
+
new_pdf = PdflibWrapper::Pdf.new(Tempfile.new("new.pdf").path)
|
61
|
+
|
62
|
+
external_pdf = new_pdf.open_pdf(embed_pdf.path)
|
63
|
+
external_pdf_page_one = new_pdf.open_pdf_page
|
64
|
+
|
65
|
+
new_page = new_pdf.new_page(10,10)
|
66
|
+
|
67
|
+
new_pdf.embed_pdf_page(external_pdf_page_one, 0, 0)
|
68
|
+
|
69
|
+
new_page.save
|
70
|
+
external_pdf_page_one.close
|
71
|
+
external_pdf.close
|
72
|
+
```
|
22
73
|
|
23
74
|
## Contributing
|
24
75
|
|
data/lib/pdflib_wrapper/page.rb
CHANGED
@@ -15,10 +15,7 @@ module PdflibWrapper
|
|
15
15
|
|
16
16
|
class << self
|
17
17
|
def embed(pdf, page, x, y, opts)
|
18
|
-
key_values = [:dpi, :boxsize, :rotate, :blind, :matchbox, :orientate, :position, :showborder]
|
19
|
-
#fitmethod => [:fitmethod, :meet], scale => [:scale => 3.0]
|
20
|
-
#fitmethod => 'fitmethod meet', scale => 'scale 3.0'
|
21
|
-
singles = [:fitmethod, :scale]
|
18
|
+
key_values = [:dpi, :boxsize, :rotate, :blind, :matchbox, :orientate, :position, :showborder, :fitmethod]
|
22
19
|
pdf.fit_pdi_page(page.page, x, y, OptionListMapper.create_options('', key_values, [], opts))
|
23
20
|
end
|
24
21
|
end
|
data/lib/pdflib_wrapper/pdf.rb
CHANGED
@@ -24,5 +24,11 @@ describe OptionListMapper do
|
|
24
24
|
OptionListMapper.create_options("", kvs,singles,opts).should eq("user_password=test master_password=testing permissions={nomodify nocopy} random text")
|
25
25
|
end
|
26
26
|
|
27
|
+
it "maps a hash" do
|
28
|
+
opts = { dpi: 288, boxsize: [ 100, 100 ] , position: 'center', fitmethod: 'meet' }
|
29
|
+
key_values = [:dpi, :boxsize, :position, :fitmethod]
|
30
|
+
OptionListMapper.create_options('', key_values, [], opts).should eq("dpi=288 boxsize={100 100} position=center fitmethod=meet")
|
31
|
+
end
|
32
|
+
|
27
33
|
|
28
34
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pdflib_wrapper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.2
|
4
|
+
version: 0.0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Max Studener
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-06-
|
11
|
+
date: 2013-06-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|