Class: Pdfcrowd::PdfToPdfClient

Inherits:
Object
  • Object
show all
Defined in:
lib/pdfcrowd.rb

Overview

Conversion from PDF to PDF.

Instance Method Summary collapse

Constructor Details

#initialize(user_name, api_key) ⇒ PdfToPdfClient

Returns a new instance of PdfToPdfClient.



3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
# File 'lib/pdfcrowd.rb', line 3163

def initialize(user_name, api_key)
    @helper = ConnectionHelper.new(user_name, api_key)
    @fields = {
        'input_format'=>'pdf',
        'output_format'=>'pdf'
    }
    @file_id = 1
    @files = {}
    @raw_data = {}
end

Instance Method Details

#addPdfFile(file_path) ⇒ Object



3206
3207
3208
3209
3210
3211
3212
3213
3214
# File 'lib/pdfcrowd.rb', line 3206

def addPdfFile(file_path)
    if (!(File.file?(file_path) && !File.zero?(file_path)))
        raise Error.new(Pdfcrowd.create_invalid_value_message(file_path, "addPdfFile", "pdf-to-pdf", "The file must exist and not be empty.", "add_pdf_file"), 470);
    end
    
    @files['f_%s' % @file_id] = file_path
    @file_id += 1
    self
end

#addPdfRawData(data) ⇒ Object



3217
3218
3219
3220
3221
3222
3223
3224
3225
# File 'lib/pdfcrowd.rb', line 3217

def addPdfRawData(data)
    if (!(!data.nil? && data.length > 300 and data[0...4] == '%PDF'))
        raise Error.new(Pdfcrowd.create_invalid_value_message("raw PDF data", "addPdfRawData", "pdf-to-pdf", "The input data must be PDF content.", "add_pdf_raw_data"), 470);
    end
    
    @raw_data['f_%s' % @file_id] = data
    @file_id += 1
    self
end

#convertObject



3185
3186
3187
# File 'lib/pdfcrowd.rb', line 3185

def convert()
    @helper.post(@fields, @files, @raw_data)
end

#convertToFile(file_path) ⇒ Object



3195
3196
3197
3198
3199
3200
3201
3202
3203
# File 'lib/pdfcrowd.rb', line 3195

def convertToFile(file_path)
    if (!(!file_path.nil? && !file_path.empty?))
        raise Error.new(Pdfcrowd.create_invalid_value_message(file_path, "convertToFile", "pdf-to-pdf", "The string must not be empty.", "convert_to_file"), 470);
    end
    
    output_file = open(file_path, "wb")
    convertToStream(output_file)
    output_file.close()
end

#convertToStream(out_stream) ⇒ Object



3190
3191
3192
# File 'lib/pdfcrowd.rb', line 3190

def convertToStream(out_stream)
    @helper.post(@fields, @files, @raw_data, out_stream)
end

#getConsumedCreditCountObject



3508
3509
3510
# File 'lib/pdfcrowd.rb', line 3508

def getConsumedCreditCount()
    return @helper.getConsumedCreditCount()
end

#getDebugLogUrlObject



3498
3499
3500
# File 'lib/pdfcrowd.rb', line 3498

def getDebugLogUrl()
    return @helper.getDebugLogUrl()
end

#getJobIdObject



3513
3514
3515
# File 'lib/pdfcrowd.rb', line 3513

def getJobId()
    return @helper.getJobId()
end

#getOutputSizeObject



3523
3524
3525
# File 'lib/pdfcrowd.rb', line 3523

def getOutputSize()
    return @helper.getOutputSize()
end

#getPageCountObject



3518
3519
3520
# File 'lib/pdfcrowd.rb', line 3518

def getPageCount()
    return @helper.getPageCount()
end

#getRemainingCreditCountObject



3503
3504
3505
# File 'lib/pdfcrowd.rb', line 3503

def getRemainingCreditCount()
    return @helper.getRemainingCreditCount()
end

#getVersionObject



3528
3529
3530
# File 'lib/pdfcrowd.rb', line 3528

def getVersion()
    return "client " + CLIENT_VERSION + ", API v2, converter " + @helper.getConverterVersion()
end

#setAction(action) ⇒ Object



3175
3176
3177
3178
3179
3180
3181
3182
# File 'lib/pdfcrowd.rb', line 3175

def setAction(action)
    unless /(?i)^(join|shuffle|extract|delete)$/.match(action)
        raise Error.new(Pdfcrowd.create_invalid_value_message(action, "setAction", "pdf-to-pdf", "Allowed values are join, shuffle, extract, delete.", "set_action"), 470);
    end
    
    @fields['action'] = action
    self
end

#setAuthor(author) ⇒ Object



3378
3379
3380
3381
# File 'lib/pdfcrowd.rb', line 3378

