예제 #1
0
def main(args=sys.argv, name=''):
    log = Log()
    parser = option_parser(name)

    opts, args = parser.parse_args(args)
    args = args[1:]

    if len(args) < 1:
        print 'Error: No PDF sepecified.\n'
        print_help(parser, log)
        return 1

    bad_pdfs = is_valid_pdfs(args)
    if bad_pdfs != []:
        for pdf in bad_pdfs:
            print 'Error: Could not read file `%s`.' % pdf
        return 1

    enc = False
    for pdf in args:
        if is_encrypted(pdf):
            enc = True
            print 'Error: file `%s` is encrypted. Please decrypt first.' % pdf
    if enc:
        return 1

    for pdf in args:
        print_info(pdf)

    return 0
예제 #2
0
def main(args=sys.argv, name=''):
    log = Log()
    parser = option_parser(name)
    add_options(parser)

    opts, args = parser.parse_args(args)
    args = args[1:]

    if len(args) < 2:
        print 'Error: A PDF file and decryption password is required.\n'
        print_help(parser, log)
        return 1

    if not is_valid_pdf(args[0]):
        print 'Error: Could not read file `%s`.' % args[0]
        return 1

    if is_encrypted(args[0]):
        print 'Error: file `%s` is already encrypted.' % args[0]
        return 1

    mi = metadata_from_formats([args[0]])

    encrypt(args[0], opts.output, args[1], mi)

    return 0
예제 #3
0
파일: reverse.py 프로젝트: Eksmo/calibre
def main(args=sys.argv, name=''):
    log = Log()
    parser = option_parser(name)
    add_options(parser)
    
    opts, args = parser.parse_args(args)
    args = args[1:]
    
    if len(args) < 1:
        print 'Error: A PDF file is required.\n'
        print_help(parser, log)
        return 1
    
    if not is_valid_pdf(args[0]):
        print 'Error: Could not read file `%s`.' % args[0]
        return 1

    if is_encrypted(args[0]):
        print 'Error: file `%s` is encrypted.' % args[0]
        return 1
    
    mi = metadata_from_formats([args[0]])

    reverse(args[0], opts.output, mi)

    return 0
예제 #4
0
def main(args=sys.argv, name=''):
    log = Log()
    parser = option_parser(name)
    add_options(parser)

    opts, args = parser.parse_args(args)
    args = args[1:]

    if len(args) < 2:
        print 'Error: Two or more PDF files are required.\n'
        print_help(parser, log)
        return 1

    bad_pdfs = is_valid_pdfs(args)
    if bad_pdfs != []:
        for pdf in bad_pdfs:
            print 'Error: Could not read file `%s`.' % pdf
        return 1

    enc = False
    for pdf in args:
        if is_encrypted(pdf):
            enc = True
            print 'Error: file `%s` is encrypted.' % pdf
    if enc:
        return 1

    mi = metadata_from_formats([args[0]])

    merge_files(args, opts.output, mi)

    return 0
예제 #5
0
def main(args=sys.argv, name=''):
    log = Log()
    parser = option_parser(name)
    add_options(parser)

    opts, args = parser.parse_args(args)
    args = args[1:]

    if len(args) < 2:
        print 'Error: A PDF file and decryption password is required.\n'
        print_help(parser, log)
        return 1

    if not is_valid_pdf(args[0]):
        print 'Error: Could not read file `%s`.' % args[0]
        return 1

    if not is_encrypted(args[0]):
        print 'Error: file `%s` is not encrypted.' % args[0]
        return 1

    try:
        decrypt(args[0], opts.output, args[1])
    except DecryptionError as e:
        print e.value
        return 1

    return 0
예제 #6
0
def main(args=sys.argv, name=''):
    log = Log()
    parser = option_parser(name)
    add_options(parser)

    opts, args = parser.parse_args(args)

    pdf, pages, page_ranges, unknown = split_args(args[1:])

    if pdf == '' and (pages == [] or page_ranges == []):
        print 'Error: PDF and where to split is required.\n'
        print_help(parser, log)
        return 1

    if unknown != []:
        for arg in unknown:
            print 'Error: Unknown argument `%s`' % arg
        print_help(parser, log)
        return 1

    if not is_valid_pdf(pdf):
        print 'Error: Could not read file `%s`.' % pdf
        return 1

    if is_encrypted(pdf):
        print 'Error: file `%s` is encrypted.' % args[0]
        return 1

    pages, page_ranges = clean_page_list(pdf, pages, page_ranges)

    mi = metadata_from_formats([pdf])

    split_pdf(pdf, pages, page_ranges, os.path.splitext(opts.output)[0], mi)

    return 0