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.



3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
# File 'lib/pdfcrowd.rb', line 3183

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



3226
3227
3228
3229
3230
3231
3232
3233
3234
# File 'lib/pdfcrowd.rb', line 3226

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



3237
3238
3239
3240
3241
3242
3243
3244
3245
# File 'lib/pdfcrowd.rb', line 3237

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



3205
3206
3207
# File 'lib/pdfcrowd.rb', line 3205

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

#convertToFile(file_path) ⇒ Object



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

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



3210
3211
3212
# File 'lib/pdfcrowd.rb', line 3210

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

#getConsumedCreditCountObject



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

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

#getDebugLogUrlObject



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

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

#getJobIdObject



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

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

#getOutputSizeObject



3543
3544
3545
# File 'lib/pdfcrowd.rb', line 3543

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

#getPageCountObject



3538
3539
3540
# File 'lib/pdfcrowd.rb', line 3538

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

#getRemainingCreditCountObject



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

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

#getVersionObject



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

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

#setAction(action) ⇒ Object



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

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



3398
3399
3400
3401
# File 'lib/pdfcrowd.rb', line 3398

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

#setCenterWindow(value) ⇒ Object



3494
3495
3496
3497
# File 'lib/pdfcrowd.rb', line 3494

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

#setClientUserAgent(agent) ⇒ Object



3575
3576
3577
3578
# File 'lib/pdfcrowd.rb', line 3575

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

#setConverterVersion(version) ⇒ Object



3559
3560
3561
3562
3563
3564
3565
3566
# File 'lib/pdfcrowd.rb', line 3559

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



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

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

#setDisplayTitle(value) ⇒ Object



3500
3501
3502
3503
# File 'lib/pdfcrowd.rb', line 3500

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

#setEncrypt(value) ⇒ Object



3350
3351
3352
3353
# File 'lib/pdfcrowd.rb', line 3350

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

#setFitWindow(value) ⇒ Object



3488
3489
3490
3491
# File 'lib/pdfcrowd.rb', line 3488

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

#setHideMenubar(value) ⇒ Object



3476
3477
3478
3479
# File 'lib/pdfcrowd.rb', line 3476

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

#setHideToolbar(value) ⇒ Object



3470
3471
3472
3473
# File 'lib/pdfcrowd.rb', line 3470

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

#setHideWindowUi(value) ⇒ Object



3482
3483
3484
3485
# File 'lib/pdfcrowd.rb', line 3482

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

#setInitialPage(page) ⇒ Object



3450
3451
3452
3453
3454
3455
3456
3457
# File 'lib/pdfcrowd.rb', line 3450

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



3460
3461
3462
3463
3464
3465
3466
3467
# File 'lib/pdfcrowd.rb', line 3460

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



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

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



3248
3249
3250
3251
# File 'lib/pdfcrowd.rb', line 3248

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

#setKeywords(keywords) ⇒ Object



3404
3405
3406
3407
# File 'lib/pdfcrowd.rb', line 3404

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

#setLinearize(value) ⇒ Object



3344
3345
3346
3347
# File 'lib/pdfcrowd.rb', line 3344

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

#setMultipageBackground(background) ⇒ Object



3324
3325
3326
3327
3328
3329
3330
3331
# File 'lib/pdfcrowd.rb', line 3324

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



3334
3335
3336
3337
3338
3339
3340
3341
# File 'lib/pdfcrowd.rb', line 3334

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



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

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



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

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



3380
3381
3382
3383
# File 'lib/pdfcrowd.rb', line 3380

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

#setNoModify(value) ⇒ Object



3374
3375
3376
3377
# File 'lib/pdfcrowd.rb', line 3374

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

#setNoPrint(value) ⇒ Object



3368
3369
3370
3371
# File 'lib/pdfcrowd.rb', line 3368

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

#setOwnerPassword(password) ⇒ Object



3362
3363
3364
3365
# File 'lib/pdfcrowd.rb', line 3362

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

#setPageBackground(background) ⇒ Object



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

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



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

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



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

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



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

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



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

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



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

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



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

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



3587
3588
3589
3590
# File 'lib/pdfcrowd.rb', line 3587

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

#setRetryCount(count) ⇒ Object



3593
3594
3595
3596
# File 'lib/pdfcrowd.rb', line 3593

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

#setRightToLeft(value) ⇒ Object



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

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

#setSubject(subject) ⇒ Object



3392
3393
3394
3395
# File 'lib/pdfcrowd.rb', line 3392

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

#setTag(tag) ⇒ Object



3553
3554
3555
3556
# File 'lib/pdfcrowd.rb', line 3553

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

#setTitle(title) ⇒ Object



3386
3387
3388
3389
# File 'lib/pdfcrowd.rb', line 3386

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

#setUseHttp(value) ⇒ Object



3569
3570
3571
3572
# File 'lib/pdfcrowd.rb', line 3569

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

#setUseMetadataFrom(index) ⇒ Object



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

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



3581
3582
3583
3584
# File 'lib/pdfcrowd.rb', line 3581

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

#setUserPassword(password) ⇒ Object



3356
3357
3358
3359
# File 'lib/pdfcrowd.rb', line 3356

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