def setAuthor(author)
    @fields['author'] = author
    self
end

#setCenterWindow(value) ⇒ Object



3474
3475
3476
3477
# File 'lib/pdfcrowd.rb', line 3474

def setCenterWindow(value)
    @fields['center_window'] = value
    self
end

#setClientUserAgent(agent) ⇒ Object



3555
3556
3557
3558
# File 'lib/pdfcrowd.rb', line 3555

def setClientUserAgent(agent)
    @helper.setUserAgent(agent)
    self
end

#setConverterVersion(version) ⇒ Object



3539
3540
3541
3542
3543
3544
3545
3546
# File 'lib/pdfcrowd.rb', line 3539

def setConverterVersion(version)
    unless /(?i)^(24.04|20.10|18.10|latest)$/.match(version)
        raise Error.new(Pdfcrowd.create_invalid_value_message(version, "setConverterVersion", "pdf-to-pdf", "Allowed values are 24.04, 20.10, 18.10, latest.", "set_converter_version"), 470);
    end
    
    @helper.setConverterVersion(version)
    self
end

#setDebugLog(value) ⇒ Object



3492
3493
3494
3495
# File 'lib/pdfcrowd.rb', line 3492

def setDebugLog(value)
    @fields['debug_log'] = value
    self
end

#setDisplayTitle(value) ⇒ Object



3480
3481
3482
3483
# File 'lib/pdfcrowd.rb', line 3480

def setDisplayTitle(value)
    @fields['display_title'] = value
    self
end

#setEncrypt(value) ⇒ Object



3330
3331
3332
3333
# File 'lib/pdfcrowd.rb', line 3330

def setEncrypt(value)
    @fields['encrypt'] = value
    self
end

#setFitWindow(value) ⇒ Object



3468
3469
3470
3471
# File 'lib/pdfcrowd.rb', line 3468

def setFitWindow(value)
    @fields['fit_window'] = value
    self
end

#setHideMenubar(value) ⇒ Object



3456
3457
3458
3459
# File 'lib/pdfcrowd.rb', line 3456

def setHideMenubar(value)
    @fields['hide_menubar'] = value
    self
end

#setHideToolbar(value) ⇒ Object



3450
3451
3452
3453
# File 'lib/pdfcrowd.rb', line 3450

def setHideToolbar(value)
    @fields['hide_toolbar'] = value
    self
end

#setHideWindowUi(value) ⇒ Object



3462
3463
3464
3465
# File 'lib/pdfcrowd.rb', line 3462

def setHideWindowUi(value)
    @fields['hide_window_ui'] = value
    self
end

#setInitialPage(page) ⇒ Object



3430
3431
3432
3433
3434
3435
3436
3437
# File 'lib/pdfcrowd.rb', line 3430

def setInitialPage(page)
    if (!(Integer(page) > 0))
        raise Error.new(Pdfcrowd.create_invalid_value_message(page, "setInitialPage", "pdf-to-pdf", "Must be a positive integer.", "set_initial_page"), 470);
    end
    
    @fields['initial_page'] = page
    self
end

#setInitialZoom(zoom) ⇒ Object



3440
3441
3442
3443
3444
3445
3446
3447
# File 'lib/pdfcrowd.rb', line 3440

def setInitialZoom(zoom)
    if (!(Integer(zoom) > 0))
        raise Error.new(Pdfcrowd.create_invalid_value_message(zoom, "setInitialZoom", "pdf-to-pdf", "Must be a positive integer.", "set_initial_zoom"), 470);
    end
    
    @fields['initial_zoom'] = zoom
    self
end

#setInitialZoomType(zoom_type) ⇒ Object



3420
3421
3422
3423
3424
3425
3426
3427
# File 'lib/pdfcrowd.rb', line 3420

def setInitialZoomType(zoom_type)
    unless /(?i)^(fit-width|fit-height|fit-page)$/.match(zoom_type)
        raise Error.new(Pdfcrowd.create_invalid_value_message(zoom_type, "setInitialZoomType", "pdf-to-pdf", "Allowed values are fit-width, fit-height, fit-page.", "set_initial_zoom_type"), 470);
    end
    
    @fields['initial_zoom_type'] = zoom_type
    self
end

#setInputPdfPassword(password) ⇒ Object



3228
3229
3230
3231
# File 'lib/pdfcrowd.rb', line 3228

def setInputPdfPassword(password)
    @fields['input_pdf_password'] = password
    self
end

#setKeywords(keywords) ⇒ Object



3384
3385
3386
3387
# File 'lib/pdfcrowd.rb', line 3384

def setKeywords(keywords)
    @fields['keywords'] = keywords
    self
end

#setLinearize(value) ⇒ Object



3324
3325
3326
3327
# File 'lib/pdfcrowd.rb', line 3324

def setLinearize(value)
    @fields['linearize'] = value
    self
