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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: de6af10b0f4a58d46f7f7137b8b2c95e39879312
4
- data.tar.gz: 41f17920f702e1e025ed4d5b98c8ca9c0c3894b8
3
+ metadata.gz: d45035deab6bdc94c14007b85538324afbe942d9
4
+ data.tar.gz: e3085075ed6e76bf1e3636fe7a3201a212eabf14
5
5
  SHA512:
6
- metadata.gz: ca9c8cb8858d377173a8e08ea4e0505ea998fd7d91ac44a4f38e51977110f336eacf6ab276dd122b69e41ee767242374c4235ca723e6fba437974a6cc501fe4b
7
- data.tar.gz: 33cd2dd9921ddfc077ee98ca2677ec6488354c69df456bc8cf52441f3f1114d0890034099cc6adf7471f65224f90e65b148a3c97a1d30610e26a2457b9af1227
6
+ metadata.gz: 407d271ea859d4230d1efa4addf0377110501e54fe63dca818d01370c1743e01c9e49cc4d0c3a3144133a386217edf0a62cbe27757f5e9396be64e8cb41917f8
7
+ data.tar.gz: a26c003aea1f909c028b255ff0421d03dc4ac9b04f223f57c9b4c2d1de99c7a529c35c0a50395b7f06e92b2a4b88a29a143243ff97d47c3f727d9c8a57a93706
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # PdflibWrapper
2
2
 
3
- TODO: Write a gem description
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
- TODO: Write usage instructions here
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
 
@@ -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
@@ -86,7 +86,7 @@ module PdflibWrapper
86
86
  end
87
87
 
88
88
  def embed_pdf_page(page, x, y, opts={})
89
- Page.embed(@pdf, page, x, y, opts.dup)
89
+ Page.embed(@pdf, page, x, y, opts)
90
90
  end
91
91
 
92
92
  class << self
@@ -1,3 +1,3 @@
1
1
  module PdflibWrapper
2
- VERSION = '0.0.2'
2
+ VERSION = '0.0.2.1'
3
3
  end
@@ -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-18 00:00:00.000000000 Z
11
+ date: 2013-06-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler