pdfcrowd 1.9.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/pdfcrowd.rb +36 -49
  2. metadata +5 -5
@@ -49,6 +49,7 @@ module Pdfcrowd
49
49
  end
50
50
 
51
51
  def to_s()
52
+
52
53
  @http_code ? "#{@http_code} - #{@error}" : @error
53
54
  end
54
55
  end
@@ -69,7 +70,9 @@ module Pdfcrowd
69
70
  useSSL(false)
70
71
  @fields = {
71
72
  'username' => username,
72
- 'key' => apikey
73
+ 'key' => apikey,
74
+ 'html_zoom' => 200,
75
+ 'pdf_scaling_factor' => 1
73
76
  }
74
77
  end
75
78
 
@@ -81,7 +84,7 @@ module Pdfcrowd
81
84
  # return value is a string containing the PDF.
82
85
  #
83
86
  def convertURI(uri, outstream=nil)
84
- return convert(outstream, 'uri', uri)
87
+ return call_api_urlencoded('/api/pdf/convert/uri/', uri, outstream)
85
88
  end
86
89
 
87
90
  #
@@ -92,7 +95,7 @@ module Pdfcrowd
92
95
  # return value is a string containing the PDF.
93
96
  #
94
97
  def convertHtml(content, outstream=nil)
95
- return convert(outstream, 'html', content)
98
+ return call_api_urlencoded('/api/pdf/convert/html/', content, outstream)
96
99
  end
97
100
 
98
101
  #
@@ -110,9 +113,8 @@ module Pdfcrowd
110
113
  # Returns the number of available conversion tokens.
111
114
  #
112
115
  def numTokens()
113
- uri = @api_uri + 'user/%s/tokens/' % @fields['username']
114
- response = call_api(uri, nil)
115
- return Integer(response)
116
+ uri = '/api/user/%s/tokens/' % @fields['username']
117
+ return Integer(call_api_urlencoded(uri))
116
118
  end
117
119
 
118
120
  def useSSL(use_ssl)
@@ -273,36 +275,38 @@ module Pdfcrowd
273
275
  return http
274
276
  end
275
277
 
276
- def convert(out_stream, method, src)
277
- uri = @api_uri + 'pdf/convert/%s/' % method
278
- return call_api(uri, out_stream, src)
278
+ def call_api_urlencoded(path, src=nil, out_stream=nil)
279
+ request = Net::HTTP::Post.new(path)
280
+ request.set_form_data(rename_post_data({'src' => src}))
281
+ return call_api(request, out_stream)
279
282
  end
280
-
281
- def call_api(uri, out_stream, src=nil)
282
- data = encode_post_data({'src' => src})
283
- url = URI.parse(uri)
284
- req = Net::HTTP::Post.new(url.path)
285
- req.set_form_data(data)
283
+
284
+
285
+ def call_api(request, out_stream)
286
286
  http = create_http_obj()
287
287
  begin
288
- res = http.start {|connection| connection.request(req) }
289
- case res
290
- when Net::HTTPSuccess, Net::HTTPRedirection
291
- if out_stream
292
- out_stream.write(res.body)
293
- return out_stream
294
- else
295
- return res.body
296
- end
297
- else
298
- raise Error.new(res.body, res.code)
299
- end
288
+ http.start {|conn|
289
+ conn.request(request) {|response|
290
+ case response
291
+ when Net::HTTPSuccess
292
+ if out_stream
293
+ response.read_body do |chunk|
294
+ out_stream.write(chunk)
295
+ end
296
+ else
297
+ return response.body
298
+ end
299
+ else
300
+ raise Error.new(response.body, response.code)
301
+ end
302
+ }
303
+ }
300
304
  rescue SystemCallError => why
301
305
  raise Error.new("#{why}\n")
302
306
  end
303
307
  end
304
-
305
- def encode_post_data(extra_data={})
308
+
309
+ def rename_post_data(extra_data={})
306
310
  result = extra_data.clone()
307
311
  @fields.each { |key, val| result[key] = val if val }
308
312
  result
@@ -330,26 +334,9 @@ module Pdfcrowd
330
334
  end
331
335
 
332
336
  def post_multipart(fpath, out_stream)
333
- content_type, body = encode_multipart_post_data(fpath)
334
- headers = { 'content-type' => content_type, 'content-length' => body.length.to_s }
335
- http = create_http_obj()
336
- begin
337
- res = http.start {|connection| connection.post(API_SELECTOR_BASE + 'pdf/convert/html/', body, headers) }
338
- case res
339
- when Net::HTTPSuccess, Net::HTTPRedirection
340
- if out_stream
341
- out_stream.write(res.body)
342
- return out_stream
343
- else
344
- return res.body
345
- end
346
- else
347
- raise Error.new(res.body, res.code)
348
- end
349
- rescue SystemCallError => why
350
- raise Error.new("#{why}\n")
351
- end
352
- return
337
+ req = Net::HTTP::Post.new('/api/pdf/convert/html/')
338
+ req.content_type, req.body = encode_multipart_post_data(fpath)
339
+ return call_api(req, out_stream)
353
340
  end
354
341
  end
355
342
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pdfcrowd
3
3
  version: !ruby/object:Gem::Version
4
- hash: 51
4
+ hash: 15
5
5
  prerelease:
6
6
  segments:
7
- - 1
8
- - 9
7
+ - 2
9
8
  - 0
10
- version: 1.9.0
9
+ - 0
10
+ version: 2.0.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Pdfcrowd Team
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-05-17 00:00:00 Z
18
+ date: 2011-05-22 00:00:00 Z
19
19
  dependencies: []
20
20
 
21
21
  description: It lets you easily convert web pages and raw HTML code to PDF in your Ruby applications.