end

#setMultipageBackground(background) ⇒ Object



3304
3305
3306
3307
3308
3309
3310
3311
# File 'lib/pdfcrowd.rb', line 3304

def setMultipageBackground(background)
    if (!(File.file?(background) && !File.zero?(background)))
        raise Error.new(Pdfcrowd.create_invalid_value_message(background, "setMultipageBackground", "pdf-to-pdf", "The file must exist and not be empty.", "set_multipage_background"), 470);
    end
    
    @files['multipage_background'] = background
    self
end

#setMultipageBackgroundUrl(url) ⇒ Object



3314
3315
3316
3317
3318
3319
3320
3321
# File 'lib/pdfcrowd.rb', line 3314

def setMultipageBackgroundUrl(url)
    unless /(?i)^https?:\/\/.*$/.match(url)
        raise Error.new(Pdfcrowd.create_invalid_value_message(url, "setMultipageBackgroundUrl", "pdf-to-pdf", "Supported protocols are http:// and https://.", "set_multipage_background_url"), 470);
    end
    
    @fields['multipage_background_url'] = url
    self
end

#setMultipageWatermark(watermark) ⇒ Object



3264
3265
3266
3267
3268
3269
3270
3271
# File 'lib/pdfcrowd.rb', line 3264

def setMultipageWatermark(watermark)
    if (!(File.file?(watermark) && !File.zero?(watermark)))
        raise Error.new(Pdfcrowd.create_invalid_value_message(watermark, "setMultipageWatermark", "pdf-to-pdf", "The file must exist and not be empty.", "set_multipage_watermark"), 470);
    end
    
    @files['multipage_watermark'] = watermark
    self
end

#setMultipageWatermarkUrl(url) ⇒ Object



3274
3275
3276
3277
3278
3279
3280
3281
# File 'lib/pdfcrowd.rb', line 3274

def setMultipageWatermarkUrl(url)
    unless /(?i)^https?:\/\/.*$/.match(url)
        raise Error.new(Pdfcrowd.create_invalid_value_message(url, "setMultipageWatermarkUrl", "pdf-to-pdf", "Supported protocols are http:// and https://.", "set_multipage_watermark_url"), 470);
    end
    
    @fields['multipage_watermark_url'] = url
    self
end

#setNoCopy(value) ⇒ Object



3360
3361
3362
3363
# File 'lib/pdfcrowd.rb', line 3360

def setNoCopy(value)
    @fields['no_copy'] = value
    self
end

#setNoModify(value) ⇒ Object



3354
3355
3356
3357
# File 'lib/pdfcrowd.rb', line 3354

def setNoModify(value)
    @fields['no_modify'] = value
    self
end

#setNoPrint(value) ⇒ Object



3348
3349
3350
3351
# File 'lib/pdfcrowd.rb', line 3348

def setNoPrint(value)
    @fields['no_print'] = value
    self
end

#setOwnerPassword(password) ⇒ Object



3342
3343
3344
3345
# File 'lib/pdfcrowd.rb', line 3342

def setOwnerPassword(password)
    @fields['owner_password'] = password
    self
end

#setPageBackground(background) ⇒ Object



3284
3285
3286
3287
3288
3289
3290
3291
# File 'lib/pdfcrowd.rb', line 3284

def setPageBackground(background)
    if (!(File.file?(background) && !File.zero?(background)))
        raise Error.new(Pdfcrowd.create_invalid_value_message(background, "setPageBackground", "pdf-to-pdf", "The file must exist and not be empty.", "set_page_background"), 470);
    end
    
    @files['page_background'] = background
    self
end

#setPageBackgroundUrl(url) ⇒ Object



3294
3295
3296
3297
3298
3299
3300
3301
# File 'lib/pdfcrowd.rb', line 3294

def setPageBackgroundUrl(url)
    unless /(?i)^https?:\/\/.*$/.match(url)
        raise Error.new(Pdfcrowd.create_invalid_value_message(url, "setPageBackgroundUrl", "pdf-to-pdf", "Supported protocols are http:// and https://.", "set_page_background_url"), 470);
    end
    
    @fields['page_background_url'] = url
    self
end

#setPageLayout(layout) ⇒ Object



3400
3401
3402
3403
3404
3405
3406
3407
# File 'lib/pdfcrowd.rb', line 3400

def setPageLayout(layout)
    unless /(?i)^(single-page|one-column|two-column-left|two-column-right)$/.match(layout)
        raise Error.new(Pdfcrowd.create_invalid_value_message(layout, "setPageLayout", "pdf-to-pdf", "Allowed values are single-page, one-column, two-column-left, two-column-right.", "set_page_layout"), 470);
    end
    
    @fields['page_layout'] = layout
    self
end

#setPageMode(mode) ⇒ Object



3410
3411
3412
3413
3414
3415
3416
3417
# File 'lib/pdfcrowd.rb', line 3410

def setPageMode(mode)
    unless /(?i)^(full-screen|thumbnails|outlines)$/.match(mode)
        raise Error.new(Pdfcrowd.create_invalid_value_message(mode, "setPageMode", "pdf-to-pdf", "Allowed values are full-screen, thumbnails, outlines.", "set_page_mode"), 470);
    end
    
    @fields['page_mode'] = mode
    self
end

#setPageRange(pages) ⇒ Object



3234
3235
3236
3237
3238
3239
3240
3241
# File 'lib/pdfcrowd.rb', line 3234

def setPageRange(pages)
    unless /^(?:\s*(?:\d+|(?:\d*\s*\-\s*\d+)|(?:\d+\s*\-\s*\d*))\s*,\s*)*\s*(?:\d+|(?:\d*\s*\-\s*\d+)|(?:\d+\s*\-\s*\d*))\s*$/.match(pages)
        raise Error.new(Pdfcrowd.create_invalid_value_message(pages, "setPageRange", "pdf-to-pdf", "A comma separated list of page numbers or ranges.", "set_page_range"), 470);
    end
    
    @fields['page_range'] = pages
    self
end

#setPageWatermark(watermark) ⇒ Object



3244
3245
3246
3247
3248
3249
3250
3251
# File 'lib/pdfcrowd.rb', line 3244

def setPageWatermark(watermark)
    if (!(File.file?(watermark) && !File.zero?(watermark)))
        raise Error.new(Pdfcrowd.create_invalid_value_message(watermark, "setPageWatermark", "pdf-to-pdf", "The file must exist and not be empty.", "set_page_watermark"), 470);
    end
    
    @files['page_watermark'] = watermark
    self
end

#setPageWatermarkUrl(url) ⇒ Object



3254
3255
3256
3257
3258
3259
3260
3261
# File 'lib/pdfcrowd.rb', line 3254

def setPageWatermarkUrl(url)
    unless /(?i)^https?:\/\/.*$/.match(url)
        raise Error.new(Pdfcrowd.create_invalid_value_message(url, "setPageWatermarkUrl", "pdf-to-pdf", "Supported protocols are http:// and https://.", "set_page_watermark_url"), 470);
    end
    
    @fields['page_watermark_url'] = url
    self
end

#setProxy(host, port, user_name, password) ⇒ Object



3567
3568
3569
3570
# File 'lib/pdfcrowd.rb', line 3567

def setProxy(host, port, user_name, password)
    @helper.setProxy(host, port, user_name, password)
    self
end

#setRetryCount(count) ⇒ Object



3573
3574
3575
3576
# File 'lib/pdfcrowd.rb', line 3573

def setRetryCount(count)
    @helper.setRetryCount(count)
    self
end

#setRightToLeft(value) ⇒ Object



3486
3487
3488
3489
# File 'lib/pdfcrowd.rb', line 3486

def setRightToLeft(value)
    @fields['right_to_left'] = value
    self
end

#setSubject(subject) ⇒ Object



3372
3373
3374
3375
# File 'lib/pdfcrowd.rb', line 3372

def setSubject(subject)
    @fields['subject'] = subject
    self
end

#setTag(tag) ⇒ Object



3533
3534
3535
3536
# File 'lib/pdfcrowd.rb', line 3533

def setTag(tag)
    @fields['tag'] = tag
    self
end

#setTitle(title) ⇒ Object



3366
3367
3368
3369
# File 'lib/pdfcrowd.rb', line 3366

def setTitle(title)
    @fields['title'] = title
    self
end

#setUseHttp(value) ⇒ Object



3549
3550
3551
3552
# File 'lib/pdfcrowd.rb', line 3549

def setUseHttp(value)
    @helper.setUseHttp(value)
    self
end

#setUseMetadataFrom(index) ⇒ Object



3390
3391
3392
3393
3394
3395
3396
3397
# File 'lib/pdfcrowd.rb', line 3390

def setUseMetadataFrom(index)
    if (!(Integer(index) >= 0))
        raise Error.new(Pdfcrowd.create_invalid_value_message(index, "setUseMetadataFrom", "pdf-to-pdf", "Must be a positive integer or 0.", "set_use_metadata_from"), 470);
    end
    
    @fields['use_metadata_from'] = index
    self
end

#setUserAgent(agent) ⇒ Object



3561
3562
3563
3564
# File 'lib/pdfcrowd.rb', line 3561

def setUserAgent(agent)
    @helper.setUserAgent(agent)
    self
end

#setUserPassword(password) ⇒ Object



3336
3337
3338
3339
# File 'lib/pdfcrowd.rb', line 3336

def setUserPassword(password)
    @fields['user_password'] = password
    self
end