gscan2pdf-1.2.3/0000755000175000017500000000000012271546566012010 5ustar jeffjeffgscan2pdf-1.2.3/lib/0000755000175000017500000000000012271546566012556 5ustar jeffjeffgscan2pdf-1.2.3/lib/Gscan2pdf/0000755000175000017500000000000012271546566014365 5ustar jeffjeffgscan2pdf-1.2.3/lib/Gscan2pdf/Frontend/0000755000175000017500000000000012271546566016144 5ustar jeffjeffgscan2pdf-1.2.3/lib/Gscan2pdf/Frontend/CLI.pm0000644000175000017500000003666512270574026017120 0ustar jeffjeffpackage Gscan2pdf::Frontend::CLI; use strict; use warnings; use feature "switch"; use Locale::gettext 1.05; # For translations use Carp; use Text::ParseWords; use Glib qw(TRUE FALSE); use POSIX qw(locale_h :signal_h :errno_h :sys_wait_h); use Proc::Killfam; use IPC::Open3; use IO::Handle; use Gscan2pdf::NetPBM; use Gscan2pdf::Scanner::Options; use Cwd; use File::Spec; use Readonly; Readonly my $_POLL_INTERVAL => 100; # ms Readonly my $_100 => 100; Readonly my $_SANE_STATUS_EOF => 5; # or we could use Sane Readonly my $_1KB => 1024; our $VERSION = '1.2.3'; my $EMPTY = q{}; my $COMMA = q{,}; my ( $_self, $logger, $d ); sub setup { ( my $class, $logger ) = @_; $_self = {}; $d = Locale::gettext->domain(Glib::get_application_name); return; } sub get_devices { my ( $class, %options ) = @_; _watch_cmd( cmd => "$options{prefix} scanimage --formatted-device-list=\"'%i','%d','%v','%m','%t'%n\"", started_callback => $options{started_callback}, running_callback => $options{running_callback}, finished_callback => sub { my ( $output, $error ) = @_; if ( defined $options{finished_callback} ) { $options{finished_callback} ->( Gscan2pdf::Frontend::CLI->parse_device_list($output) ); } } ); return; } sub parse_device_list { my ( $class, $output ) = @_; my (@device_list); if ( defined($output) ) { $logger->info($output) } # parse out the device and model names my @words = parse_line( $COMMA, 0, substr( $output, 0, index( $output, "'\n" ) + 1 ) ); while (@words) { $output = substr( $output, index( $output, "'\n" ) + 2, length($output) ); shift @words; push @device_list, { name => shift @words, vendor => shift @words, model => shift @words, type => shift @words }; @words = parse_line( $COMMA, 0, substr( $output, 0, index( $output, "'\n" ) + 1 ) ); } return \@device_list; } sub find_scan_options { my ( $class, %options ) = @_; if ( not defined( $options{prefix} ) ) { $options{prefix} = $EMPTY } if ( not defined( $options{frontend} ) or $options{frontend} eq $EMPTY ) { $options{frontend} = 'scanimage'; } # Get output from scanimage or scanadf. # Inverted commas needed for strange characters in device name my $cmd = _create_scanimage_cmd( \%options ); _watch_cmd( cmd => $cmd, started_callback => $options{started_callback}, running_callback => $options{running_callback}, finished_callback => sub { my ( $output, $error ) = @_; if ( defined($error) and $error =~ /^$options{frontend}:\ (.*)/xsm ) { $error = $1; } if ( defined($error) and defined( $options{error_callback} ) ) { $options{error_callback}->($error); } my $options = Gscan2pdf::Scanner::Options->new_from_data($output); $_self->{device_name} = Gscan2pdf::Scanner::Options->device; if ( defined $options{finished_callback} ) { $options{finished_callback}->($options); } } ); return; } # Select wrapper method for _scanadf() and _scanimage() sub scan_pages { my ( $class, %options ) = @_; if ( not defined( $options{prefix} ) ) { $options{prefix} = $EMPTY } if ( defined( $options{frontend} ) and ( $options{frontend} eq 'scanadf' or $options{frontend} eq 'scanadf-perl' ) ) { _scanadf(%options); } else { _scanimage(%options); } return; } # Carry out the scan with scanimage and the options passed. sub _scanimage { my (%options) = @_; if ( not defined( $options{frontend} ) or $options{frontend} eq $EMPTY ) { $options{frontend} = 'scanimage'; } my $cmd = _create_scanimage_cmd( \%options, TRUE ); # flag to ignore error messages after cancelling scan $_self->{abort_scan} = FALSE; # flag to ignore out of documents message # if successfully scanned at least one page my $num_scans = 0; _watch_cmd( cmd => $cmd, dir => $options{dir}, started_callback => $options{started_callback}, err_callback => sub { my ($line) = @_; given ($line) { when (/^Progress:\ (\d*\.\d*)%/xsm) { if ( defined $options{running_callback} ) { $options{running_callback}->( $1 / $_100 ); } } when (/^Scanning\ (-?\d*)\ pages/xsm) { if ( defined $options{running_callback} ) { $options{running_callback} ->( 0, sprintf( $d->get('Scanning %i pages...'), $1 ) ); } } when (/^Scanning\ page\ (\d*)/xsm) { if ( defined $options{running_callback} ) { $options{running_callback} ->( 0, sprintf( $d->get('Scanning page %i...'), $1 ) ); } } when (/^Scanned\ page\ (\d*)\.\ \(scanner\ status\ =\ (\d)\)/xsm) { my ( $id, $return ) = ( $1, $2 ); if ( $return == $_SANE_STATUS_EOF ) { my $timer = Glib::Timeout->add( $_POLL_INTERVAL, sub { my $path = defined( $options{dir} ) ? File::Spec->catfile( $options{dir}, "out$id.pnm" ) : "out$id.pnm"; if ( not -e $path ) { return Glib::SOURCE_CONTINUE } if ( defined $options{new_page_callback} ) { $options{new_page_callback}->($id); } $num_scans++; return Glib::SOURCE_REMOVE; } ); } } when ( /Scanner\ warming\ up\ -\ waiting\ \d*\ seconds|wait\ for\ lamp\ warm-up/xsm ## no critic (ProhibitComplexRegexes) ) { if ( defined $options{running_callback} ) { $options{running_callback}->( 0, $d->get('Scanner warming up') ); } } when ( /^$options{frontend}:\ sane_start:\ Document\ feeder\ out\ of\ documents/xsm ) { if ( defined( $options{error_callback} ) and $num_scans == 0 ) { $options{error_callback}->( $d->get('Document feeder out of documents') ); } } when ( $_self->{abort_scan} == TRUE and ( $line =~ /^$options{frontend}:\ sane_start:\ Error\ during\ device\ I\/O/xsm or $line =~ /^$options{frontend}:\ received\ signal\ 2/xsm or $line =~ /^$options{frontend}:\ trying\ to\ stop\ scanner/xsm ) ) { ; } when (/^$options{frontend}:\ rounded/xsm) { $logger->info( substr( $line, 0, index( $line, "\n" ) + 1 ) ); } when (/^$options{frontend}:\ sane_(?:start|read):\ Device\ busy/xsm) { if ( defined $options{error_callback} ) { $options{error_callback}->( $d->get('Device busy') ); } } when ( /^$options{frontend}:\ sane_(?:start|read):\ Operation\ was\ cancelled/xsm) { if ( defined $options{error_callback} ) { $options{error_callback}->( $d->get('Operation cancelled') ); } } default { if ( defined $options{error_callback} ) { $options{error_callback}->( $d->get('Unknown message: ') . substr( $line, 0, index( $line, "\n" ) ) ); } } } }, finished_callback => $options{finished_callback} ); return; } # Helper sub to create the scanimage command sub _create_scanimage_cmd { my ( $options, $scan ) = @_; my %options = %{$options}; if ( not defined( $options{frontend} ) ) { $options{frontend} = 'scanimage' } my $help = $scan ? $EMPTY : '--help'; # inverted commas needed for strange characters in device name my $device = "--device-name='$options{device}'"; # Add basic options my @options; for ( @{ $options{options} } ) { my ( $key, $value ) = each( %{$_} ); if ( $key =~ /^(?:x|y|t|l)$/xsm ) { push @options, "-$key $value"; } else { push @options, "--$key='$value'"; } } if ( not $help ) { push @options, '--batch'; push @options, '--progress'; if ( defined( $options{start} ) and $options{start} != 0 ) { push @options, "--batch-start=$options{start}"; } if ( defined( $options{npages} ) and $options{npages} != 0 ) { push @options, "--batch-count=$options{npages}"; } if ( defined( $options{step} ) and $options{step} != 1 ) { push @options, "--batch-increment=$options{step}"; } } # Create command return "$options{prefix} $options{frontend} $help $device @options"; } # Carry out the scan with scanadf and the options passed. sub _scanadf { my (%options) = @_; if ( not defined( $options{frontend} ) ) { $options{frontend} = 'scanadf' } # inverted commas needed for strange characters in device name my $device = "--device-name='$options{device}'"; # Add basic options my @options; if ( defined $options{options} ) { @options = @{ $options{options} } } push @options, "--start-count=1"; if ( $options{npages} != 0 ) { push @options, "--end-count=$options{npages}" } push @options, '-o out%d.pnm'; # Create command my $cmd = "$options{prefix} $options{frontend} $device @options"; # scanadf doesn't have a progress option, so create a timeout to check # the size of the image being currently scanned. my $size; my $id = 1; my $running = TRUE; if ( defined $options{running_callback} ) { my $timer = Glib::Timeout->add( $_POLL_INTERVAL, sub { if ($running) { if ( defined $size ) { if ($size) { $options{running_callback}->( ( -s "out$id.pnm" ) / $size ); } else { # Pulse $options{running_callback}->(); } } # 50 is enough of the file for the header to be complete elsif ( -e "out$id.pnm" and ( -s "out$id.pnm" ) > 50 ) ## no critic (ProhibitMagicNumbers) { $size = Gscan2pdf::NetPBM::file_size_from_header("out$id.pnm"); } else { # Pulse $options{running_callback}->(); } return Glib::SOURCE_CONTINUE; } return Glib::SOURCE_REMOVE; } ); } _watch_cmd( cmd => $cmd, dir => $options{dir}, started_callback => $options{started_callback}, err_callback => sub { my ($line) = @_; given ($line) { when ( /Scanner\ warming\ up\ -\ waiting\ \d*\ seconds|wait\ for\ lamp\ warm-up/xsm ## no critic (ProhibitComplexRegexes) ) { if ( defined $options{running_callback} ) { $options{running_callback}->( 0, $d->get('Scanner warming up') ); } } when (/^Scanned\ document\ out(\d*)\.pnm/xsm) { $id = $1; # Timer will run until callback returns false my $timer = Glib::Timeout->add( $_POLL_INTERVAL, sub { if ( not -e "out$id.pnm" ) { return Glib::SOURCE_CONTINUE } if ( defined $options{new_page_callback} ) { $options{new_page_callback}->($id); } return Glib::SOURCE_REMOVE; } ); # Prevent the Glib::Timeout from checking the size of the file when it is # about to be renamed undef $size; } when (/^Scanned\ \d*\ pages/xsm) { ; } when (/^$options{frontend}:\ rounded/xsm) { $logger->info( substr( $line, 0, index( $line, "\n" ) + 1 ) ); } when (/^$options{frontend}:\ sane_start:\ Device\ busy/xsm) { if ( defined $options{error_callback} ) { $options{error_callback}->( $d->get('Device busy') ); } $running = FALSE; } when (/^$options{frontend}:\ sane_read:\ Operation\ was\ cancelled/xsm) { if ( defined $options{error_callback} ) { $options{error_callback}->( $d->get('Operation cancelled') ); } $running = FALSE; } default { if ( defined $options{error_callback} ) { $options{error_callback}->( $d->get('Unknown message: ') . substr( $line, 0, index( $line, "\n" ) ) ); } } } }, finished_callback => sub { if ( defined $options{finished_callback} ) { $options{finished_callback}->(); } $running = FALSE; } ); return; } # Flag the scan routine to abort sub cancel_scan { $_self->{abort_scan} = TRUE; return; } sub device { return $_self->{device_name}; } sub _watch_cmd { my (%options) = @_; my $out_finished = FALSE; my $err_finished = FALSE; my $error_flag = FALSE; $logger->info( $options{cmd} ); if ( defined $options{running_callback} ) { my $timer = Glib::Timeout->add( $_POLL_INTERVAL, sub { $options{running_callback}->(); return Glib::SOURCE_REMOVE if ( $out_finished or $err_finished ); return Glib::SOURCE_CONTINUE; } ); } # Make sure we are in temp directory my $cwd = getcwd; if ( defined $options{dir} ) { chdir $options{dir} } # Interface to scanimage my ( $write, $read ); my $error = IO::Handle->new; # this needed because of a bug in open3. my $pid = IPC::Open3::open3( $write, $read, $error, $options{cmd} ); $logger->info("Forked PID $pid"); # change back to original directory chdir $cwd; if ( defined $options{started_callback} ) { $options{started_callback}->() } if ( $_self->{abort_scan} ) { local $SIG{INT} = 'IGNORE'; $logger->info("Sending INT signal to PID $pid and its children"); killfam 'INT', ($pid); } my ( $stdout, $stderr, $error_message ); _add_watch( $read, sub { my ($line) = @_; $stdout .= $line; if ( defined $options{out_callback} ) { $options{out_callback}->($line) } }, sub { # Don't flag this until after the callback to avoid the race condition # where stdout is truncated by stderr prematurely reaping the process $out_finished = TRUE; }, sub { ($error_message) = @_; $error_flag = TRUE; } ); _add_watch( $error, sub { my ($line) = @_; $stderr .= $line; if ( defined $options{err_callback} ) { $options{err_callback}->($line) } }, sub { # Don't flag this until after the callback to avoid the race condition # where stderr is truncated by stdout prematurely reaping the process $err_finished = TRUE; }, sub { ($error_message) = @_; $error_flag = TRUE; } ); # Watch for the process to hang up before running the finished callback Glib::Child->watch_add( $pid, sub { # Although the process has hung up, we may still have output to read, # so wait until the _watch_add flags that the process has ended first. my $timer = Glib::Timeout->add( $_POLL_INTERVAL, sub { if ($error_flag) { if ( defined $options{error_callback} ) { $options{error_callback}->($error_message); } return Glib::SOURCE_REMOVE; } elsif ( $out_finished and $err_finished ) { if ( defined $options{finished_callback} ) { $options{finished_callback}->( $stdout, $stderr ); } $logger->info('Waiting to reap process'); # -1 indicates a non-blocking wait for all pending zombie processes $logger->info( "Reaped PID ", waitpid( -1, WNOHANG ) ) ## no critic (ProhibitMagicNumbers) ; return Glib::SOURCE_REMOVE; } return Glib::SOURCE_CONTINUE; } ); } ); return; } sub _add_watch { my ( $fh, $line_callback, $finished_callback, $error_callback ) = @_; my $line; Glib::IO->add_watch( fileno($fh), [ 'in', 'hup' ], sub { my ( $fileno, $condition ) = @_; my $buffer; if ( $condition & 'in' ) { # bit field operation. >= would also work # Only reading one buffer, rather than until sysread gives EOF # because things seem to be strange for stderr sysread $fh, $buffer, $_1KB; if ($buffer) { $line .= $buffer } while ( $line =~ /([\r\n])/xsm ) { my $le = $1; if ( defined $line_callback ) { $line_callback->( substr( $line, 0, index( $line, $le ) + 1 ) ); } $line = substr( $line, index( $line, $le ) + 1, length($line) ); } } # Only allow the hup if sure an empty buffer has been read. if ( ( $condition & 'hup' ) # bit field operation. >= would also work and ( not defined($buffer) or $buffer eq $EMPTY ) ) { if ( close $fh ) { $finished_callback->(); } elsif ( defined $error_callback ) { $error_callback->('Error closing filehandle'); } return Glib::SOURCE_REMOVE; } return Glib::SOURCE_CONTINUE; } ); return; } 1; __END__ gscan2pdf-1.2.3/lib/Gscan2pdf/Frontend/Sane.pm0000644000175000017500000004273012270574026017365 0ustar jeffjeffpackage Gscan2pdf::Frontend::Sane; use strict; use warnings; use feature "switch"; use threads; use threads::shared; use Thread::Queue; use Glib qw(TRUE FALSE); use Sane; use Readonly; Readonly my $BUFFER_SIZE => ( 32 * 1024 ); # default size Readonly my $_POLL_INTERVAL => 100; # ms Readonly my $_8_BIT => 8; Readonly my $MAXVAL_8_BIT => 2**$_8_BIT - 1; Readonly my $_16_BIT => 16; Readonly my $MAXVAL_16_BIT => 2**$_16_BIT - 1; our $VERSION = '1.2.3'; my $_self; my ( $prog_name, $logger ); sub setup { ( my $class, $logger ) = @_; $_self = {}; $prog_name = Glib::get_application_name; $_self->{requests} = Thread::Queue->new; share $_self->{device_list}; share $_self->{device_name}; # $_self->{device_handle} explicitly not shared share $_self->{status}; share $_self->{abort_scan}; share $_self->{scan_progress}; $_self->{thread} = threads->new( \&_thread_main, $_self ); return; } sub _enqueue_request { my ( $action, $data ) = @_; my $sentinel : shared = 0; $_self->{requests}->enqueue( { action => $action, sentinel => \$sentinel, ( $data ? %{$data} : () ) } ); return \$sentinel; } sub _when_ready { my ( $sentinel, $ready_callback, $not_ready_callback ) = @_; Glib::Timeout->add( $_POLL_INTERVAL, sub { if ( ${$sentinel} ) { $ready_callback->(); return Glib::SOURCE_REMOVE; } else { if ( defined $not_ready_callback ) { $not_ready_callback->(); } return Glib::SOURCE_CONTINUE; } } ); return; } sub quit { _enqueue_request('quit'); $_self->{thread}->join(); $_self->{thread} = undef; return; } sub get_devices { my ( $class, $started_callback, $running_callback, $finished_callback ) = @_; my $sentinel = _enqueue_request('get-devices'); my $started; _when_ready( $sentinel, sub { if ( not $started ) { $started_callback->() } $finished_callback->( $_self->{device_list} ); }, sub { if ( not $started ) { $started_callback->(); $started = 1; } $running_callback->(); } ); return; } sub is_connected { return defined $_self->{device_name}; } sub device { return $_self->{device_name}; } sub open_device { my ( $class, %options ) = @_; my $sentinel = _enqueue_request( 'open', { device_name => $options{device_name} } ); my $started; _when_ready( $sentinel, sub { if ( not $started and defined( $options{started_callback} ) ) { $options{started_callback}->(); } if ( $_self->{status} == SANE_STATUS_GOOD ) { if ( defined $options{finished_callback} ) { $options{finished_callback}->(); } } else { if ( defined $options{error_callback} ) { $options{error_callback}->( Sane::strstatus( $_self->{status} ) ); } } }, sub { if ( not $started ) { if ( defined $options{started_callback} ) { $options{started_callback}->() } $started = 1; } if ( defined $options{running_callback} ) { $options{running_callback}->() } } ); return; } sub find_scan_options { my ( $class, $started_callback, $running_callback, $finished_callback, $error_callback ) = @_; my $option_array : shared; my $sentinel = _enqueue_request( 'get-options', { options => \$option_array } ); my $started; _when_ready( $sentinel, sub { if ( not $started ) { $started_callback->() } if ( $_self->{status} == SANE_STATUS_GOOD ) { $finished_callback->($option_array); } else { $error_callback->( Sane::strstatus( $_self->{status} ) ); } }, sub { if ( not $started ) { $started_callback->(); $started = 1; } $running_callback->(); } ); return; } sub set_option { my ( $class, %options ) = @_; my $option_array : shared; my $sentinel = _enqueue_request( 'set-option', { index => $options{index}, value => $options{value}, new_options => \$option_array } ); my $started; _when_ready( $sentinel, sub { if ( not $started and defined( $options{started_callback} ) ) { $options{started_callback}->(); } if ( defined $options{finished_callback} ) { $options{finished_callback}->($option_array); } }, sub { if ( not $started ) { if ( defined $options{started_callback} ) { $options{started_callback}->() } $started = 1; } if ( defined $options{running_callback} ) { $options{running_callback}->() } } ); return; } sub _new_page { my ( $dir, $format, $n ) = @_; my $path = sprintf $format, $n; if ( defined $dir ) { $path = File::Spec->catdir( $dir, $path ) } return _enqueue_request( 'scan-page', { path => $path } ); } sub scan_pages { my ( $class, %options ) = @_; $_self->{status} = SANE_STATUS_GOOD; $_self->{abort_scan} = 0; $_self->{scan_progress} = 0; my $sentinel = _new_page( $options{dir}, $options{format}, $options{start} ); my $n = 1; my $started; Glib::Timeout->add( $_POLL_INTERVAL, sub { if ( ${$sentinel} ) { # Check status of scan if ( defined( $options{new_page_callback} ) and not $_self->{abort_scan} and ( $_self->{status} == SANE_STATUS_GOOD or $_self->{status} == SANE_STATUS_EOF ) ) { $options{new_page_callback}->( $options{start} ); } # Stop the process unless everything OK and more scans required if ( $_self->{abort_scan} or ( $options{npages} and ++$n > $options{npages} ) or ( $_self->{status} != SANE_STATUS_GOOD and $_self->{status} != SANE_STATUS_EOF ) ) { _enqueue_request('cancel'); if ( _scanned_enough_pages( $options{npages}, $n ) ) { if ( defined $options{finished_callback} ) { $options{finished_callback}->(); } } else { if ( defined $options{error_callback} ) { $options{error_callback}->( Sane::strstatus( $_self->{status} ) ); } } return Glib::SOURCE_REMOVE; } $options{start} += $options{step}; $sentinel = _new_page( $options{dir}, $options{format}, $options{start} ); return Glib::SOURCE_CONTINUE; } else { if ( not $started ) { if ( defined $options{started_callback} ) { $options{started_callback}->(); } $started = 1; } if ( defined $options{running_callback} ) { $options{running_callback}->( $_self->{scan_progress} ); } return Glib::SOURCE_CONTINUE; } } ); return; } sub _scanned_enough_pages { my ( $nrequired, $ndone ) = @_; return ( $_self->{status} == SANE_STATUS_GOOD or $_self->{status} == SANE_STATUS_EOF or ( $_self->{status} == SANE_STATUS_NO_DOCS and $nrequired < $ndone ) ); } # Flag the scan routine to abort sub cancel_scan { # Empty process queue first to stop any new process from starting $logger->info("Emptying process queue"); while ( $_self->{requests}->dequeue_nb ) { } # Then send the thread a cancel signal $_self->{abort_scan} = 1; return; } sub _thread_main { my ($self) = @_; while ( my $request = $self->{requests}->dequeue ) { given ( $request->{action} ) { when ('quit') { last } when ('get-devices') { _thread_get_devices($self) } when ('open') { _thread_open_device( $self, $request->{device_name} ) } when ('get-options') { _thread_get_options( $self, $request->{options} ) } when ('set-option') { _thread_set_option( $self, $request->{index}, $request->{value}, $request->{new_options} ) } when ('scan-page') { _thread_scan_page( $self, $request->{path} ) } when ('cancel') { _thread_cancel($self) } default { $logger->info("Ignoring unknown request $_"); next; } } # Store the current status in the shared status variable. Otherwise, the # main thread has no way to access this thread's $Sane::STATUS. Numerify to # please thread::shared. $self->{status} = $Sane::STATUS + 0; # Signal the sentinel that the request was completed. ${ $request->{sentinel} }++; } return; } sub _thread_get_devices { my ($self) = @_; my @devices = Sane->get_devices; $self->{device_list} = shared_clone \@devices; return; } sub _thread_open_device { my ( $self, $device_name ) = @_; # close the handle if ( defined( $self->{device_handle} ) ) { undef $self->{device_handle} } $self->{device_handle} = Sane::Device->open($device_name); $logger->debug("opening device '$device_name': $Sane::STATUS"); if ( $Sane::STATUS != SANE_STATUS_GOOD ) { $logger->error("opening device '$device_name': $Sane::STATUS"); return; } $self->{device_name} = $device_name; return; } sub _thread_get_options { my ( $self, $options ) = @_; my @options; # We got a device, find out how many options it has: my $num_dev_options = $self->{device_handle}->get_option(0); if ( $Sane::STATUS != SANE_STATUS_GOOD ) { $logger->error("unable to determine option count"); return; } for ( 1 .. $num_dev_options - 1 ) { my $opt = $self->{device_handle}->get_option_descriptor($_); $options[$_] = $opt; if ( not(( $opt->{cap} & SANE_CAP_INACTIVE ) or ( $opt->{type} == SANE_TYPE_BUTTON ) or ( $opt->{type} == SANE_TYPE_GROUP ) ) ) { $opt->{val} = $self->{device_handle}->get_option($_); } } ${$options} = shared_clone \@options; return; } sub _thread_set_option { my ( $self, $index, $value, $new_options ) = @_; # FIXME: Stringification to force this SV to have a PV slot. This seems to # be necessary to get through Sane.pm's value checks. $value = "$value"; my $info = $self->{device_handle}->set_option( $index, $value ); if ( $logger->is_info ) { my $status = $Sane::STATUS; my $opt = $self->{device_handle}->get_option_descriptor($index); $logger->info( "sane_set_option $index ($opt->{name}) to $value returned status $status with info $info" ); } # FIXME: This duplicates _thread_get_options. if ( $info & SANE_INFO_RELOAD_OPTIONS ) { my $num_dev_options = $self->{device_handle}->get_option(0); if ( $Sane::STATUS != SANE_STATUS_GOOD ) { $logger->error("unable to determine option count"); return; } my @options; for ( 1 .. $num_dev_options - 1 ) { my $opt = $self->{device_handle}->get_option_descriptor($_); $options[$_] = $opt; if ( not $opt->{cap} & SANE_CAP_SOFT_DETECT ) { next } if ( $opt->{type} != SANE_TYPE_BUTTON ) { $opt->{val} = $self->{device_handle}->get_option($_); } } ${$new_options} = shared_clone \@options; } return; } sub _thread_write_pnm_header { my ( $fh, $format, $width, $height, $depth ) = @_; # The netpbm-package does not define raw image data with maxval > 255. # But writing maxval 65535 for 16bit data gives at least a chance # to read the image. if ($format == SANE_FRAME_RED or $format == SANE_FRAME_GREEN or $format == SANE_FRAME_BLUE or $format == SANE_FRAME_RGB ) { printf $fh "P6\n# SANE data follows\n%d %d\n%d\n", $width, $height, ( $depth > $_8_BIT ) ? $MAXVAL_16_BIT : $MAXVAL_8_BIT; } else { if ( $depth == 1 ) { printf $fh "P4\n# SANE data follows\n%d %d\n", $width, $height; } else { printf $fh "P5\n# SANE data follows\n%d %d\n%d\n", $width, $height, ( $depth > $_8_BIT ) ? $MAXVAL_16_BIT : $MAXVAL_8_BIT; } } return; } sub _thread_scan_page_to_fh { my ( $device, $fh ) = @_; my $first_frame = 1; my $offset = 0; my $must_buffer = 0; my %image; my @format_name = ( "gray", "RGB", "red", "green", "blue" ); my $total_bytes = 0; my ( $parm, $last_frame ); while ( not $last_frame ) { if ( not $first_frame ) { $device->start; if ( $Sane::STATUS != SANE_STATUS_GOOD ) { $logger->info("$prog_name: sane_start: $Sane::STATUS"); goto cleanup; } } $parm = $device->get_parameters; if ( $Sane::STATUS != SANE_STATUS_GOOD ) { $logger->info("$prog_name: sane_get_parameters: $Sane::STATUS"); goto cleanup; } _log_frame_info( $first_frame, $parm, \@format_name ); ( $must_buffer, $offset ) = _initialise_scan( $fh, $first_frame, $parm ); my $hundred_percent = _scan_data_size($parm); while (1) { # Pick up flag from cancel_scan() if ( $_self->{abort_scan} ) { $device->cancel; $logger->info('Scan cancelled'); return; } my ( $buffer, $len ) = $device->read($BUFFER_SIZE); $total_bytes += $len; my $progr = $total_bytes / $hundred_percent; if ( $progr > 1 ) { $progr = 1 } $_self->{scan_progress} = $progr; if ( $Sane::STATUS != SANE_STATUS_GOOD ) { if ( $parm->{depth} == $_8_BIT ) { $logger->info( sprintf "$prog_name: min/max graylevel value = %d/%d", $MAXVAL_8_BIT, 0 ); } if ( $Sane::STATUS != SANE_STATUS_EOF ) { $logger->info("$prog_name: sane_read: $Sane::STATUS"); return; } last; } if ($must_buffer) { $offset = _buffer_scan( $offset, $parm, \%image, $len, $buffer ); } else { print $fh $buffer; } } $first_frame = 0; $last_frame = $parm->{last_frame}; } if ($must_buffer) { _write_buffer_to_fh( $fh, $parm, \%image ) } cleanup: my $expected_bytes = $parm->{bytes_per_line} * $parm->{lines} * _number_frames($parm); if ( $parm->{lines} < 0 ) { $expected_bytes = 0 } if ( $total_bytes > $expected_bytes and $expected_bytes != 0 ) { $logger->info( sprintf "%s: WARNING: read more data than announced by backend " . "(%u/%u)", $prog_name, $total_bytes, $expected_bytes ); } else { $logger->info( sprintf "%s: read %u bytes in total", $prog_name, $total_bytes ); } return; } sub _thread_scan_page { my ( $self, $path ) = @_; if ( not defined( $self->{device_handle} ) ) { $logger->info("$prog_name: must open device before starting scan"); return; } $self->{device_handle}->start; $self->{status} = $Sane::STATUS + 0; if ( $Sane::STATUS != SANE_STATUS_GOOD ) { $logger->info("$prog_name: sane_start: $Sane::STATUS"); return; } my $fh; if ( not open( $fh, ">", $path ) ) { $self->{device_handle}->cancel; $self->{status} = SANE_STATUS_ACCESS_DENIED; return; } _thread_scan_page_to_fh( $self->{device_handle}, $fh ); $self->{status} = $Sane::STATUS + 0; if ( not close($fh) ) { $self->{device_handle}->cancel; $self->{status} = SANE_STATUS_ACCESS_DENIED; return; } $logger->info( sprintf "Scanned page %s. (scanner status = %d)", $path, $Sane::STATUS ); if ( $Sane::STATUS != SANE_STATUS_GOOD and $Sane::STATUS != SANE_STATUS_EOF ) { unlink($path); } return; } sub _thread_cancel { my ($self) = @_; if ( defined $self->{device_handle} ) { $self->{device_handle}->cancel } return; } sub _log_frame_info { my ( $first_frame, $parm, $format_name ) = @_; if ($first_frame) { if ( $parm->{lines} >= 0 ) { $logger->info( sprintf "$prog_name: scanning image of size %dx%d pixels at " . "%d bits/pixel", $parm->{pixels_per_line}, $parm->{lines}, $_8_BIT * $parm->{bytes_per_line} / $parm->{pixels_per_line} ); } else { $logger->info( sprintf "$prog_name: scanning image %d pixels wide and " . "variable height at %d bits/pixel", $parm->{pixels_per_line}, $_8_BIT * $parm->{bytes_per_line} / $parm->{pixels_per_line} ); } $logger->info( sprintf "$prog_name: acquiring %s frame", $parm->{format} <= SANE_FRAME_BLUE ? $format_name->[ $parm->{format} ] : "Unknown" ); } return; } sub _initialise_scan { my ( $fh, $first_frame, $parm ) = @_; my ( $must_buffer, $offset ); if ($first_frame) { if ($parm->{format} == SANE_FRAME_RED or $parm->{format} == SANE_FRAME_GREEN or $parm->{format} == SANE_FRAME_BLUE ) { if ( $parm->{depth} != $_8_BIT ) { die "Red/Green/Blue frames require depth=$_8_BIT\n"; } $must_buffer = 1; $offset = $parm->{format} - SANE_FRAME_RED; } elsif ( $parm->{format} == SANE_FRAME_RGB ) { if ( ( $parm->{depth} != $_8_BIT ) and ( $parm->{depth} != $_16_BIT ) ) { die "RGB frames require depth=$_8_BIT or $_16_BIT\n"; } } if ($parm->{format} == SANE_FRAME_RGB or $parm->{format} == SANE_FRAME_GRAY ) { if ( ( $parm->{depth} != 1 ) and ( $parm->{depth} != $_8_BIT ) and ( $parm->{depth} != $_16_BIT ) ) { die "Valid depths are 1, $_8_BIT or $_16_BIT\n"; } if ( $parm->{lines} < 0 ) { $must_buffer = 1; $offset = 0; } else { _thread_write_pnm_header( $fh, $parm->{format}, $parm->{pixels_per_line}, $parm->{lines}, $parm->{depth} ); } } } else { die "Encountered unknown format\n" if ( $parm->{format} < SANE_FRAME_RED or $parm->{format} > SANE_FRAME_BLUE ); $offset = $parm->{format} - SANE_FRAME_RED; } return ( $must_buffer, $offset ); } # Return size of final scan (ignoring header) sub _scan_data_size { my ($parm) = @_; return $parm->{bytes_per_line} * $parm->{lines} * _number_frames($parm); } # Return number of frames sub _number_frames { my ($parm) = @_; return ( $parm->{format} == SANE_FRAME_RGB or $parm->{format} == SANE_FRAME_GRAY ) ? 1 : 3; ## no critic (ProhibitMagicNumbers) } # We're either scanning a multi-frame image or the # scanner doesn't know what the eventual image height # will be (common for hand-held scanners). In either # case, we need to buffer all data before we can write # the header sub _buffer_scan { my ( $offset, $parm, $image, $len, $buffer ) = @_; my $number_frames = _number_frames($parm); for ( 0 .. $len - 1 ) { $image->{data}[ $offset + $number_frames * $_ ] = substr( $buffer, $_, 1 ); } $offset += $number_frames * $len; return $offset; } sub _write_buffer_to_fh { my ( $fh, $parm, $image ) = @_; if ( $parm->{lines} > 0 ) { $image->{height} = $parm->{lines}; } else { $image->{height} = @{ $image->{data} } / $parm->{pixels_per_line}; $image->{height} /= _number_frames($parm); } _thread_write_pnm_header( $fh, $parm->{format}, $parm->{pixels_per_line}, $image->{height}, $parm->{depth} ); for ( @{ $image->{data} } ) { print $fh; } return; } 1; __END__ gscan2pdf-1.2.3/lib/Gscan2pdf/Tesseract.pm0000644000175000017500000001423012270574026016647 0ustar jeffjeffpackage Gscan2pdf::Tesseract; use 5.008005; use strict; use warnings; use Carp; use File::Temp; # To create temporary files use File::Basename; use Gscan2pdf::Document; # for slurp use version; use English qw( -no_match_vars ); # for $PROCESS_ID our $VERSION = '1.2.3'; my $EMPTY = q{}; my $COMMA = q{,}; my ( %languages, $installed, $setup, $version, $tessdata, $datasuffix, $logger ); sub setup { ( my $class, $logger ) = @_; return $installed if $setup; my ( $exe, undef ) = Gscan2pdf::Document::open_three('which tesseract'); return if ( not defined($exe) or $exe eq $EMPTY ); $installed = 1; # if we have 3.02.01 or better, we can use --list-langs and not bother with tessdata my ( $out, $err ) = Gscan2pdf::Document::open_three("tesseract -v"); if ( $err =~ /^tesseract\ ([\d\.]+)/xsm ) { $version = $1; } if ( $version and version->parse("v$version") > version->parse('v3.02') ) { $logger->info("Found tesseract version $version."); $setup = 1; return $installed; } ( $out, $err ) = Gscan2pdf::Document::open_three("tesseract '' '' -l ''"); ( $tessdata, $version, $datasuffix ) = parse_tessdata( $out . $err ); if ( not defined($tessdata) ) { if ( $version and version->parse("v$version") > version->parse('v3.01') ) { my ( $lib, undef ) = Gscan2pdf::Document::open_three("ldd $exe"); if ( $lib =~ /libtesseract\.so.\d+\ =>\ ([\/a-zA-Z0-9\-\.\_]+)\ /xsm ) { ( $out, undef ) = Gscan2pdf::Document::open_three("strings $1"); $tessdata = parse_strings($out); } else { return; } } else { return; } } $logger->info("Found tesseract version $version. Using tessdata at $tessdata"); $setup = 1; return $installed; } sub parse_tessdata { my @output = @_; my $output = join $COMMA, @output; my ( $v, $suffix ); if ( $output =~ /\ v(\d\.\d\d)\ /xsm ) { $v = $1 + 0; } if ( $output =~ /Unable\ to\ load\ unicharset\ file\ ([^\n]+)/xsm ) { $output = $1; if ( not defined($v) ) { $v = 2 } $suffix = '.unicharset'; } elsif ( $output =~ /Error\ openn?ing\ data\ file\ ([^\n]+)/xsm ) { $output = $1; if ( not defined($v) ) { $v = 3 } ## no critic (ProhibitMagicNumbers) $suffix = '.traineddata'; } elsif ( defined($v) and version->parse("v$v") > version->parse('v3.01') ) { return ( undef, $v, '.traineddata' ); } else { return; } $output =~ s/\/ $suffix $//xsm; return $output, $v, $suffix; } sub parse_strings { my ($strings) = @_; my @strings = split /\n/xsm, $strings; for (@strings) { return $_ . "tessdata" if (/\/ share \//xsm); } return; } sub languages { if ( not %languages ) { my %iso639 = ( ara => 'Arabic', bul => 'Bulgarian', cat => 'Catalan', ces => 'Czech', chr => 'Cherokee', chi_tra => 'Chinese (Traditional)', chi_sim => 'Chinese (Simplified)', dan => 'Danish', 'dan-frak' => 'Danish (Fraktur)', deu => 'German', 'deu-f' => 'German (Fraktur)', 'deu-frak' => 'German (Fraktur)', ell => 'Greek', eng => 'English', fin => 'Finish', fra => 'French', heb => 'Hebrew', hin => 'Hindi', hun => 'Hungarian', ind => 'Indonesian', ita => 'Italian', jpn => 'Japanese', kor => 'Korean', lav => 'Latvian', lit => 'Lituanian', nld => 'Dutch', nor => 'Norwegian', pol => 'Polish', por => 'Portuguese', que => 'Quechua', ron => 'Romanian', rus => 'Russian', slk => 'Slovak', 'slk-frak' => 'Slovak (Fraktur)', slv => 'Slovenian', spa => 'Spanish', srp => 'Serbian (Latin)', swe => 'Swedish', 'swe-frak' => 'Swedish (Fraktur)', tha => 'Thai', tlg => 'Tagalog', tur => 'Turkish', ukr => 'Ukranian', vie => 'Vietnamese', ); my @codes; if ( version->parse("v$version") > version->parse('v3.02') ) { my ( undef, $codes ) = Gscan2pdf::Document::open_three("tesseract --list-langs"); @codes = split /\n/xsm, $codes; if ( $codes[0] =~ /^List\ of\ available\ languages/xsm ) { shift @codes } } else { for ( glob "$tessdata/*$datasuffix" ) { # Weed out the empty language files if ( not -z $_ ) { if (/ ([\w\-]*) $datasuffix $/xsm) { push @codes, $1; } } } } for (@codes) { $logger->info("Found tesseract language $_"); if ( defined $iso639{$_} ) { $languages{$_} = $iso639{$_}; } else { $languages{$_} = $_; } } } return \%languages; } sub hocr { # can't use the package-wide logger variable as we are in a thread here. ( my $class, my $file, my $language, $logger, my $pidfile ) = @_; my ( $tif, $cmd, $name, $path ); if ( not $setup ) { Gscan2pdf::Tesseract->setup($logger) } # Temporary filename for output my $suffix = version->parse("v$version") >= version->parse("v3") ? '.html' : '.txt'; my $txt = File::Temp->new( SUFFIX => $suffix ); ( $name, $path, undef ) = fileparse( $txt, $suffix ); if ( version->parse("v$version") < version->parse("v3") and $file !~ /\.tif$/xsm ) { # Temporary filename for new file $tif = File::Temp->new( SUFFIX => '.tif' ); my $image = Image::Magick->new; $image->Read($file); $image->Write( filename => $tif ); } else { $tif = $file; } if ( version->parse("v$version") >= version->parse("v3") ) { $cmd = "echo tessedit_create_hocr 1 > hocr.config;tesseract $tif $path$name -l $language +hocr.config;rm hocr.config"; } elsif ($language) { $cmd = "tesseract $tif $path$name -l $language"; } else { $cmd = "tesseract $tif $path$name"; } $logger->info($cmd); # File in which to store the process ID so that it can be killed if necessary if ( defined $pidfile ) { $cmd = "echo $PROCESS_ID > $pidfile;$cmd" } my ( $out, $err ) = Gscan2pdf::Document::open_three($cmd); my $warnings = $out . $err; my $leading = 'Tesseract Open Source OCR Engine'; my $trailing = 'with Leptonica'; $warnings =~ s/$leading v\d\.\d\d $trailing\n//xsm; $warnings =~ s/^Page\ 0\n//xsm; $logger->debug( 'Warnings from Tesseract: ', $warnings ); return Gscan2pdf::Document::slurp($txt), $warnings; } 1; __END__ gscan2pdf-1.2.3/lib/Gscan2pdf/Document.pm0000644000175000017500000022553712271546252016507 0ustar jeffjeffpackage Gscan2pdf::Document; use strict; use warnings; use feature "switch"; use threads; use threads::shared; use Thread::Queue; use Gscan2pdf::Scanner::Options; use Gscan2pdf::Page; use Glib 1.210 qw(TRUE FALSE) ; # To get TRUE and FALSE. 1.210 necessary for Glib::SOURCE_REMOVE and Glib::SOURCE_CONTINUE use Socket; use FileHandle; use Image::Magick; use File::Temp; # To create temporary files use File::Basename; # Split filename into dir, file, ext use File::Copy; use Storable qw(store retrieve); use Archive::Tar; # For session files use Proc::Killfam; use Locale::gettext 1.05; # For translations use IPC::Open3 'open3'; use Symbol; # for gensym use Try::Tiny; use Set::IntSpan 1.10; # For size method for page numbering issues use PDF::API2; use English qw( -no_match_vars ); # for $PROCESS_ID, $INPUT_RECORD_SEPARATOR use Readonly; Readonly our $POINTS_PER_INCH => 72; Readonly my $_POLL_INTERVAL => 100; # ms Readonly my $THUMBNAIL => 100; # pixels Readonly my $YEAR => 5; Readonly my $BOX_TOLERANCE => 5; BEGIN { use Exporter (); our ( $VERSION, @EXPORT_OK, %EXPORT_TAGS ); $VERSION = '1.2.3'; use base qw(Exporter Gtk2::Ex::Simple::List); %EXPORT_TAGS = (); # eg: TAG => [ qw!name1 name2! ], # your exported package globals go here, # as well as any optionally exported functions @EXPORT_OK = qw(); # define hidden string column for page data Gtk2::Ex::Simple::List->add_column_type( 'hstring', type => 'Glib::Scalar', attr => 'hidden' ); } our @EXPORT_OK; my $_PID = 0; # flag to identify which process to cancel my $jobs_completed = 0; my $jobs_total = 0; my $EMPTY = q{}; my $SPACE = q{ }; my ( $_self, $d, $logger, $paper_sizes ); my %format = ( 'pnm' => 'Portable anymap', 'ppm' => 'Portable pixmap format (color)', 'pgm' => 'Portable graymap format (gray scale)', 'pbm' => 'Portable bitmap format (black and white)', ); sub setup { ( my $class, $logger ) = @_; $_self = {}; $d = Locale::gettext->domain(Glib::get_application_name); Gscan2pdf::Page->set_logger($logger); $_self->{requests} = Thread::Queue->new; $_self->{info_queue} = Thread::Queue->new; $_self->{page_queue} = Thread::Queue->new; share $_self->{status}; share $_self->{message}; share $_self->{progress}; share $_self->{process_name}; share $_self->{cancel}; $_self->{thread} = threads->new( \&_thread_main, $_self ); return; } sub new { my ( $class, %options ) = @_; my $self = Gtk2::Ex::Simple::List->new( q{#} => 'int', $d->get('Thumbnails') => 'pixbuf', 'Page Data' => 'hstring', ); $self->get_selection->set_mode('multiple'); $self->set_headers_visible(FALSE); $self->set_reorderable(TRUE); for ( keys %options ) { $self->{$_} = $options{$_}; } # Default thumbnail sizes if ( not defined( $self->{heightt} ) ) { $self->{heightt} = $THUMBNAIL } if ( not defined( $self->{widtht} ) ) { $self->{widtht} = $THUMBNAIL } bless( $self, $class ); return $self; } # Set the paper sizes in the manager and worker threads sub set_paper_sizes { ( my $class, $paper_sizes ) = @_; _enqueue_request( 'paper_sizes', { paper_sizes => $paper_sizes } ); return; } sub quit { _enqueue_request('quit'); $_self->{thread}->join(); $_self->{thread} = undef; return; } # Flag the given process to cancel itself sub cancel { my ( $self, $pid, $callback ) = @_; if ( defined $self->{running_pids}{$pid} ) { $self->{cancel_cb}{$pid} = $callback; } return; } sub get_file_info { my ( $self, %options ) = @_; # File in which to store the subprocess ID so that it can be killed if necessary my $pidfile = File::Temp->new( DIR => $self->{dir}, SUFFIX => '.pid' ); my $sentinel = _enqueue_request( 'get-file-info', { path => $options{path}, pidfile => "$pidfile" } ); return $self->_monitor_process( sentinel => $sentinel, pidfile => $pidfile, info => TRUE, queued_callback => $options{queued_callback}, started_callback => $options{started_callback}, running_callback => $options{running_callback}, error_callback => $options{error_callback}, cancelled_callback => $options{cancelled_callback}, finished_callback => $options{finished_callback}, ); } sub import_file { my ( $self, %options ) = @_; # File in which to store the process ID so that it can be killed if necessary my $pidfile = File::Temp->new( DIR => $self->{dir}, SUFFIX => '.pid' ); my $sentinel = _enqueue_request( 'import-file', { info => $options{info}, first => $options{first}, last => $options{last}, dir => "$self->{dir}", pidfile => "$pidfile" } ); return $self->_monitor_process( sentinel => $sentinel, pidfile => $pidfile, add => $options{last} - $options{first} + 1, queued_callback => $options{queued_callback}, started_callback => $options{started_callback}, running_callback => $options{running_callback}, error_callback => $options{error_callback}, cancelled_callback => $options{cancelled_callback}, finished_callback => $options{finished_callback}, ); } sub fetch_file { my ( $self, $n ) = @_; my $i = 0; if ($n) { while ( $i < $n ) { my $page = $_self->{page_queue}->dequeue; if ( ref($page) eq $EMPTY ) { $n = $page; return $self->fetch_file($n); } else { $self->add_page( $page->thaw ); ++$i; } } } else { while ( defined( my $page = $_self->{page_queue}->dequeue_nb() ) ) { if ( ref($page) eq $EMPTY ) { $n = $page; return $self->fetch_file($n); } else { $self->add_page( $page->thaw ); ++$i; } } } return $i; } # Check how many pages could be scanned sub pages_possible { my ( $self, $start, $step ) = @_; my $n = 0; my $i = $#{ $self->{data} }; while (TRUE) { # Settings take us into negative page range if ( $start + $n * $step < 1 ) { ## no critic (ProhibitCascadingIfElse) return $n; } # Empty document and negative step elsif ( $i < 0 and $step < 0 ) { return -$start / $step; } # Empty document, or checked beyond end of document, allow infinite pages elsif ( ( @{ $self->{data} } == 0 or $self->{data}[ $#{ $self->{data} } ][0] < $start ) and $step > 0 ) { return -1; ## no critic (ProhibitMagicNumbers) } # Found existing page elsif ( $self->{data}[$i][0] == $start + $n * $step ) { return $n; } # Current page doesn't exist, check for at least one more elsif ( $n == 0 ) { ++$n; } # In the middle of the document, scan back to find page nearer start elsif ( $self->{data}[$i][0] > $start + $n * $step and $i > 0 ) { --$i; } # Try one more page else { ++$n; } } return; } # Add a new page to the document sub add_page { my ( $self, $page, $pagenum, $success_cb ) = @_; # Add to the page list if ( not defined($pagenum) ) { $pagenum = $#{ $self->{data} } + 2 } # Block the row-changed signal whilst adding the scan (row) and sorting it. if ( defined $self->{row_changed_signal} ) { $self->get_model->signal_handler_block( $self->{row_changed_signal} ); } my $thumb = get_pixbuf( $page->{filename}, $self->{heightt}, $self->{widtht} ); my $resolution = $page->resolution($paper_sizes); push @{ $self->{data} }, [ $pagenum, $thumb, $page ]; $logger->info( "Added $page->{filename} at page $pagenum with resolution $resolution"); # Block selection_changed_signal to prevent its firing changing pagerange to all if ( defined $self->{selection_changed_signal} ) { $self->get_selection->signal_handler_block( $self->{selection_changed_signal} ); } $self->get_selection->unselect_all; $self->manual_sort_by_column(0); if ( defined $self->{selection_changed_signal} ) { $self->get_selection->signal_handler_unblock( $self->{selection_changed_signal} ); } if ( defined $self->{row_changed_signal} ) { $self->get_model->signal_handler_unblock( $self->{row_changed_signal} ); } my @page; # Due to the sort, must search for new page $page[0] = 0; # $page[0] < $#{$self -> {data}} needed to prevent infinite loop in case of # error importing. while ( $page[0] < $#{ $self->{data} } and $self->{data}[ $page[0] ][0] != $pagenum ) { ++$page[0]; } $self->select(@page); if ($success_cb) { $success_cb->() } return $page[0]; } # Helpers: sub compare_numeric_col { ## no critic (RequireArgUnpacking, RequireFinalReturn) $_[0] <=> $_[1]; } sub compare_text_col { ## no critic (RequireArgUnpacking, RequireFinalReturn) $_[0] cmp $_[1]; } # Manual one-time sorting of the simplelist's data sub manual_sort_by_column { my ( $self, $sortcol ) = @_; # The sort function depends on the column type my %sortfuncs = ( 'Glib::Scalar' => \&compare_text_col, 'Glib::String' => \&compare_text_col, 'Glib::Int' => \&compare_numeric_col, 'Glib::Double' => \&compare_numeric_col, ); # Remember, this relies on the fact that simplelist keeps model # and view column indices aligned. my $sortfunc = $sortfuncs{ $self->get_model->get_column_type($sortcol) }; # Deep copy the tied data so we can sort it. Otherwise, very bad things happen. my @data = map { [ @{$_} ] } @{ $self->{data} }; @data = sort { $sortfunc->( $a->[$sortcol], $b->[$sortcol] ) } @data; @{ $self->{data} } = @data; return; } # Returns the pixbuf scaled to fit in the given box sub get_pixbuf { my ( $filename, $height, $width ) = @_; my $pixbuf; try { $pixbuf = Gtk2::Gdk::Pixbuf->new_from_file_at_scale( $filename, $width, $height, TRUE ); } catch { $logger->warn("Caught error getting pixbuf: $_"); }; return $pixbuf; } sub save_pdf { my ( $self, %options ) = @_; for my $i ( 0 .. $#{ $options{list_of_pages} } ) { $options{list_of_pages}->[$i] = $options{list_of_pages}->[$i] ->freeze; # sharing File::Temp objects causes problems } # File in which to store the process ID so that it can be killed if necessary my $pidfile = File::Temp->new( DIR => $self->{dir}, SUFFIX => '.pid' ); my $sentinel = _enqueue_request( 'save-pdf', { path => $options{path}, list_of_pages => $options{list_of_pages}, metadata => $options{metadata}, options => $options{options}, dir => "$self->{dir}", pidfile => "$pidfile" } ); return $self->_monitor_process( sentinel => $sentinel, pidfile => $pidfile, queued_callback => $options{queued_callback}, started_callback => $options{started_callback}, running_callback => $options{running_callback}, error_callback => $options{error_callback}, cancelled_callback => $options{cancelled_callback}, finished_callback => $options{finished_callback}, ); } sub save_djvu { my ( $self, %options ) = @_; for my $i ( 0 .. $#{ $options{list_of_pages} } ) { $options{list_of_pages}->[$i] = $options{list_of_pages}->[$i] ->freeze; # sharing File::Temp objects causes problems } # File in which to store the process ID so that it can be killed if necessary my $pidfile = File::Temp->new( DIR => $self->{dir}, SUFFIX => '.pid' ); my $sentinel = _enqueue_request( 'save-djvu', { path => $options{path}, list_of_pages => $options{list_of_pages}, dir => "$self->{dir}", pidfile => "$pidfile" } ); return $self->_monitor_process( sentinel => $sentinel, pidfile => $pidfile, queued_callback => $options{queued_callback}, started_callback => $options{started_callback}, running_callback => $options{running_callback}, error_callback => $options{error_callback}, cancelled_callback => $options{cancelled_callback}, finished_callback => $options{finished_callback}, ); } sub save_tiff { my ( $self, %options ) = @_; for my $i ( 0 .. $#{ $options{list_of_pages} } ) { $options{list_of_pages}->[$i] = $options{list_of_pages}->[$i] ->freeze; # sharing File::Temp objects causes problems } # File in which to store the process ID so that it can be killed if necessary my $pidfile = File::Temp->new( DIR => $self->{dir}, SUFFIX => '.pid' ); my $sentinel = _enqueue_request( 'save-tiff', { path => $options{path}, list_of_pages => $options{list_of_pages}, options => $options{options}, ps => $options{ps}, dir => "$self->{dir}", pidfile => "$pidfile" } ); return $self->_monitor_process( sentinel => $sentinel, pidfile => $pidfile, queued_callback => $options{queued_callback}, started_callback => $options{started_callback}, running_callback => $options{running_callback}, error_callback => $options{error_callback}, cancelled_callback => $options{cancelled_callback}, finished_callback => $options{finished_callback}, ); } sub rotate { my ( $self, %options ) = @_; my $sentinel = _enqueue_request( 'rotate', { angle => $options{angle}, page => $options{page}->freeze, dir => "$self->{dir}" } ); return $self->_monitor_process( sentinel => $sentinel, update_slist => TRUE, queued_callback => $options{queued_callback}, started_callback => $options{started_callback}, running_callback => $options{running_callback}, error_callback => $options{error_callback}, cancelled_callback => $options{cancelled_callback}, display_callback => $options{display_callback}, finished_callback => $options{finished_callback}, ); } sub update_page { my ( $self, $display_callback ) = @_; my (@out); my $data = $_self->{page_queue}->dequeue; # find old page my $i = 0; while ( $i <= $#{ $self->{data} } and $self->{data}[$i][2]{filename} ne $data->{old}{filename} ) { $i++; } # if found, replace with new one if ( $i <= $#{ $self->{data} } ) { # Move the temp file from the thread to a temp object that will be automatically cleared up my $new = $data->{new}->thaw; if ( defined $self->{row_changed_signal} ) { $self->get_model->signal_handler_block( $self->{row_changed_signal} ); } my $resolution = $new->resolution($paper_sizes); $logger->info( "Replaced $self->{data}[$i][2]->{filename} at page $self->{data}[$i][0] with $new->{filename}, resolution $resolution" ); $self->{data}[$i][1] = get_pixbuf( $new->{filename}, $self->{heightt}, $self->{widtht} ); $self->{data}[$i][2] = $new; push @out, $new; if ( defined $data->{new2} ) { $new = $data->{new2}->thaw; splice @{ $self->{data} }, $i + 1, 0, [ $self->{data}[$i][0] + 1, get_pixbuf( $new->{filename}, $self->{heightt}, $self->{widtht} ), $new ]; $logger->info( "Inserted $new->{filename} at page ", $self->{data}[ $i + 1 ][0], " with resolution $resolution" ); push @out, $new; } if ( defined $self->{row_changed_signal} ) { $self->get_model->signal_handler_unblock( $self->{row_changed_signal} ); } my @selected = $self->get_selected_indices; if ( @selected and $i == $selected[0] ) { $self->select(@selected) } if ($display_callback) { $display_callback->( $self->{data}[$i][2] ) } } return \@out; } sub save_image { my ( $self, %options ) = @_; for my $i ( 0 .. $#{ $options{list_of_pages} } ) { $options{list_of_pages}->[$i] = $options{list_of_pages}->[$i] ->freeze; # sharing File::Temp objects causes problems } # File in which to store the process ID so that it can be killed if necessary my $pidfile = File::Temp->new( DIR => $self->{dir}, SUFFIX => '.pid' ); my $sentinel = _enqueue_request( 'save-image', { path => $options{path}, list_of_pages => $options{list_of_pages}, pidfile => "$pidfile" } ); return $self->_monitor_process( sentinel => $sentinel, pidfile => $pidfile, queued_callback => $options{queued_callback}, started_callback => $options{started_callback}, running_callback => $options{running_callback}, error_callback => $options{error_callback}, cancelled_callback => $options{cancelled_callback}, finished_callback => $options{finished_callback}, ); } sub save_text { my ( $self, %options ) = @_; for my $i ( 0 .. $#{ $options{list_of_pages} } ) { $options{list_of_pages}->[$i] = $options{list_of_pages}->[$i] ->freeze; # sharing File::Temp objects causes problems } my $sentinel = _enqueue_request( 'save-text', { path => $options{path}, list_of_pages => $options{list_of_pages}, } ); return $self->_monitor_process( sentinel => $sentinel, queued_callback => $options{queued_callback}, started_callback => $options{started_callback}, running_callback => $options{running_callback}, error_callback => $options{error_callback}, cancelled_callback => $options{cancelled_callback}, finished_callback => $options{finished_callback}, ); } sub analyse { my ( $self, %options ) = @_; my $sentinel = _enqueue_request( 'analyse', { page => $options{page}->freeze } ); return $self->_monitor_process( sentinel => $sentinel, update_slist => TRUE, queued_callback => $options{queued_callback}, started_callback => $options{started_callback}, running_callback => $options{running_callback}, error_callback => $options{error_callback}, cancelled_callback => $options{cancelled_callback}, finished_callback => $options{finished_callback}, ); } sub threshold { my ( $self, %options ) = @_; my $sentinel = _enqueue_request( 'threshold', { threshold => $options{threshold}, page => $options{page}->freeze, dir => "$self->{dir}" } ); return $self->_monitor_process( sentinel => $sentinel, update_slist => TRUE, queued_callback => $options{queued_callback}, started_callback => $options{started_callback}, running_callback => $options{running_callback}, error_callback => $options{error_callback}, cancelled_callback => $options{cancelled_callback}, display_callback => $options{display_callback}, finished_callback => $options{finished_callback}, ); } sub negate { my ( $self, %options ) = @_; my $sentinel = _enqueue_request( 'negate', { page => $options{page}->freeze, dir => "$self->{dir}" } ); return $self->_monitor_process( sentinel => $sentinel, update_slist => TRUE, queued_callback => $options{queued_callback}, started_callback => $options{started_callback}, running_callback => $options{running_callback}, error_callback => $options{error_callback}, cancelled_callback => $options{cancelled_callback}, display_callback => $options{display_callback}, finished_callback => $options{finished_callback}, ); } sub unsharp { my ( $self, %options ) = @_; my $sentinel = _enqueue_request( 'unsharp', { page => $options{page}->freeze, radius => $options{radius}, sigma => $options{sigma}, amount => $options{amount}, threshold => $options{threshold}, dir => "$self->{dir}", } ); return $self->_monitor_process( sentinel => $sentinel, update_slist => TRUE, queued_callback => $options{queued_callback}, started_callback => $options{started_callback}, running_callback => $options{running_callback}, error_callback => $options{error_callback}, cancelled_callback => $options{cancelled_callback}, display_callback => $options{display_callback}, finished_callback => $options{finished_callback}, ); } sub crop { my ( $self, %options ) = @_; my $sentinel = _enqueue_request( 'crop', { page => $options{page}->freeze, x => $options{x}, y => $options{y}, w => $options{w}, h => $options{h}, dir => "$self->{dir}", } ); return $self->_monitor_process( sentinel => $sentinel, update_slist => TRUE, queued_callback => $options{queued_callback}, started_callback => $options{started_callback}, running_callback => $options{running_callback}, error_callback => $options{error_callback}, cancelled_callback => $options{cancelled_callback}, display_callback => $options{display_callback}, finished_callback => $options{finished_callback}, ); } sub to_png { my ( $self, %options ) = @_; my $sentinel = _enqueue_request( 'to-png', { page => $options{page}->freeze, dir => "$self->{dir}" } ); return $self->_monitor_process( sentinel => $sentinel, update_slist => TRUE, queued_callback => $options{queued_callback}, started_callback => $options{started_callback}, running_callback => $options{running_callback}, error_callback => $options{error_callback}, cancelled_callback => $options{cancelled_callback}, finished_callback => $options{finished_callback}, ); } sub tesseract { my ( $self, %options ) = @_; # File in which to store the process ID so that it can be killed if necessary my $pidfile = File::Temp->new( DIR => $self->{dir}, SUFFIX => '.pid' ); my $sentinel = _enqueue_request( 'tesseract', { page => $options{page}->freeze, language => $options{language}, pidfile => "$pidfile" } ); return $self->_monitor_process( sentinel => $sentinel, update_slist => TRUE, pidfile => $pidfile, queued_callback => $options{queued_callback}, started_callback => $options{started_callback}, running_callback => $options{running_callback}, error_callback => $options{error_callback}, cancelled_callback => $options{cancelled_callback}, display_callback => $options{display_callback}, finished_callback => $options{finished_callback}, ); } sub ocropus { my ( $self, %options ) = @_; # File in which to store the process ID so that it can be killed if necessary my $pidfile = File::Temp->new( DIR => $self->{dir}, SUFFIX => '.pid' ); my $sentinel = _enqueue_request( 'ocropus', { page => $options{page}->freeze, language => $options{language}, pidfile => "$pidfile" } ); return $self->_monitor_process( sentinel => $sentinel, update_slist => TRUE, pidfile => $pidfile, queued_callback => $options{queued_callback}, started_callback => $options{started_callback}, running_callback => $options{running_callback}, error_callback => $options{error_callback}, cancelled_callback => $options{cancelled_callback}, display_callback => $options{display_callback}, finished_callback => $options{finished_callback}, ); } sub cuneiform { my ( $self, %options ) = @_; # File in which to store the process ID so that it can be killed if necessary my $pidfile = File::Temp->new( DIR => $self->{dir}, SUFFIX => '.pid' ); my $sentinel = _enqueue_request( 'cuneiform', { page => $options{page}->freeze, language => $options{language}, pidfile => "$pidfile" } ); return $self->_monitor_process( sentinel => $sentinel, update_slist => TRUE, pidfile => $pidfile, queued_callback => $options{queued_callback}, started_callback => $options{started_callback}, running_callback => $options{running_callback}, error_callback => $options{error_callback}, cancelled_callback => $options{cancelled_callback}, display_callback => $options{display_callback}, finished_callback => $options{finished_callback}, ); } sub gocr { my ( $self, %options ) = @_; # File in which to store the process ID so that it can be killed if necessary my $pidfile = File::Temp->new( DIR => $self->{dir}, SUFFIX => '.pid' ); my $sentinel = _enqueue_request( 'gocr', { page => $options{page}->freeze, pidfile => "$pidfile" } ); return $self->_monitor_process( sentinel => $sentinel, update_slist => TRUE, pidfile => $pidfile, queued_callback => $options{queued_callback}, started_callback => $options{started_callback}, running_callback => $options{running_callback}, error_callback => $options{error_callback}, cancelled_callback => $options{cancelled_callback}, display_callback => $options{display_callback}, finished_callback => $options{finished_callback}, ); } sub unpaper { my ( $self, %options ) = @_; # File in which to store the process ID so that it can be killed if necessary my $pidfile = File::Temp->new( DIR => $self->{dir}, SUFFIX => '.pid' ); my $sentinel = _enqueue_request( 'unpaper', { page => $options{page}->freeze, options => $options{options}, pidfile => "$pidfile", dir => "$self->{dir}", } ); return $self->_monitor_process( sentinel => $sentinel, update_slist => TRUE, pidfile => $pidfile, queued_callback => $options{queued_callback}, started_callback => $options{started_callback}, running_callback => $options{running_callback}, error_callback => $options{error_callback}, cancelled_callback => $options{cancelled_callback}, display_callback => $options{display_callback}, finished_callback => $options{finished_callback}, ); } sub user_defined { my ( $self, %options ) = @_; # File in which to store the process ID so that it can be killed if necessary my $pidfile = File::Temp->new( DIR => $self->{dir}, SUFFIX => '.pid' ); my $sentinel = _enqueue_request( 'user-defined', { page => $options{page}->freeze, command => $options{command}, dir => "$self->{dir}", pidfile => "$pidfile" } ); return $self->_monitor_process( sentinel => $sentinel, update_slist => TRUE, pidfile => $pidfile, queued_callback => $options{queued_callback}, started_callback => $options{started_callback}, running_callback => $options{running_callback}, error_callback => $options{error_callback}, cancelled_callback => $options{cancelled_callback}, display_callback => $options{display_callback}, finished_callback => $options{finished_callback}, ); } # Dump $self to a file. # If a filename is given, zip it up as a session file sub save_session { my ( $self, $filename ) = @_; my ( %session, @filenamelist ); for my $i ( 0 .. $#{ $self->{data} } ) { $session{ $self->{data}[$i][0] }{filename} = $self->{data}[$i][2]{filename}->filename; push @filenamelist, $self->{data}[$i][2]{filename}->filename; for my $key ( keys( %{ $self->{data}[$i][2] } ) ) { if ( $key ne 'filename' ) { $session{ $self->{data}[$i][0] }{$key} = $self->{data}[$i][2]{$key}; } } } push @filenamelist, File::Spec->catfile( $self->{dir}, 'session' ); my @selection = $self->get_selected_indices; @{ $session{selection} } = @selection; store( \%session, File::Spec->catfile( $self->{dir}, 'session' ) ); if ( defined $filename ) { my $tar = Archive::Tar->new; $tar->add_files(@filenamelist); $tar->write( $filename, TRUE, $EMPTY ); } return; } sub open_session_file { my ( $self, $filename, $error_callback ) = @_; if ( not defined($filename) ) { if ($error_callback) { $error_callback->("Error: session file not supplied."); } return; } my $tar = Archive::Tar->new( $filename, TRUE ); my @filenamelist = $tar->list_files; my @sessionfile = grep { /\/session$/xsm } @filenamelist; my $sesdir = File::Spec->catfile( $self->{dir}, dirname( $sessionfile[0] ) ); for (@filenamelist) { $tar->extract_file( $_, File::Spec->catfile( $sesdir, basename($_) ) ); } $self->open_session( $sesdir, TRUE, $error_callback ); return; } sub open_session { my ( $self, $sesdir, $delete, $error_callback ) = @_; my $sessionfile = File::Spec->catfile( $sesdir, 'session' ); if ( not -r $sessionfile ) { if ($error_callback) { $error_callback->("Error: Unable to read $sessionfile"); } return; } my $sessionref = retrieve($sessionfile); my %session = %{$sessionref}; # Block the row-changed signal whilst adding the scan (row) and sorting it. if ( defined $self->{row_changed_signal} ) { $self->get_model->signal_handler_block( $self->{row_changed_signal} ); } my @selection = @{ $session{selection} }; delete $session{selection}; for my $pagenum ( sort { $a <=> $b } ( keys(%session) ) ) { # don't reuse session directory $session{$pagenum}{dir} = $self->{dir}; $session{$pagenum}{delete} = $delete; # correct the path now that it is relative to the current session dir if ( $sesdir ne $self->{dir} ) { $session{$pagenum}{filename} = File::Spec->catfile( $sesdir, basename( $session{$pagenum}{filename} ) ); } # Populate the SimpleList try { my $page = Gscan2pdf::Page->new( %{ $session{$pagenum} } ); my $thumb = get_pixbuf( $page->{filename}, $self->{heightt}, $self->{widtht} ); push @{ $self->{data} }, [ $pagenum, $thumb, $page ]; } catch { if ($error_callback) { $error_callback->( sprintf( $d->get("Error importing page %d. Ignoring."), $pagenum ) ); } }; } if ( defined $self->{row_changed_signal} ) { $self->get_model->signal_handler_unblock( $self->{row_changed_signal} ); } $self->select(@selection); return; } # Renumber pages sub renumber { my ( $self, $start, $step, $selection ) = @_; if ( defined($start) ) { if ( not defined($step) ) { $step = 1 } if ( not defined($selection) ) { $selection = 'all' } my @selection; if ( $selection eq 'selected' ) { @selection = $self->get_selected_indices; } else { @selection = 0 .. $#{ $self->{data} }; } for (@selection) { $self->{data}[$_][0] = $start; $start += $step; } } # If $start and $step are undefined, just make sure that the numbering is # ascending. else { for ( 1 .. $#{ $self->{data} } ) { if ( $self->{data}[$_][0] <= $self->{data}[ $_ - 1 ][0] ) { $self->{data}[$_][0] = $self->{data}[ $_ - 1 ][0] + 1; } } } return; } # Check if $start and $step give duplicate page numbers sub valid_renumber { my ( $self, $start, $step, $selection ) = @_; return FALSE if ( $step == 0 ); # if we are renumbering all pages, just make sure the numbers stay positive if ( $selection eq 'all' ) { return ( $start + $#{ $self->{data} } * $step > 0 ) ? TRUE : FALSE if ( $step < 0 ); return TRUE; } # Get list of pages not in selection my @selected = $self->get_selected_indices; my @all = ( 0 .. $#{ $self->{data} } ); # Convert the indices to sets of page numbers @selected = $self->index2page_number(@selected); @all = $self->index2page_number(@all); my $selected = Set::IntSpan->new( \@selected ); my $all = Set::IntSpan->new( \@all ); my $not_selected = $all->diff($selected); # Create a set from the current settings my $current = Set::IntSpan->new; for ( 0 .. $#selected ) { $current->insert( $start + $step * $_ ) } # Are any of the new page numbers the same as those not selected? return FALSE if ( $current->intersect($not_selected)->size ); return TRUE; } # helper function to return an array of page numbers given an array of page indices sub index2page_number { my ( $self, @index ) = @_; for (@index) { $_ = ${ $self->{data} }[$_][0]; } return @index; } # return array index of pages depending on which radiobutton is active sub get_page_index { my ( $self, $page_range, $error_callback ) = @_; my @index; if ( $page_range eq 'all' ) { if ( $#{ $self->{data} } > -1 ) { return 0 .. $#{ $self->{data} }; } else { $error_callback->( $d->get('No pages to process') ); return; } } elsif ( $page_range eq 'selected' ) { @index = $self->get_selected_indices; if ( @index == 0 ) { $error_callback->( $d->get('No pages selected') ); return; } } return @index; } # Have to roll my own slurp sub to support utf8 sub slurp { my ($file) = @_; local $INPUT_RECORD_SEPARATOR = undef; my ($text); if ( ref($file) eq 'GLOB' ) { $text = <$file>; } else { open my $fh, '<:encoding(UTF8)', $file or die "Error: cannot open $file\n"; $text = <$fh>; close $fh or die "Error: cannot close $file\n"; } return $text; } # Wrapper for open3 sub open_three { my ($cmd) = @_; # we create a symbol for the err because open3 will not do that for us my $err = gensym(); open3( undef, my $reader, $err, $cmd ); return ( slurp($reader), slurp($err) ); } # Check that a command exists sub check_command { my ($cmd) = @_; return system("which $cmd >/dev/null 2>/dev/null") == 0 ? TRUE : FALSE; } # Compute a timestamp sub timestamp { my @time = localtime(); # return a time which can be string-wise compared return sprintf( "%04d%02d%02d%02d%02d%02d", reverse @time[ 0 .. $YEAR ] ); } # Set session dir sub set_dir { my ( $self, $dir ) = @_; $self->{dir} = $dir; return; } sub _enqueue_request { my ( $action, $data ) = @_; my $sentinel : shared = 0; $_self->{requests}->enqueue( { action => $action, sentinel => \$sentinel, ( $data ? %{$data} : () ) } ); if ( $_self->{requests}->pending == 0 ) { $jobs_completed = 0; $jobs_total = 0; } $jobs_total++; return \$sentinel; } sub _monitor_process { my ( $self, %options ) = @_; # Get new process ID my $pid = ++$_PID; $self->{running_pids}{$pid} = 1; if ( $options{queued_callback} ) { $options{queued_callback}->( process_name => $_self->{process_name}, jobs_completed => $jobs_completed, jobs_total => $jobs_total ); } Glib::Timeout->add( $_POLL_INTERVAL, sub { if ( ${ $options{sentinel} } == 2 ) { $jobs_completed++; $self->_monitor_process_finished_callback( $pid, \%options ); return Glib::SOURCE_REMOVE; } elsif ( ${ $options{sentinel} } == 1 ) { $self->_monitor_process_running_callback( $pid, \%options ); return Glib::SOURCE_CONTINUE; } return Glib::SOURCE_CONTINUE; } ); return $pid; } sub _monitor_process_running_callback { my ( $self, $pid, $options ) = @_; if ( exists $self->{cancel_cb}{$pid} ) { if ( not defined( $self->{cancel_cb}{$pid} ) or ref( $self->{cancel_cb}{$pid} ) eq 'CODE' ) { if ( defined $options->{pidfile} ) { _cancel_process( slurp( $options->{pidfile} ) ); } else { _cancel_process(); } if ( $options->{cancelled_callback} ) { $options->{cancelled_callback}->() } if ( $self->{cancel_cb}{$pid} ) { $self->{cancel_cb}{$pid}->() } # Flag that the callbacks have been done here # so they are not repeated here or in finished $self->{cancel_cb}{$pid} = 1; delete $self->{running_pids}{$pid}; } return; } if ( $options->{add} ) { $self->fetch_file( $options->{add} ) } if ( $options->{started_callback} and not $options->{started_flag} ) { $options->{started_flag} = $options->{started_callback}->( 1, $_self->{process_name}, $jobs_completed, $jobs_total, $_self->{message}, $_self->{progress} ); } if ( $options->{running_callback} ) { $options->{running_callback}->( process => $_self->{process_name}, jobs_completed => $jobs_completed, jobs_total => $jobs_total, message => $_self->{message}, progress => $_self->{progress} ); } return; } sub _monitor_process_finished_callback { my ( $self, $pid, $options ) = @_; if ( exists $self->{cancel_cb}{$pid} ) { if ( not defined( $self->{cancel_cb}{$pid} ) or ref( $self->{cancel_cb}{$pid} ) eq 'CODE' ) { if ( defined $options->{pidfile} ) { _cancel_process( slurp( $options->{pidfile} ) ); } else { _cancel_process(); } if ( $options->{cancelled_callback} ) { $options->{cancelled_callback}->() } if ( $self->{cancel_cb}{$pid} ) { $self->{cancel_cb}{$pid}->() } } delete $self->{cancel_cb}{$pid}; delete $self->{running_pids}{$pid}; return; } if ( $options->{started_callback} and not $options->{started_flag} ) { $options->{started_callback}->(); } if ( $_self->{status} ) { if ( $options->{error_callback} ) { $options->{error_callback}->( $_self->{message} ); } return; } if ( $options->{add} ) { $options->{add} -= $self->fetch_file } my $data; if ( $options->{info} ) { $data = $_self->{info_queue}->dequeue; } elsif ( $options->{update_slist} ) { $data = $self->update_page( $options->{display_callback} ); } if ( $options->{finished_callback} ) { $options->{finished_callback}->( $data, $_self->{requests}->pending ); } delete $self->{cancel_cb}{$pid}; delete $self->{running_pids}{$pid}; return; } sub _cancel_process { my ($pid) = @_; # Empty process queue first to stop any new process from starting $logger->info("Emptying process queue"); while ( $_self->{requests}->dequeue_nb ) { } # Then send the thread a cancel signal to stop it going beyond the next break point $_self->{cancel} = TRUE; # Before killing any process running in the thread if ($pid) { $logger->info("Killing pid $pid"); local $SIG{HUP} = 'IGNORE'; killfam 'HUP', ($pid); } return; } sub _thread_main { my ($self) = @_; while ( my $request = $self->{requests}->dequeue ) { $self->{process_name} = $request->{action}; undef $_self->{cancel}; # Signal the sentinel that the request was started. ${ $request->{sentinel} }++; given ( $request->{action} ) { when ('analyse') { _thread_analyse( $self, $request->{page} ); } when ('cancel') { _thread_cancel($self); } when ('crop') { _thread_crop( $self, page => $request->{page}, x => $request->{x}, y => $request->{y}, w => $request->{w}, h => $request->{h}, dir => $request->{dir}, ); } when ('cuneiform') { _thread_cuneiform( $self, $request->{page}, $request->{language}, $request->{pidfile} ); } when ('get-file-info') { _thread_get_file_info( $self, $request->{path}, $request->{pidfile} ); } when ('gocr') { _thread_gocr( $self, $request->{page}, $request->{pidfile} ); } when ('import-file') { _thread_import_file( $self, info => $request->{info}, first => $request->{first}, last => $request->{last}, dir => $request->{dir}, pidfile => $request->{pidfile} ); } when ('negate') { _thread_negate( $self, $request->{page}, $request->{dir} ); } when ('ocropus') { _thread_ocropus( $self, $request->{page}, $request->{language}, $request->{pidfile} ); } when ('paper_sizes') { _thread_paper_sizes( $self, $request->{paper_sizes} ); } when ('quit') { last; } when ('rotate') { _thread_rotate( $self, $request->{angle}, $request->{page}, $request->{dir} ); } when ('save-djvu') { _thread_save_djvu( $self, $request->{path}, $request->{list_of_pages}, $request->{dir}, $request->{pidfile} ); } when ('save-image') { _thread_save_image( $self, $request->{path}, $request->{list_of_pages}, $request->{pidfile} ); } when ('save-pdf') { _thread_save_pdf( $self, path => $request->{path}, list_of_pages => $request->{list_of_pages}, metadata => $request->{metadata}, options => $request->{options}, dir => $request->{dir}, pidfile => $request->{pidfile} ); } when ('save-text') { _thread_save_text( $self, $request->{path}, $request->{list_of_pages} ); } when ('save-tiff') { _thread_save_tiff( $self, path => $request->{path}, list_of_pages => $request->{list_of_pages}, options => $request->{options}, ps => $request->{ps}, dir => $request->{dir}, pidfile => $request->{pidfile} ); } when ('tesseract') { _thread_tesseract( $self, $request->{page}, $request->{language}, $request->{pidfile} ); } when ('threshold') { _thread_threshold( $self, $request->{threshold}, $request->{page}, $request->{dir} ); } when ('to-png') { _thread_to_png( $self, $request->{page}, $request->{dir} ); } when ('unpaper') { _thread_unpaper( $self, $request->{page}, $request->{options}, $request->{pidfile}, $request->{dir} ); } when ('unsharp') { _thread_unsharp( $self, page => $request->{page}, radius => $request->{radius}, sigma => $request->{sigma}, amount => $request->{amount}, threshold => $request->{threshold}, dir => $request->{dir}, ); } when ('user-defined') { _thread_user_defined( $self, $request->{page}, $request->{command}, $request->{dir}, $request->{pidfile} ); } default { $logger->info( "Ignoring unknown request " . $request->{action} ); next; } } # Signal the sentinel that the request was completed. ${ $request->{sentinel} }++; undef $self->{process_name}; } return; } sub _thread_get_file_info { my ( $self, $filename, $pidfile, %info ) = @_; $self->{status} = 0; if ( not -e $filename ) { $self->{status} = 1; $self->{message} = sprintf( $d->get("File %s not found"), $filename ); return; } $logger->info("Getting info for $filename"); ( my $format, undef ) = open_three("file -b \"$filename\""); $logger->info($format); given ($format) { when (/gzip\ compressed\ data/xsm) { $info{path} = $filename; $info{format} = 'session file'; $self->{info_queue}->enqueue( \%info ); return; } when (/DjVu/xsm) { # Dig out the number of pages my $cmd = "djvudump \"$filename\""; $logger->info($cmd); ( my $info, undef ) = open_three("echo $PROCESS_ID > $pidfile;$cmd"); return if $_self->{cancel}; $logger->info($info); my $pages = 1; if ( $info =~ /\s(\d+)\s+page/xsm ) { $pages = $1; } # Dig out and the resolution of each page my (@ppi); $info{format} = 'DJVU'; while ( $info =~ /\s(\d+)\s+dpi(.*)/xsm ) { push @ppi, $1; $info = $2; $logger->info("Page $#ppi is $ppi[$#ppi] ppi"); } if ( $pages != @ppi ) { $self->{status} = 1; $self->{message} = $d->get('Unknown DjVu file structure. Please contact the author.'); return; } $info{ppi} = \@ppi; $info{pages} = $pages; $info{path} = $filename; $self->{info_queue}->enqueue( \%info ); return; } when (/PDF\ document/xsm) { $format = 'Portable Document Format'; my $cmd = "pdfinfo \"$filename\""; $logger->info($cmd); ( my $info, undef ) = open_three("echo $PROCESS_ID > $pidfile;$cmd"); return if $_self->{cancel}; $logger->info($info); my $pages = 1; if ( $info =~ /Pages:\s+(\d+)/xsm ) { $pages = $1; } $logger->info("$pages pages"); $info{pages} = $pages; } when (/TIFF\ image\ data/xsm) { $format = 'Tagged Image File Format'; my $cmd = "tiffinfo \"$filename\""; $logger->info($cmd); ( my $info, undef ) = open_three("echo $PROCESS_ID > $pidfile;$cmd"); return if $_self->{cancel}; $logger->info($info); # Count number of pages my $pages = () = $info =~ /TIFF\ Directory\ at\ offset/xsmg; $logger->info("$pages pages"); $info{pages} = $pages; } default { # Get file type my $image = Image::Magick->new; my $x = $image->Read($filename); return if $_self->{cancel}; if ("$x") { $logger->warn($x) } $format = $image->Get('format'); if ( defined $format ) { $logger->info("Format $format") } undef $image; if ( not defined($format) ) { $self->{status} = 1; $self->{message} = sprintf( $d->get("%s is not a recognised image type"), $filename ); return; } $info{pages} = 1; } } $info{format} = $format; $info{path} = $filename; $self->{info_queue}->enqueue( \%info ); return; } sub _thread_import_file { my ( $self, %options ) = @_; my $PNG = qr/Portable\ Network\ Graphics/xsm; my $JPG = qr/Joint\ Photographic\ Experts\ Group\ JFIF\ format/xsm; my $GIF = qr/CompuServe\ graphics\ interchange\ format/xsm; given ( $options{info}->{format} ) { when ('DJVU') { # Extract images from DjVu if ( $options{last} >= $options{first} and $options{first} > 0 ) { for my $i ( $options{first} .. $options{last} ) { $self->{progress} = ( $i - 1 ) / ( $options{last} - $options{first} + 1 ); $self->{message} = sprintf( $d->get("Importing page %i of %i"), $i, $options{last} - $options{first} + 1 ); my $tif = File::Temp->new( DIR => $options{dir}, SUFFIX => '.tif', UNLINK => FALSE ); my $cmd = "ddjvu -format=tiff -page=$i \"$options{info}->{path}\" $tif"; $logger->info($cmd); system("echo $PROCESS_ID > $options{pidfile};$cmd"); return if $_self->{cancel}; my $page = Gscan2pdf::Page->new( filename => $tif, dir => $options{dir}, delete => TRUE, format => 'Tagged Image File Format', resolution => $options{info}->{ppi}[ $i - 1 ], ); $self->{page_queue}->enqueue( $page->freeze ); } } } when ('Portable Document Format') { # Extract images from PDF if ( $options{last} >= $options{first} and $options{first} > 0 ) { my $cmd = "pdfimages -f $options{first} -l $options{last} \"$options{info}->{path}\" x"; $logger->info($cmd); my $status = system("echo $PROCESS_ID > $options{pidfile};$cmd"); return if $_self->{cancel}; if ($status) { $self->{status} = 1; $self->{message} = $d->get('Error extracting images from PDF'); } # Import each image my @images = glob('x-???.???'); $self->{page_queue}->enqueue( $#images + 1 ); foreach (@images) { my ($ext) = /([^.]+)$/xsm; my $page = Gscan2pdf::Page->new( filename => $_, dir => $options{dir}, delete => TRUE, format => $format{$ext}, ); $self->{page_queue}->enqueue( $page->to_png($paper_sizes)->freeze ); } } } when ('Tagged Image File Format') { # Split the tiff into its pages and import them individually if ( $options{last} >= $options{first} and $options{first} > 0 ) { for my $i ( $options{first} - 1 .. $options{last} - 1 ) { $self->{progress} = $i / ( $options{last} - $options{first} + 1 ); $self->{message} = sprintf( $d->get("Importing page %i of %i"), $i, $options{last} - $options{first} + 1 ); my $tif = File::Temp->new( DIR => $options{dir}, SUFFIX => '.tif', UNLINK => FALSE ); my $cmd = "tiffcp \"$options{info}->{path}\",$i $tif"; $logger->info($cmd); system("echo $PROCESS_ID > $options{pidfile};$cmd"); return if $_self->{cancel}; my $page = Gscan2pdf::Page->new( filename => $tif, dir => $options{dir}, delete => TRUE, format => $options{info}->{format}, ); $self->{page_queue}->enqueue( $page->freeze ); } } } when (/(?:$PNG|$JPG|$GIF)/xsm) { my $page = Gscan2pdf::Page->new( filename => $options{info}->{path}, dir => $options{dir}, format => $options{info}->{format}, ); $self->{page_queue}->enqueue( $page->freeze ); } # only 1-bit Portable anymap is properly supported, so convert ANY pnm to png default { my $page = Gscan2pdf::Page->new( filename => $options{info}->{path}, dir => $options{dir}, format => $options{info}->{format}, ); $self->{page_queue}->enqueue( $page->to_png($paper_sizes)->freeze ); } } return; } # Perl-Critic is confused by @_ in finally{} See P::C bug #79138 sub _thread_save_pdf { ## no critic (RequireArgUnpacking) my ( $self, %options ) = @_; my $pagenr = 0; my $ttfcache; # Create PDF with PDF::API2 $self->{message} = $d->get('Setting up PDF'); my $pdf = PDF::API2->new( -file => $options{path} ); if ( defined $options{metadata} ) { $pdf->info( %{ $options{metadata} } ) } my $corecache = $pdf->corefont('Times-Roman'); if ( defined $options{options}->{font} ) { $ttfcache = $pdf->ttfont( $options{options}->{font}, -unicodemap => 1 ); $logger->info("Using $options{options}->{font} for non-ASCII text"); } foreach my $pagedata ( @{ $options{list_of_pages} } ) { ++$pagenr; $self->{progress} = $pagenr / ( $#{ $options{list_of_pages} } + 2 ); $self->{message} = sprintf( $d->get("Saving page %i of %i"), $pagenr, $#{ $options{list_of_pages} } + 1 ); my $filename = $pagedata->{filename}; my $image = Image::Magick->new; my $status = $image->Read($filename); return if $_self->{cancel}; if ("$status") { $logger->warn($status) } # Get the size and resolution. Resolution is dots per inch, width # and height are in inches. my $w = $image->Get('width') / $pagedata->{resolution}; my $h = $image->Get('height') / $pagedata->{resolution}; $pagedata->{w} = $w; $pagedata->{h} = $h; # Automatic mode my $type; if ( not defined( $options{options}->{compression} ) or $options{options}->{compression} eq 'auto' ) { $pagedata->{depth} = $image->Get('depth'); $logger->info("Depth of $filename is $pagedata->{depth}"); if ( $pagedata->{depth} == 1 ) { $pagedata->{compression} = 'lzw'; } else { $type = $image->Get('type'); $logger->info("Type of $filename is $type"); if ( $type =~ /TrueColor/xsm ) { $pagedata->{compression} = 'jpg'; } else { $pagedata->{compression} = 'png'; } } $logger->info("Selecting $pagedata->{compression} compression"); } else { $pagedata->{compression} = $options{options}->{compression}; } ( $filename, my $format, my $output_resolution ) = _convert_image_for_pdf( $self, $pagedata, $image, %options ); $logger->info( "Defining page at ", $w * $POINTS_PER_INCH, "pt x ", $h * $POINTS_PER_INCH, "pt" ); my $page = $pdf->page; $page->mediabox( $w * $POINTS_PER_INCH, $h * $POINTS_PER_INCH ); _add_text_to_PDF( $page, $pagedata, $ttfcache, $corecache ); # Add scan my $gfx = $page->gfx; my $imgobj; my $msg; given ($format) { when ('png') { try { $imgobj = $pdf->image_png($filename) } catch { $msg = $_ }; } when ('jpg') { try { $imgobj = $pdf->image_jpeg($filename) } catch { $msg = $_ }; } when ('pnm') { try { $imgobj = $pdf->image_pnm($filename) } catch { $msg = $_ }; } when ('gif') { try { $imgobj = $pdf->image_gif($filename) } catch { $msg = $_ }; } when ('tif') { try { $imgobj = $pdf->image_tiff($filename) } catch { $msg = $_ }; } default { $msg = "Unknown format $format file $filename"; } } return if $_self->{cancel}; if ($msg) { $logger->warn($msg); $self->{status} = 1; $self->{message} = sprintf( $d->get("Error creating PDF image object: %s"), $msg ); return; } else { try { $gfx->image( $imgobj, 0, 0, $w * $POINTS_PER_INCH, $h * $POINTS_PER_INCH ); } catch { $logger->warn($_); $self->{status} = 1; $self->{message} = sprintf( $d->get("Error embedding file image in %s format to PDF: %s"), $format, $_ ); } finally { if ( not @_ ) { $logger->info("Adding $filename at $output_resolution PPI"); } }; } return if $_self->{cancel}; } $self->{message} = $d->get('Closing PDF'); $pdf->save; $pdf->end; return; } # Convert file if necessary sub _convert_image_for_pdf { my ( $self, $pagedata, $image, %options ) = @_; my $filename = $pagedata->{filename}; my $compression = $pagedata->{compression}; my $format; if ( $filename =~ /\.(\w*)$/xsm ) { $format = $1; } # The output resolution is normally the same as the input # resolution. my $output_resolution = $pagedata->{resolution}; if (( $compression ne 'none' and $compression ne $format ) or $options{options}->{downsample} or $compression eq 'jpg' ) { if ( $compression !~ /(?:jpg|png)/xsm and $format ne 'tif' ) { my $ofn = $filename; $filename = File::Temp->new( DIR => $options{dir}, SUFFIX => '.tif' ); $logger->info("Converting $ofn to $filename"); } elsif ( $compression =~ /(?:jpg|png)/xsm ) { my $ofn = $filename; $filename = File::Temp->new( DIR => $options{dir}, SUFFIX => ".$compression" ); $logger->info("Converting $ofn to $filename"); } if ( $options{options}->{downsample} ) { $output_resolution = $options{options}->{'downsample dpi'}; my $w_pixels = $pagedata->{w} * $output_resolution; my $h_pixels = $pagedata->{h} * $output_resolution; $logger->info("Resizing $filename to $w_pixels x $h_pixels"); my $status = $image->Resize( width => $w_pixels, height => $h_pixels ); if ("$status") { $logger->warn($status) } } if ( defined( $options{options}->{quality} ) and $compression eq 'jpg' ) { my $status = $image->Set( quality => $options{options}->{quality} ); if ("$status") { $logger->warn($status) } } $format = _write_image_object( $image, $filename, $format, $pagedata, $options{options}->{downsample} ); if ( $compression !~ /(?:jpg|png)/xsm ) { my $filename2 = File::Temp->new( DIR => $options{dir}, SUFFIX => '.tif' ); my $error = File::Temp->new( DIR => $options{dir}, SUFFIX => '.txt' ); my $cmd = "tiffcp -c $compression $filename $filename2"; $logger->info($cmd); my $status = system("echo $PROCESS_ID > $options{pidfile};$cmd 2>$error"); return if $_self->{cancel}; if ($status) { my $output = slurp($error); $logger->info($output); $self->{status} = 1; $self->{message} = sprintf( $d->get("Error compressing image: %s"), $output ); return; } $filename = $filename2; } } return $filename, $format, $output_resolution; } sub _write_image_object { my ( $image, $filename, $format, $pagedata, $downsample ) = @_; my $compression = $pagedata->{compression}; if (( $compression !~ /(?:jpg|png)/xsm and $format ne 'tif' ) or ( $compression =~ /(?:jpg|png)/xsm ) or $downsample ) { # depth required because resize otherwise increases depth # to maintain information if ( not defined( $pagedata->{depth} ) ) { $pagedata->{depth} = $image->Get('depth'); } $logger->info( "Writing temporary image $filename with depth $pagedata->{depth}"); my $status = $image->Write( filename => $filename, depth => $pagedata->{depth} ); return if $_self->{cancel}; if ("$status") { $logger->warn($status) } if ( $filename =~ /\.(\w*)$/xsm ) { $format = $1; } } return $format; } # Add OCR as text behind the scan sub _add_text_to_PDF { my ( $page, $data, $ttfcache, $corecache ) = @_; if ( defined( $data->{hocr} ) ) { my $h = $data->{h}; my $w = $data->{w}; my $resolution = $data->{resolution}; $logger->info('Embedding OCR output behind image'); my $font; my $text = $page->text; for my $box ( $data->boxes ) { my ( $x1, $y1, $x2, $y2, $txt ) = @{$box}; if ( $txt =~ /([[:^ascii:]])/xsm and defined($ttfcache) ) { if ( defined $1 ) { $logger->debug("non-ascii text is '$1' in '$txt'") } $font = $ttfcache; } else { $font = $corecache; } if ( $x1 == 0 and $y1 == 0 and not defined($x2) ) { ( $x2, $y2 ) = ( $w * $resolution, $h * $resolution ); } if ( abs( $h * $resolution - $y2 + $y1 ) > $BOX_TOLERANCE and abs( $w * $resolution - $x2 + $x1 ) > $BOX_TOLERANCE ) { # Box is smaller than the page. We know the text position. # Set the text position. # Translate x1 and y1 to inches and then to points. Invert the # y coordinate (since the PDF coordinates are bottom to top # instead of top to bottom) and subtract $size, since the text # will end up above the given point instead of below. my $size = ( $y2 - $y1 ) / $resolution * $POINTS_PER_INCH; $text->font( $font, $size ); $text->translate( $x1 / $resolution * $POINTS_PER_INCH, ( $h - ( $y1 / $resolution ) ) * $POINTS_PER_INCH - $size ); $text->text( $txt, utf8 => 1 ); } else { my $size = 1; $text->font( $font, $size ); _wrap_text_to_page( $txt, $size, $text, $h, $w ); } } } return; } # Box is the same size as the page. We don't know the text position. # Start at the top of the page (PDF coordinate system starts # at the bottom left of the page) sub _wrap_text_to_page { my ( $txt, $size, $text_box, $h, $w ) = @_; my $y = $h * $POINTS_PER_INCH - $size; foreach my $line ( split( /\n/xsm, $txt ) ) { my $x = 0; # Add a word at a time in order to linewrap foreach my $word ( split( $SPACE, $line ) ) { if ( length($word) * $size + $x > $w * $POINTS_PER_INCH ) { $x = 0; $y -= $size; } $text_box->translate( $x, $y ); if ( $x > 0 ) { $word = $SPACE . $word } $x += $text_box->text( $word, utf8 => 1 ); } $y -= $size; } return; } sub _thread_save_djvu { my ( $self, $path, $list_of_pages, $dir, $pidfile ) = @_; my $page = 0; my @filelist; foreach my $pagedata ( @{$list_of_pages} ) { ++$page; $self->{progress} = $page / ( $#{$list_of_pages} + 2 ); $self->{message} = sprintf( $d->get("Writing page %i of %i"), $page, $#{$list_of_pages} + 1 ); my $filename = $pagedata->{filename}; my $djvu = File::Temp->new( DIR => $dir, SUFFIX => '.djvu' ); # Check the image depth to decide what sort of compression to use my $image = Image::Magick->new; my $x = $image->Read($filename); if ("$x") { $logger->warn($x) } my $depth = $image->Get('depth'); my $class = $image->Get('class'); my $compression; # Get the size $pagedata->{w} = $image->Get('width'); $pagedata->{h} = $image->Get('height'); $pagedata->{pidfile} = $pidfile; $pagedata->{page_number} = $page; # c44 can only use pnm and jpg my $format; if ( $filename =~ /\.(\w*)$/xsm ) { $format = $1; } if ( $depth > 1 ) { $compression = 'c44'; if ( $format !~ /(?:pnm|jpg)/xsm ) { my $pnm = File::Temp->new( DIR => $dir, SUFFIX => '.pnm' ); $x = $image->Write( filename => $pnm ); if ("$x") { $logger->warn($x) } $filename = $pnm; } } # cjb2 can only use pnm and tif else { $compression = 'cjb2'; if ( $format !~ /(?:pnm|tif)/xsm or ( $format eq 'pnm' and $class ne 'PseudoClass' ) ) { my $pbm = File::Temp->new( DIR => $dir, SUFFIX => '.pbm' ); $x = $image->Write( filename => $pbm ); if ("$x") { $logger->warn($x) } $filename = $pbm; } } # Create the djvu my $cmd = sprintf "$compression -dpi %d $filename $djvu", $pagedata->{resolution}; $logger->info($cmd); my ( $status, $size ) = ( system("echo $PROCESS_ID > $pidfile;$cmd"), -s "$djvu" ) ; # quotes needed to prevent -s clobbering File::Temp object return if $_self->{cancel}; if ( $status != 0 or not $size ) { $self->{status} = 1; $self->{message} = $d->get('Error writing DjVu'); $logger->error( "Error writing image for page $page of DjVu (process returned $status, image size $size)" ); return; } push @filelist, $djvu; _add_text_to_DJVU( $self, $djvu, $dir, $pagedata ); } $self->{progress} = 1; $self->{message} = $d->get('Closing DjVu'); my $cmd = "djvm -c '$path' @filelist"; $logger->info($cmd); my $status = system("echo $PROCESS_ID > $pidfile;$cmd"); return if $_self->{cancel}; if ($status) { $self->{status} = 1; $self->{message} = $d->get('Error closing DjVu'); $logger->error("Error closing DjVu"); } return; } # Add OCR to text layer sub _add_text_to_DJVU { my ( $self, $djvu, $dir, $pagedata ) = @_; if ( defined( $pagedata->{hocr} ) ) { # Get the size my $w = $pagedata->{w}; my $h = $pagedata->{h}; my $resolution = $pagedata->{resolution}; # Open djvusedtxtfile my $djvusedtxtfile = File::Temp->new( DIR => $dir, SUFFIX => '.txt' ); open my $fh, '>:encoding(UTF8)', ## no critic (RequireBriefOpen) $djvusedtxtfile or croak( sprintf( $d->get("Can't open file: %s"), $djvusedtxtfile ) ); print $fh "(page 0 0 $w $h\n"; # Write the text boxes for my $box ( $pagedata->boxes ) { my ( $x1, $y1, $x2, $y2, $txt ) = @{$box}; if ( $x1 == 0 and $y1 == 0 and not defined($x2) ) { ( $x2, $y2 ) = ( $w * $resolution, $h * $resolution ); } # Escape any inverted commas $txt =~ s/\\/\\\\/gxsm; $txt =~ s/"/\\\"/gxsm; printf $fh "\n(line %d %d %d %d \"%s\")", $x1, $h - $y2, $x2, $h - $y1, $txt; } print $fh ")"; close $fh or croak( sprintf( $d->get("Can't close file: %s"), $djvusedtxtfile ) ); # Write djvusedtxtfile my $cmd = "djvused '$djvu' -e 'select 1; set-txt $djvusedtxtfile' -s"; $logger->info($cmd); my $status = system("echo $PROCESS_ID > $pagedata->{pidfile};$cmd"); return if $_self->{cancel}; if ($status) { $self->{status} = 1; $self->{message} = $d->get('Error adding text layer to DjVu'); $logger->error( "Error adding text layer to DjVu page $pagedata->{page_number}"); } } return; } sub _thread_save_tiff { my ( $self, %options ) = @_; my $page = 0; my @filelist; foreach my $pagedata ( @{ $options{list_of_pages} } ) { ++$page; $self->{progress} = ( $page - 1 ) / ( $#{ $options{list_of_pages} } + 2 ); $self->{message} = sprintf( $d->get("Converting image %i of %i to TIFF"), $page, $#{ $options{list_of_pages} } + 1 ); my $filename = $pagedata->{filename}; if ( $filename !~ /\.tif/xsm or ( defined( $options{options}->{compression} ) and $options{options}->{compression} eq 'jpeg' ) ) { my $tif = File::Temp->new( DIR => $options{dir}, SUFFIX => '.tif' ); my $resolution = $pagedata->{resolution}; # Convert to tiff my $depth = $EMPTY; if ( defined( $options{options}->{compression} ) and $options{options}->{compression} eq 'jpeg' ) { $depth = '-depth 8'; } my $cmd = "convert -units PixelsPerInch -density $resolution $depth $filename $tif"; $logger->info($cmd); my $status = system("echo $PROCESS_ID > $options{pidfile};$cmd"); return if $_self->{cancel}; if ($status) { $self->{status} = 1; $self->{message} = $d->get('Error writing TIFF'); return; } $filename = $tif; } push @filelist, $filename; } my $compression = $EMPTY; if ( defined $options{options}->{compression} ) { $compression = "-c $options{options}->{compression}"; if ( $compression eq 'jpeg' ) { $compression .= ":$options{options}->{quality}"; } } # Create the tiff $self->{progress} = 1; $self->{message} = $d->get('Concatenating TIFFs'); my $rows = $EMPTY; if ( defined( $options{options}->{compression} ) and $options{options}->{compression} eq 'jpeg' ) { $rows = '-r 16'; } my $cmd = "tiffcp $rows $compression @filelist '$options{path}'"; $logger->info($cmd); my $out = File::Temp->new( DIR => $options{dir}, SUFFIX => '.stdout' ); my $status = system("echo $PROCESS_ID > $options{pidfile};$cmd 2>$out"); return if $_self->{cancel}; if ($status) { my $output = slurp($out); $logger->info($output); $self->{status} = 1; $self->{message} = sprintf( $d->get("Error compressing image: %s"), $output ); return; } if ( defined $options{ps} ) { $self->{message} = $d->get('Converting to PS'); # Note: -a option causes tiff2ps to generate multiple output # pages, one for each page in the input TIFF file. Without it, it # only generates output for the first page. $cmd = "tiff2ps -a $options{path} > '$options{ps}'"; $logger->info($cmd); ( my $output, undef ) = open_three($cmd); } return; } sub _thread_rotate { my ( $self, $angle, $page, $dir ) = @_; my $filename = $page->{filename}; $logger->info("Rotating $filename by $angle degrees"); # Rotate with imagemagick my $image = Image::Magick->new; my $x = $image->Read($filename); return if $_self->{cancel}; if ("$x") { $logger->warn($x) } # workaround for those versions of imagemagick that produce 16bit output # with rotate my $depth = $image->Get('depth'); $x = $image->Rotate($angle); return if $_self->{cancel}; if ("$x") { $logger->warn($x) } my $suffix; if ( $filename =~ /\.(\w*)$/xsm ) { $suffix = $1; } $filename = File::Temp->new( DIR => $dir, SUFFIX => ".$suffix", UNLINK => FALSE ); $x = $image->Write( filename => $filename, depth => $depth ); return if $_self->{cancel}; if ("$x") { $logger->warn($x) } my $new = $page->freeze; $new->{filename} = $filename->filename; # can't queue File::Temp objects $new->{dirty_time} = timestamp(); #flag as dirty my %data = ( old => $page, new => $new ); $self->{page_queue}->enqueue( \%data ); return; } sub _thread_save_image { my ( $self, $path, $list_of_pages, $pidfile ) = @_; if ( @{$list_of_pages} == 1 ) { my $cmd = "convert $list_of_pages->[0]{filename} -density $list_of_pages->[0]{resolution} '$path'"; $logger->info($cmd); my $status = system("echo $PROCESS_ID > $pidfile;$cmd"); return if $_self->{cancel}; if ($status) { $self->{status} = 1; $self->{message} = $d->get('Error saving image'); } } else { my $current_filename; my $i = 1; foreach ( @{$list_of_pages} ) { $current_filename = sprintf $path, $i++; my $cmd = sprintf "convert %s -density %d \"%s\"", $_->{filename}, $_->{resolution}, $current_filename; my $status = system("echo $PROCESS_ID > $pidfile;$cmd"); return if $_self->{cancel}; if ($status) { $self->{status} = 1; $self->{message} = $d->get('Error saving image'); } } } return; } sub _thread_save_text { my ( $self, $path, $list_of_pages, $fh ) = @_; if ( not open( $fh, ">", $path ) ) { $self->{status} = 1; $self->{message} = sprintf( $d->get("Can't open file: %s"), $path ); return; } foreach ( @{$list_of_pages} ) { print $fh $_->{hocr}; return if $_self->{cancel}; } if ( not close($fh) ) { $self->{status} = 1; $self->{message} = sprintf( $d->get("Can't close file: %s"), $path ); } return; } sub _thread_analyse { my ( $self, $page ) = @_; # Identify with imagemagick my $image = Image::Magick->new; my $x = $image->Read( $page->{filename} ); return if $_self->{cancel}; if ("$x") { $logger->warn($x) } my ( $depth, $min, $max, $mean, $stddev ) = $image->Statistics(); if ( not defined($depth) ) { $logger->warn("image->Statistics() failed") } $logger->info("std dev: $stddev mean: $mean"); return if $_self->{cancel}; my $maxQ = ( 1 << $depth ) - 1; $mean = $maxQ ? $mean / $maxQ : 0; if ( $stddev eq "nan" ) { $stddev = 0 } # my $quantum_depth = $image->QuantumDepth; # warn "image->QuantumDepth failed" unless defined $quantum_depth; # TODO add any other useful image analysis here e.g. is the page mis-oriented? # detect mis-orientation possible algorithm: # blur or low-pass filter the image (so words look like ovals) # look at few vertical narrow slices of the image and get the Standard Deviation # if most of the Std Dev are high, then it might be portrait # TODO may need to send quantumdepth my $new = $page->clone; $new->{mean} = $mean; $new->{std_dev} = $stddev; $new->{analyse_time} = timestamp(); my %data = ( old => $page, new => $new ); $self->{page_queue}->enqueue( \%data ); return; } sub _thread_threshold { my ( $self, $threshold, $page, $dir ) = @_; my $filename = $page->{filename}; my $image = Image::Magick->new; my $x = $image->Read($filename); return if $_self->{cancel}; if ("$x") { $logger->warn($x) } # Threshold the image $image->BlackThreshold( threshold => "$threshold%" ); return if $_self->{cancel}; $image->WhiteThreshold( threshold => "$threshold%" ); return if $_self->{cancel}; # Write it $filename = File::Temp->new( DIR => $dir, SUFFIX => '.pbm', UNLINK => FALSE ); $x = $image->Write( filename => $filename ); return if $_self->{cancel}; if ("$x") { $logger->warn($x) } my $new = $page->freeze; $new->{filename} = $filename->filename; # can't queue File::Temp objects $new->{dirty_time} = timestamp(); #flag as dirty my %data = ( old => $page, new => $new ); $self->{page_queue}->enqueue( \%data ); return; } sub _thread_negate { my ( $self, $page, $dir ) = @_; my $filename = $page->{filename}; my $image = Image::Magick->new; my $x = $image->Read($filename); return if $_self->{cancel}; if ("$x") { $logger->warn($x) } my $depth = $image->Get('depth'); # Negate the image $image->Negate; return if $_self->{cancel}; # Write it my $suffix; if ( $filename =~ /(\.\w*)$/xsm ) { $suffix = $1; } $filename = File::Temp->new( DIR => $dir, SUFFIX => $suffix, UNLINK => FALSE ); $x = $image->Write( depth => $depth, filename => $filename ); return if $_self->{cancel}; if ("$x") { $logger->warn($x) } $logger->info("Negating to $filename"); my $new = $page->freeze; $new->{filename} = $filename->filename; # can't queue File::Temp objects $new->{dirty_time} = timestamp(); #flag as dirty my %data = ( old => $page, new => $new ); $self->{page_queue}->enqueue( \%data ); return; } sub _thread_unsharp { my ( $self, %options ) = @_; my $filename = $options{page}->{filename}; my $image = Image::Magick->new; my $x = $image->Read($filename); return if $_self->{cancel}; if ("$x") { $logger->warn($x) } # Unsharp the image $image->UnsharpMask( radius => $options{radius}, sigma => $options{sigma}, amount => $options{amount}, threshold => $options{threshold}, ); return if $_self->{cancel}; # Write it my $suffix; if ( $filename =~ /\.(\w*)$/xsm ) { $suffix = $1; } $filename = File::Temp->new( DIR => $options{dir}, SUFFIX => ".$suffix", UNLINK => FALSE ); $x = $image->Write( filename => $filename ); return if $_self->{cancel}; if ("$x") { $logger->warn($x) } $logger->info( "Wrote $filename with unsharp mask: r=$options{radius}, s=$options{sigma}, a=$options{amount}, t=$options{threshold}" ); my $new = $options{page}->freeze; $new->{filename} = $filename->filename; # can't queue File::Temp objects $new->{dirty_time} = timestamp(); #flag as dirty my %data = ( old => $options{page}, new => $new ); $self->{page_queue}->enqueue( \%data ); return; } sub _thread_crop { my ( $self, %options ) = @_; my $filename = $options{page}->{filename}; my $image = Image::Magick->new; my $e = $image->Read($filename); return if $_self->{cancel}; if ("$e") { $logger->warn($e) } # Crop the image $e = $image->Crop( width => $options{w}, height => $options{h}, x => $options{x}, y => $options{y} ); $image->Set( page => '0x0+0+0' ); return if $_self->{cancel}; if ("$e") { $logger->warn($e) } # Write it my $suffix; if ( $filename =~ /\.(\w*)$/xsm ) { $suffix = $1; } $filename = File::Temp->new( DIR => $options{dir}, SUFFIX => ".$suffix", UNLINK => FALSE ); $logger->info( "Cropping $options{w} x $options{h} + $options{x} + $options{y} to $filename" ); $e = $image->Write( filename => $filename ); return if $_self->{cancel}; if ("$e") { $logger->warn($e) } my $new = $options{page}->freeze; $new->{filename} = $filename->filename; # can't queue File::Temp objects $new->{dirty_time} = timestamp(); #flag as dirty my %data = ( old => $options{page}, new => $new ); $self->{page_queue}->enqueue( \%data ); return; } sub _thread_to_png { my ( $self, $page, $dir ) = @_; my $new = $page->to_png($paper_sizes); return if $_self->{cancel}; my %data = ( old => $page, new => $new->freeze ); $logger->info("Converted $page->{filename} to $data{new}{filename}"); $self->{page_queue}->enqueue( \%data ); return; } sub _thread_tesseract { my ( $self, $page, $language, $pidfile ) = @_; my $new = $page->clone; ( $new->{hocr}, $new->{warnings} ) = Gscan2pdf::Tesseract->hocr( $page->{filename}, $language, $logger, $pidfile ); return if $_self->{cancel}; $new->{ocr_flag} = 1; #FlagOCR $new->{ocr_time} = timestamp(); #remember when we ran OCR on this page my %data = ( old => $page, new => $new ); $self->{page_queue}->enqueue( \%data ); return; } sub _thread_ocropus { my ( $self, $page, $language, $pidfile ) = @_; my $new = $page->clone; $new->{hocr} = Gscan2pdf::Ocropus->hocr( $page->{filename}, $language, $logger, $pidfile ); return if $_self->{cancel}; $new->{ocr_flag} = 1; #FlagOCR $new->{ocr_time} = timestamp(); #remember when we ran OCR on this page my %data = ( old => $page, new => $new ); $self->{page_queue}->enqueue( \%data ); return; } sub _thread_cuneiform { my ( $self, $page, $language, $pidfile ) = @_; my $new = $page->clone; $new->{hocr} = Gscan2pdf::Cuneiform->hocr( $page->{filename}, $language, $logger, $pidfile ); return if $_self->{cancel}; $new->{ocr_flag} = 1; #FlagOCR $new->{ocr_time} = timestamp(); #remember when we ran OCR on this page my %data = ( old => $page, new => $new ); $self->{page_queue}->enqueue( \%data ); return; } sub _thread_gocr { my ( $self, $page, $pidfile ) = @_; my $pnm; if ( $page->{filename} !~ /\.pnm$/xsm ) { # Temporary filename for new file $pnm = File::Temp->new( SUFFIX => '.pnm' ); my $image = Image::Magick->new; $image->Read( $page->{filename} ); return if $_self->{cancel}; $image->Write( filename => $pnm ); return if $_self->{cancel}; } else { $pnm = $page->{filename}; } my $new = $page->clone; # Temporary filename for output my $txt = File::Temp->new( SUFFIX => '.txt' ); # Using temporary txt file, as perl munges charset encoding # if text is passed by stdin/stdout my $cmd = "gocr $pnm -o $txt"; $logger->info($cmd); system("echo $PROCESS_ID > $pidfile;$cmd"); ( $new->{hocr}, undef ) = Gscan2pdf::Document::slurp($txt); return if $_self->{cancel}; $new->{ocr_flag} = 1; #FlagOCR $new->{ocr_time} = timestamp(); #remember when we ran OCR on this page my %data = ( old => $page, new => $new ); $self->{page_queue}->enqueue( \%data ); return; } sub _thread_unpaper { my ( $self, $page, $options, $pidfile, $dir ) = @_; my $filename = $page->{filename}; my $in; if ( $filename !~ /\.pnm$/xsm ) { my $image = Image::Magick->new; my $x = $image->Read($filename); if ("$x") { $logger->warn($x) } my $depth = $image->Get('depth'); # Unforunately, -depth doesn't seem to work here, so forcing depth=1 using pbm extension. my $suffix = ".pbm"; if ( $depth > 1 ) { $suffix = ".pnm" } # Temporary filename for new file $in = File::Temp->new( DIR => $dir, SUFFIX => $suffix, ); # FIXME: need to -compress Zip from perlmagick "convert -compress Zip $slist->{data}[$pagenum][2]{filename} $in;"; $image->Write( filename => $in ); } else { $in = $filename; } my $out = File::Temp->new( DIR => $dir, SUFFIX => '.pnm', UNLINK => FALSE ); my $out2 = $EMPTY; if ( $options =~ /--output-pages\ 2\ /xsm ) { $out2 = File::Temp->new( DIR => $dir, SUFFIX => '.pnm', UNLINK => FALSE ); } # --overwrite needed because $out exists with 0 size my $cmd = sprintf "$options;", $in, $out, $out2; $logger->info($cmd); system("echo $PROCESS_ID > $pidfile;$cmd"); return if $_self->{cancel}; my $new = Gscan2pdf::Page->new( filename => $out, dir => $dir, delete => TRUE, format => 'Portable anymap', ); $new->{dirty_time} = timestamp(); #flag as dirty my %data = ( old => $page, new => $new->freeze ); if ( $out2 ne $EMPTY ) { my $new2 = Gscan2pdf::Page->new( filename => $out2, dir => $dir, delete => TRUE, format => 'Portable anymap', ); $new2->{dirty_time} = timestamp(); #flag as dirty $data{new2} = $new2->freeze; } $self->{page_queue}->enqueue( \%data ); return; } sub _thread_user_defined { my ( $self, $page, $cmd, $dir, $pidfile ) = @_; my $in = $page->{filename}; my $suffix; if ( $in =~ /(\.\w*)$/xsm ) { $suffix = $1; } my $out = File::Temp->new( DIR => $dir, SUFFIX => $suffix, UNLINK => FALSE ); if ( $cmd =~ s/%o/$out/gxsm ) { $cmd =~ s/%i/$in/gxsm; } else { if ( not copy( $in, $out ) ) { $self->{status} = 1; $self->{message} = $d->get('Error copying page'); $d->get('Error copying page'); return; } $cmd =~ s/%i/$out/gxsm; } $cmd =~ s/%r/$page->{resolution}/gxsm; $logger->info($cmd); system("echo $PROCESS_ID > $pidfile;$cmd"); return if $_self->{cancel}; # Get file type my $image = Image::Magick->new; my $x = $image->Read($out); if ("$x") { $logger->warn($x) } my $new = Gscan2pdf::Page->new( filename => $out, dir => $dir, delete => TRUE, format => $image->Get('format'), ); my %data = ( old => $page, new => $new->freeze ); $self->{page_queue}->enqueue( \%data ); return; } sub _thread_paper_sizes { ( my $self, $paper_sizes ) = @_; return; } 1; __END__ gscan2pdf-1.2.3/lib/Gscan2pdf/Dialog.pm0000644000175000017500000000471012270574026016113 0ustar jeffjeffpackage Gscan2pdf::Dialog; use warnings; use strict; use Gtk2; use Glib 1.220 qw(TRUE FALSE); # To get TRUE and FALSE use Gtk2::Gdk::Keysyms; use Glib::Object::Subclass Gtk2::Window::, signals => { delete_event => \&on_delete_event, key_press_event => \&on_key_press_event, }, properties => [ Glib::ParamSpec->uint( 'border-width', # name 'Border width', # nickname 'Border width for vbox', # blurb 0, # min 999, # max 0, # default [qw/readable writable/] # flags ), Glib::ParamSpec->boolean( 'hide-on-delete', # name 'Hide on delete', # nickname 'Whether to destroy or hide the dialog when it is dismissed', # blurb FALSE, # default [qw/readable writable/] # flags ), Glib::ParamSpec->object( 'vbox', # name 'VBox', # nickname 'VBox which is automatically added to the Gscan2pdf::Dialog', # blurb 'Gtk2::VBox', # package [qw/readable writable/] # flags ), ]; our $VERSION = '1.2.3'; sub INIT_INSTANCE { my $self = shift; $self->set_position('center-on-parent'); # VBox for window my $vbox = Gtk2::VBox->new; $self->add($vbox); $self->set( 'vbox', $vbox ); return $self; } sub SET_PROPERTY { my ( $self, $pspec, $newval ) = @_; my $name = $pspec->get_name; $self->{$name} = $newval; $self->get('vbox')->set( 'border-width', $newval ) if ( $name eq 'border_width' ); return; } sub on_delete_event { my ( $widget, $event ) = @_; if ( $widget->get('hide-on-delete') ) { $widget->hide; return Gtk2::EVENT_STOP; # ensures that the window is not destroyed } $widget->destroy; return Gtk2::EVENT_PROPAGATE; } sub on_key_press_event { my ( $widget, $event ) = @_; unless ( $event->keyval == $Gtk2::Gdk::Keysyms{Escape} ) ## no critic (ProhibitPackageVars) { $widget->signal_chain_from_overridden($event); return Gtk2::EVENT_PROPAGATE; } if ( $widget->get('hide-on-delete') ) { $widget->hide; } else { $widget->destroy; } return Gtk2::EVENT_STOP; } 1; __END__ gscan2pdf-1.2.3/lib/Gscan2pdf/Dialog/0000755000175000017500000000000012271546566015564 5ustar jeffjeffgscan2pdf-1.2.3/lib/Gscan2pdf/Dialog/Scan.pm0000644000175000017500000012335412270574026017005 0ustar jeffjeffpackage Gscan2pdf::Dialog::Scan; use warnings; use strict; use Glib qw(TRUE FALSE); # To get TRUE and FALSE use Sane 0.05; # To get SANE_NAME_PAGE_WIDTH & SANE_NAME_PAGE_HEIGHT use Gscan2pdf::Dialog; use feature "switch"; use Data::Dumper; my ( $_MAX_PAGES, $_MAX_INCREMENT, $_DOUBLE_INCREMENT, $_CANVAS_SIZE, $_CANVAS_BORDER, $_CANVAS_POINT_SIZE, $_CANVAS_MIN_WIDTH, $_NO_INDEX, $EMPTY ); # need to register this with Glib before we can use it below BEGIN { use Gscan2pdf::Scanner::Options; Glib::Type->register_enum( 'Gscan2pdf::Scanner::Dialog::Side', qw(facing reverse) ); use Readonly; Readonly $_MAX_PAGES => 999; Readonly $_MAX_INCREMENT => 99; Readonly $_DOUBLE_INCREMENT => 2; Readonly $_CANVAS_SIZE => 200; Readonly $_CANVAS_BORDER => 10; Readonly $_CANVAS_POINT_SIZE => 10; Readonly $_CANVAS_MIN_WIDTH => 1; Readonly $_NO_INDEX => -1; $EMPTY = q{}; } # from http://gtk2-perl.sourceforge.net/doc/subclassing_widgets_in_perl.html use Glib::Object::Subclass Gscan2pdf::Dialog::, signals => { 'new-scan' => { param_types => ['Glib::UInt'], # page number }, 'changed-device' => { param_types => ['Glib::String'], # device name }, 'changed-device-list' => { param_types => ['Glib::Scalar'], # array of hashes with device info }, 'changed-num-pages' => { param_types => ['Glib::UInt'], # new number of pages to scan }, 'changed-page-number-start' => { param_types => ['Glib::UInt'], # new start page }, 'changed-page-number-increment' => { param_types => ['Glib::Int'], # new increment }, 'changed-side-to-scan' => { param_types => ['Glib::String'], # facing or reverse }, 'changed-scan-option' => { param_types => [ 'Glib::Scalar', 'Glib::Scalar' ], # name, value }, 'changed-option-visibility' => { param_types => ['Glib::Scalar'], # array of options to hide }, 'changed-current-scan-options' => { param_types => ['Glib::Scalar'], # profile array }, 'reloaded-scan-options' => {}, 'changed-profile' => { param_types => ['Glib::Scalar'], # name }, 'added-profile' => { param_types => [ 'Glib::Scalar', 'Glib::Scalar' ], # name, profile array }, 'removed-profile' => { param_types => ['Glib::Scalar'], # name }, 'changed-paper' => { param_types => ['Glib::Scalar'], # name }, 'changed-paper-formats' => { param_types => ['Glib::Scalar'], # formats }, 'started-process' => { param_types => ['Glib::Scalar'], # message }, 'changed-progress' => { param_types => [ 'Glib::Scalar', 'Glib::Scalar' ], # progress, message }, 'finished-process' => { param_types => ['Glib::String'], # process name }, 'process-error' => { param_types => [ 'Glib::String', 'Glib::String' ] , # process name, error message }, show => \&show, 'clicked-scan-button' => {}, }, properties => [ Glib::ParamSpec->string( 'device', # name 'Device', # nick 'Device name', # blurb $EMPTY, # default [qw/readable writable/] # flags ), Glib::ParamSpec->scalar( 'device-list', # name 'Device list', # nick 'Array of hashes of available devices', # blurb [qw/readable writable/] # flags ), Glib::ParamSpec->scalar( 'dir', # name 'Directory', # nick 'Directory in which to store scans', # blurb [qw/readable writable/] # flags ), Glib::ParamSpec->scalar( 'logger', # name 'Logger', # nick 'Log::Log4perl::get_logger object', # blurb [qw/readable writable/] # flags ), Glib::ParamSpec->scalar( 'profile', # name 'Profile', # nick 'Name of current profile', # blurb [qw/readable writable/] # flags ), Glib::ParamSpec->string( 'paper', # name 'Paper', # nick 'Name of currently selected paper format', # blurb $EMPTY, # default [qw/readable writable/] # flags ), Glib::ParamSpec->scalar( 'paper-formats', # name 'Paper formats', # nick 'Hash of arrays defining paper formats, e.g. A4, Letter, etc.', # blurb [qw/readable writable/] # flags ), Glib::ParamSpec->int( 'num-pages', # name 'Number of pages', # nickname 'Number of pages to be scanned', # blurb 0, # min 0 implies all $_MAX_PAGES, # max 1, # default [qw/readable writable/] # flags ), Glib::ParamSpec->int( 'max-pages', # name 'Maximum number of pages', # nickname 'Maximum number of pages that can be scanned with current page-number-start and page-number-increment' , # blurb -1, # min -1 implies all $_MAX_PAGES, # max 0, # default [qw/readable writable/] # flags ), Glib::ParamSpec->int( 'page-number-start', # name 'Starting page number', # nickname 'Page number of first page to be scanned', # blurb 1, # min $_MAX_PAGES, # max 1, # default [qw/readable writable/] # flags ), Glib::ParamSpec->int( 'page-number-increment', # name 'Page number increment', # nickname 'Amount to increment page number when scanning multiple pages', # blurb -$_MAX_INCREMENT, # min $_MAX_INCREMENT, # max 1, # default [qw/readable writable/] # flags ), Glib::ParamSpec->enum( 'side-to-scan', # name 'Side to scan', # nickname 'Either facing or reverse', # blurb 'Gscan2pdf::Scanner::Dialog::Side', # type 'facing', # default [qw/readable writable/] # flags ), Glib::ParamSpec->object( 'available-scan-options', # name 'Scan options available', # nickname 'Scan options currently available, whether active, selected, or not', # blurb 'Gscan2pdf::Scanner::Options', # package [qw/readable writable/] # flags ), Glib::ParamSpec->scalar( 'current-scan-options', # name 'Current scan options', # nick 'Array of scan options making up current profile', # blurb [qw/readable writable/] # flags ), Glib::ParamSpec->scalar( 'visible-scan-options', # name 'Visible scan options', # nick 'Hash of scan options to show or hide from the user', # blurb [qw/readable writable/] # flags ), Glib::ParamSpec->float( 'progress-pulse-step', # name 'Progress pulse step', # nick 'Pulse step of progress bar', # blurb 0.0, # minimum 1.0, # maximum 0.1, # default_value [qw/readable writable/] # flags ), ]; our $VERSION = '1.2.3'; my ( $d, $d_sane, $logger, $tooltips ); my $tolerance = 1; sub INIT_INSTANCE { my $self = shift; my $vbox = $self->get('vbox'); $tooltips = Gtk2::Tooltips->new; $tooltips->enable; $d = Locale::gettext->domain(Glib::get_application_name); $d_sane = Locale::gettext->domain('sane-backends'); # device list $self->{hboxd} = Gtk2::HBox->new; my $labeld = Gtk2::Label->new( $d->get('Device') ); $self->{hboxd}->pack_start( $labeld, FALSE, FALSE, 0 ); $self->{combobd} = Gtk2::ComboBox->new_text; $self->{combobd}->append_text( $d->get('Rescan for devices') ); $self->{combobd_changed_signal} = $self->{combobd}->signal_connect( changed => sub { my $index = $self->{combobd}->get_active; my $device_list = $self->get('device-list'); if ( $index > $#{$device_list} ) { $self->{combobd}->hide; $labeld->hide; $self->set( 'device', undef ); # to make sure that the device is reloaded $self->get_devices; } elsif ( $index > $_NO_INDEX ) { $self->set( 'device', $device_list->[$index]{name} ); } } ); $self->signal_connect( 'changed-device' => sub { my ( $widget, $device ) = @_; my $device_list = $self->get('device-list'); for ( @{$device_list} ) { if ( $_->{name} eq $device ) { Gscan2pdf::Dialog::Scan::set_combobox_by_text( $self->{combobd}, $_->{label} ); $self->scan_options; return; } } } ); $tooltips->set_tip( $self->{combobd}, $d->get('Sets the device to be used for the scan') ); $self->{hboxd}->pack_end( $self->{combobd}, FALSE, FALSE, 0 ); $vbox->pack_start( $self->{hboxd}, FALSE, FALSE, 0 ); # Notebook to collate options $self->{notebook} = Gtk2::Notebook->new; $vbox->pack_start( $self->{notebook}, TRUE, TRUE, 0 ); # Notebook page 1 my $vbox1 = Gtk2::VBox->new; $self->{vbox} = $vbox1; $self->{notebook}->append_page( $vbox1, $d->get('Page Options') ); # Frame for # pages my $framen = Gtk2::Frame->new( $d->get('# Pages') ); $vbox1->pack_start( $framen, FALSE, FALSE, 0 ); my $vboxn = Gtk2::VBox->new; my $border_width = $self->get('border_width'); $vboxn->set_border_width($border_width); $framen->add($vboxn); #the first radio button has to set the group, #which is undef for the first button # All button my $bscanall = Gtk2::RadioButton->new( undef, $d->get('All') ); $tooltips->set_tip( $bscanall, $d->get('Scan all pages') ); $vboxn->pack_start( $bscanall, TRUE, TRUE, 0 ); $bscanall->signal_connect( clicked => sub { if ( $bscanall->get_active ) { $self->set( 'num-pages', 0 ) } } ); # Entry button my $hboxn = Gtk2::HBox->new; $vboxn->pack_start( $hboxn, TRUE, TRUE, 0 ); my $bscannum = Gtk2::RadioButton->new( $bscanall->get_group, q{#:} ); $tooltips->set_tip( $bscannum, $d->get('Set number of pages to scan') ); $hboxn->pack_start( $bscannum, FALSE, FALSE, 0 ); # Number of pages my $spin_buttonn = Gtk2::SpinButton->new_with_range( 1, $_MAX_PAGES, 1 ); $tooltips->set_tip( $spin_buttonn, $d->get('Set number of pages to scan') ); $hboxn->pack_end( $spin_buttonn, FALSE, FALSE, 0 ); $bscannum->signal_connect( clicked => sub { if ( $bscannum->get_active ) { $self->set( 'num-pages', $spin_buttonn->get_value ); } } ); $self->signal_connect( 'changed-num-pages' => sub { my ( $widget, $value ) = @_; if ( $value == 0 ) { $bscanall->set_active(TRUE); } else { $spin_buttonn->set_value($value); } } ); # Actively set a radio button to synchronise GUI and properties if ( $self->get('num-pages') > 0 ) { $bscannum->set_active(TRUE); } else { $bscanall->set_active(TRUE); } # Toggle to switch between basic and extended modes my $checkx = Gtk2::CheckButton->new( $d->get('Extended page numbering') ); $vbox1->pack_start( $checkx, FALSE, FALSE, 0 ); # Frame for extended mode $self->{framex} = Gtk2::Frame->new( $d->get('Page number') ); $vbox1->pack_start( $self->{framex}, FALSE, FALSE, 0 ); my $vboxx = Gtk2::VBox->new; $vboxx->set_border_width($border_width); $self->{framex}->add($vboxx); # SpinButton for starting page number my $hboxxs = Gtk2::HBox->new; $vboxx->pack_start( $hboxxs, FALSE, FALSE, 0 ); my $labelxs = Gtk2::Label->new( $d->get('Start') ); $hboxxs->pack_start( $labelxs, FALSE, FALSE, 0 ); my $spin_buttons = Gtk2::SpinButton->new_with_range( 1, $_MAX_PAGES, 1 ); $hboxxs->pack_end( $spin_buttons, FALSE, FALSE, 0 ); $spin_buttons->signal_connect( 'value-changed' => sub { $self->set( 'page-number-start', $spin_buttons->get_value ); } ); $self->signal_connect( 'changed-page-number-start' => sub { my ( $widget, $value ) = @_; $spin_buttons->set_value($value); } ); # SpinButton for page number increment my $hboxi = Gtk2::HBox->new; $vboxx->pack_start( $hboxi, FALSE, FALSE, 0 ); my $labelxi = Gtk2::Label->new( $d->get('Increment') ); $hboxi->pack_start( $labelxi, FALSE, FALSE, 0 ); my $spin_buttoni = Gtk2::SpinButton->new_with_range( -$_MAX_INCREMENT, $_MAX_INCREMENT, 1 ); $spin_buttoni->set_value( $self->get('page-number-increment') ); $hboxi->pack_end( $spin_buttoni, FALSE, FALSE, 0 ); $spin_buttoni->signal_connect( 'value-changed' => sub { my $value = $spin_buttoni->get_value; if ( $value == 0 ) { $value = -$self->get('page-number-increment') } $spin_buttoni->set_value($value); $self->set( 'page-number-increment', $value ); } ); $self->signal_connect( 'changed-page-number-increment' => sub { my ( $widget, $value ) = @_; $spin_buttoni->set_value($value); } ); # Setting this here to fire callback running update_start $spin_buttons->set_value( $self->get('page-number-start') ); # Callback on changing number of pages $spin_buttonn->signal_connect( 'value-changed' => sub { $self->set( 'num-pages', $spin_buttonn->get_value ); $bscannum->set_active(TRUE); # Set the radiobutton active } ); # Frame for standard mode my $frames = Gtk2::Frame->new( $d->get('Source document') ); $vbox1->pack_start( $frames, FALSE, FALSE, 0 ); my $vboxs = Gtk2::VBox->new; $vboxs->set_border_width($border_width); $frames->add($vboxs); # Single sided button my $buttons = Gtk2::RadioButton->new( undef, $d->get('Single sided') ); $tooltips->set_tip( $buttons, $d->get('Source document is single-sided') ); $vboxs->pack_start( $buttons, TRUE, TRUE, 0 ); $buttons->signal_connect( clicked => sub { $spin_buttoni->set_value(1); } ); # Double sided button my $buttond = Gtk2::RadioButton->new( $buttons->get_group, $d->get('Double sided') ); $tooltips->set_tip( $buttond, $d->get('Source document is double-sided') ); $vboxs->pack_start( $buttond, FALSE, FALSE, 0 ); # Facing/reverse page button my $hboxs = Gtk2::HBox->new; $vboxs->pack_start( $hboxs, TRUE, TRUE, 0 ); my $labels = Gtk2::Label->new( $d->get('Side to scan') ); $hboxs->pack_start( $labels, FALSE, FALSE, 0 ); my $combobs = Gtk2::ComboBox->new_text; for ( ( $d->get('Facing'), $d->get('Reverse') ) ) { $combobs->append_text($_); } $combobs->signal_connect( changed => sub { $buttond->set_active(TRUE); # Set the radiobutton active $self->set( 'side-to-scan', $combobs->get_active == 0 ? 'facing' : 'reverse' ); } ); $self->signal_connect( 'changed-side-to-scan' => sub { my ( $widget, $value ) = @_; $self->set( 'page-number-increment', $value eq 'facing' ? $_DOUBLE_INCREMENT : -$_DOUBLE_INCREMENT ); } ); $tooltips->set_tip( $combobs, $d->get('Sets which side of a double-sided document is scanned') ); $combobs->set_active(0); # Have to do this here because setting the facing combobox switches it $buttons->set_active(TRUE); $hboxs->pack_end( $combobs, FALSE, FALSE, 0 ); # Have to put the double-sided callback here to reference page side $buttond->signal_connect( clicked => sub { $spin_buttoni->set_value( $combobs->get_active == 0 ? $_DOUBLE_INCREMENT : -$_DOUBLE_INCREMENT ); } ); # Have to put the extended pagenumber checkbox here to reference simple controls $checkx->signal_connect( toggled => \&_extended_pagenumber_checkbox_callback, [ $self, $frames, $spin_buttoni, $buttons, $buttond, $combobs ] ); # Scan profiles my $framesp = Gtk2::Frame->new( $d->get('Scan profiles') ); $vbox1->pack_start( $framesp, FALSE, FALSE, 0 ); my $vboxsp = Gtk2::VBox->new; $vboxsp->set_border_width($border_width); $framesp->add($vboxsp); $self->{combobsp} = Gtk2::ComboBox->new_text; $self->{combobsp}->signal_connect( changed => sub { my $profile = $self->{combobsp}->get_active_text; if ( defined $profile ) { $self->set( 'profile', $profile ) } } ); $vboxsp->pack_start( $self->{combobsp}, FALSE, FALSE, 0 ); my $hboxsp = Gtk2::HBox->new; $vboxsp->pack_end( $hboxsp, FALSE, FALSE, 0 ); # Save button my $vbutton = Gtk2::Button->new_from_stock('gtk-save'); $vbutton->signal_connect( clicked => sub { my $dialog = Gtk2::Dialog->new( $d->get('Name of scan profile'), $self, 'destroy-with-parent', 'gtk-save' => 'ok', 'gtk-cancel' => 'cancel' ); my $hbox = Gtk2::HBox->new; my $label = Gtk2::Label->new( $d->get('Name of scan profile') ); $hbox->pack_start( $label, FALSE, FALSE, 0 ); my $entry = Gtk2::Entry->new; $entry->set_activates_default(TRUE); $hbox->pack_end( $entry, TRUE, TRUE, 0 ); $dialog->vbox->add($hbox); $dialog->set_default_response('ok'); $dialog->show_all; if ( $dialog->run eq 'ok' and $entry->get_text !~ /^\s*$/xsm ) { my $profile = $entry->get_text; $self->add_profile( $profile, $self->get('current-scan-options') ); $self->{combobsp} ->set_active( get_combobox_num_rows( $self->{combobsp} ) - 1 ); } $dialog->destroy; } ); $hboxsp->pack_start( $vbutton, TRUE, TRUE, 0 ); # Delete button my $dbutton = Gtk2::Button->new_from_stock('gtk-delete'); $dbutton->signal_connect( clicked => sub { $self->remove_profile( $self->{combobsp}->get_active_text ); } ); $hboxsp->pack_start( $dbutton, FALSE, FALSE, 0 ); # HBox for buttons my $hboxb = Gtk2::HBox->new; $vbox->pack_end( $hboxb, FALSE, FALSE, 0 ); # Scan button $self->{sbutton} = Gtk2::Button->new( $d->get('Scan') ); $hboxb->pack_start( $self->{sbutton}, TRUE, TRUE, 0 ); $self->{sbutton}->signal_connect( clicked => sub { $self->signal_emit('clicked-scan-button'); $self->scan; } ); $self->{sbutton}->grab_focus; # Cancel button my $cbutton = Gtk2::Button->new_from_stock('gtk-close'); $hboxb->pack_end( $cbutton, FALSE, FALSE, 0 ); $cbutton->signal_connect( clicked => sub { $self->hide; } ); $self->signal_connect( check_resize => sub { Glib::Idle->add( sub { $self->resize( 1, 1 ); } ); } ); return $self; } sub SET_PROPERTY { my ( $self, $pspec, $newval ) = @_; my $name = $pspec->get_name; my $oldval = $self->get($name); $self->{$name} = $newval; # Have to set logger separately as it has already been set in the subclassed # widget if ( $name eq 'logger' ) { $logger = $newval; $logger->debug('Set logger in Gscan2pdf::Dialog::Scan'); } elsif ( ( defined($newval) and defined($oldval) and $newval ne $oldval ) or ( defined($newval) xor defined($oldval) ) ) { if ( defined $logger ) { $logger->debug( "Started setting $name from " . ( defined($oldval) ? ( ref($oldval) =~ /(?:HASH|ARRAY)/xsm ? Dumper($oldval) : $oldval ) : 'undef' ) . ' to ' . ( defined($newval) ? ( ref($newval) =~ /(?:HASH|ARRAY)/xsm ? Dumper($newval) : $newval ) : 'undef' ) ); } given ($name) { when ('device') { $self->set_device($newval); $self->signal_emit( 'changed-device', $newval ) } when ('device_list') { $self->set_device_list($newval); $self->signal_emit( 'changed-device-list', $newval ) } when ('num_pages') { $self->signal_emit( 'changed-num-pages', $newval ) } when ('page_number_start') { $self->signal_emit( 'changed-page-number-start', $newval ) } when ('page_number_increment') { $self->signal_emit( 'changed-page-number-increment', $newval ) } when ('side_to_scan') { $self->signal_emit( 'changed-side-to-scan', $newval ) } when ('paper') { set_combobox_by_text( $self->{combobp}, $newval ); $self->signal_emit( 'changed-paper', $newval ) } when ('paper_formats') { $self->set_paper_formats($newval); $self->signal_emit( 'changed-paper-formats', $newval ) } when ('profile') { $self->set_profile($newval); } # This resets all options, so also clear the profile and current-scan-options # options, but without setting off their signals when ('available_scan_options') { $self->{profile} = undef; $self->{current_scan_options} = undef; $self->signal_emit('reloaded-scan-options') } when ('current_scan_options') { $self->set_current_scan_options($newval) } when ('visible_scan_options') { $self->signal_emit( 'changed-option-visibility', $newval ); } default { $self->SUPER::SET_PROPERTY( $pspec, $newval ); } } if ( defined $logger ) { $logger->debug( "Finished setting $name from " . ( defined($oldval) ? ( ref($oldval) =~ /(?:HASH|ARRAY)/xsm ? Dumper($oldval) : $oldval ) : 'undef' ) . ' to ' . ( defined($newval) ? ( ref($newval) =~ /(?:HASH|ARRAY)/xsm ? Dumper($newval) : $newval ) : 'undef' ) ); } } return; } sub show { my $self = shift; $self->signal_chain_from_overridden; $self->{framex}->hide_all; if ( $self->{combobp}->get_active_text ne $d->get('Manual') ) { $self->hide_geometry( $self->get('available-scan-options') ); } return; } sub set_device { my ( $self, $device ) = @_; if ( defined($device) and $device ne $EMPTY ) { my $o; my $device_list = $self->get('device_list'); if ( defined $device_list ) { for ( 0 .. $#{$device_list} ) { if ( $device eq $device_list->[$_]{name} ) { $o = $_ } } # Set the device dependent options after the number of pages # to scan so that the source button callback can ghost the # all button. # This then fires the callback, updating the options, # so no need to do it further down. if ( defined $o ) { $self->{combobd}->set_active($o); } else { $self->signal_emit( 'process-error', 'open_device', sprintf( $d->get('Error: unknown device: %s'), $device ) ); } } } return; } sub set_device_list { my ( $self, $device_list ) = @_; # Note any duplicate device names and delete if necessary my %seen; my $i = 0; while ( $i < @{$device_list} ) { $seen{ $device_list->[$i]{name} }++; if ( $seen{ $device_list->[$i]{name} } > 1 ) { splice @{$device_list}, $i, 1; } else { $i++; } } # Note any duplicate model names and add the device if necessary undef %seen; for ( @{$device_list} ) { if ( not defined( $_->{model} ) ) { $_->{model} = $_->{name} } $seen{ $_->{model} }++; } for ( @{$device_list} ) { if ( defined $_->{vendor} ) { $_->{label} = "$_->{vendor} $_->{model}"; } else { $_->{label} = $_->{model}; } if ( $seen{ $_->{model} } > 1 ) { $_->{label} .= " on $_->{name}" } } $self->{combobd}->signal_handler_block( $self->{combobd_changed_signal} ); # Remove all entries apart from rescan for ( get_combobox_num_rows( $self->{combobd} ) .. 2 ) { $self->{combobd}->remove_text(0); } # read the model names into the combobox for ( 0 .. $#{$device_list} ) { $self->{combobd}->insert_text( $_, $device_list->[$_]{label} ); } $self->{combobd}->signal_handler_unblock( $self->{combobd_changed_signal} ); return; } sub pack_widget { my ( $self, $widget, $data ) = @_; my ( $options, $opt, $hbox, $hboxp ) = @{$data}; if ( defined $widget ) { $opt->{widget} = $widget; if ( $opt->{type} == SANE_TYPE_BUTTON or $opt->{max_values} > 1 ) { $hbox->pack_end( $widget, TRUE, TRUE, 0 ); } else { $hbox->pack_end( $widget, FALSE, FALSE, 0 ); } $tooltips->set_tip( $widget, $d_sane->get( $opt->{desc} ) ); # Look-up to hide/show the box if necessary if ( $self->_geometry_option($opt) ) { $options->{box}{ $opt->{name} } = $hbox; } $self->create_paper_widget( $options, $hboxp ); } else { $logger->warn("Unknown type $opt->{type}"); } return; } # Add paper size to combobox if scanner large enough sub set_paper_formats { my ( $self, $formats ) = @_; $self->{ignored_paper_formats} = (); my $options = $self->get('available-scan-options'); for ( keys %{$formats} ) { if ( defined( $self->{combobp} ) and $options->supports_paper( $formats->{$_}, $tolerance ) ) { $self->{combobp}->prepend_text($_); } else { push @{ $self->{ignored_paper_formats} }, $_; } } return; } # Paper editor sub edit_paper { my ($self) = @_; my $combobp = $self->{combobp}; my $options = $self->get('available-scan-options'); my $formats = $self->get('paper-formats'); my $window = Gscan2pdf::Dialog->new( 'transient-for' => $self, title => $d->get('Edit paper size'), border_width => $self->get('border-width'), ); my $vbox = $window->get('vbox'); # Buttons for SimpleList my $hboxl = Gtk2::HBox->new; $vbox->pack_start( $hboxl, FALSE, FALSE, 0 ); my $vboxb = Gtk2::VBox->new; $hboxl->pack_start( $vboxb, FALSE, FALSE, 0 ); my $dbutton = Gtk2::Button->new_from_stock('gtk-add'); $vboxb->pack_start( $dbutton, TRUE, FALSE, 0 ); my $rbutton = Gtk2::Button->new_from_stock('gtk-remove'); $vboxb->pack_end( $rbutton, TRUE, FALSE, 0 ); # Set up a SimpleList my $slist = Gtk2::Ex::Simple::List->new( $d->get('Name') => 'text', $d->get('Width') => 'int', $d->get('Height') => 'int', $d->get('Left') => 'int', $d->get('Top') => 'int' ); for ( keys %{$formats} ) { push @{ $slist->{data} }, [ $_, $formats->{$_}{x}, $formats->{$_}{y}, $formats->{$_}{l}, $formats->{$_}{t} ]; } # Set everything to be editable my @columns = $slist->get_columns; for ( 0 .. $#columns ) { $slist->set_column_editable( $_, TRUE ); } $slist->get_column(0)->set_sort_column_id(0); # Add button callback $dbutton->signal_connect( clicked => sub { my @rows = $slist->get_selected_indices; if ( not @rows ) { $rows[0] = 0 } my $name = $slist->{data}[ $rows[0] ][0]; my $version = 2; my $i = 0; while ( $i < @{ $slist->{data} } ) { if ( $slist->{data}[$i][0] eq "$name ($version)" ) { ++$version; $i = 0; } else { ++$i; } } my @line = ("$name ($version)"); for ( 1 .. $#{ $slist->get_columns } ) { push @line, $slist->{data}[ $rows[0] ][$_]; } splice @{ $slist->{data} }, $rows[0] + 1, 0, \@line; } ); # Remove button callback $rbutton->signal_connect( clicked => sub { my @rows = $slist->get_selected_indices; if ( $#rows == $#{ $slist->{data} } ) { main::show_message_dialog( $window, 'error', 'close', $d->get('Cannot delete all paper sizes') ); } else { while (@rows) { splice @{ $slist->{data} }, shift(@rows), 1; } } } ); # Set-up the callback to check that no two Names are the same $slist->get_model->signal_connect( 'row-changed' => sub { my ( $model, $path, $iter ) = @_; for ( 0 .. $#{ $slist->{data} } ) { if ( $_ != $path->to_string and $slist->{data}[ $path->to_string ][0] eq $slist->{data}[$_][0] ) { my $name = $slist->{data}[ $path->to_string ][0]; my $version = 2; if ( $name =~ / (.*) # name \ \( # space, opening bracket (\d+) # version \) # closing bracket /xsm ) { $name = $1; $version = $2 + 1; } $slist->{data}[ $path->to_string ][0] = "$name ($version)"; return; } } } ); $hboxl->pack_end( $slist, FALSE, FALSE, 0 ); # Buttons my $hboxb = Gtk2::HBox->new; $vbox->pack_start( $hboxb, FALSE, FALSE, 0 ); my $abutton = Gtk2::Button->new_from_stock('gtk-apply'); $abutton->signal_connect( clicked => sub { my %formats; for my $i ( 0 .. $#{ $slist->{data} } ) { my $j = 0; for (qw( x y l t)) { $formats{ $slist->{data}[$i][0] }{$_} = $slist->{data}[$i][ ++$j ]; } } # Remove all formats, leaving Manual and Edit while ( $combobp->get_active > 1 ) { $combobp->remove_text(0) } # Add new definitions $self->set( 'paper-formats', \%formats ); if ( $self->{ignored_paper_formats} and @{ $self->{ignored_paper_formats} } ) { main::show_message_dialog( $window, 'warning', 'close', $d->get( 'The following paper sizes are too big to be scanned by the selected device:' ) . q{ } . join( ', ', @{ $self->{ignored_paper_formats} } ) ); } # Set the combobox back from Edit to the previous value set_combobox_by_text( $combobp, $self->get('paper') ); $window->destroy; } ); $hboxb->pack_start( $abutton, TRUE, FALSE, 0 ); my $cbutton = Gtk2::Button->new_from_stock('gtk-cancel'); $cbutton->signal_connect( clicked => sub { # Set the combobox back from Edit to the previous value set_combobox_by_text( $combobp, $self->get('paper') ); $window->destroy; } ); $hboxb->pack_end( $cbutton, TRUE, FALSE, 0 ); $window->show_all; return; } sub add_profile { my ( $self, $name, $profile ) = @_; if ( defined($name) and defined($profile) ) { $self->{profiles}{$name} = (); if ( ref($profile) eq 'ARRAY' ) { for ( @{$profile} ) { push @{ $self->{profiles}{$name} }, $_; } } elsif ( ref($profile) eq 'HASH' ) { while ( my ( $key, $value ) = each( %{$profile} ) ) { push @{ $self->{profiles}{$name} }, { $key => $value }; } } $self->{combobsp}->append_text($name); $self->signal_emit( 'added-profile', $name, $self->{profiles}{$name} ); } return; } sub set_profile { my ( $self, $name ) = @_; set_combobox_by_text( $self->{combobsp}, $name ); if ( defined($name) and $name ne $EMPTY ) { # If we are setting the profile, don't unset the profile name $self->{setting_profile} = TRUE; # Only emit the changed-profile signal when the GUI has caught up my $signal; $signal = $self->signal_connect( 'changed-current-scan-options' => sub { $self->{setting_profile} = FALSE; $self->signal_emit( 'changed-profile', $name ); $self->signal_handler_disconnect($signal); } ); $self->set( 'current-scan-options', $self->{profiles}{$name} ); } # no need to wait - nothing to do else { $self->signal_emit( 'changed-profile', $name ); } return; } # Remove the profile. If it is active, deselect it first. sub remove_profile { my ( $self, $name ) = @_; if ( defined($name) and defined( $self->{profiles}{$name} ) ) { my $i = get_combobox_by_text( $self->{combobsp}, $name ); if ( $i > $_NO_INDEX ) { if ( $self->{combobsp}->get_active == $i ) { $self->{combobsp}->set_active($_NO_INDEX); } $self->{combobsp}->remove_text($i); $self->signal_emit( 'removed-profile', $name ); } } return; } sub get_combobox_num_rows { my ($combobox) = @_; if ( not defined($combobox) ) { return } my $i = 0; $combobox->get_model->foreach( sub { ++$i; return FALSE; # continue the foreach() } ); return $i; } sub get_combobox_by_text { my ( $combobox, $text ) = @_; if ( not( defined($combobox) and defined($text) ) ) { return $_NO_INDEX } my $o = $_NO_INDEX; my $i = 0; $combobox->get_model->foreach( sub { my ( $model, $path, $iter ) = @_; if ( $model->get( $iter, 0 ) eq $text ) { $o = $i; return TRUE; # found - stop the foreach() } else { ++$i; return FALSE; # not found - continue the foreach() } } ); return $o; } sub set_combobox_by_text { my ( $combobox, $text ) = @_; if ( defined $combobox ) { $combobox->set_active( get_combobox_by_text( $combobox, $text ) ); } return; } sub _extended_pagenumber_checkbox_callback { my ( $widget, $data ) = @_; my ( $dialog, $frames, $spin_buttoni, $buttons, $buttond, $combobs ) = @{$data}; if ( $widget->get_active ) { $frames->hide_all; $dialog->{framex}->show_all; } else { if ( $spin_buttoni->get_value == 1 ) { $buttons->set_active(TRUE); } elsif ( $spin_buttoni->get_value > 0 ) { $buttond->set_active(TRUE); $combobs->set_active(0); } else { $buttond->set_active(TRUE); $combobs->set_active(1); } $frames->show_all; $dialog->{framex}->hide_all; } return; } sub multiple_values_button_callback { my ( $widget, $data ) = @_; my ( $dialog, $opt ) = @{$data}; if ($opt->{type} == SANE_TYPE_FIXED or $opt->{type} == SANE_TYPE_INT ) { if ( $opt->{constraint_type} == SANE_CONSTRAINT_NONE ) { main::show_message_dialog( $dialog, 'info', 'close', $d->get( 'Multiple unconstrained values are not currently supported. Please file a bug.' ) ); } else { $dialog->set_options($opt); } } else { main::show_message_dialog( $dialog, 'info', 'close', $d->get( 'Multiple non-numerical values are not currently supported. Please file a bug.' ) ); } return; } sub value_for_active_option { my ( $self, $value, $opt ) = @_; return defined $value and not $opt->{cap} & SANE_CAP_INACTIVE; } # display Goo::Canvas with graph sub set_options { my ( $self, $opt ) = @_; # Set up the canvas my $window = Gscan2pdf::Dialog->new( 'transient-for' => $self, title => $d_sane->get( $opt->{title} ), destroy => TRUE, border_width => $self->get('border_width'), ); my $vbox = $window->vbox; my $canvas = Goo::Canvas->new; $canvas->set_size_request( $_CANVAS_SIZE, $_CANVAS_SIZE ); $canvas->{border} = $_CANVAS_BORDER; $vbox->add($canvas); my $root = $canvas->get_root_item; $canvas->signal_connect( 'button-press-event' => sub { my ( $widget, $event ) = @_; if ( defined $widget->{selected} ) { $widget->{selected}->set( 'fill-color' => 'black' ); undef $widget->{selected}; } return FALSE if ( $#{ $widget->{val} } + 1 >= $opt->{max_values} or $widget->{on_val} ); my $fleur = Gtk2::Gdk::Cursor->new('fleur'); my ( $x, $y ) = to_graph( $widget, $event->x, $event->y ); $x = int($x) + 1; splice @{ $widget->{val} }, $x, 0, $y; splice @{ $widget->{items} }, $x, 0, add_value( $root, $widget ); update_graph($widget); return TRUE; } ); $canvas->signal_connect_after( 'key_press_event', sub { my ( $widget, $event ) = @_; if ( $event->keyval == $Gtk2::Gdk::Keysyms{Delete} ## no critic (ProhibitPackageVars) and defined $widget->{selected} ) { my $item = $widget->{selected}; undef $widget->{selected}; $widget->{on_val} = FALSE; splice @{ $widget->{val} }, $item->{index}, 1; splice @{ $widget->{items} }, $item->{index}, 1; my $parent = $item->get_parent; my $num = $parent->find_child($item); $parent->remove_child($num); update_graph($widget); } return FALSE; } ); $canvas->can_focus(TRUE); $canvas->grab_focus($root); $canvas->{opt} = $opt; $canvas->{val} = $canvas->{opt}->{val}; for ( @{ $canvas->{val} } ) { push @{ $canvas->{items} }, add_value( $root, $canvas ); } if ( $opt->{constraint_type} == SANE_CONSTRAINT_WORD_LIST ) { @{ $opt->{constraint} } = sort { $a <=> $b } @{ $opt->{constraint} }; } # HBox for buttons my $hbox = Gtk2::HBox->new; $vbox->pack_start( $hbox, FALSE, TRUE, 0 ); # Apply button my $abutton = Gtk2::Button->new_from_stock('gtk-apply'); $hbox->pack_start( $abutton, TRUE, TRUE, 0 ); $abutton->signal_connect( clicked => sub { $self->set_option( $opt, $canvas->{val} ); # when INFO_INEXACT is implemented, so that the value is reloaded, check for it # here, so that the reloaded value is not overwritten. $opt->{val} = $canvas->{val}; $window->destroy; } ); # Cancel button my $cbutton = Gtk2::Button->new_from_stock('gtk-cancel'); $hbox->pack_end( $cbutton, FALSE, FALSE, 0 ); $cbutton->signal_connect( clicked => sub { $window->destroy } ); # Have to show the window before updating it otherwise is doesn't know how big it is $window->show_all; update_graph($canvas); return; } sub add_value { my ( $root, $canvas ) = @_; my $item = Goo::Canvas::Rect->new( $root, 0, 0, $_CANVAS_POINT_SIZE, $_CANVAS_POINT_SIZE, 'fill-color' => 'black', 'line-width' => 0, ); $item->signal_connect( 'enter-notify-event' => sub { $canvas->{on_val} = TRUE; return TRUE; } ); $item->signal_connect( 'leave-notify-event' => sub { $canvas->{on_val} = FALSE; return TRUE; } ); $item->signal_connect( 'button-press-event' => sub { my ( $widget, $target, $ev ) = @_; $canvas->{selected} = $item; $item->set( 'fill-color' => 'red' ); my $fleur = Gtk2::Gdk::Cursor->new('fleur'); $widget->get_canvas->pointer_grab( $widget, [ 'pointer-motion-mask', 'button-release-mask' ], $fleur, $ev->time ); return TRUE; } ); $item->signal_connect( 'button-release-event' => sub { my ( $widget, $target, $ev ) = @_; $widget->get_canvas->pointer_ungrab( $widget, $ev->time ); return TRUE; } ); my $opt = $canvas->{opt}; $item->signal_connect( 'motion-notify-event' => sub { my ( $widget, $target, $event ) = @_; if ( not( $event->state >= ## no critic (ProhibitMismatchedOperators) 'button1-mask' ) ) { return FALSE; } my ( $x, $y ) = ( $event->x, $event->y ); my ( $xgr, $ygr ) = ( 0, $y ); if ( $opt->{constraint_type} == SANE_CONSTRAINT_RANGE ) { ( $xgr, $ygr ) = to_graph( $canvas, 0, $y ); if ( $ygr > $opt->{constraint}{max} ) { $ygr = $opt->{constraint}{max}; } elsif ( $ygr < $opt->{constraint}{min} ) { $ygr = $opt->{constraint}{min}; } } elsif ( $opt->{constraint_type} == SANE_CONSTRAINT_WORD_LIST ) { ( $xgr, $ygr ) = to_graph( $canvas, 0, $y ); for ( 1 .. $#{ $opt->{constraint} } ) { if ( $ygr < ( $opt->{constraint}[$_] + $opt->{constraint}[ $_ - 1 ] ) / 2 ) { $ygr = $opt->{constraint}[ $_ - 1 ]; last; } elsif ( $_ == $#{ $opt->{constraint} } ) { $ygr = $opt->{constraint}[$_]; } } } $canvas->{val}[ $widget->{index} ] = $ygr; ( $x, $y ) = to_canvas( $canvas, $xgr, $ygr ); $widget->set( y => $y - $_CANVAS_POINT_SIZE / 2 ); return TRUE; } ); return $item; } # convert from graph co-ordinates to canvas co-ordinates sub to_canvas { my ( $canvas, $x, $y ) = @_; return ( $x - $canvas->{bounds}[0] ) * $canvas->{scale}[0] + $canvas->{border}, $canvas->{cheight} - ( $y - $canvas->{bounds}[1] ) * $canvas->{scale}[1] - $canvas->{border}; } # convert from canvas co-ordinates to graph co-ordinates sub to_graph { my ( $canvas, $x, $y ) = @_; return ( $x - $canvas->{border} ) / $canvas->{scale}[0] + $canvas->{bounds}[0], ( $canvas->{cheight} - $y - $canvas->{border} ) / $canvas->{scale}[1] + $canvas->{bounds}[1]; } sub update_graph { my ($canvas) = @_; # Calculate bounds of graph my ( @xbounds, @ybounds ); for ( @{ $canvas->{val} } ) { if ( not defined $ybounds[0] or $_ < $ybounds[0] ) { $ybounds[0] = $_ } if ( not defined $ybounds[1] or $_ > $ybounds[1] ) { $ybounds[1] = $_ } } my $opt = $canvas->{opt}; $xbounds[0] = 0; $xbounds[1] = $#{ $canvas->{val} }; if ( $xbounds[0] >= $xbounds[1] ) { $xbounds[0] = -$_CANVAS_MIN_WIDTH / 2; $xbounds[1] = $_CANVAS_MIN_WIDTH / 2; } if ( $opt->{constraint_type} == SANE_CONSTRAINT_RANGE ) { $ybounds[0] = $opt->{constraint}{min}; $ybounds[1] = $opt->{constraint}{max}; } elsif ( $opt->{constraint_type} == SANE_CONSTRAINT_WORD_LIST ) { $ybounds[0] = $opt->{constraint}[0]; $ybounds[1] = $opt->{constraint}[ $#{ $opt->{constraint} } ]; } my ( $vwidth, $vheight ) = ( $xbounds[1] - $xbounds[0], $ybounds[1] - $ybounds[0] ); # Calculate bounds of canvas my ( $x, $y, $cwidth, $cheight ) = $canvas->allocation->values; # Calculate scale factors my @scale = ( ( $cwidth - $canvas->{border} * 2 ) / $vwidth, ( $cheight - $canvas->{border} * 2 ) / $vheight ); $canvas->{scale} = \@scale; $canvas->{bounds} = [ $xbounds[0], $ybounds[0], $xbounds[1], $xbounds[1] ]; $canvas->{cheight} = $cheight; # Update canvas for ( 0 .. $#{ $canvas->{items} } ) { my $item = $canvas->{items}[$_]; $item->{index} = $_; my ( $xc, $yc ) = to_canvas( $canvas, $_, $canvas->{val}[$_] ); $item->set( x => $xc - $_CANVAS_BORDER / 2, y => $yc - $_CANVAS_BORDER / 2 ); } return; } # roll my own Data::Dumper to walk the reference tree without printing the results sub my_dumper { my ($ref) = @_; given ( ref $ref ) { when ('ARRAY') { for ( @{$ref} ) { my_dumper($_); } } when ('HASH') { while ( my ( $key, $val ) = each( %{$ref} ) ) { my_dumper($val); } } } return; } # Helper sub to reduce code duplication sub set_option_emit_signal { my ( $self, $i, $defaults, $signal1, $signal2 ) = @_; if ( $i < @{$defaults} ) { $i = $self->set_option_widget( $i, $defaults ) } # Only emit the changed-current-scan-options signal when we have finished if ( ( not defined($i) or $i > $#{$defaults} ) and $self->signal_handler_is_connected($signal1) and $self->signal_handler_is_connected($signal2) ) { $self->signal_handler_disconnect($signal1); $self->signal_handler_disconnect($signal2); if ( not $self->{setting_profile} ) { $self->set( 'profile', undef ) } $self->signal_emit( 'changed-current-scan-options', $self->get('current-scan-options') ); } return $i; } # Extract a option value from a profile sub get_option_from_profile { my ( $self, $name, $profile ) = @_; # for reasons I don't understand, without walking the reference tree, # parts of $profile are undef my_dumper($profile); for ( @{$profile} ) { my ( $key, $val ) = each( %{$_} ); return $val if ( $key eq $name ); } return; } sub make_progress_string { my ( $i, $npages ) = @_; return sprintf $d->get("Scanning page %d of %d"), $i, $npages if ( $npages > 0 ); return sprintf $d->get("Scanning page %d"), $i; } 1; __END__ gscan2pdf-1.2.3/lib/Gscan2pdf/Dialog/Renumber.pm0000644000175000017500000002332612270574026017676 0ustar jeffjeffpackage Gscan2pdf::Dialog::Renumber; use strict; use warnings; use Glib 1.220 qw(TRUE FALSE); # To get TRUE and FALSE use Gscan2pdf::Dialog; use Gscan2pdf::Document; use Gscan2pdf::PageRange; use Readonly; Readonly my $_MAX_PAGES => 999; Readonly my $_MAX_INCREMENT => 99; use Glib::Object::Subclass Gscan2pdf::Dialog::, signals => { 'changed-start' => { param_types => ['Glib::UInt'], # new start page }, 'changed-increment' => { param_types => ['Glib::Int'], # new increment }, 'changed-document' => { param_types => ['Glib::Scalar'], # new document }, 'changed-range' => { param_types => ['Gscan2pdf::PageRange::Range'], # new range }, 'before-renumber' => { param_types => [], }, }, properties => [ Glib::ParamSpec->int( 'start', # name 'Number of first page', # nickname 'Number of first page', # blurb 1, # min 999, # max 1, # default [qw/readable writable/] # flags ), Glib::ParamSpec->int( 'increment', # name 'Increment', # nickname 'Amount to increment page number when renumbering multiple pages', # blurb -99, # min 99, # max 1, # default [qw/readable writable/] # flags ), Glib::ParamSpec->scalar( 'document', # name 'Document', # nick 'Gscan2pdf::Document object to renumber', # blurb [qw/readable writable/] # flags ), Glib::ParamSpec->enum( 'range', # name 'Page Range to renumber', # nickname 'Page Range to renumber', # blurb 'Gscan2pdf::PageRange::Range', 'selected', # default [qw/readable writable/] # flags ), ]; our $VERSION = '1.2.3'; my ( $start_old, $step_old ); # Normally, we would initialise the widget in INIT_INSTANCE and use the # default constructor new(). However, we have to override the default contructor # in order to be able to access any properties assigned in ->new(), which are # not available in INIT_INSTANCE. Therefore, we use the default INIT_INSTANCE, # and override new(). If we ever need to subclass Gscan2pdf::Dialog::Renumber, # then we would need to put the bulk of this code back into INIT_INSTANCE, # and leave just that which assigns the required properties. sub new { my ( $class, @arguments ) = @_; my $self = Glib::Object::new( $class, @arguments ); my $d = Locale::gettext->domain(Glib::get_application_name); $self->set( 'title', $d->get('Renumber') ); my $vbox = $self->get('vbox'); # Frame for page range my $frame = Gtk2::Frame->new( $d->get('Page Range') ); $vbox->pack_start( $frame, FALSE, FALSE, 0 ); my $pr = Gscan2pdf::PageRange->new; $pr->signal_connect( changed => sub { $self->set( 'range', $pr->get_active ); $self->update; } ); $self->signal_connect( 'changed-range' => sub { my ( $widget, $value ) = @_; $pr->set_active($value); } ); $pr->set_active( $self->get('range') ); $frame->add($pr); # Frame for page numbering my $framex = Gtk2::Frame->new( $d->get('Page numbering') ); $vbox->pack_start( $framex, FALSE, FALSE, 0 ); my $vboxx = Gtk2::VBox->new; $vboxx->set_border_width( $self->get('border_width') ); $framex->add($vboxx); # SpinButton for starting page number my $hboxxs = Gtk2::HBox->new; $vboxx->pack_start( $hboxxs, FALSE, FALSE, 0 ); my $labelxs = Gtk2::Label->new( $d->get('Start') ); $hboxxs->pack_start( $labelxs, FALSE, FALSE, 0 ); my $spin_buttons = Gtk2::SpinButton->new_with_range( 1, $_MAX_PAGES, 1 ); $spin_buttons->signal_connect( 'value-changed' => sub { $self->set( 'start', $spin_buttons->get_value ); $self->update; } ); $self->signal_connect( 'changed-start' => sub { my ( $widget, $value ) = @_; $spin_buttons->set_value($value); } ); $spin_buttons->set_value( $self->get('start') ); $hboxxs->pack_end( $spin_buttons, FALSE, FALSE, 0 ); # SpinButton for page number increment my $hboxi = Gtk2::HBox->new; $vboxx->pack_start( $hboxi, FALSE, FALSE, 0 ); my $labelxi = Gtk2::Label->new( $d->get('Increment') ); $hboxi->pack_start( $labelxi, FALSE, FALSE, 0 ); my $spin_buttoni = Gtk2::SpinButton->new_with_range( -$_MAX_INCREMENT, $_MAX_INCREMENT, 1 ); $spin_buttoni->signal_connect( 'value-changed' => sub { $self->set( 'increment', $spin_buttoni->get_value ); $self->update; } ); $self->signal_connect( 'changed-increment' => sub { my ( $widget, $value ) = @_; $spin_buttoni->set_value($value); } ); $spin_buttoni->set_value( $self->get('increment') ); $hboxi->pack_end( $spin_buttoni, FALSE, FALSE, 0 ); # Check whether the settings are possible my ( $row_signal, $selection_signal, $document ); $self->signal_connect( 'changed-document' => sub { if ( defined($row_signal) and defined($document) ) { $document->signal_handler_disconnect($row_signal); } if ( defined($selection_signal) and defined($document) ) { $document->signal_handler_disconnect($selection_signal); } $self->update; $document = $self->get('document'); $row_signal = $document->get_model->signal_connect( 'row-changed' => sub { $self->update; } ); $selection_signal = $document->get_selection->signal_connect( changed => sub { $self->update; } ); } ); # HBox for buttons my $hbox = Gtk2::HBox->new; $vbox->pack_start( $hbox, FALSE, TRUE, 0 ); # Start button my $obutton = Gtk2::Button->new( $d->get('Renumber') ); $hbox->pack_start( $obutton, TRUE, TRUE, 0 ); $obutton->signal_connect( clicked => sub { $self->renumber } ); # Close button my $cbutton = Gtk2::Button->new_from_stock('gtk-close'); $hbox->pack_end( $cbutton, FALSE, FALSE, 0 ); $cbutton->signal_connect( clicked => sub { $self->hide; } ); return $self; } sub SET_PROPERTY { my ( $self, $pspec, $newval ) = @_; my $name = $pspec->get_name; my $oldval = $self->get($name); $self->{$name} = $newval; if (( defined($newval) and defined($oldval) and $newval ne $oldval ) or ( defined($newval) xor defined($oldval) ) ) { $self->signal_emit( "changed-$name", $newval ); } return; } # Helper function to prevent impossible settings in renumber dialog sub update { my ($self) = @_; my $start = $self->get('start'); my $step = $self->get('increment'); my $dstart = defined($start_old) ? $start - $start_old : 0; my $dstep = defined($step_old) ? $step - $step_old : 0; if ( $dstart == 0 and $dstep == 0 ) { $dstart = 1; } elsif ( $dstart != 0 and $dstep != 0 ) { $dstep = 0; } # Check for clash with non_selected my $slist = $self->get('document'); if ( defined $slist ) { my $range = $self->get('range'); while ( not $slist->valid_renumber( $start, $step, $range ) ) { my $n; if ( $range eq 'all' ) { $n = $#{ $slist->{data} }; } else { my @page = $slist->get_selected_indices; $n = $#page; } if ( $start + $step * $n < 1 ) { if ( $dstart < 0 ) { $dstart = 1; } else { $dstep = 1; } } $start += $dstart; $step += $dstep; if ( $step == 0 ) { $step += $dstep } } $self->set( 'start', $start ); $self->set( 'increment', $step ); } $start_old = $start; $step_old = $step; return; } sub renumber { my ($self) = @_; my $slist = $self->get('document'); my $start = $self->get('start'); my $step = $self->get('increment'); my $range = $self->get('range'); if ( $slist->valid_renumber( $start, $step, $range ) ) { $self->signal_emit('before-renumber'); if ( defined $slist->{row_changed_signal} ) { $slist->get_model->signal_handler_block( $slist->{row_changed_signal} ); } $slist->renumber( $start, $step, $range ); # Note selection before sorting my @page = $slist->get_selected_indices; # Convert to page numbers for (@page) { $_ = $slist->{data}[$_][0]; } # Block selection_changed_signal to prevent its firing changing pagerange to all if ( defined $slist->{selection_changed_signal} ) { $slist->get_selection->signal_handler_block( $slist->{selection_changed_signal} ); } # Select new page, deselecting others. This fires the select callback, # displaying the page $slist->get_selection->unselect_all; $slist->manual_sort_by_column(0); if ( defined $slist->{selection_changed_signal} ) { $slist->get_selection->signal_handler_unblock( $slist->{selection_changed_signal} ); } if ( defined $slist->{row_changed_signal} ) { $slist->get_model->signal_handler_unblock( $slist->{row_changed_signal} ); } # Convert back to indices for (@page) { # Due to the sort, must search for new page my $page = 0; while ( $page < $#{ $slist->{data} } and $slist->{data}[$page][0] != $_ ) { ++$page; } $_ = $page; } # Reselect pages $slist->select(@page); } else { my $d = Locale::gettext->domain(Glib::get_application_name); show_message_dialog( $self, 'error', 'close', $d->get( 'The current settings would result in duplicate page numbers. Please select new start and increment values.' ) ); } return; } 1; __END__ gscan2pdf-1.2.3/lib/Gscan2pdf/Dialog/Scan/0000755000175000017500000000000012271546566016450 5ustar jeffjeffgscan2pdf-1.2.3/lib/Gscan2pdf/Dialog/Scan/CLI.pm0000644000175000017500000010403212270574026017404 0ustar jeffjeffpackage Gscan2pdf::Dialog::Scan::CLI; # TODO: put the test code in to use the --help output from other people's scanners use warnings; use strict; use Gscan2pdf::Dialog::Scan; use Glib qw(TRUE FALSE); # To get TRUE and FALSE use Sane 0.05; # To get SANE_NAME_PAGE_WIDTH & SANE_NAME_PAGE_HEIGHT use Gscan2pdf::Frontend::CLI; use Storable qw(dclone); # For cloning the options cache use Locale::gettext 1.05; # For translations use feature "switch"; use List::MoreUtils qw{any}; my $EMPTY = q{}; my $COMMA = q{,}; # logger duplicated from Gscan2pdf::Dialog::Scan # to ensure that SET_PROPERTIES gets called in both places use Glib::Object::Subclass Gscan2pdf::Dialog::Scan::, signals => { 'changed-cache-options' => { param_types => ['Glib::Boolean'], # new value }, 'changed-options-cache' => { param_types => ['Glib::Scalar'], # new value }, 'fetched-options-cache' => { param_types => [ 'Glib::String', 'Glib::String' ], # device, cache key }, }, properties => [ Glib::ParamSpec->string( 'frontend', # name 'Frontend', # nick '(scanimage|scanadf)(-perl)?', # blurb 'scanimage', # default [qw/readable writable/] # flags ), Glib::ParamSpec->scalar( 'logger', # name 'Logger', # nick 'Log::Log4perl::get_logger object', # blurb [qw/readable writable/] # flags ), Glib::ParamSpec->string( 'prefix', # name 'Prefix', # nick 'Prefix for command line calls', # blurb $EMPTY, # default [qw/readable writable/] # flags ), Glib::ParamSpec->scalar( 'reload-triggers', # name 'Reload triggers', # nick 'Hash of option names that cause the options to be reloaded', # blurb [qw/readable writable/] # flags ), Glib::ParamSpec->boolean( 'cache-options', # name 'Cache options', # nickname 'Whether to cache options', # blurb FALSE, # default [qw/readable writable/] # flags ), Glib::ParamSpec->scalar( 'options-cache', # name 'Options cache', # nick 'Hash containing cache of scanner options', # blurb [qw/readable writable/] # flags ), ]; our $VERSION = '1.2.3'; my $SANE_NAME_PAGE_HEIGHT = SANE_NAME_PAGE_HEIGHT; my $SANE_NAME_PAGE_WIDTH = SANE_NAME_PAGE_WIDTH; my ( $d, $d_sane, $logger, $tooltips ); sub INIT_INSTANCE { my $self = shift; $tooltips = Gtk2::Tooltips->new; $tooltips->enable; $d = Locale::gettext->domain(Glib::get_application_name); $d_sane = Locale::gettext->domain('sane-backends'); return $self; } sub SET_PROPERTY { my ( $self, $pspec, $newval ) = @_; my $name = $pspec->get_name; my $oldval = $self->get($name); $self->{$name} = $newval; if (( defined($newval) and defined($oldval) and $newval ne $oldval ) or ( defined($newval) xor defined($oldval) ) ) { if ( $name eq 'logger' ) { $logger = $newval; $logger->debug('Set logger in Gscan2pdf::Dialog::Scan::CLI'); } elsif ( $name eq 'cache_options' ) { $self->signal_emit( 'changed-cache-options', $newval ); } elsif ( $name eq 'options_cache' ) { $self->signal_emit( 'changed-options-cache', $newval ); } } $self->SUPER::SET_PROPERTY( $pspec, $newval ); return; } # Run scanimage --formatted-device-list sub get_devices { my ($self) = @_; my $pbar; my $hboxd = $self->{hboxd}; Gscan2pdf::Frontend::CLI->get_devices( prefix => $self->get('prefix'), started_callback => sub { # Set up ProgressBar $pbar = Gtk2::ProgressBar->new; $pbar->set_pulse_step( $self->get('progress-pulse-step') ); $pbar->set_text( $d->get('Fetching list of devices') ); $hboxd->pack_start( $pbar, TRUE, TRUE, 0 ); $hboxd->hide_all; $hboxd->show; $pbar->show; }, running_callback => sub { $pbar->pulse }, finished_callback => sub { my ($device_list) = @_; $pbar->destroy; my @device_list = @{$device_list}; use Data::Dumper; $logger->info( "scanimage --formatted-device-list: ", Dumper( \@device_list ) ); if ( @device_list == 0 ) { $self->signal_emit( 'process-error', 'get_devices', $d->get('No devices found') ); $self->destroy; undef $self; return FALSE; } $self->set( 'device-list', \@device_list ); $hboxd->show_all; } ); return; } # Return cache key based on reload triggers and given options sub cache_key { my ( $self, $options ) = @_; my $reload_triggers = $self->get('reload-triggers'); if ( not defined($reload_triggers) ) { return 'default' } if ( ref($reload_triggers) ne 'ARRAY' ) { $reload_triggers = [$reload_triggers]; } my $cache_key = $EMPTY; if ( defined $options ) { for my $opt ( @{ $options->{array} } ) { for ( @{$reload_triggers} ) { if ( defined( $opt->{name} ) and /^$opt->{name}$/ixsm ) { if ( $cache_key ne $EMPTY ) { $cache_key .= $COMMA } $cache_key .= "$opt->{name},$opt->{val}"; last; } } } } else { # for reasons I don't understand, without walking the reference tree, # parts of $default are undef Gscan2pdf::Dialog::Scan::my_dumper( $self->{current_scan_options} ); # grep the reload triggers from the current options for ( @{ $self->{current_scan_options} } ) { my ( $key, $value ) = each( %{$_} ); for ( @{$reload_triggers} ) { if (/^$key$/ixsm) { if ( $cache_key ne $EMPTY ) { $cache_key .= $COMMA } $cache_key .= "$key,$value"; last; } } } } if ( $cache_key eq $EMPTY ) { $cache_key = 'default' } return $cache_key; } # Scan device-dependent scan options sub scan_options { my ($self) = @_; # Remove any existing pages while ( $self->{notebook}->get_n_pages > 1 ) { # -1 = last page $self->{notebook}->remove_page(-1); ## no critic (ProhibitMagicNumbers) } # Ghost the scan button whilst options being updated if ( defined $self->{sbutton} ) { $self->{sbutton}->set_sensitive(FALSE) } my ( $pbar, $cache_key ); my $hboxd = $self->{hboxd}; if ( $self->get('cache-options') ) { $cache_key = $self->cache_key; my $cache = $self->get('options-cache'); if ( defined $cache->{ $self->get('device') }{$cache_key} ) { my $options = Gscan2pdf::Scanner::Options->new_from_data( $cache->{ $self->get('device') }{$cache_key} ); $self->signal_emit( 'fetched-options-cache', $self->get('device'), $cache_key ); $logger->info($options); $self->_initialise_options($options); $self->signal_emit( 'finished-process', 'find_scan_options' ); # This fires the reloaded-scan-options signal, # so don't set this until we have finished $self->set( 'available-scan-options', $options ); return; } } Gscan2pdf::Frontend::CLI->find_scan_options( prefix => $self->get('prefix'), frontend => $self->get('frontend'), device => $self->get('device'), options => $self->{current_scan_options}, started_callback => sub { # Set up ProgressBar $pbar = Gtk2::ProgressBar->new; $pbar->set_pulse_step( $self->get('progress-pulse-step') ); $pbar->set_text( $d->get('Updating options') ); $hboxd->pack_start( $pbar, TRUE, TRUE, 0 ); $hboxd->hide_all; $hboxd->show; $pbar->show; }, running_callback => sub { $pbar->pulse; }, finished_callback => sub { my ($options) = @_; $pbar->destroy; $hboxd->show_all; $logger->info($options); if ( $self->get('cache-options') ) { my $cache = $self->get('options-cache'); # Don't assume that the options we have are those we are looking for yet # Recalculating cache_key based on contents of options if ( $cache_key ne 'default' ) { $cache_key = $self->cache_key($options) } # We only store the array part of the options object # as we have to recreate the object anyway when we retrieve it my $clone = dclone( $options->{array} ); my $device = $self->get('device'); if ( defined $cache ) { $cache->{$device}{$cache_key} = $clone; } else { $cache->{$device}{$cache_key} = $clone; if ( $cache_key eq 'default' ) { # For default settings, additionally store the cache under the option names $cache_key = $self->cache_key($options); $cache->{$device}{$cache_key} = $cache->{$device}{default}; } } $self->set( 'options-cache', $cache ); $self->signal_emit( 'changed-options-cache', $cache ); } $self->_initialise_options($options); $self->signal_emit( 'finished-process', 'find_scan_options' ); # This fires the reloaded-scan-options signal, # so don't set this until we have finished $self->set( 'available-scan-options', $options ); }, error_callback => sub { my ($message) = @_; $pbar->destroy; $self->signal_emit( 'process-error', 'find_scan_options', $message ); $logger->warn($message); }, ); return; } sub _initialise_options { ## no critic (ProhibitExcessComplexity) my ( $self, $options ) = @_; $logger->debug( "scanimage --help returned: ", Dumper($options) ); my $num_dev_options = $options->num_options; # We have hereby removed the active profile and paper, # so update the properties without triggering the signals $self->{profile} = undef; $self->{paper_formats} = undef; $self->{paper} = undef; # Default tab my $vbox = Gtk2::VBox->new; $self->{notebook}->append_page( $vbox, $d->get('Scan Options') ); delete $self->{combobp}; # So we don't carry over from one device to another for ( 1 .. $num_dev_options - 1 ) { my $opt = $options->by_index($_); # Notebook page for group if ( $opt->{type} == SANE_TYPE_GROUP ) { $vbox = Gtk2::VBox->new; $self->{notebook}->append_page( $vbox, $d_sane->get( $opt->{title} ) ); $opt->{widget} = $vbox; next; } if ( not( $opt->{cap} & SANE_CAP_SOFT_DETECT ) ) { next } # Widget my ( $widget, $val ); $val = $opt->{val}; # Define HBox for paper size here # so that it can be put before first geometry option if ( $self->_geometry_option($opt) and not defined( $self->{hboxp} ) ) { $self->{hboxp} = Gtk2::HBox->new; $vbox->pack_start( $self->{hboxp}, FALSE, FALSE, 0 ); } # HBox for option my $hbox = Gtk2::HBox->new; $vbox->pack_start( $hbox, FALSE, TRUE, 0 ); if ( $opt->{cap} & SANE_CAP_INACTIVE or not $opt->{cap} & SANE_CAP_SOFT_SELECT ) { $hbox->set_sensitive(FALSE); } if ( $opt->{max_values} < 2 ) { # Label if ( $opt->{type} != SANE_TYPE_BUTTON ) { my $label = Gtk2::Label->new( $d_sane->get( $opt->{title} ) ); $hbox->pack_start( $label, FALSE, FALSE, 0 ); } # CheckButton if ( $opt->{type} == SANE_TYPE_BOOL ) { ## no critic (ProhibitCascadingIfElse) $widget = Gtk2::CheckButton->new; if ($val) { $widget->set_active(TRUE) } $widget->{signal} = $widget->signal_connect( toggled => sub { my $value = $widget->get_active; $self->set_option( $opt, $value ); } ); } # Button elsif ( $opt->{type} == SANE_TYPE_BUTTON ) { $widget = Gtk2::Button->new( $d_sane->get( $opt->{title} ) ); $widget->{signal} = $widget->signal_connect( clicked => sub { $self->set_option( $opt, $val ); } ); } # SpinButton elsif ( $opt->{constraint_type} == SANE_CONSTRAINT_RANGE ) { my $step = 1; if ( $opt->{constraint}{quant} ) { $step = $opt->{constraint}{quant} } $widget = Gtk2::SpinButton->new_with_range( $opt->{constraint}{min}, $opt->{constraint}{max}, $step ); # Set the default if ( defined $val and not $opt->{cap} & SANE_CAP_INACTIVE ) { $widget->set_value($val); } $widget->{signal} = $widget->signal_connect( 'value-changed' => sub { my $value = $widget->get_value; $self->set_option( $opt, $value ); } ); } # ComboBox elsif ( $opt->{constraint_type} == SANE_CONSTRAINT_STRING_LIST or $opt->{constraint_type} == SANE_CONSTRAINT_WORD_LIST ) { $widget = Gtk2::ComboBox->new_text; my $index = 0; for ( 0 .. $#{ $opt->{constraint} } ) { $widget->append_text( $d_sane->get( $opt->{constraint}[$_] ) ); if ( defined $val and $opt->{constraint}[$_] eq $val ) { $index = $_ } } # Set the default if ( defined $index ) { $widget->set_active($index) } $widget->{signal} = $widget->signal_connect( changed => sub { my $i = $widget->get_active; $self->set_option( $opt, $opt->{constraint}[$i] ); } ); } # Entry elsif ( $opt->{constraint_type} == SANE_CONSTRAINT_NONE ) { $widget = Gtk2::Entry->new; # Set the default if ( defined $val and not $opt->{cap} & SANE_CAP_INACTIVE ) { $widget->set_text($val); } $widget->{signal} = $widget->signal_connect( activate => sub { my $value = $widget->get_text; $self->set_option( $opt, $value ); } ); } } else { # $opt->{max_values} > 1 $widget = Gtk2::Button->new( $d_sane->get( $opt->{title} ) ); $widget->{signal} = $widget->signal_connect( clicked => \&multiple_values_button_callback, [ $self, $opt ] ); } $self->pack_widget( $widget, [ $options, $opt, $hbox ] ); } # Set defaults my $sane_device = Gscan2pdf::Frontend::CLI->device; # Callback for option visibility $self->signal_connect( 'changed-option-visibility' => sub { my ( $widget, $visible_options ) = @_; $self->_update_option_visibility( $options, $visible_options ); } ); $self->_update_option_visibility( $options, $self->get('visible-scan-options') ); $self->{sbutton}->set_sensitive(TRUE); $self->{sbutton}->grab_focus; return; } sub _update_option_visibility { my ( $self, $options, $visible_options ) = @_; # Show all notebook tabs for ( 1 .. $self->{notebook}->get_n_pages - 1 ) { $self->{notebook}->get_nth_page($_)->show_all; } my $num_dev_options = $options->num_options; for ( 1 .. $num_dev_options - 1 ) { my $opt = $options->{array}[$_]; my $show; if ( defined $visible_options->{ $opt->{name} } ) { $show = $visible_options->{ $opt->{name} }; } elsif ( defined $visible_options->{ $opt->{title} } ) { $show = $visible_options->{ $opt->{title} }; } my $container = $opt->{type} == SANE_TYPE_GROUP ? $opt->{widget} : $opt->{widget}->parent; my $geometry = $self->_geometry_option($opt); if ($show) { $container->show_all; # Find associated group next if ( $opt->{type} == SANE_TYPE_GROUP ); my $j = $_; while ( --$j > 0 and $options->{array}[$j]{type} != SANE_TYPE_GROUP ) { } if ( $j > 0 and not $options->{array}[$j]{widget}->visible ) { my $group = $options->{array}[$j]{widget}; if ( not $group->visible ) { $group->remove($container); my $move_paper = ( $geometry and defined( $self->{hboxp} ) and $self->{hboxp}->parent eq $group ); if ($move_paper) { $group->remove( $self->{hboxp} ) } # Find visible group $group = $self->_find_visible_group( $options, $j ); if ($move_paper) { $group->pack_start( $self->{hboxp}, FALSE, FALSE, 0 ) } $group->pack_start( $container, FALSE, FALSE, 0 ); } } } else { $container->hide_all; } } if ( defined $visible_options->{'Paper size'} ) { $self->{hboxp}->show_all; } else { $self->{hboxp}->hide_all; } return; } sub _find_visible_group { my ( $self, $options, $option_number ) = @_; while ( --$option_number > 0 and ( $options->{array}[$option_number]{type} != SANE_TYPE_GROUP or ( not $options->{array}[$option_number]{widget}->visible ) ) ) { } return $options->{array}[$option_number]{widget} if ( $option_number > 0 ); return $self->{notebook}->get_nth_page(1); } # Return true if we have a valid geometry option sub _geometry_option { my ( $self, $opt ) = @_; return ( ( $opt->{type} == SANE_TYPE_FIXED or $opt->{type} == SANE_TYPE_INT ) and ( $opt->{unit} == SANE_UNIT_MM or $opt->{unit} == SANE_UNIT_PIXEL ) and ( $opt->{name} =~ /^(?:l|t|x|y|$SANE_NAME_PAGE_HEIGHT|$SANE_NAME_PAGE_WIDTH)$/xsm ) ); } # Return true if all the geometry widgets have been created sub _geometry_widgets_created { my ($options) = @_; return ( defined( $options->{box}{x} ) and defined( $options->{box}{y} ) and defined( $options->{box}{l} ) and defined( $options->{box}{t} ) and ( not defined $options->by_name(SANE_NAME_PAGE_HEIGHT) or defined( $options->{box}{$SANE_NAME_PAGE_HEIGHT} ) ) and ( not defined $options->by_name(SANE_NAME_PAGE_WIDTH) or defined( $options->{box}{$SANE_NAME_PAGE_WIDTH} ) ) ); } sub create_paper_widget { my ( $self, $options ) = @_; # Only define the paper size once the rest of the geometry widgets # have been created if ( _geometry_widgets_created($options) and not defined( $self->{combobp} ) ) { # Paper list my $label = Gtk2::Label->new( $d->get('Paper size') ); $self->{hboxp}->pack_start( $label, FALSE, FALSE, 0 ); $self->{combobp} = Gtk2::ComboBox->new_text; $self->{combobp}->append_text( $d->get('Manual') ); $self->{combobp}->append_text( $d->get('Edit') ); $tooltips->set_tip( $self->{combobp}, $d->get('Selects or edits the paper size') ); $self->{hboxp}->pack_end( $self->{combobp}, FALSE, FALSE, 0 ); $self->{combobp}->set_active(0); $self->{combobp}->signal_connect( changed => sub { if ( $self->{combobp}->get_active_text eq $d->get('Edit') ) { $self->edit_paper; } elsif ( $self->{combobp}->get_active_text eq $d->get('Manual') ) { for ( ( 'l', 't', 'x', 'y', SANE_NAME_PAGE_HEIGHT, SANE_NAME_PAGE_WIDTH ) ) { if ( defined $options->{box}{$_} ) { $options->{box}{$_}->show_all } } } else { my $paper = $self->{combobp}->get_active_text; my $formats = $self->get('paper-formats'); if ( defined( $options->by_name(SANE_NAME_PAGE_HEIGHT) ) and defined( $options->by_name(SANE_NAME_PAGE_WIDTH) ) ) { $options->by_name(SANE_NAME_PAGE_HEIGHT)->{widget} ->set_value( $formats->{$paper}{y} + $formats->{$paper}{t} ); $options->by_name(SANE_NAME_PAGE_WIDTH)->{widget} ->set_value( $formats->{$paper}{x} + $formats->{$paper}{l} ); # Update the options and widgets, otherwise the new max will be ignored for (qw( l t x y )) { my $opt = $options->by_name($_); $opt->{constraint}{max} = $formats->{$paper}{$_}; $opt->{widget} ->set_range( $opt->{constraint}{min}, $opt->{constraint}{max} ); } } for (qw( l t x y )) { $options->by_name($_)->{widget}->set_value( $formats->{$paper}{$_} ); } Glib::Idle->add( sub { $self->hide_geometry($options) } ); # Do this last, as it fires the changed-paper signal $self->set( 'paper', $paper ); } } ); } return; } sub hide_geometry { my ( $self, $options ) = @_; for ( ( 'l', 't', 'x', 'y', SANE_NAME_PAGE_HEIGHT, SANE_NAME_PAGE_WIDTH ) ) { if ( defined $options->{box}{$_} ) { $options->{box}{$_}->hide_all; } } return; } # Update the sane option in the thread # If necessary, reload the options, # and walking the options tree, update the widgets sub set_option { my ( $self, $option, $val ) = @_; $option->{val} = $val; $self->update_widget( $option->{name}, $val ); my $current = $self->{current_scan_options}; # Cache option push @{$current}, { $option->{name} => $val }; # Note any duplicate options, keeping only the last entry. $self->{current_scan_options} = Gscan2pdf::Scanner::Options::prune_duplicates($current); # Do we need to reload? my $reload_triggers = $self->get('reload-triggers'); my $reload_flag; if ( defined $reload_triggers ) { if ( ref($reload_triggers) ne 'ARRAY' ) { $reload_triggers = [$reload_triggers]; } for ( @{$reload_triggers} ) { if ( $_ eq $option->{name} or $_ eq $option->{title} ) { $reload_flag = TRUE; last; } } } if ($reload_flag) { # Try to reload from the cache $reload_flag = FALSE; my $cache_key = $EMPTY; if ( $self->get('cache-options') ) { $cache_key = $self->cache_key(); my $cache = $self->get('options-cache'); if ( defined $cache->{ $self->get('device') }{$cache_key} ) { $reload_flag = TRUE; my $options = Gscan2pdf::Scanner::Options->new_from_data( $cache->{ $self->get('device') }{$cache_key} ); $self->signal_emit( 'fetched-options-cache', $self->get('device'), $cache_key ); $logger->info($options); if ($options) { $self->update_options( $options, $option ) } $self->signal_emit( 'finished-process', 'find_scan_options' ); # Unset the profile unless we are actively setting it if ( not $self->{setting_profile} ) { $self->set( 'profile', undef ) } $self->signal_emit( 'changed-scan-option', $option->{name}, $val ); $self->signal_emit('reloaded-scan-options'); } } # Reload from the scanner if ( not $reload_flag ) { my $pbar; my $hboxd = $self->{hboxd}; Gscan2pdf::Frontend::CLI->find_scan_options( prefix => $self->get('prefix'), frontend => $self->get('frontend'), device => $self->get('device'), options => $self->map_options($current), started_callback => sub { # Set up ProgressBar $pbar = Gtk2::ProgressBar->new; $pbar->set_pulse_step( $self->get('progress-pulse-step') ); $pbar->set_text( $d->get('Updating options') ); $hboxd->pack_start( $pbar, TRUE, TRUE, 0 ); $hboxd->hide_all; $hboxd->show; $pbar->show; }, running_callback => sub { $pbar->pulse; }, finished_callback => sub { my ($options) = @_; $pbar->destroy; $hboxd->show_all; $logger->info($options); if ( $self->get('cache-options') ) { my $cache = $self->get('options-cache'); # We only store the array part of the options object # as we have to recreate the object anyway when we retrieve it my $clone = dclone( $options->{array} ); if ( defined $cache ) { $cache->{ $self->get('device') }{$cache_key} = $clone; } else { $cache->{ $self->get('device') }{$cache_key} = $clone; $self->set( 'options-cache', $cache ); } $self->signal_emit( 'changed-options-cache', $cache ); } if ($options) { $self->update_options($options) } $self->signal_emit( 'finished-process', 'find_scan_options' ); # Unset the profile unless we are actively setting it if ( not $self->{setting_profile} ) { $self->set( 'profile', undef ) } $self->signal_emit( 'changed-scan-option', $option->{name}, $val ); $self->signal_emit('reloaded-scan-options'); }, error_callback => sub { my ($message) = @_; $self->signal_emit( 'process-error', 'find_scan_options', $message ); $pbar->destroy; $logger->warn($message); }, ); } } # Unset the profile unless we are actively setting it if ( not $self->{setting_profile} ) { $self->set( 'profile', undef ) } $self->signal_emit( 'changed-scan-option', $option->{name}, $val ); return; } sub update_widget { my ( $self, $name, $value ) = @_; my ( $group, $vbox ); my $opt = $self->get('available-scan-options')->by_name($name); my $widget = $opt->{widget}; # could be undefined for !($opt->{cap} & SANE_CAP_SOFT_DETECT) if ( defined $widget ) { $widget->signal_handler_block( $widget->{signal} ); # HBox for option my $hbox = $widget->parent; $hbox->set_sensitive( ( not $opt->{cap} & SANE_CAP_INACTIVE ) and $opt->{cap} & SANE_CAP_SOFT_SELECT ); if ( $opt->{max_values} < 2 ) { # CheckButton if ( $opt->{type} == SANE_TYPE_BOOL ) { ## no critic (ProhibitCascadingIfElse) if ( $self->value_for_active_option( $value, $opt ) ) { $widget->set_active($value); } } # SpinButton elsif ( $opt->{constraint_type} == SANE_CONSTRAINT_RANGE ) { my ( $step, $page ) = $widget->get_increments; $step = 1; if ( $opt->{constraint}{quant} ) { $step = $opt->{constraint}{quant} } $widget->set_range( $opt->{constraint}{min}, $opt->{constraint}{max} ); $widget->set_increments( $step, $page ); if ( $self->value_for_active_option( $value, $opt ) ) { $widget->set_value($value); } } # ComboBox elsif ( $opt->{constraint_type} == SANE_CONSTRAINT_STRING_LIST or $opt->{constraint_type} == SANE_CONSTRAINT_WORD_LIST ) { $widget->get_model->clear; my $index = 0; for ( 0 .. $#{ $opt->{constraint} } ) { $widget->append_text( $d_sane->get( $opt->{constraint}[$_] ) ); if ( defined $value and $opt->{constraint}[$_] eq $value ) { $index = $_ } } if ( defined $index ) { $widget->set_active($index) } } # Entry elsif ( $opt->{constraint_type} == SANE_CONSTRAINT_NONE ) { if ( $self->value_for_active_option( $value, $opt ) ) { $widget->set_text($value); } } } $widget->signal_handler_unblock( $widget->{signal} ); } return; } # If setting an option triggers a reload, we need to update the options sub update_options { my ( $self, $options, $updated_option ) = @_; # walk the widget tree and update them from the hash $logger->debug( "Sane->get_option_descriptor returned: ", Dumper($options) ); my ( $group, $vbox ); my $num_dev_options = $options->num_options; for ( 1 .. $num_dev_options - 1 ) { my $opt = $options->by_index($_); if ( defined( $opt->{name} ) and $opt->{name} ne $EMPTY ) { # If we are loading from the cache, then both the current options, # and the widgets could be different if ( defined($updated_option) and $opt->{name} ne $updated_option->{name} ) { my $old_opt = $self->get('available-scan-options')->by_name( $opt->{name} ); if ( not(( $old_opt->{cap} & SANE_CAP_INACTIVE ) or ( $opt->{cap} & SANE_CAP_INACTIVE ) ) and ( defined( $old_opt->{val} ) or defined( $opt->{val} ) ) and ( ( defined( $old_opt->{val} ) xor defined( $opt->{val} ) ) or ( $old_opt->{val} ne $opt->{val} ) ) ) { # Don't update if the old option is still available my $val = quotemeta( $old_opt->{val} ); # quote any possible metacharacters if ( not( ( $opt->{constraint_type} == SANE_CONSTRAINT_STRING_LIST or $opt->{constraint_type} == SANE_CONSTRAINT_WORD_LIST ) and any { /^$val$/xsm } @{ $opt->{constraint} } ) ) { $self->set_option( $old_opt, $opt->{val} ); } } } else { $self->update_widget( $opt->{name}, $opt->{val} ); } } } return; } # Set options to profile referenced by hashref sub set_current_scan_options { my ( $self, $profile ) = @_; if ( not defined($profile) ) { return } # As scanimage and scanadf rename the geometry options, # we have to map them back to the original names $self->map_geometry_names($profile); # Move them first to a dummy array, as otherwise it would be self-modifying my $defaults; # Config::General flattens arrays with 1 entry to scalars, # so we must check for this if ( ref($profile) ne 'ARRAY' ) { push @{$defaults}, $profile; } else { @{$defaults} = @{$profile}; } # Give the GUI a chance to catch up between settings, # in case they have to be reloaded. # Use the 'changed-scan-option' signal to trigger the next loop my $i = 0; my ( $changed_scan_signal, $changed_paper_signal ); $changed_scan_signal = $self->signal_connect( 'changed-scan-option' => sub { my ( $widget, $name, $val ) = @_; # for reasons I don't understand, without walking the reference tree, # parts of $default are undef Gscan2pdf::Dialog::Scan::my_dumper($defaults); my ( $ename, $eval ) = each( %{ $defaults->[$i] } ); # don't check $eval against $val, just in case they are different if ( $ename eq $name ) { $i++; $i = $self->set_option_emit_signal( $i, $defaults, $changed_scan_signal, $changed_paper_signal ); } } ); $changed_paper_signal = $self->signal_connect( 'changed-paper' => sub { my ( $widget, $val ) = @_; # for reasons I don't understand, without walking the reference tree, # parts of $default are undef Gscan2pdf::Dialog::Scan::my_dumper($defaults); my ( $ename, $eval ) = each( %{ $defaults->[$i] } ); if ( $eval eq $val ) { $i++; $i = $self->set_option_emit_signal( $i, $defaults, $changed_scan_signal, $changed_paper_signal ); } } ); $i = $self->set_option_emit_signal( $i, $defaults, $changed_scan_signal, $changed_paper_signal ); return; } # Set option widget sub set_option_widget { my ( $self, $i, $profile ) = @_; while ( $i < @{$profile} ) { # for reasons I don't understand, without walking the reference tree, # parts of $profile are undef Gscan2pdf::Dialog::Scan::my_dumper( $profile->[$i] ); my ( $name, $val ) = each( %{ $profile->[$i] } ); if ( $name eq 'Paper size' ) { $self->set( 'paper', $val ); return $self->set_option_widget( $i + 1, $profile ); } my $options = $self->get('available-scan-options'); my $opt = $options->by_name($name); my $widget = $opt->{widget}; # If the option is inactive, then remove it from the profile if ( $opt->{cap} & SANE_CAP_INACTIVE ) { splice @{$profile}, $i, 1; $self->{current_scan_options} = $profile; return $i; } elsif ( ref($val) eq 'ARRAY' ) { $self->set_option( $opt, $val ); # when INFO_INEXACT is implemented, so that the value is reloaded, # check for it here, so that the reloaded value is not overwritten. $opt->{val} = $val; } else { given ($widget) { when ( $widget->isa('Gtk2::CheckButton') ) { if ( $val eq $EMPTY ) { $val = SANE_FALSE } if ( $widget->get_active != $val ) { $widget->set_active($val); return $i; } } when ( $widget->isa('Gtk2::SpinButton') ) { if ( $widget->get_value != $val ) { $widget->set_value($val); return $i; } } when ( $widget->isa('Gtk2::ComboBox') ) { if ( $opt->{constraint}[ $widget->get_active ] ne $val ) { my $index; for ( 0 .. $#{ $opt->{constraint} } ) { if ( $opt->{constraint}[$_] eq $val ) { $index = $_ } } if ( defined $index ) { $widget->set_active($index) } return $i; } } when ( $widget->isa('Gtk2::Entry') ) { if ( $widget->get_text ne $val ) { $widget->set_text($val); return $i; } } } } ++$i; } return; } # As scanimage and scanadf rename the geometry options, # we have to map them back to the original names sub map_geometry_names { my ( $self, $profile ) = @_; for my $i ( 0 .. $#{$profile} ) { # for reasons I don't understand, without walking the reference tree, # parts of $profile are undef Gscan2pdf::Dialog::Scan::my_dumper($profile); my ( $name, $val ) = each %{ $profile->[$i] }; given ($name) { when (SANE_NAME_SCAN_TL_X) { $name = 'l'; $profile->[$i] = { $name => $val }; } when (SANE_NAME_SCAN_TL_Y) { $name = 't'; $profile->[$i] = { $name => $val }; } when (SANE_NAME_SCAN_BR_X) { $name = 'x'; my $l = $self->get_option_from_profile( 'l', $profile ); if ( not defined($l) ) { $l = $self->get_option_from_profile( SANE_NAME_SCAN_TL_X, $profile ); } if ( defined $l ) { $val -= $l } $profile->[$i] = { $name => $val }; } when (SANE_NAME_SCAN_BR_Y) { $name = 'y'; my $t = $self->get_option_from_profile( 't', $profile ); if ( not defined($t) ) { $t = $self->get_option_from_profile( SANE_NAME_SCAN_TL_Y, $profile ); } if ( defined $t ) { $val -= $t } $profile->[$i] = { $name => $val }; } } } return; } # Remove paper size from options, # change boolean values from TRUE and FALSE to yes and no sub map_options { my ( $self, $old ) = @_; my $new; my $options = $self->get('available-scan-options'); for ( @{$old} ) { # for reasons I don't understand, without walking the reference tree, # parts of $_ are undef Gscan2pdf::Dialog::Scan::my_dumper($_); my ( $key, $val ) = each( %{$_} ); if ( $key ne 'Paper size' ) { my $opt = $options->by_name($key); if ( defined( $opt->{type} ) and $opt->{type} == SANE_TYPE_BOOL ) { $val = $val ? 'yes' : 'no'; } push @{$new}, { $key => $val }; } } return $new; } sub scan { my ($self) = @_; # Get selected number of pages my $npages = $self->get('num-pages'); my $start = $self->get('page-number-start'); my $step = $self->get('page-number-increment'); if ( $npages > 0 and $step < 0 ) { $npages = $self->get('max-pages') } if ( $start == 1 and $step < 0 ) { $self->signal_emit( 'process-error', 'scan', $d->get('Must scan facing pages first') ); return TRUE; } # As scanimage and scanadf rename the geometry options, # we have to map them back to the original names my $options = $self->{current_scan_options}; $self->map_geometry_names($options); my $i = 1; Gscan2pdf::Frontend::CLI->scan_pages( device => $self->get('device'), dir => $self->get('dir'), format => "out%d.pnm", options => $self->map_options($options), npages => $npages, start => $start, step => $step, started_callback => sub { $self->signal_emit( 'started-process', Gscan2pdf::Dialog::Scan::make_progress_string( $i, $npages ) ); }, running_callback => sub { my ($progress) = @_; $self->signal_emit( 'changed-progress', $progress, undef ); }, finished_callback => sub { $self->signal_emit( 'finished-process', 'scan_pages' ); }, new_page_callback => sub { my ($n) = @_; $self->signal_emit( 'new-scan', $n ); $self->signal_emit( 'changed-progress', 0, Gscan2pdf::Dialog::Scan::make_progress_string( ++$i, $npages ) ); }, error_callback => sub { my ($msg) = @_; $self->signal_emit( 'process-error', 'scan_pages', $msg ); } ); return; } sub cancel_scan { Gscan2pdf::Frontend::CLI->cancel_scan; $logger->info("Cancelled scan"); return; } 1; __END__ gscan2pdf-1.2.3/lib/Gscan2pdf/Dialog/Scan/Sane.pm0000644000175000017500000005431012270574026017666 0ustar jeffjeffpackage Gscan2pdf::Dialog::Scan::Sane; use warnings; use strict; use Gscan2pdf::Dialog::Scan; use Glib qw(TRUE FALSE); # To get TRUE and FALSE use Sane 0.05; # To get SANE_NAME_PAGE_WIDTH & SANE_NAME_PAGE_HEIGHT use Gscan2pdf::Frontend::Sane; use Locale::gettext 1.05; # For translations use feature "switch"; # logger duplicated from Gscan2pdf::Dialog::Scan # to ensure that SET_PROPERTIES gets called in both places use Glib::Object::Subclass Gscan2pdf::Dialog::Scan::, properties => [ Glib::ParamSpec->scalar( 'logger', # name 'Logger', # nick 'Log::Log4perl::get_logger object', # blurb [qw/readable writable/] # flags ), ]; our $VERSION = '1.2.3'; my $SANE_NAME_SCAN_TL_X = SANE_NAME_SCAN_TL_X; my $SANE_NAME_SCAN_TL_Y = SANE_NAME_SCAN_TL_Y; my $SANE_NAME_SCAN_BR_X = SANE_NAME_SCAN_BR_X; my $SANE_NAME_SCAN_BR_Y = SANE_NAME_SCAN_BR_Y; my $SANE_NAME_PAGE_HEIGHT = SANE_NAME_PAGE_HEIGHT; my $SANE_NAME_PAGE_WIDTH = SANE_NAME_PAGE_WIDTH; my ( $d, $d_sane, $logger, $tooltips ); sub INIT_INSTANCE { my $self = shift; $tooltips = Gtk2::Tooltips->new; $tooltips->enable; $d = Locale::gettext->domain(Glib::get_application_name); $d_sane = Locale::gettext->domain('sane-backends'); return $self; } sub SET_PROPERTY { my ( $self, $pspec, $newval ) = @_; my $name = $pspec->get_name; my $oldval = $self->get($name); $self->{$name} = $newval; if (( defined($newval) and defined($oldval) and $newval ne $oldval ) or ( defined($newval) xor defined($oldval) ) ) { if ( $name eq 'logger' ) { $logger = $newval; $logger->debug('Set logger in Gscan2pdf::Dialog::Scan::Sane'); } } $self->SUPER::SET_PROPERTY( $pspec, $newval ); return; } # Run Sane->get_devices sub get_devices { my ($self) = @_; my $pbar; my $hboxd = $self->{hboxd}; Gscan2pdf::Frontend::Sane->get_devices( sub { # Set up ProgressBar $pbar = Gtk2::ProgressBar->new; $pbar->set_pulse_step( $self->get('progress-pulse-step') ); $pbar->set_text( $d->get('Fetching list of devices') ); $hboxd->pack_start( $pbar, TRUE, TRUE, 0 ); $hboxd->hide_all; $hboxd->show; $pbar->show; }, sub { $pbar->pulse; }, sub { my ($data) = @_; $pbar->destroy; my @device_list = @{$data}; use Data::Dumper; $logger->info( "Sane->get_devices returned: ", Dumper( \@device_list ) ); if ( @device_list == 0 ) { $self->signal_emit( 'process-error', 'get_devices', $d->get('No devices found') ); $self->destroy; undef $self; return FALSE; } $self->set( 'device-list', \@device_list ); $hboxd->show_all; } ); return; } # Scan device-dependent scan options sub scan_options { my ($self) = @_; # Remove any existing pages while ( $self->{notebook}->get_n_pages > 1 ) { # -1 = last page $self->{notebook}->remove_page(-1); ## no critic (ProhibitMagicNumbers) } # Ghost the scan button whilst options being updated if ( defined $self->{sbutton} ) { $self->{sbutton}->set_sensitive(FALSE) } my $signal; Gscan2pdf::Frontend::Sane->open_device( device_name => $self->get('device'), started_callback => sub { $self->signal_emit( 'started-process', $d->get('Opening device') ); }, running_callback => sub { $self->signal_emit( 'changed-progress', undef, undef ); }, finished_callback => sub { $self->signal_emit( 'finished-process', 'open_device' ); Gscan2pdf::Frontend::Sane->find_scan_options( sub { # started callback $self->signal_emit( 'started-process', $d->get('Retrieving options') ); }, sub { # running callback $self->signal_emit( 'changed-progress', undef, undef ); }, sub { # finished callback my ($data) = @_; my $options = Gscan2pdf::Scanner::Options->new_from_data($data); $self->_initialise_options($options); $self->signal_emit( 'finished-process', 'find_scan_options' ); # This fires the reloaded-scan-options signal, # so don't set this until we have finished $self->set( 'available-scan-options', $options ); }, sub { # error callback my ($message) = @_; $self->signal_emit( 'process-error', 'find_scan_options', $d->get( 'Error retrieving scanner options: ' . $message ) ); $self->destroy; } ); }, error_callback => sub { my ($message) = @_; $self->signal_emit( 'process-error', 'open_device', $d->get( 'Error opening device: ' . $message ) ); $self->destroy; } ); return; } sub _initialise_options { ## no critic (ProhibitExcessComplexity) my ( $self, $options ) = @_; $logger->debug( "Sane->get_option_descriptor returned: ", Dumper($options) ); my ( $group, $vbox, $hboxp ); my $num_dev_options = $options->num_options; # We have hereby removed the active profile and paper, # so update the properties without triggering the signals $self->{profile} = undef; $self->{paper_formats} = undef; $self->{paper} = undef; delete $self->{combobp}; # So we don't carry over from one device to another for ( 1 .. $num_dev_options - 1 ) { my $opt = $options->by_index($_); # Notebook page for group if ( $opt->{type} == SANE_TYPE_GROUP or not defined($vbox) ) { $vbox = Gtk2::VBox->new; $group = $opt->{type} == SANE_TYPE_GROUP ? $d_sane->get( $opt->{title} ) : $d->get('Scan Options'); $self->{notebook}->append_page( $vbox, $group ); next; } if ( not( $opt->{cap} & SANE_CAP_SOFT_DETECT ) ) { next } # Widget my ( $widget, $val ); $val = $opt->{val}; # Define HBox for paper size here # so that it can be put before first geometry option if ( $self->_geometry_option($opt) and not defined($hboxp) ) { $hboxp = Gtk2::HBox->new; $vbox->pack_start( $hboxp, FALSE, FALSE, 0 ); } # HBox for option my $hbox = Gtk2::HBox->new; $vbox->pack_start( $hbox, FALSE, TRUE, 0 ); if ( $opt->{cap} & SANE_CAP_INACTIVE or not $opt->{cap} & SANE_CAP_SOFT_SELECT ) { $hbox->set_sensitive(FALSE); } if ( $opt->{max_values} < 2 ) { # Label if ( $opt->{type} != SANE_TYPE_BUTTON ) { my $label = Gtk2::Label->new( $d_sane->get( $opt->{title} ) ); $hbox->pack_start( $label, FALSE, FALSE, 0 ); } # CheckButton if ( $opt->{type} == SANE_TYPE_BOOL ) { ## no critic (ProhibitCascadingIfElse) $widget = Gtk2::CheckButton->new; if ($val) { $widget->set_active(TRUE) } $widget->{signal} = $widget->signal_connect( toggled => sub { my $value = $widget->get_active; $self->set_option( $opt, $value ); } ); } # Button elsif ( $opt->{type} == SANE_TYPE_BUTTON ) { $widget = Gtk2::Button->new( $d_sane->get( $opt->{title} ) ); $widget->{signal} = $widget->signal_connect( clicked => sub { $self->set_option( $opt, $val ); } ); } # SpinButton elsif ( $opt->{constraint_type} == SANE_CONSTRAINT_RANGE ) { my $step = 1; if ( $opt->{constraint}{quant} ) { $step = $opt->{constraint}{quant} } $widget = Gtk2::SpinButton->new_with_range( $opt->{constraint}{min}, $opt->{constraint}{max}, $step ); # Set the default if ( defined $val and not $opt->{cap} & SANE_CAP_INACTIVE ) { $widget->set_value($val); } $widget->{signal} = $widget->signal_connect( 'value-changed' => sub { my $value = $widget->get_value; $self->set_option( $opt, $value ); } ); } # ComboBox elsif ( $opt->{constraint_type} == SANE_CONSTRAINT_STRING_LIST or $opt->{constraint_type} == SANE_CONSTRAINT_WORD_LIST ) { $widget = Gtk2::ComboBox->new_text; my $index = 0; for ( 0 .. $#{ $opt->{constraint} } ) { $widget->append_text( $d_sane->get( $opt->{constraint}[$_] ) ); if ( defined $val and $opt->{constraint}[$_] eq $val ) { $index = $_ } } # Set the default if ( defined $index ) { $widget->set_active($index) } $widget->{signal} = $widget->signal_connect( changed => sub { my $i = $widget->get_active; $self->set_option( $opt, $opt->{constraint}[$i] ); } ); } # Entry elsif ( $opt->{constraint_type} == SANE_CONSTRAINT_NONE ) { $widget = Gtk2::Entry->new; # Set the default if ( defined $val and not $opt->{cap} & SANE_CAP_INACTIVE ) { $widget->set_text($val); } $widget->{signal} = $widget->signal_connect( activate => sub { my $value = $widget->get_text; $self->set_option( $opt, $value ); } ); } } else { # $opt->{max_values} > 1 $widget = Gtk2::Button->new( $d_sane->get( $opt->{title} ) ); $widget->{signal} = $widget->signal_connect( clicked => \&multiple_values_button_callback, [ $self, $opt ] ); } $self->pack_widget( $widget, [ $options, $opt, $hbox, $hboxp ] ); } # Set defaults my $sane_device = Gscan2pdf::Frontend::Sane->device(); # Show new pages for ( 1 .. $self->{notebook}->get_n_pages - 1 ) { $self->{notebook}->get_nth_page($_)->show_all; } $self->{sbutton}->set_sensitive(TRUE); $self->{sbutton}->grab_focus; return; } # Return true if we have a valid geometry option sub _geometry_option { my ( $self, $opt ) = @_; return ( ( $opt->{type} == SANE_TYPE_FIXED or $opt->{type} == SANE_TYPE_INT ) and ( $opt->{unit} == SANE_UNIT_MM or $opt->{unit} == SANE_UNIT_PIXEL ) and ( $opt->{name} =~ /^(?:$SANE_NAME_SCAN_TL_X|$SANE_NAME_SCAN_TL_Y|$SANE_NAME_SCAN_BR_X|$SANE_NAME_SCAN_BR_Y|$SANE_NAME_PAGE_HEIGHT|$SANE_NAME_PAGE_WIDTH)$/xms ) ); } sub create_paper_widget { my ( $self, $options, $hboxp ) = @_; # Only define the paper size once the rest of the geometry widgets # have been created if ( defined( $options->{box}{$SANE_NAME_SCAN_BR_X} ) and defined( $options->{box}{$SANE_NAME_SCAN_BR_Y} ) and defined( $options->{box}{$SANE_NAME_SCAN_TL_X} ) and defined( $options->{box}{$SANE_NAME_SCAN_TL_Y} ) and ( not defined $options->by_name(SANE_NAME_PAGE_HEIGHT) or defined( $options->{box}{$SANE_NAME_PAGE_HEIGHT} ) ) and ( not defined $options->by_name(SANE_NAME_PAGE_WIDTH) or defined( $options->{box}{$SANE_NAME_PAGE_WIDTH} ) ) and not defined( $self->{combobp} ) ) { # Paper list my $label = Gtk2::Label->new( $d->get('Paper size') ); $hboxp->pack_start( $label, FALSE, FALSE, 0 ); $self->{combobp} = Gtk2::ComboBox->new_text; $self->{combobp}->append_text( $d->get('Manual') ); $self->{combobp}->append_text( $d->get('Edit') ); $tooltips->set_tip( $self->{combobp}, $d->get('Selects or edits the paper size') ); $hboxp->pack_end( $self->{combobp}, FALSE, FALSE, 0 ); $self->{combobp}->set_active(0); $self->{combobp}->signal_connect( changed => sub { if ( $self->{combobp}->get_active_text eq $d->get('Edit') ) { $self->edit_paper; } elsif ( $self->{combobp}->get_active_text eq $d->get('Manual') ) { for ( ( SANE_NAME_SCAN_TL_X, SANE_NAME_SCAN_TL_Y, SANE_NAME_SCAN_BR_X, SANE_NAME_SCAN_BR_Y, SANE_NAME_PAGE_HEIGHT, SANE_NAME_PAGE_WIDTH ) ) { if ( defined $options->{box}{$_} ) { $options->{box}{$_}->show_all; } } } else { my $paper = $self->{combobp}->get_active_text; my $formats = $self->get('paper-formats'); if ( defined( $options->by_name(SANE_NAME_PAGE_HEIGHT) ) and defined( $options->by_name(SANE_NAME_PAGE_WIDTH) ) ) { $options->by_name(SANE_NAME_PAGE_HEIGHT)->{widget} ->set_value( $formats->{$paper}{y} + $formats->{$paper}{t} ); $options->by_name(SANE_NAME_PAGE_WIDTH)->{widget} ->set_value( $formats->{$paper}{x} + $formats->{$paper}{l} ); } $options->by_name(SANE_NAME_SCAN_TL_X)->{widget} ->set_value( $formats->{$paper}{l} ); $options->by_name(SANE_NAME_SCAN_TL_Y)->{widget} ->set_value( $formats->{$paper}{t} ); $options->by_name(SANE_NAME_SCAN_BR_X)->{widget} ->set_value( $formats->{$paper}{x} + $formats->{$paper}{l} ); $options->by_name(SANE_NAME_SCAN_BR_Y)->{widget} ->set_value( $formats->{$paper}{y} + $formats->{$paper}{t} ); Glib::Idle->add( sub { $self->hide_geometry($options) } ); # Do this last, as it fires the changed-paper signal $self->set( 'paper', $paper ); } } ); } return; } sub hide_geometry { my ( $self, $options ) = @_; for ( ( SANE_NAME_SCAN_TL_X, SANE_NAME_SCAN_TL_Y, SANE_NAME_SCAN_BR_X, SANE_NAME_SCAN_BR_Y, SANE_NAME_PAGE_HEIGHT, SANE_NAME_PAGE_WIDTH ) ) { if ( defined $options->{box}{$_} ) { $options->{box}{$_}->hide_all; } } return; } # Update the sane option in the thread # If necessary, reload the options, # and walking the options tree, update the widgets sub set_option { my ( $self, $option, $val ) = @_; my $current = $self->{current_scan_options}; # Cache option push @{$current}, { $option->{name} => $val }; # Note any duplicate options, keeping only the last entry. $self->{current_scan_options} = Gscan2pdf::Scanner::Options::prune_duplicates($current); my $signal; my $options = $self->get('available-scan-options'); Gscan2pdf::Frontend::Sane->set_option( index => $option->{index}, value => $val, started_callback => sub { $self->signal_emit( 'started-process', sprintf $d->get('Setting option %s'), $option->{name} ); }, running_callback => sub { $self->signal_emit( 'changed-progress', undef, undef ); }, finished_callback => sub { my ($data) = @_; if ($data) { $self->update_options( Gscan2pdf::Scanner::Options->new_from_data($data) ); } # We can carry on applying defaults now, if necessary. $self->signal_emit( 'finished-process', 'set_option' ); # Unset the profile unless we are actively setting it if ( not $self->{setting_profile} ) { $self->set( 'profile', undef ); } $self->signal_emit( 'changed-scan-option', $option->{name}, $val ); # $self->signal_emit( 'changed-current-scan-options', # $self->get('current-scan-options') ); } ); return; } # If setting an option triggers a reload, we need to update the options sub update_options { my ( $self, $new_options ) = @_; # walk the widget tree and update them from the hash $logger->debug( "Sane->get_option_descriptor returned: ", Dumper($new_options) ); my ( $group, $vbox ); my $num_dev_options = $new_options->num_options; my $options = $self->get('available-scan-options'); for ( 1 .. $num_dev_options - 1 ) { my $widget = $options->by_index($_)->{widget}; # could be undefined for !($new_opt->{cap} & SANE_CAP_SOFT_DETECT) if ( not defined($widget) ) { next; } my $new_opt = $new_options->by_index($_); my $opt = $options->by_index($_); if ( $new_opt->{name} ne $opt->{name} ) { $logger->error( 'Error updating options: reloaded options are numbered differently'); return; } # We've got to block the signal handler for the widget to prevent infinite # loops of the widget updating the option, updating the widget, etc., but # therefore we must update the options manually for (qw(val cap max_values type constraint_type constraint)) { $opt->{$_} = $new_opt->{$_}; } $widget->signal_handler_block( $widget->{signal} ); my $value = $opt->{val}; # HBox for option my $hbox = $widget->parent; $hbox->set_sensitive( ( not $opt->{cap} & SANE_CAP_INACTIVE ) and $opt->{cap} & SANE_CAP_SOFT_SELECT ); if ( $opt->{max_values} < 2 ) { # CheckButton if ( $opt->{type} == SANE_TYPE_BOOL ) { ## no critic (ProhibitCascadingIfElse) if ( $self->value_for_active_option( $value, $opt ) ) { $widget->set_active($value); } } # SpinButton elsif ( $opt->{constraint_type} == SANE_CONSTRAINT_RANGE ) { my ( $step, $page ) = $widget->get_increments; $step = 1; if ( $opt->{constraint}{quant} ) { $step = $opt->{constraint}{quant} } $widget->set_range( $opt->{constraint}{min}, $opt->{constraint}{max} ); $widget->set_increments( $step, $page ); if ( $self->value_for_active_option( $value, $opt ) ) { $widget->set_value($value); } } # ComboBox elsif ( $opt->{constraint_type} == SANE_CONSTRAINT_STRING_LIST or $opt->{constraint_type} == SANE_CONSTRAINT_WORD_LIST ) { $widget->get_model->clear; my $index = 0; for ( 0 .. $#{ $opt->{constraint} } ) { $widget->append_text( $d_sane->get( $opt->{constraint}[$_] ) ); if ( defined $value and $opt->{constraint}[$_] eq $value ) { $index = $_ } } if ( defined $index ) { $widget->set_active($index) } } # Entry elsif ( $opt->{constraint_type} == SANE_CONSTRAINT_NONE ) { if ( $self->value_for_active_option( $value, $opt ) ) { $widget->set_text($value); } } } $widget->signal_handler_unblock( $widget->{signal} ); } return; } # Set options to profile referenced by hashref sub set_current_scan_options { my ( $self, $profile ) = @_; if ( not defined($profile) ) { return } # Move them first to a dummy array, as otherwise it would be self-modifying my $defaults; # Config::General flattens arrays with 1 entry to scalars, # so we must check for this if ( ref($profile) ne 'ARRAY' ) { push @{$defaults}, $profile; } else { @{$defaults} = @{$profile}; } # Give the GUI a chance to catch up between settings, # in case they have to be reloaded. # Use the 'changed-scan-option' signal to trigger the next loop my $i = 0; my ( $changed_scan_signal, $changed_paper_signal ); $changed_scan_signal = $self->signal_connect( 'changed-scan-option' => sub { my ( $widget, $name, $val ) = @_; # for reasons I don't understand, without walking the reference tree, # parts of $default are undef Gscan2pdf::Dialog::Scan::my_dumper($defaults); my ( $ename, $eval ) = each( %{ $defaults->[$i] } ); # don't check $eval against $val, just in case they are different if ( $ename eq $name ) { $i++; $i = $self->set_option_emit_signal( $i, $defaults, $changed_scan_signal, $changed_paper_signal ); } } ); $changed_paper_signal = $self->signal_connect( 'changed-paper' => sub { my ( $widget, $val ) = @_; # for reasons I don't understand, without walking the reference tree, # parts of $default are undef Gscan2pdf::Dialog::Scan::my_dumper($defaults); my ( $ename, $eval ) = each( %{ $defaults->[$i] } ); if ( $eval eq $val ) { $i++; $i = $self->set_option_emit_signal( $i, $defaults, $changed_scan_signal, $changed_paper_signal ); } } ); $i = $self->set_option_emit_signal( $i, $defaults, $changed_scan_signal, $changed_paper_signal ); return; } # Set option widget sub set_option_widget { my ( $self, $i, $profile ) = @_; while ( $i < @{$profile} ) { # for reasons I don't understand, without walking the reference tree, # parts of $profile are undef Gscan2pdf::Dialog::Scan::my_dumper( $profile->[$i] ); my ( $name, $val ) = each( %{ $profile->[$i] } ); if ( $name eq 'Paper size' ) { $self->set( 'paper', $val ); return $self->set_option_widget( $i + 1, $profile ); } # As scanimage and scanadf rename the geometry options, # we have to map them back to the original names given ($name) { when ('l') { $name = SANE_NAME_SCAN_TL_X; $profile->[$i] = { $name => $val }; } when ('t') { $name = SANE_NAME_SCAN_TL_Y; $profile->[$i] = { $name => $val }; } when ('x') { $name = SANE_NAME_SCAN_BR_X; my $l = $self->get_option_from_profile( 'l', $profile ); if ( not defined($l) ) { $l = $self->get_option_from_profile( SANE_NAME_SCAN_TL_X, $profile ); } if ( defined $l ) { $val += $l; } $profile->[$i] = { $name => $val }; } when ('y') { $name = SANE_NAME_SCAN_BR_Y; my $t = $self->get_option_from_profile( 't', $profile ); if ( not defined($t) ) { $t = $self->get_option_from_profile( SANE_NAME_SCAN_TL_Y, $profile ); } if ( defined $t ) { $val += $t; } $profile->[$i] = { $name => $val }; } } my $options = $self->get('available-scan-options'); my $opt = $options->by_name($name); my $widget = $opt->{widget}; if ( ref($val) eq 'ARRAY' ) { $self->set_option( $opt, $val ); # when INFO_INEXACT is implemented, so that the value is reloaded, # check for it here, so that the reloaded value is not overwritten. $opt->{val} = $val; } else { given ($widget) { when ( $widget->isa('Gtk2::CheckButton') ) { if ( $widget->get_active != $val ) { $widget->set_active($val); return $i; } } when ( $widget->isa('Gtk2::SpinButton') ) { if ( $widget->get_value != $val ) { $widget->set_value($val); return $i; } } when ( $widget->isa('Gtk2::ComboBox') ) { if ( $opt->{constraint}[ $widget->get_active ] ne $val ) { my $index; for ( 0 .. $#{ $opt->{constraint} } ) { if ( $opt->{constraint}[$_] eq $val ) { $index = $_ } } if ( defined $index ) { $widget->set_active($index) } return $i; } } when ( $widget->isa('Gtk2::Entry') ) { if ( $widget->get_text ne $val ) { $widget->set_text($val); return $i; } } } } ++$i; } return; } sub scan { my ($self) = @_; # Get selected number of pages my $npages = $self->get('num-pages'); my $start = $self->get('page-number-start'); my $step = $self->get('page-number-increment'); if ( $npages > 0 and $step < 0 ) { $npages = $self->get('max-pages') } if ( $start == 1 and $step < 0 ) { $self->signal_emit( 'process-error', 'scan', $d->get('Must scan facing pages first') ); return TRUE; } my $i = 1; Gscan2pdf::Frontend::Sane->scan_pages( dir => $self->get('dir'), format => "out%d.pnm", npages => $npages, start => $start, step => $step, started_callback => sub { $self->signal_emit( 'started-process', Gscan2pdf::Dialog::Scan::make_progress_string( $i, $npages ) ); }, running_callback => sub { my ($progress) = @_; $self->signal_emit( 'changed-progress', $progress, undef ); }, finished_callback => sub { $self->signal_emit( 'finished-process', 'scan_pages' ); }, new_page_callback => sub { my ($n) = @_; $self->signal_emit( 'new-scan', $n ); $self->signal_emit( 'changed-progress', 0, Gscan2pdf::Dialog::Scan::make_progress_string( ++$i, $npages ) ); }, error_callback => sub { my ($msg) = @_; $self->signal_emit( 'process-error', 'scan_pages', $msg ); } ); return; } sub cancel_scan { Gscan2pdf::Frontend::Sane->cancel_scan; $logger->info("Cancelled scan"); return; } 1; __END__ gscan2pdf-1.2.3/lib/Gscan2pdf/Ocropus.pm0000644000175000017500000000421112270574026016342 0ustar jeffjeffpackage Gscan2pdf::Ocropus; use 5.008005; use strict; use warnings; use Carp; use File::Temp; # To create temporary files use File::Basename; use HTML::Entities; use Encode; use English qw( -no_match_vars ); # for $PROCESS_ID our $VERSION = '1.2.3'; my ( $exe, $installed, $setup, $logger ); sub setup { ( my $class, $logger ) = @_; return $installed if $setup; if ( system("which ocroscript > /dev/null 2> /dev/null") == 0 ) { my $env = $ENV{OCROSCRIPTS}; if ( not defined($env) ) { for (qw(/usr /usr/local)) { if ( -d "$_/share/ocropus/scripts" ) { $env = "$_/share/ocropus/scripts" } } } if ( defined $env ) { my $script; if ( -f "$env/recognize.lua" ) { $script = 'recognize'; } elsif ( -f "$env/rec-tess.lua" ) { $script = 'rec-tess'; } if ( defined $script ) { $exe = "ocroscript $script"; $installed = 1; $logger->info("Using ocroscript with $script."); } else { $logger->warn("Found ocroscript, but no recognition scripts. Disabling."); } } else { $logger->warn("Found ocroscript, but not its scripts. Disabling."); } } $setup = 1; return $installed; } sub hocr { my ( $class, $file, $language, $loggr, $pidfile ) = @_; my ( $png, $cmd ); if ( not $setup ) { Gscan2pdf::Ocropus->setup($loggr) } if ( $file !~ /\.(?:png|jpg|pnm)$/xsm ) { # Temporary filename for new file $png = File::Temp->new( SUFFIX => '.png' ); my $image = Image::Magick->new; $image->Read($file); $image->Write( filename => $png ); } else { $png = $file; } if ($language) { $cmd = "tesslanguage=$language $exe $png"; } else { $cmd = "$exe $png"; } $logger->info($cmd); # decode html->utf8 my $output; if ( defined $pidfile ) { ( $output, undef ) = Gscan2pdf::Document::open_three("echo $PROCESS_ID > $pidfile;$cmd"); } else { ( $output, undef ) = Gscan2pdf::Document::open_three($cmd); } my $decoded = decode_entities($output); # Unfortunately, there seems to be a case (tested in t/31_ocropus_utf8.t) # where decode_entities doesn't work cleanly, so encode/decode to finally # get good UTF-8 return decode_utf8( encode_utf8($decoded) ); } 1; __END__ gscan2pdf-1.2.3/lib/Gscan2pdf/Page.pm0000644000175000017500000001631412270574026015573 0ustar jeffjeffpackage Gscan2pdf::Page; use 5.008005; use strict; use warnings; use Carp; use Glib qw(TRUE FALSE); # To get TRUE and FALSE use File::Copy; use File::Temp; # To create temporary files use HTML::TokeParser; use HTML::Entities; use Image::Magick; use Encode; use Locale::gettext 1.05; # For translations use POSIX qw(locale_h); use English qw( -no_match_vars ); # for $ERRNO use Readonly; Readonly my $CM_PER_INCH => 2.54; Readonly my $MM_PER_CM => 10; Readonly my $MM_PER_INCH => $CM_PER_INCH * $MM_PER_CM; Readonly my $PAGE_TOLERANCE => 0.02; BEGIN { use Exporter (); our ( $VERSION, @EXPORT_OK, %EXPORT_TAGS ); $VERSION = '1.2.3'; use base qw(Exporter); %EXPORT_TAGS = (); # eg: TAG => [ qw!name1 name2! ], # your exported package globals go here, # as well as any optionally exported functions @EXPORT_OK = qw(); } our @EXPORT_OK; my ( $d, $logger ); sub new { my ( $class, %options ) = @_; my $self = {}; if ( not defined($d) ) { $d = Locale::gettext->domain(Glib::get_application_name); } if ( not defined( $options{filename} ) ) { croak "Error: filename not supplied"; } if ( not -f $options{filename} ) { croak "Error: filename not found" } if ( not defined( $options{format} ) ) { croak "Error: format not supplied" } $logger->info("New page filename $options{filename}, format $options{format}"); for ( keys %options ) { $self->{$_} = $options{$_}; } # copy or move image to session directory my %suffix = ( 'Portable Network Graphics' => '.png', 'Joint Photographic Experts Group JFIF format' => '.jpg', 'Tagged Image File Format' => '.tif', 'Portable anymap' => '.pnm', 'Portable pixmap format (color)' => '.ppm', 'Portable graymap format (gray scale)' => '.pgm', 'Portable bitmap format (black and white)' => '.pbm', 'CompuServe graphics interchange format' => '.gif', ); $self->{filename} = File::Temp->new( DIR => $options{dir}, SUFFIX => $suffix{ $options{format} }, UNLINK => FALSE, ); if ( defined( $options{delete} ) and $options{delete} ) { move( $options{filename}, $self->{filename} ) or croak sprintf( $d->get('Error importing image %s: %s'), $options{filename}, $ERRNO ); } else { copy( $options{filename}, $self->{filename} ) or croak sprintf( $d->get('Error importing image %s: %s'), $options{filename}, $ERRNO ); } bless( $self, $class ); return $self; } sub set_logger { ( my $class, $logger ) = @_; return; } sub clone { my ($self) = @_; my $new = {}; for ( keys %{$self} ) { $new->{$_} = $self->{$_}; } bless( $new, ref($self) ); return $new; } # cloning File::Temp objects causes problems sub freeze { my ($self) = @_; my $new = $self->clone; if ( ref( $new->{filename} ) eq 'File::Temp' ) { $new->{filename} = $self->{filename}->filename; } if ( ref( $new->{dir} ) eq 'File::Temp::Dir' ) { $new->{dir} = $self->{dir}->dirname; } return $new; } sub thaw { my ($self) = @_; my $new = $self->clone; my $suffix; if ( $new->{filename} =~ /\.(\w*)$/xsm ) { $suffix = $1; } my $filename = File::Temp->new( DIR => $new->{dir}, SUFFIX => ".$suffix" ); move( $new->{filename}, $filename ); $new->{filename} = $filename; return $new; } # returns array of boxes with OCR text sub boxes { my ( $self, @boxes ) = @_; # Unfortunately, there seems to be a case (tested in t/31_ocropus_utf8.t) # where decode_entities doesn't work cleanly, so encode/decode to finally # get good UTF-8 $self->{hocr} = decode_utf8( encode_utf8( HTML::Entities::decode_entities( $self->{hocr} ) ) ); if ( $self->{hocr} =~ /([\s\S]*)<\/body>/xsm ) { my $p = HTML::TokeParser->new( \$self->{hocr} ); my ( $x1, $y1, $x2, $y2, $text ); while ( my $token = $p->get_token ) { if ( $token->[0] eq 'S' ) { if ( $token->[1] eq 'span' and defined( $token->[2]{class} ) and ( $token->[2]{class} eq 'ocr_line' or $token->[2]{class} eq 'ocr_word' or $token->[2]{class} eq 'ocrx_word' ) and defined( $token->[2]{title} ) and $token->[2]{title} =~ /bbox\ (\d+)\ (\d+)\ (\d+)\ (\d+)/xsm ) { ( $x1, $y1, $x2, $y2 ) = ( $1, $2, $3, $4 ); } elsif ( $token->[1] eq 'span' and defined( $token->[2]{class} ) and $token->[2]{class} eq 'ocr_cinfo' ) { undef $x1; undef $text; } } if ( $token->[0] eq 'T' and $token->[1] !~ /^\s*$/xsm ) { $text = $token->[1]; chomp($text); } if ( $token->[0] eq 'E' ) { undef $x1; undef $text; } if ( defined($x1) and defined($text) ) { push @boxes, [ $x1, $y1, $x2, $y2, $text ]; } } } else { push @boxes, [ 0, 0, $self->{w}, $self->{h}, decode_utf8( $self->{hocr} ) ]; } return @boxes; } sub to_png { my ( $self, $page_sizes ) = @_; # Write the png my $png = File::Temp->new( DIR => $self->{dir}, SUFFIX => '.png', UNLINK => FALSE ); $self->im_object->Write( units => 'PixelsPerInch', density => $self->resolution($page_sizes), filename => $png ); my $new = Gscan2pdf::Page->new( filename => $png, format => 'Portable Network Graphics', dir => $self->{dir}, resolution => $self->resolution($page_sizes), ); return $new; } sub resolution { my ( $self, $paper_sizes ) = @_; return $self->{resolution} if defined( $self->{resolution} ); my $image = $self->im_object; my $format = $image->Get('format'); setlocale( LC_NUMERIC, "C" ); # Imagemagick always reports PNMs as 72ppi # Some versions of imagemagick report colour PNM as Portable pixmap (PPM) # B&W are Portable anymap if ( $format !~ /^Portable\ ...map/xsm ) { $self->{resolution} = $image->Get('x-resolution'); if ( not defined( $self->{resolution} ) ) { $self->{resolution} = $image->Get('y-resolution'); } if ( $self->{resolution} ) { if ( not $image->Get('units') eq 'PixelsPerInch' ) { $self->{resolution} *= $CM_PER_INCH; } return $self->{resolution}; } } # Return the first match based on the format for ( values %{ $self->matching_paper_sizes($paper_sizes) } ) { $self->{resolution} = $_; return $self->{resolution}; } # Default to 72 $self->{resolution} = $Gscan2pdf::Document::POINTS_PER_INCH; return $self->{resolution}; } # Given paper width and height (mm), and hash of paper sizes, # returns hash of matching resolutions (pixels per inch) sub matching_paper_sizes { my ( $self, $paper_sizes ) = @_; if ( not( defined( $self->{height} ) and defined( $self->{width} ) ) ) { my $image = $self->im_object; $self->{width} = $image->Get('width'); $self->{height} = $image->Get('height'); } my $ratio = $self->{height} / $self->{width}; if ( $ratio < 1 ) { $ratio = 1 / $ratio } my %matching; for ( keys %{$paper_sizes} ) { if ( $paper_sizes->{$_}{x} > 0 and abs( $ratio - $paper_sizes->{$_}{y} / $paper_sizes->{$_}{x} ) < $PAGE_TOLERANCE ) { $matching{$_} = ( ( $self->{height} > $self->{width} ) ? $self->{height} : $self->{width} ) / $paper_sizes->{$_}{y} * $MM_PER_INCH; } } return \%matching; } # returns Image::Magick object sub im_object { my ($self) = @_; my $image = Image::Magick->new; my $x = $image->Read( $self->{filename} ); if ("$x") { $logger->warn($x) } return $image; } 1; __END__ gscan2pdf-1.2.3/lib/Gscan2pdf/NetPBM.pm0000644000175000017500000000272112270574026016001 0ustar jeffjeffpackage Gscan2pdf::NetPBM; use strict; use warnings; use Readonly; Readonly my $BINARY_BITMAP => 4; Readonly my $BINARY_GRAYMAP => 5; Readonly my $BITS_PER_BYTE => 8; Readonly my $BITMAP_BYTES_PER_PIXEL => 1 / $BITS_PER_BYTE; Readonly my $GRAYMAP_BYTES_PER_PIXEL => 1; Readonly my $PIXMAP_BYTES_PER_PIXEL => 3; our $VERSION = '1.2.3'; # Return file size expected by PNM header sub file_size_from_header { my $filename = shift; open my $fh, '<', $filename or return 0; my $header = <$fh>; my $magic_value; if ( $header =~ /^P(\d)\n/xsm ) { $magic_value = $1; } else { close $fh or return 0; return 0; } if ( $magic_value < $BINARY_BITMAP ) { close $fh or return 0; return 0; } my $line = <$fh>; $header .= $line; while ( $line =~ /^(\#|\s*\n)/xsm ) { $line = <$fh>; $header .= $line; } if ( $line =~ /(\d*)\ (\d*)\n/xsm ) { my ( $width, $height ) = ( $1, $2 ); if ( $magic_value == $BINARY_BITMAP ) { my $mod = $width % $BITS_PER_BYTE; if ( $mod > 0 ) { $width += $BITS_PER_BYTE - $mod } } my $datasize = $width * $height * ( $magic_value == $BINARY_BITMAP ? $BITMAP_BYTES_PER_PIXEL : ( $magic_value == $BINARY_GRAYMAP ? $GRAYMAP_BYTES_PER_PIXEL : $PIXMAP_BYTES_PER_PIXEL ) ); if ( $magic_value > $BINARY_BITMAP ) { $line = <$fh>; $header .= $line; } close $fh or return 0; return length($header) + $datasize; } else { close $fh or return 0; return 0; } } 1; __END__ gscan2pdf-1.2.3/lib/Gscan2pdf/PageRange.pm0000644000175000017500000000371112270574026016545 0ustar jeffjeffpackage Gscan2pdf::PageRange; use strict; use warnings; use Gtk2; use Glib qw(TRUE FALSE); # To get TRUE and FALSE # Note: in a BEGIN block to ensure that the registration is complete # by the time the use Subclass goes to look for it. BEGIN { Glib::Type->register_enum( 'Gscan2pdf::PageRange::Range', qw(selected all) ); } # this big hairy statement registers our Glib::Object-derived class # and sets up all the signals and properties for it. use Glib::Object::Subclass Gtk2::VBox::, signals => { changed => {}, }, properties => [ Glib::ParamSpec->enum( 'active', # name 'active', # nickname 'Either selected or all', #blurb 'Gscan2pdf::PageRange::Range', 'selected', # default [qw/readable writable/] #flags ), ]; our $VERSION = '1.2.3'; sub INIT_INSTANCE { my $self = shift; my $d = Locale::gettext->domain(Glib::get_application_name); my %buttons = ( 'selected' => $d->get('Selected'), 'all' => $d->get('All'), ); my $vbox = Gtk2::VBox->new; $self->add($vbox); #the first radio button has to set the group, #which is undef for the first button my $group; foreach my $nick ( keys %buttons ) { $self->{button}{$nick} = Gtk2::RadioButton->new( $group, $buttons{$nick} ); $self->{button}{$nick}->signal_connect( 'toggled' => sub { if ( $self->{button}{$nick}->get_active ) { $self->set_active($nick) } } ); $vbox->pack_start( $self->{button}{$nick}, TRUE, TRUE, 0 ); if ( not $group ) { $group = $self->{button}{$nick}->get_group } if ( not $self->{active} ) { $self->{active} = $nick } } return; } sub get_active { my ($self) = @_; return $self->get('active'); } sub set_active { my ( $self, $active ) = @_; $self->{active} = $active; foreach my $nick ( keys %{ $self->{button} } ) { if ( $self->{active} eq $nick ) { $self->{button}{$nick}->set_active(TRUE); $self->signal_emit('changed'); } } return; } 1; __END__ gscan2pdf-1.2.3/lib/Gscan2pdf/Unpaper.pm0000644000175000017500000003632612271200632016324 0ustar jeffjeffpackage Gscan2pdf::Unpaper; use 5.008005; use strict; use warnings; use feature "switch"; use Carp; use Glib qw(TRUE FALSE); # To get TRUE and FALSE use Gtk2; use Locale::gettext 1.05; # For translations use version; use Gscan2pdf::Document; use Readonly; Readonly my $border_width => 6; BEGIN { use Exporter (); our ( $VERSION, @EXPORT_OK, %EXPORT_TAGS ); $VERSION = '1.2.3'; use base qw(Exporter); %EXPORT_TAGS = (); # eg: TAG => [ qw!name1 name2! ], # your exported package globals go here, # as well as any optionally exported functions @EXPORT_OK = qw(); } our @EXPORT_OK; my $COMMA = q{,}; my $SPACE = q{ }; my ( $d, $version ); sub new { my ( $class, $default ) = @_; my $self = {}; $d = Locale::gettext->domain(Glib::get_application_name); $self->{default} = $default; # Set up hash for options $self->{options} = { layout => { type => 'ComboBox', string => $d->get('Layout'), options => { single => { string => $d->get('Single'), tooltip => $d->get('One page per sheet, oriented upwards without rotation.'), }, double => { string => $d->get('Double'), tooltip => $d->get( 'Two pages per sheet, landscape orientation (one page on the left half, one page on the right half).' ), }, }, default => 'single', }, 'output-pages' => { type => 'SpinButton', string => $d->get('# Output pages'), tooltip => $d->get('Number of pages to output.'), min => 1, max => 2, step => 1, default => 1, }, 'no-deskew' => { type => 'CheckButton', string => $d->get('No deskew'), tooltip => $d->get('Disable deskewing.'), default => FALSE, }, 'no-mask-scan' => { type => 'CheckButton', string => $d->get('No mask scan'), tooltip => $d->get('Disable mask detection.'), default => FALSE, }, 'no-blackfilter' => { type => 'CheckButton', string => $d->get('No black filter'), tooltip => $d->get('Disable black area scan.'), default => FALSE, }, 'no-grayfilter' => { type => 'CheckButton', string => $d->get('No gray filter'), tooltip => $d->get('Disable gray area scan.'), default => FALSE, }, 'no-noisefilter' => { type => 'CheckButton', string => $d->get('No noise filter'), tooltip => $d->get('Disable noise filter.'), default => FALSE, }, 'no-blurfilter' => { type => 'CheckButton', string => $d->get('No blur filter'), tooltip => $d->get('Disable blur filter.'), default => FALSE, }, 'no-border-scan' => { type => 'CheckButton', string => $d->get('No border scan'), tooltip => $d->get('Disable border scanning.'), default => FALSE, }, 'no-border-align' => { type => 'CheckButton', string => $d->get('No border align'), tooltip => $d->get('Disable aligning of the area detected by border scanning.'), default => FALSE, }, 'deskew-scan-direction' => { type => 'CheckButtonGroup', string => $d->get('Deskew to edge'), tooltip => $d->get( "Edges from which to scan for rotation. Each edge of a mask can be used to detect the mask's rotation. If multiple edges are specified, the average value will be used, unless the statistical deviation exceeds --deskew-scan-deviation." ), options => { left => { type => 'CheckButton', string => $d->get('Left'), tooltip => $d->get("Use 'left' for scanning from the left edge."), }, top => { type => 'CheckButton', string => $d->get('Top'), tooltip => $d->get("Use 'top' for scanning from the top edge."), }, right => { type => 'CheckButton', string => $d->get('Right'), tooltip => $d->get("Use 'right' for scanning from the right edge."), }, bottom => { type => 'CheckButton', string => $d->get('Bottom'), tooltip => $d->get("Use 'bottom' for scanning from the bottom."), }, }, default => 'left,right', }, 'border-align' => { type => 'CheckButtonGroup', string => $d->get('Align to edge'), tooltip => $d->get('Edge to which to align the page.'), options => { left => { type => 'CheckButton', string => $d->get('Left'), tooltip => $d->get("Use 'left' to align to the left edge."), }, top => { type => 'CheckButton', string => $d->get('Top'), tooltip => $d->get("Use 'top' to align to the top edge."), }, right => { type => 'CheckButton', string => $d->get('Right'), tooltip => $d->get("Use 'right' to align to the right edge."), }, bottom => { type => 'CheckButton', string => $d->get('Bottom'), tooltip => $d->get("Use 'bottom' to align to the bottom."), }, }, }, 'border-margin' => { type => 'SpinButtonGroup', string => $d->get('Border margin'), options => { vertical => { type => 'SpinButton', string => $d->get('Vertical margin'), tooltip => $d->get( 'Vertical distance to keep from the sheet edge when aligning a border area.' ), min => 0, max => 1000, step => 1, order => 0, }, horizontal => { type => 'SpinButton', string => $d->get('Horizontal margin'), tooltip => $d->get( 'Horizontal distance to keep from the sheet edge when aligning a border area.' ), min => 0, max => 1000, step => 1, order => 1, }, }, }, 'white-threshold' => { type => 'SpinButton', string => $d->get('White threshold'), tooltip => $d->get('Brightness ratio above which a pixel is considered white.'), min => 0, max => 1, step => .01, default => 0.9, }, 'black-threshold' => { type => 'SpinButton', string => $d->get('Black threshold'), tooltip => $d->get( 'Brightness ratio below which a pixel is considered black (non-gray). This is used by the gray-filter. This value is also used when converting a grayscale image to black-and-white mode.' ), min => 0, max => 1, step => .01, default => 0.33, }, }; bless( $self, $class ); return $self; } sub add_options { my ( $self, $vbox ) = @_; my $options = $self->{options}; # Layout ComboBox my $combobl = $self->add_widget( $vbox, $options, 'layout' ); my $outpages = $self->add_widget( $vbox, $options, 'output-pages' ); $combobl->signal_connect( changed => sub { if ( $combobl->get_active == 0 ) { $outpages->set_range( 1, 2 ); } else { $outpages->set_range( 1, 1 ); } } ); # Notebook to collate options my $notebook = Gtk2::Notebook->new; $vbox->pack_start( $notebook, TRUE, TRUE, 0 ); # Notebook page 1 my $vbox1 = Gtk2::VBox->new; $notebook->append_page( $vbox1, $d->get('Deskew') ); my $dsbutton = $self->add_widget( $vbox1, $options, 'no-deskew' ); # Frame for Deskew Scan Direction my $dframe = $self->add_widget( $vbox1, $options, 'deskew-scan-direction' ); $dsbutton->signal_connect( toggled => sub { if ( $dsbutton->get_active ) { $dframe->set_sensitive(FALSE); } else { $dframe->set_sensitive(TRUE); } } ); foreach ( keys %{ $options->{'deskew-scan-direction'}{options} } ) { my $button = $options->{'deskew-scan-direction'}{options}{$_}{widget}; # Ensure that at least one checkbutton stays active $button->signal_connect( toggled => sub { if ( count_active_children($dframe) == 0 ) { $button->set_active(TRUE) } } ); } # Notebook page 2 my $vbox2 = Gtk2::VBox->new; $notebook->append_page( $vbox2, $d->get('Border') ); my $bsbutton = $self->add_widget( $vbox2, $options, 'no-border-scan' ); my $babutton = $self->add_widget( $vbox2, $options, 'no-border-align' ); # Frame for Align Border my $bframe = $self->add_widget( $vbox2, $options, 'border-align' ); $bsbutton->signal_connect( toggled => sub { if ( $bsbutton->get_active ) { $bframe->set_sensitive(FALSE); $babutton->set_sensitive(FALSE); } else { $babutton->set_sensitive(TRUE); if ( not $babutton->get_active ) { $bframe->set_sensitive(TRUE) } } } ); $babutton->signal_connect( toggled => sub { if ( $babutton->get_active ) { $bframe->set_sensitive(FALSE); } else { $bframe->set_sensitive(TRUE); } } ); # Define margins here to reference them below my $bmframe = $self->add_widget( $vbox2, $options, 'border-margin' ); foreach ( keys %{ $options->{'border-align'}{options} } ) { my $button = $options->{'border-align'}{options}{$_}{widget}; # Ghost margin if nothing selected $button->signal_connect( toggled => sub { if ( count_active_children($bframe) == 0 ) { $bmframe->set_sensitive(FALSE); } else { $bmframe->set_sensitive(TRUE); } } ); } if ( count_active_children($bframe) == 0 ) { $bmframe->set_sensitive(FALSE); } else { $bmframe->set_sensitive(TRUE); } # Notebook page 3 my $vbox3 = Gtk2::VBox->new; $notebook->append_page( $vbox3, $d->get('Filters') ); my $spinbuttonwt = $self->add_widget( $vbox3, $options, 'white-threshold' ); my $spinbuttonbt = $self->add_widget( $vbox3, $options, 'black-threshold' ); my $msbutton = $self->add_widget( $vbox3, $options, 'no-mask-scan' ); my $bfbutton = $self->add_widget( $vbox3, $options, 'no-blackfilter' ); my $gfbutton = $self->add_widget( $vbox3, $options, 'no-grayfilter' ); my $nfbutton = $self->add_widget( $vbox3, $options, 'no-noisefilter' ); my $blbutton = $self->add_widget( $vbox3, $options, 'no-blurfilter' ); return; } sub count_active_children { my ($frame) = @_; my $n = 0; for ( $frame->get_child->get_children ) { if ( $_->get_active ) { $n++ } } return $n; } # Add widget to unpaper dialog sub add_widget { my ( $self, $vbox, $hashref, $option ) = @_; my $default = $self->{default}; my $tooltips = Gtk2::Tooltips->new; $tooltips->enable; my $widget; if ( defined( $hashref->{$option}{default} ) and not defined( $default->{$option} ) ) { $default->{$option} = $hashref->{$option}{default}; } given ( $hashref->{$option}{type} ) { when ('ComboBox') { my $hbox = Gtk2::HBox->new; $vbox->pack_start( $hbox, TRUE, TRUE, 0 ); my $label = Gtk2::Label->new( $hashref->{$option}{string} ); $hbox->pack_start( $label, FALSE, FALSE, 0 ); $widget = Gtk2::ComboBox->new_text; $hbox->pack_end( $widget, FALSE, FALSE, 0 ); # Add text and tooltips my @tooltip; my $i = 0; my $o = 0; foreach ( keys %{ $hashref->{$option}{options} } ) { $widget->append_text( $hashref->{$option}{options}{$_}{string} ); push @tooltip, $hashref->{$option}{options}{$_}{tooltip}; if ( $_ eq $default->{$option} ) { $o = $i } $hashref->{$option}{options}{$_}{index} = $i++; } $widget->signal_connect( changed => sub { if ( defined $tooltip[ $widget->get_active ] ) { $tooltips->set_tip( $widget, $tooltip[ $widget->get_active ] ); } } ); # Set defaults $widget->set_active($o); $tooltips->set_tip( $widget, $tooltip[0] ); } when ('CheckButton') { $widget = Gtk2::CheckButton->new( $hashref->{$option}{string} ); $tooltips->set_tip( $widget, $hashref->{$option}{tooltip} ); $vbox->pack_start( $widget, TRUE, TRUE, 0 ); if ( defined $default->{$option} ) { $widget->set_active( $default->{$option} ); } } when ('CheckButtonGroup') { $widget = Gtk2::Frame->new( $hashref->{$option}{string} ); $vbox->pack_start( $widget, TRUE, TRUE, 0 ); my $vboxf = Gtk2::VBox->new; $vboxf->set_border_width($border_width); $widget->add($vboxf); $tooltips->set_tip( $widget, $hashref->{$option}{tooltip} ); my %default; if ( defined $default->{$option} ) { foreach ( split /,/sm, $default->{$option} ) { $default{$_} = TRUE; } } foreach ( keys %{ $hashref->{$option}{options} } ) { my $button = $self->add_widget( $vboxf, $hashref->{$option}{options}, $_ ); if ( defined $default{$_} ) { $button->set_active(TRUE) } } } when ('SpinButton') { my $hbox = Gtk2::HBox->new; $vbox->pack_start( $hbox, TRUE, TRUE, 0 ); my $label = Gtk2::Label->new( $hashref->{$option}{string} ); $hbox->pack_start( $label, FALSE, FALSE, 0 ); $widget = Gtk2::SpinButton->new_with_range( $hashref->{$option}{min}, $hashref->{$option}{max}, $hashref->{$option}{step} ); $hbox->pack_end( $widget, FALSE, FALSE, 0 ); $tooltips->set_tip( $widget, $hashref->{$option}{tooltip} ); if ( defined $default->{$option} ) { $widget->set_value( $default->{$option} ); } } when ('SpinButtonGroup') { $widget = Gtk2::Frame->new( $hashref->{$option}{string} ); $vbox->pack_start( $widget, TRUE, TRUE, 0 ); my $vboxf = Gtk2::VBox->new; $vboxf->set_border_width($border_width); $widget->add($vboxf); my @default; if ( defined $default->{$option} ) { @default = split /,/sm, $default->{$option}; } foreach ( sort { $hashref->{$option}{options}{$a}{order} <=> $hashref->{$option}{options}{$b}{order} } keys %{ $hashref->{$option}{options} } ) { my $button = $self->add_widget( $vboxf, $hashref->{$option}{options}, $_ ); if (@default) { $button->set_value( shift @default ) } } } } $hashref->{$option}{widget} = $widget; return $widget; } sub get_options { my ($self) = @_; my $hashref = $self->{options}; my $default = $self->{default}; foreach my $option ( keys %{$hashref} ) { if ( defined $hashref->{$option}{widget} ) { given ( $hashref->{$option}{type} ) { when ('ComboBox') { my $i = $hashref->{$option}{widget}->get_active; for ( keys %{ $hashref->{$option}{options} } ) { if ( $hashref->{$option}{options}{$_}{index} == $i ) { $default->{$option} = $_; } } } when ('CheckButton') { $default->{$option} = $hashref->{$option}{widget}->get_active ? TRUE : FALSE; } when ('SpinButton') { $default->{$option} = $hashref->{$option}{widget}->get_value; } when ('CheckButtonGroup') { my @items; foreach ( keys %{ $hashref->{$option}{options} } ) { if ( $hashref->{$option}{options}{$_}{widget}->get_active ) { push @items, $_; } } if (@items) { $default->{$option} = join $COMMA, @items } } when ('SpinButtonGroup') { my @items; foreach ( keys %{ $hashref->{$option}{options} } ) { push @items, $hashref->{$option}{options}{$_}{widget}->get_value; } if (@items) { $default->{$option} = join $COMMA, @items } } } } } return $default; } # was options2unpaper sub get_cmdline { my ($self) = @_; my $hashref = $self->{options}; my $default = $self->get_options; my @items; foreach my $option ( keys %{$hashref} ) { if ( $hashref->{$option}{type} eq 'CheckButton' ) { if ( defined $default->{$option} and $default->{$option} ) { push @items, "--$option"; } } else { if ( defined $default->{$option} ) { push @items, "--$option $default->{$option}"; } } } my $cmd = 'unpaper ' . join( $SPACE, @items ) . ' --overwrite '; $cmd .= version->parse( $self->version ) > version->parse('v0.3') ? '%s %s %s' : '--input-file-sequence %s --output-file-sequence %s %s'; return $cmd; } sub version { if ( not defined($version) ) { if ( Gscan2pdf::Document::check_command('unpaper') ) { ( $version, undef ) = Gscan2pdf::Document::open_three('unpaper --version'); chomp($version); $version = "v$version"; } else { $version = 0; } } return $version; } 1; __END__ gscan2pdf-1.2.3/lib/Gscan2pdf/Scanner/0000755000175000017500000000000012271546566015756 5ustar jeffjeffgscan2pdf-1.2.3/lib/Gscan2pdf/Scanner/Options.pm0000644000175000017500000003012712271200632017727 0ustar jeffjeffpackage Gscan2pdf::Scanner::Options; use strict; use warnings; use Carp; use Glib qw(TRUE FALSE); # To get TRUE and FALSE use Sane 0.05; # For enums use feature "switch"; use Readonly; Readonly my $MAX_VALUES => 255; use Glib::Object::Subclass Glib::Object::; our $VERSION = '1.2.3'; my $units = qr{(pel|bit|mm|dpi|%|us)}xsm; my $EMPTY = q{}; my $list = ',...'; my $device; sub new_from_data { my ( $class, $options ) = @_; my $self = $class->new(); if ( not defined($options) ) { croak "Error: no options supplied" } if ( ref($options) eq 'ARRAY' ) { # do a two level clone to allow us to add extra keys to the option hashes my @options; $self->{array} = \@options; for my $i ( 0 .. $#{$options} ) { my %option; if ( defined $options->[$i] ) { %option = %{ $options->[$i] } } $option{index} = $i; push @options, \%option; if ( defined( $options[$i]{name} ) and $options[$i]{name} ne $EMPTY ) { $self->{hash}{ $options[$i]{name} } = $options[$i]; } } } else { ( $self->{array}, $self->{hash} ) = Gscan2pdf::Scanner::Options->options2hash($options); } $self->parse_geometry; return $self; } sub by_index { my ( $self, $i ) = @_; return $self->{array}[$i]; } sub by_name { my ( $self, $name ) = @_; return defined($name) ? $self->{hash}{$name} : undef; } sub by_title { my ( $self, $title ) = @_; for ( @{ $self->{array} } ) { return $_ if ( defined( $_->{title} ) and $_->{title} eq $title ); } return; } sub num_options { my ($self) = @_; return $#{ $self->{array} } + 1; } sub delete_by_index { my ( $self, $i ) = @_; if ( defined $self->{array}[$i]{name} ) { delete $self->{hash}{ $self->{array}[$i]{name} }; } undef $self->{array}[$i]; return; } sub delete_by_name { my ( $self, $name ) = @_; undef $self->{array}[ $self->{hash}{$name}{index} ]; delete $self->{hash}{$name}; return; } sub device { return $device; } # Parse out the geometry from libsane-perl or scanimage option names sub parse_geometry { my ($self) = @_; for ( ( SANE_NAME_PAGE_HEIGHT, 'pageheight' ) ) { if ( defined $self->{hash}{$_} ) { $self->{geometry}{h} = $self->{hash}{$_}{constraint}{max}; last; } } for ( ( SANE_NAME_PAGE_WIDTH, 'pagewidth' ) ) { if ( defined $self->{hash}{$_} ) { $self->{geometry}{w} = $self->{hash}{$_}{constraint}{max}; last; } } if ( defined $self->{hash}{ scalar(SANE_NAME_SCAN_TL_X) } ) { $self->{geometry}{l} = $self->{hash}{ scalar(SANE_NAME_SCAN_TL_X) }{constraint}{min}; if ( defined $self->{hash}{ scalar(SANE_NAME_SCAN_BR_X) } ) { $self->{geometry}{x} = $self->{hash}{ scalar(SANE_NAME_SCAN_BR_X) }{constraint}{max} - $self->{geometry}{l}; } } elsif ( defined $self->{hash}{l} ) { $self->{geometry}{l} = $self->{hash}{l}{constraint}{min}; if ( defined $self->{hash}{x}{constraint}{max} ) { $self->{geometry}{x} = $self->{hash}{x}{constraint}{max}; } } if ( defined $self->{hash}{ scalar(SANE_NAME_SCAN_TL_Y) } ) { $self->{geometry}{t} = $self->{hash}{ scalar(SANE_NAME_SCAN_TL_Y) }{constraint}{min}; if ( defined $self->{hash}{ scalar(SANE_NAME_SCAN_BR_Y) } ) { $self->{geometry}{y} = $self->{hash}{ scalar(SANE_NAME_SCAN_BR_Y) }{constraint}{max} - $self->{geometry}{t}; } } elsif ( defined $self->{hash}{t} ) { $self->{geometry}{t} = $self->{hash}{t}{constraint}{min}; if ( defined $self->{hash}{y}{constraint}{max} ) { $self->{geometry}{y} = $self->{hash}{y}{constraint}{max}; } } return; } sub synonyms { my ($name) = @_; my @synonyms = ( [ scalar(SANE_NAME_PAGE_HEIGHT), 'pageheight' ], [ scalar(SANE_NAME_PAGE_WIDTH), 'pagewidth' ], [ scalar(SANE_NAME_SCAN_TL_X), 'l' ], [ scalar(SANE_NAME_SCAN_TL_Y), 't' ], [ scalar(SANE_NAME_SCAN_BR_X), 'x' ], [ scalar(SANE_NAME_SCAN_BR_Y), 'y' ] ); for my $synonym (@synonyms) { given ($name) { when ( @{$synonym} ) { return $synonym; } } } return [$name]; } # Note any duplicate options, keeping only the last entry. sub prune_duplicates { my ($arrayref) = @_; my %seen; my $j = $#{$arrayref}; while ( $j > -1 ) { ## no critic (ProhibitMagicNumbers) my ($opt) = keys( %{ $arrayref->[$j] } ); $seen{$opt}++; my $synonyms = synonyms($opt); for ( @{$synonyms} ) { if ( defined( $seen{$_} ) and $seen{$_} > 1 ) { splice @{$arrayref}, $j, 1; last; } } $j--; } return $arrayref; } sub supports_paper { my ( $self, $paper, $tolerance ) = @_; # Check the geometry against the paper size if ( not( defined( $self->{geometry}{l} ) and defined( $self->{geometry}{x} ) and defined( $self->{geometry}{t} ) and defined( $self->{geometry}{y} ) and $self->{geometry}{l} <= $paper->{l} + $tolerance and $self->{geometry}{t} <= $paper->{t} + $tolerance ) ) { return 0; } if ( defined( $self->{geometry}{h} ) and defined( $self->{geometry}{w} ) ) { if ( $self->{geometry}{h} + $tolerance >= $paper->{y} + $paper->{t} and $self->{geometry}{w} + $tolerance >= $paper->{x} + $paper->{l} ) { return 1; } else { return 0; } } elsif ( $self->{geometry}{x} + $self->{geometry}{l} + $tolerance >= $paper->{x} + $paper->{l} and $self->{geometry}{y} + $self->{geometry}{t} + $tolerance >= $paper->{y} + $paper->{t} ) { return 1; } return 0; } # parse the scanimage/scanadf output into an array and a hash sub options2hash { my ( $class, $output ) = @_; # Remove everything above the options if ( $output =~ / .* # output header Options\ specific\ to\ device\ `(.+)':\n # line above options (.*) # options /xsm ) { $device = $1; $output = $2; } else { return; } my ( @options, %hash ); while (1) { my %option; $option{unit} = SANE_UNIT_NONE; $option{constraint_type} = SANE_CONSTRAINT_NONE; my $values = qr{(?:(?:\ |\[=\()([^\[].*?)(?:\)\])?)?}xsm; # parse group if ( $output =~ / \A\ \ # two-character indent ([^\n]*) # the title :\n # a colon at the end of the line (.*) # the rest of the output /xsm ) { $option{title} = $1; $option{type} = SANE_TYPE_GROUP; $option{cap} = 0; $option{max_values} = 0; $option{name} = $EMPTY; $option{desc} = $EMPTY; # Remove everything on the option line and above. $output = $2; } # parse option elsif ( $output =~ / \A\ {4,} # four-character indent -+ # at least one dash ([\w\-]+) # the option name $values # optionally followed by the possible values (?:\ \[(.*?)\])? # optionally a space, followed by the current value in square brackets \ *\n # the rest of the line (.*) # the rest of the output /xsm ) { # scanimage & scanadf only display options if SANE_CAP_SOFT_DETECT is set $option{cap} = SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT; $option{name} = $1; if ( defined $3 ) { if ( $3 eq 'inactive' ) { $option{cap} += SANE_CAP_INACTIVE; } else { $option{val} = $3; } $option{max_values} = 1; } else { $option{type} = SANE_TYPE_BUTTON; $option{max_values} = 0; } # parse the constraint after the current value # in order to be able to reset boolean values parse_constraint( \%option, $2 ); # Remove everything on the option line and above. $output = $4; $hash{ $option{name} } = \%option; $option{title} = $option{name}; $option{title} =~ s/[-_]/ /xsmg; # dashes and underscores to spaces $option{title} =~ s/\b(adf|cct|jpeg)\b/\U$1/xsmg; # upper case comment abbreviations $option{title} =~ s/(^\w)/\U$1/xsmg; # capitalise at the beginning of the line given ( $option{title} ) { when ('L') { $option{title} = 'Top-left x'; } when ('T') { $option{title} = 'Top-left y'; } when ('X') { $option{title} = 'Width'; } when ('Y') { $option{title} = 'Height'; } } # Parse option description based on an 8-character indent. my $desc = $EMPTY; while ( $output =~ / \A\ {8,} # 8-character indent ([^\n]*)\n # text (.*) # rest of output /xsm ) { if ( $desc eq $EMPTY ) { $desc = $1; } else { $desc = "$desc $1"; } # Remove everything on the description line and above. $output = $2; } $option{desc} = $desc; } else { last; } push @options, \%option; $option{index} = $#options + 1; } if (@options) { unshift @options, { index => 0 } } return \@options, \%hash; } # parse out range, step and units from the values string sub parse_constraint { my ( $option, $values ) = @_; $option->{type} = SANE_TYPE_INT; if ( defined( $option->{val} ) and $option->{val} =~ /\./xsm ) { $option->{type} = SANE_TYPE_FIXED; } if ( defined($values) and $values =~ / (-?\d+\.?\d*) # min value, possibly negative or floating \.\. # two dots (\d+\.?\d*) # max value, possible floating $units? # optional unit ($list)? # multiple values /xsm ) { $option->{constraint}{min} = $1; $option->{constraint}{max} = $2; $option->{constraint_type} = SANE_CONSTRAINT_RANGE; if ( defined $3 ) { $option->{unit} = unit2enum($3) } if ( defined $4 ) { $option->{max_values} = $MAX_VALUES } if ( $values =~ / \( # opening round bracket in\ steps\ of\ # text (\d+\.?\d*) # step \) # closing round bracket /xsm ) { $option->{constraint}{quant} = $1; } if ( $option->{constraint}{min} =~ /\./xsm or $option->{constraint}{max} =~ /\./xsm or ( defined( $option->{constraint}{quant} ) and $option->{constraint}{quant} =~ /\./xsm ) ) { $option->{type} = SANE_TYPE_FIXED; } } elsif ( defined($values) and $values =~ /^<(\w+)>($list)?$/xsm ) { if ( $1 eq 'float' ) { $option->{type} = SANE_TYPE_FIXED; } elsif ( $1 eq 'string' ) { $option->{type} = SANE_TYPE_STRING; } if ( defined $2 ) { $option->{max_values} = $MAX_VALUES } } # if we haven't got a boolean, and there is no constraint, we have a button elsif ( not defined($values) ) { $option->{type} = SANE_TYPE_BUTTON; $option->{max_values} = 0; } else { parse_list_constraint( $option, $values ); } return; } sub parse_list_constraint { my ( $option, $values ) = @_; if ( $values =~ /(.*)$list/xsm ) { $values = $1; $option->{max_values} = $MAX_VALUES; } if ( $values =~ /(.*)$units$/xsm ) { $values = $1; $option->{unit} = unit2enum($2); } my @array = split( /\|+/sm, $values ); if (@array) { if ( $array[0] eq 'auto' ) { $option->{cap} += SANE_CAP_AUTOMATIC; shift @array; } if ( @array == 2 and $array[0] eq 'yes' and $array[1] eq 'no' ) { $option->{type} = SANE_TYPE_BOOL; if ( defined $option->{val} ) { if ( $option->{val} eq 'yes' ) { $option->{val} = SANE_TRUE; } else { $option->{val} = SANE_FALSE; } } } else { # Can't check before because 'auto' would mess things up for (@array) { if (/[[:alpha:]]/xsm) { $option->{type} = SANE_TYPE_STRING; } elsif (/\./xsm) { $option->{type} = SANE_TYPE_FIXED; } } $option->{constraint} = [@array]; $option->{constraint_type} = $option->{type} == SANE_TYPE_STRING ? SANE_CONSTRAINT_STRING_LIST : SANE_CONSTRAINT_WORD_LIST; } } return; } sub unit2enum { my ($unit) = @_; given ($unit) { when ('pel') { return SANE_UNIT_PIXEL; } when ('bit') { return SANE_UNIT_BIT; } when ('mm') { return SANE_UNIT_MM; } when ('dpi') { return SANE_UNIT_DPI; } when (q{%}) { return SANE_UNIT_PERCENT; } when ('us') { return SANE_UNIT_MICROSECOND; } } return; } 1; __END__ gscan2pdf-1.2.3/lib/Gscan2pdf/Cuneiform.pm0000644000175000017500000000534712270574026016652 0ustar jeffjeffpackage Gscan2pdf::Cuneiform; use 5.008005; use strict; use warnings; use Carp; use File::Temp; # To create temporary files use Gscan2pdf::Document; # for slurp use version; our $VERSION = '1.2.3'; my ( %languages, $version, $setup, $logger ); sub setup { ( my $class, $logger ) = @_; return $version if $setup; my ( $out, $err ) = Gscan2pdf::Document::open_three('which cuneiform'); return if ( not defined($out) or $out eq '' ); ( $out, $err ) = Gscan2pdf::Document::open_three("cuneiform"); if ( $out =~ /^Cuneiform\ for\ Linux\ ([\d\.]+)/x ) { $version = $1; } $setup = 1; return $version; } sub languages { unless (%languages) { # cuneiform language codes my %lang = ( eng => 'English', ger => 'German', fra => 'French', rus => 'Russian', swe => 'Swedish', spa => 'Spanish', ita => 'Italian', ruseng => 'Russian+English', ukr => 'Ukrainian', srp => 'Serbian', hrv => 'Croatian', pol => 'Polish', dan => 'Danish', por => 'Portuguese', dut => 'Dutch', cze => 'Czech', rum => 'Romanian', hun => 'Hungarian', bul => 'Bulgarian', slo => 'Slovak', slv => 'Slovenian', lav => 'Latvian', lit => 'Lithuanian', est => 'Estonian', tur => 'Turkish', ); # Dig out supported languages my $cmd = "cuneiform -l"; $logger->info($cmd); ( my $output, undef ) = Gscan2pdf::Document::open_three($cmd); my $langs; if ( $output =~ /Supported\ languages:\ (.*)\./x ) { $langs = $1; for ( split " ", $langs ) { if ( defined $lang{$_} ) { $languages{$_} = $lang{$_}; } else { $languages{$_} = $_; } } } else { $logger->info("Unrecognised output from cuneiform: $output"); } } return \%languages; } sub hocr { my ( $class, $file, $language, $loggr, $pidfile ) = @_; my ($bmp); Gscan2pdf::Cuneiform->setup($loggr) unless $setup; # Temporary filename for output my $txt = File::Temp->new( SUFFIX => '.txt' ); if ( version->parse("v$version") < version->parse('v1.1.0') and $file !~ /\.bmp$/x ) { # Temporary filename for new file $bmp = File::Temp->new( SUFFIX => '.bmp' ); my $image = Image::Magick->new; $image->Read($file); # Force TrueColor, as this produces DirectClass, which is what cuneiform expects. # Without this, PseudoClass is often produced, for which cuneiform gives # "PUMA_XFinalrecognition failed" warnings $image->Write( filename => $bmp, type => 'TrueColor' ); } else { $bmp = $file; } my $cmd = "cuneiform -l $language -f hocr -o $txt $bmp"; $logger->info($cmd); if ( defined $pidfile ) { system("echo $$ > $pidfile;$cmd"); } else { system($cmd); } return Gscan2pdf::Document::slurp($txt); } 1; __END__ gscan2pdf-1.2.3/bin/0000755000175000017500000000000012271546566012560 5ustar jeffjeffgscan2pdf-1.2.3/bin/gscan2pdf0000755000175000017500000062275212271546252014363 0ustar jeffjeff#!/usr/bin/perl # gscan2pdf --- to aid the scan to PDF or DjVu process # Copyright (C) 2006--2013 Jeffrey Ratcliffe # This program is free software: you can redistribute it and/or modify # it under the terms of the version 3 GNU General Public License as # published by the Free Software Foundation. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # Release procedure: # Use # make tidy # TEST_AUTHOR=1 make test # immediately before release so as not to affect any patches # in between, and then consistently before each commit afterwards. # 0. Test scan in lineart, greyscale and colour. # 1. New screendump required? Print screen creates screenshot.png in Desktop. # Download new translations (https://translations.launchpad.net/gscan2pdf) # Upload .pot # Update translators in credits (https://launchpad.net/gscan2pdf/+topcontributors) # Check a locale with LC_ALL=de_DE LC_MESSAGES=de_DE LC_CTYPE=de_DE LANG=de_DE LANGUAGE=de_DE bin/gscan2pdf --log=log --locale= # Check $VERSION. If necessary bump with something like # xargs sed -i "s/\(\$VERSION *= \)'1\.2\.2'/\1'1.2.3'/" < MANIFEST # Make appropriate updates to debian/changelog # 2. perl Makefile.PL # make rpmdist debdist # test dist sudo dpkg -i gscan2pdf_x.x.x_all.deb # 3. git status # git tag vx.x.x # git push --tags ssh://ra28145@git.code.sf.net/p/gscan2pdf/code master # 4. make remote-html # 5. create version directory in https://sourceforge.net/projects/gscan2pdf/files/gscan2pdf # make file_releases # 6. Freshmeat freshmeat.net/projects/gscan2pdf/releases/new (requires summary of changes) # 7. Launchpad (https://launchpad.net/gscan2pdf/trunk/+addrelease) # 8. make ppa # name the release -0~ppa1, where release is precise, hardy, etc # debuild -S -sa # dput gscan2pdf-ppa .changes # https://launchpad.net/~jeffreyratcliffe/+archive # gscan2pdf-announce@lists.sourceforge.net, gscan2pdf-help@lists.sourceforge.net, gnome-announce-list@gnome.org, sane-devel@lists.alioth.debian.org # sudo DIST=sid pbuilder update # DIST=sid pdebuild # check contents with dpkg-deb --contents # dput ftp-master use warnings; use strict; use feature "switch"; use Gscan2pdf::Document; use Gscan2pdf::Frontend::Sane; use Gscan2pdf::Frontend::CLI; use Gscan2pdf::NetPBM; use Gscan2pdf::Scanner::Options; use Gscan2pdf::Dialog::Scan::Sane; use Gscan2pdf::Dialog::Scan::CLI; use Gscan2pdf::Tesseract; use Gscan2pdf::Ocropus; use Gscan2pdf::Cuneiform; use Gscan2pdf::Unpaper; use Gscan2pdf::Dialog::Renumber; use Sane 0.05; # To get SANE_* enums use Gtk2::ImageView; use Goo::Canvas; use Gtk2::Ex::Simple::List; use Gtk2 -init; # Could just call init separately use Gtk2::Gdk::Keysyms; use Cwd; # To obtain current working directory use File::Basename; # Split filename into dir, file, ext use File::Copy; use File::Temp; # To create temporary files use File::Path qw(remove_tree); use Glib qw(TRUE FALSE); # To get TRUE and FALSE use Config::General 2.40; use PDF::API2; use Getopt::Long; use Set::IntSpan 1.10; # For size method for page numbering issues use Proc::Killfam; use Fcntl qw(:flock) ; # import LOCK_* constants to prevent us clobbering running instances use Log::Log4perl; use Try::Tiny; use Data::Dumper; # To sort out LC_NUMERIC and $SIG{CHLD} use POSIX qw(locale_h :signal_h :errno_h :sys_wait_h); use Locale::gettext 1.05; # For translations Glib::set_application_name('gscan2pdf'); my $prog_name = Glib::get_application_name; my $VERSION = '1.2.3'; # Window parameters my $border_width = 6; # Image border to ensure that a scaled to fit image gets no scrollbars my $border = 1; # Set up domain for gettext (internationalisation) # Expects /usr/share/locale/LANGUAGE/LC_MESSAGES/$prog_name.mo # or whatever is set by $d->dir([NEWDIR]); my $d = Locale::gettext->domain($prog_name); my $d_sane = Locale::gettext->domain('sane-backends'); my $debug = FALSE; my ( $test, $help, $log, $log_level, @device, $locale, @device_list, $test_image, $logger ); parse_arguments(); my ( %SETTING, $conf ); my $rc = "$ENV{'HOME'}/.$prog_name"; read_config_file($rc); set_up_test_mode(); $logger->info("Perl version $^V"); $logger->info("Glib-Perl version $Glib::VERSION"); $logger->info( 'Built for Glib ' . join( '.', Glib->GET_VERSION_INFO ) ); $logger->info( 'Running with Glib ' . join( '.', Glib::major_version, Glib::minor_version, Glib::micro_version ) ); $logger->info("Gtk2-Perl version $Gtk2::VERSION"); $logger->info( "Built for GTK " . join( '.', Gtk2->GET_VERSION_INFO ) ); $logger->info( "Running with GTK " . join( '.', Gtk2->get_version_info ) ); $logger->info( "Using GtkImageView version ", Gtk2::ImageView->library_version ); $logger->info("Using Gtk2::ImageView version $Gtk2::ImageView::VERSION"); $logger->info("Using PDF::API2 version $PDF::API2::VERSION"); $logger->info( 'Using Sane version ' . join( '.', Sane->get_version ) ); $logger->info("Using libsane-perl version $Sane::VERSION"); $logger->debug( Dumper( \%SETTING ) ) if ($debug); # Just in case dependencies have changed, put put startup warning again if ( not defined( $SETTING{version} ) or $SETTING{version} ne $VERSION ) { $SETTING{'startup warning'} = TRUE; delete $SETTING{cache} if ( defined $SETTING{cache} ); } $SETTING{version} = $VERSION; # Initialise thread handler Gscan2pdf::Document->setup($logger); # Initialise SANE frontends Gscan2pdf::Frontend::Sane->setup($logger); Gscan2pdf::Frontend::CLI->setup($logger); # Update list in Gscan2pdf::Document so that it can be used by get_resolution Gscan2pdf::Document->set_paper_sizes( $SETTING{Paper} ); # Create icons for rotate buttons my $IconFactory; my $iconpath; if ( -d '/usr/share/gscan2pdf' ) { $iconpath = '/usr/share/gscan2pdf'; } else { $iconpath = '.'; # FIXME: make this a big cleverer, going one dir down from bin. } init_icons( [ 'rotate90', "$iconpath/stock-rotate-90.svg" ], [ 'rotate180', "$iconpath/stock-rotate-180.svg" ], [ 'rotate270', "$iconpath/stock-rotate-270.svg" ], [ 'scanner', "$iconpath/scanner.svg" ], [ 'pdf', "$iconpath/pdf.svg" ], [ 'selection', "$iconpath/stock-selection-all-16.png" ], ); # Define application-wide variables here so that they can be referenced # in the menu callbacks my ( $slist, $windowi, $windowe, $windows, $windowh, $windowo, $windowrn, $windowu, @undo_buffer, @redo_buffer, @undo_selection, @redo_selection, %dependencies, %helperTag, $menubar, $toolbar, @ocr_engine, @clipboard, $windowr, $view, $windowp, $print_settings, $windowc, $current_page, # start page on scan dialog $start, # Goo::Canvas for OCR output $canvas, # List of PageRange widgets @prlist, # List of user-defined tools @user_defined_tools, # Spinbuttons for selector on crop dialog $sb_selector_x, $sb_selector_y, $sb_selector_w, $sb_selector_h, # dir below session dir $tmpdir, # session dir $session, # filehandle for session lockfile $lockfh, # Temp::File object for PDF to be emailed # Define here to make sure that it doesn't get deleted until the next email # is created or we quit $pdf, # Simple::List in preferences dialog $option_visibility_list, # Declare the XML structure $uimanager, ); # Create the window my $window = create_main_window(); my $main_vbox = Gtk2::VBox->new; $window->add($main_vbox); # Create the menu bar create_menu_bar(); $main_vbox->pack_start( $menubar, FALSE, TRUE, 0 ); $main_vbox->pack_start( $toolbar, FALSE, FALSE, 0 ); my $tooltips = Gtk2::Tooltips->new; $tooltips->enable; # HPaned for thumbnails and detail view my $hpaned = Gtk2::HPaned->new; $hpaned->set_position( $SETTING{'thumb panel'} ); $main_vbox->pack_start( $hpaned, TRUE, TRUE, 0 ); # Scrolled window for thumbnails my $scwin_thumbs = Gtk2::ScrolledWindow->new; # resize = FALSE to stop the panel expanding on being resized (Debian #507032) $hpaned->pack1( $scwin_thumbs, FALSE, TRUE ); $scwin_thumbs->set_policy( 'automatic', 'automatic' ); $scwin_thumbs->set_shadow_type('etched-in'); # Set up a SimpleList $slist = Gscan2pdf::Document->new; my $target_entry = { target => 'Glib::Scalar', # some string representing the drag type flags => 'same-widget', # Gtk2::TargetFlags info => 1, # some app-defined integer identifier }; $slist->drag_source_set( 'button1-mask', [ 'copy', 'move' ], $target_entry ); $slist->drag_dest_set( [ 'motion', 'highlight' ], [ 'copy', 'move' ], $target_entry ); $slist->signal_connect( 'drag-data-get' => sub { my ( $tree, $context, $sel ) = @_; $sel->set( $sel->target, 8, 'data' ); } ); $slist->signal_connect( 'drag-data-delete' => sub { my ( $tree, $context ) = @_; my $model = $tree->get_model; my @data = $tree->get_selection->get_selected_rows; for ( reverse @data ) { my $iter = $model->get_iter($_); my $info = $model->get( $iter, 0 ); $model->remove($iter); } $tree->get_selection->unselect_all; } ); $slist->signal_connect( 'drag-data-received' => \&drag_data_received_callback ); # Callback for dropped signal. $slist->signal_connect( drag_drop => sub { my ( $tree, $context, $x, $y, $when ) = @_; if ( my $targ = $context->targets ) { $tree->drag_get_data( $context, $targ, $when ); return TRUE; } return FALSE; } ); # If dragged below the bottom of the window, scroll it. $slist->signal_connect( 'drag-motion' => \&drag_motion_callback ); # Set up callback for right mouse clicks. $slist->signal_connect( button_press_event => \&handle_clicks ); $slist->signal_connect( button_release_event => \&handle_clicks ); # Set the page number to be editable $slist->set_column_editable( 0, TRUE ); # Set-up the callback when the page number has been edited. $slist->{row_changed_signal} = $slist->get_model->signal_connect( 'row-changed' => sub { $slist->get_model->signal_handler_block( $slist->{row_changed_signal} ); # Sort pages $slist->manual_sort_by_column(0); # And make sure there are no duplicates $slist->renumber; $slist->get_model->signal_handler_unblock( $slist->{row_changed_signal} ); # Update the start spinbutton if necessary update_start(); } ); $scwin_thumbs->add($slist); # Notebook for detail view and OCR output my $vnotebook = Gtk2::Notebook->new; $hpaned->pack2( $vnotebook, TRUE, TRUE ); # ImageView for detail view $view = Gtk2::ImageView->new; my $dragger = Gtk2::ImageView::Tool::Dragger->new($view); my $selector = Gtk2::ImageView::Tool::Selector->new($view); my $painter = Gtk2::ImageView::Tool::Painter->new($view); $vnotebook->append_page( $view, $d->get('Image') ); $view->signal_connect( button_press_event => sub { my ( $widget, $event ) = @_; handle_clicks( $widget, $event ); } ); $view->signal_connect( button_release_event => \&handle_clicks ); $view->signal_connect( 'zoom-changed' => sub { $canvas->set_scale( $view->get_zoom ) if ( defined $canvas ); } ); # Callback if the selection changes $selector->{selection_changed_signal} = $selector->signal_connect( 'selection-changed' => sub { my $sel = $selector->get_selection; if ( defined $sel ) { $SETTING{selection} = [ $sel->values ]; if ( defined $sb_selector_x ) { $sb_selector_x->set_value( $SETTING{selection}[0] ); $sb_selector_y->set_value( $SETTING{selection}[1] ); $sb_selector_w->set_value( $SETTING{selection}[2] ); $sb_selector_h->set_value( $SETTING{selection}[3] ); } } } ); # ScrolledWindow for Goo::Canvas for OCR output my $scwin_buffer = Gtk2::ScrolledWindow->new; $scwin_buffer->set_policy( 'automatic', 'automatic' ); $scwin_buffer->set_shadow_type('etched-in'); $vnotebook->append_page( $scwin_buffer, $d->get('OCR Output') ); # Set up call back for list selection to update detail view $slist->{selection_changed_signal} = $slist->get_selection->signal_connect( changed => \&selection_changed_callback ); # _after ensures that Editables get first bite $window->signal_connect_after( key_press_event => sub { my ( $widget, $event ) = @_; # Let the keypress propagate return FALSE unless ( $event->keyval == $Gtk2::Gdk::Keysyms{Delete} ) ## no critic (ProhibitPackageVars) ; delete_pages(); return TRUE; } ); # If defined in the config file, set the current directory $SETTING{'cwd'} = getcwd unless ( defined( $SETTING{'cwd'} ) ); my $unpaper = Gscan2pdf::Unpaper->new( $SETTING{'unpaper options'} ); update_uimanager(); create_temp_directory(); $window->show_all; # Progress bars below window my $phbox = Gtk2::HBox->new; $main_vbox->pack_end( $phbox, FALSE, FALSE, 0 ); $phbox->show; my $shbox = Gtk2::HBox->new; $phbox->add($shbox); my $spbar = Gtk2::ProgressBar->new; $shbox->add($spbar); my $scbutton = Gtk2::Button->new; $scbutton->set_image( Gtk2::Image->new_from_stock( 'gtk-cancel', 'button' ) ); $shbox->pack_end( $scbutton, FALSE, FALSE, 0 ); my $thbox = Gtk2::HBox->new; $phbox->add($thbox); my $tpbar = Gtk2::ProgressBar->new; $thbox->add($tpbar); my $tcbutton = Gtk2::Button->new; $tcbutton->set_image( Gtk2::Image->new_from_stock( 'gtk-cancel', 'button' ) ); $thbox->pack_end( $tcbutton, FALSE, FALSE, 0 ); # Open scan dialog in background scan_dialog(TRUE) if ( $SETTING{'auto-open-scan-dialog'} ); ### Subroutines sub parse_arguments { my @args = ( 'device=s' => \@device, 'test=s%' => \$test, 'test-image=s' => \$test_image, 'locale=s' => \$locale, 'help' => \$help, 'log=s' => \$log, 'debug' => sub { $log_level = 'DEBUG'; $debug = TRUE }, 'info' => sub { $log_level = 'INFO' }, 'warn' => sub { $log_level = 'WARN' }, 'error' => sub { $log_level = 'ERROR' }, 'fatal' => sub { $log_level = 'FATAL' }, 'version' => sub { warn "$prog_name $VERSION\n"; exit 0 }, ); exit 1 unless ( GetOptions(@args) ); $Sane::DEBUG = $debug; if ( not defined($log_level) ) { if ( defined $log ) { $log_level = 'DEBUG'; $debug = TRUE; } else { $log_level = 'ERROR'; } } my $log_conf = <<'EOS'; log4perl.appender.Screen = Log::Log4perl::Appender::Screen log4perl.appender.Screen.layout = Log::Log4perl::Layout::SimpleLayout EOS if ( defined $log ) { $log_conf .= <<"EOS"; log4perl.appender.Logfile = Log::Log4perl::Appender::File log4perl.appender.Logfile.filename = $log log4perl.appender.Logfile.mode = write log4perl.appender.Logfile.layout = Log::Log4perl::Layout::SimpleLayout log4perl.category = $log_level, Logfile, Screen EOS } else { $log_conf .= <<"EOS"; log4perl.category = $log_level, Screen EOS } if ( defined $help ) { system("perldoc $0") == 0 or die $d->get('Error displaying help'), "\n"; } Log::Log4perl::init( \$log_conf ); $logger = Log::Log4perl::get_logger(); $logger->info("Starting $prog_name $VERSION"); $logger->info("Log level $log_level"); if ( defined $locale ) { if ( $locale =~ /^\//x ) { $d->dir($locale); } else { $d->dir( getcwd . "/$locale" ); } } for (@device) { push @device_list, { name => $_, label => $_ }; } # Set LC_NUMERIC to C to prevent decimal commas (or anything else) confusing # scanimage setlocale( LC_NUMERIC, "C" ); $logger->info( "Using ", setlocale(LC_CTYPE), " locale" ); $logger->info( "Startup LC_NUMERIC ", setlocale(LC_NUMERIC) ); return; } # Perl-Critic is confused by @_ in finally{} See P::C bug #79138 sub read_config_file { ## no critic (RequireArgUnpacking) my ($filename) = @_; $logger->info("Reading config from $filename"); system("touch $filename") unless ( -r $filename ); try { $conf = Config::General->new( -ConfigFile => $filename, -SplitPolicy => 'equalsign', -UTF8 => 1, ); } catch { $logger->error( $d->get( "Error: unable to load settings.\nBacking up settings\nReverting to defaults" ) ); move( $filename, "$filename.old" ); } finally { %SETTING = $conf->getall unless (@_); }; my %default_settings = ( 'window_width' => 800, 'window_height' => 600, 'window_maximize' => TRUE, 'thumb panel' => 100, 'Page range' => 'all', 'layout' => 'single', 'downsample' => FALSE, 'downsample dpi' => 150, 'threshold tool' => 80, 'unsharp radius' => 0, 'unsharp sigma' => 1, 'unsharp amount' => 1, 'unsharp threshold' => 0.05, 'cache options' => TRUE, 'restore window' => TRUE, 'startup warning' => FALSE, 'date offset' => 0, 'pdf compression' => 'auto', 'quality' => 75, 'pages to scan' => 1, 'unpaper on scan' => TRUE, 'OCR on scan' => TRUE, 'frontend' => 'libsane-perl', 'rotate facing' => 0, 'rotate reverse' => 0, 'default filename' => '%a %y-%m-%d', 'scan prefix' => '', 'Blank threshold' => 0.005, # Blank page standard deviation threshold 'Dark threshold' => 0.12, # Dark page mean threshold 'ocr engine' => 'ocropus', 'OCR output' => 'replace', # When a page is re-OCRed, replace old text with new text 'auto-open-scan-dialog' => TRUE, 'Paper' => { $d->get('A4') => { x => 210, y => 297, l => 0, t => 0, }, $d->get('US Letter') => { x => 216, y => 279, l => 0, t => 0, }, $d->get('US Legal') => { x => 216, y => 356, l => 0, t => 0, }, }, user_defined_tools => ['gimp %i'], # show the options marked with 1, hide those with 0 # for the others, see the value of default-option-visibility 'visible-scan-options' => { mode => 1, compression => 1, resolution => 1, brightness => 1, gain => 1, contrast => 1, threshold => 1, speed => 1, 'batch-scan' => 1, 'wait-for-button' => 1, 'button-wait' => 1, 'calibration-cache' => 1, source => 1, pagewidth => 1, pageheight => 1, 'page-width' => 1, 'page-height' => 1, 'overscan-top' => 1, 'overscan-bottom' => 1, adf_mode => 1, 'adf-mode' => 1, 'Paper size' => 1, x => 1, y => 1, l => 1, t => 1, }, 'scan-reload-triggers' => qw(mode), ); delete $SETTING{frontend} if ( defined $SETTING{frontend} and ( $SETTING{frontend} eq 'scanimage-perl' or $SETTING{frontend} eq 'scanadf-perl' or $SETTING{frontend} eq 'scanimage.pl' or $SETTING{frontend} eq 'scanadf.pl' ) # these frontends are just for testing purposes ); for ( keys(%default_settings) ) { $SETTING{$_} = $default_settings{$_} unless ( defined $SETTING{$_} ); } remove_invalid_paper( $SETTING{Paper} ); # Delete the options cache if there is a new version of SANE if ( ( defined( $SETTING{'SANE version'} ) and $SETTING{'SANE version'} ne join( '.', Sane->get_version ) ) or ( defined( $SETTING{'libsane-perl version'} ) and $SETTING{'libsane-perl version'} ne $Sane::VERSION ) ) { delete $SETTING{cache} if ( defined $SETTING{cache} ); } $SETTING{'SANE version'} = join( '.', Sane->get_version ); $SETTING{'libsane-perl version'} = $Sane::VERSION; return; } sub remove_invalid_paper { my ($hashref) = @_; for my $paper ( keys %$hashref ) { if ( $paper eq '<>' or $paper eq '' ) { delete $hashref->{$paper}; } else { for (qw(x y t l)) { unless ( ref( $hashref->{$paper} ) eq "HASH" and defined( $hashref->{$paper}{$_} ) ) { delete $hashref->{$paper}; last; } } } } return; } sub set_up_test_mode { # Set up test mode and make sure file has absolute path and is readable if ( keys %{$test} ) { $SETTING{frontend} = 'scanimage-perl'; for my $file ( keys %{$test} ) { my $device = $test->{$file}; delete $test->{$file}; # Find a way of emulating the nonsense \n that some people seem to get $device =~ s/\\n/\n/g; $logger->debug("'$file','$device'"); $file = getcwd . "/$file" if ( $file !~ /^\//x ); if ( !-r $file ) { $logger->fatal( sprintf( $d->get("Cannot read file: %s"), $file ) ); exit 1; } push @{ $test->{file} }, $file; $test->{output} = '' unless ( defined( $test->{output} ) ); $test->{output} .= "'$#{$test->{file}}','$device','" . basename($file) . "'\n"; } } # GetOptions leaves $test as a reference to an empty hash. else { undef $test; } if ( defined $test_image ) { $test_image = expand_tildes($test_image); if ( -r $test_image ) { $logger->info("Using test image $test_image"); } else { $logger->fatal( sprintf( $d->get("Cannot read file: %s"), $test_image ) ); exit 1; } } return; } sub create_main_window { my $widget = Gtk2::Window->new; $widget->set_title("$prog_name v$VERSION"); $widget->signal_connect( 'delete-event' => sub { if ( quit() ) { Gtk2->main_quit; } else { return TRUE; } } ); # Note when the window is maximised or not. $widget->signal_connect( window_state_event => sub { my ( $w, $event ) = @_; if ( $event->new_window_state & ['maximized'] ) { $SETTING{'window_maximize'} = TRUE; } else { $SETTING{'window_maximize'} = FALSE; } } ); # If defined in the config file, set the window state, size and position if ( $SETTING{'restore window'} ) { $widget->set_default_size( $SETTING{'window_width'}, $SETTING{'window_height'} ); $widget->move( $SETTING{'window_x'}, $SETTING{'window_y'} ) if ( defined( $SETTING{'window_x'} ) and defined( $SETTING{'window_y'} ) ); $widget->maximize if ( $SETTING{'window_maximize'} ); } try { $widget->set_default_icon_from_file("$iconpath/gscan2pdf.svg"); } catch { $logger->warn("Unable to load icon `$iconpath/gscan2pdf.svg': $@"); }; return $widget; } # Check for presence of various packages sub check_dependencies { $dependencies{perlmagick} = try { require Image::Magick }; $dependencies{imagemagick} = Gscan2pdf::Document::check_command('convert'); $dependencies{scanadf} = Gscan2pdf::Document::check_command('scanadf'); $dependencies{xdg} = Gscan2pdf::Document::check_command('xdg-email'); $dependencies{gocr} = Gscan2pdf::Document::check_command('gocr'); $dependencies{tesseract} = Gscan2pdf::Tesseract->setup($logger); $dependencies{ocropus} = Gscan2pdf::Ocropus->setup($logger); $dependencies{cuneiform} = Gscan2pdf::Cuneiform->setup($logger); $dependencies{djvu} = Gscan2pdf::Document::check_command('cjb2'); $dependencies{unpaper} = Gscan2pdf::Unpaper->version; $dependencies{libtiff} = Gscan2pdf::Document::check_command('tiffcp'); $logger->info("Found Image::Magick") if ( $dependencies{perlmagick} ); $logger->info("Found ImageMagick") if ( $dependencies{imagemagick} ); $logger->info("Found scanadf") if ( $dependencies{scanadf} ); $logger->info("Found xdg-email") if ( $dependencies{xdg} ); $logger->info("Found gocr") if ( $dependencies{gocr} ); $logger->info("Found tesseract") if ( $dependencies{tesseract} ); $logger->info("Found cuneiform v$dependencies{cuneiform}") if ( $dependencies{cuneiform} ); $logger->info("Found cjb2 (djvu)") if ( $dependencies{djvu} ); $logger->info("Found libtiff") if ( $dependencies{libtiff} ); $logger->info("Found unpaper $dependencies{unpaper}") if ( $dependencies{unpaper} ); # OCR engine options push @ocr_engine, [ 'gocr', $d->get('GOCR'), $d->get('Process image with GOCR.') ] if ( $dependencies{gocr} ); push @ocr_engine, [ 'tesseract', $d->get('Tesseract'), $d->get('Process image with Tesseract.') ], if ( $dependencies{tesseract} ); push @ocr_engine, [ 'ocropus', $d->get('Ocropus'), $d->get('Process image with Ocropus.') ], if ( $dependencies{ocropus} ); push @ocr_engine, [ 'cuneiform', $d->get('Cuneiform'), $d->get('Process image with Cuneiform.') ], if ( $dependencies{cuneiform} ); return; } # Create the menu bar, initialize its menus, and return the menu bar. sub create_menu_bar { # Create a Gtk2::UIManager instance $uimanager = Gtk2::UIManager->new; # extract the accelgroup and add it to the window my $accelgroup = $uimanager->get_accel_group; $window->add_accel_group($accelgroup); my @action_items = ( # Fields for each action item: # [name, stock_id, value, label, accelerator, tooltip, callback] # File menu [ 'File', undef, $d->get('_File') ], [ 'New', 'gtk-new', $d->get('_New'), 'n', $d->get('Clears all pages'), \&new ], [ 'Open', 'gtk-open', $d->get('_Open'), 'o', $d->get('Open image file(s)'), \&open_dialog ], [ 'Open crashed session', undef, $d->get('Open c_rashed session'), undef, $d->get('Open crashed session'), \&open_session_action ], [ 'Scan', 'scanner', $d->get('S_can'), 'g', $d->get('Scan document'), \&scan_dialog ], [ 'Save', 'gtk-save', $d->get('Save'), 's', $d->get('Save'), \&save_dialog ], [ 'Email as PDF', 'gtk-edit', $d->get('_Email as PDF'), 'e', $d->get('Attach as PDF to a new email'), \&email ], [ 'Print', 'gtk-print', $d->get('_Print'), 'p', $d->get('Print'), \&print_dialog ], [ 'Compress', undef, $d->get('_Compress temporary files'), undef, $d->get('Compress temporary files'), \&compress_temp ], [ 'Quit', 'gtk-quit', $d->get('_Quit'), 'q', $d->get('Quit'), sub { Gtk2->main_quit if quit(); } ], # Edit menu [ 'Edit', undef, $d->get('_Edit') ], [ 'Undo', 'gtk-undo', $d->get('_Undo'), 'z', $d->get('Undo'), \&undo ], [ 'Redo', 'gtk-redo', $d->get('_Redo'), 'z', $d->get('Redo'), \&unundo ], [ 'Cut', 'gtk-cut', $d->get('Cu_t'), 'x', $d->get('Cut selection'), \&cut_selection ], [ 'Copy', 'gtk-copy', $d->get('_Copy'), 'c', $d->get('Copy selection'), \©_selection ], [ 'Paste', 'gtk-paste', $d->get('_Paste'), 'v', $d->get('Paste selection'), \&paste_selection ], [ 'Delete', 'gtk-delete', $d->get('_Delete'), undef, $d->get('Delete selected pages'), \&delete_pages ], [ 'Renumber', 'gtk-sort-ascending', $d->get('_Renumber'), 'r', $d->get('Renumber pages'), \&renumber_dialog ], [ 'Select', undef, $d->get('_Select') ], [ 'Select All', 'gtk-select-all', $d->get('_All'), 'a', $d->get('Select all pages'), \&select_all ], [ 'Select Odd', undef, $d->get('_Odd'), '1', $d->get('Select all odd-numbered pages'), sub { select_odd_even(0); } ], [ 'Select Even', undef, $d->get('_Even'), '2', $d->get('Select all evenly-numbered pages'), sub { select_odd_even(1); } ], [ 'Select Blank', 'gtk-select-blank', $d->get('_Blank'), 'b', $d->get('Select pages with low standard deviation'), \&analyse_select_blank ], [ 'Select Dark', 'gtk-select-blank', $d->get('_Dark'), 'd', $d->get('Select dark pages'), \&analyse_select_dark ], [ 'Select Modified', 'gtk-select-modified', $d->get('_Modified'), 'm', $d->get('Select modified pages since last OCR'), \&select_modified_since_ocr ], [ 'Select No OCR', undef, $d->get('_No OCR'), undef, $d->get('Select pages with no OCR output'), \&select_no_ocr ], [ 'Clear OCR', 'gtk-clear', $d->get('_Clear OCR'), undef, $d->get('Clear OCR output from selected pages'), \&clear_ocr ], [ 'Properties', 'gtk-properties', $d->get('Propert_ies'), undef, $d->get('Edit image properties'), \&properties ], [ 'Preferences', 'gtk-preferences', $d->get('Prefere_nces'), undef, $d->get('Edit preferences'), \&preferences ], # View menu [ 'View', undef, $d->get('_View') ], [ 'Zoom 100', 'gtk-zoom-100', $d->get('Zoom _100%'), undef, $d->get('Zoom to 100%'), sub { $view->set_zoom(1.0); } ], [ 'Zoom to fit', 'gtk-zoom-fit', $d->get('Zoom to _fit'), undef, $d->get('Zoom to fit'), sub { $view->set_fitting(TRUE); } ], [ 'Zoom in', 'gtk-zoom-in', $d->get('Zoom _in'), 'plus', $d->get('Zoom in'), sub { $view->zoom_in; } ], [ 'Zoom out', 'gtk-zoom-out', $d->get('Zoom _out'), 'minus', $d->get('Zoom out'), sub { $view->zoom_out; } ], [ 'Rotate 90', 'rotate90', $d->get('Rotate 90 clockwise'), 'R', $d->get('Rotate 90 clockwise'), sub { rotate( 90, [ indices2pages( $slist->get_selected_indices ) ] ) } ], [ 'Rotate 180', 'rotate180', $d->get('Rotate 180'), 'F', $d->get('Rotate 180'), sub { rotate( 180, [ indices2pages( $slist->get_selected_indices ) ] ) } ], [ 'Rotate 270', 'rotate270', $d->get('Rotate 90 anticlockwise'), 'C', $d->get('Rotate 90 anticlockwise'), sub { rotate( 270, [ indices2pages( $slist->get_selected_indices ) ] ) } ], # Tools menu [ 'Tools', undef, $d->get('_Tools') ], [ 'Threshold', undef, $d->get('_Threshold'), undef, $d->get('Change each pixel above this threshold to black'), \&threshold ], [ 'Negate', undef, $d->get('_Negate'), undef, $d->get('Converts black to white and vice versa'), \&negate ], [ 'Unsharp', undef, $d->get('_Unsharp Mask'), undef, $d->get('Apply an unsharp mask'), \&unsharp ], [ 'Crop', 'GTK_STOCK_LEAVE_FULLSCREEN', $d->get('_Crop'), undef, $d->get('Crop pages'), \&crop ], [ 'unpaper', undef, $d->get('_Clean up'), undef, $d->get('Clean up scanned images with unpaper'), \&unpaper ], [ 'OCR', undef, $d->get('_OCR'), undef, $d->get('Optical Character Recognition'), \&OCR ], [ 'User-defined', undef, $d->get('U_ser-defined') ], # Help menu [ 'Help menu', undef, $d->get('_Help') ], [ 'Help', 'gtk-help', $d->get('_Help'), 'h', $d->get('Help'), \&view_pod ], [ 'About', 'gtk-about', $d->get('_About'), undef, $d->get('_About'), \&about ], ); my @image_tools = ( [ 'DraggerTool', 'gtk-refresh', $d->get('_Drag'), undef, $d->get('Use the hand tool'), 10 ], [ 'SelectorTool', 'selection', $d->get('_Select'), undef, $d->get('Use the rectangular selection tool'), 20 ], [ 'PainterTool', 'gtk-media-play', $d->get('_Paint'), undef, $d->get('Use the painter tool'), 30 ] ); my $ui = <<'EOS'; EOS # Create the basic Gtk2::ActionGroup instance # and fill it with Gtk2::Action instances my $actions_basic = Gtk2::ActionGroup->new("actions_basic"); $actions_basic->add_actions( \@action_items, undef ); $actions_basic->add_radio_actions( \@image_tools, 10, \&change_image_tool_cb ); # Add the actiongroup to the uimanager $uimanager->insert_action_group( $actions_basic, 0 ); # add the basic XML description of the GUI $uimanager->add_ui_from_string($ui); # extract the menubar $menubar = $uimanager->get_widget('/MenuBar'); $SETTING{user_defined_tools} = [ $SETTING{user_defined_tools} ] if ( ref( $SETTING{user_defined_tools} ) ne 'ARRAY' ); for ( @{ $SETTING{user_defined_tools} } ) { my %tool = ( cmd => $_ ); push @user_defined_tools, \%tool; add_user_defined_tool_menu( \%tool ); } # Check for presence of various packages check_dependencies(); # Ghost save image item if imagemagick not available my $msg = ''; $msg .= $d->get("Save image and Save as PDF both require imagemagick\n") unless ( $dependencies{imagemagick} ); # Ghost save image item if libtiff not available $msg .= $d->get("Save image requires libtiff\n") unless ( $dependencies{libtiff} ); # Ghost djvu item if cjb2 not available $msg .= $d->get("Save as DjVu requires djvulibre-bin\n") unless ( $dependencies{djvu} ); # Ghost email item if xdg-email not available $msg .= $d->get("Email as PDF requires xdg-email\n") unless ( $dependencies{xdg} ); # Undo/redo start off ghosted anyway- $uimanager->get_widget('/MenuBar/Edit/Undo')->set_sensitive(FALSE); $uimanager->get_widget('/MenuBar/Edit/Redo')->set_sensitive(FALSE); $uimanager->get_widget('/ToolBar/Undo')->set_sensitive(FALSE); $uimanager->get_widget('/ToolBar/Redo')->set_sensitive(FALSE); # save * start off ghosted anyway- $uimanager->get_widget('/MenuBar/File/Save')->set_sensitive(FALSE); $uimanager->get_widget('/MenuBar/File/Email as PDF')->set_sensitive(FALSE); $uimanager->get_widget('/MenuBar/File/Print')->set_sensitive(FALSE); $uimanager->get_widget('/ToolBar/Save')->set_sensitive(FALSE); $uimanager->get_widget('/ToolBar/Email as PDF')->set_sensitive(FALSE); $uimanager->get_widget('/ToolBar/Print')->set_sensitive(FALSE); $uimanager->get_widget('/Thumb_Popup/Save')->set_sensitive(FALSE); $uimanager->get_widget('/Thumb_Popup/Email as PDF')->set_sensitive(FALSE); $uimanager->get_widget('/Thumb_Popup/Print')->set_sensitive(FALSE); $uimanager->get_widget('/MenuBar/Tools/Threshold')->set_sensitive(FALSE); $uimanager->get_widget('/MenuBar/Tools/Negate')->set_sensitive(FALSE); $uimanager->get_widget('/MenuBar/Tools/Unsharp')->set_sensitive(FALSE); $uimanager->get_widget('/MenuBar/Tools/Crop')->set_sensitive(FALSE); $uimanager->get_widget('/MenuBar/Tools/User-defined')->set_sensitive(FALSE); # a convenient place to put these $dependencies{pages} = -1; # Ghost rotations and unpaper if perlmagick not available unless ( $dependencies{perlmagick} ) { $uimanager->get_widget('/MenuBar/View/Rotate 90')->set_sensitive(FALSE); $uimanager->get_widget('/MenuBar/View/Rotate 180')->set_sensitive(FALSE); $uimanager->get_widget('/MenuBar/View/Rotate 270')->set_sensitive(FALSE); $uimanager->get_widget('/ToolBar/Rotate 90')->set_sensitive(FALSE); $uimanager->get_widget('/ToolBar/Rotate 180')->set_sensitive(FALSE); $uimanager->get_widget('/ToolBar/Rotate 270')->set_sensitive(FALSE); $uimanager->get_widget('/Detail_Popup/Rotate 90')->set_sensitive(FALSE); $uimanager->get_widget('/Detail_Popup/Rotate 180')->set_sensitive(FALSE); $uimanager->get_widget('/Detail_Popup/Rotate 270')->set_sensitive(FALSE); $uimanager->get_widget('/Thumb_Popup/Rotate 90')->set_sensitive(FALSE); $uimanager->get_widget('/Thumb_Popup/Rotate 180')->set_sensitive(FALSE); $uimanager->get_widget('/Thumb_Popup/Rotate 270')->set_sensitive(FALSE); $uimanager->get_widget('/MenuBar/Tools/unpaper')->set_sensitive(FALSE); $msg .= $d->get("The rotating options and unpaper support require perlmagick\n"); } # Ghost unpaper item if unpaper not available unless ( $dependencies{unpaper} ) { $uimanager->get_widget('/MenuBar/Tools/unpaper')->set_sensitive(FALSE); $msg .= $d->get("unpaper missing\n"); } # Ghost ocr item if gocr and tesseract not available if ( not $dependencies{gocr} and not $dependencies{tesseract} and not $dependencies{ocropus} and not $dependencies{cuneiform} ) { $uimanager->get_widget('/MenuBar/Tools/OCR')->set_sensitive(FALSE); $msg .= $d->get("OCR requires gocr, tesseract, ocropus, or cuneiform\n"); } # Put up warning if needed if ( $SETTING{'startup warning'} and $msg ne '' ) { my $dialog = Gtk2::Dialog->new( $d->get('Warning: missing packages'), $window, 'modal', 'gtk-ok' => 'none' ); my $label = Gtk2::Label->new($msg); $dialog->vbox->add($label); my $cb = Gtk2::CheckButton->new_with_label( $d->get("Don't show this message again") ); $cb->set_active(TRUE); $dialog->vbox->add($cb); $dialog->show_all; $dialog->run; $SETTING{'startup warning'} = FALSE if ( $cb->get_active ); $dialog->destroy; } # extract the toolbar $toolbar = $uimanager->get_widget('/ToolBar'); # turn off labels my $settings = $toolbar->get_settings(); $settings->set( 'gtk-toolbar-style', 'icons' ); # only icons return; } # ghost or unghost as necessary as # pages > 0 or not. sub update_uimanager { my @widgets = ( '/MenuBar/View/DraggerTool', '/MenuBar/View/SelectorTool', '/MenuBar/View/Zoom 100', '/MenuBar/View/Zoom to fit', '/MenuBar/View/Zoom in', '/MenuBar/View/Zoom out', '/MenuBar/View/Rotate 90', '/MenuBar/View/Rotate 180', '/MenuBar/View/Rotate 270', '/MenuBar/Tools/Threshold', '/MenuBar/Tools/Negate', '/MenuBar/Tools/Unsharp', '/MenuBar/Tools/Crop', '/MenuBar/Tools/unpaper', '/MenuBar/Tools/OCR', '/MenuBar/Tools/User-defined', '/ToolBar/DraggerTool', '/ToolBar/SelectorTool', '/ToolBar/Zoom 100', '/ToolBar/Zoom to fit', '/ToolBar/Zoom in', '/ToolBar/Zoom out', '/ToolBar/Rotate 90', '/ToolBar/Rotate 180', '/ToolBar/Rotate 270', '/Detail_Popup/DraggerTool', '/Detail_Popup/SelectorTool', '/Detail_Popup/Zoom 100', '/Detail_Popup/Zoom to fit', '/Detail_Popup/Zoom in', '/Detail_Popup/Zoom out', '/Detail_Popup/Rotate 90', '/Detail_Popup/Rotate 180', '/Detail_Popup/Rotate 270', '/Thumb_Popup/Rotate 90', '/Thumb_Popup/Rotate 180', '/Thumb_Popup/Rotate 270', ); if ( $slist->get_selected_indices ) { foreach (@widgets) { $uimanager->get_widget($_)->set_sensitive(TRUE); } } else { foreach (@widgets) { $uimanager->get_widget($_)->set_sensitive(FALSE); } } if ( $#{ $slist->{data} } > -1 ) { if ( $dependencies{pages} == -1 ) { if ( $dependencies{xdg} ) { $uimanager->get_widget('/MenuBar/File/Email as PDF')->set_sensitive(TRUE); $uimanager->get_widget('/ToolBar/Email as PDF')->set_sensitive(TRUE); $uimanager->get_widget('/Thumb_Popup/Email as PDF')->set_sensitive(TRUE); } if ( $dependencies{imagemagick} and $dependencies{libtiff} ) { $uimanager->get_widget('/MenuBar/File/Save')->set_sensitive(TRUE); $uimanager->get_widget('/ToolBar/Save')->set_sensitive(TRUE); $uimanager->get_widget('/Thumb_Popup/Save')->set_sensitive(TRUE); } $uimanager->get_widget('/MenuBar/File/Print')->set_sensitive(TRUE); $uimanager->get_widget('/ToolBar/Print')->set_sensitive(TRUE); $uimanager->get_widget('/Thumb_Popup/Print')->set_sensitive(TRUE); $dependencies{pages} = $#{ $slist->{data} }; } } else { if ( $dependencies{pages} > -1 ) { if ( $dependencies{xdg} ) { $uimanager->get_widget('/MenuBar/File/Email as PDF')->set_sensitive(FALSE); $uimanager->get_widget('/ToolBar/Email as PDF')->set_sensitive(FALSE); $uimanager->get_widget('/Thumb_Popup/Email as PDF')->set_sensitive(FALSE); $windowe->hide if defined $windowe; } if ( $dependencies{imagemagick} and $dependencies{libtiff} ) { $uimanager->get_widget('/MenuBar/File/Save')->set_sensitive(FALSE); $uimanager->get_widget('/ToolBar/Save')->set_sensitive(FALSE); $uimanager->get_widget('/Thumb_Popup/Save')->set_sensitive(FALSE); } $uimanager->get_widget('/MenuBar/File/Print')->set_sensitive(FALSE); $uimanager->get_widget('/ToolBar/Print')->set_sensitive(FALSE); $uimanager->get_widget('/Thumb_Popup/Print')->set_sensitive(FALSE); $windowi->hide if defined $windowi; $dependencies{pages} = $#{ $slist->{data} }; } } # If the scan dialog has already been drawn, update the start page spinbutton update_start(); return; } sub drag_data_received_callback { my ( $tree, $context, $x, $y, $sel ) = @_; my ( $path, $how ) = $tree->get_dest_row_at_pos( $x, $y ); my $model = $tree->get_model; my $data = $sel->data or return; my $delete = $context->action == 'move'; ## no critic (ProhibitMismatchedOperators) my @rows = $tree->get_selection->get_selected_rows or return; my @data; for (@rows) { my $iter = $model->get_iter($_); my @info = $model->get($iter); my $suffix; $suffix = $1 if ( $info[2]->{filename} =~ /(\.\w*)$/x ); my $new = File::Temp->new( DIR => $SETTING{session}, SUFFIX => $suffix ); # quotes required to prevent File::Temp objects from being clobbered copy( "$info[2]->{filename}", "$new" ) or show_message_dialog( $window, 'error', 'close', $d->get('Error copying page') ); $info[2]->{filename} = $new; push @data, [@info]; } # Block row-changed signal so that the list can be updated before the sort # takes over. $tree->get_model->signal_handler_block( $tree->{row_changed_signal} ); if ($path) { if ( $how eq 'after' or $how eq 'into-or-after' ) { splice @{ $tree->{data} }, $path->to_string + 1, 0, @data; } else { splice @{ $tree->{data} }, $path->to_string, 0, @data; } } else { push @{ $tree->{data} }, @data; } $tree->renumber; $tree->get_model->signal_handler_unblock( $tree->{row_changed_signal} ); # Update the start spinbutton if necessary update_start(); $context->finish( 1, $delete, time ); return; } sub selection_changed_callback { my @page = $slist->get_selected_indices; # Display the new image $scwin_buffer->remove($_) for ( $scwin_buffer->get_children ); if (@page) { my $path = Gtk2::TreePath->new_from_indices( $page[0] ); $slist->scroll_to_cell($path); my $sel = $selector->get_selection; display_image( $slist->{data}[ $page[0] ][2] ); $selector->set_selection($sel) if ( defined $sel ); } else { $view->set_pixbuf(undef); undef $current_page; } return; } sub drag_motion_callback { my ( $tree, $context, $x, $y, $t ) = @_; my ( $path, $how ) = $tree->get_dest_row_at_pos( $x, $y ) or return; my $scroll = $tree->parent; # Add the marker showing the drop in the tree $tree->set_drag_dest_row( $path, $how ); # Make move the default my @action; if ( $context->actions == 'copy' ) ## no critic (ProhibitMismatchedOperators) { @action = ('copy'); } else { @action = ('move'); } $context->status( @action, $t ); my $adj = $scroll->get_vadjustment; my ( $value, $step ) = ( $adj->value, $adj->step_increment ); if ( $y > $adj->page_size - $step / 2 ) { my $v = $value + $step; my $m = $adj->upper - $adj->page_size; $adj->set_value( $v > $m ? $m : $v ); } elsif ( $y < $step / 2 ) { my $v = $value - $step; my $m = $adj->lower; $adj->set_value( $v < $m ? $m : $v ); } return FALSE; } sub create_temp_directory { find_crashed_sessions(); # Create temporary directory if necessary unless ( defined $session ) { if ( defined( $SETTING{TMPDIR} ) and $SETTING{TMPDIR} ne '' ) { mkdir( $SETTING{TMPDIR} ) if ( not -d $SETTING{TMPDIR} ); try { $session = File::Temp->newdir( 'gscan2pdf-XXXX', DIR => $SETTING{TMPDIR} ); } catch { $session = File::Temp->newdir( 'gscan2pdf-XXXX', TMPDIR => 1 ); $logger->warn( sprintf( $d->get( "Warning: unable to use %s for temporary storage. Defaulting to %s instead." ), $SETTING{TMPDIR}, dirname($session) ) ); }; } else { $session = File::Temp->newdir( 'gscan2pdf-XXXX', TMPDIR => 1 ); } $slist->set_dir($session); open $lockfh, '>', ## no critic (RequireBriefOpen) File::Spec->catfile( $session, 'lockfile' ) or die "Cannot open lockfile\n"; flock( $lockfh, LOCK_EX ) or die "Cannot lock file\n"; $slist->save_session; $logger->info("Using $session for temporary files"); } return; } sub find_crashed_sessions { # Look for crashed sessions if ( defined( $SETTING{TMPDIR} ) and $SETTING{TMPDIR} ne '' ) { $tmpdir = $SETTING{TMPDIR}; } else { $tmpdir = File::Spec->tmpdir; } $logger->info("Checking $tmpdir for crashed sessions"); my ( @sessions, @crashed, $selected ) = glob File::Spec->catfile( $tmpdir, 'gscan2pdf-????' ); # Forget those used by running sessions for (@sessions) { if ( open $lockfh, '>', File::Spec->catfile( $_, 'lockfile' ) and flock( $lockfh, LOCK_EX | LOCK_NB ) ) { push @crashed, $_; flock( $lockfh, LOCK_UN ) or die "Unlocking error on $lockfh ($!)\n"; close $lockfh or warn "Error closing $lockfh ($!)\n"; } } # Flag those with no session file my @missing; for ( 0 .. $#crashed ) { if ( not -r File::Spec->catfile( $crashed[$_], 'session' ) ) { push @missing, $crashed[$_]; splice @crashed, $_, 1; } } if (@missing) { my $dialog = Gtk2::Dialog->new( $d->get('Crashed sessions'), $window, 'modal', 'gtk-delete' => 'ok', 'gtk-cancel' => 'cancel' ); my $text = Gtk2::TextView->new; $text->set_wrap_mode('word'); $text->get_buffer->set_text( $d->get( 'The following list of sessions cannot be restored.' . ' Please retrieve any images you require from them.' . ' Selected sessions will be deleted.' ) ); $dialog->vbox->add($text); my $sessionlist = Gtk2::Ex::Simple::List->new( $d->get('Session') => 'text', ); push @{ $sessionlist->{data} }, @missing; $dialog->vbox->add($sessionlist); $dialog->show_all; if ( $dialog->run eq 'ok' ) { my @selected = $sessionlist->get_selected_indices; for (@selected) { $_ = $missing[$_] } if (@selected) { remove_tree(@selected) } } $dialog->destroy; } # Allow user to pick a crashed session to restore if (@crashed) { my $dialog = Gtk2::Dialog->new( $d->get('Pick crashed session to restore'), $window, 'modal', 'gtk-ok' => 'ok', 'gtk-cancel' => 'cancel' ); my $label = Gtk2::Label->new( $d->get('Pick crashed session to restore') ); $dialog->vbox->add($label); my $sessionlist = Gtk2::Ex::Simple::List->new( $d->get('Session') => 'text', ); push @{ $sessionlist->{data} }, @crashed; $dialog->vbox->add($sessionlist); $dialog->show_all; ($selected) = $sessionlist->get_selected_indices if ( $dialog->run eq 'ok' ); $dialog->destroy; if ( defined $selected ) { $session = $crashed[$selected]; open $lockfh, '>', ## no critic (RequireBriefOpen) File::Spec->catfile( $session, 'lockfile' ) or die "Cannot open lockfile\n"; flock( $lockfh, LOCK_EX ) or die "Cannot lock file\n"; $slist->set_dir($session); open_session($session); } } return; } sub display_image { my ($page) = @_; $current_page = $page; # quotes required to prevent File::Temp object being clobbered my $pixbuf = Gtk2::Gdk::Pixbuf->new_from_file("$current_page->{filename}"); $view->set_pixbuf($pixbuf); # Get image dimensions to constrain selector spinbuttons on crop dialog ( $current_page->{w}, $current_page->{h} ) = ( $pixbuf->get_width, $pixbuf->get_height ); # Update the ranges on the crop dialog if ( defined($sb_selector_w) and defined($current_page) ) { $sb_selector_w->set_range( 0, $current_page->{w} - $sb_selector_x->get_value ); $sb_selector_h->set_range( 0, $current_page->{h} - $sb_selector_y->get_value ); $sb_selector_x->set_range( 0, $current_page->{w} - $sb_selector_w->get_value ); $sb_selector_y->set_range( 0, $current_page->{h} - $sb_selector_h->get_value ); $SETTING{selection}[0] = $sb_selector_x->get_value; $SETTING{selection}[1] = $sb_selector_y->get_value; $SETTING{selection}[2] = $sb_selector_w->get_value; $SETTING{selection}[3] = $sb_selector_h->get_value; $selector->set_selection( Gtk2::Gdk::Rectangle->new( @{ $SETTING{selection} } ) ); } # Convert hocr output to Goo:Canvas if defined create_canvas($current_page) if ( defined $current_page->{hocr} ); return; } sub create_canvas { my ($page) = @_; $current_page = $page; # Set up the canvas $canvas = Goo::Canvas->new; my $root = $canvas->get_root_item; unless ( defined $page->{w} ) { # quotes required to prevent File::Temp object being clobbered my $pixbuf = Gtk2::Gdk::Pixbuf->new_from_file("$page->{filename}"); $page->{w} = $pixbuf->get_width; $page->{h} = $pixbuf->get_height; } $canvas->set_bounds( 0, 0, $page->{w}, $page->{h} ); # Attach the text to the canvas for my $box ( $page->boxes ) { my ( $x1, $y1, $x2, $y2, $text ) = @$box; boxed_text( text => $text, x1 => $x1, y1 => $y1, x2 => $x2, y2 => $y2, size => abs( $y2 - $y1 ) ); } # Remove the existing contents $scwin_buffer->remove($_) for ( $scwin_buffer->get_children ); $scwin_buffer->add($canvas); $canvas->set_scale( $view->get_zoom ); $canvas->show; return; } # Deletes all scans after warning. sub new { # Check that all pages have been saved for ( my $i = 0 ; $i < @{ $slist->{data} } ; $i++ ) { if ( not $slist->{data}[$i][2]{saved} ) { my $response = show_message_dialog( $window, 'question', 'ok-cancel', $d->get( "Some pages have not been saved.\nDo you really want to clear all pages?") ); if ( $response ne 'ok' ) { return FALSE; } else { last; } } } # Update undo/redo buffers take_snapshot(); # Deselect everything to prevent error removing selected thumbs $slist->get_selection->unselect_all; # Depopulate the thumbnail list @{ $slist->{data} } = (); # Reset start page in scan dialog reset_start(); update_uimanager(); return; } # Create a file filter to show only supported file types in FileChooser dialog sub add_filter { my ( $file_chooser, $name, @file_extensions ) = @_; my $filter = Gtk2::FileFilter->new; for my $extension (@file_extensions) { my @filter_pattern; # Create case insensitive pattern for my $byte ( split //, $extension ) { push( @filter_pattern, '[' . uc($byte) . lc($byte) . ']' ); } my $new_filter_pattern = join( '', @filter_pattern ); $filter->add_pattern( '*.' . $new_filter_pattern ); } my $types; for (@file_extensions) { if ( defined $types ) { $types .= ", *.$_"; } else { $types = "*.$_"; } } $filter->set_name("$name ($types)"); $file_chooser->add_filter($filter); $filter = Gtk2::FileFilter->new; $filter->add_pattern('*'); $filter->set_name('All files'); $file_chooser->add_filter($filter); return; } sub error_callback { my ($message) = @_; show_message_dialog( $window, 'error', 'close', $message ); return; } sub open_session_file { my ($filename) = @_; $logger->info("Restoring session in $session"); $slist->open_session_file( $filename, \&error_callback ); update_uimanager(); return; } sub open_session_action { my ($action) = @_; my $file_chooser = Gtk2::FileChooserDialog->new( $d->get('Open crashed session'), $window, 'select-folder', 'gtk-cancel' => 'cancel', 'gtk-ok' => 'ok' ); $file_chooser->set_default_response('ok'); $file_chooser->set_current_folder( $SETTING{'cwd'} ); if ( 'ok' eq $file_chooser->run ) { # Update undo/redo buffers take_snapshot(); my @filename = $file_chooser->get_filenames; open_session( $filename[0] ); } $file_chooser->destroy; return; } sub open_session { my ($sesdir) = @_; $logger->info("Restoring session in $session"); $slist->open_session( $sesdir, FALSE, \&error_callback ); update_uimanager(); return; } # Helper function to set up thread progress bar sub setup_tpbar { my ( $thread, $process, $completed, $total, $pid ) = @_; if ( $total and defined($process) ) { $tpbar->set_text( sprintf( $d->get("Process %i of %i (%s)"), $completed + 1, $total, $process ) ); $tpbar->set_fraction( ( $completed + 0.5 ) / $total ); $thbox->show_all; # Pass the signal back to: # 1. be able to cancel it when the process has finished # 2. flag that the progress bar has been set up # and avoid the race condition where the callback is entered before the $completed and $total variables have caught up return $tcbutton->signal_connect( clicked => sub { $slist->cancel($pid); $thbox->hide; } ); } return; } # Helper function to update thread progress bar sub update_tpbar { my (%options) = @_; if ( $options{total} ) { if ( defined $options{process_name} ) { $options{process_name} .= " - $options{message}" if ( defined $options{message} ); $tpbar->set_text( sprintf( $d->get("Process %i of %i (%s)"), $options{jobs_completed} + 1, $options{jobs_total}, $options{process_name} ) ); } else { $tpbar->set_text( sprintf( $d->get("Process %i of %i"), $options{jobs_completed} + 1, $options{jobs_total} ) ); } if ( defined $options{progress} ) { $tpbar->set_fraction( ( $options{jobs_completed} + $options{progress} ) / $options{jobs_total} ); } else { $tpbar->set_fraction( ( $options{jobs_completed} + 0.5 ) / $options{jobs_total} ); } $thbox->show_all; return TRUE; } return; } # Throw up file selector and open selected file sub open_dialog { # cd back to cwd to get filename chdir $SETTING{'cwd'}; my $file_chooser = Gtk2::FileChooserDialog->new( $d->get('Open image'), $window, 'open', 'gtk-cancel' => 'cancel', 'gtk-ok' => 'ok' ); $file_chooser->set_select_multiple(TRUE); $file_chooser->set_default_response('ok'); $file_chooser->set_current_folder( $SETTING{'cwd'} ); add_filter( $file_chooser, $d->get('Image files'), 'jpg', 'png', 'pnm', 'gif', 'tif', 'tiff', 'pdf', 'djvu', 'ps', 'gs2p' ); if ( 'ok' eq $file_chooser->run ) { # cd back to tempdir to import chdir $session; # Update undo/redo buffers take_snapshot(); my @filename = $file_chooser->get_filenames; $file_chooser->destroy; # Update cwd $SETTING{'cwd'} = dirname( $filename[0] ); for (@filename) { my ( $signal, $pid ); $pid = $slist->get_file_info( path => $_, queued_callback => sub { return update_tpbar(@_); }, started_callback => sub { my ( $thread, $process, $completed, $total ) = @_; $signal = setup_tpbar( $thread, $process, $completed, $total, $pid ); return TRUE if ( defined $signal ); }, finished_callback => sub { my ( $info, $pending ) = @_; if ( $info->{format} eq 'session file' ) { open_session_file( $info->{path} ); } elsif ( $info->{pages} > 1 ) { my $windowq = Gscan2pdf::Dialog->new( 'transient-for' => $window, title => $d->get('Pages to extract'), border_width => $border_width ); my $vbox = $windowq->get('vbox'); my $hbox = Gtk2::HBox->new; $vbox->pack_start( $hbox, TRUE, TRUE, 0 ); my $label = Gtk2::Label->new( $d->get('First page to extract') ); $hbox->pack_start( $label, FALSE, FALSE, 0 ); my $spinbuttonf = Gtk2::SpinButton->new_with_range( 1, $info->{pages}, 1 ); $hbox->pack_end( $spinbuttonf, FALSE, FALSE, 0 ); $hbox = Gtk2::HBox->new; $vbox->pack_start( $hbox, TRUE, TRUE, 0 ); $label = Gtk2::Label->new( $d->get('Last page to extract') ); $hbox->pack_start( $label, FALSE, FALSE, 0 ); my $spinbuttonl = Gtk2::SpinButton->new_with_range( 1, $info->{pages}, 1 ); $spinbuttonl->set_value( $info->{pages} ); $hbox->pack_end( $spinbuttonl, FALSE, FALSE, 0 ); # HBox for buttons my $hboxb = Gtk2::HBox->new; $vbox->pack_start( $hboxb, FALSE, TRUE, 0 ); # OK button my $obutton = Gtk2::Button->new_from_stock('gtk-ok'); $hboxb->pack_start( $obutton, TRUE, TRUE, 0 ); $obutton->signal_connect( clicked => sub { $windowq->destroy; import_file( $info, $spinbuttonf->get_value, $spinbuttonl->get_value ); } ); # Cancel button my $cbutton = Gtk2::Button->new_from_stock('gtk-cancel'); $hboxb->pack_start( $cbutton, TRUE, TRUE, 0 ); $cbutton->signal_connect( clicked => sub { $windowq->destroy; return; } ); $windowq->show_all; } else { import_file( $info, 1, 1 ); } }, error_callback => \&error_callback ); } } else { $file_chooser->destroy; } # cd back to tempdir chdir $session; return; } # Wrapper for $slist->import_file sub import_file { my ( $info, $first_page, $last_page ) = @_; my ( $signal, $pid ); $pid = $slist->import_file( info => $info, first => $first_page, last => $last_page, queued_callback => sub { return update_tpbar(@_); }, started_callback => sub { my ( $thread, $process, $completed, $total ) = @_; $signal = setup_tpbar( $thread, $process, $completed, $total, $pid ); return TRUE if ( defined $signal ); }, running_callback => sub { return update_tpbar(@_); }, finished_callback => sub { my ( $new_page, $pending ) = @_; $thbox->hide_all unless $pending; $tcbutton->signal_handler_disconnect($signal) if ( defined $signal ); update_uimanager(); }, error_callback => \&error_callback ); return; } # Add a frame and radio buttons to $vbox, sub add_page_range { my ($vbox) = @_; my $frame = Gtk2::Frame->new( $d->get('Page Range') ); $vbox->pack_start( $frame, FALSE, FALSE, 0 ); my $pr = Gscan2pdf::PageRange->new; $pr->set_active( $SETTING{'Page range'} ) if ( defined $SETTING{'Page range'} ); $pr->signal_connect( changed => sub { $SETTING{'Page range'} = $pr->get_active; } ); $frame->add($pr); push @prlist, $pr; return; } # return string of filenames depending on which radiobutton is active sub get_pagelist { my $n; my $pagelist; if ( $SETTING{'Page range'} eq 'all' ) { $n = $#{ $slist->{data} }; $pagelist = $slist->{data}[0][2]{filename}; my $i = 1; while ( $i < @{ $slist->{data} } ) { $pagelist = $pagelist . " " . $slist->{data}[$i][2]{filename}; ++$i; } } elsif ( $SETTING{'Page range'} eq 'selected' ) { my @page = $slist->get_selected_indices; $n = $#page; $pagelist = $slist->{data}[ $page[0] ][2]{filename}; my $i = 1; while ( $i < @page ) { $pagelist = $pagelist . " " . $slist->{data}[ $page[$i] ][2]{filename}; ++$i; } } return ( $pagelist, $n ); } # Add PDF options to $vbox sub add_pdf_metadata { my ($vbox) = @_; # Frame for metadata my $frame = Gtk2::Frame->new( $d->get('Metadata') ); $vbox->pack_start( $frame, TRUE, TRUE, 0 ); my $vboxm = Gtk2::VBox->new; $vboxm->set_border_width($border_width); $frame->add($vboxm); # Date/time my $hboxe = Gtk2::HBox->new; $vboxm->pack_start( $hboxe, TRUE, TRUE, 0 ); my $labele = Gtk2::Label->new( $d->get('Date') ); $hboxe->pack_start( $labele, FALSE, FALSE, 0 ); my ( $day, $month, $year ) = ( localtime( time + $SETTING{'date offset'} * 24 * 60 * 60 ) )[ 3, 4, 5 ]; $year += 1900; $month += 1; my $button = Gtk2::Button->new( sprintf( "%04d-%02d-%02d", $year, $month, $day ) ); $button->signal_connect( clicked => sub { my $window_date = Gscan2pdf::Dialog->new( 'transient-for' => $windowi, title => $d->get('Select Date'), border_width => $border_width ); my $vbox_date = $window_date->get('vbox'); $window_date->set_resizable(FALSE); my $calendar = Gtk2::Calendar->new; $calendar->select_day($day); $calendar->select_month( $month - 1, $year ); $calendar->signal_connect( day_selected_double_click => sub { ( $year, $month, $day ) = $calendar->get_date; $month += 1; $button->set_label( sprintf( "%04d-%02d-%02d", $year, $month, $day ) ); use Time::Local; $SETTING{'date offset'} = int( ( timelocal( 0, 0, 0, $day, $month - 1, $year ) - time ) / 60 / 60 / 24 ); $window_date->destroy; } ); $vbox_date->pack_start( $calendar, TRUE, TRUE, 0 ); my $today = Gtk2::Button->new( $d->get('Today') ); $today->signal_connect( clicked => sub { ( $day, $month, $year ) = ( localtime() )[ 3, 4, 5 ]; $year += 1900; $calendar->select_day($day); $calendar->select_month( $month, $year ); } ); $vbox_date->pack_start( $today, TRUE, TRUE, 0 ); $window_date->show_all; } ); $tooltips->set_tip( $button, $d->get('Year-Month-Day') ); $hboxe->pack_end( $button, TRUE, TRUE, 0 ); # Document author my $hboxa = Gtk2::HBox->new; $vboxm->pack_start( $hboxa, TRUE, TRUE, 0 ); my $labela = Gtk2::Label->new( $d->get('Document author') ); $hboxa->pack_start( $labela, FALSE, FALSE, 0 ); my $entrya = Gtk2::Entry->new; $hboxa->pack_end( $entrya, TRUE, TRUE, 0 ); $entrya->set_text( $SETTING{author} ) if ( defined( $SETTING{author} ) ); # Title my $hboxt = Gtk2::HBox->new; $vboxm->pack_start( $hboxt, TRUE, TRUE, 0 ); my $labelt = Gtk2::Label->new( $d->get('Title') ); $hboxt->pack_start( $labelt, FALSE, FALSE, 0 ); my $entryt = Gtk2::Entry->new; $hboxt->pack_end( $entryt, TRUE, TRUE, 0 ); $entryt->set_text( $SETTING{title} ) if ( defined( $SETTING{title} ) ); # Subject my $hboxs = Gtk2::HBox->new; $vboxm->pack_start( $hboxs, TRUE, TRUE, 0 ); my $labels = Gtk2::Label->new( $d->get('Subject') ); $hboxs->pack_start( $labels, FALSE, FALSE, 0 ); my $entrys = Gtk2::Entry->new; $hboxs->pack_end( $entrys, TRUE, TRUE, 0 ); $entrys->set_text( $SETTING{subject} ) if ( defined( $SETTING{subject} ) ); # Keywords my $hboxk = Gtk2::HBox->new; $vboxm->pack_start( $hboxk, TRUE, TRUE, 0 ); my $labelk = Gtk2::Label->new( $d->get('Keywords') ); $hboxk->pack_start( $labelk, FALSE, FALSE, 0 ); my $entryk = Gtk2::Entry->new; $hboxk->pack_end( $entryk, TRUE, TRUE, 0 ); $entryk->set_text( $SETTING{keywords} ) if ( defined( $SETTING{keywords} ) ); return ( $entrya, $entryt, $entrys, $entryk ); } sub update_PDF_settings { my ( $entrya, $entryt, $entrys, $entryk ) = @_; # Get metadata $SETTING{author} = $entrya->get_text; $SETTING{title} = $entryt->get_text; $SETTING{subject} = $entrys->get_text; $SETTING{keywords} = $entryk->get_text; return; } sub get_pdf_metadata { my %h; $h{Author} = $SETTING{author} if defined $SETTING{author}; my ( $day, $month, $year ) = ( localtime( time + $SETTING{'date offset'} * 24 * 60 * 60 ) )[ 3, 4, 5 ]; $year += 1900; $month += 1; $h{CreationDate} = sprintf( "D:%4i%02i%02i000000+00'00'", $year, $month, $day ); $h{ModDate} = sprintf( "D:%4i%02i%02i000000+00'00'", $year, $month, $day ); $h{Creator} = "$prog_name v$VERSION"; $h{Producer} = "PDF::API2"; $h{Title} = $SETTING{title} if defined $SETTING{title}; $h{Subject} = $SETTING{subject} if defined $SETTING{subject}; $h{Keywords} = $SETTING{keywords} if defined $SETTING{keywords}; return \%h; } # Draw text on the canvas with a box around it sub boxed_text { my (%options) = @_; my $root = $canvas->get_root_item; my $g = Goo::Canvas::Group->new($root); $g->translate( $options{x1}, $options{y1} ); # draw the rect first to make sure the text goes on top and receives any mouse clicks my $rect = Goo::Canvas::Rect->new( $g, 0, 0, $options{x2} - $options{x1}, $options{y2} - $options{y1} ); my $text = Goo::Canvas::Text->new( $g, $options{text}, 0, 0, $options{x2} - $options{x1}, 'nw', 'height' => $options{size}, ); # clicking text box produces a dialog to edit the text $text->signal_connect( 'button-press-event' => sub { my ( $widget, $target, $ev ) = @_; my $dialog = Gtk2::Dialog->new( $d->get('Editing text') . "...", $window, 'modal', 'gtk-ok' => 'ok', 'gtk-cancel' => 'cancel' ); my $textview = Gtk2::TextView->new; my $textbuffer = $textview->get_buffer; $textbuffer->set( text => $widget->get('text') ); $dialog->vbox->add($textview); $dialog->set_default_response('ok'); $dialog->show_all; if ( $dialog->run eq 'ok' ) { $widget->set( text => $textbuffer->get('text') ); canvas2hocr(); } $dialog->destroy; $canvas->pointer_ungrab( $widget, $ev->time ); return TRUE; } ); # $rect->signal_connect( # 'button-press-event' => sub { # my ( $widget, $target, $ev ) = @_; # print "rect button-press-event\n"; # # return TRUE; # } # ); # $g->signal_connect( # 'button-press-event' => sub { # my ( $widget, $target, $ev ) = @_; # print "group $widget button-press-event\n"; # my $n = $widget->get_n_children; # for ( my $i = 0 ; $i < $n ; $i++ ) { # my $item = $widget->get_child($i); # if ( $item->isa('Goo::Canvas::Text') ) { # print "contains $item\n", $item->get('text'), "\n"; # last; # } # } # # return TRUE; # } # ); return; } # Convert the canvas into hocr sub canvas2hocr { my ( $x, $y, $w, $h ) = $canvas->get_bounds; $current_page->{hocr} = <<"EOS"; OCR Output
EOS my $root = $canvas->get_root_item; for my $i ( 0 .. $root->get_n_children - 1 ) { my $group = $root->get_child($i); my $bounds = $group->get_bounds; my ( $x1, $y1, $x2, $y2 ) = ( $bounds->x1 + 1, $bounds->y1 + 1, $bounds->x2 - 1, $bounds->y2 - 1 ); # my $matrix = $group->get_transform; FIXME: use this as soon as Goo::Canvas 0.07 is in generally available # my ( $x1, $y1 ) = ( $matrix->x0, $matrix->y0 ); # my ( $x2, $y2, $text ); my ($text); for my $i ( 0 .. $group->get_n_children - 1 ) { my $item = $group->get_child($i); if ( $item->isa('Goo::Canvas::Rect') ) { # ( $x2, $y2 ) = ( $x1 + $item->get('width'), $y1 + $item->get('height') ); } elsif ( $item->isa('Goo::Canvas::Text') ) { $text = $item->get('text'); } $current_page->{hocr} .= " $text\n" if ( defined($x2) and defined($text) ); } } $current_page->{hocr} .= "

"; return; } # Save selected pages as PDF under given name. sub save_PDF { my ($filename) = @_; # Compile list of pages my @list_of_pages; my @pagelist = $slist->get_page_index( $SETTING{'Page range'}, \&error_callback ); if ( not @pagelist ) { return } for (@pagelist) { push @list_of_pages, $slist->{data}[$_][2]; } # Compile options my %options = ( compression => $SETTING{'pdf compression'}, downsample => $SETTING{downsample}, 'downsample dpi' => $SETTING{'downsample dpi'}, quality => $SETTING{quality}, font => $SETTING{'pdf font'}, ); # Create the PDF $logger->debug("Started saving $filename"); my ( $signal, $pid ); $pid = $slist->save_pdf( path => $filename, list_of_pages => \@list_of_pages, metadata => get_pdf_metadata(), options => \%options, queued_callback => sub { return update_tpbar(@_); }, started_callback => sub { my ( $thread, $process, $completed, $total ) = @_; $signal = setup_tpbar( $thread, $process, $completed, $total, $pid ); return TRUE if ( defined $signal ); }, running_callback => sub { return update_tpbar(@_); }, finished_callback => sub { my ( $new_page, $pending ) = @_; $thbox->hide_all unless $pending; $tcbutton->signal_handler_disconnect($signal) if ( defined $signal ); mark_pages(@pagelist); system("xdg-open \"$filename\" &") if ( defined( $SETTING{'view files toggle'} ) and $SETTING{'view files toggle'} ); $logger->debug("Finished saving $filename"); }, error_callback => \&error_callback ); return; } # Set up quality spinbutton here so that it can be shown or hidden by callback sub add_quality_spinbutton { my ($vbox) = @_; my $hbox = Gtk2::HBox->new; $vbox->pack_start( $hbox, TRUE, TRUE, 0 ); my $label = Gtk2::Label->new( $d->get('JPEG Quality') ); $hbox->pack_start( $label, FALSE, FALSE, 0 ); my $spinbutton = Gtk2::SpinButton->new_with_range( 1, 100, 1 ); $spinbutton->set_value( $SETTING{'quality'} ); $hbox->pack_end( $spinbutton, FALSE, FALSE, 0 ); return ( $hbox, $spinbutton ); } sub add_pdf_compression { my ($vbox) = @_; # Downsample options my $hboxd = Gtk2::HBox->new; $vbox->pack_start( $hboxd, FALSE, FALSE, 0 ); my $button = Gtk2::CheckButton->new( $d->get('Downsample to') ); $button->set_active(TRUE); $hboxd->pack_start( $button, FALSE, FALSE, 0 ); my $spinbutton = Gtk2::SpinButton->new_with_range( 9, 2400, 1 ); $spinbutton->set_value( $SETTING{'downsample dpi'} ); my $label = Gtk2::Label->new( $d->get('PPI') ); $hboxd->pack_end( $label, FALSE, FALSE, 0 ); $hboxd->pack_end( $spinbutton, FALSE, FALSE, 0 ); $button->signal_connect( toggled => sub { if ( $button->get_active ) { $spinbutton->set_sensitive(TRUE); } else { $spinbutton->set_sensitive(FALSE); } } ); $button->set_active( $SETTING{'downsample'} ); # Compression options my @compression = ( [ 'auto', $d->get('Automatic'), $d->get('Let gscan2pdf which type of compression to use.') ], [ 'lzw', $d->get('LZW'), $d->get('Compress output with Lempel-Ziv & Welch encoding.') ], [ 'zip', $d->get('Zip'), $d->get('Compress output with deflate encoding.') ], [ 'packbits', $d->get('Packbits'), $d->get('Compress output with Packbits encoding.') ], # g3 and 4 give an error message # [ 'g3', $d->get('G3'), $d->get('Compress output with CCITT Group 3 encoding.') ], # [ 'g4', $d->get('G4'), $d->get('Compress output with CCITT Group 4 encoding.') ], [ 'png', $d->get('PNG'), $d->get('Compress output with PNG encoding.') ], [ 'jpg', $d->get('JPEG'), $d->get('Compress output with JPEG encoding.') ], [ 'none', $d->get('None'), $d->get('Use no compression algorithm on output.') ], ); # Compression ComboBox my $hbox = Gtk2::HBox->new; $vbox->pack_start( $hbox, TRUE, TRUE, 0 ); $label = Gtk2::Label->new( $d->get('Compression') ); $hbox->pack_start( $label, FALSE, FALSE, 0 ); # Set up quality spinbutton here so that it can be shown or hidden by callback my ( $hboxq, $spinbuttonq ) = add_quality_spinbutton($vbox); my $combob = combobox_from_array(@compression); $combob->signal_connect( changed => sub { if ( $compression[ $combob->get_active ][0] eq 'jpg' ) { $hboxq->show_all; } else { $hboxq->hide_all; } } ); combobox_set_active( $combob, $SETTING{'pdf compression'}, @compression ); $hbox->pack_end( $combob, FALSE, FALSE, 0 ); return ( $button, $spinbutton, $combob, $hboxq, $spinbuttonq, @compression ); } # Display page selector and on save a fileselector. sub save_dialog { # $SETTING{'Page range'} = 'selected' if $SETTING{'RMB'}; if ( defined $windowi ) { $windowi->present; return; } $windowi = Gscan2pdf::Dialog->new( 'transient-for' => $window, title => $d->get('Save'), 'hide-on-delete' => TRUE, border_width => $border_width ); my $vbox = $windowi->get('vbox'); # Frame for page range add_page_range($vbox); # Image type ComboBox my $hboxi = Gtk2::HBox->new; $vbox->pack_start( $hboxi, TRUE, TRUE, 0 ); my $label = Gtk2::Label->new( $d->get('Image type') ); $hboxi->pack_start( $label, FALSE, FALSE, 0 ); my @type = ( [ 'pdf', $d->get('PDF'), $d->get('Portable Document Format') ], [ 'gif', $d->get('GIF'), $d->get('CompuServe graphics interchange format') ], [ 'jpg', $d->get('JPEG'), $d->get('Joint Photographic Experts Group JFIF format') ], [ 'png', $d->get('PNG'), $d->get('Portable Network Graphics') ], [ 'pnm', $d->get('PNM'), $d->get('Portable anymap') ], [ 'ps', $d->get('PS'), $d->get('Postscript') ], [ 'tif', $d->get('TIFF'), $d->get('Tagged Image File Format') ], [ 'txt', $d->get('Text'), $d->get('Plain text') ], [ 'session', $d->get('Session'), $d->get('gscan2pdf session file') ], ); push @type, [ 'djvu', $d->get('DjVu'), $d->get('Deja Vu') ] if $dependencies{djvu}; my @tiff_compression = ( [ 'lzw', $d->get('LZW'), $d->get('Compress output with Lempel-Ziv & Welch encoding.') ], [ 'zip', $d->get('Zip'), $d->get('Compress output with deflate encoding.') ], # jpeg rather than jpg needed here because tiffcp uses -c jpeg [ 'jpeg', $d->get('JPEG'), $d->get('Compress output with JPEG encoding.') ], [ 'packbits', $d->get('Packbits'), $d->get('Compress output with Packbits encoding.') ], [ 'g3', $d->get('G3'), $d->get('Compress output with CCITT Group 3 encoding.') ], [ 'g4', $d->get('G4'), $d->get('Compress output with CCITT Group 4 encoding.') ], [ 'none', $d->get('None'), $d->get('Use no compression algorithm on output.') ], ); # Compression ComboBox my $hboxc = Gtk2::HBox->new; $vbox->pack_start( $hboxc, FALSE, FALSE, 0 ); $label = Gtk2::Label->new( $d->get('Compression') ); $hboxc->pack_start( $label, FALSE, FALSE, 0 ); # Set up quality spinbutton here so that it can be shown or hidden by callback my ( $hboxtq, $spinbuttontq ) = add_quality_spinbutton($vbox); $label = Gtk2::Label->new( $d->get('tiff') ); $hboxtq->pack_start( $label, FALSE, FALSE, 0 ); # Fill compression ComboBox my $combobtc = combobox_from_array(@tiff_compression); $combobtc->signal_connect( changed => sub { if ( $tiff_compression[ $combobtc->get_active ][0] eq 'jpeg' ) { $hboxtq->show_all; } else { $hboxtq->hide_all; $windowi->resize( 100, 100 ); # Doesn't matter that 200x200 is too small } } ); combobox_set_active( $combobtc, $SETTING{'tiff compression'}, @tiff_compression ); $hboxc->pack_end( $combobtc, FALSE, FALSE, 0 ); # PDF options my $vboxp = Gtk2::VBox->new; $vbox->pack_start( $vboxp, FALSE, FALSE, 0 ); my ( $entrya, $entryt, $entrys, $entryk ) = add_pdf_metadata($vboxp); # Compression options my ( $buttond, $spinbuttond, $combob, $hboxpq, $spinbuttonpq, @pdf_compression ) = add_pdf_compression($vboxp); # Font for non-ASCII text my $scwinf = Gtk2::ScrolledWindow->new; $scwinf->set_policy( 'automatic', 'automatic' ); $vbox->pack_start( $scwinf, TRUE, TRUE, 0 ); my $hboxf = Gtk2::HBox->new; $scwinf->add_with_viewport($hboxf); $scwinf->get_child->set_shadow_type('none'); $label = Gtk2::Label->new( $d->get('Font for non-ASCII text') ); $hboxf->pack_start( $label, FALSE, FALSE, 0 ); my @fonts; my ($stdout) = Gscan2pdf::Document::open_three('fc-list : family style file'); for ( split /\n/, $stdout ) { if (/ttf:\ /x) { my ( $file, $family, $style ) = split ':'; chomp $style; $family =~ s/^\ //x; $style =~ s/^style=//x; $style =~ s/,.*$//x; my $font = "$family $style"; push @fonts, [ $file, $font, $font ]; $SETTING{'pdf font'} = $file if ( not defined( $SETTING{'pdf font'} ) and $font eq 'Times New Roman Regular' ); } } @fonts = sort { $a->[1] cmp $b->[1] } @fonts; my $combof = combobox_from_array(@fonts); combobox_set_active( $combof, $SETTING{'pdf font'}, @fonts ); $hboxf->pack_start( $combof, FALSE, FALSE, 0 ); # Fill image type ComboBox my $combobi = combobox_from_array(@type); $combobi->signal_connect( changed => \&image_type_changed_callback, [ \@type, $vboxp, $hboxf, \@pdf_compression, $combob, $hboxpq, $hboxc, \@tiff_compression, $combobtc, $hboxtq ] ); combobox_set_active( $combobi, $SETTING{'image type'}, @type ); $hboxi->pack_end( $combobi, FALSE, FALSE, 0 ); # HBox for buttons my $hboxb = Gtk2::HBox->new; $vbox->pack_start( $hboxb, FALSE, TRUE, 0 ); # Save button my $sbutton = Gtk2::Button->new_from_stock('gtk-save'); $hboxb->pack_start( $sbutton, TRUE, TRUE, 0 ); $sbutton->signal_connect( clicked => \&save_button_clicked_callback, [ \@type, $combobi, $buttond, $spinbuttond, \@pdf_compression, $combob, $spinbuttonpq, \@fonts, $combof, $entrya, $entryt, $entrys, $entryk, \@tiff_compression, $combobtc, $spinbuttontq ] ); # Cancel button my $cbutton = Gtk2::Button->new_from_stock('gtk-cancel'); $hboxb->pack_end( $cbutton, FALSE, FALSE, 0 ); $cbutton->signal_connect( clicked => sub { $windowi->hide; } ); $windowi->show_all; $hboxpq->hide_all if ( $pdf_compression[ $combob->get_active ][0] ne 'jpg' ); $hboxtq->hide_all if ( $type[ $combobi->get_active ][0] ne 'jpg' or ( $type[ $combobi->get_active ][0] eq 'tif' and $tiff_compression[ $combobtc->get_active ][0] ne 'jpg' ) ); $hboxc->hide_all if ( $type[ $combobi->get_active ][0] ne 'tif' and $type[ $combobi->get_active ][0] ne 'ps' ); if ( $type[ $combobi->get_active ][0] ne 'pdf' ) { $vboxp->hide_all; $hboxf->hide_all; } $windowi->resize( 100, 100 ); # Doesn't matter that 200x200 is too small return; } sub image_type_changed_callback { my ( $widget, $data ) = @_; my ( $type, $vboxp, $hboxf, $pdf_compression, $combob, $hboxpq, $hboxc, $tiff_compression, $combobtc, $hboxtq ) = @$data; if ( $type->[ $widget->get_active ][0] eq 'pdf' ) { $vboxp->show_all; $hboxf->show_all; if ( $pdf_compression->[ $combob->get_active ][0] eq 'jpg' ) { $hboxpq->show_all; } else { $hboxpq->hide_all; $windowi->resize( 100, 100 ); # Doesn't matter that 200x200 is too small } } else { $vboxp->hide_all; $hboxf->hide_all; $windowi->resize( 100, 100 ); # Doesn't matter that 200x200 is too small } if ($type->[ $widget->get_active ][0] eq 'tif' or $type->[ $widget->get_active ][0] eq 'ps' ) { $hboxc->show_all; } else { $hboxc->hide_all; $windowi->resize( 100, 100 ); # Doesn't matter that 200x200 is too small } if ( $type->[ $widget->get_active ][0] eq 'jpg' or ( $type->[ $widget->get_active ][0] eq 'tif' and $tiff_compression->[ $combobtc->get_active ][0] eq 'jpeg' ) ) { $hboxtq->show_all; } else { $hboxtq->hide_all; $windowi->resize( 100, 100 ); # Doesn't matter that 200x200 is too small } return; } sub save_button_clicked_callback { my ( $widget, $data ) = @_; my ( $type, $combobi, $buttond, $spinbuttond, $pdf_compression, $combob, $spinbuttonpq, $fonts, $combof, $entrya, $entryt, $entrys, $entryk, $tiff_compression, $combobtc, $spinbuttontq ) = @$data; # dig out the image type, compression and quality $SETTING{'image type'} = $type->[ $combobi->get_active ][0]; given ( $SETTING{'image type'} ) { when ('pdf') { # dig out the compression $SETTING{'downsample'} = $buttond->get_active; $SETTING{'downsample dpi'} = $spinbuttond->get_value; $SETTING{'pdf compression'} = $pdf_compression->[ $combob->get_active ][0]; $SETTING{'quality'} = $spinbuttonpq->get_value; $SETTING{'pdf font'} = $fonts->[ $combof->get_active ][0]; update_PDF_settings( $entrya, $entryt, $entrys, $entryk ); # cd back to cwd to save chdir $SETTING{'cwd'}; # Set up file selector my $file_chooser = Gtk2::FileChooserDialog->new( $d->get('PDF filename'), $windowi, 'save', 'gtk-cancel' => 'cancel', 'gtk-save' => 'ok' ); my ( $dday, $dmonth, $dyear ) = ( localtime( time + $SETTING{'date offset'} * 24 * 60 * 60 ) )[ 3, 4, 5 ]; $dyear += 1900; $dmonth = sprintf( "%02d", $dmonth + 1 ); $dday = sprintf( "%02d", $dday ); my ( $tday, $tmonth, $tyear ) = ( localtime(time) )[ 3, 4, 5 ]; $tyear += 1900; $tmonth = sprintf( "%02d", $tmonth + 1 ); $tday = sprintf( "%02d", $tday ); my $filename = $SETTING{'default filename'}; $filename =~ s/%a/$SETTING{author}/g; $filename =~ s/%t/$SETTING{title}/g; $filename =~ s/%y/$dyear/g; $filename =~ s/%Y/$tyear/g; $filename =~ s/%m/$dmonth/g; $filename =~ s/%M/$tmonth/g; $filename =~ s/%d/$dday/g; $filename =~ s/%D/$tday/g; $file_chooser->set_current_name($filename); $file_chooser->set_default_response('ok'); $file_chooser->set_current_folder( $SETTING{'cwd'} ); add_filter( $file_chooser, $d->get('PDF files'), 'pdf' ); $file_chooser->set_do_overwrite_confirmation(TRUE); $file_chooser->signal_connect( response => \&file_chooser_response_callback, 'pdf' ); $file_chooser->show; # cd back to tempdir chdir $session; } when ('djvu') { # cd back to cwd to save chdir $SETTING{'cwd'}; # Set up file selector my $file_chooser = Gtk2::FileChooserDialog->new( $d->get('DjVu filename'), $windowi, 'save', 'gtk-cancel' => 'cancel', 'gtk-save' => 'ok' ); $file_chooser->set_default_response('ok'); $file_chooser->set_current_folder( $SETTING{'cwd'} ); add_filter( $file_chooser, $d->get('DjVu files'), 'djvu' ); $file_chooser->set_do_overwrite_confirmation(TRUE); $file_chooser->signal_connect( response => \&file_chooser_response_callback, 'djvu' ); $file_chooser->show; # cd back to tempdir chdir $session; } when ('tif') { $SETTING{'tiff compression'} = $tiff_compression->[ $combobtc->get_active ][0]; $SETTING{'quality'} = $spinbuttontq->get_value; # cd back to cwd to save chdir $SETTING{'cwd'}; # Set up file selector my $file_chooser = Gtk2::FileChooserDialog->new( $d->get('TIFF filename'), $windowi, 'save', 'gtk-cancel' => 'cancel', 'gtk-save' => 'ok' ); $file_chooser->set_default_response('ok'); $file_chooser->set_current_folder( $SETTING{'cwd'} ); add_filter( $file_chooser, $d->get('Image files'), $SETTING{'image type'} ); $file_chooser->set_do_overwrite_confirmation(TRUE); $file_chooser->signal_connect( response => \&file_chooser_response_callback, 'tif' ); $file_chooser->show; # cd back to tempdir chdir $session; } when ('txt') { # cd back to cwd to save chdir $SETTING{'cwd'}; # Set up file selector my $file_chooser = Gtk2::FileChooserDialog->new( $d->get('Text filename'), $windowi, 'save', 'gtk-cancel' => 'cancel', 'gtk-save' => 'ok' ); $file_chooser->set_default_response('ok'); $file_chooser->set_current_folder( $SETTING{'cwd'} ); $file_chooser->set_do_overwrite_confirmation(TRUE); add_filter( $file_chooser, $d->get('Text files'), 'txt' ); $file_chooser->signal_connect( response => \&file_chooser_response_callback, 'txt' ); $file_chooser->show; # cd back to tempdir chdir $session; } when ('ps') { $SETTING{'tiff compression'} = $tiff_compression->[ $combobtc->get_active ][0]; $SETTING{'quality'} = $spinbuttontq->get_value; # cd back to cwd to save chdir $SETTING{'cwd'}; # Set up file selector my $file_chooser = Gtk2::FileChooserDialog->new( $d->get('PS filename'), $windowi, 'save', 'gtk-cancel' => 'cancel', 'gtk-save' => 'ok' ); $file_chooser->set_default_response('ok'); $file_chooser->set_current_folder( $SETTING{'cwd'} ); add_filter( $file_chooser, $d->get('Postscript files'), 'ps' ); $file_chooser->set_do_overwrite_confirmation(TRUE); $file_chooser->signal_connect( response => \&file_chooser_response_callback, 'ps' ); $file_chooser->show; # cd back to tempdir chdir $session; } when ('session') { # cd back to cwd to save chdir $SETTING{'cwd'}; # Set up file selector my $file_chooser = Gtk2::FileChooserDialog->new( $d->get('gscan2pdf session filename'), $windowi, 'save', 'gtk-cancel' => 'cancel', 'gtk-save' => 'ok' ); $file_chooser->set_default_response('ok'); $file_chooser->set_current_folder( $SETTING{'cwd'} ); add_filter( $file_chooser, $d->get('gscan2pdf session files'), 'gs2p' ); $file_chooser->set_do_overwrite_confirmation(TRUE); $file_chooser->signal_connect( response => \&file_chooser_response_callback, 'gs2p' ); $file_chooser->show; # cd back to tempdir chdir $session; } default { save_image(); } } return; } sub file_chooser_response_callback { my ( $dialog, $response, $type ) = @_; $logger->debug("PDF save filename dialog returned $response"); if ( $response eq 'ok' ) { my $filename = $dialog->get_filename; if ( $filename !~ /\.$type$/ix ) { $filename = "$filename.$type"; if ( -f $filename ) { # File exists; get the file chooser to ask the user to confirm. $dialog->set_filename($filename); # Give the name change time to take effect. Glib::Idle->add( sub { $dialog->response('ok'); } ); return; } } # Check that the file can be written if ( not -w dirname($filename) or ( -f $filename and not -w $filename ) ) { show_message_dialog( $dialog, 'error', 'close', sprintf( $d->get("File %s is read-only"), $filename ) ); return; } # Update cwd $SETTING{'cwd'} = dirname($filename); given ($type) { when ('pdf') { save_PDF($filename); } when ('djvu') { save_djvu($filename); } when ('tif') { save_TIFF($filename); } when ('txt') { save_txt($filename); } when ('ps') { my $tif = File::Temp->new( DIR => $session, SUFFIX => '.tif' ); save_TIFF( $tif->filename, $filename ); } when ('gs2p') { $slist->save_session($filename); } } $windowi->hide if defined $windowi; } $dialog->destroy; return; } sub file_exists { my ( $file_chooser, $filename ) = @_; if ( not -w dirname($filename) or ( -f $filename and not -w $filename ) ) { show_message_dialog( $file_chooser, 'error', 'close', sprintf( $d->get("File %s is read-only"), $filename ) ); return TRUE; } elsif ( -e $filename ) { my $response = show_message_dialog( $file_chooser, 'question', 'ok-cancel', sprintf( $d->get("File %s exists.\nReally overwrite?"), $filename ) ); return TRUE if ( $response ne 'ok' ); } return FALSE; } sub save_image { # cd back to cwd to save chdir $SETTING{'cwd'}; # Set up file selector my $file_chooser = Gtk2::FileChooserDialog->new( $d->get('Image filename'), $windowi, 'save', 'gtk-cancel' => 'cancel', 'gtk-save' => 'ok' ); $file_chooser->set_default_response('ok'); $file_chooser->set_current_folder( $SETTING{'cwd'} ); add_filter( $file_chooser, $d->get('Image files'), 'jpg', 'png', 'pnm', 'gif', 'tif', 'tiff', 'pdf', 'djvu', 'ps' ); if ( 'ok' eq $file_chooser->run ) { my $filename = $file_chooser->get_filename; # Update cwd $SETTING{'cwd'} = dirname($filename); # cd back to tempdir chdir $session; # Compile list of pages my @list_of_pages; my @pagelist = $slist->get_page_index( $SETTING{'Page range'}, \&error_callback ); if ( not @pagelist ) { return } for (@pagelist) { push @list_of_pages, $slist->{data}[$_][2]; } if ( @list_of_pages > 1 ) { my $w = length( scalar @list_of_pages ); for ( my $i = 1 ; $i <= @list_of_pages ; $i++ ) { my $current_filename = sprintf "${filename}_%0${w}d.$SETTING{'image type'}", $i; return if ( file_exists( $file_chooser, $current_filename ) ); } $filename = "${filename}_%0${w}d.$SETTING{'image type'}"; } else { $filename = $filename . ".$SETTING{'image type'}" if ( $filename !~ /\.$SETTING{'image type'}$/ix ); return if ( file_exists( $file_chooser, $filename ) ); } # Create the image $logger->debug("Started saving $filename"); my ( $signal, $pid ); $pid = $slist->save_image( path => $filename, list_of_pages => \@list_of_pages, queued_callback => sub { return update_tpbar(@_); }, started_callback => sub { my ( $thread, $process, $completed, $total ) = @_; $signal = setup_tpbar( $thread, $process, $completed, $total, $pid ); return TRUE if ( defined $signal ); }, running_callback => sub { return update_tpbar(@_); }, finished_callback => sub { my ( $new_page, $pending ) = @_; $thbox->hide_all unless $pending; $tcbutton->signal_handler_disconnect($signal) if ( defined $signal ); mark_pages(@pagelist); system("xdg-open \"$filename\" &") if ( defined( $SETTING{'view files toggle'} ) and $SETTING{'view files toggle'} ); $logger->debug("Finished saving $filename"); }, error_callback => \&error_callback ); $windowi->hide if defined $windowi; } $file_chooser->destroy; return; } sub save_TIFF { my ( $filename, $ps ) = @_; # Compile list of pages my @list_of_pages; my @pagelist = $slist->get_page_index( $SETTING{'Page range'}, \&error_callback ); if ( not @pagelist ) { return } for (@pagelist) { push @list_of_pages, $slist->{data}[$_][2]; } # Compile options my %options = ( compression => $SETTING{'tiff compression'}, quality => $SETTING{quality}, ); my ( $signal, $pid ); $pid = $slist->save_tiff( path => $filename, list_of_pages => \@list_of_pages, options => \%options, ps => $ps, queued_callback => sub { return update_tpbar(@_); }, started_callback => sub { my ( $thread, $process, $completed, $total ) = @_; $signal = setup_tpbar( $thread, $process, $completed, $total, $pid ); return TRUE if ( defined $signal ); }, running_callback => sub { return update_tpbar(@_); }, finished_callback => sub { my ( $new_page, $pending ) = @_; $thbox->hide_all unless $pending; $tcbutton->signal_handler_disconnect($signal) if ( defined $signal ); mark_pages(@pagelist); my $file = defined($ps) ? $ps : $filename; system("xdg-open \"$filename\" &") if ( defined( $SETTING{'view files toggle'} ) and $SETTING{'view files toggle'} ); $logger->debug("Finished saving $filename"); }, error_callback => \&error_callback ); return; } sub save_djvu { my ($filename) = @_; # Compile list of pages my @list_of_pages; my @pagelist = $slist->get_page_index( $SETTING{'Page range'}, \&error_callback ); if ( not @pagelist ) { return } for (@pagelist) { push @list_of_pages, $slist->{data}[$_][2]; } # cd back to tempdir chdir $session; # Create the DjVu $logger->debug("Started saving $filename"); my ( $signal, $pid ); $pid = $slist->save_djvu( path => $filename, list_of_pages => \@list_of_pages, queued_callback => sub { return update_tpbar(@_); }, started_callback => sub { my ( $thread, $process, $completed, $total ) = @_; $signal = setup_tpbar( $thread, $process, $completed, $total, $pid ); return TRUE if ( defined $signal ); }, running_callback => sub { return update_tpbar(@_); }, finished_callback => sub { my ( $new_page, $pending ) = @_; $thbox->hide_all unless $pending; $tcbutton->signal_handler_disconnect($signal) if ( defined $signal ); mark_pages(@pagelist); system("xdg-open \"$filename\" &") if ( defined( $SETTING{'view files toggle'} ) and $SETTING{'view files toggle'} ); $logger->debug("Finished saving $filename"); }, error_callback => \&error_callback ); return; } sub save_txt { my ($filename) = @_; # Compile list of pages my @list_of_pages; my @pagelist = $slist->get_page_index( $SETTING{'Page range'}, \&error_callback ); if ( not @pagelist ) { return } for (@pagelist) { push @list_of_pages, $slist->{data}[$_][2]; } my ( $signal, $pid ); $pid = $slist->save_text( path => $filename, list_of_pages => \@list_of_pages, queued_callback => sub { return update_tpbar(@_); }, started_callback => sub { my ( $thread, $process, $completed, $total ) = @_; $signal = setup_tpbar( $thread, $process, $completed, $total, $pid ); return TRUE if ( defined $signal ); }, running_callback => sub { return update_tpbar(@_); }, finished_callback => sub { my ( $new_page, $pending ) = @_; $thbox->hide_all unless $pending; $tcbutton->signal_handler_disconnect($signal) if ( defined $signal ); mark_pages(@pagelist); system("xdg-open \"$filename\" &") if ( defined( $SETTING{'view files toggle'} ) and $SETTING{'view files toggle'} ); $logger->debug("Finished saving $filename"); }, error_callback => \&error_callback ); return; } # Display page selector and email. sub email { if ( defined $windowe ) { $windowe->present; return; } # $SETTING{'Page range'} = 'selected' if $SETTING{'RMB'}; $windowe = Gscan2pdf::Dialog->new( 'transient-for' => $window, title => $d->get('Email as PDF'), 'hide-on-delete' => TRUE, border_width => $border_width ); my $vbox = $windowe->get('vbox'); # PDF options my ( $entrya, $entryt, $entrys, $entryk ) = add_pdf_metadata($vbox); # Frame for page range add_page_range($vbox); # Compression options my ( $buttond, $spinbuttond, $combob, $hboxq, $spinbuttonq, @compression ) = add_pdf_compression($vbox); # HBox for buttons my $hboxb = Gtk2::HBox->new; $vbox->pack_start( $hboxb, FALSE, TRUE, 0 ); # OK button my $sbutton = Gtk2::Button->new_from_stock('gtk-ok'); $hboxb->pack_start( $sbutton, TRUE, TRUE, 0 ); $sbutton->signal_connect( clicked => sub { # Set options update_PDF_settings( $entrya, $entryt, $entrys, $entryk ); # Compile list of pages my @list_of_pages; my @pagelist = $slist->get_page_index( $SETTING{'Page range'}, \&error_callback ); if ( not @pagelist ) { return } for (@pagelist) { push @list_of_pages, $slist->{data}[$_][2]; } # dig out the compression $SETTING{'downsample'} = $buttond->get_active; $SETTING{'downsample dpi'} = $spinbuttond->get_value; $SETTING{'pdf compression'} = $compression[ $combob->get_active ][0]; $SETTING{'quality'} = $spinbuttonq->get_value; # Compile options my %options = ( compression => $SETTING{'pdf compression'}, downsample => $SETTING{downsample}, 'downsample dpi' => $SETTING{'downsample dpi'}, quality => $SETTING{quality}, font => $SETTING{'pdf font'}, ); $pdf = File::Temp->new( DIR => $session, SUFFIX => '.pdf' ); # Check for thunderbird my ($client); if ( defined( $ENV{KDE_FULL_SESSION} ) and $ENV{KDE_FULL_SESSION} eq 'true' ) { ($client) = Gscan2pdf::Document::open_three( "kreadconfig --file emaildefaults --group PROFILE_Default --key EmailClient| cut -d ' ' -f 1" ); } elsif ( ( defined( $ENV{GNOME_DESKTOP_SESSION_ID} ) and $ENV{GNOME_DESKTOP_SESSION_ID} ne '' ) or ( defined( $ENV{XDG_CURRENT_DESKTOP} ) and $ENV{XDG_CURRENT_DESKTOP} eq 'XFCE' ) ) { ($client) = Gscan2pdf::Document::open_three( "gconftool --get /desktop/gnome/url-handlers/mailto/command | cut -d ' ' -f 1" ); } my $mua_string; if ( $client =~ /thunderbird/ ) { $mua_string = "thunderbird -compose attachment=file://$pdf"; } else { $mua_string = "xdg-email --attach $pdf 'x\@y'"; } # Create the PDF my ( $signal, $pid ); $pid = $slist->save_pdf( path => $pdf->filename, list_of_pages => \@list_of_pages, metadata => get_pdf_metadata(), options => \%options, queued_callback => sub { return update_tpbar(@_); }, started_callback => sub { my ( $thread, $process, $completed, $total ) = @_; $signal = setup_tpbar( $thread, $process, $completed, $total, $pid ); return TRUE if ( defined $signal ); }, running_callback => sub { return update_tpbar(@_); }, finished_callback => sub { my ( $new_page, $pending ) = @_; $thbox->hide_all unless $pending; $tcbutton->signal_handler_disconnect($signal) if ( defined $signal ); mark_pages(@pagelist); system("xdg-open \"$pdf\" &") if ( defined( $SETTING{'view files toggle'} ) and $SETTING{'view files toggle'} ); $logger->info($mua_string); show_message_dialog( $window, 'error', 'close', $d->get('Error creating email') ) if ( system($mua_string) ); }, error_callback => \&error_callback ); $windowe->hide; } ); # Cancel button my $cbutton = Gtk2::Button->new_from_stock('gtk-cancel'); $hboxb->pack_end( $cbutton, FALSE, FALSE, 0 ); $cbutton->signal_connect( clicked => sub { $windowe->hide; } ); $windowe->show_all; $hboxq->hide_all if ( $compression[ $combob->get_active ][0] ne 'jpg' ); return; } # Scan sub scan_dialog { my ($hidden) = @_; if ( defined $windows ) { $windows->show_all; return; } # If device not set by config and there is a default device, then set it $SETTING{device} = $ENV{'SANE_DEFAULT_DEVICE'} if ( not defined( $SETTING{device} ) and defined( $ENV{'SANE_DEFAULT_DEVICE'} ) ); $SETTING{'pages to scan'} = 0 if ( $SETTING{'pages to scan'} eq 'all' ); # scan pop-up window my %options = ( 'transient-for' => $window, title => $d->get('Scan Document'), border_width => $border_width, logger => $logger, dir => $session, 'hide-on-delete' => TRUE, 'num-pages' => $SETTING{'pages to scan'}, 'page-number-start' => $#{ $slist->{data} } > -1 ? $slist->{data}[ $#{ $slist->{data} } ][0] + 1 : 1, ); if ( $SETTING{frontend} eq 'libsane-perl' ) { $windows = Gscan2pdf::Dialog::Scan::Sane->new(%options); } else { $windows = Gscan2pdf::Dialog::Scan::CLI->new( %options, prefix => $SETTING{'scan prefix'}, frontend => $SETTING{'frontend'}, 'visible-scan-options' => $SETTING{'visible-scan-options'}, 'reload-triggers' => $SETTING{'scan-reload-triggers'}, 'cache-options' => $SETTING{'cache options'}, 'options-cache' => $SETTING{cache}, ); $windows->signal_connect( 'changed-options-cache' => sub { my ( $widget, $cache ) = @_; $SETTING{cache} = $cache; } ); } # Can't set the device when creating the window, # as the list does not exist then $windows->signal_connect( 'changed-device-list' => \&changed_device_list_callback ); # Update default device $windows->signal_connect( 'changed-device' => \&changed_device_callback ); # Set default $windows->signal_connect( 'changed-num-pages' => sub { ( my $widget, $SETTING{'pages to scan'} ) = @_; # Check that there is room in the list for the number of pages update_number(); } ); $windows->signal_connect( 'changed-page-number-start' => sub { my ( $widget, $value ) = @_; $windows->set( 'max-pages', $slist->pages_possible( $value, $windows->get('page-number-increment') ) ); } ); $windows->signal_connect( 'changed-page-number-increment' => sub { my ( $widget, $step ) = @_; $windows->set( 'max-pages', $slist->pages_possible( $windows->get('page-number-start'), $step ) ); } ); $windows->signal_connect( 'changed-side-to-scan' => \&changed_side_to_scan_callback ); my $signal; $windows->signal_connect( 'started-process' => sub { my ( $widget, $message ) = @_; $spbar->set_fraction(0); $spbar->set_text($message); $shbox->show_all; $signal = $scbutton->signal_connect( clicked => sub { $windows->cancel_scan; } ); } ); $windows->signal_connect( 'changed-progress' => \&changed_progress_callback ); $windows->signal_connect( 'finished-process' => sub { my ( $widget, $process, $button_signal ) = @_; $logger->info("signal 'finished-process' emitted with data: $process"); $scbutton->signal_handler_disconnect($button_signal) if ( defined $button_signal ); $shbox->hide; $widget->scan_options( $SETTING{device} ) if ( $SETTING{'cycle sane handle'} and $process eq 'scan_pages' ); } ); $windows->signal_connect( 'process-error' => sub { my ( $widget, $process, $msg ) = @_; $logger->info("signal 'process-error' emitted with data: $process $msg"); $scbutton->signal_handler_disconnect($signal) if ( defined $signal ); $shbox->hide; if ( $process =~ /^(?:get_devices|find_scan_options)$/x ) { $widget->hide; undef $widget; show_message_dialog( $window, 'error', 'close', $msg ); } else { show_message_dialog( $widget, 'error', 'close', $d_sane->get($msg) ); } } ); $windows->signal_connect( 'changed-scan-option' => \&changed_scan_option_callback ); # Profiles for my $profile ( keys %{ $SETTING{profile} } ) { $windows->add_profile( $profile, $SETTING{profile}{$profile} ); } $windows->signal_connect( 'changed-profile' => sub { my ( $widget, $profile ) = @_; $SETTING{'default profile'} = $profile; } ); $windows->signal_connect( 'added-profile' => sub { my ( $widget, $name, $profile ) = @_; $SETTING{profile}{$name} = $profile; } ); $windows->signal_connect( 'removed-profile' => sub { my ( $widget, $profile ) = @_; delete $SETTING{profile}{$profile}; } ); # Update the default profile when the scan options change $windows->signal_connect( 'changed-current-scan-options' => sub { my ( $widget, $option_array ) = @_; $SETTING{'default-scan-options'} = $option_array; } ); # Can't set the paper or profile until the options have been loaded $windows->signal_connect( 'reloaded-scan-options' => \&reloaded_scan_options_callback ); $windows->signal_connect( 'changed-paper-formats' => sub { my ( $widget, $formats ) = @_; $SETTING{Paper} = $formats; } ); $windows->signal_connect( 'changed-paper' => sub { my ( $widget, $paper ) = @_; $SETTING{'Paper size'} = $paper; } ); $windows->signal_connect( 'new-scan' => \&new_scan_callback ); add_postprocessing_options($windows); $windows->show_all unless $hidden; if (@device_list) { $windows->set( 'device-list', \@device_list ); } else { $windows->get_devices; } return; } sub changed_device_callback { my ( $widget, $device ) = @_; $logger->info("signal 'changed-device' emitted with data: '$device'"); $SETTING{device} = $device if ( defined($device) and $device ne '' ); return; } sub changed_device_list_callback { my ( $widget, $device_list ) = @_; $logger->info( "signal 'changed-device-list' emitted with data: " . Dumper($device_list) ); if ( defined $device_list ) { # Only set default device if it hasn't been specified on the command line # and it is in the the device list if ( defined( $SETTING{device} ) and not @device_list ) { for (@$device_list) { if ( $SETTING{device} eq $_->{name} ) { $windows->set( 'device', $SETTING{device} ); return; } } } $windows->set( 'device', $device_list->[0]{name} ); } return; } sub changed_side_to_scan_callback { my ( $widget, $side ) = @_; if ( $#{ $slist->{data} } > -1 ) { $windows->set( 'page-number-start', $slist->{data}[ $#{ $slist->{data} } ][0] + 1 ); } else { $windows->set( 'page-number-start', 1 ); } return; } sub reloaded_scan_options_callback { $windows->set( 'paper-formats', $SETTING{Paper} ); $windows->set( 'paper', $SETTING{'Paper size'} ) if ( defined $SETTING{'Paper size'} ); my @profiles = keys %{ $SETTING{profile} }; if ( defined $SETTING{'default profile'} ) { $windows->set( 'profile', $SETTING{'default profile'} ); } elsif ( defined $SETTING{'default-scan-options'} ) { $windows->set( 'current-scan-options', $SETTING{'default-scan-options'} ); } elsif (@profiles) { $windows->set( 'profile', $profiles[0] ); } return; } sub changed_scan_option_callback { my ( $widget, $option, $value ) = @_; # Note resolution $SETTING{resolution} = $value if ( $option eq SANE_NAME_SCAN_RESOLUTION ); return; } sub changed_progress_callback { my ( $widget, $progress, $message ) = @_; if ( defined $progress ) { $spbar->set_fraction($progress); } else { $spbar->pulse; } $spbar->set_text($message) if ( defined $message ); return; } sub new_scan_callback { my ( $widget, $n ) = @_; # Update undo/redo buffers take_snapshot(); # If the scan can't be loaded then blow the scanning dialog away and # show an error my $rotate = $n % 2 ? $SETTING{'rotate facing'} : $SETTING{'rotate reverse'}; if ( defined $test_image ) { import_scan( filename => $test_image, page => $n, delete => FALSE, rotate => $rotate, unpaper => $SETTING{'unpaper on scan'}, ocr => $SETTING{'OCR on scan'} ); } else { my $options = $windows->get('available-scan-options'); my $opt = $options->by_name(SANE_NAME_SCAN_RESOLUTION); $SETTING{resolution} = ( defined($opt) and defined( $opt->{val} ) ) ? $opt->{val} : $Gscan2pdf::Document::POINTS_PER_INCH; $logger->info("Importing scan with resolution=$SETTING{resolution}"); import_scan( filename => File::Spec->catdir( $session, "out$n.pnm" ), page => $n, resolution => $SETTING{resolution}, delete => TRUE, rotate => $rotate, unpaper => $SETTING{'unpaper on scan'}, ocr => $SETTING{'OCR on scan'} ); } return; } sub add_postprocessing_rotate { my ($vbox) = @_; my $hboxr = Gtk2::HBox->new; $vbox->pack_start( $hboxr, FALSE, FALSE, 0 ); my $rbutton = Gtk2::CheckButton->new( $d->get('Rotate') ); $tooltips->set_tip( $rbutton, $d->get('Rotate image after scanning') ); $hboxr->pack_start( $rbutton, TRUE, TRUE, 0 ); my @side = ( [ 'both', $d->get('Both sides'), $d->get('Both sides.') ], [ 'facing', $d->get('Facing side'), $d->get('Facing side.') ], [ 'reverse', $d->get('Reverse side'), $d->get('Reverse side.') ], ); my $comboboxs = combobox_from_array(@side); $tooltips->set_tip( $comboboxs, $d->get('Select side to rotate') ); $hboxr->pack_start( $comboboxs, TRUE, TRUE, 0 ); my @rotate = ( [ 90, $d->get('90'), $d->get('Rotate image 90 degrees clockwise.') ], [ 180, $d->get('180'), $d->get('Rotate image 180 degrees clockwise.') ], [ 270, $d->get('270'), $d->get('Rotate image 90 degrees anticlockwise.') ], ); my $comboboxr = combobox_from_array(@rotate); $tooltips->set_tip( $comboboxr, $d->get('Select direction of rotation') ); $hboxr->pack_end( $comboboxr, TRUE, TRUE, 0 ); $hboxr = Gtk2::HBox->new; $vbox->pack_start( $hboxr, FALSE, FALSE, 0 ); my $r2button = Gtk2::CheckButton->new( $d->get('Rotate') ); $tooltips->set_tip( $r2button, $d->get('Rotate image after scanning') ); $hboxr->pack_start( $r2button, TRUE, TRUE, 0 ); my @side2; my $comboboxs2 = Gtk2::ComboBox->new_text; $tooltips->set_tip( $comboboxs2, $d->get('Select side to rotate') ); $hboxr->pack_start( $comboboxs2, TRUE, TRUE, 0 ); my $comboboxr2 = combobox_from_array(@rotate); $tooltips->set_tip( $comboboxr2, $d->get('Select direction of rotation') ); $hboxr->pack_end( $comboboxr2, TRUE, TRUE, 0 ); $rbutton->signal_connect( toggled => sub { if ( $rbutton->get_active ) { $hboxr->set_sensitive(TRUE) if ( $side[ $comboboxs->get_active ]->[0] ne 'both' ); } else { $hboxr->set_sensitive(FALSE); } } ); $comboboxs->signal_connect( changed => sub { if ( $side[ $comboboxs->get_active ]->[0] eq 'both' ) { $hboxr->set_sensitive(FALSE); $r2button->set_active(FALSE); } else { $hboxr->set_sensitive(TRUE) if ( $rbutton->get_active ); # Empty combobox while ( $comboboxs2->get_active > -1 ) { $comboboxs2->remove_text(0); $comboboxs2->set_active(0); } @side2 = (); foreach (@side) { push @side2, $_ unless ( $_->[0] eq 'both' or $_->[0] eq $side[ $comboboxs->get_active ]->[0] ); } $comboboxs2->append_text( $side2[0]->[1] ); $comboboxs2->set_active(0); } } ); # In case it isn't set elsewhere combobox_set_active( $comboboxr2, 90, @rotate ); if ( $SETTING{'rotate facing'} or $SETTING{'rotate reverse'} ) { $rbutton->set_active(TRUE); } if ( $SETTING{'rotate facing'} == $SETTING{'rotate reverse'} ) { combobox_set_active( $comboboxs, 'both', @side ); combobox_set_active( $comboboxr, $SETTING{'rotate facing'}, @rotate ); } elsif ( $SETTING{'rotate facing'} ) { combobox_set_active( $comboboxs, 'facing', @side ); combobox_set_active( $comboboxr, $SETTING{'rotate facing'}, @rotate ); if ( $SETTING{'rotate reverse'} ) { $r2button->set_active(TRUE); combobox_set_active( $comboboxs2, 'reverse', @side2 ); combobox_set_active( $comboboxr2, $SETTING{'rotate reverse'}, @rotate ); } } else { combobox_set_active( $comboboxs, 'reverse', @side ); combobox_set_active( $comboboxr, $SETTING{'rotate reverse'}, @rotate ); } return ( \@rotate, \@side, \@side2, $rbutton, $r2button, $comboboxs, $comboboxs2, $comboboxr, $comboboxr2 ); } sub add_postprocessing_ocr { my ($vbox) = @_; my $hboxo = Gtk2::HBox->new; $vbox->pack_start( $hboxo, FALSE, FALSE, 0 ); my $obutton = Gtk2::CheckButton->new( $d->get('OCR scanned pages') ); $tooltips->set_tip( $obutton, $d->get('OCR scanned pages') ); if ( not $dependencies{gocr} and not $dependencies{tesseract} and not $dependencies{ocropus} and not $dependencies{cuneiform} ) { $hboxo->set_sensitive(FALSE); $obutton->set_active(FALSE); } elsif ( $SETTING{'OCR on scan'} ) { $obutton->set_active(TRUE); } $hboxo->pack_start( $obutton, TRUE, TRUE, 0 ); my $comboboxe = combobox_from_array(@ocr_engine); $tooltips->set_tip( $comboboxe, $d->get('Select OCR engine') ); $hboxo->pack_end( $comboboxe, TRUE, TRUE, 0 ); my ( $comboboxtl, $hboxtl, @tesslang, $comboboxcl, $hboxcl, @cflang ); if ( $dependencies{tesseract} ) { ( $hboxtl, $comboboxtl, @tesslang ) = add_tess_languages($vbox); $comboboxe->signal_connect( changed => sub { if ($ocr_engine[ $comboboxe->get_active ]->[0] eq 'tesseract' or $ocr_engine[ $comboboxe->get_active ]->[0] eq 'ocropus' ) { $hboxtl->show_all; } else { $hboxtl->hide_all; } } ); if ( $dependencies{cuneiform} ) { ( $hboxcl, $comboboxcl, @cflang ) = add_cf_languages($vbox); $comboboxe->signal_connect( changed => sub { if ( $ocr_engine[ $comboboxe->get_active ]->[0] eq 'cuneiform' ) { $hboxcl->show_all; } else { $hboxcl->hide_all; } } ); } $hboxtl->set_sensitive(FALSE) unless ( $obutton->get_active ); $obutton->signal_connect( toggled => sub { if ( $obutton->get_active ) { $hboxtl->set_sensitive(TRUE); } else { $hboxtl->set_sensitive(FALSE); } } ); } combobox_set_active( $comboboxe, $SETTING{'ocr engine'}, @ocr_engine ); return ( $obutton, $comboboxe, $hboxtl, $comboboxtl, $hboxcl, $comboboxcl, \@tesslang, \@cflang ); } sub add_postprocessing_options { my ($self) = @_; my $vbox = $self->get('vbox'); # Frame for post-processing my $framep = Gtk2::Frame->new( $d->get('Post-processing') ); $vbox->pack_start( $framep, FALSE, FALSE, 0 ); my $vboxp = Gtk2::VBox->new; $vboxp->set_border_width($border_width); $framep->add($vboxp); # Rotate my ( $rotate, $side, $side2, $rbutton, $r2button, $comboboxs, $comboboxs2, $comboboxr, $comboboxr2 ) = add_postprocessing_rotate($vboxp); # CheckButton for unpaper my $hboxu = Gtk2::HBox->new; $vboxp->pack_start( $hboxu, FALSE, FALSE, 0 ); my $ubutton = Gtk2::CheckButton->new( $d->get('Clean up images') ); $tooltips->set_tip( $ubutton, $d->get('Clean up scanned images with unpaper') ); $hboxu->pack_start( $ubutton, TRUE, TRUE, 0 ); if ( not $dependencies{unpaper} ) { $ubutton->set_sensitive(FALSE); $ubutton->set_active(FALSE); } elsif ( $SETTING{'unpaper on scan'} ) { $ubutton->set_active(TRUE); } my $button = Gtk2::Button->new( $d->get('Options') ); $tooltips->set_tip( $button, $d->get('Set unpaper options') ); $hboxu->pack_end( $button, TRUE, TRUE, 0 ); $button->signal_connect( clicked => sub { my $windowuo = Gscan2pdf::Dialog->new( 'transient-for' => $window, title => $d->get('unpaper options'), border_width => $border_width ); my $vbox1 = $windowuo->get('vbox'); $unpaper->add_options($vbox1); # HBox for buttons my $hboxb = Gtk2::HBox->new; $vbox1->pack_start( $hboxb, FALSE, TRUE, 0 ); # OK button my $sbutton = Gtk2::Button->new_from_stock('gtk-ok'); $hboxb->pack_start( $sbutton, TRUE, TRUE, 0 ); $sbutton->signal_connect( clicked => sub { # Update $SETTING $SETTING{'unpaper options'} = $unpaper->get_options; $windowuo->destroy; } ); # Cancel button my $cbutton = Gtk2::Button->new_from_stock('gtk-cancel'); $hboxb->pack_end( $cbutton, FALSE, FALSE, 0 ); $cbutton->signal_connect( clicked => sub { $windowuo->destroy; } ); $windowuo->show_all; } ); my ( $obutton, $comboboxe, $hboxtl, $comboboxtl, $hboxcl, $comboboxcl, $tesslang, $cflang ) = add_postprocessing_ocr($vboxp); $self->signal_connect( 'clicked-scan-button' => sub { $SETTING{'rotate facing'} = 0; $SETTING{'rotate reverse'} = 0; if ( $rbutton->get_active ) { if ( $side->[ $comboboxs->get_active ][0] eq 'both' ) { $SETTING{'rotate facing'} = $rotate->[ $comboboxr->get_active ][0]; $SETTING{'rotate reverse'} = $SETTING{'rotate facing'}; } elsif ( $side->[ $comboboxs->get_active ][0] eq 'facing' ) { $SETTING{'rotate facing'} = $rotate->[ $comboboxr->get_active ][0]; } else { $SETTING{'rotate reverse'} = $rotate->[ $comboboxr->get_active ][0]; } if ( $r2button->get_active ) { if ( $side2->[ $comboboxs2->get_active ][0] eq 'facing' ) { $SETTING{'rotate facing'} = $rotate->[ $comboboxr2->get_active ][0]; } else { $SETTING{'rotate reverse'} = $rotate->[ $comboboxr2->get_active ][0]; } } } $logger->info("rotate facing $SETTING{'rotate facing'}"); $logger->info("rotate reverse $SETTING{'rotate reverse'}"); $SETTING{'unpaper on scan'} = $ubutton->get_active; $logger->info("unpaper $SETTING{'unpaper on scan'}"); $SETTING{'OCR on scan'} = $obutton->get_active; $logger->info("OCR $SETTING{'OCR on scan'}"); if ( $SETTING{'OCR on scan'} ) { $SETTING{'ocr engine'} = $ocr_engine[ $comboboxe->get_active ]->[0]; $SETTING{'ocr language'} = $tesslang->[ $comboboxtl->get_active ][0] if ( $SETTING{'ocr engine'} eq 'tesseract' or $SETTING{'ocr engine'} eq 'ocropus' ); $SETTING{'ocr language'} = $cflang->[ $comboboxcl->get_active ][0] if ( $SETTING{'ocr engine'} eq 'cuneiform' ); } } ); $self->signal_connect( show => sub { $hboxtl->hide_all if ( defined($hboxtl) and not( $ocr_engine[ $comboboxe->get_active ]->[0] eq 'tesseract' or $ocr_engine[ $comboboxe->get_active ]->[0] eq 'ocropus' ) ); $hboxcl->hide_all if ( defined($hboxcl) and not( $ocr_engine[ $comboboxe->get_active ]->[0] eq 'cuneiform' ) ); } ); return; } # Called either from changed-value signal of spinbutton, # or row-changed signal of simplelist sub update_start { return unless ( defined $windows ); my $value = $windows->get('page-number-start'); $start = $windows->get('page-number-start') unless ( defined $start ); my $step = $value - $start; $step = $windows->get('page-number-increment') if ( $step == 0 ); my $exists = TRUE; my $i = $step > 0 ? 0 : $#{ $slist->{data} }; $start = $value; while ($exists) { if ($i < 0 or $i > $#{ $slist->{data} } or ( $slist->{data}[$i][0] > $value and $step > 0 ) or ( $slist->{data}[$i][0] < $value and $step < 0 ) ) { $exists = FALSE; } elsif ( $slist->{data}[$i][0] == $value ) { $value += $step; if ( $value < 1 ) { $value = 1; $step = 1; } } else { $i += $step > 0 ? 1 : -1; } } $windows->set( 'page-number-start', $value ); $start = $value; update_number(); return; } # Update the number of pages to scan spinbutton if necessary sub update_number { return unless ( defined $windows ); my $n = $slist->pages_possible( $windows->get('page-number-start'), $windows->get('page-number-increment') ); $windows->set( 'num-pages', $n ) if ( $n > 0 and $n < $windows->get('num-pages') ); return; } sub post_process_scan { my ( $pages, $rotate, $unpaper_flag, $ocr ) = @_; if ($rotate) { rotate( $rotate, $pages, sub { # finished callback my ($page) = @_; post_process_scan( $page, undef, $unpaper_flag, $ocr ); } ); } elsif ($unpaper_flag) { unpaper_page( $pages, $unpaper->get_cmdline, sub { # finished callback my ($page) = @_; post_process_scan( $page, undef, undef, $ocr ); } ); } elsif ($ocr) { ocr_page($pages); } return; } # Take new scan and display it sub import_scan { my %options = @_; # Interface to frontend open my $fh, '<', $options{filename} ## no critic (RequireBriefOpen) or die "can't open $options{filename}: $!\n"; # Read without blocking my $size = 0; Glib::IO->add_watch( fileno($fh), [ 'in', 'hup' ], sub { my ( $fileno, $condition ) = @_; if ( $condition & 'in' ) { # bit field operation. >= would also work if ( $size == 0 ) { $size = Gscan2pdf::NetPBM::file_size_from_header( $options{filename} ); $logger->info("Header suggests $size"); return Glib::SOURCE_CONTINUE if ( $size == 0 ); close($fh); } my $filesize = -s $options{filename}; $logger->info("Expecting $size, found $filesize"); if ( $size > $filesize ) { my $pad = $size - $filesize; open( my $fh, ">>", $options{filename} ) or die "cannot open >> $options{filename}: $!\n"; my $data = ''; for ( 1 .. $pad * 8 ) { $data .= '1'; } printf $fh pack( sprintf( "b%d", length $data ), $data ); close $fh; $logger->info("Padded $pad bytes"); } my $gpage = Gscan2pdf::Page->new( filename => $options{filename}, resolution => $options{resolution}, format => 'Portable anymap', delete => $options{delete}, dir => $session, window => $window, ); my $index = $slist->add_page( $gpage, $options{page}, &update_uimanager ); if ( $index == -1 ) { show_message_dialog( $windows, 'error', 'close', $d->get('Unable to load image') ); } else { update_uimanager(); post_process_scan( [$gpage], $options{rotate}, $options{unpaper}, $options{ocr} ); } return Glib::SOURCE_REMOVE; } return Glib::SOURCE_CONTINUE; } ); return; } # print sub print_dialog { chdir $SETTING{'cwd'}; my $print_op = Gtk2::PrintOperation->new; $print_op->set_print_settings($print_settings) if ( defined $print_settings ); $print_op->signal_connect( begin_print => sub { my ( $op, $context ) = @_; my $settings = $op->get_print_settings; my $pages = $settings->get('print-pages'); my @page_list; if ( $pages eq 'ranges' ) { my $page_set = Set::IntSpan->new; my $ranges = $settings->get('page-ranges'); for ( split ',', $ranges ) { $page_set->I($_); } for ( 0 .. $#{ $slist->{data} } ) { push @page_list, $_ if ( $page_set->member( $slist->{data}[$_][0] ) ); } } else { @page_list = ( 0 .. $#{ $slist->{data} } ); } $op->set_n_pages( scalar(@page_list) ); } ); $print_op->signal_connect( draw_page => sub { my ( $op, $context, $page_number ) = @_; my $cr = $context->get_cairo_context; # Context dimensions my $pwidth = $context->get_width; my $pheight = $context->get_height; # Image dimensions my $pixbuf = Gtk2::Gdk::Pixbuf->new_from_file( "$slist->{data}[$page_number][2]{filename}") ; # quotes required to prevent File::Temp object being clobbered my $iwidth = $pixbuf->get_width; my $iheight = $pixbuf->get_height; # Scale context to fit image my $scale = $pwidth / $iwidth; $scale = $pheight / $iheight if ( $pheight / $iheight < $scale ); $cr->scale( $scale, $scale ); # Set source pixbuf Gtk2::Gdk::Cairo::Context::set_source_pixbuf( $cr, $pixbuf, 0, 0 ); # Paint $cr->paint; return; } ); my $res = $print_op->run( 'print-dialog', $window ); $print_settings = $print_op->get_print_settings if ( $res eq 'apply' ); chdir $session; return; } # Cut the selection sub cut_selection { if ( $slist->has_focus ) { copy_selection(); delete_pages(); } # elsif ($textview -> has_focus) { # my $clipboard = Gtk2::Clipboard->get(Gtk2::Gdk->SELECTION_CLIPBOARD); # $textbuffer->cut_clipboard ($clipboard, TRUE) # } return; } # Copy the selection sub copy_selection { if ( $slist->has_focus ) { undef @clipboard; my @pages = $slist->get_selected_indices; for my $page (@pages) { my @copy = map { [@$_] } $slist->{data}[$page]; push @clipboard, @copy; } } # elsif ($textview -> has_focus) { # my $clipboard = Gtk2::Clipboard->get(Gtk2::Gdk->SELECTION_CLIPBOARD); # $textbuffer->copy_clipboard ($clipboard) # } return; } # Paste the selection sub paste_selection { # We only add pages if the list of thumbnails has the focus if ( $window->get_focus eq $slist ) { my @page = $slist->get_selected_indices; # Create a new image file for each page in the clipboard for (@clipboard) { my $suffix; $suffix = $1 if ( $_->[2]{filename} =~ /(\.\w*)$/x ); my $new = File::Temp->new( DIR => $session, SUFFIX => $suffix ); # stringify filename to prevent copy from mangling it unless ( copy( "$_->[2]{filename}", $new ) ) { show_message_dialog( $window, 'error', 'close', $d->get( sprintf("Error pasting image - %s"), $! ) ); return; } $_->[2]{filename} = $new; } # Block the row-changed signal whilst adding the scan (row) and sorting it. $slist->get_model->signal_handler_block( $slist->{row_changed_signal} ); # If a page is selected, then insert the pasted page immediately afterwards if (@page) { splice @{ $slist->{data} }, $page[0] + 1, 0, @clipboard; @page = ( $page[0] + 1 ); } # Otherwise append the page to the end else { push @{ $slist->{data} }, @clipboard; @page = ( $#{ $slist->{data} } - $#clipboard ); } $slist->renumber; $slist->get_model->signal_handler_unblock( $slist->{row_changed_signal} ); # Select new page, deselecting others. This fires the select callback, # displaying the page $slist->get_selection->unselect_all; $slist->select(@page); update_uimanager(); } # elsif ($textview -> has_focus) { # my $clipboard = Gtk2::Clipboard->get(Gtk2::Gdk->SELECTION_CLIPBOARD); # $textbuffer->paste_clipboard ($clipboard, undef, TRUE) # } return; } # Delete the selected scans sub delete_pages { # Update undo/redo buffers take_snapshot(); my @pages = $slist->get_selected_indices; my @page = @pages; $slist->get_selection->signal_handler_block( $slist->{selection_changed_signal} ); while (@pages) { splice @{ $slist->{data} }, $pages[0], 1; @pages = $slist->get_selected_indices; } $slist->get_selection->signal_handler_unblock( $slist->{selection_changed_signal} ); # Select nearest page to last current page if ( @{ $slist->{data} } and @page ) { # Select just the first one @page = ( $page[0] ); $page[0] = $#{ $slist->{data} } if ( $page[0] > $#{ $slist->{data} } ); $slist->select(@page); } # Select nothing elsif ( @{ $slist->{data} } ) { $slist->select; } # No pages left, and having blocked the selection_changed_signal, we've got to clear the image else { $view->set_pixbuf(undef); $scwin_buffer->remove($_) for ( $scwin_buffer->get_children ); } # Reset start page in scan dialog reset_start(); update_uimanager(); return; } # Reset start page number after delete or new sub reset_start { if ( $#{ $slist->{data} } > -1 ) { my $start_page = $windows->get('page-number-start'); my $step = $windows->get('page-number-increment'); $windows->set( 'page-number-start', $slist->{data}[ $#{ $slist->{data} } ][0] + $step ) if ( $start_page > $slist->{data}[ $#{ $slist->{data} } ][0] + $step ); } else { $windows->set( 'page-number-start', 1 ); } return; } # Select all scans sub select_all { # if ($textview -> has_focus) { # my ($start, $end) = $textbuffer->get_bounds; # $textbuffer->select_range ($start, $end); # } # else { $slist->get_selection->select_all; # } return; } # Select all odd(0) or even(1) scans sub select_odd_even { my $odd = shift; my @selection; for ( 0 .. $#{ $slist->{data} } ) { push @selection, $_ if ( $slist->{data}[$_][0] % 2 xor $odd ); } $slist->get_selection->unselect_all; $slist->select(@selection); return; } sub select_modified_since_ocr { my @selection; foreach my $page ( 0 .. $#{ $slist->{data} } ) { my $dirty_time = $slist->{data}[$page][2]{dirty_time}; my $ocr_flag = $slist->{data}[$page][2]{ocr_flag}; my $ocr_time = $slist->{data}[$page][2]{ocr_time}; $dirty_time = defined($dirty_time) ? $dirty_time : 0; $ocr_time = defined($ocr_time) ? $ocr_time : 0; push @selection, $_ if ( $ocr_flag and ( $ocr_time le $dirty_time ) ); } $slist->get_selection->unselect_all; $slist->select(@selection); return; } # Select pages with no ocr output sub select_no_ocr { my @selection; for ( 0 .. $#{ $slist->{data} } ) { push @selection, $_ unless ( defined $slist->{data}[$_][2]{hocr} ); } $slist->get_selection->unselect_all; $slist->select(@selection); return; } # Clear the OCR output from selected pages sub clear_ocr { # Update undo/redo buffers take_snapshot(); # Remove the existing canvas $scwin_buffer->remove($_) for ( $scwin_buffer->get_children ); my @selection = $slist->get_selected_indices; for (@selection) { delete $slist->{data}[$_][2]{hocr}; } return; } # Analyse and select blank pages sub analyse_select_blank { analyse( 1, 0 ); return; } # Select blank pages sub select_blank_pages { $slist->get_selection->unselect_all; foreach my $page ( 0 .. $#{ $slist->{data} } ) { $logger->info("smp page: $page"); my $dirty_time = $slist->{data}[$page][2]{dirty_time}; my $analyse_time = $slist->{data}[$page][2]{analyse_time}; $dirty_time = defined($dirty_time) ? $dirty_time : 0; $analyse_time = defined($analyse_time) ? $analyse_time : 0; if ( $analyse_time le $dirty_time ) { $logger->warn( $d->get( sprintf( "Page %d probably needs to be re-Analysed. Try Update or Analyse.", $page + 1 ) ) ); next; } #compare Std Dev to threshold if ( $slist->{data}[$page][2]{std_dev} <= $SETTING{'Blank threshold'} ) { $slist->select($page); $logger->info("Selecting blank page"); } $logger->info( "StdDev: " . $slist->{data}[$page][2]{std_dev} . " threshold: " . $SETTING{'Blank threshold'} ); } return; } # Analyse and select dark pages sub analyse_select_dark { analyse( 0, 1 ); return; } # Select dark pages sub select_dark_pages { $slist->get_selection->unselect_all; $logger->info("Checking for dark pages now, is analysis done?"); foreach my $page ( 0 .. $#{ $slist->{data} } ) { $logger->info("smp page: $page"); my $dirty_time = $slist->{data}[$page][2]{dirty_time}; my $analyse_time = $slist->{data}[$page][2]{analyse_time}; $dirty_time = defined($dirty_time) ? $dirty_time : 0; $analyse_time = defined($analyse_time) ? $analyse_time : 0; if ( $analyse_time le $dirty_time ) { $logger->warn( $d->get( sprintf( "Page %d probably needs to be re-Analysed. Try Update or Analyse.", $page + 1 ) ) ); next; } #compare Mean to threshold if ( $slist->{data}[$page][2]{mean} <= $SETTING{'Dark threshold'} ) { $slist->select($page); $logger->info("Selecting dark page"); } } return; } # Display about dialog sub about { use utf8; my $about = Gtk2::AboutDialog->new; # Gtk2::AboutDialog->set_url_hook ($func, $data=undef); # Gtk2::AboutDialog->set_email_hook ($func, $data=undef); $about->set_program_name($prog_name); $about->set_version($VERSION); my $authors = <<'EOS'; Frederik Elwert Klaus Ethgen Andy Fingerhut Leon Fisk John Goerzen David Hampton Sascha Hunold Matthijs Kooijman Chris Mayo Pablo Saratxaga Torsten Schönfeld Roy Shahbazian Jarl Stefansson Jakub Wilk Hiroshi Miura EOS $about->set_authors( "Jeff Ratcliffe\n\n" . $d->get('Patches gratefully received from:') . "\n$authors" ); $about->set_comments( $d->get('To aid the scan-to-PDF process') ); $about->set_copyright( $d->get('Copyright 2006--2013 Jeffrey Ratcliffe') ); my $licence = <<'EOS'; gscan2pdf --- to aid the scan to PDF or DjVu process Copyright 2006 -- 2013 Jeffrey Ratcliffe This program is free software: you can redistribute it and/or modify it under the terms of the version 3 GNU General Public License as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . EOS $about->set_license($licence); $about->set_website('http://gscan2pdf.sf.net'); my $translators = <<'EOS'; # inverted commas required around EOS because of UTF-8 in $translators Prescott_SK Rodrigo Zimmermann peteradleralberti mavosaure Arthur Rodrigues Utku BERBEROĞLU Piotr Strębski Aleksey Kabanov Сергій Дубик zdpo Eric Spierings Milo Casagrande Raúl González Duque R120X NSV Alexandre Prokoudine Paul Wohlhart Pierre Slamich Tiago Silva Igor Zubarev EOS $about->set_translator_credits($translators); $about->set_artists('lodp'); $about->run; $about->destroy; return; } # Check that a command exists sub check_command { return system("which $_[0] >/dev/null 2>/dev/null") == 0 ? TRUE : FALSE; } # Dialog for renumber sub renumber_dialog { if ( defined $windowrn ) { $windowrn->present; return; } $windowrn = Gscan2pdf::Dialog::Renumber->new( 'transient-for' => $window, document => $slist, 'hide-on-delete' => FALSE, border_width => $border_width ); # Update undo/redo buffers $windowrn->signal_connect( 'before-renumber' => sub { take_snapshot(); } ); $windowrn->show_all; return; } # Helper function to convert an array of indices into an array of Gscan2pdf::Page objects sub indices2pages { my @indices = @_; my @pages; for (@indices) { push @pages, $slist->{data}[$_][2]; } return @pages; } # Rotate selected images sub rotate { my ( $angle, $pagelist, $callback ) = @_; # Update undo/redo buffers take_snapshot(); for my $page ( @{$pagelist} ) { my ( $signal, $pid ); $pid = $slist->rotate( angle => $angle, page => $page, queued_callback => sub { return update_tpbar(@_); }, started_callback => sub { my ( $thread, $process, $completed, $total ) = @_; $signal = setup_tpbar( $thread, $process, $completed, $total, $pid ); return TRUE if ( defined $signal ); }, finished_callback => sub { my ( $new_page, $pending ) = @_; $callback->($new_page) if $callback; $thbox->hide_all unless $pending; $tcbutton->signal_handler_disconnect($signal) if ( defined $signal ); }, error_callback => \&error_callback, display_callback => sub { my ($new_page) = @_; display_image($new_page); }, ); } return; } # Analyse selected images sub analyse { my ( $select_blank, $select_dark ) = @_; # Update undo/redo buffers take_snapshot(); foreach my $i ( 0 .. $#{ $slist->{data} } ) { my $dirty_time = $slist->{data}[$i][2]{dirty_time}; my $analyse_time = $slist->{data}[$i][2]{analyse_time}; $dirty_time = defined($dirty_time) ? $dirty_time : 0; $analyse_time = defined($analyse_time) ? $analyse_time : 0; if ( $analyse_time le $dirty_time ) { $logger->info( "Updating: $slist->{data}[$i][0] analyse_time: $analyse_time dirty_time: $dirty_time" ); my ( $signal, $pid ); $pid = $slist->analyse( page => $slist->{data}[$i][2], queued_callback => sub { return update_tpbar(@_); }, started_callback => sub { my ( $thread, $process, $completed, $total ) = @_; $signal = setup_tpbar( $thread, $process, $completed, $total, $pid ); return TRUE if ( defined $signal ); }, finished_callback => sub { my ( $new_page, $pending ) = @_; $thbox->hide_all unless $pending; $tcbutton->signal_handler_disconnect($signal) if ( defined $signal ); select_blank_pages() if $select_blank; select_dark_pages() if $select_dark; }, error_callback => \&error_callback, ); } } return; } # Handle right-clicks sub handle_clicks { my ( $widget, $event ) = @_; # $SETTING{'RMB'} = ($event->button == 3); #warn "rmb $SETTING{'RMB'}\n"; if ( $event->button == 3 ) { if ( $widget->isa('Gtk2::ImageView') ) { # main image $uimanager->get_widget('/Detail_Popup') ->popup( undef, undef, undef, undef, $event->button, $event->time ); } else { # Thumbnail simplelist $uimanager->get_widget('/Thumb_Popup') ->popup( undef, undef, undef, undef, $event->button, $event->time ); } # block event propagation return TRUE; } # allow event propagation return FALSE; } # Display page selector and on apply threshold accordingly sub threshold { # $SETTING{'Page range'} = 'selected' if $SETTING{'RMB'}; my $windowt = Gscan2pdf::Dialog->new( 'transient-for' => $window, title => $d->get('Threshold'), border_width => $border_width ); my $vbox = $windowt->get('vbox'); # Frame for page range add_page_range($vbox); # SpinButton for threshold my $hboxt = Gtk2::HBox->new; $vbox->pack_start( $hboxt, FALSE, TRUE, 0 ); my $label = Gtk2::Label->new( $d->get('Threshold') ); $hboxt->pack_start( $label, FALSE, TRUE, 0 ); my $labelp = Gtk2::Label->new( $d->get('%') ); $hboxt->pack_end( $labelp, FALSE, TRUE, 0 ); my $spinbutton = Gtk2::SpinButton->new_with_range( 0, 100, 1 ); $spinbutton->set_value( $SETTING{'threshold tool'} ); $hboxt->pack_end( $spinbutton, FALSE, TRUE, 0 ); # HBox for buttons my $hboxb = _hbox_with_apply_cancel_buttons( sub { # Update undo/redo buffers take_snapshot(); $SETTING{'threshold tool'} = $spinbutton->get_value; my @pagelist = $slist->get_page_index( $SETTING{'Page range'}, \&error_callback ); if ( not @pagelist ) { return } my $page = 0; for my $i (@pagelist) { $page++; my ( $signal, $pid ); $pid = $slist->threshold( threshold => $SETTING{'threshold tool'}, page => $slist->{data}[$i][2], queued_callback => sub { return update_tpbar(@_); }, started_callback => sub { my ( $thread, $process, $completed, $total ) = @_; $signal = setup_tpbar( $thread, $process, $completed, $total, $pid ); return TRUE if ( defined $signal ); }, finished_callback => sub { my ( $new_page, $pending ) = @_; $thbox->hide_all unless $pending; $tcbutton->signal_handler_disconnect($signal) if ( defined $signal ); }, error_callback => \&error_callback, display_callback => sub { my ($new_page) = @_; display_image($new_page); }, ); } }, sub { $windowt->destroy } ); $vbox->pack_start( $hboxb, FALSE, TRUE, 0 ); $windowt->show_all; return; } # Display page selector and on apply negate accordingly sub negate { # $SETTING{'Page range'} = 'selected' if $SETTING{'RMB'}; my $windowt = Gscan2pdf::Dialog->new( 'transient-for' => $window, title => $d->get('Negate'), border_width => $border_width ); my $vbox = $windowt->get('vbox'); # Frame for page range add_page_range($vbox); # HBox for buttons my $hboxb = _hbox_with_apply_cancel_buttons( sub { # Update undo/redo buffers take_snapshot(); my @pagelist = $slist->get_page_index( $SETTING{'Page range'}, \&error_callback ); if ( not @pagelist ) { return } for my $i (@pagelist) { my ( $signal, $pid ); $pid = $slist->negate( page => $slist->{data}[$i][2], queued_callback => sub { return update_tpbar(@_); }, started_callback => sub { my ( $thread, $process, $completed, $total ) = @_; $signal = setup_tpbar( $thread, $process, $completed, $total, $pid ); return TRUE if ( defined $signal ); }, finished_callback => sub { my ( $new_page, $pending ) = @_; $thbox->hide_all unless $pending; $tcbutton->signal_handler_disconnect($signal) if ( defined $signal ); }, error_callback => \&error_callback, display_callback => sub { my ($new_page) = @_; display_image($new_page); }, ); } }, sub { $windowt->destroy } ); $vbox->pack_start( $hboxb, FALSE, TRUE, 0 ); $windowt->show_all; return; } # Display page selector and on apply unsharp accordingly sub unsharp { # $SETTING{'Page range'} = 'selected' if $SETTING{'RMB'}; my $windowum = Gscan2pdf::Dialog->new( 'transient-for' => $window, title => $d->get('Unsharp mask'), border_width => $border_width ); my $vbox = $windowum->get('vbox'); # Frame for page range add_page_range($vbox); # SpinButton for radius my $hbox = Gtk2::HBox->new; $vbox->pack_start( $hbox, FALSE, TRUE, 0 ); my $label = Gtk2::Label->new( $d->get('Radius') ); $hbox->pack_start( $label, FALSE, TRUE, 0 ); $label = Gtk2::Label->new( $d->get('pixels') ); $hbox->pack_end( $label, FALSE, TRUE, 0 ); my $spinbuttonr = Gtk2::SpinButton->new_with_range( 0, 100, 1 ); $spinbuttonr->set_value( $SETTING{'unsharp radius'} ); $tooltips->set_tip( $spinbuttonr, $d->get( 'The radius of the Gaussian, in pixels, not counting the center pixel (0 = automatic).' ) ); $hbox->pack_end( $spinbuttonr, FALSE, TRUE, 0 ); # SpinButton for sigma $hbox = Gtk2::HBox->new; $vbox->pack_start( $hbox, FALSE, TRUE, 0 ); $label = Gtk2::Label->new( $d->get('Sigma') ); $hbox->pack_start( $label, FALSE, TRUE, 0 ); $label = Gtk2::Label->new( $d->get('pixels') ); $hbox->pack_end( $label, FALSE, TRUE, 0 ); my $spinbuttons = Gtk2::SpinButton->new_with_range( 0, 5, .1 ); $spinbuttons->set_value( $SETTING{'unsharp sigma'} ); $tooltips->set_tip( $spinbuttons, $d->get('The standard deviation of the Gaussian.') ); $hbox->pack_end( $spinbuttons, FALSE, TRUE, 0 ); # SpinButton for amount $hbox = Gtk2::HBox->new; $vbox->pack_start( $hbox, FALSE, TRUE, 0 ); $label = Gtk2::Label->new( $d->get('Amount') ); $hbox->pack_start( $label, FALSE, TRUE, 0 ); $label = Gtk2::Label->new( $d->get('%') ); $hbox->pack_end( $label, FALSE, TRUE, 0 ); my $spinbuttona = Gtk2::SpinButton->new_with_range( 0, 100, 1 ); $spinbuttona->set_value( $SETTING{'unsharp amount'} ); $tooltips->set_tip( $spinbuttona, $d->get( 'The percentage of the difference between the original and the blur image that is added back into the original.' ) ); $hbox->pack_end( $spinbuttona, FALSE, TRUE, 0 ); # SpinButton for threshold $hbox = Gtk2::HBox->new; $vbox->pack_start( $hbox, FALSE, TRUE, 0 ); $label = Gtk2::Label->new( $d->get('Threshold') ); $hbox->pack_start( $label, FALSE, TRUE, 0 ); my $spinbuttont = Gtk2::SpinButton->new_with_range( 0, 1, 0.01 ); $spinbuttont->set_value( $SETTING{'unsharp threshold'} ); $tooltips->set_tip( $spinbuttont, $d->get( 'The threshold, as a fraction of QuantumRange, needed to apply the difference amount.' ) ); $hbox->pack_end( $spinbuttont, FALSE, TRUE, 0 ); # HBox for buttons my $hboxb = _hbox_with_apply_cancel_buttons( sub { # Update undo/redo buffers take_snapshot(); $SETTING{'unsharp radius'} = $spinbuttonr->get_value; $SETTING{'unsharp sigma'} = $spinbuttons->get_value; $SETTING{'unsharp amount'} = $spinbuttona->get_value; $SETTING{'unsharp threshold'} = $spinbuttont->get_value; my @pagelist = $slist->get_page_index( $SETTING{'Page range'}, \&error_callback ); if ( not @pagelist ) { return } for my $i (@pagelist) { my ( $signal, $pid ); $pid = $slist->unsharp( page => $slist->{data}[$i][2], radius => $SETTING{'unsharp radius'}, sigma => $SETTING{'unsharp sigma'}, amount => $SETTING{'unsharp amount'}, threshold => $SETTING{'unsharp threshold'}, queued_callback => sub { return update_tpbar(@_); }, started_callback => sub { my ( $thread, $process, $completed, $total ) = @_; $signal = setup_tpbar( $thread, $process, $completed, $total, $pid ); return TRUE if ( defined $signal ); }, finished_callback => sub { my ( $new_page, $pending ) = @_; $thbox->hide_all unless $pending; $tcbutton->signal_handler_disconnect($signal) if ( defined $signal ); }, error_callback => \&error_callback, display_callback => sub { my ($new_page) = @_; display_image($new_page); }, ); } }, sub { $windowum->destroy } ); $windowum->show_all; return; } # Callback for change Gtk2::ImageView::Tool sub change_image_tool_cb { my ( $action, $current ) = @_; my $value = $current->get_current_value(); my $tool = $selector; if ( $value == 10 ) { $tool = $dragger; } elsif ( $value == 30 ) { $tool = $painter; } $view->set_tool($tool); if ( $value == 20 and defined( $SETTING{selection} ) and @{ $SETTING{selection} } == 4 ) { $selector->signal_handler_block( $selector->{selection_changed_signal} ); $selector->set_selection( Gtk2::Gdk::Rectangle->new( @{ $SETTING{selection} } ) ); $selector->signal_handler_unblock( $selector->{selection_changed_signal} ); } return; } # Display page selector and on apply crop accordingly sub crop { if ( defined $windowc ) { $windowc->present; return; } # $SETTING{'Page range'} = 'selected' if $SETTING{'RMB'}; $windowc = Gscan2pdf::Dialog->new( 'transient-for' => $window, title => $d->get('Crop'), 'hide-on-delete' => TRUE, border_width => $border_width ); my $vbox = $windowc->get('vbox'); # Frame for page range add_page_range($vbox); # SpinButton for x my $hbox = Gtk2::HBox->new; $vbox->pack_start( $hbox, FALSE, TRUE, 0 ); my $label = Gtk2::Label->new( $d->get('x') ); $hbox->pack_start( $label, FALSE, TRUE, 0 ); $label = Gtk2::Label->new( $d->get('pixels') ); $hbox->pack_end( $label, FALSE, TRUE, 0 ); $sb_selector_x = Gtk2::SpinButton->new_with_range( 0, $current_page->{w}, 1 ); $tooltips->set_tip( $sb_selector_x, $d->get('The x-position of the left hand edge of the crop.') ); $hbox->pack_end( $sb_selector_x, FALSE, TRUE, 0 ); # SpinButton for y $hbox = Gtk2::HBox->new; $vbox->pack_start( $hbox, FALSE, TRUE, 0 ); $label = Gtk2::Label->new( $d->get('y') ); $hbox->pack_start( $label, FALSE, TRUE, 0 ); $label = Gtk2::Label->new( $d->get('pixels') ); $hbox->pack_end( $label, FALSE, TRUE, 0 ); $sb_selector_y = Gtk2::SpinButton->new_with_range( 0, $current_page->{h}, 1 ); $tooltips->set_tip( $sb_selector_y, $d->get('The y-position of the top edge of the crop.') ); $hbox->pack_end( $sb_selector_y, FALSE, TRUE, 0 ); # SpinButton for w $hbox = Gtk2::HBox->new; $vbox->pack_start( $hbox, FALSE, TRUE, 0 ); $label = Gtk2::Label->new( $d->get('Width') ); $hbox->pack_start( $label, FALSE, TRUE, 0 ); $label = Gtk2::Label->new( $d->get('pixels') ); $hbox->pack_end( $label, FALSE, TRUE, 0 ); $sb_selector_w = Gtk2::SpinButton->new_with_range( 0, $current_page->{w}, 1 ); $tooltips->set_tip( $sb_selector_w, $d->get('The width of the crop.') ); $hbox->pack_end( $sb_selector_w, FALSE, TRUE, 0 ); # SpinButton for h $hbox = Gtk2::HBox->new; $vbox->pack_start( $hbox, FALSE, TRUE, 0 ); $label = Gtk2::Label->new( $d->get('Height') ); $hbox->pack_start( $label, FALSE, TRUE, 0 ); $label = Gtk2::Label->new( $d->get('pixels') ); $hbox->pack_end( $label, FALSE, TRUE, 0 ); $sb_selector_h = Gtk2::SpinButton->new_with_range( 0, $current_page->{h}, 1 ); $tooltips->set_tip( $sb_selector_h, $d->get('The height of the crop.') ); $hbox->pack_end( $sb_selector_h, FALSE, TRUE, 0 ); # Callbacks if the spinbuttons change $sb_selector_x->signal_connect( 'value-changed' => sub { $SETTING{selection}[0] = $sb_selector_x->get_value; $sb_selector_w->set_range( 0, $current_page->{w} - $SETTING{selection}[0] ); update_selector(); } ); $sb_selector_y->signal_connect( 'value-changed' => sub { $SETTING{selection}[1] = $sb_selector_y->get_value; $sb_selector_h->set_range( 0, $current_page->{h} - $SETTING{selection}[1] ); update_selector(); } ); $sb_selector_w->signal_connect( 'value-changed' => sub { $SETTING{selection}[2] = $sb_selector_w->get_value; $sb_selector_x->set_range( 0, $current_page->{w} - $SETTING{selection}[2] ); update_selector(); } ); $sb_selector_h->signal_connect( 'value-changed' => sub { $SETTING{selection}[3] = $sb_selector_h->get_value; $sb_selector_y->set_range( 0, $current_page->{h} - $SETTING{selection}[3] ); update_selector(); } ); $sb_selector_x->set_value( $SETTING{selection}[0] ) if ( defined $SETTING{selection}[0] ); $sb_selector_y->set_value( $SETTING{selection}[1] ) if ( defined $SETTING{selection}[1] ); $sb_selector_w->set_value( $SETTING{selection}[2] ) if ( defined $SETTING{selection}[2] ); $sb_selector_h->set_value( $SETTING{selection}[3] ) if ( defined $SETTING{selection}[3] ); # HBox for buttons my $hboxb = _hbox_with_apply_cancel_buttons( sub { return unless ( @{ $SETTING{selection} } ); # Update undo/redo buffers take_snapshot(); my @pagelist = $slist->get_page_index( $SETTING{'Page range'}, \&error_callback ); if ( not @pagelist ) { return } for my $i (@pagelist) { my ( $signal, $pid ); $pid = $slist->crop( page => $slist->{data}[$i][2], x => $SETTING{selection}[0], y => $SETTING{selection}[1], w => $SETTING{selection}[2], h => $SETTING{selection}[3], queued_callback => sub { return update_tpbar(@_); }, started_callback => sub { my ( $thread, $process, $completed, $total ) = @_; $signal = setup_tpbar( $thread, $process, $completed, $total, $pid ); return TRUE if ( defined $signal ); }, finished_callback => sub { my ( $new_page, $pending ) = @_; $thbox->hide_all unless $pending; $tcbutton->signal_handler_disconnect($signal) if ( defined $signal ); }, error_callback => \&error_callback, display_callback => sub { my ($new_page) = @_; display_image($new_page); }, ); } }, sub { $windowc->hide } ); $vbox->pack_start( $hboxb, FALSE, TRUE, 0 ); $windowc->show_all; return; } sub update_selector { my $sel = $selector->get_selection; $selector->signal_handler_block( $selector->{selection_changed_signal} ); $selector->set_selection( Gtk2::Gdk::Rectangle->new( @{ $SETTING{selection} } ) ) if ( defined $sel ); $selector->signal_handler_unblock( $selector->{selection_changed_signal} ); return; } # Run a user-defined tool on the selected images sub user_defined_tool { my ($action) = @_; my @pages = $slist->get_selected_indices; # Update undo/redo buffers take_snapshot(); my $cmd = $action->get('label'); for my $i (@pages) { my ( $signal, $pid ); $pid = $slist->user_defined( page => $slist->{data}[$i][2], command => $cmd, queued_callback => sub { return update_tpbar(@_); }, started_callback => sub { my ( $thread, $process, $completed, $total ) = @_; $signal = setup_tpbar( $thread, $process, $completed, $total, $pid ); return TRUE if ( defined $signal ); }, finished_callback => sub { my ( $new_page, $pending ) = @_; $thbox->hide_all unless $pending; $tcbutton->signal_handler_disconnect($signal) if ( defined $signal ); }, error_callback => \&error_callback, display_callback => sub { my ($new_page) = @_; display_image($new_page); }, ); } return; } # queue $page to be processed by unpaper sub unpaper_page { my ( $pages, $options, $callback ) = @_; $options = '' unless ( defined $options ); # Update undo/redo buffers take_snapshot(); for my $pageobject ( @{$pages} ) { my ( $signal, $pid ); $pid = $slist->unpaper( page => $pageobject, options => $options, queued_callback => sub { return update_tpbar(@_); }, started_callback => sub { my ( $thread, $process, $completed, $total ) = @_; $signal = setup_tpbar( $thread, $process, $completed, $total, $pid ); return TRUE if ( defined $signal ); }, finished_callback => sub { my ( $new_page, $pending ) = @_; $callback->($new_page) if $callback; $thbox->hide_all unless $pending; $tcbutton->signal_handler_disconnect($signal) if ( defined $signal ); }, error_callback => \&error_callback, display_callback => sub { my ($new_page) = @_; display_image($new_page); }, ); } return; } # Run unpaper to clean up scan. sub unpaper { if ( defined $windowu ) { $windowu->present; return; } $windowu = Gscan2pdf::Dialog->new( 'transient-for' => $window, title => $d->get('unpaper'), 'hide-on-delete' => TRUE, border_width => $border_width ); my $vbox = $windowu->get('vbox'); $unpaper->add_options($vbox); # Frame for page range add_page_range($vbox); # HBox for buttons my $hboxb = Gtk2::HBox->new; $vbox->pack_start( $hboxb, FALSE, TRUE, 0 ); # OK button my $sbutton = Gtk2::Button->new_from_stock('gtk-ok'); $hboxb->pack_start( $sbutton, TRUE, TRUE, 0 ); $sbutton->signal_connect( clicked => sub { # Update undo/redo buffers take_snapshot(); # Update $SETTING $SETTING{'unpaper options'} = $unpaper->get_options; # run unpaper my @pagelist = indices2pages( $slist->get_page_index( $SETTING{'Page range'}, \&error_callback ) ); if ( not @pagelist ) { return } unpaper_page( \@pagelist, $unpaper->get_cmdline ); $windowu->hide; } ); # Cancel button my $cbutton = Gtk2::Button->new_from_stock('gtk-cancel'); $hboxb->pack_end( $cbutton, FALSE, FALSE, 0 ); $cbutton->signal_connect( clicked => sub { $windowu->hide; } ); $windowu->show_all; return; } # Add $page to the OCR stack, setting it off if not running. sub ocr_page { my ($pages) = @_; my ( $signal, $pid ); my %options = ( queued_callback => sub { return update_tpbar(@_); }, started_callback => sub { my ( $thread, $process, $completed, $total ) = @_; $signal = setup_tpbar( $thread, $process, $completed, $total, $pid ); return TRUE if ( defined $signal ); }, finished_callback => sub { my ( $new_page, $pending ) = @_; $thbox->hide_all unless $pending; $tcbutton->signal_handler_disconnect($signal) if ( defined $signal ); }, error_callback => \&error_callback, display_callback => sub { my ($new_page) = @_; my @page = $slist->get_selected_indices; create_canvas($new_page) if ( @page and $new_page == $slist->{data}[ $page[0] ][2] ); } ); $options{language} = $SETTING{'ocr language'} unless ( $SETTING{'ocr engine'} eq 'gocr' ); for my $page ( @{$pages} ) { $options{page} = $page; if ( $SETTING{'ocr engine'} eq 'gocr' ) { $pid = $slist->gocr(%options); } elsif ( $SETTING{'ocr engine'} eq 'tesseract' ) { $pid = $slist->tesseract(%options); } elsif ( $SETTING{'ocr engine'} eq 'ocropus' ) { $pid = $slist->ocropus(%options); } else { # cuneiform $pid = $slist->cuneiform(%options); } } return; } # Create a combobox from an array and set the default sub combobox_from_array { my (@array) = @_; # Fill ComboBox my $combobox = Gtk2::ComboBox->new_text; foreach (@array) { $combobox->append_text( $_->[1] ); } return $combobox; } # Create a combobox from an array and set the default sub combobox_set_active { my ( $combobox, $default, @array ) = @_; # Fill ComboBox my $i = 0; my $o; if ( defined($default) ) { foreach (@array) { $o = $i if ( defined( $_->[0] ) and $_->[0] eq $default ); ++$i; } } $o = 0 unless ( defined $o ); $combobox->set_active($o); return; } # Add hbox for tesseract languages sub add_tess_languages { my ($vbox) = @_; my $hbox = Gtk2::HBox->new; $vbox->pack_start( $hbox, FALSE, FALSE, 0 ); my $label = Gtk2::Label->new( $d->get('Language to recognise') ); $hbox->pack_start( $label, TRUE, TRUE, 0 ); # Tesseract language files my @tesslang; for ( sort { $a cmp $b } keys %{ Gscan2pdf::Tesseract->languages } ) { push @tesslang, [ $_, $d->get( ${ Gscan2pdf::Tesseract->languages }{$_} ) ]; } # If there are no language files, then we have tesseract-1.0, i.e. English unless (@tesslang) { push @tesslang, [ undef, $d->get('English') ]; $logger->info("No tesseract languages found"); } my $combobox = combobox_from_array(@tesslang); combobox_set_active( $combobox, $SETTING{'ocr language'}, @tesslang ); $hbox->pack_end( $combobox, TRUE, TRUE, 0 ); return $hbox, $combobox, @tesslang; } # Add hbox for cuneiform languages sub add_cf_languages { my ($vbox) = @_; my $hbox = Gtk2::HBox->new; $vbox->pack_start( $hbox, FALSE, FALSE, 0 ); my $label = Gtk2::Label->new( $d->get('Language to recognise') ); $hbox->pack_start( $label, TRUE, TRUE, 0 ); # Tesseract language files my @lang; for ( sort { $a cmp $b } keys %{ Gscan2pdf::Cuneiform->languages } ) { push @lang, [ $_, $d->get( ${ Gscan2pdf::Cuneiform->languages }{$_} ) ]; } my $combobox = combobox_from_array(@lang); combobox_set_active( $combobox, $SETTING{'ocr language'}, @lang ); $hbox->pack_end( $combobox, TRUE, TRUE, 0 ); return $hbox, $combobox, @lang; } # Run OCR on current page and display result sub OCR { if ( defined $windowo ) { $windowo->present; return; } $windowo = Gscan2pdf::Dialog->new( 'transient-for' => $window, title => $d->get('OCR'), 'hide-on-delete' => TRUE, border_width => $border_width ); my $vbox = $windowo->get('vbox'); # OCR engine selection my $hboxe = Gtk2::HBox->new; $vbox->pack_start( $hboxe, TRUE, TRUE, 0 ); my $label = Gtk2::Label->new( $d->get('OCR Engine') ); $hboxe->pack_start( $label, FALSE, FALSE, 0 ); my $combobe = combobox_from_array(@ocr_engine); combobox_set_active( $combobe, $SETTING{'ocr engine'}, @ocr_engine ); $hboxe->pack_end( $combobe, FALSE, FALSE, 0 ); my ( $comboboxtl, $hboxtl, @tesslang, $comboboxcl, $hboxcl, @cflang ); if ( $dependencies{tesseract} ) { ( $hboxtl, $comboboxtl, @tesslang ) = add_tess_languages($vbox); $combobe->signal_connect( changed => sub { if ($ocr_engine[ $combobe->get_active ]->[0] eq 'tesseract' or $ocr_engine[ $combobe->get_active ]->[0] eq 'ocropus' ) { $hboxtl->show_all; } else { $hboxtl->hide_all; } } ); } if ( $dependencies{cuneiform} ) { ( $hboxcl, $comboboxcl, @cflang ) = add_cf_languages($vbox); $combobe->signal_connect( changed => sub { if ( $ocr_engine[ $combobe->get_active ]->[0] eq 'cuneiform' ) { $hboxcl->show_all; } else { $hboxcl->hide_all; } } ); } # Frame for page range add_page_range($vbox); # HBox for buttons my $hbox = Gtk2::HBox->new; $vbox->pack_start( $hbox, FALSE, TRUE, 0 ); # Start button my $obutton = Gtk2::Button->new( $d->get('Start OCR') ); $hbox->pack_start( $obutton, TRUE, TRUE, 0 ); $obutton->signal_connect( clicked => sub { $SETTING{'ocr engine'} = $ocr_engine[ $combobe->get_active ]->[0]; $SETTING{'ocr language'} = $tesslang[ $comboboxtl->get_active ]->[0] if ( $SETTING{'ocr engine'} eq 'tesseract' or $SETTING{'ocr engine'} eq 'ocropus' ); $SETTING{'ocr language'} = $cflang[ $comboboxcl->get_active ]->[0] if ( $SETTING{'ocr engine'} eq 'cuneiform' ); # fill $pagelist with filenames depending on which radiobutton is active my @pagelist = indices2pages( $slist->get_page_index( $SETTING{'Page range'}, \&error_callback ) ); if ( not @pagelist ) { return } ocr_page( \@pagelist ); $windowo->hide; } ); # Close button my $cbutton = Gtk2::Button->new_from_stock('gtk-close'); $hbox->pack_end( $cbutton, FALSE, FALSE, 0 ); $cbutton->signal_connect( clicked => sub { $windowo->hide; } ); $windowo->show_all; $hboxtl->hide_all if ( defined($hboxtl) and not( $ocr_engine[ $combobe->get_active ]->[0] eq 'tesseract' or $ocr_engine[ $combobe->get_active ]->[0] eq 'ocropus' ) ); $hboxcl->hide_all if ( defined($hboxcl) and not( $ocr_engine[ $combobe->get_active ]->[0] eq 'cuneiform' ) ); return; } # Remove temporary files, note window state, save settings and quit. sub quit { # Check that all pages have been saved for ( my $i = 0 ; $i < @{ $slist->{data} } ; $i++ ) { if ( not $slist->{data}[$i][2]{saved} ) { my $response = show_message_dialog( $window, 'question', 'ok-cancel', $d->get("Some pages have not been saved.\nDo you really want to quit?") ); if ( $response ne 'ok' ) { return FALSE; } else { last; } } } # Make sure that we are back in the start directory, otherwise we can't delete # the temp dir. chdir $SETTING{'cwd'}; # Remove temporary files (for some reason File::Temp wasn't doing its job here) unlink <$session/*>; rmdir $session; # Write window state to settings ( $SETTING{'window_width'}, $SETTING{'window_height'} ) = $window->get_size; ( $SETTING{'window_x'}, $SETTING{'window_y'} ) = $window->get_position; $SETTING{'thumb panel'} = $hpaned->get_position; # delete $SETTING{'RMB'}; # Write config file $conf->save_file( $rc, \%SETTING ); $logger->info("Wrote config to $ENV{'HOME'}/.$prog_name"); kill_threads(); kill_subs(); $logger->debug("Quitting"); return TRUE; } # kill all threads sub kill_threads { $logger->info("Killing Sane thread(s)"); Gscan2pdf::Frontend::Sane->quit(); $logger->info("Killing document thread(s)"); Gscan2pdf::Document->quit(); return; } # View POD sub view_pod { if ( defined $windowh ) { $windowh->present; return; } try { require Gtk2::Ex::PodViewer } catch { show_message_dialog( $window, 'error', 'close', sprintf( $d->get( "The help viewer requires module Gtk2::Ex::PodViewer\n" . "Alternatively, try: %s %s\n\n" ), $prog_name, "--help" ) ); return; }; # Window $windowh = Gtk2::Window->new; $windowh->set_transient_for($window); # Assigns parent $windowh->signal_connect( delete_event => sub { $windowh->hide; return TRUE; # ensures that the window is not destroyed } ); $windowh->set_default_size( 800, 600 ); # Vertical divider between index and viewer my $pane = Gtk2::HPaned->new; $pane->set_position(200); $windowh->add($pane); # Index list my $index = Gtk2::Ex::Simple::List->new( 'icon' => 'pixbuf', 'title' => 'text', 'link' => 'hstring' ); $index->set_headers_visible(FALSE); $index->get_column(1)->set_sizing('autosize'); # Index my $index_scrwin = Gtk2::ScrolledWindow->new; $index_scrwin->set_shadow_type('in'); $index_scrwin->set_policy( 'automatic', 'automatic' ); $index_scrwin->add_with_viewport($index); $index_scrwin->get_child->set_shadow_type('none'); # Viewer my $viewer = Gtk2::Ex::PodViewer->new; $viewer->set_border_width($border_width); $viewer->set_cursor_visible(FALSE); $index->get_selection->signal_connect( 'changed', sub { my $idx = ( $index->get_selected_indices )[0]; my $mark = $index->{data}[$idx][2]; $viewer->jump_to($mark); return TRUE; } ); my $viewer_scrwin = Gtk2::ScrolledWindow->new; $viewer_scrwin->set_shadow_type('in'); $viewer_scrwin->set_policy( 'automatic', 'automatic' ); $viewer_scrwin->add($viewer); $pane->add1($index_scrwin); $pane->add2($viewer_scrwin); $viewer->load($0); # Index contents my $idx_pbf = Gtk2::Image->new->render_icon( 'gtk-jump-to', 'menu' ); map { push( @{ $index->{data} }, [ $idx_pbf, strippod($_), $_ ] ) } $viewer->get_marks; $windowh->show_all; return; } # Remove formatting characters sub strippod { my $text = shift; $text =~ s/B<([^<]*)>/$1/gx; $text =~ s/E/>/gx; return $text; } # Update undo/redo buffers before doing something sub take_snapshot { # Deep copy the tied data. Otherwise, very bad things happen. @undo_buffer = map { [@$_] } @{ $slist->{data} }; @undo_selection = $slist->get_selected_indices; $logger->debug( Dumper( \@undo_buffer ) ); # Unghost Undo/redo $uimanager->get_widget('/MenuBar/Edit/Undo')->set_sensitive(TRUE); $uimanager->get_widget('/ToolBar/Undo')->set_sensitive(TRUE); # Save session $slist->save_session; return; } # Put things back to last snapshot after updating redo buffer sub undo { $logger->info("Undoing"); # Deep copy the tied data. Otherwise, very bad things happen. @redo_buffer = map { [@$_] } @{ $slist->{data} }; @redo_selection = $slist->get_selected_indices; $logger->debug("redo_selection, undo_selection:"); $logger->debug( Dumper( \@redo_selection, \@undo_selection ) ); $logger->debug("redo_buffer, undo_buffer:"); $logger->debug( Dumper( \@redo_buffer, \@undo_buffer ) ); # Block slist signals whilst updating $slist->get_model->signal_handler_block( $slist->{row_changed_signal} ); @{ $slist->{data} } = @undo_buffer; # Unblock slist signals now finished $slist->get_model->signal_handler_unblock( $slist->{row_changed_signal} ); # Reselect the pages to display the detail view $slist->select(@undo_selection); # Update menus/buttons update_uimanager(); $uimanager->get_widget('/MenuBar/Edit/Undo')->set_sensitive(FALSE); $uimanager->get_widget('/MenuBar/Edit/Redo')->set_sensitive(TRUE); $uimanager->get_widget('/ToolBar/Undo')->set_sensitive(FALSE); $uimanager->get_widget('/ToolBar/Redo')->set_sensitive(TRUE); return; } # Put things back to last snapshot after updating redo buffer sub unundo { $logger->info("Redoing"); # Deep copy the tied data. Otherwise, very bad things happen. @undo_buffer = map { [@$_] } @{ $slist->{data} }; @undo_selection = $slist->get_selected_indices; $logger->debug("redo_selection, undo_selection:"); $logger->debug( Dumper( \@redo_selection, \@undo_selection ) ); $logger->debug("redo_buffer, undo_buffer:"); $logger->debug( Dumper( \@redo_buffer, \@undo_buffer ) ); # Block slist signals whilst updating $slist->get_model->signal_handler_block( $slist->{row_changed_signal} ); @{ $slist->{data} } = @redo_buffer; # Unblock slist signals now finished $slist->get_model->signal_handler_unblock( $slist->{row_changed_signal} ); # Reselect the pages to display the detail view $slist->select(@redo_selection); # Update menus/buttons update_uimanager(); $uimanager->get_widget('/MenuBar/Edit/Undo')->set_sensitive(TRUE); $uimanager->get_widget('/MenuBar/Edit/Redo')->set_sensitive(FALSE); $uimanager->get_widget('/ToolBar/Undo')->set_sensitive(TRUE); $uimanager->get_widget('/ToolBar/Redo')->set_sensitive(FALSE); return; } # Initialise IconFactory sub init_icons { my @icons = @_; return if defined $IconFactory; $IconFactory = Gtk2::IconFactory->new(); $IconFactory->add_default(); foreach (@icons) { register_icon( $_->[0], $_->[1] ); } return; } # Add icons sub register_icon { my ( $stock_id, $path ) = @_; return unless defined $IconFactory; my $icon; try { $icon = Gtk2::Gdk::Pixbuf->new_from_file($path); } catch { $logger->warn("Unable to load icon `$path': $_"); return; }; $IconFactory->add( $stock_id, Gtk2::IconSet->new_from_pixbuf($icon) ); return; } # We should clean up after ourselves so that we don't # leave dead processes flying around. sub kill_subs { foreach ( keys %helperTag ) { $logger->info("Sending TERM signal to PID $_ and its children"); killfam 'TERM', ($_); } return; } # marked page list as saved sub mark_pages { my @pages = @_; $slist->get_model->signal_handler_block( $slist->{row_changed_signal} ); foreach (@pages) { $slist->{data}[$_][2]{saved} = TRUE; } $slist->get_model->signal_handler_unblock( $slist->{row_changed_signal} ); return; } # Convert all files in temp that are not jpg, png, or tiff to png, sub compress_temp { return if ( show_message_dialog( $window, 'question', 'ok-cancel', $d->get('This operation cannot be undone. Are you sure?') ) ne 'ok' ); @undo_buffer = (); @undo_selection = (); $uimanager->get_widget('/MenuBar/Edit/Undo')->set_sensitive(FALSE); $uimanager->get_widget('/ToolBar/Undo')->set_sensitive(FALSE); for ( @{ $slist->{data} } ) { my ( $signal, $pid ); $pid = $slist->to_png( page => $_->[2], queued_callback => sub { return update_tpbar(@_); }, started_callback => sub { my ( $thread, $process, $completed, $total ) = @_; $signal = setup_tpbar( $thread, $process, $completed, $total, $pid ); return TRUE if ( defined $signal ); }, finished_callback => sub { my ( $new_page, $pending ) = @_; $thbox->hide_all unless $pending; $tcbutton->signal_handler_disconnect($signal) if ( defined $signal ); }, error_callback => \&error_callback, ); } return; } # Expand tildes in the filename sub expand_tildes { my ($filename) = @_; $filename =~ s{ ^ ~ ( [^/]* ) } { $1 ? (getpwnam($1))[7] : ( $ENV{HOME} || $ENV{LOGDIR} || (getpwuid($>))[7] ) }ex; return $filename; } # Preferences dialog sub preferences { ## no critic (ProhibitExcessComplexity) if ( defined $windowr ) { $windowr->present; return; } $windowr = Gscan2pdf::Dialog->new( 'transient-for' => $window, title => $d->get('Preferences'), 'hide-on-delete' => TRUE, border_width => $border_width ); my $vbox = $windowr->get('vbox'); # Notebook for scan and general options my $notebook = Gtk2::Notebook->new; $vbox->pack_start( $notebook, TRUE, TRUE, 0 ); my $vbox1 = Gtk2::VBox->new; $notebook->append_page( $vbox1, $d->get('Scan options') ); $vbox1->set_border_width($border_width); my $cbo = Gtk2::CheckButton->new_with_label( $d->get('Open scan dialog at program start') ); $tooltips->set_tip( $cbo, $d->get( "Automatically open the scan dialog in the background at program start. " . "This saves time clicking the scan button and waiting for the program to find the list of scanners" ) ); $cbo->set_active( $SETTING{'auto-open-scan-dialog'} ) if ( defined $SETTING{'auto-open-scan-dialog'} ); $vbox1->pack_start( $cbo, TRUE, TRUE, 0 ); # Frontends my $hbox = Gtk2::HBox->new; $vbox1->pack_start( $hbox, FALSE, FALSE, 0 ); my $label = Gtk2::Label->new( $d->get('Frontend') ); $hbox->pack_start( $label, FALSE, FALSE, 0 ); my @frontends = ( [ 'libsane-perl', $d->get('libsane-perl'), $d->get('Scan using the perl bindings for SANE.') ], [ 'scanimage', $d->get('scanimage'), $d->get('Scan using the scanimage frontend.') ], [ 'scanimage-perl', $d->get('scanimage-perl'), $d->get('Scan using the scanimage-perl frontend.') ], [ 'scanadf-perl', $d->get('scanadf-perl'), $d->get('Scan using the scanadf-perl frontend.') ], ); push @frontends, [ 'scanadf', $d->get('scanadf'), $d->get('Scan using the scanadf frontend.') ], if ( $dependencies{scanadf} ); my $combob = combobox_from_array(@frontends); my $cbcsh = Gtk2::CheckButton->new_with_label( $d->get('Cycle SANE handle after scan') ); $hbox->pack_end( $combob, TRUE, TRUE, 0 ); $tooltips->set_tip( $hbox, $d->get("Interface used for scanner access") ); # Cycle SANE handle after scan $cbcsh->set_active( $SETTING{'cycle sane handle'} ) if ( defined $SETTING{'cycle sane handle'} ); $vbox1->pack_start( $cbcsh, FALSE, FALSE, 0 ); # scan command prefix my $hboxp = Gtk2::HBox->new; $vbox1->pack_start( $hboxp, FALSE, FALSE, 0 ); $label = Gtk2::Label->new( $d->get('Scan command prefix') ); $hboxp->pack_start( $label, FALSE, FALSE, 0 ); my $preentry = Gtk2::Entry->new; $hboxp->add($preentry); $preentry->set_text( $SETTING{'scan prefix'} ) if defined( $SETTING{'scan prefix'} ); # Cache options? my $cbc = Gtk2::CheckButton->new_with_label( $d->get('Cache device-dependent options') ); $cbc->set_active(TRUE) if ( $SETTING{'cache options'} ); $vbox1->pack_start( $cbc, FALSE, FALSE, 0 ); # Clear options cache my $buttonc = Gtk2::Button->new( $d->get('Clear device-dependent options cache') ); $vbox1->pack_start( $buttonc, FALSE, FALSE, 0 ); $buttonc->signal_connect( clicked => sub { delete $SETTING{cache} if ( defined $SETTING{cache} ); $windows->set( 'options-cache', undef ) if ( defined $windows ); } ); # Option visibility my $oframe = Gtk2::Frame->new( $d->get('Option visibility & control') ); $vbox1->pack_start( $oframe, TRUE, TRUE, 0 ); my $vvbox = Gtk2::VBox->new; $vvbox->set_border_width($border_width); $oframe->add($vvbox); my $scwin = Gtk2::ScrolledWindow->new; $vvbox->pack_start( $scwin, TRUE, TRUE, 0 ); $scwin->set_policy(qw/never automatic/); $option_visibility_list = Gtk2::Ex::Simple::List->new( $d->get('Title') => 'text', $d->get('Type') => 'text', $d->get('Show') => 'bool', $d->get('Reload') => 'bool' ); $option_visibility_list->get_selection->set_mode('multiple'); $scwin->add($option_visibility_list); my $bhbox = Gtk2::HBox->new; $vvbox->pack_start( $bhbox, FALSE, FALSE, 0 ); my $sbutton = Gtk2::Button->new( $d->get('Show') ); $sbutton->signal_connect( clicked => sub { for ( $option_visibility_list->get_selected_indices ) { $option_visibility_list->{data}[$_][2] = TRUE; } } ); $bhbox->pack_start( $sbutton, TRUE, TRUE, 0 ); my $hbutton = Gtk2::Button->new( $d->get('Hide') ); $hbutton->signal_connect( clicked => sub { for ( $option_visibility_list->get_selected_indices ) { $option_visibility_list->{data}[$_][2] = FALSE; } } ); $bhbox->pack_start( $hbutton, TRUE, TRUE, 0 ); my $fbutton = Gtk2::Button->new( $d->get('List current optionts') ); $fbutton->signal_connect( clicked => sub { if ( defined $windows ) { @{ $option_visibility_list->{data} } = (); my $options = $windows->get('available-scan-options'); for ( my $i = 1 ; $i < $options->num_options ; ++$i ) { my $opt = $options->by_index($i); push @{ $option_visibility_list->{data} }, [ $opt->{title}, $opt->{type}, TRUE, FALSE ]; } push @{ $option_visibility_list->{data} }, [ 'Paper size', undef, TRUE, FALSE ]; } else { show_message_dialog( $windowr, 'error', 'close', $d->get('No scanner currently open with command line frontend.') ); } return; } ); $bhbox->pack_start( $fbutton, TRUE, TRUE, 0 ); my $show_not_listed = Gtk2::CheckButton->new_with_label( $d->get('Show options not listed') ); $vvbox->pack_start( $show_not_listed, FALSE, FALSE, 0 ); # fill the list if ( defined $SETTING{'visible-scan-options'} ) { my %reload; $SETTING{'scan-reload-triggers'} = [ $SETTING{'scan-reload-triggers'} ] if ( ref( $SETTING{'scan-reload-triggers'} ) ne 'ARRAY' ); for ( @{ $SETTING{'scan-reload-triggers'} } ) { $reload{$_} = 1; } for ( sort { $a cmp $b } keys %{ $SETTING{'visible-scan-options'} } ) { push @{ $option_visibility_list->{data} }, [ $_, undef, $SETTING{'visible-scan-options'}{$_}, defined( $reload{$_} ) ]; } } $combob->signal_connect( changed => sub { if ( $frontends[ $combob->get_active ][0] eq 'libsane-perl' ) { $cbcsh->set_sensitive(TRUE); $hboxp->set_sensitive(FALSE); $cbc->set_sensitive(FALSE); $buttonc->set_sensitive(FALSE); $oframe->set_sensitive(FALSE); } else { $cbcsh->set_sensitive(FALSE); $hboxp->set_sensitive(TRUE); $cbc->set_sensitive(TRUE); $buttonc->set_sensitive(TRUE); $oframe->set_sensitive(TRUE); } } ); combobox_set_active( $combob, $SETTING{frontend}, @frontends ); my $vbox2 = Gtk2::VBox->new; $notebook->append_page( $vbox2, $d->get('General options') ); $vbox2->set_border_width($border_width); # Restore window setting my $cbw = Gtk2::CheckButton->new_with_label( $d->get('Restore window settings on startup') ); $cbw->set_active(TRUE) if ( $SETTING{'restore window'} ); $vbox2->pack_start( $cbw, TRUE, TRUE, 0 ); # View saved files my $cbv = Gtk2::CheckButton->new_with_label( $d->get('View files on saving') ); $cbv->set_active( $SETTING{'view files toggle'} ) if ( defined $SETTING{'view files toggle'} ); $vbox2->pack_start( $cbv, TRUE, TRUE, 0 ); # Default filename $hbox = Gtk2::HBox->new; $vbox2->pack_start( $hbox, TRUE, TRUE, 0 ); $label = Gtk2::Label->new( $d->get('Default filename for PDFs') ); $hbox->pack_start( $label, FALSE, FALSE, 0 ); my $fileentry = Gtk2::Entry->new; $tooltips->set_tip( $fileentry, $d->get( "\%a\t author\n\%t\t title\n\%y\t document's year\n\%Y\t today's year\n\%m\t document's month\n\%M\t today's month\n\%d\t document's day\n\%D\t today's day" ) ); $hbox->add($fileentry); $fileentry->set_text( $SETTING{'default filename'} ) if defined( $SETTING{'default filename'} ); # Temporary directory settings $hbox = Gtk2::HBox->new; $vbox2->pack_start( $hbox, TRUE, TRUE, 0 ); $label = Gtk2::Label->new( $d->get('Temporary directory') ); $hbox->pack_start( $label, FALSE, FALSE, 0 ); my $tmpentry = Gtk2::Entry->new; $hbox->add($tmpentry); $tmpentry->set_text( dirname($session) ); my $button = Gtk2::Button->new( $d->get('Browse') ); $button->signal_connect( clicked => sub { my $file_chooser = Gtk2::FileChooserDialog->new( $d->get('Select temporary directory'), $windowr, 'select-folder', 'gtk-cancel' => 'cancel', 'gtk-ok' => 'ok' ); $file_chooser->set_current_folder( $tmpentry->get_text ); if ( 'ok' eq $file_chooser->run ) { $tmpentry->set_text( $file_chooser->get_filename ); } $file_chooser->destroy; } ); $hbox->pack_end( $button, TRUE, TRUE, 0 ); # Blank page standard deviation threshold $hbox = Gtk2::HBox->new; $vbox2->pack_start( $hbox, TRUE, TRUE, 0 ); $label = Gtk2::Label->new( $d->get('Blank threshold') ); $hbox->pack_start( $label, FALSE, FALSE, 0 ); my $spinbuttonb = Gtk2::SpinButton->new_with_range( 0, 1, 0.001 ); $spinbuttonb->set_value( $SETTING{'Blank threshold'} ); $tooltips->set_tip( $spinbuttonb, $d->get('Threshold used for selecting blank pages') ); $hbox->add($spinbuttonb); # Dark page mean threshold $hbox = Gtk2::HBox->new; $vbox2->pack_start( $hbox, TRUE, TRUE, 0 ); $label = Gtk2::Label->new( $d->get('Dark threshold') ); $hbox->pack_start( $label, FALSE, FALSE, 0 ); my $spinbuttond = Gtk2::SpinButton->new_with_range( 0, 1, 0.01 ); $spinbuttond->set_value( $SETTING{'Dark threshold'} ); $tooltips->set_tip( $spinbuttond, $d->get('Threshold used for selecting dark pages') ); $hbox->add($spinbuttond); # OCR output $hbox = Gtk2::HBox->new; $vbox2->pack_start( $hbox, TRUE, TRUE, 0 ); $label = Gtk2::Label->new( $d->get('OCR output') ); $hbox->pack_start( $label, FALSE, FALSE, 0 ); my @array = ( [ 'replace', $d->get('Replace'), $d->get( 'Replace the contents of the text buffer with that from the OCR output.') ], [ 'prepend', $d->get('Prepend'), $d->get('Prepend the OCR output to the text buffer.') ], [ 'append', $d->get('Append'), $d->get('Append the OCR output to the text buffer.') ], ); my $comboo = combobox_from_array(@array); combobox_set_active( $comboo, $SETTING{'OCR output'}, @array ); $hbox->pack_end( $comboo, TRUE, TRUE, 0 ); # User-defined tools my $frame = Gtk2::Frame->new( $d->get('User-defined tools') ); $vbox2->pack_start( $frame, TRUE, TRUE, 0 ); my $vboxt = Gtk2::VBox->new; $vboxt->set_border_width($border_width); $frame->add($vboxt); for my $tool (@user_defined_tools) { add_user_defined_tool_entry( $vboxt, $tool ); } my $abutton = Gtk2::Button->new_from_stock('gtk-add'); $vboxt->pack_start( $abutton, TRUE, TRUE, 0 ); $abutton->signal_connect( clicked => sub { my %tool = ( cmd => 'my-tool %i %o' ); add_user_defined_tool_menu( \%tool ); add_user_defined_tool_entry( $vboxt, \%tool ); $vboxt->reorder_child( $abutton, -1 ); $SETTING{user_defined_tools} = list_user_defined_tools($vboxt); } ); # Apply button $hbox = _hbox_with_apply_cancel_buttons( sub { $windowr->hide; if ( $SETTING{frontend} ne $frontends[ $combob->get_active ][0] ) { $SETTING{frontend} = $frontends[ $combob->get_active ][0]; $windows->hide; undef $windows; } else { $SETTING{'visible-scan-options'} = (); $SETTING{'scan-reload-triggers'} = (); for ( @{ $option_visibility_list->{data} } ) { $SETTING{'visible-scan-options'}{ $_->[0] } = $_->[2]; push @{ $SETTING{'scan-reload-triggers'} }, $_->[0] if ( $_->[3] ); } if ( $SETTING{frontend} ne 'libsane-perl' ) { $windows->set( 'visible-scan-options', $SETTING{'visible-scan-options'} ); $windows->set( 'reload-triggers', $SETTING{'scan-reload-triggers'} ); $SETTING{'scan prefix'} = $preentry->get_text; $SETTING{'cache options'} = $cbc->get_active; if ( defined $windows ) { $windows->set( 'prefix', $SETTING{'scan prefix'} ); $windows->set( 'cache-options', $SETTING{'cache options'} ); } delete $SETTING{cache} if ( defined $SETTING{cache} and not $SETTING{'cache options'} ); } } $SETTING{'auto-open-scan-dialog'} = $cbo->get_active; $SETTING{'cycle sane handle'} = $cbcsh->get_active; $SETTING{'default filename'} = $fileentry->get_text; $SETTING{'restore window'} = $cbw->get_active; my @tmpdirs = File::Spec->splitdir($session); pop @tmpdirs; # Remove the top level my $tmp = File::Spec->catdir(@tmpdirs); # Expand tildes in the filename my $newdir = expand_tildes( $tmpentry->get_text ); if ( $newdir ne $tmp ) { $SETTING{TMPDIR} = $newdir; show_message_dialog( $window, 'warning', 'close', $d->get( 'You will have to restart gscanp2df for changes to the temporary directory to take effect.' ) ); } $SETTING{'Blank threshold'} = $spinbuttonb->get_value; $SETTING{'Dark threshold'} = $spinbuttond->get_value; $SETTING{'OCR output'} = $array[ $comboo->get_active ][0]; # Store viewer preferences $SETTING{'view files toggle'} = $cbv->get_active; }, sub { $windowr->hide; } ); $vbox->pack_start( $hbox, FALSE, FALSE, 0 ); $windowr->show_all; return; } sub _hbox_with_apply_cancel_buttons { my ( $apply_callback, $cancel_callback ) = @_; my $hbox = Gtk2::HBox->new; # Apply button my $button = Gtk2::Button->new_from_stock('gtk-apply'); $hbox->pack_start( $button, TRUE, TRUE, 0 ); $button->signal_connect( clicked => $apply_callback ); # Cancel button $button = Gtk2::Button->new_from_stock('gtk-cancel'); $hbox->pack_end( $button, TRUE, TRUE, 0 ); $button->signal_connect( clicked => $cancel_callback ); return $hbox; } # Return list of user-defined tools sub list_user_defined_tools { my ($vbox) = @_; my @list; for my $hbox ( $vbox->get_children ) { if ( $hbox->isa('Gtk2::HBox') ) { for my $widget ( $hbox->get_children ) { push @list, $widget->get_text if ( $widget->isa('Gtk2::Entry') ); } } } return \@list; } # Add user-defined tool menu item sub add_user_defined_tool_menu { my ($tool) = @_; my $action_group = Gtk2::ActionGroup->new("actions"); $tool->{name} = "$action_group"; my $tool_ui = <<"EOS"; EOS # add the basic XML description of the GUI $tool->{merge_id} = $uimanager->add_ui_from_string($tool_ui); my @action_item = ( # Fields for each action item: # [name, stock_id, value, label, accelerator, tooltip, callback] [ $tool->{name}, undef, $tool->{cmd}, undef, undef, \&user_defined_tool ], ); $action_group->add_actions( \@action_item, undef ); # Add the actiongroup to the uimanager $uimanager->insert_action_group( $action_group, 0 ); $tool->{action_group} = $action_group; return; } # Add user-defined tool entry sub add_user_defined_tool_entry { my ( $vbox, $tool ) = @_; my $hbox = Gtk2::HBox->new; $vbox->pack_start( $hbox, TRUE, TRUE, 0 ); my $entry = Gtk2::Entry->new; $entry->set_text( $tool->{cmd} ); $entry->signal_connect( changed => sub { my $action = $tool->{action_group}->get_action( $tool->{name} ); $action->set( 'label', $entry->get_text ); $SETTING{user_defined_tools} = list_user_defined_tools($vbox); () # this callback must return either 2 or 0 items. } ); $tooltips->set_tip( $entry, $d->get( "Use \%i and \%o for the input and output filenames respectively, or a single \%i if the image is to be modified in-place.\n\nThe other variable available is:\n\n\%r resolution" ) ); $hbox->pack_start( $entry, TRUE, TRUE, 0 ); my $button = Gtk2::Button->new; $button->set_image( Gtk2::Image->new_from_stock( 'gtk-delete', 'button' ) ); $button->signal_connect( clicked => sub { $uimanager->remove_ui( $tool->{merge_id} ); $hbox->destroy; $SETTING{user_defined_tools} = list_user_defined_tools($vbox); } ); $hbox->pack_end( $button, FALSE, FALSE, 0 ); $hbox->show_all; return; } sub properties { if ( defined $windowp ) { $windowp->present; return; } $windowp = Gscan2pdf::Dialog->new( 'transient-for' => $window, title => $d->get('Properties'), 'hide-on-delete' => TRUE, border_width => $border_width ); my $vbox = $windowp->get('vbox'); my $hbox = Gtk2::HBox->new; $vbox->pack_start( $hbox, TRUE, TRUE, 0 ); my $label = Gtk2::Label->new( $d->get('Resolution') ); $hbox->pack_start( $label, FALSE, FALSE, 0 ); my $entry = Gtk2::Entry->new; $entry->set_width_chars(4); $entry->set_activates_default(TRUE); $entry->signal_connect( 'insert-text' => sub { my ( $widget, $string, $len, $position ) = @_; # only allow a valid positive real number for ( split '', $string ) { if (( $_ ne '.' and ( $_ lt '0' or $_ gt '9' ) ) or ( $_ eq '.' and $entry->get_text =~ /\./ ) ) { $entry->signal_stop_emission_by_name('insert-text'); last; } } () # this callback must return either 2 or 0 items. } ); $entry->set_text( get_selected_properties() ); $slist->get_selection->signal_connect( changed => sub { $entry->set_text( get_selected_properties() ); } ); $hbox->pack_end( $entry, TRUE, TRUE, 0 ); $hbox = Gtk2::HBox->new; $vbox->pack_start( $hbox, TRUE, TRUE, 0 ); # Apply button my $button = Gtk2::Button->new_from_stock('gtk-apply'); $button->can_default(TRUE); $windowp->set_default($button); $hbox->pack_start( $button, TRUE, TRUE, 0 ); $button->signal_connect( clicked => sub { $windowp->hide; my $resolution = $entry->get_text; $slist->get_model->signal_handler_block( $slist->{row_changed_signal} ); for ( $slist->get_selected_indices ) { $slist->{data}[$_][2]{resolution} = $resolution; } $slist->get_model->signal_handler_unblock( $slist->{row_changed_signal} ); } ); # Cancel button $button = Gtk2::Button->new_from_stock('gtk-cancel'); $hbox->pack_end( $button, TRUE, TRUE, 0 ); $button->signal_connect( clicked => sub { $windowp->hide; } ); $windowp->show_all; return; } # Helper function for properties() sub get_selected_properties { my @page = $slist->get_selected_indices; my $resolution = ''; $resolution = $slist->{data}[ shift @page ][2]{resolution} if ( @page > 0 ); for (@page) { if ( $slist->{data}[$_][2]{resolution} != $resolution ) { $resolution = ''; last; } } # round the value to a sensible number of significant figures return $resolution eq '' ? '' : sprintf( "%g", $resolution ); } # Helper function to display a message dialog, wait for a response, and return it sub show_message_dialog { my ( $parent, $type, $buttons, $text ) = @_; my $dialog = Gtk2::MessageDialog->new( $parent, 'destroy-with-parent', $type, $buttons, $text ); my $response = $dialog->run; $dialog->destroy; return $response; } Gtk2->main; __END__ =encoding utf8 =head1 Name gscan2pdf - A GUI to produce PDFs or DjVus from scanned documents =for html

Screenshot
Screenshot: Main page v0.9.30

=head1 Synopsis =over =item 1. Scan one or several pages in with File/Scan =item 2. Create PDF of selected pages with File/Save =back =head1 Description gscan2pdf has the following command-line options: =over =item --device= Specifies the device to use, instead of getting the list of devices from via the SANE API. This can be useful if the scanner is on a remote computer which is not broadcasting its existence. =item --help Displays this help page and exits. =item --log= Specifies a file to store logging messages. =item --(debug|info|warn|error|fatal) Defines the log level. If a log file is specified, this defaults to 'debug', otherwise 'warn'. =item --version Displays the program version and exits. =back Scanning is handled with SANE via scanimage. PDF conversion is done by PDF::API2. TIFF export is handled by libtiff (faster and smaller memory footprint for multipage files). =head1 Download gscan2pdf is available on Sourceforge (L). =head2 Debian-based If you are using Debian, you should find that sid has the latest version already packaged. If you are using a Ubuntu-based system, you can automatically keep up to date with the latest version via the ppa: C If you are you are using Synaptic, then use menu I, search for gscan2pdf in the package list, and lo and behold, you can install the nice shiny new version. From the command line: C C =head2 RPMs Download the rpm from Sourceforge, and then install it with C =head2 From source The source is hosted in the files section of the gscan2pdf project on Sourceforge (L). =head2 From the repository gscan2pdf uses Git for its Revision Control System. You can browse the tree at L. Git users can clone the complete tree with C =head1 Building gscan2pdf from source Having downloaded the source either from a Sourceforge file release, or from the Git repository, unpack it if necessary with C C, will create the Makefile. There is a C, but this is not machine-dependent, and therefore really just for my benefit to make sure I haven't broken the device-dependent options parsing routine. You can install directly from the source with C, but building the appropriate package for your distribution should be as straightforward as C or C. However, you will additionally need the rpm, devscripts, fakeroot, debhelper and gettext packages. =head1 Dependencies The list below looks daunting, but all packages are available from any reasonable up-to-date distribution. If you are using Synaptic, having installed gscan2pdf, locate the gscan2pdf entry in Synaptic, right-click it and you can install them under I. Note also that the library names given below are the Debian/Ubuntu ones. Those distributions using RPM typically use perl(module) where Debian has libmodule-perl. =over =item Required =over =item libgtk2.0-0 (>= 2.4) The GTK+ graphical user interface library. =item libglib-perl (>= 1.100-1) Perl interface to the GLib and GObject libraries =item libgtk2-perl (>= 1:1.043-1) Perl interface to the 2.x series of the Gimp Toolkit library =item libgtk2-imageview-perl Perl bindings to the gtkimageview widget. See L =item libgtk2-ex-simple-list-perl A simple interface to Gtk2's complex MVC list widget =item liblocale-gettext-perl (>= 1.05) Using libc functions for internationalization in Perl =item libpdf-api2-perl provides the functions for creating PDF documents in Perl =item libsane API library for scanners =item libsane-perl Perl bindings for libsane. =item libset-intspan-perl manages sets of integers =item libtiff-tools TIFF manipulation and conversion tools =item Imagemagick Image manipulation programs =item perlmagick A perl interface to the libMagick graphics routines =item sane-utils API library for scanners -- utilities. =back =item Optional =over =item sane scanner graphical frontends. Only required for the scanadf frontend. =item libgtk2-ex-podviewer-perl Perl Gtk2 widget for displaying Plain Old Documentation (POD). Not required if you don't need the gscan2pdf documentation (which is anyway repeated on the website). =item unpaper post-processing tool for scanned pages. See L. =item xdg-utils Desktop integration utilities from freedesktop.org. Required for Email as PDF. See L =item djvulibre-bin Utilities for the DjVu image format. See L =item gocr A command line OCR. See L. =item tesseract A command line OCR. See L =item ocropus A command line OCR. See L =item cuneiform A command line OCR. See L =back =back =head1 Support There are two mailing lists for gscan2pdf: =over =item gscan2pdf-announce A low-traffic list for announcements, mostly of new releases. You can subscribe at L =item gscan2pdf-help General support, questions, etc.. You can subscribe at L =back =head1 Reporting bugs Before reporting bugs, please read the L<"FAQs"> section. Please report any bugs found, preferably against the Debian package[1][2]. You do not need to be a Debian user, or set up an account to do this. =over =item 1. http://packages.debian.org/sid/gscan2pdf =item 2. http://www.debian.org/Bugs/ =back Alternatively, there is a bug tracker for the gscan2pdf project on Sourceforge (L). Please include the log file created by C with any new bug report. =head1 Translations gscan2pdf has already been partly translated several languages. If you would like to contribute to an existing or new translation, please check out Rosetta: L Note that the translations for the scanner options are taken directly from sane-backends. If you would like to contribute to these, you can do so either at contact the sane-devel mailing list (sane-devel@lists.alioth.debian.org) and have a look at the po/ directory in the source code L. Alternatively, Ubuntu has its own translation project. For the 9.04 release, the translations are available at L =head1 Menus =head2 File =head3 New Clears the page list. =head3 Open Opens any format that imagemagick supports. PDFs will have their embedded images extracted and imported one per page. =head3 Scan Sets options before scanning via SANE. =head4 Device Chooses between available scanners. =head4 # Pages Selects the number of pages, or all pages to scan. =head4 Source document Selects between single sided or double sides pages. This affects the page numbering. Single sided scans are numbered consecutively. Double sided scans are incremented (or decremented, see below) by 2, i.e. 1, 3, 5, etc.. =head4 Side to scan If double sided is selected above, assuming a non-duplex scanner, i.e. a scanner that cannot automatically scan both sides of a page, this determines whether the page number is incremented or decremented by 2. To scan both sides of three pages, i.e. 6 sides: =over =item 1. Select: # Pages = 3 (or "all" if your scanner can detect when it is out of paper) Double sided Facing side =item 2. Scans sides 1, 3 & 5. =item 3. Put pile back with scanner ready to scan back of last page. =item 4. Select: # Pages = 3 (or "all" if your scanner can detect when it is out of paper) Double sided Reverse side =item 5. Scans sides 6, 4 & 2. =item 6. gscan2pdf automatically sorts the pages so that they appear in the correct order. =back =head4 Device-dependent options These, naturally, depend on your scanner. They can include =over =item Page size. =item Mode (colour/black & white/greyscale) =item Resolution (in PPI) =item Batch-scan Guarantees that a "no documents" condition will be returned after the last scanned page, to prevent endless flatbed scans after a batch scan. =item Wait-for-button/Button-wait After sending the scan command, wait until the button on the scanner is pressed before actually starting the scan process. =item Source Selects the document source. Possible options can include Flatbed or ADF. On some scanners, this is the only way of generating an out-of-documents signal. =back =head3 Save Saves the selected or all pages as a PDF, DjVu, TIFF, PNG, JPEG, PNM or GIF. =head4 PDF Metadata Metadata are information that are not visible when viewing the PDF, but are embedded in the file and so searchable and can be examined, typically with the "Properties" option of the PDF viewer. The metadata are completely optional, but can also be used to generate the filename see preferences for details. =head4 DjVu Both black and white, and colour images produce better compression than PDF. See L for more details. =head3 Email as PDF Attaches the selected or all pages as a PDF to a blank email. This requires xdg-email, which is in the xdg-utils package. If this is not present, the option is ghosted out. =head3 Print Prints the selected or all pages. =head3 Compress temporary files If your temporary ($TMPDIR) directory is getting full, this function can be useful - compressing all images at LZW-compressed TIFFs. These require much less space than the PNM files that are typically produced by SANE or by importing a PDF. =head2 Edit =head3 Delete Deletes the selected page. =head3 Renumber Renumbers the pages from 1..n. Note that the page order can also be changed by drag and drop in the thumbnail view. =head3 Select The select menus can be used to select, all, even, odd, blank, dark or modified pages. Selecting blank or dark pages runs imagemagick to make the decision. Selecting modified pages selects those which have modified by threshold, unsharp, etc., since the last OCR run was made. =head3 Preferences The preferences menu item allows the control of the default behviour of various functions. Most of these are self-explanatory. =head4 Frontend gscan2pdf supports two frontends, scanimage and scanadf. scanadf support was added when it was realised that scanadf works better than scanimage with some scanners. On Debian-based systems, scanadf is in the sane package, not, like scanimage, in sane-utils. If scanadf is not present, the option is obviously ghosted out. In 0.9.27, Perl bindings for SANE were introduced and two further frontends, scanimage-perl and scanadf-perl (scanimage and scanadf transliterated from C into Perl) were added. Before 1.2.0, options available through CLI frontends like scanimage were made visible as users asked for them. In 1.2.0, all options can be shown or hidden via Edit/Preferences, along with the ability to specify which options trigger a reload. =head4 Default filename for PDF files The following variables are available, which are replaced by the corresponding metadata: %a author %t title %y document's year %Y today's year %m document's month %M today's month %d document's day %D today's day =head2 View =head3 Zoom 100% Zooms to 1:1. How this appears depends on the desktop resolution. =head3 Zoom to fit Scales the view such that all the page is visible. =head3 Zoom in =head3 Zoom out =head3 Rotate 90 clockwise The rotate options require the package imagemagick and, if this is not present, are ghosted out. =head3 Rotate 180 =head3 Rotate 90 anticlockwise =head2 Tools =head3 Threshold Changes all pixels darker than the given value to black; all others become white. =head3 Unsharp mask The unsharp option sharpens an image. The image is convolved with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, radius should be larger than sigma. Use a radius of 0 to have the method select a suitable radius. =head3 Crop =head3 unpaper unpaper (see L) is a utility for cleaning up a scan. =head3 OCR (Optical Character Recognition) The gocr, tesseract, ocropus or cuneiform utilities are used to produce text from an image. There is an OCR output buffer for each page and is embedded as plain text behind the scanned image in the PDF produced. This way, Beagle can index (i.e. search) the plain text. In DjVu files, the OCR output buffer is embedded in the hidden text layer. Thus these can also be indexed by Beagle. There is an interesting review of OCR software at L. An important conclusion was that 400ppi is necessary for decent results. Up to v2.04, the only way to tell which languages were available to tesseract was to look for the language files. Therefore, gscan2pdf checks the path returned by: tesseract '' '' -l '' If there are no language files in the above location, then gscan2pdf assumes that tesseract v1.0 is installed, which had no language files. =head3 Variables for user-defined tools The following variables are available: %i input filename %o output filename %r resolution An image can be modified in-place by just specifying %i. =head1 FAQs =head2 Why isn't option xyz available in the scan window? Possibly because SANE or your scanner doesn't support it. If an option listed in the output of C that you would like to use isn't available, send me the output and I will look at implementing it. =head2 I've only got an old flatbed scanner with no automatic sheetfeeder. How do I scan a multipage document? If you are lucky, you have an option like Wait-for-button or Button-wait, where the scanner will wait for you to press the scan button on the device before it starts the scan, allowing you to scan multiple pages without touching the computer. Otherwise, you have to set the number of pages to scan to 1 and hit the scan button on the scan window for each page. =head2 Why is option xyz ghosted out? Probably because the package required for that option is not installed. Email as PDF requires xdg-email (xdg-utils), unpaper and the rotate options require imagemagick. =head2 Why can I not scan from the flatbed of my HP scanner? Generally for HP scanners with an ADF, to scan from the flatbed, you should set "# Pages" to "1", and possibly "Batch scan" to "No". =head2 When I update gscan2pdf using the Update Manager in Ubuntu, why is the list of changes never displayed? As far as I can tell, this is pulled from changelogs.ubuntu.com, and therefore only the changelogs from official Ubuntu builds are displayed. =head2 Why can gscan2pdf not find my scanner? If your scanner is not connected directly to the machine on which you are running gscan2pdf and you have not installed the SANE daemon, saned, gscan2pdf cannot automatically find it. In this case, you can specify the scanner device on the command line: C> =head2 How can I search for text in the OCR layer of the finished PDF or DJVU file? pdftotext or djvutxt can extract the text layer from PDF or DJVU files. See the respective man pages for details. Having opened a PDF or DJVU file in evince or Acrobat Reader, the search function will typically find the page with the requested text and highlight it. There are various tools for searching or indexing files, including PDF and DJVU: =over =item * (meta) Tracker (L) =item * plone (L) =item * pdfgrep (L =item * swish-e (L) =item * recoll (L) =item * terrier (L) =back =head1 See Also Xsane http://scantailor.sourceforge.net/ =head1 Author Jeffrey Ratcliffe (ra28145 at users dot sf dot net) =head1 Thanks to =over =item * all the people who have sent patches, translations, bugs and feedback. =item * the GTK2 project for a most excellent graphics toolkit. =item * the Gtk2-Perl project for their superb Perl bindings for GTK2. =item * The SANE project for scanner access =item * Björn Lindqvist for the gtkimageview widget =item * Sourceforge for hosting the project. =back =for html
Get gscan2pdf at SourceForge.net. Fast, secure and Free Open Source software downloads Support This Project =cut gscan2pdf-1.2.3/bin/scanimage-perl0000755000175000017500000014471112107507061015366 0ustar jeffjeff#!/usr/bin/perl use warnings; use strict; use feature "switch"; use Sane; use Getopt::Long qw(:config no_ignore_case pass_through); use File::Basename; use IO::Handle; #$Sane::DEBUG = 1; my ( %options, @window_val_user, @window_option, @window_val, @window, $num_dev_options, $device, $format, $devname, %option_number, $batch_count, ); my $verbose = 0; my $help = 0; my $all = 0; my $test = 0; my $batch = 0; my $batch_start_at = 1; my $batch_increment = 1; my $buffer_size = ( 32 * 1024 ); # default size my $tl_x = 0; my $tl_y = 0; my $br_x = 0; my $br_y = 0; my $resolution_optind = -1; my $resolution_value = 0; my $progress = 0; my $batch_double = 0; my $batch_prompt = 0; my $dont_scan = 0; my $prog_name = basename($0); my @args = ( \%options, 'd|device-name=s' => \$devname, 'L|list-devices', 'f|formatted-device-list=s', 'b|batch:s' => \$format, 'batch-start=i' => \$batch_start_at, 'batch-count=i' => \$batch_count, 'batch-increment=i' => \$batch_increment, 'batch-double' => \$batch_double, 'batch-prompt' => \$batch_prompt, 'p|progress' => \$progress, 'n|dont-scan' => \$dont_scan, 'T|test' => \$test, 'A|all-options' => \$all, 'h|help' => \$help, 'v|verbose+' => \$verbose, 'B|buffer-size=i' => \$buffer_size, 'V|version' ); sub sighandler { my $signum = shift; my $first_time = SANE_TRUE; if ($device) { print STDERR "$prog_name: received signal $signum\n"; if ($first_time) { $first_time = SANE_FALSE; print STDERR "$prog_name: trying to stop scanner\n"; $device->cancel; } else { print STDERR "$prog_name: aborting\n"; _exit(0); } } return; } sub print_unit { my ($unit) = @_; given ($unit) { when (SANE_UNIT_PIXEL) { print "pel"; } when (SANE_UNIT_BIT) { print "bit"; } when (SANE_UNIT_MM) { print "mm"; } when (SANE_UNIT_DPI) { print "dpi"; } when (SANE_UNIT_PERCENT) { print "%"; } when (SANE_UNIT_MICROSECOND) { print "us"; } } return; } sub print_option { ( $device, my $opt_num, my $opt, my $ro ) = @_; if ( $opt->{type} == SANE_TYPE_GROUP ) { printf( " %s:\n", $opt->{title} ); return; } # if both of these are set, option is invalid if ( $opt->{cap} & SANE_CAP_SOFT_SELECT and $opt->{cap} & SANE_CAP_HARD_SELECT ) { print STDERR "$prog_name: invalid option caps, SS+HS\n"; return; } # invalid to select but not detect if ( $opt->{cap} & SANE_CAP_SOFT_SELECT and not( $opt->{cap} & SANE_CAP_SOFT_DETECT ) ) { print STDERR "$prog_name: invalid option caps, SS!SD\n"; return; } # standard allows this, though it makes little sense # if($opt->{cap} & SANE_CAP_HARD_SELECT and !($opt->{cap} & SANE_CAP_SOFT_DETECT)){ # print STDERR "$prog_name: invalid option caps, HS!SD\n"; # return; # } # if one of these three is not set, option is useless, skip it if ( not( $opt->{cap} & ( SANE_CAP_SOFT_SELECT | SANE_CAP_HARD_SELECT | SANE_CAP_SOFT_DETECT ) ) ) { return; } # print the option if ( $opt->{name} =~ /^(?:x|y|t|l)$/x ) { printf " -%s", $opt->{name}; } else { printf " --%s", $opt->{name}; } print_option_choices($opt); print_current_option_value( $opt, $opt_num ); if ( $opt->{cap} & SANE_CAP_INACTIVE ) { print " [inactive]"; } elsif ( $opt->{cap} & SANE_CAP_HARD_SELECT ) { print " [hardware]"; } elsif ( not( $opt->{cap} & SANE_CAP_SOFT_SELECT ) and $opt->{cap} & SANE_CAP_SOFT_DETECT ) { print " [read-only]"; } print "\n "; my $column = 8; my $last_break = 0; my $start = 0; for ( my $pos = 0 ; $pos < length( $opt->{desc} ) ; ++$pos ) { ++$column; if ( substr( $opt->{desc}, $pos, 1 ) eq ' ' ) { $last_break = $pos; } elsif ( substr( $opt->{desc}, $pos, 1 ) eq "\n" ) { $column = 80; $last_break = $pos; } if ( $column >= 79 and $last_break ) { print substr( $opt->{desc}, $start++, 1 ) while ( $start < $last_break ); $start = $last_break + 1; # skip blank print "\n "; $column = 8 + $pos - $start; } } print substr( $opt->{desc}, $start++, 1 ) while ( $start < length( $opt->{desc} ) ); print "\n"; return; } sub print_option_choices { ## no critic (ProhibitExcessComplexity) my ($opt) = @_; if ( $opt->{type} == SANE_TYPE_BOOL ) { print "[=("; print "auto|" if ( $opt->{cap} & SANE_CAP_AUTOMATIC ); print "yes|no)]"; } elsif ( $opt->{type} != SANE_TYPE_BUTTON ) { print ' '; if ( $opt->{cap} & SANE_CAP_AUTOMATIC ) { print "auto|"; } if ( $opt->{constraint_type} == SANE_CONSTRAINT_NONE ) { if ( $opt->{type} == SANE_TYPE_INT ) { print ""; } elsif ( $opt->{type} == SANE_TYPE_FIXED ) { print ""; } elsif ( $opt->{type} == SANE_TYPE_STRING ) { print ""; } print ",..." if ( $opt->{max_values} > 1 ); } elsif ( $opt->{constraint_type} == SANE_CONSTRAINT_RANGE ) { my $string_format = "%g..%g"; $string_format = "%d..%d" if ( $opt->{type} == SANE_TYPE_INT ); if ( $opt->{name} eq "x" ) { printf $string_format, $opt->{constraint}{min}, $opt->{constraint}{max} - $tl_x; } elsif ( $opt->{name} eq "y" ) { printf $string_format, $opt->{constraint}{min}, $opt->{constraint}{max} - $tl_y; } else { printf $string_format, $opt->{constraint}{min}, $opt->{constraint}{max}; } print_unit( $opt->{unit} ); print ",..." if ( $opt->{max_values} > 1 ); print " (in steps of $opt->{constraint}{quant})" if ( $opt->{constraint}{quant} ); } elsif ( $opt->{constraint_type} == SANE_CONSTRAINT_STRING_LIST or $opt->{constraint_type} == SANE_CONSTRAINT_WORD_LIST ) { for ( my $i = 0 ; $i < @{ $opt->{constraint} } ; ++$i ) { print '|' if ( $i > 0 ); my $string_format = $opt->{type} == SANE_TYPE_FIXED ? '%g' : '%s'; printf $string_format, $opt->{constraint}[$i]; } if ( $opt->{constraint_type} == SANE_CONSTRAINT_WORD_LIST ) { print_unit( $opt->{unit} ); print ",..." if ( $opt->{max_values} > 1 ); } } } return; } sub print_current_option_value { my ( $opt, $opt_num ) = @_; if ( $opt->{max_values} == 1 ) { if ( not( $opt->{cap} & SANE_CAP_INACTIVE ) ) { my $val = $device->get_option($opt_num); print " ["; if ( $opt->{type} == SANE_TYPE_BOOL ) { print( $val ? "yes" : "no" ); } elsif ( $opt->{type} == SANE_TYPE_INT or $opt->{type} == SANE_TYPE_FIXED ) { my $string_format = "%g"; $string_format = "%d" if ( $opt->{type} == SANE_TYPE_INT ); given ( $opt->{name} ) { when ("l") { $tl_x = $val; printf $string_format, $tl_x; } when ("t") { $tl_y = $val; printf $string_format, $tl_y; } when ("x") { $br_x = $val; printf $string_format, $br_x - $tl_x; } when ("y") { $br_y = $val; printf $string_format, $br_y - $tl_y; } default { printf $string_format, $val; } } } elsif ( $opt->{type} == SANE_TYPE_STRING ) { print $val; } print ']'; } } return; } # A scalar has the following syntax: # # V [ U ] # # V is the value of the scalar. It is either an integer or a # floating point number, depending on the option type. # # U is an optional unit. If not specified, the default unit is used. # The following table lists which units are supported depending on # what the option's default unit is: # # Option's unit: Allowed units: # # SANE_UNIT_NONE: # SANE_UNIT_PIXEL: pel # SANE_UNIT_BIT: b (bit), B (byte) # SANE_UNIT_MM: mm (millimeter), cm (centimeter), in or " (inches), # SANE_UNIT_DPI: dpi # SANE_UNIT_PERCENT: % # SANE_UNIT_MICROSECOND: us sub parse_scalar { my ( $opt, $str ) = @_; my ( $v, $unit ); if ( $str =~ /^ (\d*\.?\d*) # value (cm|mm|in|\"|b|B|dpi|%|us)? # optional unit /x ) { $v = $1; $unit = $2; $unit = '' unless defined $unit; } else { print STDERR "$prog_name: option --$opt->{name}: bad option value (rest of option: $str)\n"; exit(1); } if ( $opt->{unit} == SANE_UNIT_BIT ) { $v *= 8 if ( $unit eq 'B' ); } elsif ( $opt->{unit} == SANE_UNIT_MM ) { if ( $unit eq 'cm' ) { $v *= 10; } elsif ( $unit eq 'in' ) { $v *= 25.4; } } return $v, substr( $str, length($v) + length($unit), length($str) ); } # A vector has the following syntax: # # [ '[' I ']' ] S { [','|'-'] [ '[' I ']' S } # # The number in brackets (I), if present, determines the index of the # vector element to be set next. If I is not present, the value of # last index used plus 1 is used. The first index value used is 0 # unless I is present. # # S is a scalar value as defined by parse_scalar(). # # If two consecutive value specs are separated by a comma (,) their # values are set independently. If they are separated by a dash (-), # they define the endpoints of a line and all vector values between # the two endpoints are set according to the value of the # interpolated line. For example, [0]15-[255]15 defines a vector of # 256 elements whose value is 15. Similarly, [0]0-[255]255 defines a # vector of 256 elements whose value starts at 0 and increases to # 255. sub parse_vector { my ( $opt, $str ) = @_; my $index = -1; my $prev_value = 0; my $prev_index = 0; my $separator = ''; my ( @vector, $value ); do { if ( $str =~ /^\[(\d*\.?\d*)(\])?/x ) { $index = $1; unless ( $2 eq '\]' ) { print STDERR "$prog_name: option --$opt->{name}: closing bracket missing " . "(rest of option: $str)\n"; exit(1); } } else { ++$index; } if ( $index < 0 or $index >= length($str) ) { printf STDERR "$prog_name: option --$opt->{name}: index $index out of range [0..%d]\n", length($str); exit(1); } # read value ( $value, $str ) = parse_scalar( $opt, $str ); if ( $str ne '' and $str !~ /^[-,]/x ) { print STDERR "$prog_name: option --$opt->{name}: illegal separator (rest of option: $str)\n"; exit(1); } # store value: $vector[$index] = $value; if ( $separator eq '-' ) { # interpolate my $v = $prev_value; my $slope = ( $value - $v ) / ( $index - $prev_index ); for ( my $i = $prev_index + 1 ; $i < $index ; ++$i ) { $v += $slope; $vector[$i] = $v; } } $prev_index = $index; $prev_value = $value; $separator = substr( $str, 0, 1 ); } while ( $separator eq ',' or $separator eq '-' ); if ( $verbose > 2 ) { print STDERR "$prog_name: value for --$opt->{name} is: "; for (@vector) { print STDERR "$_ "; } print STDERR "\n"; } return @vector; } sub fetch_options { $device = shift; my $opt = $device->get_option_descriptor(0); if ( not defined($opt) ) { print STDERR "Could not get option descriptor for option 0\n"; exit(1); } $num_dev_options = $device->get_option(0); if ( $Sane::STATUS != SANE_STATUS_GOOD ) { print STDERR "Could not get value for option 0: $Sane::STATUS\n"; exit(1); } # build the full table of long options for ( my $i = 1 ; $i < $num_dev_options ; ++$i ) { $opt = $device->get_option_descriptor($i); if ( not defined($opt) ) { print STDERR "Could not get option descriptor for option $i\n"; exit(1); } next if ( not( $opt->{cap} & SANE_CAP_SOFT_SELECT ) ); $option_number{ $opt->{name} } = $i; # Look for scan resolution $resolution_optind = $i if ( ( $opt->{type} == SANE_TYPE_FIXED or $opt->{type} == SANE_TYPE_INT ) and ( $opt->{unit} == SANE_UNIT_DPI ) and ( $opt->{name} eq SANE_NAME_SCAN_RESOLUTION ) ); update_geometry( $opt, $i ); if ( $opt->{type} == SANE_TYPE_BOOL ) { push @args, "$opt->{name}:s"; } elsif ( $opt->{type} == SANE_TYPE_BUTTON ) { push @args, $opt->{name}; } else { push @args, "$opt->{name}=s"; } } # Initialize width & height options based on backend default # values for top-left x/y and bottom-right x/y: for ( my $i = 0 ; $i < 2 ; ++$i ) { if ( $window[$i] and not $window_val_user[$i] ) { $window_val[$i] = $device->get_option( $window[$i] ); if ( $window[ $i + 2 ] ) { my $pos = $device->get_option( $window[ $i + 2 ] ); $window_val[$i] -= $pos; } } } return; } # Keep track of top-left corner options (if they exist at # all) and replace the bottom-right corner options by a # width/height option (if they exist at all). sub update_geometry { my ( $opt, $i ) = @_; if ( ( $opt->{type} == SANE_TYPE_FIXED or $opt->{type} == SANE_TYPE_INT ) and ( $opt->{unit} == SANE_UNIT_MM or $opt->{unit} == SANE_UNIT_PIXEL ) ) { given ( $opt->{name} ) { when (SANE_NAME_SCAN_BR_X) { $window[0] = $i; $opt->{name} = 'x'; $window_option[0] = $opt; $window_option[0]->{title} = 'Scan width'; $window_option[0]->{desc} = 'Width of scan-area.'; $window_option[0]->{name} = 'x'; } when (SANE_NAME_SCAN_BR_Y) { $window[1] = $i; $opt->{name} = 'y'; $window_option[1] = $opt; $window_option[1]->{title} = 'Scan height'; $window_option[1]->{desc} = 'Height of scan-area.'; $window_option[1]->{name} = 'y'; } when (SANE_NAME_SCAN_TL_X) { $window[2] = $i; $window_option[2] = $opt; $window_option[2]->{name} = 'l'; } when (SANE_NAME_SCAN_TL_Y) { $window[3] = $i; $window_option[3] = $opt; $window_option[3]->{name} = 't'; } } } return; } sub set_option { ( $device, my $optnum, my $value ) = @_; my $opt = $device->get_option_descriptor($optnum); if ( $opt and ( $opt->{cap} & SANE_CAP_INACTIVE ) ) { print STDERR "$prog_name: ignored request to set inactive option $opt->{name}\n" if ( $verbose > 0 ); return; } my $info = $device->set_option( $optnum, $value ); if ( $Sane::STATUS != SANE_STATUS_GOOD ) { print STDERR "$prog_name: setting of option --$opt->{name} failed ($Sane::STATUS)\n"; exit(1); } if ( ( $info & SANE_INFO_INEXACT ) and $opt->{max_values} == 1 ) { my $orig = $value; $value = $device->get_option($optnum); if ( $opt->{type} == SANE_TYPE_INT ) { printf STDERR "$prog_name: rounded value of $opt->{name} from %d to %d\n", $orig, $value; } elsif ( $opt->{type} == SANE_TYPE_FIXED ) { printf STDERR "$prog_name: rounded value of $opt->{name} from %g to %g\n", $orig, $value; } } fetch_options($device) if ( $info & SANE_INFO_RELOAD_OPTIONS ); return; } sub process_backend_option { ( $device, my $optnum, my $optarg ) = @_; my $opt = $device->get_option_descriptor($optnum); if ( $opt and ( $opt->{cap} & SANE_CAP_INACTIVE ) ) { print STDERR "$prog_name: attempted to set inactive option $opt->{name}\n"; exit(1); } if ( ( $opt->{cap} & SANE_CAP_AUTOMATIC ) and $optarg and $optarg =~ /^auto$/xi ) { $device->set_auto($optnum); if ( $Sane::STATUS != SANE_STATUS_GOOD ) { printf STDERR "$prog_name: failed to set option --$opt->{name} to automatic ($Sane::STATUS)\n"; exit(1); } return; } my $value; given ( $opt->{type} ) { when (SANE_TYPE_BOOL) { $value = 1; # no argument means option is set if ($optarg) { if ( $optarg =~ /^yes$/xi ) { $value = 1; } elsif ( $optarg =~ /^no$/xi ) { $value = 0; } else { die "$prog_name: option --$opt->{name}: bad option value `$optarg'\n"; } } } when ( $opt->{type} == SANE_TYPE_INT or $opt->{type} == SANE_TYPE_FIXED ) { my @vector = parse_vector( $opt, $optarg ); $value = \@vector; } when (SANE_TYPE_STRING) { $value = $optarg; } when (SANE_TYPE_BUTTON) { $value = 0; # value doesn't matter } default { warn "$prog_name: duh, got unknown option type $opt->{type}\n"; return; } } set_option( $device, $optnum, $value ); return; } sub write_pnm_header { my ( $frame_format, $width, $height, $depth ) = @_; # The netpbm-package does not define raw image data with maxval > 255. # But writing maxval 65535 for 16bit data gives at least a chance # to read the image. if ($frame_format == SANE_FRAME_RED or $frame_format == SANE_FRAME_GREEN or $frame_format == SANE_FRAME_BLUE or $frame_format == SANE_FRAME_RGB ) { printf "P6\n# SANE data follows\n%d %d\n%d\n", $width, $height, ( $depth <= 8 ) ? 255 : 65535; } else { if ( $depth == 1 ) { printf "P4\n# SANE data follows\n%d %d\n", $width, $height; } else { printf "P5\n# SANE data follows\n%d %d\n%d\n", $width, $height, ( $depth <= 8 ) ? 255 : 65535; } } return; } sub scan_it { my $first_frame = 1; my $offset = 0; my $must_buffer = 0; my $min = 0xff; my $max = 0; my %image; my @format_name = ( "gray", "RGB", "red", "green", "blue" ); my $total_bytes = 0; # my $hang_over = -1; my $parm; { do { # extra braces to get last to work. log_frame_info( $parm, $total_bytes, $first_frame, @format_name ); ( $must_buffer, $offset ) = initialise_scan( $parm, $first_frame ); my $hundred_percent = $parm->{bytes_per_line} * $parm->{lines} * ( ( $parm->{format} == SANE_FRAME_RGB or $parm->{format} == SANE_FRAME_GRAY ) ? 1 : 3 ); while (1) { my ( $buffer, $len ) = $device->read($buffer_size); $total_bytes += $len; my $progr = ( ( $total_bytes * 100. ) / $hundred_percent ); $progr = 100. if ( $progr > 100. ); printf STDERR "Progress: %3.1f%%\r", $progr if ($progress); if ( $Sane::STATUS != SANE_STATUS_GOOD ) { printf STDERR "$prog_name: min/max graylevel value = %d/%d\n", $min, $max if ( $verbose and $parm->{depth} == 8 ); if ( $Sane::STATUS != SANE_STATUS_EOF ) { print STDERR "$prog_name: sane_read: $Sane::STATUS\n"; return; } last; } $offset = buffer_data( $parm, $buffer, $len, \%image, $offset, $must_buffer ); if ( $verbose and $parm->{depth} == 8 ) { for ( split( //, $buffer ) ) { my $c = ord; if ( $c >= $max ) { $max = $c; } elsif ( $c < $min ) { $min = $c; } } } } $first_frame = 0; } while ( not $parm->{last_frame} ); } if ($must_buffer) { write_buffer( \%image, $parm ); } # flush the output buffer STDOUT->flush; log_bytes_read( $parm, $total_bytes ); return; } sub log_frame_info { my ( $parm, $total_bytes, $first_frame, @format_name ) = @_; if ( not $first_frame ) { $device->start; if ( $Sane::STATUS != SANE_STATUS_GOOD ) { printf STDERR "$prog_name: sane_start: $Sane::STATUS\n"; log_bytes_read( $parm, $total_bytes ); } } $parm = $device->get_parameters; if ( $Sane::STATUS != SANE_STATUS_GOOD ) { printf STDERR "$prog_name: sane_get_parameters: $Sane::STATUS\n"; log_bytes_read( $parm, $total_bytes ); } if ($verbose) { if ($first_frame) { if ( $parm->{lines} >= 0 ) { printf STDERR "$prog_name: scanning image of size %dx%d pixels at " . "%d bits/pixel\n", $parm->{pixels_per_line}, $parm->{lines}, 8 * $parm->{bytes_per_line} / $parm->{pixels_per_line}; } else { printf STDERR "$prog_name: scanning image %d pixels wide and " . "variable height at %d bits/pixel\n", $parm->{pixels_per_line}, 8 * $parm->{bytes_per_line} / $parm->{pixels_per_line}; } } printf STDERR "$prog_name: acquiring %s frame\n", $parm->{format} <= SANE_FRAME_BLUE ? $format_name[ $parm->{format} ] : "Unknown"; } return; } sub log_bytes_read { my ( $parm, $total_bytes ) = @_; my $expected_bytes = $parm->{bytes_per_line} * $parm->{lines} * ( ( $parm->{format} == SANE_FRAME_RGB or $parm->{format} == SANE_FRAME_GRAY ) ? 1 : 3 ); $expected_bytes = 0 if ( $parm->{lines} < 0 ); if ( $total_bytes > $expected_bytes and $expected_bytes != 0 ) { printf STDERR "%s: WARNING: read more data than announced by backend " . "(%u/%u)\n", $prog_name, $total_bytes, $expected_bytes; } elsif ($verbose) { printf STDERR "%s: read %u bytes in total\n", $prog_name, $total_bytes; } return; } sub initialise_scan { my ( $parm, $first_frame ) = @_; my ( $must_buffer, $offset ); if ($first_frame) { if ($parm->{format} == SANE_FRAME_RED or $parm->{format} == SANE_FRAME_GREEN or $parm->{format} == SANE_FRAME_BLUE ) { die # FIXME: compare message with SANE source, and give them patch if necessary "Error: frame format $parm->{format}, but image depth=$parm->{depth} (expected 8)\n" unless ( $parm->{depth} == 8 ); $must_buffer = 1; $offset = $parm->{format} - SANE_FRAME_RED; } elsif ( $parm->{format} == SANE_FRAME_RGB ) { die # FIXME: compare message with SANE source, and give them patch if necessary "Error: frame format $parm->{format}, but image depth=$parm->{depth} (expected 8 or 16)\n" unless ( ( $parm->{depth} == 8 ) or ( $parm->{depth} == 16 ) ); } if ($parm->{format} == SANE_FRAME_RGB or $parm->{format} == SANE_FRAME_GRAY ) { die # FIXME: compare message with SANE source, and give them patch if necessary "Error: frame format $parm->{format}, but image depth=$parm->{depth} (expected 1, 8 or 16)\n" unless ( ( $parm->{depth} == 1 ) or ( $parm->{depth} == 8 ) or ( $parm->{depth} == 16 ) ); if ( $parm->{lines} < 0 ) { $must_buffer = 1; $offset = 0; } else { # if ($output_format == OUTPUT_TIFF) { # sanei_write_tiff_header ($parm->{format}, # $parm->{pixels_per_line}, $parm->{lines}, # $parm->{depth}, $resolution_value, # icc_profile); # else { write_pnm_header( $parm->{format}, $parm->{pixels_per_line}, $parm->{lines}, $parm->{depth} ); # } } } } else { die # FIXME: compare message with SANE source, and give them patch if necessary "Error: frame format $parm->{format}, but expected SANE_FRAME_RED, SANE_FRAME_GREEN, or SANE_FRAME_BLUE\n" if ( $parm->{format} < SANE_FRAME_RED or $parm->{format} > SANE_FRAME_BLUE ); $offset = $parm->{format} - SANE_FRAME_RED; } return $must_buffer, $offset; } sub buffer_data { ## no critic (ProhibitManyArgs) my ( $parm, $buffer, $len, $image, $offset, $must_buffer ) = @_; if ($must_buffer) { # We're either scanning a multi-frame image or the # scanner doesn't know what the eventual image height # will be (common for hand-held scanners). In either # case, we need to buffer all data before we can write # the image if ($parm->{format} == SANE_FRAME_RED or $parm->{format} == SANE_FRAME_GREEN or $parm->{format} == SANE_FRAME_BLUE ) { for ( my $i = 0 ; $i < $len ; ++$i ) { $image->{data}[ $offset + 3 * $i ] = substr( $buffer, $i, 1 ); } $offset += 3 * $len; } elsif ( $parm->{format} == SANE_FRAME_RGB or $parm->{format} == SANE_FRAME_GRAY ) { for ( my $i = 0 ; $i < $len ; ++$i ) { $image->{data}[ $offset + $i ] = substr( $buffer, $i, 1 ); } $offset += $len; } } else { # ! must_buffer # if (($output_format == OUTPUT_TIFF) or ($parm->{depth} != 16)) { # print $buffer; # } # else { ##if !defined(WORDS_BIGENDIAN) # my $start = 0; # # # check if we have saved one byte from the last sane_read # if ($hang_over > -1) { # if ($len > 0) { # print $buffer; # $buffer = $hang_over.$buffer; # $hang_over = -1; # $start = 1; # } # } # # now do the byte-swapping # $buffer = reverse $buffer; # # # check if we have an odd number of bytes # if ((($len - $start) % 2) != 0) { # $hang_over = substr($buffer, $len - 1, 1); # $len--; # } ##endif print $buffer; # } } return $offset; } sub write_buffer { my ( $image, $parm ) = @_; if ( $parm->{lines} > 0 ) { $image->{height} = $parm->{lines}; } else { $image->{height} = @{ $image->{data} } / $parm->{pixels_per_line}; $image->{height} /= 3 if ( $parm->{format} == SANE_FRAME_RED or $parm->{format} == SANE_FRAME_GREEN or $parm->{format} == SANE_FRAME_BLUE ); } # if ($output_format == OUTPUT_TIFF) { # sanei_write_tiff_header ($parm->{format}, $parm->{pixels_per_line}, # $parm->{lines}, $parm->{depth}, $resolution_value, # icc_profile); # } # else { write_pnm_header( $parm->{format}, $parm->{pixels_per_line}, $image->{height}, $parm->{depth} ); # } # if (($output_format == OUTPUT_TIFF) or ($image->{Bpp} == 1) # or ($image->{Bpp} == 3)) { # print $image->{data}; # } # else { # $image->{Bpp} == 2 or $image->{Bpp} == 6 assumed ##if !defined(WORDS_BIGENDIAN) # for (my $i = 0; $i < $image->{Bpp} * $image->{height} * $image->{width}; $i += 2) { # my $LSB = $image->{data}[$i]; # $image->{data}[$i] = $image->{data}[$i + 1]; # $image->{data}[$i + 1] = $LSB; # } ##endif for ( @{ $image->{data} } ) { print; } # } return; } sub scan_pages { ## no critic (ProhibitExcessComplexity) my $n = $batch_start_at; if ( $batch and ( not defined($format) or $format eq '' ) ) { # if ($output_format == OUTPUT_TIFF) { # $format = "out%d.tif"; # } # else { $format = "out%d.pnm"; # } } printf STDERR "Scanning %d pages, incrementing by %d, numbering from %d\n", $batch_count, $batch_increment, $batch_start_at if ($batch); { # extra braces to get last to work do { my ( $path, $part_path, $fh ); if ($batch) { # format is NULL unless batch mode $path = sprintf $format, $n; $part_path = "$path.part"; } if ($batch) { if ($batch_prompt) { printf STDERR "Place document no. %d on the scanner.\n", $n; printf STDERR "Press to continue.\n"; printf STDERR "Press Ctrl + D to terminate.\n"; if ( not defined(<>) ) { printf STDERR "Batch terminated, %d pages scanned\n", ( $n - $batch_increment ); last; # get out of this loop } } printf STDERR "Scanning page %d\n", $n; } $device->start; if ( $Sane::STATUS != SANE_STATUS_GOOD ) { print STDERR "$prog_name: sane_start: $Sane::STATUS\n"; last; } # write to .part file while scanning is in progress if ( $batch and not( open( $fh, '>', $part_path ) ## no critic (RequireBriefOpen) and STDOUT->fdopen( $fh, '>' ) ) ) { print STDERR "cannot open $part_path\n"; $device->cancel; exit SANE_STATUS_ACCESS_DENIED; } scan_it(); if ($batch) { printf STDERR "Scanned page %d.", $n; printf STDERR " (scanner status = %d)\n", $Sane::STATUS; } if ( $Sane::STATUS == SANE_STATUS_EOF ) { if ($batch) { # close output file by redirecting, do not close stdout here! if ( open( $fh, '>', '/dev/null' ) ## no critic (RequireBriefOpen) and STDOUT->fdopen( $fh, '>' ) ) { # let the fully scanned file show up if ( not rename( $part_path, $path ) ) { print STDERR "cannot rename $part_path to $path\n"; $device->cancel; return SANE_STATUS_ACCESS_DENIED; } } else { printf STDERR "cannot open /dev/null\n"; $device->cancel; return SANE_STATUS_ACCESS_DENIED; } } } elsif ( $Sane::STATUS != SANE_STATUS_GOOD ) { if ($batch) { close($fh); unlink($part_path); } last; } $n += $batch_increment; } while ( ( $batch and ( $batch_count == -1 or --$batch_count ) ) and ( $Sane::STATUS == SANE_STATUS_GOOD or $Sane::STATUS == SANE_STATUS_EOF ) ); } $device->cancel; return; } sub pass_fail { my ( $max, $len, $buffer ) = @_; if ( $Sane::STATUS != SANE_STATUS_GOOD ) { ## no critic (ProhibitCascadingIfElse) print STDERR "FAIL Error: $Sane::STATUS\n"; } elsif ( $len < length($buffer) ) { printf STDERR "FAIL Cheat: %d bytes\n", length($buffer); } elsif ( $len > $max ) { printf STDERR "FAIL Overflow: %d bytes\n", $len; } elsif ( $len == 0 ) { print STDERR "FAIL No data\n"; } else { print STDERR "PASS\n"; } return; } sub test_it { my %image; my @format_name = ( "gray", "RGB", "red", "green", "blue" ); $device->start; if ( $Sane::STATUS != SANE_STATUS_GOOD ) { print STDERR "$prog_name: sane_start: $Sane::STATUS\n"; goto cleanup; } my $parm = $device->get_parameters; if ( $Sane::STATUS != SANE_STATUS_GOOD ) { print STDERR "$prog_name: sane_get_parameters: $Sane::STATUS\n"; goto cleanup; } if ( $parm->{lines} >= 0 ) { printf STDERR "$prog_name: scanning image of size %dx%d pixels at " . "%d bits/pixel\n", $parm->{pixels_per_line}, $parm->{lines}, 8 * $parm->{bytes_per_line} / $parm->{pixels_per_line}; } else { printf STDERR "$prog_name: scanning image %d pixels wide and " . "variable height at %d bits/pixel\n", $parm->{pixels_per_line}, 8 * $parm->{bytes_per_line} / $parm->{pixels_per_line}; } printf STDERR "$prog_name: acquiring %s frame, %d bits/sample\n", $parm->{format} <= SANE_FRAME_BLUE ? $format_name[ $parm->{format} ] : "Unknown", $parm->{depth}; printf STDERR "$prog_name: reading one scanline, %d bytes...\t", $parm->{bytes_per_line}; ( $image{data}, my $len ) = $device->read( $parm->{bytes_per_line} ); pass_fail( $parm->{bytes_per_line}, $len, $image{data} ); goto cleanup if ( $Sane::STATUS != SANE_STATUS_GOOD ); print STDERR "$prog_name: reading one byte...\t\t"; ( $image{data}, $len ) = $device->read(1); pass_fail( 1, $len, $image{data} ); goto cleanup if ( $Sane::STATUS != SANE_STATUS_GOOD ); my $i; for ( $i = 2 ; $i < $parm->{bytes_per_line} * 2 ; $i *= 2 ) { printf STDERR "$prog_name: stepped read, %d bytes... \t", $i; ( $image{data}, $len ) = $device->read($i); pass_fail( $i, $len, $image{data} ); goto cleanup if ( $Sane::STATUS != SANE_STATUS_GOOD ); } for ( $i /= 2 ; $i > 2 ; $i /= 2 ) { printf STDERR "$prog_name: stepped read, %d bytes... \t", $i - 1; ( $image{data}, $len ) = $device->read( $i - 1 ); pass_fail( $i - 1, $len, $image{data} ); goto cleanup if ( $Sane::STATUS != SANE_STATUS_GOOD ); } cleanup: $device->cancel; return; } # @brief print device options to stdout # # @param device struct of the opened device to describe # @param num_dev_options number of device options # @param ro SANE_TRUE to print read-only options sub print_options { ( $device, my $num_dev_options, my $ro ) = @_; for ( my $i = 1 ; $i < $num_dev_options ; ++$i ) { my $opt; # scan area uses modified option struct for ( my $j = 0 ; $j < 4 ; ++$j ) { if ( $i == $window[$j] ) { $opt = $window_option[$j]; } } $opt = $device->get_option_descriptor($i) if ( not defined($opt) ); print_option( $device, $i, $opt ) if ( $ro or $opt->{cap} & SANE_CAP_SOFT_SELECT or $opt->{type} == SANE_TYPE_GROUP ); } print "\n" if ($num_dev_options); return; } sub process_arguments { # re-enable error printing and arg permutation Getopt::Long::Configure('no_pass_through'); # There seems to be a bug in Getopt::Long 2.37 where l is treated as L whilst # l is not in @args. Therefore the workaround is to rename l to m for the first # scan and back to l for the second. for (@ARGV) { $_ = '-l' if ( $_ eq '-m' ); $_ = '-t' if ( $_ eq '-u' ); } my @ARGV_old = @ARGV; exit 1 if ( not GetOptions(@args) ); # As it isn't possible to get the argument order from Getopt::Long 2.37, do # this myself for (@ARGV_old) { my $ch; if (/--(.*)/x) { $ch = $1; my $i = index( $ch, '=' ); $ch = substr( $ch, 0, $i ) if ( $i > -1 ); } elsif (/-(.)/x) { $ch = $1; } else { next; } if ( defined $options{$ch} ) { given ($ch) { when ('x') { $window_val_user[0] = 1; ( $window_val[0] ) = parse_vector( $window_option[0], $options{x} ); } when ('y') { $window_val_user[1] = 1; ( $window_val[1] ) = parse_vector( $window_option[1], $options{y} ); } when ('l') { # tl-x process_backend_option( $device, $window[2], $options{l} ); } when ('t') { # tl-y process_backend_option( $device, $window[3], $options{t} ); } default { process_backend_option( $device, $option_number{$ch}, $options{$ch} ); } } } } # convert x/y to br_x/br_y for ( my $index = 0 ; $index < 2 ; ++$index ) { if ( $window[$index] and defined( $window_val[$index] ) ) { my $val = $window_val[$index]; if ( $window[ $index + 2 ] ) { my $pos = $device->get_option( $window[ $index + 2 ] ); $val += $pos; } set_option( $device, $window[$index], $val ); } } return; } sub list_device_names { print "Type ``$prog_name --help -d DEVICE'' to get list of all options for DEVICE.\n\nList of available devices:"; my @device_list = Sane->get_devices; if ( $Sane::STATUS == SANE_STATUS_GOOD ) { my $column = 80; foreach (@device_list) { if ( $column + length( $_->{name} ) + 1 >= 80 ) { print "\n "; $column = 4; } if ( $column > 4 ) { print ' '; $column += 1; } print $_->{name}; $column += length( $_->{name} ); } } print "\n"; return; } sub list_devices_verbose { my @device_list = Sane->get_devices; if ( $Sane::STATUS != SANE_STATUS_GOOD ) { print STDERR "$prog_name: sane_get_devices() failed: $Sane::STATUS\n"; exit(1); } if ( defined( $options{L} ) ) { foreach (@device_list) { printf "device `%s' is a %s %s %s\n", $_->{name}, $_->{vendor}, $_->{model}, $_->{type}; } printf "\nNo scanners were identified. If you were expecting " . "something different,\ncheck that the scanner is plugged " . "in, turned on and detected by the\nsane-find-scanner tool " . "(if appropriate). Please read the documentation\nwhich came " . "with this software (README, FAQ, manpages).\n" if ( $#device_list == -1 ); } else { for ( my $i = 0 ; $i < @device_list ; $i++ ) { my $string_format = $options{f}; $string_format =~ s/%d/$device_list[$i]->{name}/g; $string_format =~ s/%v/$device_list[$i]->{vendor}/g; $string_format =~ s/%m/$device_list[$i]->{model}/g; $string_format =~ s/%t/$device_list[$i]->{type}/g; $string_format =~ s/%i/$i/g; print $string_format; } } printf "default device is `%s'\n", $ENV{'SANE_DEFAULT_DEVICE'} if ( defined( $ENV{'SANE_DEFAULT_DEVICE'} ) ); return; } sub open_device { unless ($devname) { # If no device name was specified explicitly, we look at the # environment variable SANE_DEFAULT_DEVICE. If this variable # is not set, we open the first device we find (if any): if ( defined( $ENV{'SANE_DEFAULT_DEVICE'} ) ) { $devname = $ENV{'SANE_DEFAULT_DEVICE'}; } else { my @device_list = Sane->get_devices; if ( $Sane::STATUS != SANE_STATUS_GOOD ) { print STDERR "$prog_name: sane_get_devices() failed: $Sane::STATUS\n"; exit(1); } if ( $#device_list == -1 ) { print STDERR "$prog_name: no SANE devices found\n"; exit(1); } $devname = $device_list[0]{name}; } } $device = Sane::Device->open($devname); if ( $Sane::STATUS != SANE_STATUS_GOOD ) { print STDERR "$prog_name: open of device $devname failed: $Sane::STATUS\n"; print STDERR "\nYou seem to have specified a UNIX device name, " . "or filename instead of selecting\nthe SANE scanner or " . "image acquisition device you want to use. As an example,\n" . "you might want \"epson:/dev/sg0\" or " . "\"hp:/dev/usbscanner0\". If any supported\ndevices are " . "installed in your system, you should be able to see a " . "list with\n\"$prog_name --list-devices\".\n" if ( $devname =~ /^\// ); if ($help) { undef $device; } else { exit(1); } } return; } # There seems to be a bug in Getopt::Long 2.37 where l is treated as L whilst # l is not in @args. Therefore the workaround is to rename l to m for the first # scan and back to l for the second. for (@ARGV) { $_ = '-m' if ( $_ eq '-l' ); $_ = '-u' if ( $_ eq '-t' ); } # make a first pass through the options with error printing and argument # permutation disabled: GetOptions(@args); if ( defined( $options{L} ) or defined( $options{f} ) ) { list_devices_verbose(); exit(0); } if ( defined( $options{V} ) ) { printf "%s %s; backend version %d.%d.%d\n", $prog_name, $Sane::VERSION, Sane->get_version; exit(0); } if ($help) { printf <<'EOS', $prog_name; Usage: %s [OPTION]... Start image acquisition on a scanner device and write image data to standard output. Parameters are separated by a blank from single-character options (e.g. -d epson) and by a "=" from multi-character options (e.g. --device-name=epson). -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %%d (device name), %%v (vendor), %%m (model), %%t (type), %%i (index number), and %%n (newline) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%%d.pnm' or `out%%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase page number in filename by # --batch-double increment page number by two, same as --batch-increment=2 --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -A, --all-options list all available backend options -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size=# change input buffer size (in kB, default 32) -V, --version print version information EOS } open_device(); if ( defined($device) ) { fetch_options($device); process_arguments(); # output device-specific help if ($help) { printf "\nOptions specific to device `%s':\n", $devname; print_options( $device, $num_dev_options, SANE_FALSE ); } # list all device-specific options if ($all) { printf( "\nAll options specific to device `%s':\n", $devname ); print_options( $device, $num_dev_options, SANE_TRUE ); exit 0; } } # output device list if ($help) { list_device_names(); exit(0); } exit(0) if ($dont_scan); local $SIG{HUP} = \&sighandler; local $SIG{INT} = \&sighandler; local $SIG{PIPE} = \&sighandler; local $SIG{TERM} = \&sighandler; $batch_increment = 2 if ($batch_double); $batch = 1 if ( defined $format ); if ($batch_count) { $batch = 1; } elsif ($batch) { $batch_count = -1; } else { $batch_count = 1; } if ( $test == 0 ) { scan_pages(); } else { test_it(); } exit $Sane::STATUS; __END__ =head1 NAME scanimage - scan an image =head1 SYNOPSIS B B<[ -d | --device-name> I B<[ --format> I B<[ -i | --icc-profile> I B<[ -L | --list-devices ]> B<[ -f | --formatted-device-list > I B<[ --batch > I<[= format ]]> B<[ --batch-start> I B<[ --batch-count> I B<[ --batch-increment> I B<[ --batch-double ]> B<[ --accept-md5-only ]> B<[ -p | --progress ]> B<[ -n | --dont-scan ]> B<[ -T | --test ]> B<[ -h | --help ]> B<[ -v | --verbose ]> B<[ -B | --buffersize ]> B<[ -V | --version ]> I<[ device-specific-options ]> =head1 DESCRIPTION B is a command-line interface to control image acquisition devices such as flatbed scanners or cameras. The device is controlled via command-line options. After command-line processing, B normally proceeds to acquire an image. The image data is written to standard output in one of the PNM (portable aNyMaP) formats (PBM for black-and-white images, PGM for grayscale images, and PPM for color images) or in TIFF (black-and-white, grayscale or color). B accesses image acquisition devices through the B (Scanner Access Now Easy) interface and can thus support any device for which there exists a B backend (try B I to get a list of available backends). =head1 EXAMPLES To get a list of devices: scanimage -L To scan with default settings to the file image.pnm: scanimage >image.pnm To scan 100x100 mm to the file image.tiff (-x and -y may not be available with all devices): scanimage -x 100 -y 100 --format=tiff >image.tiff To print all available options: scanimage -h =head1 OPTIONS Parameters are separated by a blank from single-character options (e.g. -d epson) and by a "=" from multi-character options (e.g. --device-name=epson). The B<-d> or B<--device-name> options must be followed by a B device-name like I<` epson:/dev/sg0 '> or I<` hp:/dev/usbscanner0 '.> A (partial) list of available devices can be obtained with the B<--list-devices> option (see below). If no device-name is specified explicitly, B reads a device-name from the environment variable B If this variable is not set, B will attempt to open the first available device. The B<--format > I option selects how image data is written to standard output. I can be B or B If B<--format> is not used, PNM is written. The B<-i> or B<--icc-profile> option is used to include an ICC profile into a TIFF file. The B<-L> or B<--list-devices> option requests a (partial) list of devices that are available. The list is not complete since some devices may be available, but are not listed in any of the configuration files (which are typically stored in directory I This is particularly the case when accessing scanners through the network. If a device is not listed in a configuration file, the only way to access it is by its full device name. You may need to consult your system administrator to find out the names of such devices. The B<-f> or B<--formatted-device-list> option works similar to B<--list-devices ,> but requires a format string. B replaces the placeholders B<%d %v %m %t %i> with the device name, vendor name, model name, scanner type and an index number respectively. The command =over =item B I<\*(lq scanner number %i device %d is a %t, model %m, produced by %v \*(rq> =back will produce something like: =over =item scanner number 0 device sharp:/dev/sg1 is a flatbed scanner, model JX250 SCSI, produced by SHARP =back The B<--batch*> options provide the features for scanning documents using document feeders. B<--batch> I<[ format ]> is used to specify the format of the filename that each page will be written to. Each page is written out to a single file. If I is not specified, the default of out%d.pnm (or out%d.tif for --format tiff) will be used. I is given as a printf style string with one integer parameter. B<--batch-start> I selects the page number to start naming files with. If this option is not given, the counter will start at 0. B<--batch-count> I specifies the number of pages to attempt to scan. If not given, scanimage will continue scanning until the scanner returns a state other than OK. Not all scanners with document feeders signal when the ADF is empty, use this command to work around them. With B<--batch-increment> I you can change the amount that the number in the filename is incremented by. Generally this is used when you are scanning double-sided documents on a single-sided document feeder. A specific command is provided to aid this: B<--batch-double> will automatically set the increment to 2. B<--batch-prompt> will ask for pressing RETURN before scanning a page. This can be used for scanning multiple pages without an automatic document feeder. The B<--accept-md5-only> option only accepts user authorization requests that support MD5 security. The B network daemon B<( saned )> is capable of doing such requests. See B The B<-p> or B<--progress> option requests that B prints a progress counter. It shows how much image data of the current image has already been received by B (in percent). The B<-n> or B<--dont-scan> option requests that B only sets the options provided by the user but doesn't actually perform a scan. This option can be used to e.g. turn off the scanner's lamp (if supported by the backend). The B<-T> or B<--test> option requests that B performs a few simple sanity tests to make sure the backend works as defined by the B API (in particular the B function is exercised by this test). The B<-h> or B<--help> options request help information. The information is printed on standard output and in this case, no attempt will be made to acquire an image. The B<-v> or B<--verbose> options increase the verbosity of the operation of B The option may be specified repeatedly, each time increasing the verbosity level. The B<-B> or B<--buffersize> option changes the input buffersize that B uses from default 32*1024 to 1024*1024 kbytes. The B<-V> or B<--version> option requests that B prints the program and package name, the version number of the B distribution that it came with and the version of the backend that it loads. Usually that's the dll backend. If more information about the version numbers of the backends are necessary, the B variable for the dll backend can be used. Example: SANE_DEBUG_DLL=3 scanimage -L. As you might imagine, much of the power of B comes from the fact that it can control any B backend. Thus, the exact set of command-line options depends on the capabilities of the selected device. To see the options for a device named I invoke B via a command-line of the form: =over =item B I =back The documentation for the device-specific options printed by B<--help> is best explained with a few examples: -l 0..218mm [0] Top-left x position of scan area. =over =item The description above shows that option B<-l> expects an option value in the range from 0 to 218 mm. The value in square brackets indicates that the current option value is 0 mm. Most backends provide similar geometry options for top-left y position (-t), width (-x) and height of scan-area (-y). =back --brightness -100..100% [0] Controls the brightness of the acquired image. =over =item The description above shows that option B<--brightness> expects an option value in the range from -100 to 100 percent. The value in square brackets indicates that the current option value is 0 percent. =back --default-enhancements Set default values for enhancement controls. =over =item The description above shows that option B<--default-enhancements> has no option value. It should be thought of as having an immediate effect at the point of the command-line at which it appears. For example, since this option resets the B<--brightness> option, the option-pair B<--brightness 50 --default-enhancements> would effectively be a no-op. =back --mode Lineart|Gray|Color [Gray] Selects the scan mode (e.g., lineart or color). =over =item The description above shows that option B<--mode> accepts an argument that must be one of the strings B B or B The value in the square bracket indicates that the option is currently set to B For convenience, it is legal to abbreviate the string values as long as they remain unique. Also, the case of the spelling doesn't matter. For example, option setting B<--mode col> is identical to B<"--mode Color" .> =back --custom-gamma[=(yes|no)] [inactive] Determines whether a builtin or a custom gamma-table should be used. =over =item The description above shows that option B<--custom-gamma> expects either no option value, a "yes" string, or a "no" string. Specifying the option with no value is equivalent to specifying "yes". The value in square-brackets indicates that the option is not currently active. That is, attempting to set the option would result in an error message. The set of available options typically depends on the settings of other options. For example, the B<--custom-gamma> table might be active only when a grayscale or color scan-mode has been requested. =back Note that the B<--help> option is processed only after all other options have been processed. This makes it possible to see the option settings for a particular mode by specifying the appropriate mode-options along with the B<--help> option. For example, the command-line: B< scanimage --help --mode> I would print the option settings that are in effect when the color-mode is selected. --gamma-table 0..255,... Gamma-correction table. In color mode this option equally affects the red, green, and blue channels simultaneously (i.e., it is an intensity gamma table). =over =item The description above shows that option B<--gamma-table> expects zero or more values in the range 0 to 255. For example, a legal value for this option would be "3,4,5,6,7,8,9,10,11,12". Since it's cumbersome to specify long vectors in this form, the same can be expressed by the abbreviated form "[0]3-[9]12". What this means is that the first vector element is set to 3, the 9-th element is set to 12 and the values in between are interpolated linearly. Of course, it is possible to specify multiple such linear segments. For example, "[0]3-[2]3-[6]7,[7]10-[9]6" is equivalent to "3,3,3,4,5,6,7,10,8,6". The program B can be used to generate such gamma tables (see B for details). =back --filename [/tmp/input.ppm] The filename of the image to be loaded. =over =item The description above is an example of an option that takes an arbitrary string value (which happens to be a filename). Again, the value in brackets show that the option is current set to the filename B =back =head1 ENVIRONMENT =over =item B The default device-name. =back =head1 FILES =over =item I This directory holds various configuration files. For details, please refer to the manual pages listed below. =item I<~/.sane/pass> This file contains lines of the form =item user:password:resource scanimage uses this information to answer user authorization requests automatically. The file must have 0600 permissions or stricter. You should use this file in conjunction with the --accept-md5-only option to avoid server-side attacks. The resource may contain any character but is limited to 127 characters. =back =head1 SEE ALSO B B B B B B B B B =head1 AUTHOR Transliterated from the C original by Jeffrey Ratcliffe. =head1 BUGS All the bugs of scanimage and much, much more. gscan2pdf-1.2.3/bin/scanadf-perl0000755000175000017500000011350612105002475015031 0ustar jeffjeff#!/usr/bin/perl use warnings; use strict; use feature "switch"; use Sane; use Data::Dumper; use Getopt::Long qw(:config no_ignore_case pass_through); use File::Basename; use IO::Handle; #$Sane::DEBUG = 1; my ( %options, @window_val_user, @window_option, @window_val, @window, $device, $devname, %option_number ); my $num_dev_options = 0; my $verbose = 0; my $help = 0; my $test = 0; my $batch_start_at = 1; my $batch_count = -1; my $batch_increment = 1; my $buffer_size = ( 32 * 1024 ); # default size my $tl_x = 0; my $tl_y = 0; my $br_x = 0; my $br_y = 0; my $w_x = 0; my $h_y = 0; my $resolution_optind = -1; my $resolution_value = 0; my $prog_name = basename($0); my $SANE_FRAME_TEXT = 10; my $SANE_FRAME_JPEG = 11; my $SANE_FRAME_G31D = 12; my $SANE_FRAME_G32D = 13; my $SANE_FRAME_G42D = 14; my $no_overwrite = 0; my $outputFile = "image-%04d"; # file name(format) to write output to my $raw = SANE_FALSE; my $scanScript; # script to run at end of scan my $startNum = 1, my $endNum = -1; # start/end numbers of pages to scan my @args = ( \%options, 'd|device-name=s' => \$devname, 'L|list-devices', 'h|help' => \$help, 'v|verbose+' => \$verbose, 'N|no-overwrite' => \$no_overwrite, 'o|output-file:s' => \$outputFile, 's|start-count=i' => \$startNum, 'e|end-count=i' => \$endNum, 'r|raw' => \$raw ); sub sane_strframe { my $frame = shift; my %frame = ( SANE_FRAME_GRAY => "gray", SANE_FRAME_RGB => "RGB", SANE_FRAME_RED => "red", SANE_FRAME_GREEN => "green", SANE_FRAME_BLUE => "blue", $SANE_FRAME_TEXT => "text", $SANE_FRAME_JPEG => "jpeg", $SANE_FRAME_G31D => "g31d", $SANE_FRAME_G32D => "g32d", $SANE_FRAME_G42D => "g42d", ); if ( defined $frame{$frame} ) { return $frame{$frame}; } else { return "unknown"; } } sub sane_isbasicframe { my $frame = shift; return $frame == SANE_FRAME_GRAY || $frame == SANE_FRAME_RGB || $frame == SANE_FRAME_RED || $frame == SANE_FRAME_GREEN || $frame == SANE_FRAME_BLUE; } sub sighandler { my $signum = shift; if ($device) { print STDERR "$prog_name: stopping scanner...\n"; $device->cancel; } return; } sub print_unit { my ($unit) = @_; given ($unit) { when (SANE_UNIT_PIXEL) { print "pel"; } when (SANE_UNIT_BIT) { print "bit"; } when (SANE_UNIT_MM) { print "mm"; } when (SANE_UNIT_DPI) { print "dpi"; } when (SANE_UNIT_PERCENT) { print "%"; } when (SANE_UNIT_MICROSECOND) { print "us"; } } return; } sub print_option { ( $device, my $opt_num, my $short_name ) = @_; my $opt = $device->get_option_descriptor($opt_num); if ($short_name) { printf " -%s", $short_name; } else { printf " --%s", $opt->{name}; } print_option_choices($opt); print_current_option_value( $opt, $opt_num ); print " [inactive]" if ( $opt->{type} != SANE_TYPE_BUTTON and $opt->{cap} & SANE_CAP_INACTIVE ); print "\n "; if ( $short_name eq 'x' ) { print "Width of scan-area."; } elsif ( $short_name eq 'y' ) { print "Height of scan-area."; } else { my $column = 8; my $last_break = 0; my $start = 0; for ( my $pos = 0 ; $pos < length( $opt->{desc} ) ; ++$pos ) { ++$column; $last_break = $pos if ( substr( $opt->{desc}, $pos, 1 ) eq ' ' ); if ( $column >= 79 and $last_break ) { print substr( $opt->{desc}, $start++, 1 ) while ( $start < $last_break ); $start = $last_break + 1; # skip blank print "\n "; $column = 8 + $pos - $start; } } print substr( $opt->{desc}, $start++, 1 ) while ( $start < length( $opt->{desc} ) ); } print "\n"; return; } sub print_option_choices { ## no critic (ProhibitExcessComplexity) my ($opt) = @_; if ( $opt->{type} == SANE_TYPE_BOOL ) { print "[=("; print "auto|" if ( $opt->{cap} & SANE_CAP_AUTOMATIC ); print "yes|no)]"; } elsif ( $opt->{type} != SANE_TYPE_BUTTON ) { print ' '; if ( $opt->{cap} & SANE_CAP_AUTOMATIC ) { print "auto|"; } if ( $opt->{constraint_type} == SANE_CONSTRAINT_NONE ) { if ( $opt->{type} == SANE_TYPE_INT ) { print ""; } elsif ( $opt->{type} == SANE_TYPE_FIXED ) { print ""; } elsif ( $opt->{type} == SANE_TYPE_STRING ) { print ""; } print ",..." if ( $opt->{max_values} > 1 ); } elsif ( $opt->{constraint_type} == SANE_CONSTRAINT_RANGE ) { my $string_format = "%g..%g"; $string_format = "%d..%d" if ( $opt->{type} == SANE_TYPE_INT ); if ( $opt->{name} eq SANE_NAME_SCAN_BR_X ) { printf $string_format, $opt->{constraint}{min}, $opt->{constraint}{max} - $tl_x; } elsif ( $opt->{name} eq SANE_NAME_SCAN_BR_Y ) { printf $string_format, $opt->{constraint}{min}, $opt->{constraint}{max} - $tl_y; } else { printf $string_format, $opt->{constraint}{min}, $opt->{constraint}{max}; } print_unit( $opt->{unit} ); print ",..." if ( $opt->{max_values} > 1 ); print " (in steps of $opt->{constraint}{quant})" if ( $opt->{constraint}{quant} ); } elsif ( $opt->{constraint_type} == SANE_CONSTRAINT_STRING_LIST or $opt->{constraint_type} == SANE_CONSTRAINT_WORD_LIST ) { for ( my $i = 0 ; $i < @{ $opt->{constraint} } ; ++$i ) { print '|' if ( $i > 0 ); my $string_format = $opt->{type} == SANE_TYPE_FIXED ? '%g' : '%s'; printf $string_format, $opt->{constraint}[$i]; } if ( $opt->{constraint_type} == SANE_CONSTRAINT_WORD_LIST ) { print_unit( $opt->{unit} ); print ",..." if ( $opt->{max_values} > 1 ); } } } return; } sub print_current_option_value { my ( $opt, $opt_num ) = @_; if ( $opt->{max_values} == 1 ) { # print current option value if ( !( $opt->{cap} & SANE_CAP_INACTIVE ) ) { my $val = $device->get_option($opt_num); print " ["; if ( $opt->{type} == SANE_TYPE_BOOL ) { print( $val ? "yes" : "no" ); } elsif ( $opt->{type} == SANE_TYPE_INT or $opt->{type} == SANE_TYPE_FIXED ) { my $string_format = "%g"; $string_format = "%d" if ( $opt->{type} == SANE_TYPE_INT ); given ( $opt->{name} ) { when (SANE_NAME_SCAN_TL_X) { $tl_x = $val; printf $string_format, $tl_x; } when (SANE_NAME_SCAN_TL_Y) { $tl_y = $val; printf $string_format, $tl_y; } when (SANE_NAME_SCAN_BR_X) { $br_x = $val; $w_x = $br_x - $tl_x; printf $string_format, $w_x; } when (SANE_NAME_SCAN_BR_Y) { $br_y = $val; $h_y = $br_y - $tl_y; printf $string_format, $h_y; } default { printf $string_format, $val; } } } elsif ( $opt->{type} == SANE_TYPE_STRING ) { print $val; } print ']'; } } return; } # A scalar has the following syntax: # # V [ U ] # # V is the value of the scalar. It is either an integer or a # floating point number, depending on the option type. # # U is an optional unit. If not specified, the default unit is used. # The following table lists which units are supported depending on # what the option's default unit is: # # Option's unit: Allowed units: # # SANE_UNIT_NONE: # SANE_UNIT_PIXEL: pel # SANE_UNIT_BIT: b (bit), B (byte) # SANE_UNIT_MM: mm (millimeter), cm (centimeter), in or " (inches), # SANE_UNIT_DPI: dpi # SANE_UNIT_PERCENT: % # SANE_UNIT_MICROSECOND: us sub parse_scalar { my ( $opt, $str ) = @_; my ( $v, $unit ); if ( $str =~ /^ (\d*\.?\d*) # value (cm|mm|in|\"|b|B|dpi|%|us)? # optional unit /x ) { $v = $1; $unit = $2; $unit = '' if not defined $unit; } else { print STDERR "$prog_name: option --$opt->{name}: bad option value (rest of option: $str)\n"; exit(1); } if ( $opt->{unit} == SANE_UNIT_BIT ) { $v *= 8 if ( $unit eq 'B' ); } elsif ( $opt->{unit} == SANE_UNIT_MM ) { if ( $unit eq 'cm' ) { $v *= 10; } elsif ( $unit eq 'in' ) { $v *= 25.4; } } return $v, substr( $str, length($v) + length($unit), length($str) ); } # A vector has the following syntax: # # [ '[' I ']' ] S { [','|'-'] [ '[' I ']' S } # # The number in brackets (I), if present, determines the index of the # vector element to be set next. If I is not present, the value of # last index used plus 1 is used. The first index value used is 0 # unless I is present. # # S is a scalar value as defined by parse_scalar(). # # If two consecutive value specs are separated by a comma (,) their # values are set independently. If they are separated by a dash (-), # they define the endpoints of a line and all vector values between # the two endpoints are set according to the value of the # interpolated line. For example, [0]15-[255]15 defines a vector of # 256 elements whose value is 15. Similarly, [0]0-[255]255 defines a # vector of 256 elements whose value starts at 0 and increases to # 255. sub parse_vector { my ( $opt, $str ) = @_; my $index = -1; my $prev_value = 0; my $prev_index = 0; my $separator = ''; my ( @vector, $value ); do { if ( $str =~ /^\[(\d*\.?\d*)(\])?/x ) { $index = $1; unless ( $2 eq '\]' ) { print STDERR "$prog_name: option --$opt->{name}: closing bracket missing " . "(rest of option: $str)\n"; exit(1); } } else { ++$index; } if ( $index < 0 or $index >= length($str) ) { printf STDERR "$prog_name: option --$opt->{name}: index $index out of range [0..%d]\n", length($str); exit(1); } # read value ( $value, $str ) = parse_scalar( $opt, $str ); if ( $str ne '' and $str !~ /^[-,]/x ) { print STDERR "$prog_name: option --$opt->{name}: illegal separator (rest of option: $str)\n"; exit(1); } # store value: $vector[$index] = $value; if ( $separator eq '-' ) { # interpolate my $v = $prev_value; my $slope = ( $value - $v ) / ( $index - $prev_index ); for ( my $i = $prev_index + 1 ; $i < $index ; ++$i ) { $v += $slope; $vector[$i] = $v; } } $prev_index = $index; $prev_value = $value; $separator = substr( $str, 0, 1 ); } while ( $separator eq ',' || $separator eq '-' ); if ( $verbose > 2 ) { print STDERR "$prog_name: value for --$opt->{name} is: "; for (@vector) { print STDERR "$_ "; } print STDERR "\n"; } return @vector; } sub fetch_options { $device = shift; # We got a device, find out how many options it has: $num_dev_options = $device->get_option(0); if ( $Sane::STATUS != SANE_STATUS_GOOD ) { print STDERR "$prog_name: unable to determine option count\n"; exit(1); } for ( my $i = 0 ; $i < $num_dev_options ; ++$i ) { my $opt = $device->get_option_descriptor($i); next if ( !( $opt->{cap} & SANE_CAP_SOFT_SELECT ) ); $option_number{ $opt->{name} } = $i; # Look for scan resolution $resolution_optind = $i if ( ( $opt->{type} == SANE_TYPE_FIXED || $opt->{type} == SANE_TYPE_INT ) and ( $opt->{unit} == SANE_UNIT_DPI ) and ( $opt->{name} eq SANE_NAME_SCAN_RESOLUTION ) ); update_geometry( $opt, $i ); if ( $opt->{type} == SANE_TYPE_BOOL ) { push @args, "$opt->{name}:s"; } elsif ( $opt->{type} == SANE_TYPE_BUTTON ) { push @args, $opt->{name}; } else { push @args, "$opt->{name}=s"; } } # Initialize width & height options based on backend default # values for top-left x/y and bottom-right x/y: for ( my $i = 0 ; $i < 2 ; ++$i ) { if ( $window[$i] and $window[ $i + 2 ] and not $window_val_user[$i] ) { my $pos = $device->get_option( $window[ $i + 2 ] ); $window_val[$i] = $window_val[$i] - $pos if ( defined $pos ); } } return; } # Keep track of top-left corner options (if they exist at # all) and replace the bottom-right corner options by a # width/height option (if they exist at all). sub update_geometry { my ( $opt, $i ) = @_; if ( ( $opt->{type} == SANE_TYPE_FIXED || $opt->{type} == SANE_TYPE_INT ) and ( $opt->{unit} == SANE_UNIT_MM || $opt->{unit} == SANE_UNIT_PIXEL ) ) { given ( $opt->{name} ) { when (SANE_NAME_SCAN_TL_X) { $window[2] = $i; $opt->{name} = 'l'; } when (SANE_NAME_SCAN_TL_Y) { $window[3] = $i; $opt->{name} = 't'; } when (SANE_NAME_SCAN_BR_X) { $window[0] = $i; $opt->{name} = 'x'; $window_option[0] = $opt; $window_option[0]->{title} = 'Scan width'; $window_option[0]->{desc} = 'Width of scanning area.'; $window_val[0] = $device->get_option($i) if ( !$window_val_user[0] ); } when (SANE_NAME_SCAN_BR_Y) { $window[1] = $i; $opt->{name} = 'y'; $window_option[1] = $opt; $window_option[1]->{title} = 'Scan height'; $window_option[1]->{desc} = 'Height of scanning area.'; $window_val[1] = $device->get_option($i) if ( !$window_val_user[1] ); } } } return; } sub set_option { ( $device, my $optnum, my $value ) = @_; my $opt = $device->get_option_descriptor($optnum); if ( $opt and ( $opt->{cap} & SANE_CAP_INACTIVE ) ) { print STDERR "$prog_name: ignored request to set inactive option $opt->{name}\n" if ( $verbose > 0 ); return; } my $info = $device->set_option( $optnum, $value ); if ( $Sane::STATUS != SANE_STATUS_GOOD ) { print STDERR "$prog_name: setting of option --$opt->{name} failed ($Sane::STATUS)\n"; exit(1); } if ( ( $info & SANE_INFO_INEXACT ) and $opt->{max_values} == 1 ) { my $orig = $value; $value = $device->get_option($optnum); if ( $opt->{type} == SANE_TYPE_INT ) { printf STDERR "$prog_name: rounded value of $opt->{name} from %d to %d\n", $orig, $value; } elsif ( $opt->{type} == SANE_TYPE_FIXED ) { printf STDERR "$prog_name: rounded value of $opt->{name} from %g to %g\n", $orig, $value; } } fetch_options($device) if ( $info & SANE_INFO_RELOAD_OPTIONS ); return; } sub process_backend_option { ( $device, my $optnum, my $optarg ) = @_; my $opt = $device->get_option_descriptor($optnum); if ( $opt and ( $opt->{cap} & SANE_CAP_INACTIVE ) ) { print STDERR "$prog_name: attempted to set inactive option $opt->{name}\n"; exit(1); } if ( ( $opt->{cap} & SANE_CAP_AUTOMATIC ) and $optarg and $optarg =~ /^auto$/ix ) { $device->set_auto($optnum); if ( $Sane::STATUS != SANE_STATUS_GOOD ) { printf STDERR "$prog_name: failed to set option --$opt->{name} to automatic ($Sane::STATUS)\n"; exit(1); } return; } my $value; given ( $opt->{type} ) { when (SANE_TYPE_BOOL) { $value = 1; # no argument means option is set if ($optarg) { if ( $optarg =~ /^yes$/ix ) { $value = 1; } elsif ( $optarg =~ /^no$/ix ) { $value = 0; } else { printf STDERR "$prog_name: option --$opt->{name}: bad option value `$optarg'\n"; exit(1); } } } when ( $opt->{type} == SANE_TYPE_INT or $opt->{type} == SANE_TYPE_FIXED ) { my @vector = parse_vector( $opt, $optarg ); $value = \@vector; } when (SANE_TYPE_STRING) { $value = $optarg; } when (SANE_TYPE_BUTTON) { $value = 0; # value doesn't matter } default { printf STDERR "$prog_name: duh, got unknown option type $opt->{type}\n"; return; } } set_option( $device, $optnum, $value ); return; } sub write_pnm_header_to_file { my ( $fh, $frame_format, $width, $height, $depth ) = @_; # The netpbm-package does not define raw image data with maxval > 255. # But writing maxval 65535 for 16bit data gives at least a chance # to read the image. if ($frame_format == SANE_FRAME_RED or $frame_format == SANE_FRAME_GREEN or $frame_format == SANE_FRAME_BLUE or $frame_format == SANE_FRAME_RGB ) { printf $fh "P6\n# SANE data follows\n%d %d\n%d\n", $width, $height, ( $depth <= 8 ) ? 255 : 65535; } elsif ( $frame_format == SANE_FRAME_GRAY ) { if ( $depth == 1 ) { printf $fh "P4\n# SANE data follows\n%d %d\n", $width, $height; } else { printf $fh "P5\n# SANE data follows\n%d %d\n%d\n", $width, $height, ( $depth <= 8 ) ? 255 : 65535; } } return; } sub scan_it_raw { ( my $fname, $raw, my $script ) = @_; my $first_frame = 1, my $offset = 0, my $must_buffer = 0; my $min = 0xff, my $max = 0; my ( %image, $fp ); my $parm; { do { # extra braces to get last to work. log_frame_info( $parm, $fp, $fname, $first_frame ); my ( $must_buffer, $offset ) = initialise_scan( $parm, $first_frame, $fp ); while (1) { my ( $buffer, $len ) = $device->read($buffer_size); if ( $Sane::STATUS != SANE_STATUS_GOOD ) { printf STDERR "$prog_name: min/max graylevel value = %d/%d\n", $min, $max if ( $verbose && $parm->{depth} == 8 ); if ( $Sane::STATUS != SANE_STATUS_EOF ) { print STDERR "$prog_name: sane_read: $Sane::STATUS\n"; return; } last; } $offset = buffer_data( $fp, $parm, $buffer, $len, \%image, $offset, $must_buffer ); if ( $verbose && $parm->{depth} == 8 ) { for ( split( //, $buffer ) ) { my $c = ord; if ( $c >= $max ) { $max = $c; } elsif ( $c < $min ) { $min = $c; } } } } $first_frame = 0; } while ( !$parm->{last_frame} ); } if ($must_buffer) { write_buffer( $fp, \%image, $parm ); } if ($fp) { close $fp; undef $fp; } cleanup: close $fp if ($fp); return; } sub log_frame_info { my ( $parm, $fp, $fname, $first_frame ) = @_; $device->start; if ( $Sane::STATUS != SANE_STATUS_GOOD ) { print STDERR "$prog_name: sane_start: $Sane::STATUS\n" if ( $Sane::STATUS != SANE_STATUS_NO_DOCS ); goto cleanup; } $parm = $device->get_parameters; if ( $Sane::STATUS != SANE_STATUS_GOOD ) { print STDERR "$prog_name: sane_get_parameters: $Sane::STATUS\n"; goto cleanup; } unless ( open $fp, '>', $fname ) ## no critic (RequireBriefOpen) { print STDERR "Error opening output `$fname': $@\n"; $Sane::_status = ## no critic (ProhibitPackageVars ProtectPrivateVars) SANE_STATUS_IO_ERROR; goto cleanup; } if ($verbose) { if ($first_frame) { if ( sane_isbasicframe( $parm->{format} ) ) { if ( $parm->{lines} >= 0 ) { printf STDERR "$prog_name: scanning image of size %dx%d pixels at " . "%d bits/pixel\n", $parm->{pixels_per_line}, $parm->{lines}, 8 * $parm->{bytes_per_line} / $parm->{pixels_per_line}; } else { printf STDERR "$prog_name: scanning image %d pixels wide and " . "variable height at %d bits/pixel\n", $parm->{pixels_per_line}, 8 * $parm->{bytes_per_line} / $parm->{pixels_per_line}; } } else { printf STDERR "$prog_name: receiving %s frame " . "bytes/line=%d, " . "pixels/line=%d, " . "lines=%d, " . "depth=%d\n",, sane_strframe( $parm->{format} ), $parm->{bytes_per_line}, $parm->{pixels_per_line}, $parm->{lines}, $parm->{depth}; } } printf STDERR "$prog_name: acquiring %s frame\n", sane_strframe( $parm->{format} ); } return; } sub initialise_scan { ## no critic (ProhibitExcessComplexity) my ( $parm, $first_frame, $fp ) = @_; my ( $must_buffer, $offset ); if ($first_frame) { if ($parm->{format} == SANE_FRAME_RED or $parm->{format} == SANE_FRAME_GREEN or $parm->{format} == SANE_FRAME_BLUE ) { die # FIXME: compare message with SANE source, and give them patch if necessary "Error: frame format $parm->{format}, but image depth=$parm->{depth} (expected 8)\n" unless ( $parm->{depth} == 8 ); $must_buffer = 1; $offset = $parm->{format} - SANE_FRAME_RED; } elsif ( $parm->{format} == SANE_FRAME_RGB ) { die # FIXME: compare message with SANE source, and give them patch if necessary "Error: frame format $parm->{format}, but image depth=$parm->{depth} (expected 8)\n" unless ( $parm->{depth} == 8 ); } if ($parm->{format} == SANE_FRAME_RGB or $parm->{format} == SANE_FRAME_GRAY ) { die # FIXME: compare message with SANE source, and give them patch if necessary "Error: frame format $parm->{format}, but image depth=$parm->{depth} (expected 1 or 8)\n" unless ( ( $parm->{depth} == 1 ) || ( $parm->{depth} == 8 ) ); # if we're writing raw, we skip the header and never # have to buffer a single frame format. if ( $raw == SANE_FALSE ) { if ( $parm->{lines} < 0 ) { $must_buffer = 1; $offset = 0; } else { write_pnm_header_to_file( $fp, $parm->{format}, $parm->{pixels_per_line}, $parm->{lines}, $parm->{depth} ); } } } elsif ( $parm->{format} == $SANE_FRAME_TEXT or $parm->{format} == $SANE_FRAME_JPEG or $parm->{format} == $SANE_FRAME_G31D or $parm->{format} == $SANE_FRAME_G32D or $parm->{format} == $SANE_FRAME_G42D ) { if ( !$parm->{last_frame} ) { $Sane::_status = ## no critic (ProhibitPackageVars ProtectPrivateVars) SANE_STATUS_INVAL; printf STDERR "$prog_name: bad %s frame: must be last_frame\n", sane_strframe( $parm->{format} ); goto cleanup; } } # write them out without a header; don't buffer else { # Default action for unknown frametypes; write them out # without a header; issue a warning in verbose mode. # Since we're not writing a header, there's no need to # buffer. printf STDERR "$prog_name: unknown frame format $parm->{format}\n" if ($verbose); if ( !$parm->{last_frame} ) { $Sane::_status = ## no critic (ProhibitPackageVars ProtectPrivateVars) SANE_STATUS_INVAL; printf STDERR "$prog_name: bad %s frame: must be last_frame\n", sane_strframe( $parm->{format} ); goto cleanup; } } } else { die # FIXME: compare message with SANE source, and give them patch if necessary "Error: frame format $parm->{format}, but expected SANE_FRAME_RED, SANE_FRAME_GREEN, or SANE_FRAME_BLUE\n" if ( $parm->{format} < SANE_FRAME_RED or $parm->{format} > SANE_FRAME_BLUE ); $offset = $parm->{format} - SANE_FRAME_RED; } return $must_buffer, $offset; } sub buffer_data { ## no critic (ProhibitManyArgs) my ( $fp, $parm, $buffer, $len, $image, $offset, $must_buffer ) = @_; if ($must_buffer) { # We're either scanning a multi-frame image or the # scanner doesn't know what the eventual image height # will be (common for hand-held scanners). In either # case, we need to buffer all data before we can write # the image if ($parm->{format} == SANE_FRAME_RED or $parm->{format} == SANE_FRAME_GREEN or $parm->{format} == SANE_FRAME_BLUE ) { for ( my $i = 0 ; $i < $len ; ++$i ) { $image->{data}[ $offset + 3 * $i ] = substr( $buffer, $i, 1 ); } $offset += 3 * $len; } elsif ( $parm->{format} == SANE_FRAME_RGB or $parm->{format} == SANE_FRAME_GRAY ) { for ( my $i = 0 ; $i < $len ; ++$i ) { $image->{data}[ $offset + $i ] = substr( $buffer, $i, 1 ); } $offset += $len; } else { # optional frametypes are never buffered printf STDERR "$prog_name: ERROR: trying to buffer %s frametype\n", sane_strframe( $parm->{format} ); } } else { print $fp $buffer; } return $offset; } sub write_buffer { my ( $fp, $image, $parm ) = @_; if ( $parm->{lines} > 0 ) { $image->{height} = $parm->{lines}; } else { $image->{height} = @{ $image->{data} } / $parm->{pixels_per_line}; $image->{height} /= 3 if ( $parm->{format} == SANE_FRAME_RED or $parm->{format} == SANE_FRAME_GREEN or $parm->{format} == SANE_FRAME_BLUE ); } if ( $raw == SANE_FALSE ) { # if we're writing raw, we skip the header write_pnm_header_to_file( $fp, $parm->{format}, $parm->{pixels_per_line}, $image->{height}, $parm->{depth} ); } for ( @{ $image->{data} } ) { print $fp $_; } return; } sub scan_docs { my ( $start, $end, $outfmt, $script ) = @_; $Sane::_status = ## no critic (ProhibitPackageVars ProtectPrivateVars) SANE_STATUS_GOOD; my $scannedPages = 0; while ( $end < 0 || $start <= $end ) { #!!! buffer overflow; need protection my $fname = sprintf( $outfmt, $start ); # does the filename already exist? if ( $no_overwrite and -r $fname ) { $Sane::_status = ## no critic (ProhibitPackageVars ProtectPrivateVars) SANE_STATUS_INVAL; print STDERR "Filename $fname already exists; will not overwrite\n"; } # Scan the document scan_it_raw( $fname, $raw, $script ) if ( $Sane::STATUS == SANE_STATUS_GOOD ); # Any scan errors? if ( $Sane::STATUS == SANE_STATUS_NO_DOCS ) { # out of paper in the hopper; this is our normal exit $Sane::_status = ## no critic (ProhibitPackageVars ProtectPrivateVars) SANE_STATUS_GOOD; last; } elsif ( $Sane::STATUS == SANE_STATUS_EOF ) { # done with this doc $Sane::_status = ## no critic (ProhibitPackageVars ProtectPrivateVars) SANE_STATUS_GOOD; print STDERR "Scanned document $fname\n"; $scannedPages++; $start++; } else { # unexpected error print STDERR "$Sane::STATUS\n"; last; } } print STDERR "Scanned $scannedPages pages\n"; return; } sub process_arguments { # re-enable error printing and arg permutation Getopt::Long::Configure('no_pass_through'); # There seems to be a bug in Getopt::Long 2.37 where l is treated as L whilst # l is not in @args. Therefore the workaround is to rename l to m for the first # scan and back to l for the second. for (@ARGV) { $_ = '-l' if ( $_ eq '-m' ); $_ = '-t' if ( $_ eq '-u' ); } my @ARGV_old = @ARGV; exit 1 if ( !GetOptions(@args) ); # As it isn't possible to get the argument order from Getopt::Long 2.37, do # this myself for (@ARGV_old) { my $ch; if (/--(.*)/x) { $ch = $1; my $i = index( $ch, '=' ); $ch = substr( $ch, 0, $i ) if ( $i > -1 ); } elsif (/-(.)/x) { $ch = $1; } else { next; } if ( defined $options{$ch} ) { given ($ch) { when ('x') { $window_val_user[0] = 1; ( $window_val[0] ) = parse_vector( $window_option[0], $options{x} ); } when ('y') { $window_val_user[1] = 1; ( $window_val[1] ) = parse_vector( $window_option[1], $options{y} ); } when ('l') { # tl-x process_backend_option( $device, $window[2], $options{l} ); } when ('t') { # tl-y process_backend_option( $device, $window[3], $options{t} ); } default { process_backend_option( $device, $option_number{$ch}, $options{$ch} ); } } } } for ( my $index = 0 ; $index < 2 ; ++$index ) { if ( $window[$index] and defined( $window_val[$index] ) ) { my $val = $window_val[$index] - 1; if ( $window[ $index + 2 ] ) { my $pos = $device->get_option( $window[ $index + 2 ] ); $val = $pos + $window_val[$index] if ( defined $pos ); } set_option( $device, $window[$index], $val ); } } return; } sub print_options { printf "\nOptions specific to device `%s':\n", $devname; for ( my $i = 0 ; $i < $num_dev_options ; ++$i ) { my $short_name = ''; my $opt = 0; for ( my $j = 0 ; $j < 4 ; ++$j ) { if ( $i == $window[$j] ) { $short_name = substr( "xylt", $j, 1 ); $opt = $window_option[$j] if ( $j < 2 ); } } $opt = $device->get_option_descriptor($i) if ( !$opt ); printf " %s:\n", $opt->{title} if ( $opt->{type} == SANE_TYPE_GROUP ); next if ( !( $opt->{cap} & SANE_CAP_SOFT_SELECT ) ); print_option( $device, $i, $short_name ); } print "\n" if ($num_dev_options); return; } sub list_device_names { printf "Type ``$prog_name --help -d DEVICE'' to get list of all options for DEVICE.\n\nList of available devices:"; my @device_list = Sane->get_devices; if ( $Sane::STATUS == SANE_STATUS_GOOD ) { my $column = 80; foreach (@device_list) { if ( $column + length( $_->{name} ) + 1 >= 80 ) { printf "\n "; $column = 4; } if ( $column > 4 ) { print ' '; $column += 1; } print $_->{name}; $column += length( $_->{name} ); } } print "\n"; return; } # There seems to be a bug in Getopt::Long 2.37 where l is treated as L whilst # l is not in @args. Therefore the workaround is to rename l to m for the first # scan and back to l for the second. for (@ARGV) { $_ = '-m' if ( $_ eq '-l' ); $_ = '-u' if ( $_ eq '-t' ); } # make a first pass through the options with error printing and argument # permutation disabled: GetOptions(@args); if ( defined $options{L} ) { my @device_list = Sane->get_devices; if ( $Sane::STATUS != SANE_STATUS_GOOD ) { print STDERR "$prog_name: sane_get_devices() failed: $Sane::STATUS\n"; exit(1); } foreach (@device_list) { printf "device `%s' is a %s %s %s\n", $_->{name}, $_->{vendor}, $_->{model}, $_->{type}; } printf "\nNo scanners were identified. If you were expecting " . "something different,\ncheck that the scanner is plugged " . "in, turned on and detected by the\nsane-find-scanner tool " . "(if appropriate). Please read the documentation\nwhich came " . "with this software (README, FAQ, manpages).\n" if ( $#device_list == -1 ); printf "default device is `%s'\n", $ENV{'SANE_DEFAULT_DEVICE'} if ( defined( $ENV{'SANE_DEFAULT_DEVICE'} ) ); exit(0); } if ( defined( $options{V} ) ) { printf "$prog_name (sane-backends) %s\n", Sane->get_version; exit(0); } if ($help) { print <<"EOS"; Usage: $prog_name [OPTION]... Start image acquisition on a scanner device and write image data to output files. [ -d | --device-name ] use a given scanner device. [ -h | --help ] display this help message and exit. [ -L | --list-devices ] show available scanner devices. [ -v | --verbose ] give even more status messages. [ -V | --version ] print version information. [ -N | --no-overwrite ] don't overwrite existing files. [ -o | --output-file ] name of file to write image data (\%d replacement in output file name). [ -S | --scan-script ] name of script to run after every scan. [ --script-wait ] wait for scripts to finish before exit [ -s | --start-count ] page count of first scanned image. [ -e | --end-count ] last page number to scan. [ -r | --raw ] write raw image data to file. EOS } if ( !$devname ) { # If no device name was specified explicitly, # we open the first device we find (if any): my @device_list = Sane->get_devices; if ( $Sane::STATUS != SANE_STATUS_GOOD ) { print STDERR "$prog_name: sane_get_devices() failed: $Sane::STATUS\n"; exit(1); } if ( $#device_list == -1 ) { print STDERR "$prog_name: no SANE devices found\n"; exit(1); } $devname = $device_list[0]{name}; } $device = Sane::Device->open($devname); if ( $Sane::STATUS != SANE_STATUS_GOOD ) { print STDERR "$prog_name: open of device $devname failed: $Sane::STATUS\n"; if ($help) { undef $device; } else { exit(1); } } if ( defined($device) ) { fetch_options($device); process_arguments(); if ($help) { print_options(); } } if ($help) { list_device_names(); exit(0); } local $SIG{HUP} = \&sighandler; local $SIG{INT} = \&sighandler; local $SIG{PIPE} = \&sighandler; local $SIG{TERM} = \&sighandler; scan_docs( $startNum, $endNum, $outputFile, $scanScript ); exit $Sane::STATUS; __END__ =head1 NAME scanadf - acquire multiple images from a scanner equipped with an ADF =head1 SYNOPSIS B B<[ -d | --device-name> I B<[ -h | --help ]> B<[ -L | --list-devices ]> B<[ -v | --verbose ]> B<[ -V | --version ]> B<[ -o | --output-file> I B<[ -N | --no-overwrite ]> B<[ -S | --scan-script> I B<[ --script-wait ] > B<[ -s | --start-count> I B<[ -e | --end-count> I B<[ -r | --raw ]> I<[ device-specific-options ]> =head1 DESCRIPTION B is a command-line interface to control image acquisition devices which are capable of returning a series of images (e.g. a scanner with an automatic document feeder (ADF)). The device is controlled via command-line options. After command-line processing, B normally proceeds to acquire a series of images until the device returns the B status code. The images are written to output files, specified by the B<--output-file> option. These files are typically written in one of the PNM (portable aNyMaP) formats (PBM for black-and-white images, PGM for grayscale images, and PPM for color images). Several optional frame formats (SANE_FRAME_JPEG, SANE_FRAME_G31D, SANE_FRAME_G32D, SANE_FRAME_G42D, and SANE_FRAME_TEXT) are supported. In each case, the data is written out to the output file as-is without a header. Unrecognized frame formats are handled in the same way, although a warning message is printed in verbose mode. Typically, the optional frame formats are used in conjunction with a scan script (specified by the B<--scanscript> option) which is invoked for each acquired image. The script is provided with a series of environment variables which describe the parameters and format of the image file. B accesses image acquisition devices through the SANE (Scanner Access Now Easy) interface and can thus support any device for which there exists a SANE backend (try "apropos sane\-" to get a list of available backends). =head1 OPTIONS The B<-d> or B<--device-name> options must be followed by a SANE device-name. A (partial) list of available devices can be obtained with the B<--list-devices> option (see below). If no device-name is specified explicitly, B will attempt to open the first available device. The B<-h> or B<--help> options request help information. The information is printed on standard output and in this case, no attempt will be made to acquire an image. The B<-L> or B<--list-devices> option requests a (partial) list of devices that are available. The list is not complete since some devices may be available, but are not listed in any of the configuration files (which are typically stored in directory /etc/sane.d). This is particularly the case when accessing scanners through the network. If a device is not listed in a configuration file, the only way to access it is by its full device name. You may need to consult your system administrator to find out the names of such devices. The B<-v> or B<--verbose> options increase the verbosity of the operation of B The option may be specified repeatedly, each time increasing the verbosity level. The B<-V> or B<--version> option requests that B print the program and package name, as well as the version number of the SANE distribution that it came with. The B<-o> or B<--output-file> option specifies a format string used to generate the name of file to write the image data to. You can use %d replacement in the output file name; this will be replaced with the current page number. The default format string is image-%04d. The B<-N> or B<--no-overwrite> option prevents B from overwriting existing image files. The B<-S> or B<--scan-script> option specifies the name of script to run after each scanned image is acquired. The script receives the name of the image output file as its first and only command line argument. Additionally the scan script can reference the following environment variables to get information about the parameters of the image. =over =item B - the image resolution (in DPI) =item B - the image width (in pixels) =item B - the image height (in pixels) =item B - the image bit-depth (in bits) =item B - a string representing the image format (e.g. gray, g42d, text, etc) =item B - the numeric image format identifier =back If the B<--scipt-wait> option is given, scanadf will wait until all scan-scripts have been finished before exiting. That will be useful if scanadf is used in conjunction with tools to modify the scanned images. The B<-s> or B<--start-count> option specifies the page number of first scanned image. The B<-e> or B<--end-count> option specifies the last page number to scan. Using this option, you can request a specific number of pages to be scanned, rather than scanning until there are no more images available. The B<-r> or B<--raw> option specifies that the raw image data be written to the output file as-is without interpretation. This disables the writing of the PNM header for basic frame types. This feature is usually used in conjunction with the B<--scan-script> option where the scan script uses the environment variables to understand the format and parameters of the image and converts the file to a more useful format. NOTE: With support for the optional frame types and the default handling of unrecognized frametypes, this option becomes less and less useful. As you might imagine, much of the power of B comes from the fact that it can control any SANE backend. Thus, the exact set of command-line options depends on the capabilities of the selected device. To see the options for a device named I invoke B via a command-line of the form: =over scanadf --help --device I =back The documentation for the device-specific options printed by B<--help> is explained in the manual page for B =head1 FILES =over =item I This directory holds various configuration files. For details, please refer to the manual pages listed below. =back =head1 "SEE ALSO" scanimage(1), xscanimage(1), sane(7) =head1 AUTHOR Transliterated from the C original by Jeffrey Ratcliffe. =head1 BUGS All the bugs of scanadf and much, much more. This program relies on the backend to return the B status code when the automatic document feeder is out of paper. Use of this program with backends that do not support ADFs (e.g. flatbed scanners) will likely result in repeated scans of the same document. In this case, it is essential to use the start-count and end-count to control the number of images acquired. Only a subset of the SANE backends support feeders and return SANE_STATUS_NO_DOCS appropriately. Backends which are known to work at this time are: =over =item B - Bell+Howell Copiscan II series scanners. =item B - Hewlett Packard scanners. A patch to the sane-hp backend is necessary. The --scantype=ADF option must be specified (earlier versions of the backend used the --scan-from-adf option, instead). =item B - UMAX scanners. Support exists in build 12 and later. The --source="Automatic Document Feeder" option must be specified. =back gscan2pdf-1.2.3/scanner.svg0000644000175000017500000006513612053230657014162 0ustar jeffjeff image/svg+xml F.Bellaiche <frederic.bellaiche@gmail.com> Epson Perfection 1260 Scanner May 2007 gscan2pdf-1.2.3/scanners/0000755000175000017500000000000012271546566013624 5ustar jeffjeffgscan2pdf-1.2.3/scanners/hp_scanjet6390c0000644000175000017500000001035612053230657016344 0ustar jeffjeffUsage: scanimage [OPTION]... Start image acquisition on a scanner device and write PNM image data to standard output. -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), and %i (index number) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' or `out%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase number in filename by an amount of # --batch-double increment page number by two for 2sided originals being scanned in a single sided scanner --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size change default input buffersize -V, --version print version information Options specific to device `hp:libusb:001:003': Scan Mode: --preview[=(yes|no)] [no] Request a preview-quality scan. --mode Lineart|Halftone|Grayscale|Color [Lineart] Selects the scan mode (e.g., lineart, monochrome, or color). --resolution 12..3200dpi (in steps of 1) [300] Sets the resolution of the scanned image. Enhancement: --brightness -127..127 (in steps of 1) [0] Controls the brightness of the acquired image. --contrast -127..127 (in steps of 1) [0] Controls the contrast of the acquired image. --auto-threshold[=(yes|no)] [no] Enable automatic determination of threshold for line-art scans. Advanced Options: --custom-gamma[=(yes|no)] [no] Determines whether a builtin or a custom gamma-table should be used. --gamma-table 0..255,... (in steps of 1.52588e-05) [inactive] Gamma-correction table. In color mode this option equally affects the red, green, and blue channels simultaneously (i.e., it is an intensity gamma table). --matrix-type Auto|NTSC Gray|Red|Green|Blue [Auto] Set the scanners color matrix. --matrix-rgb -3.99219..3.99219,... (in steps of 1.52588e-05) [inactive] Custom color matrix. --halftone-pattern Coarse|Fine|Bayer|Vertical|Horizontal|Custom [inactive] Defines the halftoning (dithering) pattern for scanning halftoned images. --speed Auto|Slow|Normal|Fast|Extra Fast [Auto] Determines the speed at which the scan proceeds. --depth 1 [inactive] Number of bits per sample, typical values are 1 for "line-art" and 8 for multibit scans. --output-8bit[=(yes|no)] [inactive] Use bit depth greater eight internally, but output only eight bits. --source Normal|ADF|XPA [Normal] Selects the scan source (such as a document-feeder). --button-wait[=(yes|no)] [no] Wait to scan for front-panel button push. --lamp-off [] Shut off scanner lamp. --change-document [] Change Document. Geometry: -l 0..215.788mm (in steps of 1.52588e-05) [0] Top-left x position of scan area. -t 0..296.888mm (in steps of 1.52588e-05) [0] Top-left y position of scan area. -x 0..215.788mm (in steps of 1.52588e-05) [215.788] Width of scan-area. -y 0..296.888mm (in steps of 1.52588e-05) [296.888] Height of scan-area. --mirror-horizontal Off|On [Off] Mirror image horizontally. --mirror-vertical Off|On [Off] Mirror image vertically. Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: hp:libusb:001:003 gscan2pdf-1.2.3/scanners/hp_v400000644000175000017500000000741312053230657014641 0ustar jeffjeffUsage: scanimage [OPTION]... Start image acquisition on a scanner device and write PNM image data to standard output. -d, --device-name=DEVICE use a given scanner device (e.g . hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), and %i (index number) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' or `out%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase number in filename by an amount of # --batch-double increment page number by two for 2sided originals being scanned in a single sided scanner --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size change default input buffersize -V, --version print version information Options specific to device `hpaio:/usb/OfficeJet_V40?serial=MY16QB30YRWN': Scan mode: --mode Lineart|Grayscale|Color [Color] Selects the scan mode (e.g., lineart, monochrome, or color). --resolution 75..600dpi [75] Sets the resolution of the scanned image. Advanced: --contrast 0..100 [inactive] Controls the contrast of the acquired image. --compression None|JPEG [JPEG] Selects the scanner compression method for faster scans, possibly at the expense of image quality. --jpeg-compression-factor 0..100 [10] Sets the scanner JPEG compression factor. Larger numbers mean better compression, and smaller numbers mean better image quality. --batch-scan[=(yes|no)] [no] Guarantees that a "no documents" condition will be returned after the last scanned page, to prevent endless flatbed scans after a batch scan. For some models, option changes in the middle of a batch scan don't take effect until after the last page. --source ADF [ADF] Selects the desired scan source for models with both flatbed and automatic document feeder (ADF) capabilities. The "Auto" setting means that the ADF will be used if it's loaded, and the flatbed (if present) will be used otherwise. --duplex[=(yes|no)] [inactive] Enables scanning on both sides of the page for models with duplex-capable document feeders. For pages printed in "book"-style duplex mode, one side will be scanned upside-down. This feature is experimental. Geometry: --length-measurement Unknown|Approximate|Padded [Padded] Selects how the scanned image length is measured and reported, which is impossible to know in advance for scrollfed scans. -l 0..215.9mm [0] Top-left x position of scan area. -t 0..381mm [0] Top-left y position of scan area. -x 0..215.9mm [215.9] Width of scan-area. -y 0..381mm [381] Height of scan-area. Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: hpaio:/usb/OfficeJet_V40?serial=MY16QB30YRWN gscan2pdf-1.2.3/scanners/officejet_55000000644000175000017500000000747512053230657016160 0ustar jeffjeffUsage: scanimage [OPTION]... Start image acquisition on a scanner device and write PNM image data to standard output. -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), and %i (index number) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' or `out%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase number in filename by an amount of # --batch-double increment page number by two for 2sided originals being scanned in a single sided scanner --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size change default input buffersize -V, --version print version information Options specific to device `hpaio:/usb/officejet_5500_series?serial=MY42QF209H96': Scan mode: --mode Lineart|Grayscale|Color [Color] Selects the scan mode (e.g., lineart, monochrome, or color). --resolution 75..600dpi [75] Sets the resolution of the scanned image. Advanced: --contrast 0..100 [inactive] Controls the contrast of the acquired image. --compression None|JPEG [JPEG] Selects the scanner compression method for faster scans, possibly at the expense of image quality. --jpeg-compression-factor 0..100 [10] Sets the scanner JPEG compression factor. Larger numbers mean better compression, and smaller numbers mean better image quality. --batch-scan[=(yes|no)] [no] Guarantees that a "no documents" condition will be returned after the last scanned page, to prevent endless flatbed scans after a batch scan. For some models, option changes in the middle of a batch scan don't take effect until after the last page. --source Auto|Flatbed|ADF [Auto] Selects the desired scan source for models with both flatbed and automatic document feeder (ADF) capabilities. The "Auto" setting means that the ADF will be used if it's loaded, and the flatbed (if present) will be used otherwise. --duplex[=(yes|no)] [inactive] Enables scanning on both sides of the page for models with duplex-capable document feeders. For pages printed in "book"-style duplex mode, one side will be scanned upside-down. This feature is experimental. Geometry: --length-measurement Unknown|Approximate|Padded [Padded] Selects how the scanned image length is measured and reported, which is impossible to know in advance for scrollfed scans. -l 0..215.9mm [0] Top-left x position of scan area. -t 0..381mm [0] Top-left y position of scan area. -x 0..215.9mm [215.9] Width of scan-area. -y 0..381mm [381] Height of scan-area. Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: v4l:/dev/video1 v4l:/dev/video0 hpaio:/usb/officejet_5500_series?serial=MY42QF209H96 gscan2pdf-1.2.3/scanners/umax0000644000175000017500000001730312053230657014512 0ustar jeffjeffUsage: scanimage [OPTION]... Start image acquisition on a scanner device and write PNM image data to standard output. Parameters are separated by a blank from single-character options (e.g. -d epson) and by a "=" from multi-character options (e.g. --device-name=epson). -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), and %i (index number) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' or `out%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase number in filename by an amount of # --batch-double increment page number by two for 2sided originals being scanned in a single sided scanner --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size change default input buffersize -V, --version print version information Options specific to device `umax:/dev/sg2': Scan Mode: --mode Lineart|Gray|Color [Color] Selects the scan mode (e.g., lineart, monochrome, or color). --source Flatbed [Flatbed] Selects the scan source (such as a document-feeder). --resolution 5..300dpi (in steps of 5) [100] Sets the resolution of the scanned image. --y-resolution 5..600dpi (in steps of 5) [inactive] Sets the vertical resolution of the scanned image. --resolution-bind[=(yes|no)] [yes] Use same values for X and Y resolution --negative[=(yes|no)] [inactive] Swap black and white Geometry: -l 0..215.9mm [0] Top-left x position of scan area. -t 0..297.18mm [0] Top-left y position of scan area. -x 0..215.9mm [215.9] Width of scan-area. -y 0..297.18mm [297.18] Height of scan-area. Enhancement: --depth 8bit [8] Number of bits per sample, typical values are 1 for "line-art" and 8 for multibit scans. --quality-cal[=(yes|no)] [yes] Do a quality white-calibration --double-res[=(yes|no)] [inactive] Use lens that doubles optical resolution --warmup[=(yes|no)] [inactive] Warmup lamp before scanning --rgb-bind[=(yes|no)] [no] In RGB-mode use same values for each color --brightness -100..100% (in steps of 1) [inactive] Controls the brightness of the acquired image. --contrast -100..100% (in steps of 1) [inactive] Controls the contrast of the acquired image. --threshold 0..100% [inactive] Select minimum-brightness to get a white point --highlight 0..100% [inactive] Selects what radiance level should be considered "white". --highlight-r 0..100% [100] Selects what red radiance level should be considered "full red". --highlight-g 0..100% [100] Selects what green radiance level should be considered "full green". --highlight-b 0..100% [100] Selects what blue radiance level should be considered "full blue". --shadow 0..100% [inactive] Selects what radiance level should be considered "black". --shadow-r 0..100% [inactive] Selects what red radiance level should be considered "black". --shadow-g 0..100% [inactive] Selects what green radiance level should be considered "black". --shadow-b 0..100% [inactive] Selects what blue radiance level should be considered "black". --analog-gamma 1..2 (in steps of 0.00999451) [inactive] Analog gamma-correction --analog-gamma-r 1..2 (in steps of 0.00999451) [inactive] Analog gamma-correction for red --analog-gamma-g 1..2 (in steps of 0.00999451) [inactive] Analog gamma-correction for green --analog-gamma-b 1..2 (in steps of 0.00999451) [inactive] Analog gamma-correction for blue --custom-gamma[=(yes|no)] [yes] Determines whether a builtin or a custom gamma-table should be used. --gamma-table 0..255,... Gamma-correction table. In color mode this option equally affects the red, green, and blue channels simultaneously (i.e., it is an intensity gamma table). --red-gamma-table 0..255,... Gamma-correction table for the red band. --green-gamma-table 0..255,... Gamma-correction table for the green band. --blue-gamma-table 0..255,... Gamma-correction table for the blue band. --halftone-size 2|4|6|8|12pel [inactive] Sets the size of the halftoning (dithering) pattern used when scanning halftoned images. --halftone-pattern 0..255 [inactive] Defines the halftoning (dithering) pattern for scanning halftoned images. Advanced: --cal-exposure-time 0..0us [inactive] Define exposure-time for calibration --cal-exposure-time-r 0..0us [inactive] Define exposure-time for red calibration --cal-exposure-time-g 0..0us [inactive] Define exposure-time for green calibration --cal-exposure-time-b 0..0us [inactive] Define exposure-time for blue calibration --scan-exposure-time 0..0us [inactive] Define exposure-time for scan --scan-exposure-time-r 0..0us [inactive] Define exposure-time for red scan --scan-exposure-time-g 0..0us [inactive] Define exposure-time for green scan --scan-exposure-time-b 0..0us [inactive] Define exposure-time for blue scan --disable-pre-focus[=(yes|no)] [inactive] Do not calibrate focus --manual-pre-focus[=(yes|no)] [inactive] --fix-focus-position[=(yes|no)] [inactive] --lens-calibration-in-doc-position[=(yes|no)] [inactive] Calibrate lens focus in document position --holder-focus-position-0mm[=(yes|no)] [inactive] Use 0mm holder focus position instead of 0.6mm --cal-lamp-density 0..100% [inactive] Define lamp density for calibration --scan-lamp-density 0..100% [inactive] Define lamp density for scan --select-exposure-time[=(yes|no)] [inactive] Enable selection of exposure-time --select-calibration-exposure-time[=(yes|no)] [inactive] Allow different settings for calibration and scan exposure times --select-lamp-density[=(yes|no)] [inactive] Enable selection of lamp density --lamp-on [inactive] Turn on scanner lamp --lamp-off [inactive] Turn off scanner lamp --lamp-off-at-exit[=(yes|no)] [inactive] Turn off lamp when program exits --batch-scan-start[=(yes|no)] [inactive] set for first scan of batch --batch-scan-loop[=(yes|no)] [inactive] set for middle scans of batch --batch-scan-end[=(yes|no)] [inactive] set for last scan of batch --batch-scan-next-tl-y 0..297.18mm [inactive] Set top left Y position for next scan --preview[=(yes|no)] [no] Request a preview-quality scan. Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: v4l:/dev/video0 umax:/dev/sg2 gscan2pdf-1.2.3/scanners/officejet_5500.color0000644000175000017500000000621512053230657017264 0ustar jeffjeffUsage: scanimage [OPTION]... Start image acquisition on a scanner device and write PNM image data to standard output. -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), and %i (index number) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' or `out%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase number in filename by an amount of # --batch-double increment page number by two for 2sided originals being scanned in a single sided scanner --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size change default input buffersize -V, --version print version information Options specific to device `hpaio:/usb/officejet_5500_series?serial=MY42QF209H96': Scan mode: --mode Lineart|Gray|Color [Color] Selects the scan mode (e.g., lineart, monochrome, or color). --resolution 75..600dpi [75] Sets the resolution of the scanned image. Advanced: --contrast 0..100 [inactive] Controls the contrast of the acquired image. --compression None|JPEG [JPEG] Selects the scanner compression method for faster scans, possibly at the expense of image quality. --jpeg-quality 0..100 [10] Sets the scanner JPEG compression factor. Larger numbers mean better compression, and smaller numbers mean better image quality. --batch-scan[=(yes|no)] [no] Enables continuous scanning with automatic document feeder (ADF). --source Auto|Flatbed|ADF [Auto] Selects the scan source (such as a document-feeder). Geometry: --length-measurement Unknown|Approximate|Padded [Padded] Selects how the scanned image length is measured and reported, which is impossible to know in advance for scrollfed scans. -l 0..215.9mm [0] Top-left x position of scan area. -t 0..381mm [0] Top-left y position of scan area. -x 0..215.9mm [215.9] Width of scan-area. -y 0..381mm [381] Height of scan-area. Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: v4l:/dev/video2 v4l:/dev/video1 v4l:/dev/video0 hpaio:/usb/officejet_5500_series?serial=MY42QF209H96 gscan2pdf-1.2.3/scanners/officejet_5500.scanadf0000644000175000017500000000641012053230657017542 0ustar jeffjeffUsage: scanadf [OPTION]... Start image acquisition on a scanner device and write image data to output files. [ -d | --device-name ] use a given scanner device. [ -h | --help ] display this help message and exit. [ -L | --list-devices ] show available scanner devices. [ -v | --verbose ] give even more status messages. [ -V | --version ] print version information. [ -N | --no-overwrite ] don't overwrite existing files. [ -o | --output-file ] name of file to write image data (%d replacement in output file name). [ -S | --scan-script ] name of script to run after every scan. [ --script-wait ] wait for scripts to finish before exit [ -s | --start-count ] page count of first scanned image. [ -e | --end-count ] last page number to scan. [ -r | --raw ] write raw image data to file. Options specific to device `hpaio:/usb/officejet_5500_series?serial=MY42QF209H96': Scan mode: --mode Lineart|Grayscale|Color [Color] Selects the scan mode (e.g., lineart, monochrome, or color). --resolution 75..600dpi [75] Sets the resolution of the scanned image. Advanced: --contrast 0..100 [inactive] Controls the contrast of the acquired image. --compression None|JPEG [JPEG] Selects the scanner compression method for faster scans, possibly at the expense of image quality. --jpeg-compression-factor 0..100 [10] Sets the scanner JPEG compression factor. Larger numbers mean better compression, and smaller numbers mean better image quality. --batch-scan[=(yes|no)] [no] Guarantees that a "no documents" condition will be returned after the last scanned page, to prevent endless flatbed scans after a batch scan. For some models, option changes in the middle of a batch scan don't take effect until after the last page. --source Auto|Flatbed|ADF [Auto] Selects the desired scan source for models with both flatbed and automatic document feeder (ADF) capabilities. The "Auto" setting means that the ADF will be used if it's loaded, and the flatbed (if present) will be used otherwise. --duplex[=(yes|no)] [inactive] Enables scanning on both sides of the page for models with duplex-capable document feeders. For pages printed in "book"-style duplex mode, one side will be scanned upside-down. This feature is experimental. Geometry: --length-measurement Unknown|Approximate|Padded [Padded] Selects how the scanned image length is measured and reported, which is impossible to know in advance for scrollfed scans. -l 0..215.9mm [0] Top-left x position of scan area. -t 0..381mm [0] Top-left y position of scan area. -x 0..215.9mm [215.9] Width of scan-area. -y 0..381mm [381] Height of scan-area. Type ``scanadf --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: hpaio:/usb/officejet_5500_series?serial=MY42QF209H96 hpaio:/usb/officejet_5500_series?serial=MY42QF209H96 v4l:/dev/video1 v4l:/dev/video0 gscan2pdf-1.2.3/scanners/hp_scanjet5470c.scanadf0000644000175000017500000000360612053230657017740 0ustar jeffjeffUsage: scanadf [OPTION]... Start image acquisition on a scanner device and write image data to output files. [ -d | --device-name ] use a given scanner device. [ -h | --help ] display this help message and exit. [ -L | --list-devices ] show available scanner devices. [ -v | --verbose ] give even more status messages. [ -V | --version ] print version information. [ -N | --no-overwrite ] don't overwrite existing files. [ -o | --output-file ] name of file to write image data (%d replacement in output file name). [ -S | --scan-script ] name of script to run after every scan. [ --script-wait ] wait for scripts to finish before exit [ -s | --start-count ] page count of first scanned image. [ -e | --end-count ] last page number to scan. [ -r | --raw ] write raw image data to file. Options specific to device `hp5400:libusb:002:003': Geometry: -l 0..220mm (in steps of 1) [5] Top-left x position of scan area. -t 0..300mm (in steps of 1) [52] Top-left y position of scan area. -x 0..220mm (in steps of 1) [225] Width of scan-area. -y 0..300mm (in steps of 1) [352] Height of scan-area. --resolution 75|150|300|600|1200dpi [75] Sets the resolution of the scanned image. Image: --red-gamma-table 0..65535,... (in steps of 1) [0] Gamma-correction table for the red band. --green-gamma-table 0..65535,... (in steps of 1) [0] Gamma-correction table for the green band. --blue-gamma-table 0..65535,... (in steps of 1) [0] Gamma-correction table for the blue band. Type ``scanadf --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: hp5400:libusb:002:003 gscan2pdf-1.2.3/scanners/mustek0000644000175000017500000000552212053230657015050 0ustar jeffjeffUsage: scanimage [OPTION]... Start image acquisition on a scanner device and write PNM image data to standard output. -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), and %i (index number) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' or `out%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase number in filename by an amount of # --batch-double increment page number by two for 2sided originals being scanned in a single sided scanner --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size change default input buffersize -V, --version print version information Options specific to device `mustek_usb2:libusb:001:003': Scan Mode: --mode Color48|Color24|Gray16|Gray8|Lineart [Color24] Selects the scan mode (e.g., lineart, monochrome, or color). --source Reflective|Positive|Negative [Reflective] Selects the scan source (such as a document-feeder). --resolution 1200|600|300|150|75dpi [300] Sets the resolution of the scanned image. --preview[=(yes|no)] [no] Request a preview-quality scan. Debugging Options: --auto-warmup[=(yes|no)] [no] Warm-up until the lamp's brightness is constant instead of insisting on 40 seconds warm-up time. Enhancement: --threshold 0..255 [inactive] Select minimum-brightness to get a white point --gamma-value 0.00999451..5 (in steps of 0.00999451) [inactive] Sets the gamma value of all channels. Geometry: -l 0..210.82mm [0] Top-left x position of scan area. -t 0..294.64mm [0] Top-left y position of scan area. -x 0..210.82mm [210.82] Width of scan-area. -y 0..294.64mm [294.64] Height of scan-area. Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: mustek_usb2:libusb:001:003 gscan2pdf-1.2.3/scanners/test0000644000175000017500000002176112237446454014532 0ustar jeffjeffUsage: scanimage [OPTION]... Start image acquisition on a scanner device and write image data to standard output. Parameters are separated by a blank from single-character options (e.g. -d epson) and by a "=" from multi-character options (e.g. --device-name=epson). -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), %i (index number), and %n (newline) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' or `out%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase page number in filename by # --batch-double increment page number by two, same as --batch-increment=2 --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -A, --all-options list all available backend options -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size=# change input buffer size (in kB, default 32) -V, --version print version information Options specific to device `test:0': Scan Mode: --mode Gray|Color [Gray] Selects the scan mode (e.g., lineart, monochrome, or color). --depth 1|8|16 [8] Number of bits per sample, typical values are 1 for "line-art" and 8 for multibit scans. --hand-scanner[=(yes|no)] [no] Simulate a hand-scanner. Hand-scanners do not know the image height a priori. Instead, they return a height of -1. Setting this option allows to test whether a frontend can handle this correctly. This option also enables a fixed width of 11 cm. --three-pass[=(yes|no)] [inactive] Simulate a three-pass scanner. In color mode, three frames are transmitted. --three-pass-order RGB|RBG|GBR|GRB|BRG|BGR [inactive] Set the order of frames in three-pass color mode. --resolution 1..1200dpi (in steps of 1) [50] Sets the resolution of the scanned image. --source Flatbed|Automatic Document Feeder [Flatbed] If Automatic Document Feeder is selected, the feeder will be 'empty' after 10 scans. Special Options: --test-picture Solid black|Solid white|Color pattern|Grid [Solid black] Select the kind of test picture. Available options: Solid black: fills the whole scan with black. Solid white: fills the whole scan with white. Color pattern: draws various color test patterns depending on the mode. Grid: draws a black/white grid with a width and height of 10 mm per square. --invert-endianess[=(yes|no)] [inactive] Exchange upper and lower byte of image data in 16 bit modes. This option can be used to test the 16 bit modes of frontends, e.g. if the frontend uses the correct endianness. --read-limit[=(yes|no)] [no] Limit the amount of data transferred with each call to sane_read(). --read-limit-size 1..65536 (in steps of 1) [inactive] The (maximum) amount of data transferred with each call to sane_read(). --read-delay[=(yes|no)] [no] Delay the transfer of data to the pipe. --read-delay-duration 1000..200000us (in steps of 1000) [inactive] How long to wait after transferring each buffer of data through the pipe. --read-return-value Default|SANE_STATUS_UNSUPPORTED|SANE_STATUS_CANCELLED|SANE_STATUS_DEVICE_BUSY|SANE_STATUS_INVAL|SANE_STATUS_EOF|SANE_STATUS_JAMMED|SANE_STATUS_NO_DOCS|SANE_STATUS_COVER_OPEN|SANE_STATUS_IO_ERROR|SANE_STATUS_NO_MEM|SANE_STATUS_ACCESS_DENIED [Default] Select the return-value of sane_read(). "Default" is the normal handling for scanning. All other status codes are for testing how the frontend handles them. --ppl-loss -128..128pel (in steps of 1) [0] The number of pixels that are wasted at the end of each line. --fuzzy-parameters[=(yes|no)] [no] Return fuzzy lines and bytes per line when sane_parameters() is called before sane_start(). --non-blocking[=(yes|no)] [no] Use non-blocking IO for sane_read() if supported by the frontend. --select-fd[=(yes|no)] [no] Offer a select filedescriptor for detecting if sane_read() will return data. --enable-test-options[=(yes|no)] [no] Enable various test options. This is for testing the ability of frontends to view and modify all the different SANE option types. --read-length-zero[=(yes|no)] [no] sane_read() returns data 'x' but length=0 on first call. This is helpful for testing slow device behavior that returns no data when background work is in process and zero length with SANE_STATUS_GOOD although data is NOT filled with 0. --print-options Print a list of all options. Geometry: -l 0..200mm (in steps of 1) [0] Top-left x position of scan area. -t 0..200mm (in steps of 1) [0] Top-left y position of scan area. -x 0..200mm (in steps of 1) [80] Width of scan-area. -y 0..200mm (in steps of 1) [100] Height of scan-area. --page-width 0..300mm (in steps of 1) [200] Specifies the width of the media. Required for automatic centering of sheet-fed scans. --page-height 0..300mm (in steps of 1) [200] Specifies the height of the media. Bool test options: --bool-soft-select-soft-detect[=(yes|no)] [inactive] (1/6) Bool test option that has soft select and soft detect (and advanced) capabilities. That's just a normal bool option. --bool-soft-select-soft-detect-emulated[=(yes|no)] [inactive] (5/6) Bool test option that has soft select, soft detect, and emulated (and advanced) capabilities. --bool-soft-select-soft-detect-auto[=(auto|yes|no)] [inactive] (6/6) Bool test option that has soft select, soft detect, and automatic (and advanced) capabilities. This option can be automatically set by the backend. Int test options: --int [inactive] (1/6) Int test option with no unit and no constraint set. --int-constraint-range 4..192pel (in steps of 2) [inactive] (2/6) Int test option with unit pixel and constraint range set. Minimum is 4, maximum 192, and quant is 2. --int-constraint-word-list -42|-8|0|17|42|256|65536|16777216|1073741824bit [inactive] (3/6) Int test option with unit bits and constraint word list set. --int-constraint-array ,... [inactive] (4/6) Int test option with unit mm and using an array without constraints. --int-constraint-array-constraint-range 4..192dpi,... (in steps of 2) [inactive] (5/6) Int test option with unit dpi and using an array with a range constraint. Minimum is 4, maximum 192, and quant is 2. --int-constraint-array-constraint-word-list -42|-8|0|17|42|256|65536|16777216|1073741824%,... [inactive] (6/6) Int test option with unit percent and using an array with a word list constraint. Fixed test options: --fixed [inactive] (1/3) Fixed test option with no unit and no constraint set. --fixed-constraint-range -42.17..32768us (in steps of 2) [inactive] (2/3) Fixed test option with unit microsecond and constraint range set. Minimum is -42.17, maximum 32767.9999, and quant is 2.0. --fixed-constraint-word-list -32.7|12.1|42|129.5 [inactive] (3/3) Fixed test option with no unit and constraint word list set. String test options: --string [inactive] (1/3) String test option without constraint. --string-constraint-string-list First entry|Second entry|This is the very long third entry. Maybe the frontend has an idea how to display it [inactive] (2/3) String test option with string list constraint. --string-constraint-long-string-list First entry|Second entry|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46 [inactive] (3/3) String test option with string list constraint. Contains some more entries... Button test options: --button [inactive] (1/1) Button test option. Prints some text... Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: test:0 test:1 gscan2pdf-1.2.3/scanners/FujitsuS510.Lineart0000644000175000017500000001055112053230657017135 0ustar jeffjeffUsage: scanimage [OPTION]... Start image acquisition on a scanner device and write PNM image data to standard output. Parameters are separated by a blank from single-character options (e.g. -d epson) and by a "=" from multi-character options (e.g. --device-name=epson). -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), and %i (index number) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' or `out%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase number in filename by an amount of # --batch-double increment page number by two for 2sided originals being scanned in a single sided scanner --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size change default input buffersize -V, --version print version information Options specific to device `fujitsu:libusb:007:032': Scan Mode: --source ADF Front|ADF Back|ADF Duplex [ADF Front] Selects the scan source (such as a document-feeder). --mode Lineart|Halftone|Gray|Color [Lineart] Selects the scan mode (e.g., lineart, monochrome, or color). --resolution 50..600dpi (in steps of 1) [600] Sets the horizontal resolution of the scanned image. --y-resolution 50..600dpi (in steps of 1) [600] Sets the vertical resolution of the scanned image. Geometry: -l 0..215.872mm (in steps of 0.0211639) [0] Top-left x position of scan area. -t 0..279.364mm (in steps of 0.0211639) [0] Top-left y position of scan area. -x 0..215.872mm (in steps of 0.0211639) [215.872] Width of scan-area. -y 0..279.364mm (in steps of 0.0211639) [279.364] Height of scan-area. --pagewidth 0..221.121mm (in steps of 0.0211639) [215.872] Must be set properly to align scanning window --pageheight 0..863.489mm (in steps of 0.0211639) [279.364] Must be set properly to eject pages Enhancement: --brightness -127..127 (in steps of 1) [0] Controls the brightness of the acquired image. --contrast -127..127 (in steps of 1) [0] Controls the contrast of the acquired image. --threshold 0..255 (in steps of 1) [0] Select minimum-brightness to get a white point --rif[=(yes|no)] [no] Reverse image format Advanced: --compression None|JPEG [None] Enable compressed data. May crash your front-end program --compression-arg 0..7 (in steps of 1) [0] Level of JPEG compression. 1 is small file, 7 is large file. 0 (default) is same as 4 --dfdetect Default|None|Thickness|Length|Both [Default] Enable double feed sensors --dfdiff Default|10mm|15mm|20mm [Default] Difference in page length to trigger double feed sensor --dropoutcolor Default|Red|Green|Blue [Default] One-pass scanners use only one color during gray or binary scanning, useful for colored paper or ink --overscan Default|Off|On [Default] Collect a few mm of background on top side of scan, before paper enters ADF, and increase maximum scan area beyond paper size, to allow collection on remaining sides. May conflict with bgcolor option --sleeptimer 0..60 (in steps of 1) [0] Time in minutes until the internal power supply switches to sleep mode Sensors and Buttons: Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: v4l:/dev/video0 fujitsu:libusb:007:032 gscan2pdf-1.2.3/scanners/hp_scanjet5300c0000644000175000017500000000760712053230657016337 0ustar jeffjeffUsage: scanimage [OPTION]... Start image acquisition on a scanner device and write PNM image data to standard output. -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), and %i (index number) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' or `out%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase number in filename by an amount of # --batch-double increment page number by two for 2sided originals being scanned in a single sided scanner --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size change default input buffersize -V, --version print version information Options specific to device `avision:libusb:001:005': Scan mode: --mode Lineart|Dithered|Gray|12bit Gray|Color|12bit Color [Color] Selects the scan mode (e.g., lineart, monochrome, or color). --resolution 100..1200dpi (in steps of 5) [150] Sets the resolution of the scanned image. --speed 0..4 (in steps of 1) [0] Determines the speed at which the scan proceeds. --preview[=(yes|no)] [no] Request a preview-quality scan. --source Normal|ADF [Normal] Selects the scan source (such as a document-feeder). Geometry: -l 0..216mm [0] Top-left x position of scan area. -t 0..296mm [0] Top-left y position of scan area. -x 0..216mm [216] Width of scan-area. -y 0..296mm [296] Height of scan-area. Enhancement: --brightness -100..100% (in steps of 1) [0] Controls the brightness of the acquired image. --contrast -100..100% (in steps of 1) [0] Controls the contrast of the acquired image. --quality-scan[=(yes|no)] [yes] Turn on quality scanning (slower but better). --quality-cal[=(yes|no)] [yes] Do a quality white-calibration --gamma-table 0..255,... Gamma-correction table. In color mode this option equally affects the red, green, and blue channels simultaneously (i.e., it is an intensity gamma table). --red-gamma-table 0..255,... [inactive] Gamma-correction table for the red band. --green-gamma-table 0..255,... [inactive] Gamma-correction table for the green band. --blue-gamma-table 0..255,... [inactive] Gamma-correction table for the blue band. --frame 0..0 [inactive] Selects the number of the frame to scan --power-save-time [65535] Allows control of the scanner's power save timer, dimming or turning off the light. --nvram-values [Vendor: HP Model: ScanJet 5300C Firmware: 4.00 Serial: 3119ME Manufacturing date: 0-0-0 First scan date: 65535-0-0 Flatbed scans: 65547 Pad scans: -65536 ADF simplex scans: 136183808] Allows access obtaining the scanner's NVRAM values as pretty printed text. Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: avision:libusb:001:005 gscan2pdf-1.2.3/scanners/epson_GT-X7700000644000175000017500000002700012053230657015714 0ustar jeffjeffUsage: scanadf [OPTION]... Start image acquisition on a scanner device and write image data to output files. [ -d | --device-name ] use a given scanner device. [ -h | --help ] display this help message and exit. [ -L | --list-devices ] show available scanner devices. [ -v | --verbose ] give even more status messages. [ -V | --version ] print version information. [ -N | --no-overwrite ] don't overwrite existing files. [ -o | --output-file ] name of file to write image data (%d replacement in output file name). [ -S | --scan-script ] name of script to run after every scan. [ --script-wait ] wait for scripts to finish before exit [ -s | --start-count ] page count of first scanned image. [ -e | --end-count ] last page number to scan. [ -r | --raw ] write raw image data to file. Options specific to device `epkowa:interpreter:003:005': Scan Mode: --mode Binary|Gray|Color [Gray] Selects the scan mode (e.g., lineart, monochrome, or color). --depth 8|16 [8] Number of bits per sample, typical values are 1 for "line-art" and 8 for multibit scans. --halftoning None|Halftone A (Hard Tone)|Halftone B (Soft Tone)|Halftone C (Net Screen) [inactive] Selects the halftone. --dropout None|Red|Green|Blue [inactive] Selects the dropout. --brightness 0..0 [inactive] Selects the brightness. --sharpness -2..2 [inactive] --gamma-correction User defined (Gamma=1.0)|User defined (Gamma=1.8) [User defined (Gamma=1.8)] Selects the gamma correction value from a list of pre-defined devices or the user defined table, which can be downloaded to the scanner --color-correction User defined [inactive] Sets the color correction table for the selected output device. --resolution 200|400|800|1600dpi [200] Sets the resolution of the scanned image. --x-resolution 100|200|400|600|800|1200|1600|3200|6400dpi [200] Sets the horizontal resolution of the scanned image. --y-resolution 80|200|320|400|600|800|1200|1600|2400|3200|4800|6400dpi [320] Sets the vertical resolution of the scanned image. --threshold 0..255 [inactive] Select minimum-brightness to get a white point Advanced: --mirror[=(yes|no)] [inactive] Mirror the image. --speed[=(yes|no)] [no] Determines the speed at which the scan proceeds. --auto-area-segmentation[=(yes|no)] [inactive] --short-resolution[=(yes|no)] [no] Display short resolution list --zoom 50..200 [inactive] Defines the zoom factor the scanner will use --red-gamma-table 0..255,... [0] Gamma-correction table for the red band. --green-gamma-table 0..255,... [0] Gamma-correction table for the green band. --blue-gamma-table 0..255,... [0] Gamma-correction table for the blue band. --wait-for-button[=(yes|no)] [no] After sending the scan command, wait until the button on the scanner is pressed to actually start the scan process. --monitor-button[=(yes|no)] [no] Indicates whether a button on the scanner has been pressed (read-only option). Color correction coefficients: --cct-1 -2..2 [inactive] Controls red level --cct-2 -2..2 [inactive] Adds to red based on green level --cct-3 -2..2 [inactive] Adds to red based on blue level --cct-4 -2..2 [inactive] Adds to green based on red level --cct-5 -2..2 [inactive] Controls green level --cct-6 -2..2 [inactive] Adds to green based on blue level --cct-7 -2..2 [inactive] Adds to blue based on red level --cct-8 -2..2 [inactive] Adds to blue based on green level --cct-9 -2..2 [inactive] Control blue level Preview: --preview[=(yes|no)] [no] Request a preview-quality scan. --preview-speed[=(yes|no)] [no] Geometry: -l 0..215.9mm [0] Top-left x position of scan area. -t 0..297.18mm [0] Top-left y position of scan area. -x 0..215.9mm [215.9] Width of scan-area. -y 0..297.18mm [297.18] Height of scan-area. --quick-format CD|A5 portrait|A5 landscape|Letter|A4|Max [Max] Optional equipment: --source Flatbed|Automatic Document Feeder [Flatbed] Selects the scan source (such as a document-feeder). --auto-eject[=(yes|no)] [yes] Eject document after scanning --film-type Positive Film|Negative Film [inactive] --focus-position Focus on glass|Focus 2.5mm above glass [inactive] Sets the focus position to either the glass or 2.5mm above the glass --bay 1 | 2 | 3 | 4 | 5 | 6 [inactive] Select bay to scan --eject Eject the sheet in the ADF --adf-mode Simplex|Duplex [inactive] Selects the ADF mode (simplex/duplex) --detect-doc-size[=(yes|no)] [inactive] Activates document size auto-detection. The scan area will be set to match the detected document size. Type ``scanadf --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: epkowa:interpreter:003:005 gscan2pdf-1.2.3/scanners/fujitsu0000644000175000017500000000644712053230657015240 0ustar jeffjeffUsage: scanimage [OPTION]... Start image acquisition on a scanner device and write PNM image data to standard output. -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), and %i (index number) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' or `out%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase number in filename by an amount of # --batch-double increment page number by two for 2sided originals being scanned in a single sided scanner --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size change default input buffersize -V, --version print version information scanimage: rounded value of br-x from 215.872 to 215.872 scanimage: rounded value of br-y from 279.364 to 279.364 Options specific to device `fujitsu:libusb:002:004': Scan Mode: --source ADF Front|ADF Back|ADF Duplex [ADF Front] Selects the scan source (such as a document-feeder). --mode Gray|Color [Gray] Selects the scan mode (e.g., lineart, monochrome, or color). --resolution 100..600dpi (in steps of 1) [600] Sets the horizontal resolution of the scanned image. --y-resolution 50..600dpi (in steps of 1) [600] Sets the vertical resolution of the scanned image. Geometry: -l 0..224.846mm (in steps of 0.0211639) [0] Top-left x position of scan area. -t 0..863.489mm (in steps of 0.0211639) [0] Top-left y position of scan area. -x 0..224.846mm (in steps of 0.0211639) [215.872] Width of scan-area. -y 0..863.489mm (in steps of 0.0211639) [279.364] Height of scan-area. --pagewidth 0..224.846mm (in steps of 0.0211639) [215.872] Must be set properly to align scanning window --pageheight 0..863.489mm (in steps of 0.0211639) [279.364] Must be set properly to eject pages Enhancement: --rif[=(yes|no)] [no] Reverse image format Advanced: --dropoutcolor Default|Red|Green|Blue [Default] One-pass scanners use only one color during gray or binary scanning, useful for colored paper or ink --sleeptimer 0..60 (in steps of 1) [0] Time in minutes until the internal power supply switches to sleep mode Sensors and Buttons: Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: fujitsu:libusb:002:004 gscan2pdf-1.2.3/scanners/FujitsuS510.Color0000644000175000017500000001013412053230657016612 0ustar jeffjeffUsage: scanimage [OPTION]... Start image acquisition on a scanner device and write PNM image data to standard output. Parameters are separated by a blank from single-character options (e.g. -d epson) and by a "=" from multi-character options (e.g. --device-name=epson). -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), and %i (index number) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' or `out%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase number in filename by an amount of # --batch-double increment page number by two for 2sided originals being scanned in a single sided scanner --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size change default input buffersize -V, --version print version information Options specific to device `fujitsu:libusb:007:032': Scan Mode: --source ADF Front|ADF Back|ADF Duplex [ADF Front] Selects the scan source (such as a document-feeder). --mode Lineart|Halftone|Gray|Color [Color] Selects the scan mode (e.g., lineart, monochrome, or color). --resolution 50..600dpi (in steps of 1) [600] Sets the horizontal resolution of the scanned image. --y-resolution 50..600dpi (in steps of 1) [600] Sets the vertical resolution of the scanned image. Geometry: -l 0..215.872mm (in steps of 0.0211639) [0] Top-left x position of scan area. -t 0..279.364mm (in steps of 0.0211639) [0] Top-left y position of scan area. -x 0..215.872mm (in steps of 0.0211639) [215.872] Width of scan-area. -y 0..279.364mm (in steps of 0.0211639) [279.364] Height of scan-area. --pagewidth 0..221.121mm (in steps of 0.0211639) [215.872] Must be set properly to align scanning window --pageheight 0..863.489mm (in steps of 0.0211639) [279.364] Must be set properly to eject pages Enhancement: --brightness -127..127 (in steps of 1) [0] Controls the brightness of the acquired image. --contrast -127..127 (in steps of 1) [0] Controls the contrast of the acquired image. --rif[=(yes|no)] [no] Reverse image format Advanced: --compression None|JPEG [None] Enable compressed data. May crash your front-end program --compression-arg 0..7 (in steps of 1) [0] Level of JPEG compression. 1 is small file, 7 is large file. 0 (default) is same as 4 --dfdetect Default|None|Thickness|Length|Both [Default] Enable double feed sensors --dfdiff Default|10mm|15mm|20mm [Default] Difference in page length to trigger double feed sensor --overscan Default|Off|On [Default] Collect a few mm of background on top side of scan, before paper enters ADF, and increase maximum scan area beyond paper size, to allow collection on remaining sides. May conflict with bgcolor option --sleeptimer 0..60 (in steps of 1) [0] Time in minutes until the internal power supply switches to sleep mode Sensors and Buttons: Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: v4l:/dev/video0 fujitsu:libusb:007:032 gscan2pdf-1.2.3/scanners/officejet_5500.lineart0000644000175000017500000000622012053230657017600 0ustar jeffjeffUsage: scanimage [OPTION]... Start image acquisition on a scanner device and write PNM image data to standard output. -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), and %i (index number) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' or `out%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase number in filename by an amount of # --batch-double increment page number by two for 2sided originals being scanned in a single sided scanner --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size change default input buffersize -V, --version print version information Options specific to device `hpaio:/usb/officejet_5500_series?serial=MY42QF209H96': Scan mode: --mode Lineart|Gray|Color [Lineart] Selects the scan mode (e.g., lineart, monochrome, or color). --resolution 75..600dpi [75] Sets the resolution of the scanned image. Advanced: --contrast 0..100 [inactive] Controls the contrast of the acquired image. --compression None [None] Selects the scanner compression method for faster scans, possibly at the expense of image quality. --jpeg-quality 0..100 [inactive] Sets the scanner JPEG compression factor. Larger numbers mean better compression, and smaller numbers mean better image quality. --batch-scan[=(yes|no)] [no] Enables continuous scanning with automatic document feeder (ADF). --source Auto|Flatbed|ADF [Auto] Selects the scan source (such as a document-feeder). Geometry: --length-measurement Unknown|Approximate|Padded [Padded] Selects how the scanned image length is measured and reported, which is impossible to know in advance for scrollfed scans. -l 0..215.9mm [0] Top-left x position of scan area. -t 0..381mm [0] Top-left y position of scan area. -x 0..215.9mm [215.9] Width of scan-area. -y 0..381mm [381] Height of scan-area. Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: v4l:/dev/video2 v4l:/dev/video1 v4l:/dev/video0 hpaio:/usb/officejet_5500_series?serial=MY42QF209H96 gscan2pdf-1.2.3/scanners/laserjet_30200000644000175000017500000000626012053230657016015 0ustar jeffjeffUsage: scanimage [OPTION]... Start image acquisition on a scanner device and write PNM image data to standard output. -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), and %i (index number) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' or `out%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase number in filename by an amount of # --batch-double increment page number by two for 2sided originals being scanned in a single sided scanner --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size change default input buffersize -V, --version print version information Options specific to device `hpaio:/usb/hp_LaserJet_3020?serial=00CNBM044295': Scan mode: --mode Lineart|Gray|Color [Color] Selects the scan mode (e.g., lineart, monochrome, or color). --resolution 75|100|150|200|300|600dpi [75] Sets the resolution of the scanned image. Advanced: --contrast 0..100 [50] Controls the contrast of the acquired image. --compression None|JPEG [JPEG] Selects the scanner compression method for faster scans, possibly at the expense of image quality. --jpeg-quality 0..100 [10] Sets the scanner JPEG compression factor. Larger numbers mean better compression, and smaller numbers mean better image quality. --batch-scan[=(yes|no)] [no] Enables continuous scanning with automatic document feeder (ADF). --source Auto|ADF [Auto] Selects the scan source (such as a document-feeder). --duplex[=(yes|no)] [inactive] Enables scanning on both sides of the page. Geometry: --length-measurement Unknown|Unlimited|Approximate|Padded [Padded] Selects how the scanned image length is measured and reported, which is impossible to know in advance for scrollfed scans. -l 0..228.6mm [0] Top-left x position of scan area. -t 0..381mm [0] Top-left y position of scan area. -x 0..228.6mm [228.6] Width of scan-area. -y 0..381mm [381] Height of scan-area. Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: hpaio:/usb/hp_LaserJet_3020?serial=00CNBM044295 gscan2pdf-1.2.3/scanners/epson10000644000175000017500000001323112053230657014741 0ustar jeffjeffUsage: scanimage [OPTION]... Start image acquisition on a scanner device and write PNM image data to standard output. -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), and %i (index number) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' or `out%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase number in filename by an amount of # --batch-double increment page number by two for 2sided originals being scanned in a single sided scanner --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -h, --help display this help message and exit -v, --verbose give even more status messages -V, --version print version information Options specific to device `epson:libusb:005:007': Scan Mode: --mode Binary|Gray|Color [Binary] Selects the scan mode (e.g., lineart, monochrome, or color). --depth 8|16 [inactive] Number of bits per sample, typical values are 1 for "line-art" and 8 for multibit scans. --halftoning None|Halftone A (Hard Tone)|Halftone B (Soft Tone)|Halftone C (Net Screen)|Dither A (4x4 Bayer)|Dither B (4x4 Spiral)|Dither C (4x4 Net Screen)|Dither D (8x4 Net Screen)|Text Enhanced Technology|Download pattern A|Download pattern B [Halftone A (Hard Tone)] Selects the halftone. --dropout None|Red|Green|Blue [None] Selects the dropout. --brightness -4..3 [0] Selects the brightness. --sharpness -2..2 [0] --gamma-correction Default|User defined|High density printing|Low density printing|High contrast printing [Default] Selects the gamma correction value from a list of pre-defined devices or the user defined table, which can be downloaded to the scanner --color-correction No Correction|User defined|Impact-dot printers|Thermal printers|Ink-jet printers|CRT monitors [CRT monitors] Sets the color correction table for the selected output device. --resolution 50|60|72|75|80|90|100|120|133|144|150|160|175|180|200|216|240|266|300|320|350|360|400|480|600|720|800|900|1200|1600|1800|2400|3200dpi [50] Sets the resolution of the scanned image. --threshold 0..255 [inactive] Select minimum-brightness to get a white point Advanced: --mirror[=(yes|no)] [no] Mirror the image. --speed[=(yes|no)] [no] Determines the speed at which the scan proceeds. --auto-area-segmentation[=(yes|no)] [yes] --short-resolution[=(yes|no)] [no] Display short resolution list --zoom 50..200 [inactive] Defines the zoom factor the scanner will use --red-gamma-table 0..255,... [inactive] Gamma-correction table for the red band. --green-gamma-table 0..255,... [inactive] Gamma-correction table for the green band. --blue-gamma-table 0..255,... [inactive] Gamma-correction table for the blue band. --wait-for-button[=(yes|no)] [no] After sending the scan command, wait until the button on the scanner is pressed to actually start the scan process. Color correction coefficients: --cct-1 -127..127 [inactive] Controls green level --cct-2 -127..127 [inactive] Adds to red based on green level --cct-3 -127..127 [inactive] Adds to blue based on green level --cct-4 -127..127 [inactive] Adds to green based on red level --cct-5 -127..127 [inactive] Controls red level --cct-6 -127..127 [inactive] Adds to blue based on red level --cct-7 -127..127 [inactive] Adds to green based on blue level --cct-8 -127..127 [inactive] Adds to red based on blue level --cct-9 -127..127 [inactive] Controls blue level Preview: --preview[=(yes|no)] [no] Request a preview-quality scan. --preview-speed[=(yes|no)] [no] Geometry: -l 0..215.9mm [0] Top-left x position of scan area. -t 0..297.18mm [0] Top-left y position of scan area. -x 0..215.9mm [215.9] Width of scan-area. -y 0..297.18mm [297.18] Height of scan-area. --quick-format CD|A5 portrait|A5 landscape|Letter|A4|Max [Max] Optional equipment: --source Flatbed|Transparency Unit [Flatbed] Selects the scan source (such as a document-feeder). --auto-eject[=(yes|no)] [inactive] Eject document after scanning --film-type Positive Film|Negative Film [inactive] --focus-position Focus on glass|Focus 2.5mm above glass [Focus on glass] Sets the focus position to either the glass or 2.5mm above the glass --bay 1 | 2 | 3 | 4 | 5 | 6 [inactive] Select bay to scan --eject [inactive] Eject the sheet in the ADF --adf_mode Simplex|Duplex [inactive] Selects the ADF mode (simplex/duplex) Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: epson:libusb:005:007 gscan2pdf-1.2.3/scanners/brother0000644000175000017500000000531512053230657015205 0ustar jeffjeffUsage: scanimage [OPTION]... Start image acquisition on a scanner device and write PNM image data to standard output. -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), and %i (index number) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' or `out%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase number in filename by an amount of # --batch-double increment page number by two for 2sided originals being scanned in a single sided scanner --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size change default input buffersize -V, --version print version information Options specific to device `brother2:net1;dev0': Mode: --mode Black & White|Gray[Error Diffusion]|True Gray|24bit Color|24bit Color[Fast] [24bit Color] Select the scan mode --resolution 100|150|200|300|400|600|1200|2400|4800|9600dpi [200] Sets the resolution of the scanned image. --source FlatBed|Automatic Document Feeder [Automatic Document Feeder] Selects the scan source (such as a document-feeder). --brightness -50..50% (in steps of 1) [inactive] Controls the brightness of the acquired image. --contrast -50..50% (in steps of 1) [inactive] Controls the contrast of the acquired image. Geometry: -l 0..210mm (in steps of 0.0999908) [0] Top-left x position of scan area. -t 0..297mm (in steps of 0.0999908) [0] Top-left y position of scan area. -x 0..210mm (in steps of 0.0999908) [209.981] Width of scan-area. -y 0..297mm (in steps of 0.0999908) [296.973] Height of scan-area. Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: brother2:net1;dev0 gscan2pdf-1.2.3/scanners/dummy_scanner0000644000175000017500000000747512053230657016415 0ustar jeffjeffUsage: scanimage [OPTION]... Start image acquisition on a scanner device and write PNM image data to standard output. -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), and %i (index number) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' or `out%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase number in filename by an amount of # --batch-double increment page number by two for 2sided originals being scanned in a single sided scanner --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size change default input buffersize -V, --version print version information Options specific to device `hpaio:/usb/officejet_5500_series?serial=MY42QF209H96': Scan mode: --mode Lineart|Grayscale|Color [Color] Selects the scan mode (e.g., lineart, monochrome, or color). --resolution 75..600dpi [75] Sets the resolution of the scanned image. Advanced: --contrast 0..100 [inactive] Controls the contrast of the acquired image. --compression None|JPEG [JPEG] Selects the scanner compression method for faster scans, possibly at the expense of image quality. --jpeg-compression-factor 0..100 [10] Sets the scanner JPEG compression factor. Larger numbers mean better compression, and smaller numbers mean better image quality. --batch-scan[=(yes|no)] [no] Guarantees that a "no documents" condition will be returned after the last scanned page, to prevent endless flatbed scans after a batch scan. For some models, option changes in the middle of a batch scan don't take effect until after the last page. --source Auto|Flatbed|ADF [Auto] Selects the desired scan source for models with both flatbed and automatic document feeder (ADF) capabilities. The "Auto" setting means that the ADF will be used if it's loaded, and the flatbed (if present) will be used otherwise. --duplex[=(yes|no)] [inactive] Enables scanning on both sides of the page for models with duplex-capable document feeders. For pages printed in "book"-style duplex mode, one side will be scanned upside-down. This feature is experimental. Geometry: --length-measurement Unknown|Approximate|Padded [Padded] Selects how the scanned image length is measured and reported, which is impossible to know in advance for scrollfed scans. -l 0..215.9mm [0] Top-left x position of scan area. -t 0..381mm [0] Top-left y position of scan area. -x 0..115.9mm [215.9] Width of scan-area. -y 0..181mm [381] Height of scan-area. Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: v4l:/dev/video1 v4l:/dev/video0 hpaio:/usb/officejet_5500_series?serial=MY42QF209H96 gscan2pdf-1.2.3/scanners/Dell_Laser_MFP_1600n0000644000175000017500000000370612053230657017076 0ustar jeffjeffUsage: scanimage [OPTION]... Start image acquisition on a scanner device and write PNM image data to standard output. Parameters are separated by a blank from single-character options (e.g. -d epson) and by a "=" from multi-character options (e.g. --device-name=epson). -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), and %i (index number) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' or `out%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase number in filename by an amount of # --batch-double increment page number by two for 2sided originals being scanned in a single sided scanner --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size change default input buffersize -V, --version print version information Options specific to device `dell1600n_net:192.168.19.136': Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: dell1600n_net:192.168.19.136 gscan2pdf-1.2.3/scanners/epson12000000644000175000017500000001331712053230657015170 0ustar jeffjeffUsage: scanimage [OPTION]... Start image acquisition on a scanner device and write PNM image data to standard output. -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), and %i (index number) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' or `out%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase number in filename by an amount of # --batch-double increment page number by two for 2sided originals being scanned in a single sided scanner --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size change default input buffersize -V, --version print version information Options specific to device `net:esche:epson:libusb:001:006': Scan Mode: --mode Binary|Gray|Color [Binary] Selects the scan mode (e.g., lineart, monochrome, or color). --depth 8 [inactive] Number of bits per sample, typical values are 1 for "line-art" and 8 for multibit scans. --halftoning None|Halftone A (Hard Tone)|Halftone B (Soft Tone)|Halftone C (Net Screen)|Dither A (4x4 Bayer)|Dither B (4x4 Spiral)|Dither C (4x4 Net Screen)|Dither D (8x4 Net Screen)|Text Enhanced Technology|Download pattern A|Download pattern B [Halftone A (Hard Tone)] Selects the halftone. --dropout None|Red|Green|Blue [None] Selects the dropout. --brightness -4..3 [0] Selects the brightness. --sharpness -2..2 [0] --gamma-correction Default|User defined|High density printing|Low density printing|High contrast printing [Default] Selects the gamma correction value from a list of pre-defined devices or the user defined table, which can be downloaded to the scanner --color-correction No Correction|User defined|Impact-dot printers|Thermal printers|Ink-jet printers|CRT monitors [CRT monitors] Sets the color correction table for the selected output device. --resolution 50|60|72|75|80|90|100|120|133|144|150|160|175|180|200|216|240|266|300|320|350|360|400|480|600|720|800|900|1200|1600|1800|2400dpi [50] Sets the resolution of the scanned image. --threshold 0..255 [128] Select minimum-brightness to get a white point Advanced: --mirror[=(yes|no)] [no] Mirror the image. --speed[=(yes|no)] [no] Determines the speed at which the scan proceeds. --auto-area-segmentation[=(yes|no)] [yes] --short-resolution[=(yes|no)] [no] Display short resolution list --zoom 50..200 [inactive] Defines the zoom factor the scanner will use --red-gamma-table 0..255,... [inactive] Gamma-correction table for the red band. --green-gamma-table 0..255,... [inactive] Gamma-correction table for the green band. --blue-gamma-table 0..255,... [inactive] Gamma-correction table for the blue band. --wait-for-button[=(yes|no)] [no] After sending the scan command, wait until the button on the scanner is pressed to actually start the scan process. Color correction coefficients: --cct-1 -127..127 [inactive] Controls green level --cct-2 -127..127 [inactive] Adds to red based on green level --cct-3 -127..127 [inactive] Adds to blue based on green level --cct-4 -127..127 [inactive] Adds to green based on red level --cct-5 -127..127 [inactive] Controls red level --cct-6 -127..127 [inactive] Adds to blue based on red level --cct-7 -127..127 [inactive] Adds to green based on blue level --cct-8 -127..127 [inactive] Adds to red based on blue level --cct-9 -127..127 [inactive] Controls blue level Preview: --preview[=(yes|no)] [no] Request a preview-quality scan. --preview-speed[=(yes|no)] [no] Geometry: -l 0..215.9mm [0] Top-left x position of scan area. -t 0..297.18mm [0] Top-left y position of scan area. -x 0..215.9mm [215.9] Width of scan-area. -y 0..297.18mm [297.18] Height of scan-area. --quick-format CD|A5 portrait|A5 landscape|Letter|A4|Max [Max] Optional equipment: --source Flatbed [inactive] Selects the scan source (such as a document-feeder). --auto-eject[=(yes|no)] [inactive] Eject document after scanning --film-type Positive Film|Negative Film [inactive] --focus-position Focus on glass|Focus 2.5mm above glass [inactive] Sets the focus position to either the glass or 2.5mm above the glass --bay 1 | 2 | 3 | 4 | 5 | 6 [inactive] Select bay to scan --eject [inactive] Eject the sheet in the ADF --adf_mode Simplex|Duplex [inactive] Selects the ADF mode (simplex/duplex) Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: net:esche:epson:libusb:001:006 gscan2pdf-1.2.3/scanners/niash0000644000175000017500000000520112053230657014634 0ustar jeffjeffUsage: scanimage [OPTION]... Start image acquisition on a scanner device and write PNM image data to standard output. -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), and %i (index number) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' or `out%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase number in filename by an amount of # --batch-double increment page number by two for 2sided originals being scanned in a single sided scanner --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size change default input buffersize -V, --version print version information Options specific to device `niash:libusb:003:002': Geometry: -l 0..220mm (in steps of 1) [0] Top-left x position of scan area. -t 0..297mm (in steps of 1) [0] Top-left y position of scan area. -x 0..220mm (in steps of 1) [210] Width of scan-area. -y 0..297mm (in steps of 1) [290] Height of scan-area. --resolution 75|150|300|600dpi [150] Sets the resolution of the scanned image. Image: --gamma-table 0..255,... (in steps of 1) Gamma-correction table. In color mode this option equally affects the red, green, and blue channels simultaneously (i.e., it is an intensity gamma table). Scan Mode: --mode Color|Gray|Lineart [Color] Selects the scan mode (e.g., lineart, monochrome, or color). Enhancement: --threshold 0..100% (in steps of 1) [inactive] Select minimum-brightness to get a white point Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: niash:libusb:003:002 gscan2pdf-1.2.3/scanners/psc13150000644000175000017500000000742512053230657014643 0ustar jeffjeffUsage: scanimage [OPTION]... Start image acquisition on a scanner device and write PNM image data to standard output. -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), and %i (index number) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' or `out%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase number in filename by an amount of # --batch-double increment page number by two for 2sided originals being scanned in a single sided scanner --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size change default input buffersize -V, --version print version information Options specific to device `hpaio:/usb/psc_1310_series_?serial=MY41J1D14PO2': Scan mode: --mode Lineart|Grayscale|Color [Color] Selects the scan mode (e.g., lineart, monochrome, or color). --resolution 75..600dpi [75] Sets the resolution of the scanned image. Advanced: --contrast 0..100 [inactive] Controls the contrast of the acquired image. --compression None|JPEG [JPEG] Selects the scanner compression method for faster scans, possibly at the expense of image quality. --jpeg-compression-factor 0..100 [10] Sets the scanner JPEG compression factor. Larger numbers mean better compression, and smaller numbers mean better image quality. --batch-scan[=(yes|no)] [no] Guarantees that a "no documents" condition will be returned after the last scanned page, to prevent endless flatbed scans after a batch scan. For some models, option changes in the middle of a batch scan don't take effect until after the last page. --source Flatbed [Flatbed] Selects the desired scan source for models with both flatbed and automatic document feeder (ADF) capabilities. The "Auto" setting means that the ADF will be used if it's loaded, and the flatbed (if present) will be used otherwise. --duplex[=(yes|no)] [inactive] Enables scanning on both sides of the page for models with duplex-capable document feeders. For pages printed in "book"-style duplex mode, one side will be scanned upside-down. This feature is experimental. Geometry: --length-measurement Unknown|Approximate|Padded [Padded] Selects how the scanned image length is measured and reported, which is impossible to know in advance for scrollfed scans. -l 0..215.9mm [0] Top-left x position of scan area. -t 0..296.926mm [0] Top-left y position of scan area. -x 0..215.9mm [215.9] Width of scan-area. -y 0..296.926mm [296.926] Height of scan-area. Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: hpaio:/usb/psc_1310_series_?serial=MY41J1D14PO2 gscan2pdf-1.2.3/scanners/hp_scanjet5470c0000644000175000017500000000474312053230657016345 0ustar jeffjeffUsage: scanimage [OPTION]... Start image acquisition on a scanner device and write PNM image data to standard output. -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), and %i (index number) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' or `out%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase number in filename by an amount of # --batch-double increment page number by two for 2sided originals being scanned in a single sided scanner --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size change default input buffersize -V, --version print version information Options specific to device `hp5400:libusb:002:002': Geometry: -l 0..220mm (in steps of 1) [5] Top-left x position of scan area. -t 0..300mm (in steps of 1) [52] Top-left y position of scan area. -x 0..215mm (in steps of 1) [220] Width of scan-area. -y 0..248mm (in steps of 1) [300] Height of scan-area. --resolution 75|150|300|600|1200dpi [75] Sets the resolution of the scanned image. Image: --red-gamma-table 0..65535,... (in steps of 1) Gamma-correction table for the red band. --green-gamma-table 0..65535,... (in steps of 1) Gamma-correction table for the green band. --blue-gamma-table 0..65535,... (in steps of 1) Gamma-correction table for the blue band. Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: hp:libusb:001:002 gscan2pdf-1.2.3/scanners/officejet_5500.gray0000644000175000017500000000621412053230657017107 0ustar jeffjeffUsage: scanimage [OPTION]... Start image acquisition on a scanner device and write PNM image data to standard output. -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), and %i (index number) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' or `out%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase number in filename by an amount of # --batch-double increment page number by two for 2sided originals being scanned in a single sided scanner --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size change default input buffersize -V, --version print version information Options specific to device `hpaio:/usb/officejet_5500_series?serial=MY42QF209H96': Scan mode: --mode Lineart|Gray|Color [Gray] Selects the scan mode (e.g., lineart, monochrome, or color). --resolution 75..600dpi [75] Sets the resolution of the scanned image. Advanced: --contrast 0..100 [inactive] Controls the contrast of the acquired image. --compression None|JPEG [JPEG] Selects the scanner compression method for faster scans, possibly at the expense of image quality. --jpeg-quality 0..100 [10] Sets the scanner JPEG compression factor. Larger numbers mean better compression, and smaller numbers mean better image quality. --batch-scan[=(yes|no)] [no] Enables continuous scanning with automatic document feeder (ADF). --source Auto|Flatbed|ADF [Auto] Selects the scan source (such as a document-feeder). Geometry: --length-measurement Unknown|Approximate|Padded [Padded] Selects how the scanned image length is measured and reported, which is impossible to know in advance for scrollfed scans. -l 0..215.9mm [0] Top-left x position of scan area. -t 0..381mm [0] Top-left y position of scan area. -x 0..215.9mm [215.9] Width of scan-area. -y 0..381mm [381] Height of scan-area. Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: v4l:/dev/video2 v4l:/dev/video1 v4l:/dev/video0 hpaio:/usb/officejet_5500_series?serial=MY42QF209H96 gscan2pdf-1.2.3/scanners/Brother_MFC-8860DN0000644000175000017500000000534212053230657016457 0ustar jeffjeffUsage: scanimage [OPTION]... Start image acquisition on a scanner device and write PNM image data to standard output. -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), and %i (index number) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' or `out%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase number in filename by an amount of # --batch-double increment page number by two for 2sided originals being scanned in a single sided scanner --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size change default input buffersize -V, --version print version information Options specific to device `brother2:net1;dev0': Mode: --mode Black & White|Gray[Error Diffusion]|True Gray|24bit Color|24bit Color[Fast] [24bit Color] Select the scan mode --resolution 100|150|200|300|400|600|1200|2400|4800|9600dpi [200] Sets the resolution of the scanned image. --source FlatBed|Automatic Document Feeder|Automatic Document Feeder(Duplex) [Automatic Document Feeder] Selects the scan source (such as a document-feeder). --brightness -50..50% (in steps of 1) [inactive] Controls the brightness of the acquired image. --contrast -50..50% (in steps of 1) [inactive] Controls the contrast of the acquired image. Geometry: -l 0..215.9mm (in steps of 0.0999908) [0] Top-left x position of scan area. -t 0..355.6mm (in steps of 0.0999908) [0] Top-left y position of scan area. -x 0..215.9mm (in steps of 0.0999908) [215.88] Width of scan-area. -y 0..355.6mm (in steps of 0.0999908) [355.567] Height of scan-area. Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: brother2:net1;dev0 gscan2pdf-1.2.3/scanners/snapscanS510.Lineart0000644000175000017500000001055212053230657017313 0ustar jeffjeffUsage: scanimage [OPTION]... Start image acquisition on a scanner device and write PNM image data to standard output. Parameters are separated by a blank from single-character options (e.g. -d epson) and by a "=" from multi-character options (e.g. --device-name=epson). -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), and %i (index number) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' or `out%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase number in filename by an amount of # --batch-double increment page number by two for 2sided originals being scanned in a single sided scanner --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size change default input buffersize -V, --version print version information Options specific to device `fujitsu:libusb:007:032': Scan Mode: --source ADF Front|ADF Back|ADF Duplex [ADF Front] Selects the scan source (such as a document-feeder). --mode Lineart|Halftone|Gray|Color [Lineart] Selects the scan mode (e.g., lineart, monochrome, or color). --resolution 50..600dpi (in steps of 1) [600] Sets the horizontal resolution of the scanned image. --y-resolution 50..600dpi (in steps of 1) [600] Sets the vertical resolution of the scanned image. Geometry: -l 0..215.872mm (in steps of 0.0211639) [0] Top-left x position of scan area. -t 0..279.364mm (in steps of 0.0211639) [0] Top-left y position of scan area. -x 0..215.872mm (in steps of 0.0211639) [215.872] Width of scan-area. -y 0..279.364mm (in steps of 0.0211639) [279.364] Height of scan-area. --pagewidth 0..221.121mm (in steps of 0.0211639) [215.872] Must be set properly to align scanning window --pageheight 0..863.489mm (in steps of 0.0211639) [279.364] Must be set properly to eject pages Enhancement: --brightness -127..127 (in steps of 1) [0] Controls the brightness of the acquired image. --contrast -127..127 (in steps of 1) [0] Controls the contrast of the acquired image. --threshold 0..255 (in steps of 1) [0] Select minimum-brightness to get a white point --rif[=(yes|no)] [no] Reverse image format Advanced: --compression None|JPEG [None] Enable compressed data. May crash your front-end program --compression-arg 0..7 (in steps of 1) [0] Level of JPEG compression. 1 is small file, 7 is large file. 0 (default) is same as 4 --dfdetect Default|None|Thickness|Length|Both [Default] Enable double feed sensors --dfdiff Default|10mm|15mm|20mm [Default] Difference in page length to trigger double feed sensor --dropoutcolor Default|Red|Green|Blue [Default] One-pass scanners use only one color during gray or binary scanning, useful for colored paper or ink --overscan Default|Off|On [Default] Collect a few mm of background on top side of scan, before paper enters ADF, and increase maximum scan area beyond paper size, to allow collection on remaining sides. May conflict with bgcolor option --sleeptimer 0..60 (in steps of 1) [0] Time in minutes until the internal power supply switches to sleep mode Sensors and Buttons: Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: v4l:/dev/video0 fujitsu:libusb:007:032 gscan2pdf-1.2.3/scanners/epson_34900000644000175000017500000001327012053230657015342 0ustar jeffjeffUsage: scanimage [OPTION]... Start image acquisition on a scanner device and write PNM image data to standard output. -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), and %i (index number) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' or `out%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase number in filename by an amount of # --batch-double increment page number by two for 2sided originals being scanned in a single sided scanner --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size change default input buffersize -V, --version print version information Options specific to device `snapscan:libusb:005:007': Scan Mode: --resolution auto||50|150|200|240|266|300|350|360|400|600|720|800|1200|1600|3200dpi [300] Sets the resolution of the scanned image. --preview[=(auto|yes|no)] [no] Request a preview-quality scan. --mode auto|Color|Gray|Lineart [Color] Selects the scan mode (e.g., lineart, monochrome, or color). --preview-mode auto|Auto|Color|Gray|Lineart [Auto] Select the mode for previews. Greyscale previews usually give the best combination of speed and detail. --high-quality[=(auto|yes|no)] [no] Highest quality but lower speed --source auto|Flatbed|Transparency Adapter [Flatbed] Selects the scan source (such as a document-feeder). Geometry: -l auto|0..216mm [0] Top-left x position of scan area. -t auto|0..297mm [0] Top-left y position of scan area. -x auto|0..216mm [216] Width of scan-area. -y auto|0..297mm [297] Height of scan-area. --predef-window None|6x4 (inch)|8x10 (inch)|8.5x11 (inch) [None] Provides standard scanning areas for photographs, printed pages and the like. Enhancement: --depth 8|16bit [8] Number of bits per sample, typical values are 1 for "line-art" and 8 for multibit scans. --quality-cal[=(yes|no)] [yes] Do a quality white-calibration --halftoning[=(yes|no)] [inactive] Selects whether the acquired image should be halftoned (dithered). --halftone-pattern DispersedDot8x8|DispersedDot16x16 [inactive] Defines the halftoning (dithering) pattern for scanning halftoned images. --custom-gamma[=(yes|no)] [no] Determines whether a builtin or a custom gamma-table should be used. --analog-gamma-bind[=(yes|no)] [no] In RGB-mode use same values for each color --analog-gamma 0..4 [inactive] Analog gamma-correction --analog-gamma-r 0..4 [1.79999] Analog gamma-correction for red --analog-gamma-g 0..4 [1.79999] Analog gamma-correction for green --analog-gamma-b 0..4 [1.79999] Analog gamma-correction for blue --gamma-table 0..65535,... (in steps of 1) [inactive] Gamma-correction table. In color mode this option equally affects the red, green, and blue channels simultaneously (i.e., it is an intensity gamma table). --red-gamma-table 0..65535,... (in steps of 1) [inactive] Gamma-correction table for the red band. --green-gamma-table 0..65535,... (in steps of 1) [inactive] Gamma-correction table for the green band. --blue-gamma-table 0..65535,... (in steps of 1) [inactive] Gamma-correction table for the blue band. --negative[=(auto|yes|no)] [inactive] Swap black and white --threshold 0..100% (in steps of 1) [inactive] Select minimum-brightness to get a white point --brightness -400..400% (in steps of 1) [0] Controls the brightness of the acquired image. --contrast -100..400% (in steps of 1) [0] Controls the contrast of the acquired image. Advanced: --rgb-lpr auto|1..50 (in steps of 1) [4] Number of scan lines to request in a SCSI read. Changing this parameter allows you to tune the speed at which data is read from the scanner during scans. If this is set too low, the scanner will have to stop periodically in the middle of a scan; if it's set too high, X-based frontends may stop responding to X events and your system could bog down. --gs-lpr auto|1..50 (in steps of 1) [inactive] Number of scan lines to request in a SCSI read. Changing this parameter allows you to tune the speed at which data is read from the scanner during scans. If this is set too low, the scanner will have to stop periodically in the middle of a scan; if it's set too high, X-based frontends may stop responding to X events and your system could bog down. Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: snapscan:libusb:005:007 gscan2pdf-1.2.3/scanners/Brother_DCP-70250000644000175000017500000000531012053230657016221 0ustar jeffjeffUsage: scanimage [OPTION]... Start image acquisition on a scanner device and write PNM image data to standard output. -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), and %i (index number) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' or `out%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase number in filename by an amount of # --batch-double increment page number by two for 2sided originals being scanned in a single sided scanner --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size change default input buffersize -V, --version print version information Options specific to device `brother2:bus5;dev1': Mode: --mode Black & White|Gray[Error Diffusion]|True Gray|24bit Color|24bit Color[Fast] [Black & White] Select the scan mode --resolution 100|150|200|300|400|600|1200|2400|4800|9600dpi [200] Sets the resolution of the scanned image. --source FlatBed|Automatic Document Feeder [Automatic Document Feeder] Selects the scan source (such as a document-feeder). --brightness -50..50% (in steps of 1) [0] Controls the brightness of the acquired image. --contrast -50..50% (in steps of 1) [inactive] Controls the contrast of the acquired image. Geometry: -l 0..210mm (in steps of 0.0999908) [0] Top-left x position of scan area. -t 0..297mm (in steps of 0.0999908) [0] Top-left y position of scan area. -x 0..210mm (in steps of 0.0999908) [209.981] Width of scan-area. -y 0..297mm (in steps of 0.0999908) [296.973] Height of scan-area. Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: brother2:bus5;dev1 gscan2pdf-1.2.3/scanners/canonFB630u0000644000175000017500000000455412053230657015470 0ustar jeffjeffUsage: scanimage [OPTION]... Start image acquisition on a scanner device and write PNM image data to standard output. -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), and %i (index number) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' or `out%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase number in filename by an amount of # --batch-double increment page number by two for 2sided originals being scanned in a single sided scanner --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size change default input buffersize -V, --version print version information Options specific to device `canon630u:libusb:002:005': --resolution auto||75|150|300|600dpi [75] Sets the resolution of the scanned image. --cal[=(yes|no)] [no] Force scanner calibration before scan --gain 0..64 (in steps of 1) [1] Increase or decrease the analog gain of the CCD array --gamma [1.59999] Selects the gamma corrected transfer curve -l 0..215.9mm [0] Top-left x position of scan area. -t 0..296.333mm [0] Top-left y position of scan area. -x 0..215.9mm [215.9] Width of scan-area. -y 0..296.333mm [296.3] Height of scan-area. Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: canon_pp:parport0 gscan2pdf-1.2.3/scanners/canonLiDE250000644000175000017500000001134712053230657015505 0ustar jeffjeffUsage: scanimage [OPTION]... Start image acquisition on a scanner device and write PNM image data to standard output. -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), and %i (index number) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' or `out%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase number in filename by an amount of # --batch-double increment page number by two for 2sided originals being scanned in a single sided scanner --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size change default input buffersize -V, --version print version information Options specific to device `plustek:libusb:001:002': Scan Mode: --mode Lineart|Gray|Color [Color] Selects the scan mode (e.g., lineart, monochrome, or color). --depth 8|16 [8] Number of bits per sample, typical values are 1 for "line-art" and 8 for multibit scans. --source Normal|Transparency|Negative [inactive] Selects the scan source (such as a document-feeder). --resolution 50..2400dpi [50] Sets the resolution of the scanned image. --preview[=(yes|no)] [no] Request a preview-quality scan. Geometry: -l 0..215mm [0] Top-left x position of scan area. -t 0..297mm [0] Top-left y position of scan area. -x 0..215mm [103] Width of scan-area. -y 0..297mm [76.21] Height of scan-area. Enhancement: --brightness -100..100% (in steps of 1) [0] Controls the brightness of the acquired image. --contrast -100..100% (in steps of 1) [0] Controls the contrast of the acquired image. --custom-gamma[=(yes|no)] [no] Determines whether a builtin or a custom gamma-table should be used. --gamma-table 0..255,... [inactive] Gamma-correction table. In color mode this option equally affects the red, green, and blue channels simultaneously (i.e., it is an intensity gamma table). --red-gamma-table 0..255,... [inactive] Gamma-correction table for the red band. --green-gamma-table 0..255,... [inactive] Gamma-correction table for the green band. --blue-gamma-table 0..255,... [inactive] Gamma-correction table for the blue band. Device-Settings: --lamp-switch[=(yes|no)] [no] Manually switching the lamp(s). --lampoff-time 0..999 (in steps of 1) [300] Lampoff-time in seconds. --lamp-off-at-exit[=(yes|no)] [yes] Turn off lamp when program exits --warmup-time -1..999 (in steps of 1) [inactive] Warmup-time in seconds. --calibration-cache[=(yes|no)] [no] Enables or disables calibration data cache. --speedup-switch[=(yes|no)] [inactive] Enables or disables speeding up sensor movement. --calibrate [inactive] Performs calibration Analog frontend: --red-gain -1..63 (in steps of 1) [-1] Red gain value of the AFE --green-gain -1..63 (in steps of 1) [-1] Green gain value of the AFE --blue-gain -1..63 (in steps of 1) [-1] Blue gain value of the AFE --red-offset -1..63 (in steps of 1) [-1] Red offset value of the AFE --green-offset -1..63 (in steps of 1) [-1] Green offset value of the AFE --blue-offset -1..63 (in steps of 1) [-1] Blue offset value of the AFE --redlamp-off -1..16363 (in steps of 1) [-1] Defines red lamp off parameter --greenlamp-off -1..16363 (in steps of 1) [-1] Defines green lamp off parameter --bluelamp-off -1..16363 (in steps of 1) [-1] Defines blue lamp off parameter Buttons: Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: plustek:libusb:001:002 This device is a Canon LiDE25 USB flatbed scannergscan2pdf-1.2.3/scanners/officejet_5500.Lineart0000644000175000017500000000747012053230657017550 0ustar jeffjeffUsage: scanimage [OPTION]... Start image acquisition on a scanner device and write PNM image data to standard output. -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), and %i (index number) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' or `out%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase number in filename by an amount of # --batch-double increment page number by two for 2sided originals being scanned in a single sided scanner --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size change default input buffersize -V, --version print version information Options specific to device `hpaio:/usb/officejet_5500_series?serial=MY42QF209H96': Scan mode: --mode Lineart|Grayscale|Color [Color] Selects the scan mode (e.g., lineart, monochrome, or color). --resolution 75..600dpi [75] Sets the resolution of the scanned image. Advanced: --contrast 0..100 [inactive] Controls the contrast of the acquired image. --compression None [None] Selects the scanner compression method for faster scans, possibly at the expense of image quality. --jpeg-compression-factor 0..100 [10] Sets the scanner JPEG compression factor. Larger numbers mean better compression, and smaller numbers mean better image quality. --batch-scan[=(yes|no)] [no] Guarantees that a "no documents" condition will be returned after the last scanned page, to prevent endless flatbed scans after a batch scan. For some models, option changes in the middle of a batch scan don't take effect until after the last page. --source Auto|Flatbed|ADF [Auto] Selects the desired scan source for models with both flatbed and automatic document feeder (ADF) capabilities. The "Auto" setting means that the ADF will be used if it's loaded, and the flatbed (if present) will be used otherwise. --duplex[=(yes|no)] [inactive] Enables scanning on both sides of the page for models with duplex-capable document feeders. For pages printed in "book"-style duplex mode, one side will be scanned upside-down. This feature is experimental. Geometry: --length-measurement Unknown|Approximate|Padded [Padded] Selects how the scanned image length is measured and reported, which is impossible to know in advance for scrollfed scans. -l 0..215.9mm [0] Top-left x position of scan area. -t 0..381mm [0] Top-left y position of scan area. -x 0..215.9mm [215.9] Width of scan-area. -y 0..381mm [381] Height of scan-area. Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: v4l:/dev/video1 v4l:/dev/video0 hpaio:/usb/officejet_5500_series?serial=MY42QF209H96 gscan2pdf-1.2.3/scanners/snapscanS510.Color0000644000175000017500000001013512053230657016770 0ustar jeffjeffUsage: scanimage [OPTION]... Start image acquisition on a scanner device and write PNM image data to standard output. Parameters are separated by a blank from single-character options (e.g. -d epson) and by a "=" from multi-character options (e.g. --device-name=epson). -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), and %i (index number) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' or `out%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase number in filename by an amount of # --batch-double increment page number by two for 2sided originals being scanned in a single sided scanner --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size change default input buffersize -V, --version print version information Options specific to device `fujitsu:libusb:007:032': Scan Mode: --source ADF Front|ADF Back|ADF Duplex [ADF Front] Selects the scan source (such as a document-feeder). --mode Lineart|Halftone|Gray|Color [Color] Selects the scan mode (e.g., lineart, monochrome, or color). --resolution 50..600dpi (in steps of 1) [600] Sets the horizontal resolution of the scanned image. --y-resolution 50..600dpi (in steps of 1) [600] Sets the vertical resolution of the scanned image. Geometry: -l 0..215.872mm (in steps of 0.0211639) [0] Top-left x position of scan area. -t 0..279.364mm (in steps of 0.0211639) [0] Top-left y position of scan area. -x 0..215.872mm (in steps of 0.0211639) [215.872] Width of scan-area. -y 0..279.364mm (in steps of 0.0211639) [279.364] Height of scan-area. --pagewidth 0..221.121mm (in steps of 0.0211639) [215.872] Must be set properly to align scanning window --pageheight 0..863.489mm (in steps of 0.0211639) [279.364] Must be set properly to eject pages Enhancement: --brightness -127..127 (in steps of 1) [0] Controls the brightness of the acquired image. --contrast -127..127 (in steps of 1) [0] Controls the contrast of the acquired image. --rif[=(yes|no)] [no] Reverse image format Advanced: --compression None|JPEG [None] Enable compressed data. May crash your front-end program --compression-arg 0..7 (in steps of 1) [0] Level of JPEG compression. 1 is small file, 7 is large file. 0 (default) is same as 4 --dfdetect Default|None|Thickness|Length|Both [Default] Enable double feed sensors --dfdiff Default|10mm|15mm|20mm [Default] Difference in page length to trigger double feed sensor --overscan Default|Off|On [Default] Collect a few mm of background on top side of scan, before paper enters ADF, and increase maximum scan area beyond paper size, to allow collection on remaining sides. May conflict with bgcolor option --sleeptimer 0..60 (in steps of 1) [0] Time in minutes until the internal power supply switches to sleep mode Sensors and Buttons: Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: v4l:/dev/video0 fujitsu:libusb:007:032 gscan2pdf-1.2.3/scanners/xp4500000644000175000017500000000736612053230657014430 0ustar jeffjeffUsage: scanimage [OPTION]... Start image acquisition on a scanner device and write PNM image data to standard output. -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), and %i (index number) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' or `out%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase number in filename by an amount of # --batch-double increment page number by two for 2sided originals being scanned in a single sided scanner --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size change default input buffersize -V, --version print version information Options specific to device `avision:libusb:002:007': Scan mode: --mode Lineart|Dithered|Gray|16bit Gray|Color|16bit Color [Color] Selects the scan mode (e.g., lineart, monochrome, or color). --resolution 50..600dpi (in steps of 5) [150] Sets the resolution of the scanned image. --speed 0..4 (in steps of 1) [inactive] Determines the speed at which the scan proceeds. --preview[=(yes|no)] [no] Request a preview-quality scan. --source ADF [ADF] Selects the scan source (such as a document-feeder). Geometry: -l 0..216mm [0] Top-left x position of scan area. -t 0..297mm [0] Top-left y position of scan area. -x 0..216mm [216] Width of scan-area. -y 0..297mm [297] Height of scan-area. Enhancement: --brightness -100..100% (in steps of 1) [0] Controls the brightness of the acquired image. --contrast -100..100% (in steps of 1) [0] Controls the contrast of the acquired image. --quality-scan[=(yes|no)] [yes] Turn on quality scanning (slower but better). --quality-cal[=(yes|no)] [yes] Do a quality white-calibration --gamma-table 0..255,... Gamma-correction table. In color mode this option equally affects the red, green, and blue channels simultaneously (i.e., it is an intensity gamma table). --red-gamma-table 0..255,... [inactive] Gamma-correction table for the red band. --green-gamma-table 0..255,... [inactive] Gamma-correction table for the green band. --blue-gamma-table 0..255,... [inactive] Gamma-correction table for the blue band. --frame 0..0 [inactive] Selects the number of the frame to scan --power-save-time [0] Allows control of the scanner's power save timer, dimming or turning off the light. --nvram-values [Vendor: VISIONER Model: Strobe XP 450 Firmware: 1.05] Allows access obtaining the scanner's NVRAM values as pretty printed text. Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: avision:libusb:002:007 gscan2pdf-1.2.3/scanners/snapscan0000644000175000017500000001323212053230657015343 0ustar jeffjeffUsage: scanimage [OPTION]... Start image acquisition on a scanner device and write PNM image data to standard output. -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), and %i (index number) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' or `out%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase number in filename by an amount of # --batch-double increment page number by two for 2sided originals being scanned in a single sided scanner --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size change default input buffersize -V, --version print version information Options specific to device `snapscan:/dev/uscanner0': Scan Mode: --resolution auto||50|75|100|150|200|300|450|600dpi [300] Sets the resolution of the scanned image. --preview[=(auto|yes|no)] [no] Request a preview-quality scan. --mode auto|Color|Halftone|Gray|Lineart [Color] Selects the scan mode (e.g., lineart, monochrome, or color). --preview-mode auto|Auto|Color|Halftone|Gray|Lineart [Auto] Select the mode for previews. Greyscale previews usually give the best combination of speed and detail. --high-quality[=(auto|yes|no)] [no] Highest quality but lower speed --source auto|Flatbed [inactive] Selects the scan source (such as a document-feeder). Geometry: -l auto|0..216mm [0] Top-left x position of scan area. -t auto|0..297mm [0] Top-left y position of scan area. -x auto|0..216mm [216] Width of scan-area. -y auto|0..297mm [297] Height of scan-area. --predef-window None|6x4 (inch)|8x10 (inch)|8.5x11 (inch) [None] Provides standard scanning areas for photographs, printed pages and the like. Enhancement: --depth 8bit [inactive] Number of bits per sample, typical values are 1 for "line-art" and 8 for multibit scans. --quality-cal[=(yes|no)] [yes] Do a quality white-calibration --halftoning[=(yes|no)] [inactive] Selects whether the acquired image should be halftoned (dithered). --halftone-pattern DispersedDot8x8|DispersedDot16x16 [inactive] Defines the halftoning (dithering) pattern for scanning halftoned images. --custom-gamma[=(yes|no)] [no] Determines whether a builtin or a custom gamma-table should be used. --analog-gamma-bind[=(yes|no)] [no] In RGB-mode use same values for each color --analog-gamma 0..4 [inactive] Analog gamma-correction --analog-gamma-r 0..4 [1.79999] Analog gamma-correction for red --analog-gamma-g 0..4 [1.79999] Analog gamma-correction for green --analog-gamma-b 0..4 [1.79999] Analog gamma-correction for blue --gamma-table 0..65535,... (in steps of 1) [inactive] Gamma-correction table. In color mode this option equally affects the red, green, and blue channels simultaneously (i.e., it is an intensity gamma table). --red-gamma-table 0..65535,... (in steps of 1) [inactive] Gamma-correction table for the red band. --green-gamma-table 0..65535,... (in steps of 1) [inactive] Gamma-correction table for the green band. --blue-gamma-table 0..65535,... (in steps of 1) [inactive] Gamma-correction table for the blue band. --negative[=(auto|yes|no)] [inactive] Swap black and white --threshold 0..100% (in steps of 1) [inactive] Select minimum-brightness to get a white point --brightness -400..400% (in steps of 1) [0] Controls the brightness of the acquired image. --contrast -100..400% (in steps of 1) [0] Controls the contrast of the acquired image. Advanced: --rgb-lpr auto|1..50 (in steps of 1) [4] Number of scan lines to request in a SCSI read. Changing this parameter allows you to tune the speed at which data is read from the scanner during scans. If this is set too low, the scanner will have to stop periodically in the middle of a scan; if it's set too high, X-based frontends may stop responding to X events and your system could bog down. --gs-lpr auto|1..50 (in steps of 1) [inactive] Number of scan lines to request in a SCSI read. Changing this parameter allows you to tune the speed at which data is read from the scanner during scans. If this is set too low, the scanner will have to stop periodically in the middle of a scan; if it's set too high, X-based frontends may stop responding to X events and your system could bog down. Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: snapscan:/dev/uscanner0 gscan2pdf-1.2.3/scanners/canoscan_FB_630P0000644000175000017500000000466212237446454016420 0ustar jeffjeffUsage: scanimage [OPTION]... Start image acquisition on a scanner device and write PNM image data to standard output. -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), and %i (index number) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' or `out%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase number in filename by an amount of # --batch-double increment page number by two for 2sided originals being scanned in a single sided scanner --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size change default input buffersize -V, --version print version information Options specific to device `canon_pp:parport0': --resolution 75|150|300|600dpi [75] Sets the resolution of the scanned image. --mode Gray|Color [Gray] Selects the scan mode (e.g., lineart, monochrome, or color). --depth 8|12 [8] Number of bits per sample, typical values are 1 for "line-art" and 8 for multibit scans. -l 0..215mm (in steps of 1869504867) [0] Top-left x position of scan area. -t 0..296mm (in steps of 1852795252) [0] Top-left y position of scan area. -x 3..216mm (in steps of 16) [100] Width of scan-area. -y 1..297mm [100] Height of scan-area. --quality-cal [] Do a quality white-calibration Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: canon_pp:parport0 gscan2pdf-1.2.3/scanners/psc12000000644000175000017500000000742312053230657014632 0ustar jeffjeffUsage: scanimage [OPTION]... Start image acquisition on a scanner device and write PNM image data to standard output. -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), and %i (index number) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' or `out%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase number in filename by an amount of # --batch-double increment page number by two for 2sided originals being scanned in a single sided scanner --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size change default input buffersize -V, --version print version information Options specific to device `hpaio:/usb/psc_1200_series?serial=UA468GB0RRT0': Scan mode: --mode Lineart|Grayscale|Color [Color] Selects the scan mode (e.g., lineart, monochrome, or color). --resolution 75..600dpi [75] Sets the resolution of the scanned image. Advanced: --contrast 0..100 [inactive] Controls the contrast of the acquired image. --compression None|JPEG [JPEG] Selects the scanner compression method for faster scans, possibly at the expense of image quality. --jpeg-compression-factor 0..100 [10] Sets the scanner JPEG compression factor. Larger numbers mean better compression, and smaller numbers mean better image quality. --batch-scan[=(yes|no)] [no] Guarantees that a "no documents" condition will be returned after the last scanned page, to prevent endless flatbed scans after a batch scan. For some models, option changes in the middle of a batch scan don't take effect until after the last page. --source Flatbed [Flatbed] Selects the desired scan source for models with both flatbed and automatic document feeder (ADF) capabilities. The "Auto" setting means that the ADF will be used if it's loaded, and the flatbed (if present) will be used otherwise. --duplex[=(yes|no)] [inactive] Enables scanning on both sides of the page for models with duplex-capable document feeders. For pages printed in "book"-style duplex mode, one side will be scanned upside-down. This feature is experimental. Geometry: --length-measurement Unknown|Approximate|Padded [Padded] Selects how the scanned image length is measured and reported, which is impossible to know in advance for scrollfed scans. -l 0..215.9mm [0] Top-left x position of scan area. -t 0..296.926mm [0] Top-left y position of scan area. -x 0..215.9mm [215.9] Width of scan-area. -y 0..296.926mm [296.926] Height of scan-area. Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: hpaio:/usb/psc_1200_series?serial=UA468GB0RRT0 gscan2pdf-1.2.3/scanners/Brother_MFC_5100c0000644000175000017500000000544712053230657016450 0ustar jeffjeffUsage: scanimage [OPTION]... Start image acquisition on a scanner device and write PNM image data to standard output. -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), and %i (index number) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' or `out%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase number in filename by an amount of # --batch-double increment page number by two for 2sided originals being scanned in a single sided scanner --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size change default input buffersize -V, --version print version information scanimage: rounded value of br-x from 208 to 207.981 scanimage: rounded value of br-y from 297 to 296.973 Options specific to device `brother:bus1;dev2': Mode: --mode Black & White|Gray[Error Diffusion]|True Gray|24bit Color [24bit Color] Select the scan mode --resolution 100|150|200|300|400|600|1200|2400|4800|9600dpi [200] Sets the resolution of the scanned image. --source FlatBed|Automatic Document Feeder [Automatic Document Feeder] Selects the scan source (such as a document-feeder). --brightness -50..50% (in steps of 1) [inactive] Controls the brightness of the acquired image. --contrast -50..50% (in steps of 1) [inactive] Controls the contrast of the acquired image. Geometry: -l 0..208mm (in steps of 0.0999908) [0] Top-left x position of scan area. -t 0..355.6mm (in steps of 0.0999908) [0] Top-left y position of scan area. -x 0..208mm (in steps of 0.0999908) [207.981] Width of scan-area. -y 0..355.6mm (in steps of 0.0999908) [296.973] Height of scan-area. Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: brother:bus1;dev2 gscan2pdf-1.2.3/scanners/snapscanS5100000644000175000017500000001013512053230657015713 0ustar jeffjeffUsage: scanimage [OPTION]... Start image acquisition on a scanner device and write PNM image data to standard output. Parameters are separated by a blank from single-character options (e.g. -d epson) and by a "=" from multi-character options (e.g. --device-name=epson). -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), and %i (index number) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' or `out%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase number in filename by an amount of # --batch-double increment page number by two for 2sided originals being scanned in a single sided scanner --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size change default input buffersize -V, --version print version information Options specific to device `fujitsu:libusb:007:032': Scan Mode: --source ADF Front|ADF Back|ADF Duplex [ADF Front] Selects the scan source (such as a document-feeder). --mode Lineart|Halftone|Gray|Color [Color] Selects the scan mode (e.g., lineart, monochrome, or color). --resolution 50..600dpi (in steps of 1) [600] Sets the horizontal resolution of the scanned image. --y-resolution 50..600dpi (in steps of 1) [600] Sets the vertical resolution of the scanned image. Geometry: -l 0..215.872mm (in steps of 0.0211639) [0] Top-left x position of scan area. -t 0..279.364mm (in steps of 0.0211639) [0] Top-left y position of scan area. -x 0..215.872mm (in steps of 0.0211639) [215.872] Width of scan-area. -y 0..279.364mm (in steps of 0.0211639) [279.364] Height of scan-area. --pagewidth 0..221.121mm (in steps of 0.0211639) [215.872] Must be set properly to align scanning window --pageheight 0..863.489mm (in steps of 0.0211639) [279.364] Must be set properly to eject pages Enhancement: --brightness -127..127 (in steps of 1) [0] Controls the brightness of the acquired image. --contrast -127..127 (in steps of 1) [0] Controls the contrast of the acquired image. --rif[=(yes|no)] [no] Reverse image format Advanced: --compression None|JPEG [None] Enable compressed data. May crash your front-end program --compression-arg 0..7 (in steps of 1) [0] Level of JPEG compression. 1 is small file, 7 is large file. 0 (default) is same as 4 --dfdetect Default|None|Thickness|Length|Both [Default] Enable double feed sensors --dfdiff Default|10mm|15mm|20mm [Default] Difference in page length to trigger double feed sensor --overscan Default|Off|On [Default] Collect a few mm of background on top side of scan, before paper enters ADF, and increase maximum scan area beyond paper size, to allow collection on remaining sides. May conflict with bgcolor option --sleeptimer 0..60 (in steps of 1) [0] Time in minutes until the internal power supply switches to sleep mode Sensors and Buttons: Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: v4l:/dev/video0 fujitsu:libusb:007:032 gscan2pdf-1.2.3/scanners/epson_3490.Lineart0000644000175000017500000001330012053230657016731 0ustar jeffjeffUsage: scanimage [OPTION]... Start image acquisition on a scanner device and write PNM image data to standard output. -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), and %i (index number) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' or `out%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase number in filename by an amount of # --batch-double increment page number by two for 2sided originals being scanned in a single sided scanner --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size change default input buffersize -V, --version print version information Options specific to device `snapscan:libusb:005:007': Scan Mode: --resolution auto||50|150|200|240|266|300|350|360|400|600|720|800|1200|1600|3200dpi [300] Sets the resolution of the scanned image. --preview[=(auto|yes|no)] [no] Request a preview-quality scan. --mode auto|Color|Gray|Lineart [Color] Selects the scan mode (e.g., lineart, monochrome, or color). --preview-mode auto|Auto|Color|Gray|Lineart [Auto] Select the mode for previews. Greyscale previews usually give the best combination of speed and detail. --high-quality[=(auto|yes|no)] [no] Highest quality but lower speed --source auto|Flatbed|Transparency Adapter [Flatbed] Selects the scan source (such as a document-feeder). Geometry: -l auto|0..216mm [0] Top-left x position of scan area. -t auto|0..297mm [0] Top-left y position of scan area. -x auto|0..216mm [216] Width of scan-area. -y auto|0..297mm [297] Height of scan-area. --predef-window None|6x4 (inch)|8x10 (inch)|8.5x11 (inch) [None] Provides standard scanning areas for photographs, printed pages and the like. Enhancement: --depth 8|16bit [8] Number of bits per sample, typical values are 1 for "line-art" and 8 for multibit scans. --quality-cal[=(yes|no)] [yes] Do a quality white-calibration --halftoning[=(yes|no)] [inactive] Selects whether the acquired image should be halftoned (dithered). --halftone-pattern DispersedDot8x8|DispersedDot16x16 [inactive] Defines the halftoning (dithering) pattern for scanning halftoned images. --custom-gamma[=(yes|no)] [no] Determines whether a builtin or a custom gamma-table should be used. --analog-gamma-bind[=(yes|no)] [no] In RGB-mode use same values for each color --analog-gamma 0..4 [inactive] Analog gamma-correction --analog-gamma-r 0..4 [1.79999] Analog gamma-correction for red --analog-gamma-g 0..4 [1.79999] Analog gamma-correction for green --analog-gamma-b 0..4 [1.79999] Analog gamma-correction for blue --gamma-table 0..65535,... (in steps of 1) [inactive] Gamma-correction table. In color mode this option equally affects the red, green, and blue channels simultaneously (i.e., it is an intensity gamma table). --red-gamma-table 0..65535,... (in steps of 1) [inactive] Gamma-correction table for the red band. --green-gamma-table 0..65535,... (in steps of 1) [inactive] Gamma-correction table for the green band. --blue-gamma-table 0..65535,... (in steps of 1) [inactive] Gamma-correction table for the blue band. --negative[=(auto|yes|no)] [inactive] Swap black and white --threshold 0..100% (in steps of 1) [50] Select minimum-brightness to get a white point --brightness -400..400% (in steps of 1) [inactive] Controls the brightness of the acquired image. --contrast -100..400% (in steps of 1) [inactive] Controls the contrast of the acquired image. Advanced: --rgb-lpr auto|1..50 (in steps of 1) [4] Number of scan lines to request in a SCSI read. Changing this parameter allows you to tune the speed at which data is read from the scanner during scans. If this is set too low, the scanner will have to stop periodically in the middle of a scan; if it's set too high, X-based frontends may stop responding to X events and your system could bog down. --gs-lpr auto|1..50 (in steps of 1) [inactive] Number of scan lines to request in a SCSI read. Changing this parameter allows you to tune the speed at which data is read from the scanner during scans. If this is set too low, the scanner will have to stop periodically in the middle of a scan; if it's set too high, X-based frontends may stop responding to X events and your system could bog down. Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: snapscan:libusb:005:007 gscan2pdf-1.2.3/scanners/hp_scanjet6390c.scanadf0000644000175000017500000000717212053230657017744 0ustar jeffjeffUsage: scanadf [OPTION]... Start image acquisition on a scanner device and write image data to output files. [ -d | --device-name ] use a given scanner device. [ -h | --help ] display this help message and exit. [ -L | --list-devices ] show available scanner devices. [ -v | --verbose ] give even more status messages. [ -V | --version ] print version information. [ -N | --no-overwrite ] don't overwrite existing files. [ -o | --output-file ] name of file to write image data (%d replacement in output file name). [ -S | --scan-script ] name of script to run after every scan. [ --script-wait ] wait for scripts to finish before exit [ -s | --start-count ] page count of first scanned image. [ -e | --end-count ] last page number to scan. [ -r | --raw ] write raw image data to file. Options specific to device `hp:libusb:001:003': Scan Mode: --preview[=(yes|no)] [no] Request a preview-quality scan. --mode Lineart|Halftone|Grayscale|Color [Lineart] Selects the scan mode (e.g., lineart, monochrome, or color). --resolution 12..3200dpi (in steps of 1) [300] Sets the resolution of the scanned image. Enhancement: --brightness -127..127 (in steps of 1) [0] Controls the brightness of the acquired image. --contrast -127..127 (in steps of 1) [0] Controls the contrast of the acquired image. --auto-threshold[=(yes|no)] [no] Enable automatic determination of threshold for line-art scans. Advanced Options: --custom-gamma[=(yes|no)] [no] Determines whether a builtin or a custom gamma-table should be used. --gamma-table 0..255,... (in steps of 1.52588e-05) [inactive] Gamma-correction table. In color mode this option equally affects the red, green, and blue channels simultaneously (i.e., it is an intensity gamma table). --matrix-type Auto|NTSC Gray|Red|Green|Blue [Auto] Set the scanners color matrix. --matrix-rgb -3.99219..3.99219,... (in steps of 1.52588e-05) [inactive] Custom color matrix. --halftone-pattern Coarse|Fine|Bayer|Vertical|Horizontal|Custom [inactive] Defines the halftoning (dithering) pattern for scanning halftoned images. --speed Auto|Slow|Normal|Fast|Extra Fast [Auto] Determines the speed at which the scan proceeds. --depth 1 [inactive] Number of bits per sample, typical values are 1 for "line-art" and 8 for multibit scans. --output-8bit[=(yes|no)] [inactive] Use bit depth greater eight internally, but output only eight bits. --source Normal|ADF|XPA [Normal] Selects the scan source (such as a document-feeder). --button-wait[=(yes|no)] [no] Wait to scan for front-panel button push. --lamp-off Shut off scanner lamp. --change-document Change Document. Geometry: -l 0..215.788mm (in steps of 1.52588e-05) [0] Top-left x position of scan area. -t 0..296.888mm (in steps of 1.52588e-05) [0] Top-left y position of scan area. -x 0..215.788mm (in steps of 1.52588e-05) [215.788] Width of scan-area. -y 0..296.888mm (in steps of 1.52588e-05) [296.888] Height of scan-area. --mirror-horizontal Off|On [Off] Mirror image horizontally. --mirror-vertical Off|On [Off] Mirror image vertically. Type ``scanadf --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: hp:libusb:001:003 gscan2pdf-1.2.3/scanners/hpangua0000644000175000017500000001022012053230657015152 0ustar jeffjeffUsage: scanimage [OPTION]... Start image acquisition on a scanner device and write PNM image data to standard output. -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), and %i (index number) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' or `out%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase number in filename by an amount of # --batch-double increment page number by two for 2sided originals being scanned in a single sided scanner --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -h, --help display this help message and exit -v, --verbose give even more status messages -V, --version print version information Options specific to device `net:angua:hp:/dev/scanner': Scan Mode: --preview[=(yes|no)] [no] Request a preview-quality scan. --mode Lineart|Halftone|Grayscale|Color [Lineart] Selects the scan mode (e.g., lineart, monochrome, or color). --resolution 12..3200dpi (in steps of 1) [300] Sets the resolution of the scanned image. Enhancement: --brightness -127..127 (in steps of 1) [0] Controls the brightness of the acquired image. --contrast -127..127 (in steps of 1) [0] Controls the contrast of the acquired image. --auto-threshold[=(yes|no)] [no] Enable automatic determination of threshold for line-art scans. Advanced Options: --custom-gamma[=(yes|no)] [no] Determines whether a builtin or a custom gamma-table should be used. --gamma-table 0..255,... (in steps of 1.52588e-05) [inactive] Gamma-correction table. In color mode this option equally affects the red, green, and blue channels simultaneously (i.e., it is an intensity gamma table). --matrix-type Auto|NTSC Gray|Red|Green|Blue [Auto] Set the scanners color matrix. --matrix-rgb -3.99219..3.99219,... (in steps of 1.52588e-05) [inactive] Custom color matrix. --halftone-pattern Coarse|Fine|Bayer|Vertical|Horizontal|Custom [inactive] Defines the halftoning (dithering) pattern for scanning halftoned images. --speed Auto|Slow|Normal|Fast|Extra Fast [Auto] Determines the speed at which the scan proceeds. --depth 1 [inactive] Number of bits per sample, typical values are 1 for "line-art" and 8 for multibit scans. --output-8bit[=(yes|no)] [inactive] Use bit depth greater eight internally, but output only eight bits. --source Normal|ADF|XPA [Normal] Selects the scan source (such as a document-feeder). --button-wait[=(yes|no)] [no] Wait to scan for front-panel button push. --lamp-off [] Shut off scanner lamp. --change-document [] Change Document. Geometry: -l 0..215.788mm (in steps of 1.52588e-05) [0] Top-left x position of scan area. -t 0..296.888mm (in steps of 1.52588e-05) [0] Top-left y position of scan area. -x 0..215.788mm (in steps of 1.52588e-05) [215.788] Width of scan-area. -y 0..296.888mm (in steps of 1.52588e-05) [296.888] Height of scan-area. --mirror-horizontal Off|On [Off] Mirror image horizontally. --mirror-vertical Off|On [Off] Mirror image vertically. Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: net:angua:hp:/dev/scanner gscan2pdf-1.2.3/scanners/FujitsuS5100000644000175000017500000001055112053230657015540 0ustar jeffjeffUsage: scanimage [OPTION]... Start image acquisition on a scanner device and write PNM image data to standard output. Parameters are separated by a blank from single-character options (e.g. -d epson) and by a "=" from multi-character options (e.g. --device-name=epson). -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), and %i (index number) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' or `out%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase number in filename by an amount of # --batch-double increment page number by two for 2sided originals being scanned in a single sided scanner --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size change default input buffersize -V, --version print version information Options specific to device `fujitsu:libusb:007:032': Scan Mode: --source ADF Front|ADF Back|ADF Duplex [ADF Front] Selects the scan source (such as a document-feeder). --mode Lineart|Halftone|Gray|Color [Lineart] Selects the scan mode (e.g., lineart, monochrome, or color). --resolution 50..600dpi (in steps of 1) [600] Sets the horizontal resolution of the scanned image. --y-resolution 50..600dpi (in steps of 1) [600] Sets the vertical resolution of the scanned image. Geometry: -l 0..215.872mm (in steps of 0.0211639) [0] Top-left x position of scan area. -t 0..279.364mm (in steps of 0.0211639) [0] Top-left y position of scan area. -x 0..215.872mm (in steps of 0.0211639) [215.872] Width of scan-area. -y 0..279.364mm (in steps of 0.0211639) [279.364] Height of scan-area. --pagewidth 0..221.121mm (in steps of 0.0211639) [215.872] Must be set properly to align scanning window --pageheight 0..863.489mm (in steps of 0.0211639) [279.364] Must be set properly to eject pages Enhancement: --brightness -127..127 (in steps of 1) [0] Controls the brightness of the acquired image. --contrast -127..127 (in steps of 1) [0] Controls the contrast of the acquired image. --threshold 0..255 (in steps of 1) [0] Select minimum-brightness to get a white point --rif[=(yes|no)] [no] Reverse image format Advanced: --compression None|JPEG [None] Enable compressed data. May crash your front-end program --compression-arg 0..7 (in steps of 1) [0] Level of JPEG compression. 1 is small file, 7 is large file. 0 (default) is same as 4 --dfdetect Default|None|Thickness|Length|Both [Default] Enable double feed sensors --dfdiff Default|10mm|15mm|20mm [Default] Difference in page length to trigger double feed sensor --dropoutcolor Default|Red|Green|Blue [Default] One-pass scanners use only one color during gray or binary scanning, useful for colored paper or ink --overscan Default|Off|On [Default] Collect a few mm of background on top side of scan, before paper enters ADF, and increase maximum scan area beyond paper size, to allow collection on remaining sides. May conflict with bgcolor option --sleeptimer 0..60 (in steps of 1) [0] Time in minutes until the internal power supply switches to sleep mode Sensors and Buttons: Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: v4l:/dev/video0 fujitsu:libusb:007:032 gscan2pdf-1.2.3/scanners/hp_62000000644000175000017500000000744712053230657014626 0ustar jeffjeffUsage: scanimage [OPTION]... Start image acquisition on a scanner device and write PNM image data to standard output. -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), and %i (index number) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' or `out%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase number in filename by an amount of # --batch-double increment page number by two for 2sided originals being scanned in a single sided scanner --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size change default input buffersize -V, --version print version information Options specific to device `hpaio:/usb/Officejet_6200_series?serial=CN4AKCE1ZY0453': Scan mode: --mode Lineart|Grayscale|Color [Color] Selects the scan mode (e.g., lineart, monochrome, or color). --resolution 75..600dpi [75] Sets the resolution of the scanned image. Advanced: --contrast 0..100 [inactive] Controls the contrast of the acquired image. --compression None|JPEG [JPEG] Selects the scanner compression method for faster scans, possibly at the expense of image quality. --jpeg-compression-factor 0..100 [10] Sets the scanner JPEG compression factor. Larger numbers mean better compression, and smaller numbers mean better image quality. --batch-scan[=(yes|no)] [no] Guarantees that a "no documents" condition will be returned after the last scanned page, to prevent endless flatbed scans after a batch scan. For some models, option changes in the middle of a batch scan don't take effect until after the last page. --source Auto|Flatbed|ADF [Auto] Selects the desired scan source for models with both flatbed and automatic document feeder (ADF) capabilities. The "Auto" setting means that the ADF will be used if it's loaded, and the flatbed (if present) will be used otherwise. --duplex[=(yes|no)] [no] Enables scanning on both sides of the page for models with duplex-capable document feeders. For pages printed in "book"-style duplex mode, one side will be scanned upside-down. This feature is experimental. Geometry: --length-measurement Unknown|Approximate|Padded [Padded] Selects how the scanned image length is measured and reported, which is impossible to know in advance for scrollfed scans. -l 0..215.9mm [0] Top-left x position of scan area. -t 0..381mm [0] Top-left y position of scan area. -x 0..215.9mm [215.9] Width of scan-area. -y 0..381mm [381] Height of scan-area. Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: hpaio:/usb/Officejet_6200_series?serial=CN4AKCE1ZY0453 v4l:/dev/video0 gscan2pdf-1.2.3/scanners/hp39000000644000175000017500000000442112053230657014460 0ustar jeffjeffUsage: scanadf [OPTION]... Start image acquisition on a scanner device and write image data to output files. [ -d | --device-name ] use a given scanner device. [ -h | --help ] display this help message and exit. [ -L | --list-devices ] show available scanner devices. [ -v | --verbose ] give even more status messages. [ -V | --version ] print version information. [ -N | --no-overwrite ] don't overwrite existing files. [ -o | --output-file ] name of file to write image data (%d replacement in output file name). [ -S | --scan-script ] name of script to run after every scan. [ --script-wait ] wait for scripts to finish before exit [ -s | --start-count ] page count of first scanned image. [ -e | --end-count ] last page number to scan. [ -r | --raw ] write raw image data to file. Options specific to device `hp3900:libusb:005:002': -l 0..220mm (in steps of 1) [220] Top-left x position of scan area. -t 0..300mm (in steps of 1) [300] Top-left y position of scan area. -x 0..220mm (in steps of 1) [220] Width of scan-area. -y 0..300mm (in steps of 1) [300] Height of scan-area. --resolution 75|100|150|200|300|600|1200|2400dpi [75] Sets the resolution of the scanned image. --red-gamma-table 0..65535,... [0] Gamma-correction table for the red band. --green-gamma-table 0..65535,... [0] Gamma-correction table for the green band. --blue-gamma-table 0..65535,... [0] Gamma-correction table for the blue band. --source Flatbed|Slide|Negative [Flatbed] Selects the scan source (such as a document-feeder). --mode Color|Gray|Lineart [Gray] Selects the scan mode (e.g., lineart, monochrome, or color). --depth 8|16bit [8] Number of bits per sample, typical values are 1 for "line-art" and 8 for multibit scans. --threshold 0..255 [inactive] Select minimum-brightness to get a white point Type ``scanadf --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: v4l:/dev/video0 hp3900:libusb:005:002 gscan2pdf-1.2.3/scanners/Epson_GT-25000000644000175000017500000001353212053230657015602 0ustar jeffjeffUsage: scanimage [OPTION]... Start image acquisition on a scanner device and write PNM image data to standard output. Parameters are separated by a blank from single-character options (e.g. -d epson) and by a "=" from multi-character options (e.g. --device-name=epson). -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), and %i (index number) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' or `out%d.tif' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase number in filename by an amount of # --batch-double increment page number by two for 2sided originals being scanned in a single sided scanner --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size change default input buffersize -V, --version print version information Options specific to device `epkowa:libusb:006:011': Scan Mode: --mode Binary|Gray|Color [Binary] Selects the scan mode (e.g., lineart,monochrome, or color). --depth 8|16 [inactive] Number of bits per sample, typical values are 1 for "line-art" and 8 for multibit scans. --halftoning None|Halftone A (Hard Tone)|Halftone B (Soft Tone)|Halftone C (Net Screen)|Dither A (4x4 Bayer)|Dither B (4x4 Spiral)|Dither C (4x4 Net Screen)|Dither D (8x4 Net Screen)|Text Enhanced Technology|Download pattern A|Download pattern B [None] Selects the halftone. --dropout None|Red|Green|Blue [None] Selects the dropout. --brightness -4..3 [0] Selects the brightness. --sharpness -2..2 [0] --gamma-correction Default|User defined (Gamma=1.0)|User defined (Gamma=1.8)|High density printing|Low density printing|High contrast printing [Default] Selects the gamma correction value from a list of pre-defined devices or the user defined table, which can be downloaded to the scanner --color-correction No Correction|User defined|Impact-dot printers|Thermal printers|Ink-jet printers|CRT monitors [CRT monitors] Sets the color correction table for the selected output device. --resolution 50..2400dpi [300] Sets the resolution of the scanned image. --threshold 0..255 [128] Select minimum-brightness to get a white point Advanced: --mirror[=(yes|no)] [no] Mirror the image. --speed[=(yes|no)] [no] Determines the speed at which the scan proceeds. --auto-area-segmentation[=(yes|no)] [no] --short-resolution[=(yes|no)] [no] Display short resolution list --zoom 50..200 [100] Defines the zoom factor the scanner will use --red-gamma-table 0..255,... [inactive] Gamma-correction table for the red band. --green-gamma-table 0..255,... [inactive] Gamma-correction table for the green band. --blue-gamma-table 0..255,... [inactive] Gamma-correction table for the blue band. --wait-for-button[=(yes|no)] [no] After sending the scan command, wait until the button on the scanner is pressed to actually start the scan process. --monitor-button[=(yes|no)] [no] Indicates whether a button on the scanner has been pressed (read-only option). Color correction coefficients: --cct-1 -2..2 [inactive] Controls red level --cct-2 -2..2 [inactive] Adds to red based on green level --cct-3 -2..2 [inactive] Adds to red based on blue level --cct-4 -2..2 [inactive] Adds to green based on red level --cct-5 -2..2 [inactive] Controls green level --cct-6 -2..2 [inactive] Adds to green based on blue level --cct-7 -2..2 [inactive] Adds to blue based on red level --cct-8 -2..2 [inactive] Adds to blue based on green level --cct-9 -2..2 [inactive] Control blue level Preview: --preview[=(yes|no)] [no] Request a preview-quality scan. --preview-speed[=(yes|no)] [no] Geometry: -l 0..215.9mm [0] Top-left x position of scan area. -t 0..297.18mm [0] Top-left y position of scan area. -x 0..215.9mm [215.9] Width of scan-area. -y 0..297.18mm [297.18] Height of scan-area. --quick-format CD|A5 portrait|A5 landscape|Letter|A4|Max [Max] Optional equipment: --source Flatbed|Automatic Document Feeder [Flatbed] Selects the scan source (such as a document-feeder). --auto-eject[=(yes|no)] [yes] Eject document after scanning --film-type Positive Film|Negative Film [inactive] --focus-position Focus on glass|Focus 2.5mm above glass [inactive] Sets the focus position to either the glass or 2.5mm above the glass --bay 1 | 2 | 3 | 4 | 5 | 6 [inactive] Select bay to scan --eject [] Eject the sheet in the ADF --adf_mode Simplex|Duplex [Simplex] Selects the ADF mode (simplex/duplex) Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: epkowa:libusb:006:011 gscan2pdf-1.2.3/COPYING0000644000175000017500000000202212053230657013024 0ustar jeffjeffCopyright (C) 2006 -- 2011 Jeffrey Ratcliffe This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 3 as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. The scanner icon was taken from http://quantum-bits.org/wp-content/uploads/2007/05/epson-perfection-1260.tar.gz and is equally GPL. The PDF icon was taken from http://upload.wikimedia.org/wikipedia/commons/b/b6/Gnome-mime-application-pdf.svg and is LGPL. I created the gscan2pdf icon by combining the above two icons. gscan2pdf-1.2.3/pdf.svg0000644000175000017500000010354512053230657013277 0ustar jeffjeff begin='' id='W5M0MpCehiHzreSzNTczkc9d' Adobe PDF library 5.00 2004-01-26T11:58:28+02:00 2004-03-28T20:32:09Z Adobe Illustrator 10.0 2004-02-16T21:04:53+01:00 JPEG 256 256 /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqlvmDzFo 3l7TJdT1e5W1tItuTbszHoiKN2Y+AxV4j5g/5ydvTcMnl/SYlgU0Se/LOzDxMcTIF/4M4qk//QzP nv8A5YNL/wCRVx/2UYq7/oZnz3/ywaX/AMirj/soxV3/AEMz57/5YNL/AORVx/2UYq7/AKGZ89/8 sGl/8irj/soxV3/QzPnv/lg0v/kVcf8AZRirv+hmfPf/ACwaX/yKuP8AsoxV3/QzPnv/AJYNL/5F XH/ZRirv+hmfPf8AywaX/wAirj/soxV3/QzPnv8A5YNL/wCRVx/2UYq7/oZnz3/ywaX/AMirj/so xV3/AEMz57/5YNL/AORVx/2UYq7/AKGZ89/8sGl/8irj/soxV3/QzPnv/lg0v/kVcf8AZRirv+hm fPf/ACwaX/yKuP8AsoxV3/QzPnv/AJYNL/5FXH/ZRirv+hmfPf8AywaX/wAirj/soxV3/QzPnv8A 5YNL/wCRVx/2UYq7/oZnz3/ywaX/AMirj/soxV3/AEMz57/5YNL/AORVx/2UYq7/AKGZ89/8sGl/ 8irj/soxV3/QzPnv/lg0v/kVcf8AZRirv+hmfPf/ACwaX/yKuP8AsoxVFad/zk75oS4B1HSbG4t+ 6W/qwP8A8E7zj/hcVeyeRfzJ8tec7Vn0yUx3kQBuLCaizJ25AAkMlf2l+mmKsqxV2KuxV2KuxV2K vm/XDqf5ufmk+j287Q+XtJLqJF3VIY2CSzAHYvM9AvtTwOKvePLfk/y35bs0tdHsYrZVFGlCgyuf GSQ/Ex+ZxVOK4q6oxVrkMVdyGKu5jFWvUGKu9RffFWvVX3xV3rL74q71l8DirXrp4HFXfWE8DirX 1hPA4q76yngcVd9Zj8D+GKtfWo/A/hirvrcfgfw/rirvrcfgfw/rirX1yLwb8P64q765F4N+H9cV d9di8G/D+uKtfXovBvw/riqVa/5X8r+abR7TV7GO55CiyMoWZP8AKjkHxKR7HFXzB5n0XXfys8/R NZXBJgIudOujsJYGJUpIB8ijj+oxV9VeWtfs/MGhWWsWf9xexLKErUoxHxI3up2OKplirsVdirsV Q+oMy2Fyy/aWJyvzCnFXhP8AziwqvL5nmYcpQLIBz1oxuC2/uVGKvficVaxVrFWicVaJxVrFWsVa JxVonFWsVaxVrFWicVaxVrFWicVaJxVrFWsVaJxVonFWsVaxVdCSJkp/MP14q8V/5ypRBJ5ZkCjm wvVZu5CmAgfRyOKsn/5x3vJX8lwWzElQZmSvbjMR/wAbYq9XxV2KuxV2KofUv+Oddf8AGGT/AIic VeE/84pn/lKP+jD/ALGcVe+nFWsVaJxVonFWsVaxVonFWicVaxVrFWsVaJxVrFWsVaJxVonFWsVa xVonFWicVaxVrFWicVXQ/wB9H/rD9eKvFv8AnKw/8ov/ANH/AP2LYqn/APzjn/yisHyuP+T4xV6/ irsVdirsVQ+pf8c66/4wyf8AETirwf8A5xRNf8U/9GH/AGM4q9+PXFWicVaJxVrFWsVaJxVonFWs VaxVrFWicVaxVrFWicVSjUvNvlnTJTDfanbwTD7UTSAuPmoqw+nKMmpxwNSkA52n7M1OYXDHIjvr b5q2la7o2rRtJpt5Fdqn2/SYMV/1h1H05LHmhP6SC1anR5sBrJEx96Oy1xmicVaJxVrFWsVaJxVo nFV0P99H/rD9eKvFf+crjT/C3/R//wBi2Ksg/wCccv8AlFLf5XH/ACfGKvYMVdirsVdiqH1L/jnX X/GGT/iJxV4N/wA4nmv+Kf8Aow/7GcVe/HrirROKtYq1irROKtE4q1irWKtYq0TirWKtYq0Tiryj z955nutXk0LT7trSwtDw1G6hPGWST9qJG/ZC9GPj7ddHrdYTPgiaiOZ/Q9v2J2NGGIZ8keKcvpB5 Afzj+hjNj5g0Ox1AWlrZQrD6ZLzMod2kqCAXarHavfMKGaEZUAHd5tHmyQ4pSN3y6V7lS+8yQWmo Wms6WqW9/byBZDGoVZYm2ZJFWnLJ+OIzjOOxv7Gj8hLJhninvExNX0kORD2nSdSj1HT4btBx9RQW TrxbuM6Z80RZOKtYq1irROKtE4q1iq6D+/j/ANYfrxV4r/zlgaf4W/6P/wDsWxVkH/OOH/KJ2/yu P+T4xV7DirsVdirsVQ+pf8c66/4wyf8AETirwT/nEw/8pV/0Yf8AYzir39jucVaxVrFWicVaJxVr FWsVaxVonFWsVaxVonFUFrWofo7R76/2JtLeWYA9zGhYD6aZXlnwQMu4ORpMPi5YQ/nSA+ZfKzzS ySNI7lnclnYncsTUk5xRJL7WIgChyCIdKabFJ+000gr3oFXMiUawg/0j9wdfjyE6ycegxw/3U1CM s0iCpNWG305RDchzc1CBPkX0b5EJ/QYH+V/AZ3D4eyLFWsVaJxVonFWsVaxVdAf38f8ArL+vFXin /OWZ/wCUV/6P/wDsWxVkP/ON/wDyiVv8rj/k/ir2LFXYq7FXYqh9S/4511/xhk/4icVeBf8AOJR/ 5Sr/AKMP+xnFX0A3U4q1irROKtE4q1irWKtYq0TirWKtYq0TirROKse/MAuPJesFPtfVnB77HZvw zF1v9zL3O07Er85iv+cHzTnHvsCq8oa1hiHVGdj/ALLj/wA05bKdwEe4n7acXHgIzTn/ADhEfLi/ WqaZEZdQt0/ywT8l3P6ss0cOLLEebR2xm8LSZJf0SPnsPvfRvk+Aw6LGD1J/UoH6xnYvjid4q0Ti rROKtYq1irROKr4P7+P/AFl/XirxL/nLU/8AKK/9H/8A2LYqyL/nG3/lEbb5XP8AyfxV7HirsVdi rsVQ+pf8c66/4wyf8ROKvAf+cSDX/Ff/AG7/APsZxV9At9o/PFVpOKtE4q1irWKtYq0TirWKtYq0 TirROKtYqlPmu2N15Z1a3G7SWc6r/remeP45RqY3jkP6Jc3s3JwanHLunH73y/nGPs7sVT7ybZfW dWDEVVKA/wCy6/8ACg5t+x8V5DL+aPveS9r9TwaeOPrOX2R/bT6J0yH0dPgjOxCgke7bn9edG+cI knFWicVaxVrFWicVaJxVfB/fx/66/rxV4l/zluaf4U/7eH/YtirI/wDnGv8A5Q+2+Vz/AMn8Vex4 q7FXYq7FUPqX/HOuv+MMn/ETir5//wCcRjX/ABX/ANu//sZxV9BN9o/PFVpOKtYq1irWKtE4q1ir WKtE4q0TirWKtYqtdVZSrCqsKEeIOKQa3fKuqWTWGp3di/2rWaSE1/4rYr/DOIyQ4ZGPcX23TZhl xxmP4og/MIbINz0n8rtH9WSN2X+8bk3yP/Nq/jnU9l4eDED1lu+Xe1Gr8XVmI5Yxw/Hr9u3wez5s XnGicVaxVrFWicVaJxVrFV9v/vRF/rr+vFXiP/OXJp/hT/t4f9i2Ksk/5xq/5Q62+Vz/ANRGKvZM VdirsVdiqH1L/jnXX/GGT/iJxV8+/wDOIZ/5Sz/t3/8AYzir6Dc/Efniq3FWsVaxVonFWsVaxVon FWicVaxVrFWicVaJxV8+fmxpv1HztdsBSO9RLpP9kOL/APDo2cr2nj4cx8931T2Z1PiaOI6wuP6v sIYjEnqTRx1p6jqlfDkaZhY4cUhHvLutRl8PHKdXwxJ+Qe/fl7pi29l6oWgChV+mn6lAztoxAFDk HxTJkM5GUuZNll5OFg1irWKtE4q0TirWKtYqvtz/AKRF/rr+vFXiH/OXh/5RP/t4f9i2Ksl/5xo/ 5Q21+Vz/ANRGKvZcVdirsVdiqH1L/jnXX/GGT/iJxV8+f84gn/lLP+3f/wBjOKvoN/tH5nFVuKtY q0TirWKtYq0TirROKtYq1irROKtE4q1ir51/MzXhrPnG8eNuVtY0s4COh9In1CPnIW38M5TtLNx5 T3DZ9W9nNH4Gkjf1T9R+PL7KYrIWCFl2Zdwfcb5gxNF3k4gggvoj8uNTS/8ALUEi05AAsB2qNv1Z 2uKfHES7w+K6vAcOWWM/wyIZRljjtYq0TirROKtYq1irROKr7f8A3oi/11/XirxD/nL4/wDKJ/8A bw/7FsVZL/zjP/yhlr8rn/qIxV7NirsVdirsVQ+pf8c66/4wyf8AETir56/5w/Nf8W/9u/8A7GsV fQj/AG2+ZxVbirROKtYq1irROKtE4q1irWKtE4q0TirWKsf89eYl8v8Ala+1IEC4VPTtB4zyfDHt 3oTyPsMo1OXw8Zk7DsvR/mNRHH0vf3Dm+aC3owF3NSBVie7H+pzjvqL7EPSF6MHRWHRgD9+RIpkD b1H8jdYoLrS3beNjwX2PxA/rGdR2Xl4sVdz5j7VaXw9TxjlMfaNv1PXs2TzLROKtE4q1irWKtE4q 1iq+2/3oi/11/Xirw/8A5zANP8Jf9vD/ALFcVZN/zjL/AMoXafK5/wCojFXs+KuxV2KuxVD6l/xz rr/jDJ/xE4q+eP8AnD01/wAW/wDbu/7GsVfQr/bb5nFVpOKtYq1irROKtE4q1irWKtE4q0TirWKt Yq8R/O3zH9d1210CBq2+mqLm8A6GeQfu1P8Aqoa/7LND2vn3EA9/7I6Hhgcx5y2HuH6z9zz2ys/0 jq1tYU5R19a4A/kU7D/ZHbMLs/T+Jk35O77e1/5bTkg+o7D3n9XNTFtLZ3N1p8v97ZTPCfcA/C3y IyjVYuCZDnaDUDNhjMdRadeR9XOk+cbSWtIrr923hyXda/Rtmf2TlqfD3uh9q9J4mn4xzgb+HI/o PwfSaurorqaqwBB9jnRvmrZOKtYq1irROKtYq1iq+2/3pi/11/Xirw7/AJzCNP8ACX/bx/7FcVZR /wA4x/8AKFWnyuf+ojFXs+KuxV2KuxVD6l/xzrr/AIwyf8ROKvnf/nDo/wDKXf8Abu/7GsVfQsh+ NvmcVW4q1irROKtE4q1irWKtE4q0TirWKtYql3mDWrXRNFvdWujSCziaQitORGyoPdmoo+eQyTEI mR6N+l08s2SOOPORfLs15cXU1zqd81bq8ke5uW6AFzyoPADOOzZDOZL7LpcEcOMQHKIZh+VOhS3U p1CRf3l44aMEdIxtH/Fs6Ts7BwY76l849p9f42fgH0w+/wDZy+a7849DTSfONpexLxttXtgjH/i+ 1AU1+cZXMDtfDvxO+9kdXxYjjP8ACfsO/wB9sHvDIkQni2mtmWaM+6GuanBMxmC9VqsIyY5RPIh9 J+Rdbj1jyzZ3aNUlAD49KiudnCQkAR1fF8+E4pygecTSf5JqaxVonFWsVaxVrFV9sf8ASYv9df14 q8O/5zFP/KI/9vH/ALFcVZR/zjF/yhNp8rr/AKiMVe0Yq7FXYq7FUPqX/HOuv+MMn/ETir51/wCc OD/yl/8A27v+xrFX0NJ9tvmcVW4q0TirROKtYq1irROKtE4q1irWKtE4q8Y/PLzN9avbTyvbPWKD jd6nQ9W/3TEf+JkfLNL2tqKHAHuPZLs67zyHlH9J/R83l8lvJf3lvpcRINw1Z2H7MK7sfp6DNZoc HiTD1Ha+uGmwSn16e/o+hvIWiJZ2ay8AgVQiL4Gg6f6q7Z1gFPkMpGRJPMoD86tAfVvJFxc268r3 SHXUINtyIq+qvy9MsaewzG1mLjxl3HYGr8HUx7pbfq+14XDKk8KSrukihh8iM5AijT6yDYt6L+RW vfVrq88vzNsp9S3B/kbcfca503ZmbihXc+be1Wi8PMMg5T+8fs+57RmzeVaJxVrFWsVaxVonFVS2 /wB6Yv8AXX9eKvDP+cxz/wAoh/28f+xXFWU/84wf8oPZ/K6/6icVe04q7FXYq7FUPqX/ABzrr/jD J/xE4q+c/wDnDY1/xf8A9u7/ALGsVfREn943zOKrCcVaJxVrFWsVaJxVonFWsVaxVonFUr8y6/aa Bod3q10f3VrGWCVoXc7Ig92YgZXlyCETI9HJ0ellnyxxx5yP9pfMVxeXN1cXWp378ru7ka4uXPYs a0Hso2Azj82Q5J2+x6XBHDjEI8ohlX5X+XZby5OpyofVuiPRU9ogfgH+yPxH2zo+ztPwQvqXzr2n 7R8bN4YPph9/7P1vfraBLe3jgT7KClfE9z9ObF5hdIiOjRuoZHBVlO4IOxBxSDT5c1jQ5PLnmTU/ L7giK1lMtix35WsvxR79+NaH3zk+0MHBkfXOxdaNRp4y69ff1U9O1OXRtdsdYiNBA4S4p/vtj1+g 74ez8/h5PJHbmg/M6eUR9XMe8fivi+nrC9ivbKG6iIMcyBgR751b5GQr4q1irWKtE4q1iqpa/wC9 MX+uv68VeF/85kmn+EP+3j/2K4qyr/nF/wD5Qaz+V1/1E4q9qxV2KuxV2KofUv8AjnXX/GGT/iJx V85f84aGv+MP+3d/2NYq+iJP7xvmf14qsJxVrFWsVaJxVonFWsVaxVonFWicVeHfnL5p/Smsx6Db PWy0xud4R0e5I2X39MfiTnP9q6qzwDo+heynZnBDx5D1T5f1f2/dTALawfVNRi09K+lUSXRH8gP2 fmxzE0Gm8Sfk7ntztEaXAT/Edh7/AMbvoPyRoaWdosxQLQcYwBtXoSPl9kZ1YD5KSSbPNlJOKGsV eVfnp5ZaawtfNNqlbnS/3N6B1a0kbr/zzc1+knNb2lp+OF9Q9V7LdoeFl8I/TPl7/wBo+4PJ3WOa IqfiRx+BzmAaL6SRYetfkn5mafTpdBunrc2J/ck9Wj7fhnVdn6jxMddQ+W+0nZ/gajiH0z3+PX9f xen5nvPNYq0TirWKtYqqWv8AvVD/AK6/rxV4X/zmWaf4P/7eP/YrirKv+cXf+UFs/ldf9ROKva8V dirsVdiqH1L/AI511/xhk/4icVfOH/OGJr/jD/t2/wDY1ir6JlP7xvmf14qsxVrFWicVaJxVrFWs VaJxVonFWN+ffNKeW/L014pBvZf3NjGe8rDY08EHxHMXWagYoE9ejtex+zjq84h/CN5e79vJ84Sy OqvLIxkmkYs7HdndjUknuSc5LeUn1sCOONDYB6N+WvlKQFZJV/0iZuczeB8PkgP351ei0/hQrqXy ntztL81nJH0R2j+v4/dT2aKJIYlijFEQAKPYZmOlWz3FvbxmSeVIox1d2Cj7zgJAZRiZGgLSG+/M PyPZV+sa5Z1HVY5VlYf7GPmcqlqMY5yDm4+y9TPljl8q+9JL381vId/az2cRudVgnRopore0nYOr Diy/Eqda0ymWsxkVz+Dm4uw9XCQl6YEb7yDwyNEhubm1iWYW0MjLbNcIY5DHU8Q69mA65zGoAEjT 6fpJSOMcXOunL4I/RtWu9F1m21W0HOSI8ZIq0DoexyzR6k4p30cTtfs2OrwmB2PQ9xeuW/5p38o5 N5dnC024XETGvyIU5ux2lf8AD9rxM/ZkD/Kj/SlHRfmOP+PnQdSjHdoo1mUfMqwyY7RHWMvvaJez kv4cuM+8kfoTPTfPHljUJRBFeLFck0+r3AaF6nsBIFqfll2LW4pmgd/PZwdT2JqsI4pQuPfH1D7P 0p5mW6prFVS1P+lQ/wCuv6xirwr/AJzONP8AB/8A28v+xXFWV/8AOLn/ACgll8rr/qJxV7ZirsVd irsVQ+pf8c66/wCMMn/ETir5v/5wvNf8Y/8Abt/7GsVfRMv94/zP68VWYq0TirROKtYq1irROKtE 4qtd1RS7kKqglmJoAB1JOJKQCTQfPH5heam8x6+0sTH9H2lYbFOxFfikp4uR91M5PX6rxZ7fSOT6 x2F2WNJgAP8AeS3l+r4ffaS6XZ3ZvFuDYyzpFvCKBELfzF3oNu2OjIhLiIvuT2xGWbF4cJiHF9R5 mu4Ad7OrLzb5msoTHajTdLQiheZ3uZlA7Dhxj69c2cu0Z/0Y/a81i9ncA5+JkPkBEfrQF/5qmmB/ SvnC9kHeOwEVl9FUDMcx5awnnI/DZ2OPseEfpwwH9a5fekj6t5EeXmNMuNXuh/u24knnYn3BYLv8 sgMnEdokuScE8Y9WSOOPlQRcHmS8i/45PlaC1p0cwwwN9JK1/HLo48x5RpwMmfRx+vNxfEy+60S+ s/mTeCixxwr0AJZqD/YA5Z+U1B5mnG/lTs6HISl8P10lmo+XvOd2j3Nz6U0qLXiqtyNOwLAHKsvZ eQiyQS5Wm9p9NGQjGMoxJ5nkPtY/HIHQMO/UeGaUinswbCO0671NrpLeK4CF9ovUrQnstRmRp4mc uEGj5uu7QnHDjOQwMwOfDzrvZIL7zZpq854S8a/adK0AHzzOyafUYxdWPJ0WDtDQak8IPDI9JCvt 5favfzhY6jD6GpwLMlKAyDdf9Vuq/QcxzqRIVIOxHZk8RvGaZb+W3muWcy6RcytPFCxFjcuavw7I x70rsc3PZmYygQd+E7PG+0+kjizRlEcJnGyB39/xegk5snmlS1/3qh/11/WMVeFf85oGn+Dv+3l/ 2K4qyz/nFr/lA7L5XX/UScVe2Yq7FXYq7FUPqX/HOuv+MMn/ABE4q+bf+cLTX/GP/bt/7GsVfRUv 96/+sf14qsJxVonFWsVaxVRuru1tYWnuZkghT7csrBFHzZiBkZSERZNBnjxymeGIMj3Ddi9z+ZGj tI0OkW9zrM6mjfVIz6Sn/KlfioHuK5hS7QhygDM+X63d4vZ7NV5THFH+kd/kN0qvPMXne5VmZrLQ bfqSx+t3C/fSLMeeqzH+bAfM/qdhh7M0UP5+aX+kj/xTDde1bSPRkN/q91rlzT4bdpituW/1IqBR 4/FmuzZY16pGZ9+32PRaLSZAR4eOGGPfw+r5lh2npfyzH6ktJBuWFBSvuen0Zi6fDkyGoB2uv1mD TwBzGgeXM38AnEXlXzJdkGSZlB/1j/xLiM2UOych+qVfa81m9rdPD+7xmXvofrTWx/Ku6uKNMZpQ eu5C/wDCj/jbMzH2TjHMkupz+1upl9AjEfP9n2Mj078obOOheCNfd6Mfx9Q5mQ0mKPKIdPm7X1WT 6skvht91Mitfy/0yEAMQQP2VG34mn4ZeBTrpSJNlNIPK+jwfZir9NP8AiPHChFppenJ0t0+kcv11 xVWWCBfsxqo9gBiryL80fIMltcTeYNJjrbSkvqFug+w56yqB+y37Xgd+nTQ9paH/ACkeXX9b33s1 24CBgynf+E9/l7+75e/mnq9jmkp7dm+j/mlfWmky2F7bR30ixlLS6kpzQ0ovOoPMD6Dm0w9qZIx4 Tv3H8c3ldZ7KYMuUTgeAX6o9D7u5h0YMjBIwWZjQAeOayMDI0OZemy5I44mUjURzL1D8utCkimik I3U83b5EEn8Auddo9P4OMR69XyPtntH83qDP+HlH3ft5vT8ynVKlr/vVD/rr+sYq8J/5zSNP8Hf9 vL/sVxVlv/OLH/KBWPyuv+ok4q9txV2KuxV2KofUv+Oddf8AGGT/AIicVfNf/OFZ/wCUy/7dv/Y3 ir6LlP71/wDWP68VWE4q1iqA1fW9K0i1N1qVyltD0Bc7sfBVFWY+wGV5c0MYuRoOTpdHl1EuHHEy P459zErvzj5i1QEaJaLptif+lnqA+MjxigG/yLbHNdPWZJ/QOEd5/QHoMPY2DD/fy8Sf8yHL4y/U xLUNQ8sxXXqajc3HmfVF6K55xIf8mNT6SjxG+YUjAy3vLP8AHTk7yEMsIekQ02L5H5ncrW1zzZqC CGxhj0y1XZUiUOyj7hGMyo6bPPugPmf1Opy9o6LCbHFnn3/TH580k8x2B0+BZdTuJLu+mFYIZXZt q0LUFFCjKdXhxYY+q5zPK/vc3snWarW5KgI4cMfqMRv7rPXz6MWt4JbiZYolq7Hbw+eafFilkkIx 5l7HVarHp8ZyTNRj+Pm9U8i+UKcCRsPidyP+G+n9kZ1ul00cMOEfF8j7U7Snq8pnLl0HcPxzemQ2 NnAB6UKKR+1QV+/rmS65WxVonFWsVaxVrFWicVWsAQQRUHYg9KYq8083flHa3Ur3mjUgZqs9r+xX /I8Plmr1HZcJm4nhP2PVdn+1efCBHIPEj8pfPr8fmwc/l7q0U3pzKUI7Hr/DMMdjzveQdxP2zxV6 ccr94/b9zKvLf5fyBg3pk/zOf+aug+jNpptFDDy3l3vK9p9t59ZtI1D+aOXx73pWmabBYW4jjFWI HJuladh7DMx06LxVUtP964f+Mi/rGKvCP+c1D/yhv/by/wCxTFWXf84r/wDKA2Pyuv8AqKOKvbsV dirsVdiqH1L/AI511/xhk/4icVfNP/OFBr/jL/t2/wDY3ir6MmP71/8AWP68VWYqxTzn50OjtHp2 notxrNyvKON/7uGPp6spHbwHfMHV6zw/THeZ+zzLvOyOyPzF5Mh4cMfmT3B51dapaWl0L2/kfWdd l+xJJvxPhFH9mNR8s1Bn6rPryH8bPXRxfuyI1hwR5/tPMlatn5j8wPW9lZLdjtaxEhPkzDdvkMz8 eglPfKf80fpLodT27iw+nSxs/wA+X+9H6/kzHQvy6hhjUyoIl68SNz/sf+ajmyx4owFRFPNajVZM 0uLJIyPmv81eZPLnlG29GKNLvVyv7i2bfjXo8lNlX5bn8cxdZro4RXOXd+t23Y/YeTWSs+nF1l+g ef3PF9Q1DU9a1N7q6dri8uG3P6lUdAoGcyTPNPvkX0uEMOjw0KhjgPx7yftZ15K8nO7KzIGkbdmP Sn/NI/HOm0WjGGP9I83zLtvtmWsybbYo8h+k+f3PXLKyhs7cQxjpuzd2PicznSK+KtE4q1irWKtY q0TirWKtYq1iq1gD1FcVdirWKtYqqWh/0uH/AIyL+sYq8H/5zXNP8G/9vL/sUxVl/wDzir/5L+x+ V3/1FHFXt+KuxV2KuxVD6l/xzrr/AIwyf8ROKvmj/nCY1/xn/wBu3/sbxV9Gzf3r/wCsf14qp4q+ d/N+r30Xm3WzKCJ2unQMevpRnjEB7cAM5LV5ZDLO+d/2PrXZWmgdJir6eAfM/V9qT6brDWuord3E frofhkStDxrXY4NJqzinxVbPtbskavB4YPCQbHv83q2lfmb5Ds7RXUXCz8RyVofj6dBQlQPpzdjt bDXX5PEH2T1glXp99/gpD5l/Oe/u0e30OA2UTbG6lo01P8lRVU/HMDUdryltAV59Xe9neyOOBEs5 4z/NH0/rP2PPoYL3Ublmq00rnlLK5JNT1LMc12HBPNKhuXo9ZrsGjx3MiIHID7gHofk/yO5dSU5O aF2YU29/5V9u+dPpNFHCO+Xe+Zdr9s5NZLf04xyj+k95eqadp1vYwCOIbmnN+5p/DMx0yKxVonFW sVaxVrFWicVaxVrFWsVaJxVrFWsVaxVonFVW0/3rg/4yL/xIYq8G/wCc2TT/AAZ/28v+xTFWX/8A OKn/AJL6w+V3/wBRRxV7hirsVdirsVQ+pf8AHOuv+MMn/ETir5m/5wkP/KZ/9uz/ALG8VfR0398/ +sf14qpk4qw7z1+Xlh5kT61ERbarGtFnH2ZFHRZB3p2OYOr0EM2/KXe7zsrt7No/SPVj/mn9B6PI NT8h+ZNPlMctvyp0K9CPHfbNNk7JzDlReywe1mkmPVxQPmL+60DH5b1h24+hxPuQf1VyEey856V8 Q3ZPajQxG0jL3Rl+kBOdM8hXszr64Jr+wAVH4/EfoGZ+HscDeZvyDotb7YyIrBGvOX6uX2l6N5e8 gR2yo0qCJV3Apv8AQvY+5zcY8cYCoig8fqNTkzT48kjKXmzS2toLaIRwqFUfeT4k5NoVMVaJxVrF WsVaxVonFWsVaxVrFWicVaxVrFWsVaJxVrFVWz/3rg/4yL/xIYq8F/5zbP8Ayhn/AG8/+xTFWYf8 4pf+S9sPld/9RRxV7jirsVdirsVQ+pf8c66/4wyf8ROKvmX/AJwiP/Kaf9uz/sbxV9HTn98/+sf1 4qpk4q1iqySOOReMih18GAI/HFUKdK00tX6un3UH3YqrRW9vCKRRrH/qgD9WKr8VaxVonFWsVaxV rFWicVaxVrFWsVaJxVrFWsVaxVonFWsVaxVVs/8AeyD/AIyL/wASGKvBf+c3T/yhf/bz/wCxTFWY /wDOKH/kvLD5Xf8A1FHFXuOKuxV2KuxVD6l/xzrr/jDJ/wAROKvmP/nB81/xp/27P+xvFX0fOf30 n+sf14qp4q1irROKtE4q1irWKtE4q1irWKtYq0TirWKtYq1irROKtYq1irWKtE4q1irWKtYqq2Z/ 0yD/AIyJ/wASGKvBP+c4DT/Bf/bz/wCxTFWZf84n/wDku9P+V3/1FHFXuWKuxV2KuxVD6l/xzrr/ AIwyf8ROKvmD/nCCRUn86W7njORpzCM7NRDdBtvYsK4q+kbiomkr/Mf14qp4q0TirROKtYq1irRO KtYq1irWKtE4q1irWKtYq0TirWKtYq1irROKtYq1irWKtE4qrWIJvIABU81P3GuKvAP+c4ZozL5M iDAyIupOydwrG1Cn6eJxVm3/ADieGH5dafUEHjdnfwN0SMVe5Yq7FXYq7FVskayRtG32XBVvkRTF XxjrN7rf5Efnjca1FbNP5e1ZpDLAtFWW2mcPLGldg8MlGT2p2JxV9U+U/PHknzvp8d/5f1SG8DrV 4UcLcRnussJ+NCPcfLbFU8/R0X8zfhirv0bF/M34Yq1+jIv52/DFXfoyL+dvwxV36Lh/nb8MVa/R UP8AO34Yq79FQ/zt+H9MVa/RMP8AO34Yq79Ew/zt+GKu/REH87fh/TFWv0PB/O34f0xV36Hg/nb8 P6Yq79DQfzt+H9MVa/QsH87fh/TFXfoWD/fj/h/TFWv0Jb/78f8AD+mKu/Qdv/vx/wAP6Yq1+g7f /fj/AIf0xV36Ct/9+P8Ah/TFXfoK3/34/wCH9MVa/QNv/vx/w/pirv0Bbf78f8P6Yqk3mfzh5E8i WEuoa9qcNpxUlIpHDXEngsUK/G5PsPntir4i/MXztr35wfmQtxa27Rxy8bTSbImvo2yEtykI2qas 7n6OgGKvsf8AJ7y5HoWhW1jAP3NpbpEGIoWJp8R924VPzxV6FirsVdirsVdirE/zG/Lfy/560OTT NViUvSsE9KsjjoR3+7FXyP5v/wCcW/Nuk3rpYTLLASfTMwYrx9pIw1fpQYqx3/oXzz942v8AwU// AFSxV3/Qvnn7xtf+Cn/6pYq7/oXzz942v/BT/wDVLFXf9C+efvG1/wCCn/6pYq7/AKF88/eNr/wU /wD1SxV3/Qvnn7xtf+Cn/wCqWKu/6F88/eNr/wAFP/1SxV3/AEL55+8bX/gp/wDqlirv+hfPP3ja /wDBT/8AVLFXf9C+efvG1/4Kf/qlirv+hfPP3ja/8FP/ANUsVd/0L55+8bX/AIKf/qlirv8AoXzz 942v/BT/APVLFXf9C+efvG1/4Kf/AKpYq7/oXzz942v/AAU//VLFXf8AQvnn7xtf+Cn/AOqWKu/6 F88/eNr/AMFP/wBUsVd/0L55+8bX/gp/+qWKu/6F88/eNr/wU/8A1SxV3/Qvnn7xtf8Agp/+qWKu /wChfPP3ja/8FP8A9UsVd/0L55+8bX/gp/8AqliqL0z/AJxz85XFwEu54IIu7xiWRv8AgWWP9eKv evys/JPTPLg/0WEz3sgHr3UtC5HWjECiJ/kjr3xV7vpthHY2qwpuert4se+KorFXYq7FXYq7FXYq tkijlUpIgdD1VgCPxxVCnRtLJ/3mT7sVd+htL/5Zk/HFXfobS/8AlmT8cVd+htL/AOWZPxxV36G0 v/lmT8cVd+htL/5Zk/HFXfobS/8AlmT8cVd+htL/AOWZPxxV36G0v/lmT8cVd+htL/5Zk/HFXfob S/8AlmT8cVd+htL/AOWZPxxV36G0v/lmT8cVd+htL/5Zk/HFXfobS/8AlmT8cVd+htL/AOWZPxxV 36G0v/lmT8cVd+htL/5Zk/HFXfobS/8AlmT8cVd+htL/AOWZPxxV36G0v/lmT8cVd+htL/5Zk/HF XDRtLB/3mT7sVRUcUcShI0CIOiqAB+GKrsVdirsVf//Z uuid:87e6a4e5-6600-460d-b043-92690c747e6d image/svg+xml mime.ai end='w' gscan2pdf-1.2.3/LICENCE0000644000175000017500000010451312053230657012766 0ustar jeffjeff GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . gscan2pdf-1.2.3/t/0000755000175000017500000000000012271546566012253 5ustar jeffjeffgscan2pdf-1.2.3/t/165_import_with_spaces.t0000644000175000017500000000134212270574026016725 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 1; BEGIN { use Gscan2pdf::Document; use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert rose: test.pnm; c44 test.pnm te\ st.djvu'); my $slist = Gscan2pdf::Document->new; $slist->get_file_info( path => 'te st.djvu', finished_callback => sub { my ($info) = @_; is( $info->{format}, 'DJVU', 'DjVu with spaces recognised correctly' ); Gtk2->main_quit; } ); Gtk2->main; ######################### unlink 'test.pnm', 'te st.djvu'; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/90_MANIFEST.t0000644000175000017500000000054512053230657014147 0ustar jeffjeffuse strict; use warnings; use Test::More; my $git; if ( -d '.git' and eval { $git = `git ls-tree --name-status -r HEAD | egrep -v '^\.(git|be)'` } ) { plan( tests => 1 ); } else { my $msg = 'Need the git repository to compare the MANIFEST.'; plan( skip_all => $msg ); } my $manifest = `cat MANIFEST`; ok( $git eq $manifest, 'MANIFEST up to date' ); gscan2pdf-1.2.3/t/14_save_image.t0000644000175000017500000000207112053230657015031 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 2; BEGIN { use_ok('Gscan2pdf::Document'); use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert rose: test.pnm'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.pnm', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { $slist->save_image( path => 'test.jpg', list_of_pages => [ $slist->{data}[0][2] ], finished_callback => sub { Gtk2->main_quit } ); } ); } ); Gtk2->main; is( system('identify test.jpg'), 0, 'valid JPG created' ); ######################### unlink 'test.pnm', 'test.jpg'; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/02_Scanner_Options_canonLiDE25.t0000644000175000017500000003731712271200642020061 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 3; use Sane 0.05; # For enums BEGIN { use_ok('Gscan2pdf::Scanner::Options') } ######################### my $filename = 'scanners/canonLiDE25'; my $output = do { local ( @ARGV, $/ ) = $filename; <> }; my $options = Gscan2pdf::Scanner::Options->new_from_data($output); my @that = ( { 'index' => 0, }, { index => 1, title => 'Scan Mode', type => SANE_TYPE_GROUP, 'cap' => 0, 'max_values' => 0, 'name' => '', 'unit' => SANE_UNIT_NONE, 'desc' => '', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { name => 'mode', title => 'Mode', index => 2, 'desc' => 'Selects the scan mode (e.g., lineart, monochrome, or color).', 'val' => 'Color', 'constraint' => [ 'Lineart', 'Gray', 'Color' ], 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_STRING_LIST, type => SANE_TYPE_STRING, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'depth', title => 'Depth', index => 3, 'desc' => 'Number of bits per sample, typical values are 1 for "line-art" and 8 for multibit scans.', 'val' => '8', 'constraint' => [ '8', '16' ], 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_WORD_LIST, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'source', title => 'Source', index => 4, 'desc' => 'Selects the scan source (such as a document-feeder).', 'constraint' => [ 'Normal', 'Transparency', 'Negative' ], 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_STRING_LIST, type => SANE_TYPE_STRING, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 1, }, { name => 'resolution', title => 'Resolution', index => 5, 'desc' => 'Sets the resolution of the scanned image.', 'val' => '50', constraint => { 'min' => 50, 'max' => 2400, }, 'unit' => SANE_UNIT_DPI, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'preview', title => 'Preview', index => 6, 'desc' => 'Request a preview-quality scan.', 'val' => SANE_FALSE, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_NONE, type => SANE_TYPE_BOOL, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { index => 7, title => 'Geometry', 'cap' => 0, 'max_values' => 0, 'name' => '', 'unit' => SANE_UNIT_NONE, 'desc' => '', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { name => 'l', title => 'Top-left x', index => 8, 'desc' => 'Top-left x position of scan area.', 'val' => 0, constraint => { 'min' => 0, 'max' => 215, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_MM, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 't', title => 'Top-left y', index => 9, 'desc' => 'Top-left y position of scan area.', 'val' => 0, constraint => { 'min' => 0, 'max' => 297, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_MM, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'x', title => 'Width', index => 10, 'desc' => 'Width of scan-area.', 'val' => 103, constraint => { 'min' => 0, 'max' => 215, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_MM, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'y', title => 'Height', index => 11, 'desc' => 'Height of scan-area.', 'val' => 76.21, constraint => { 'min' => 0, 'max' => 297, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_MM, type => SANE_TYPE_FIXED, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { index => 12, title => 'Enhancement', 'cap' => 0, 'max_values' => 0, 'name' => '', 'unit' => SANE_UNIT_NONE, 'desc' => '', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { name => 'brightness', title => 'Brightness', index => 13, 'desc' => 'Controls the brightness of the acquired image.', 'val' => '0', constraint => { 'min' => -100, 'max' => 100, 'quant' => 1, }, 'unit' => SANE_UNIT_PERCENT, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'contrast', title => 'Contrast', index => 14, 'desc' => 'Controls the contrast of the acquired image.', 'val' => '0', constraint => { 'min' => -100, 'max' => 100, 'quant' => 1, }, 'unit' => SANE_UNIT_PERCENT, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'custom-gamma', title => 'Custom gamma', index => 15, 'desc' => 'Determines whether a builtin or a custom gamma-table should be used.', 'val' => SANE_FALSE, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_NONE, type => SANE_TYPE_BOOL, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'gamma-table', title => 'Gamma table', index => 16, 'desc' => 'Gamma-correction table. In color mode this option equally affects the red, green, and blue channels simultaneously (i.e., it is an intensity gamma table).', constraint => { 'min' => 0, 'max' => 255, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 255, }, { name => 'red-gamma-table', title => 'Red gamma table', index => 17, 'desc' => 'Gamma-correction table for the red band.', constraint => { 'min' => 0, 'max' => 255, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 255, }, { name => 'green-gamma-table', title => 'Green gamma table', index => 18, 'desc' => 'Gamma-correction table for the green band.', constraint => { 'min' => 0, 'max' => 255, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 255, }, { name => 'blue-gamma-table', title => 'Blue gamma table', index => 19, 'desc' => 'Gamma-correction table for the blue band.', constraint => { 'min' => 0, 'max' => 255, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 255, }, { index => 20, title => 'Device-Settings', 'cap' => 0, 'max_values' => 0, 'name' => '', 'unit' => SANE_UNIT_NONE, 'desc' => '', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { name => 'lamp-switch', title => 'Lamp switch', index => 21, 'desc' => 'Manually switching the lamp(s).', 'val' => SANE_FALSE, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_NONE, type => SANE_TYPE_BOOL, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'lampoff-time', title => 'Lampoff time', index => 22, 'desc' => 'Lampoff-time in seconds.', 'val' => '300', constraint => { 'min' => 0, 'max' => 999, 'quant' => 1, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'lamp-off-at-exit', title => 'Lamp off at exit', index => 23, 'desc' => 'Turn off lamp when program exits', 'val' => SANE_TRUE, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_NONE, type => SANE_TYPE_BOOL, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'warmup-time', title => 'Warmup time', index => 24, 'desc' => 'Warmup-time in seconds.', constraint => { 'min' => -1, 'max' => 999, 'quant' => 1, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 1, }, { name => 'calibration-cache', title => 'Calibration cache', index => 25, 'desc' => 'Enables or disables calibration data cache.', 'val' => SANE_FALSE, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_NONE, type => SANE_TYPE_BOOL, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'speedup-switch', title => 'Speedup switch', index => 26, 'desc' => 'Enables or disables speeding up sensor movement.', 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_NONE, type => SANE_TYPE_BOOL, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 1, }, { name => 'calibrate', title => 'Calibrate', index => 27, 'desc' => 'Performs calibration', 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_NONE, type => SANE_TYPE_BUTTON, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 0, }, { index => 28, title => 'Analog frontend', 'cap' => 0, 'max_values' => 0, 'name' => '', 'unit' => SANE_UNIT_NONE, 'desc' => '', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { name => 'red-gain', title => 'Red gain', index => 29, 'desc' => 'Red gain value of the AFE', 'val' => '-1', constraint => { 'min' => -1, 'max' => 63, 'quant' => 1, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'green-gain', title => 'Green gain', index => 30, 'desc' => 'Green gain value of the AFE', 'val' => '-1', constraint => { 'min' => -1, 'max' => 63, 'quant' => 1, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'blue-gain', title => 'Blue gain', index => 31, 'desc' => 'Blue gain value of the AFE', 'val' => '-1', constraint => { 'min' => -1, 'max' => 63, 'quant' => 1, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'red-offset', title => 'Red offset', index => 32, 'desc' => 'Red offset value of the AFE', 'val' => '-1', constraint => { 'min' => -1, 'max' => 63, 'quant' => 1, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'green-offset', title => 'Green offset', index => 33, 'desc' => 'Green offset value of the AFE', 'val' => '-1', constraint => { 'min' => -1, 'max' => 63, 'quant' => 1, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'blue-offset', title => 'Blue offset', index => 34, 'desc' => 'Blue offset value of the AFE', 'val' => '-1', constraint => { 'min' => -1, 'max' => 63, 'quant' => 1, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'redlamp-off', title => 'Redlamp off', index => 35, 'desc' => 'Defines red lamp off parameter', 'val' => '-1', constraint => { 'min' => -1, 'max' => 16363, 'quant' => 1, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'greenlamp-off', title => 'Greenlamp off', index => 36, 'desc' => 'Defines green lamp off parameter', 'val' => '-1', constraint => { 'min' => -1, 'max' => 16363, 'quant' => 1, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'bluelamp-off', title => 'Bluelamp off', index => 37, 'desc' => 'Defines blue lamp off parameter', 'val' => '-1', constraint => { 'min' => -1, 'max' => 16363, 'quant' => 1, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { index => 38, title => 'Buttons', 'cap' => 0, 'max_values' => 0, 'name' => '', 'unit' => SANE_UNIT_NONE, 'desc' => '', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, ); is_deeply( $options->{array}, \@that, 'canonLiDE25' ); is( Gscan2pdf::Scanner::Options->device, 'plustek:libusb:001:002', 'device name' ); gscan2pdf-1.2.3/t/44_cancel_rotate.t0000644000175000017500000000261712270574026015547 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 2; BEGIN { use Gscan2pdf::Document; use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert rose: test.jpg'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.jpg', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { my $pid = $slist->rotate( angle => 90, page => $slist->{data}[0][2], cancelled_callback => sub { is( -s 'test.jpg', -s "$slist->{data}[0][2]{filename}", 'image not rotated' ); $slist->save_image( path => 'test2.jpg', list_of_pages => [ $slist->{data}[0][2] ], finished_callback => sub { Gtk2->main_quit } ); } ); $slist->cancel($pid); } ); } ); Gtk2->main; is( system('identify test2.jpg'), 0, 'can create a valid JPG after cancelling previous process' ); ######################### unlink 'test.jpg', 'test2.jpg'; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/123_save_djvu_with_hocr.t0000644000175000017500000000331312270574026017050 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 1; BEGIN { use Gscan2pdf::Document; use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert rose: test.pnm'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.pnm', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { $slist->{data}[0][2]{hocr} = < OCR Output
The quick brown fox

EOS $slist->save_djvu( path => 'test.djvu', list_of_pages => [ $slist->{data}[0][2] ], finished_callback => sub { Gtk2->main_quit } ); } ); } ); Gtk2->main; like( `djvutxt test.djvu`, qr/The quick brown fox/, 'DjVu with expected text' ); ######################### unlink 'test.pnm', 'test.djvu'; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/170_import_multipage_TIFF.t0000644000175000017500000000151512237446416017215 0ustar jeffjeffuse warnings; use strict; use File::Temp; use Test::More tests => 1; BEGIN { use Gscan2pdf::Document; use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert rose: test.tif'); system('tiffcp test.tif test.tif test2.tif'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test2.tif', finished_callback => sub { my ($info) = @_; is( $info->{pages}, 2, 'found 2 pages' ); Gtk2->main_quit; } ); Gtk2->main; ######################### unlink 'test.tif', 'test2.tif', <$dir/*>; rmdir $dir; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/132_cancel_save_tiff.t0000644000175000017500000000247012270574026016272 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 1; BEGIN { use Gscan2pdf::Document; use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert rose: test.pnm'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.pnm', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { my $pid = $slist->save_tiff( path => 'test.tif', list_of_pages => [ $slist->{data}[0][2] ], cancelled_callback => sub { $slist->save_image( path => 'test.jpg', list_of_pages => [ $slist->{data}[0][2] ], finished_callback => sub { Gtk2->main_quit } ); } ); $slist->cancel($pid); } ); } ); Gtk2->main; is( system('identify test.jpg'), 0, 'can create a valid JPG after cancelling save TIFF process' ); ######################### unlink 'test.pnm', 'test.tif', 'test.jpg'; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/05_Dialog.t0000644000175000017500000000430112053230657014126 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 17; use Glib qw(TRUE FALSE); # To get TRUE and FALSE use Gtk2 -init; use Scalar::Util; BEGIN { use_ok('Gscan2pdf::Dialog'); } ######################### my $window = Gtk2::Window->new; ok( my $dialog = Gscan2pdf::Dialog->new( title => 'title', 'transient-for' => $window ), 'Created dialog' ); isa_ok( $dialog, 'Gscan2pdf::Dialog' ); is( $dialog->get('title'), 'title', 'title' ); is( $dialog->get('transient-for'), $window, 'transient-for' ); ok( $dialog->get('hide-on-delete') == FALSE, 'default destroy' ); is( $dialog->get('border-width'), 0, 'default border width' ); ok( my $vbox = $dialog->get('vbox'), 'Get vbox' ); isa_ok( $vbox, 'Gtk2::VBox' ); is( $vbox->get('border-width'), $dialog->get('border-width'), 'border width applied to vbox' ); my $border_width = 6; $dialog->set( 'border-width', $border_width ); is( $dialog->get('border-width'), $border_width, 'set border width' ); is( $vbox->get('border-width'), $border_width, 'new border width applied to vbox' ); $dialog = Gscan2pdf::Dialog->new; $dialog->signal_emit( 'delete_event', undef ); Scalar::Util::weaken($dialog); is( $dialog, undef, 'destroyed on delete_event' ); $dialog = Gscan2pdf::Dialog->new( 'hide-on-delete' => TRUE ); $dialog->signal_emit( 'delete_event', undef ); Scalar::Util::weaken($dialog); isnt( $dialog, undef, 'hidden on delete_event' ); $dialog = Gscan2pdf::Dialog->new; my $event = Gtk2::Gdk::Event->new('key-press'); $event->keyval( $Gtk2::Gdk::Keysyms{Escape} ); $dialog->signal_emit( 'key_press_event', $event ); Scalar::Util::weaken($dialog); is( $dialog, undef, 'destroyed on escape' ); $dialog = Gscan2pdf::Dialog->new( 'hide-on-delete' => TRUE ); $dialog->signal_emit( 'key_press_event', $event ); Scalar::Util::weaken($dialog); isnt( $dialog, undef, 'hidden on escape' ); $dialog = Gscan2pdf::Dialog->new; $dialog->signal_connect_after( key_press_event => sub { my ( $widget, $event ) = @_; is( $event->keyval, $Gtk2::Gdk::Keysyms{Delete}, 'other key press events still propagate' ); } ); $event = Gtk2::Gdk::Event->new('key-press'); $event->keyval( $Gtk2::Gdk::Keysyms{Delete} ); $dialog->signal_emit( 'key_press_event', $event ); __END__ gscan2pdf-1.2.3/t/22_analyse_blank.t0000644000175000017500000000231612053230657015535 0ustar jeffjeffuse warnings; use strict; use File::Basename; # Split filename into dir, file, ext use Test::More tests => 3; BEGIN { use_ok('Gscan2pdf::Document'); use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert xc:white white.pnm'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'white.pnm', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { $slist->analyse( page => $slist->{data}[0][2], finished_callback => sub { is( $slist->{data}[0][2]{std_dev}, 0, 'Found blank page' ); is( dirname("$slist->{data}[0][2]{filename}"), "$dir", 'using session directory' ); Gtk2->main_quit; } ); } ); } ); Gtk2->main; ######################### unlink 'white.pnm', <$dir/*>; rmdir $dir; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/07_Dialog_Renumber.t0000644000175000017500000000410512053230657015771 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 14; use Glib qw(TRUE FALSE); # To get TRUE and FALSE use Gtk2 -init; BEGIN { use_ok('Gscan2pdf::Dialog::Renumber'); } ######################### Glib::set_application_name('gscan2pdf'); use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); my $window = Gtk2::Window->new; my $slist = Gscan2pdf::Document->new; ok( my $dialog = Gscan2pdf::Dialog::Renumber->new( document => $slist, 'transient-for' => $window ), 'Created dialog' ); isa_ok( $dialog, 'Gscan2pdf::Dialog::Renumber' ); is( $dialog->get('start'), 1, 'default start for empty document' ); is( $dialog->get('increment'), 1, 'default step for empty document' ); ######################### $slist = Gscan2pdf::Document->new; @{ $slist->{data} } = ( [ 1, undef, undef ], [ 2, undef, undef ] ); $slist->select(1); my @selected = $slist->get_selected_indices; is_deeply( \@selected, [1], 'selected' ); $dialog->set( 'range', 'selected' ); $dialog->set( 'document', $slist ); is( $dialog->get('start'), 2, 'start for document with start clash' ); is( $dialog->get('increment'), 1, 'step for document with start clash' ); ######################### @{ $slist->{data} } = ( [ 1, undef, undef ], [ 3, undef, undef ], [ 5, undef, undef ], [ 7, undef, undef ] ); $slist->select( 2, 3 ); @selected = $slist->get_selected_indices; is_deeply( \@selected, [ 2, 3 ], 'selected' ); $dialog->set( 'range', 'selected' ); is( $dialog->get('start'), 4, 'start for document with start and step clash' ); is( $dialog->get('increment'), 1, 'step for document with start and step clash' ); ######################### $dialog->set( 'increment', 0 ); is( $dialog->get('start'), 4, 'start for document with negative step' ); is( $dialog->get('increment'), -2, 'step for document with negative step' ); $dialog->signal_connect( 'before-renumber' => sub { ok( 1, 'before-renumber signal fired on renumber' ); } ); $dialog->renumber; ######################### Gscan2pdf::Document->quit(); __END__ gscan2pdf-1.2.3/t/02_Scanner_Options_Brother_MFC_5100c.t0000644000175000017500000001212112271200642021002 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 3; use Sane 0.05; # For enums BEGIN { use_ok('Gscan2pdf::Scanner::Options') } ######################### my $filename = 'scanners/Brother_MFC_5100c'; my $output = do { local ( @ARGV, $/ ) = $filename; <> }; my $options = Gscan2pdf::Scanner::Options->new_from_data($output); my @that = ( { 'index' => 0, }, { title => 'Mode', 'index' => 1, type => SANE_TYPE_GROUP, 'cap' => 0, 'max_values' => 0, 'name' => '', 'unit' => SANE_UNIT_NONE, 'desc' => '', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { name => 'mode', title => 'Mode', index => 2, 'desc' => 'Select the scan mode', 'val' => '24bit Color', 'constraint' => [ 'Black & White', 'Gray[Error Diffusion]', 'True Gray', '24bit Color', ], constraint_type => SANE_CONSTRAINT_STRING_LIST, 'unit' => SANE_UNIT_NONE, type => SANE_TYPE_STRING, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'resolution', title => 'Resolution', index => 3, 'desc' => 'Sets the resolution of the scanned image.', 'val' => '200', 'constraint' => [ '100', '150', '200', '300', '400', '600', '1200', '2400', '4800', '9600' ], 'unit' => SANE_UNIT_DPI, constraint_type => SANE_CONSTRAINT_WORD_LIST, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'source', title => 'Source', index => 4, 'desc' => 'Selects the scan source (such as a document-feeder).', 'val' => 'Automatic Document Feeder', 'constraint' => [ 'FlatBed', 'Automatic Document Feeder' ], 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_STRING_LIST, type => SANE_TYPE_STRING, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'brightness', title => 'Brightness', index => 5, 'desc' => 'Controls the brightness of the acquired image.', constraint => { 'min' => -50, 'max' => 50, 'quant' => 1, }, 'unit' => SANE_UNIT_PERCENT, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 1, }, { name => 'contrast', title => 'Contrast', index => 6, 'desc' => 'Controls the contrast of the acquired image.', constraint => { 'min' => -50, 'max' => 50, 'quant' => 1, }, 'unit' => SANE_UNIT_PERCENT, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 1, }, { index => 7, title => 'Geometry', 'cap' => 0, 'max_values' => 0, 'name' => '', 'unit' => SANE_UNIT_NONE, 'desc' => '', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { name => 'l', title => 'Top-left x', index => 8, 'desc' => 'Top-left x position of scan area.', 'val' => 0, constraint => { 'min' => 0, 'max' => 208, 'quant' => 0.0999908, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_MM, type => SANE_TYPE_FIXED, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 't', title => 'Top-left y', index => 9, 'desc' => 'Top-left y position of scan area.', 'val' => 0, constraint => { 'min' => 0, 'max' => 355.6, 'quant' => 0.0999908, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_MM, type => SANE_TYPE_FIXED, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'x', title => 'Width', index => 10, 'desc' => 'Width of scan-area.', 'val' => 207.981, constraint => { 'min' => 0, 'max' => 208, 'quant' => 0.0999908, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_MM, type => SANE_TYPE_FIXED, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'y', title => 'Height', index => 11, 'desc' => 'Height of scan-area.', 'val' => 296.973, constraint => { 'min' => 0, 'max' => 355.6, 'quant' => 0.0999908, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_MM, type => SANE_TYPE_FIXED, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, } ); is_deeply( $options->{array}, \@that, 'Brother_MFC_5100c' ); is( Gscan2pdf::Scanner::Options->device, 'brother:bus1;dev2', 'device name' ); gscan2pdf-1.2.3/t/30_tesseract_in_thread.t0000644000175000017500000000326612105002475016741 0ustar jeffjeffuse warnings; use strict; use File::Basename; # Split filename into dir, file, ext use Test::More tests => 6; BEGIN { use Gscan2pdf::Document; use_ok('Gscan2pdf::Tesseract'); use Gtk2 -init; # Could just call init separately } use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); SKIP: { skip 'Tesseract not installed', 5 unless Gscan2pdf::Tesseract->setup($logger); # Create test image system( 'convert +matte -depth 1 -colorspace Gray -pointsize 12 -density 300 label:"The quick brown fox" test.png' ); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.png', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { $slist->tesseract( page => $slist->{data}[0][2], language => 'eng', finished_callback => sub { like( $slist->{data}[0][2]{hocr}, qr/The/, 'Tesseract returned "The"' ); like( $slist->{data}[0][2]{hocr}, qr/quick/, 'Tesseract returned "quick"' ); like( $slist->{data}[0][2]{hocr}, qr/brown/, 'Tesseract returned "brown"' ); like( $slist->{data}[0][2]{hocr}, qr/fox/, 'Tesseract returned "fox"' ); is( dirname("$slist->{data}[0][2]{filename}"), "$dir", 'using session directory' ); Gtk2->main_quit; } ); } ); } ); Gtk2->main; unlink 'test.png', <$dir/*>; rmdir $dir; } Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/119_save_pdf_with_non-utf8.t0000644000175000017500000000224312053230657017400 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 1; BEGIN { use Gscan2pdf::Document; use Gtk2 -init; # Could just call init separately use PDF::API2; } ######################### Glib::set_application_name('gscan2pdf'); use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert rose: test.pnm'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.pnm', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { $slist->{data}[0][2]{hocr} = Gscan2pdf::Document::slurp('t/non-utf8.html'); $slist->save_pdf( path => 'test.pdf', list_of_pages => [ $slist->{data}[0][2] ], finished_callback => sub { Gtk2->main_quit } ); } ); } ); Gtk2->main; ok( 1, 'PDF with expected text' ); ######################### unlink 'test.pnm', 'test.pdf'; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/131_save_tiff.t0000644000175000017500000000207112053230657014757 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 2; BEGIN { use_ok('Gscan2pdf::Document'); use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert rose: test.pnm'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.pnm', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { $slist->save_tiff( path => 'test.tif', list_of_pages => [ $slist->{data}[0][2] ], finished_callback => sub { Gtk2->main_quit } ); } ); } ); Gtk2->main; is( system('identify test.tif'), 0, 'valid TIFF created' ); ######################### unlink 'test.pnm', 'test.tif'; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/373_user_defined.t0000644000175000017500000000371312237446416015467 0ustar jeffjeffuse warnings; use strict; use File::Basename; # Split filename into dir, file, ext use Test::More tests => 5; BEGIN { use Gscan2pdf::Document; use Gtk2 -init; # Could just call init separately } use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); Gscan2pdf::Document->setup(Log::Log4perl::get_logger); my %paper_sizes = ( A4 => { x => 210, y => 297, l => 0, t => 0, }, 'US Letter' => { x => 216, y => 279, l => 0, t => 0, }, 'US Legal' => { x => 216, y => 356, l => 0, t => 0, }, ); # Create test image system('convert -size 210x297 xc:white white.pnm'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->set_paper_sizes( \%paper_sizes ); $slist->get_file_info( path => 'white.pnm', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { is( int( abs( $slist->{data}[0][2]{resolution} - 25.4 ) ), 0, 'Resolution of imported image' ); $slist->user_defined( page => $slist->{data}[0][2], command => 'convert %i tmp.pbm;mv tmp.pbm %i', finished_callback => sub { is( int( abs( $slist->{data}[0][2]{resolution} - 25.4 ) ), 0, 'Resolution of converted image' ); my ( $dir, $base, $suffix ) = fileparse( "$slist->{data}[0][2]{filename}", qr/\.[^.]*/ ); is( $dir, "$dir", 'using session directory' ); is( $suffix, ".pbm", 'still has an extension' ); $slist->save_pdf( path => 'test.pdf', list_of_pages => [ $slist->{data}[0][2] ], finished_callback => sub { Gtk2->main_quit } ); } ); } ); } ); Gtk2->main; like( `pdfinfo test.pdf`, qr/A4/, 'PDF is A4' ); ######################### unlink 'white.pnm', 'test.pdf', <$dir/*>; rmdir $dir; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/161_import_TIFF.t0000644000175000017500000000230112053230657015132 0ustar jeffjeffuse warnings; use strict; use File::Basename; # Split filename into dir, file, ext use Test::More tests => 3; BEGIN { use_ok('Gscan2pdf::Document'); use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert rose: test.tif'); my $old = `identify -format '%m %G %g %z-bit %r' test.tif`; my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.tif', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { is( `identify -format '%m %G %g %z-bit %r' $slist->{data}[0][2]{filename}`, $old, 'TIFF imported correctly' ); is( dirname("$slist->{data}[0][2]{filename}"), "$dir", 'using session directory' ); Gtk2->main_quit; } ); } ); Gtk2->main; ######################### unlink 'test.tif', <$dir/*>; rmdir $dir; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/21_rotate.t0000644000175000017500000000240112053230657014222 0ustar jeffjeffuse warnings; use strict; use File::Basename; # Split filename into dir, file, ext use Test::More tests => 3; BEGIN { use_ok('Gscan2pdf::Document'); use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert rose: test.jpg'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.jpg', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { $slist->rotate( angle => 90, page => $slist->{data}[0][2], finished_callback => sub { is( system("identify $slist->{data}[0][2]{filename}"), 0, 'valid JPG created' ); is( dirname("$slist->{data}[0][2]{filename}"), "$dir", 'using session directory' ); Gtk2->main_quit; } ); } ); } ); Gtk2->main; ######################### unlink 'test.jpg', <$dir/*>; rmdir $dir; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/01_scan_sane.t0000644000175000017500000000151212270574026014660 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 2; BEGIN { use_ok('Gscan2pdf::Frontend::Sane'); use Gtk2; } ######################### Glib::set_application_name('gscan2pdf'); use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Frontend::Sane->setup($logger); Gscan2pdf::Frontend::Sane->open_device( device_name => 'test', finished_callback => sub { Gscan2pdf::Frontend::Sane->scan_pages( dir => '.', format => 'out%d.pnm', start => 1, step => 1, npages => 1, finished_callback => sub { is( -s 'out1.pnm', 30807, 'PNM created with expected size' ); Gtk2->main_quit; } ); } ); Gtk2->main; ######################### unlink 'out1.pnm'; Gscan2pdf::Frontend::Sane->quit(); gscan2pdf-1.2.3/t/28_to_png.t0000644000175000017500000000234312053230657014226 0ustar jeffjeffuse warnings; use strict; use File::Basename; # Split filename into dir, file, ext use Test::More tests => 3; BEGIN { use_ok('Gscan2pdf::Document'); use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert rose: test.pnm'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.pnm', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { $slist->to_png( page => $slist->{data}[0][2], finished_callback => sub { is( system("identify $slist->{data}[0][2]{filename}"), 0, 'valid PNG created' ); is( dirname("$slist->{data}[0][2]{filename}"), "$dir", 'using session directory' ); Gtk2->main_quit; } ); } ); } ); Gtk2->main; ######################### unlink 'test.pnm', <$dir/*>; rmdir $dir; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/27_crop.t0000644000175000017500000000255612053230657013710 0ustar jeffjeffuse warnings; use strict; use File::Basename; # Split filename into dir, file, ext use Test::More tests => 3; BEGIN { use_ok('Gscan2pdf::Document'); use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert rose: test.gif'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.gif', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { $slist->crop( page => $slist->{data}[0][2], x => 10, y => 10, w => 10, h => 10, finished_callback => sub { is( `identify -format '%g' $slist->{data}[0][2]{filename}`, "10x10+0+0\n", 'GIF cropped correctly' ); is( dirname("$slist->{data}[0][2]{filename}"), "$dir", 'using session directory' ); Gtk2->main_quit; } ); } ); } ); Gtk2->main; ######################### unlink 'test.gif', <$dir/*>; rmdir $dir; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/49_cancel_to_png.t0000644000175000017500000000270312270574026015540 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 2; BEGIN { use Gscan2pdf::Document; use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert rose: test.pnm'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.pnm', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { my $md5sum = `md5sum $slist->{data}[0][2]{filename} | cut -c -32`; my $pid = $slist->to_png( page => $slist->{data}[0][2], cancelled_callback => sub { is( $md5sum, `md5sum $slist->{data}[0][2]{filename} | cut -c -32`, 'image not modified' ); $slist->save_image( path => 'test.jpg', list_of_pages => [ $slist->{data}[0][2] ], finished_callback => sub { Gtk2->main_quit } ); } ); $slist->cancel($pid); } ); } ); Gtk2->main; is( system('identify test.jpg'), 0, 'can create a valid JPG after cancelling previous process' ); ######################### unlink 'test.pnm', 'test.jpg'; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/24_threshold.t0000644000175000017500000000240412053230657014726 0ustar jeffjeffuse warnings; use strict; use File::Basename; # Split filename into dir, file, ext use Test::More tests => 3; BEGIN { use_ok('Gscan2pdf::Document'); use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert rose: test.jpg'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.jpg', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { $slist->threshold( threshold => 80, page => $slist->{data}[0][2], finished_callback => sub { is( system("identify $slist->{data}[0][2]{filename}"), 0, 'valid PNG created' ); is( dirname("$slist->{data}[0][2]{filename}"), "$dir", 'using session directory' ); Gtk2->main_quit; } ); } ); } ); Gtk2->main; ######################### unlink 'test.jpg', <$dir/*>; rmdir $dir; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/08_Frontend_CLI.t0000644000175000017500000001201712237446454015213 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 29; BEGIN { use_ok('Gscan2pdf::Frontend::CLI'); } ######################### Glib::set_application_name('gscan2pdf'); use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Frontend::CLI->setup($logger); ######################### my $output = <<'END'; '0','test:0','Noname','frontend-tester','virtual device' '1','test:1','Noname','frontend-tester','virtual device' END is_deeply( Gscan2pdf::Frontend::CLI->parse_device_list($output), [ { 'name' => 'test:0', 'model' => 'frontend-tester', 'type' => 'virtual device', 'vendor' => 'Noname' }, { 'name' => 'test:1', 'model' => 'frontend-tester', 'type' => 'virtual device', 'vendor' => 'Noname' } ], "basic parse_device_list functionality" ); ######################### is_deeply( Gscan2pdf::Frontend::CLI->parse_device_list(''), [], "parse_device_list no devices" ); ######################### my $loop = Glib::MainLoop->new; Gscan2pdf::Frontend::CLI::_watch_cmd( cmd => 'echo hello stdout', started_callback => sub { ok( 1, 'started watching only stdout' ); }, out_callback => sub { my ($output) = @_; is( $output, "hello stdout\n", 'stdout watching only stdout' ); }, finished_callback => sub { my ( $output, $error ) = @_; is( $output, "hello stdout\n", 'stdout finished watching only stdout' ); is( $error, undef, 'stderr finished watching only stdout' ); $loop->quit; } ); $loop->run; ######################### $loop = Glib::MainLoop->new; Gscan2pdf::Frontend::CLI::_watch_cmd( cmd => 'echo hello stderr 1>&2', started_callback => sub { ok( 1, 'started watching only stderr' ); }, err_callback => sub { my ($output) = @_; is( $output, "hello stderr\n", 'stderr watching only stderr' ); }, finished_callback => sub { my ( $output, $error ) = @_; is( $output, undef, 'stdout finished watching only stderr' ); is( $error, "hello stderr\n", 'stderr finished watching only stderr' ); $loop->quit; } ); $loop->run; ######################### $loop = Glib::MainLoop->new; Gscan2pdf::Frontend::CLI::_watch_cmd( cmd => 'echo hello stdout; echo hello stderr 1>&2', started_callback => sub { ok( 1, 'started watching stdout and stderr' ); }, out_callback => sub { my ($output) = @_; is( $output, "hello stdout\n", 'stdout watching stdout and stderr' ); }, err_callback => sub { my ($output) = @_; is( $output, "hello stderr\n", 'stderr watching stdout and stderr' ); }, finished_callback => sub { my ( $output, $error ) = @_; is( $output, "hello stdout\n", 'stdout finished watching stdout and stderr' ); is( $error, "hello stderr\n", 'stderr finished watching stdout and stderr' ); $loop->quit; } ); $loop->run; ######################### $loop = Glib::MainLoop->new; my $cmd = 'cat scanners/*'; Gscan2pdf::Frontend::CLI::_watch_cmd( cmd => $cmd, started_callback => sub { ok( 1, 'started watching large amounts of stdout' ); }, finished_callback => sub { my ( $output, $error ) = @_; is( length($output) . "\n", `$cmd | wc -c`, 'stdout finished watching large amounts of stdout' ); is( $error, undef, 'stderr finished watching large amounts of stdout' ); $loop->quit; } ); $loop->run; ######################### $loop = Glib::MainLoop->new; Gscan2pdf::Frontend::CLI->find_scan_options( device => 'test', finished_callback => sub { my ($options) = @_; is( $options->by_name('source')->{name}, 'source', 'by_name' ); is( $options->by_name('button')->{name}, 'button', 'by_name' ); is( $options->by_name('mode')->{val}, 'Gray', 'find_scan_options default option' ); $loop->quit; } ); $loop->run; ######################### $loop = Glib::MainLoop->new; Gscan2pdf::Frontend::CLI->find_scan_options( device => 'test', options => [ { mode => 'Color' } ], finished_callback => sub { my ($options) = @_; is( $options->by_name('mode')->{val}, 'Color', 'find_scan_options with option' ); $loop->quit; } ); $loop->run; ######################### $loop = Glib::MainLoop->new; Gscan2pdf::Frontend::CLI->scan_pages( frontend => 'scanimage', device => 'test', npages => 1, started_callback => sub { ok( 1, 'scanimage starts' ); }, new_page_callback => sub { my ($n) = @_; my $path = sprintf( "out%d.pnm", $n ); ok( -e $path, 'scanimage scans' ); unlink $path; }, finished_callback => sub { ok( 1, 'scanimage finishes' ); $loop->quit; }, ); $loop->run; ######################### $loop = Glib::MainLoop->new; Gscan2pdf::Frontend::CLI->scan_pages( frontend => 'scanadf', device => 'test', npages => 1, started_callback => sub { ok( 1, 'scanadf starts' ); }, new_page_callback => sub { my ($n) = @_; my $path = sprintf( "out%d.pnm", $n ); ok( -e $path, 'scanadf scans' ); unlink $path; }, finished_callback => sub { ok( 1, 'scanadf finishes' ); $loop->quit; }, ); $loop->run; ######################### __END__ gscan2pdf-1.2.3/t/80_scanimage-perl.t0000644000175000017500000000166612053230657015634 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 3; ######################### ok( !system('perl bin/scanimage-perl --device=test --test > /dev/null 2>&1'), 'test' ); ######################### SKIP: { skip 'scanimage v1.0.23 not installed', 2 unless ( `scanimage --version` eq "scanimage (sane-backends) 1.0.23; backend version 1.0.23\n" ); my $output = `perl bin/scanimage-perl --device=test --help`; $output =~ s/scanimage-perl/scanimage/g; my $example = `scanimage --device=test --help`; my @output = split( "\n", $output ); my @example = split( "\n", $example ); is_deeply( \@output, \@example, "basic help functionality" ); ######################### $output = `perl bin/scanimage-perl --device=test --all`; $output =~ s/scanimage-perl/scanimage/g; $example = `scanimage --device=test --all`; @output = split( "\n", $output ); @example = split( "\n", $example ); is_deeply( \@output, \@example, "all options" ); } gscan2pdf-1.2.3/t/152_save_utf8.t0000644000175000017500000000230012270574026014715 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 1; BEGIN { use Gscan2pdf::Document; use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert rose: test.pnm'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.pnm', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { $slist->{data}[0][2]{hocr} = 'пени способствовала сохранению'; $slist->save_text( path => 'test.txt', list_of_pages => [ $slist->{data}[0][2] ], finished_callback => sub { Gtk2->main_quit } ); } ); } ); Gtk2->main; is( `cat test.txt`, 'пени способствовала сохранению', 'saved UTF8' ); ######################### unlink 'test.pnm', 'test.txt'; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/064_Dialog_Scan_CLI.t0000644000175000017500000000454012237446454015663 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 13; use Glib qw(TRUE FALSE); # To get TRUE and FALSE use Gtk2 -init; # Could just call init separately BEGIN { use_ok('Gscan2pdf::Dialog::Scan::CLI'); } ######################### my $window = Gtk2::Window->new; Glib::set_application_name('gscan2pdf'); use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Frontend::CLI->setup($logger); ok( my $dialog = Gscan2pdf::Dialog::Scan::CLI->new( title => 'title', 'transient-for' => $window, 'logger' => $logger, 'visible-scan-options' => { mode => 1 }, ), 'Created dialog' ); isa_ok( $dialog, 'Gscan2pdf::Dialog::Scan::CLI' ); is_deeply( $dialog->get('visible-scan-options'), { mode => 1 }, 'initial visible-scan-options' ); my $signal; $signal = $dialog->signal_connect( 'changed-option-visibility' => sub { ok( 1, 'changed-option-visibility' ); is_deeply( $dialog->get('visible-scan-options'), { mode => 0 }, 'updated visible-scan-options' ); $dialog->signal_handler_disconnect($signal); $dialog->set( 'visible-scan-options', { mode => 1 } ); is_deeply( $dialog->get('visible-scan-options'), { mode => 1 }, 'reset visible-scan-options' ); } ); $dialog->set( 'visible-scan-options', { mode => 0 } ); $dialog->signal_connect( 'changed-device-list' => sub { ok( 1, 'changed-device-list' ); is_deeply( $dialog->get('device-list'), [ { 'name' => 'test', 'model' => 'test', 'label' => 'test' } ], 'add model field if missing' ); $signal = $dialog->signal_connect( 'changed-device' => sub { my ( $widget, $name ) = @_; is( $name, 'test', 'changed-device' ); $dialog->signal_handler_disconnect($signal); } ); $dialog->set( 'device', 'test' ); } ); $dialog->set( 'device-list', [ { 'name' => 'test' } ] ); $signal = $dialog->signal_connect( 'reloaded-scan-options' => sub { ok( 1, 'reloaded-scan-options' ); $dialog->signal_handler_disconnect($signal); my $options = $dialog->get('available-scan-options'); my $option = $options->by_name('mode'); is( $option->{widget}->visible, TRUE, 'mode widget visible' ); $dialog->set( 'visible-scan-options', { mode => 0 } ); is( $option->{widget}->visible, '', 'mode widget hidden by title' ); Gtk2->main_quit; } ); Gtk2->main; __END__ gscan2pdf-1.2.3/t/02_Scanner_Options_epson1.t0000644000175000017500000005017712271200642017322 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 3; use Sane 0.05; # For enums BEGIN { use_ok('Gscan2pdf::Scanner::Options') } ######################### my $filename = 'scanners/epson1'; my $output = do { local ( @ARGV, $/ ) = $filename; <> }; my $options = Gscan2pdf::Scanner::Options->new_from_data($output); my @that = ( { 'index' => 0, }, { index => 1, title => 'Scan Mode', 'cap' => 0, 'max_values' => 0, 'name' => '', 'unit' => SANE_UNIT_NONE, 'desc' => '', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { name => 'mode', title => 'Mode', index => 2, 'desc' => 'Selects the scan mode (e.g., lineart, monochrome, or color).', 'val' => 'Binary', 'constraint' => [ 'Binary', 'Gray', 'Color' ], 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_STRING_LIST, type => SANE_TYPE_STRING, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'depth', title => 'Depth', index => 3, 'desc' => 'Number of bits per sample, typical values are 1 for "line-art" and 8 for multibit scans.', 'constraint' => [ '8', '16' ], 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_WORD_LIST, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 1, }, { name => 'halftoning', title => 'Halftoning', index => 4, 'desc' => 'Selects the halftone.', 'val' => 'Halftone A (Hard Tone)', 'constraint' => [ 'None', 'Halftone A (Hard Tone)', 'Halftone B (Soft Tone)', 'Halftone C (Net Screen)', 'Dither A (4x4 Bayer)', 'Dither B (4x4 Spiral)', 'Dither C (4x4 Net Screen)', 'Dither D (8x4 Net Screen)', 'Text Enhanced Technology', 'Download pattern A', 'Download pattern B' ], 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_STRING_LIST, type => SANE_TYPE_STRING, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'dropout', title => 'Dropout', index => 5, 'desc' => 'Selects the dropout.', 'val' => 'None', 'constraint' => [ 'None', 'Red', 'Green', 'Blue' ], 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_STRING_LIST, type => SANE_TYPE_STRING, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'brightness', title => 'Brightness', index => 6, 'desc' => 'Selects the brightness.', 'val' => '0', constraint => { 'min' => -4, 'max' => 3, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'sharpness', title => 'Sharpness', index => 7, 'desc' => '', 'val' => '0', constraint => { 'min' => -2, 'max' => 2, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'gamma-correction', title => 'Gamma correction', index => 8, 'desc' => 'Selects the gamma correction value from a list of pre-defined devices or the user defined table, which can be downloaded to the scanner', 'val' => 'Default', 'constraint' => [ 'Default', 'User defined', 'High density printing', 'Low density printing', 'High contrast printing' ], 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_STRING_LIST, type => SANE_TYPE_STRING, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'color-correction', title => 'Color correction', index => 9, 'desc' => 'Sets the color correction table for the selected output device.', 'val' => 'CRT monitors', 'constraint' => [ 'No Correction', 'User defined', 'Impact-dot printers', 'Thermal printers', 'Ink-jet printers', 'CRT monitors' ], 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_STRING_LIST, type => SANE_TYPE_STRING, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'resolution', title => 'Resolution', index => 10, 'desc' => 'Sets the resolution of the scanned image.', 'val' => '50', 'constraint' => [ '50', '60', '72', '75', '80', '90', '100', '120', '133', '144', '150', '160', '175', '180', '200', '216', '240', '266', '300', '320', '350', '360', '400', '480', '600', '720', '800', '900', '1200', '1600', '1800', '2400', '3200' ], 'unit' => SANE_UNIT_DPI, constraint_type => SANE_CONSTRAINT_WORD_LIST, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'threshold', title => 'Threshold', index => 11, 'desc' => 'Select minimum-brightness to get a white point', constraint => { 'min' => 0, 'max' => 255, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 1, }, { index => 12, title => 'Advanced', 'cap' => 0, 'max_values' => 0, 'name' => '', 'unit' => SANE_UNIT_NONE, 'desc' => '', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { name => 'mirror', title => 'Mirror', index => 13, 'desc' => 'Mirror the image.', 'val' => SANE_FALSE, 'unit' => SANE_UNIT_NONE, 'type' => SANE_TYPE_BOOL, 'constraint_type' => SANE_CONSTRAINT_NONE, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'speed', title => 'Speed', index => 14, 'desc' => 'Determines the speed at which the scan proceeds.', 'val' => SANE_FALSE, 'unit' => SANE_UNIT_NONE, 'type' => SANE_TYPE_BOOL, 'constraint_type' => SANE_CONSTRAINT_NONE, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'auto-area-segmentation', title => 'Auto area segmentation', index => 15, 'desc' => '', 'val' => SANE_TRUE, 'unit' => SANE_UNIT_NONE, 'type' => SANE_TYPE_BOOL, 'constraint_type' => SANE_CONSTRAINT_NONE, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'short-resolution', title => 'Short resolution', index => 16, 'desc' => 'Display short resolution list', 'val' => SANE_FALSE, 'unit' => SANE_UNIT_NONE, 'type' => SANE_TYPE_BOOL, 'constraint_type' => SANE_CONSTRAINT_NONE, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'zoom', title => 'Zoom', index => 17, 'desc' => 'Defines the zoom factor the scanner will use', constraint => { 'min' => 50, 'max' => 200, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 1, }, { name => 'red-gamma-table', title => 'Red gamma table', index => 18, 'desc' => 'Gamma-correction table for the red band.', constraint => { 'min' => 0, 'max' => 255, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 255, }, { name => 'green-gamma-table', title => 'Green gamma table', index => 19, 'desc' => 'Gamma-correction table for the green band.', constraint => { 'min' => 0, 'max' => 255, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 255, }, { name => 'blue-gamma-table', title => 'Blue gamma table', index => 20, 'desc' => 'Gamma-correction table for the blue band.', constraint => { 'min' => 0, 'max' => 255, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 255, }, { name => 'wait-for-button', title => 'Wait for button', index => 21, 'desc' => 'After sending the scan command, wait until the button on the scanner is pressed to actually start the scan process.', 'val' => SANE_FALSE, 'unit' => SANE_UNIT_NONE, 'type' => SANE_TYPE_BOOL, 'constraint_type' => SANE_CONSTRAINT_NONE, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { index => 22, title => 'Color correction coefficients', 'cap' => 0, 'max_values' => 0, 'name' => '', 'unit' => SANE_UNIT_NONE, 'desc' => '', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { name => 'cct-1', title => 'CCT 1', index => 23, 'desc' => 'Controls green level', constraint => { 'min' => -127, 'max' => 127, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 1, }, { name => 'cct-2', title => 'CCT 2', index => 24, 'desc' => 'Adds to red based on green level', constraint => { 'min' => -127, 'max' => 127, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 1, }, { name => 'cct-3', title => 'CCT 3', index => 25, 'desc' => 'Adds to blue based on green level', constraint => { 'min' => -127, 'max' => 127, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 1, }, { name => 'cct-4', title => 'CCT 4', index => 26, 'desc' => 'Adds to green based on red level', constraint => { 'min' => -127, 'max' => 127, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 1, }, { name => 'cct-5', title => 'CCT 5', index => 27, 'desc' => 'Controls red level', constraint => { 'min' => -127, 'max' => 127, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 1, }, { name => 'cct-6', title => 'CCT 6', index => 28, 'desc' => 'Adds to blue based on red level', constraint => { 'min' => -127, 'max' => 127, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 1, }, { name => 'cct-7', title => 'CCT 7', index => 29, 'desc' => 'Adds to green based on blue level', constraint => { 'min' => -127, 'max' => 127, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 1, }, { name => 'cct-8', title => 'CCT 8', index => 30, 'desc' => 'Adds to red based on blue level', constraint => { 'min' => -127, 'max' => 127, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 1, }, { name => 'cct-9', title => 'CCT 9', index => 31, 'desc' => 'Controls blue level', constraint => { 'min' => -127, 'max' => 127, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 1, }, { index => 32, title => 'Preview', 'cap' => 0, 'max_values' => 0, 'name' => '', 'unit' => SANE_UNIT_NONE, 'desc' => '', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { name => 'preview', title => 'Preview', index => 33, 'desc' => 'Request a preview-quality scan.', 'val' => SANE_FALSE, 'unit' => SANE_UNIT_NONE, 'type' => SANE_TYPE_BOOL, 'constraint_type' => SANE_CONSTRAINT_NONE, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'preview-speed', title => 'Preview speed', index => 34, 'desc' => '', 'val' => SANE_FALSE, 'unit' => SANE_UNIT_NONE, 'type' => SANE_TYPE_BOOL, 'constraint_type' => SANE_CONSTRAINT_NONE, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { index => 35, title => 'Geometry', 'cap' => 0, 'max_values' => 0, 'name' => '', 'unit' => SANE_UNIT_NONE, 'desc' => '', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { name => 'l', title => 'Top-left x', index => 36, 'desc' => 'Top-left x position of scan area.', 'val' => 0, constraint => { 'min' => 0, 'max' => 215.9, }, 'unit' => SANE_UNIT_MM, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_FIXED, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 't', title => 'Top-left y', index => 37, 'desc' => 'Top-left y position of scan area.', 'val' => 0, constraint => { 'min' => 0, 'max' => 297.18, }, 'unit' => SANE_UNIT_MM, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_FIXED, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'x', title => 'Width', index => 38, 'desc' => 'Width of scan-area.', 'val' => 215.9, constraint => { 'min' => 0, 'max' => 215.9, }, 'unit' => SANE_UNIT_MM, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_FIXED, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'y', title => 'Height', index => 39, 'desc' => 'Height of scan-area.', 'val' => 297.18, constraint => { 'min' => 0, 'max' => 297.18, }, 'unit' => SANE_UNIT_MM, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_FIXED, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'quick-format', title => 'Quick format', index => 40, 'desc' => '', 'val' => 'Max', 'constraint' => [ 'CD', 'A5 portrait', 'A5 landscape', 'Letter', 'A4', 'Max' ], 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_STRING_LIST, type => SANE_TYPE_STRING, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { index => 41, title => 'Optional equipment', 'cap' => 0, 'max_values' => 0, 'name' => '', 'unit' => SANE_UNIT_NONE, 'desc' => '', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { name => 'source', title => 'Source', index => 42, 'desc' => 'Selects the scan source (such as a document-feeder).', 'val' => 'Flatbed', 'constraint' => [ 'Flatbed', 'Transparency Unit' ], 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_STRING_LIST, type => SANE_TYPE_STRING, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'auto-eject', title => 'Auto eject', index => 43, 'desc' => 'Eject document after scanning', 'unit' => SANE_UNIT_NONE, 'type' => SANE_TYPE_BOOL, 'constraint_type' => SANE_CONSTRAINT_NONE, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 1, }, { name => 'film-type', title => 'Film type', index => 44, 'desc' => '', 'constraint' => [ 'Positive Film', 'Negative Film' ], 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_STRING_LIST, type => SANE_TYPE_STRING, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 1, }, { name => 'focus-position', title => 'Focus position', index => 45, 'desc' => 'Sets the focus position to either the glass or 2.5mm above the glass', 'val' => 'Focus on glass', 'constraint' => [ 'Focus on glass', 'Focus 2.5mm above glass' ], 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_STRING_LIST, type => SANE_TYPE_STRING, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'bay', title => 'Bay', index => 46, 'desc' => 'Select bay to scan', 'constraint' => [ ' 1 ', ' 2 ', ' 3 ', ' 4 ', ' 5 ', ' 6 ' ], 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_WORD_LIST, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 1, }, { name => 'eject', title => 'Eject', index => 47, 'desc' => 'Eject the sheet in the ADF', 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_NONE, type => SANE_TYPE_BUTTON, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 0, }, { name => 'adf_mode', title => 'ADF mode', index => 48, 'desc' => 'Selects the ADF mode (simplex/duplex)', 'constraint' => [ 'Simplex', 'Duplex' ], 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_STRING_LIST, type => SANE_TYPE_STRING, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 1, }, ); is_deeply( $options->{array}, \@that, 'epson1' ); is( Gscan2pdf::Scanner::Options->device, 'epson:libusb:005:007', 'device name' ); gscan2pdf-1.2.3/t/116_save_pdf_with_metadata.t0000644000175000017500000000247112053230657017502 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 2; BEGIN { use_ok('Gscan2pdf::Document'); use Gtk2 -init; # Could just call init separately use PDF::API2; } ######################### # Insert your test code below, the Test::More module is use()ed here so read # its man page ( perldoc Test::More ) for help writing this test script. use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert rose: test.pnm'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); my $metadata = { Title => 'metadata title' }; $slist->get_file_info( path => 'test.pnm', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { $slist->save_pdf( path => 'test.pdf', list_of_pages => [ $slist->{data}[0][2] ], metadata => $metadata, finished_callback => sub { Gtk2->main_quit } ); } ); } ); Gtk2->main; like( `pdfinfo test.pdf`, qr/metadata title/, 'metadata in PDF' ); ######################### unlink 'test.pnm', 'test.pdf'; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/063_Dialog_Scan_CLI.t0000644000175000017500000003056712270574026015664 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 48; use Glib qw(TRUE FALSE); # To get TRUE and FALSE use Gtk2 -init; # Could just call init separately use Sane 0.05; # To get SANE_* enums BEGIN { use_ok('Gscan2pdf::Dialog::Scan::CLI'); } ######################### my $window = Gtk2::Window->new; Glib::set_application_name('gscan2pdf'); use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Frontend::CLI->setup($logger); ok( my $dialog = Gscan2pdf::Dialog::Scan::CLI->new( title => 'title', 'transient-for' => $window, 'logger' => $logger ), 'Created dialog' ); isa_ok( $dialog, 'Gscan2pdf::Dialog::Scan::CLI' ); is( $dialog->get('device'), '', 'device' ); is( $dialog->get('device-list'), undef, 'device-list' ); is( $dialog->get('dir'), undef, 'dir' ); is( $dialog->get('num-pages'), 1, 'num-pages' ); is( $dialog->get('max-pages'), 0, 'max-pages' ); is( $dialog->get('page-number-start'), 1, 'page-number-start' ); is( $dialog->get('page-number-increment'), 1, 'page-number-increment' ); is( $dialog->get('side-to-scan'), 'facing', 'side-to-scan' ); is( $dialog->get('available-scan-options'), undef, 'available-scan-options' ); my $signal = $dialog->signal_connect( 'changed-device-list' => sub { ok( 1, 'changed-device-list' ); is_deeply( $dialog->get('device-list'), [ { 'name' => 'test', 'model' => 'test', 'label' => 'test' } ], 'add model field if missing' ); my $signal; $signal = $dialog->signal_connect( 'changed-device' => sub { my ( $widget, $name ) = @_; is( $name, 'test', 'changed-device' ); $dialog->signal_handler_disconnect($signal); } ); $dialog->set( 'device', 'test' ); } ); $dialog->set( 'device-list', [ { 'name' => 'test' } ] ); my $csignal; $csignal = $dialog->signal_connect( 'changed-num-pages' => sub { my ( $widget, $n, $signal ) = @_; is( $n, 0, 'changed-num-pages' ); $dialog->signal_handler_disconnect($csignal); } ); $dialog->set( 'num-pages', 0 ); $dialog->signal_connect( 'changed-page-number-start' => sub { my ( $widget, $n ) = @_; is( $n, 2, 'changed-page-number-start' ); } ); $dialog->set( 'page-number-start', 2 ); $signal = $dialog->signal_connect( 'changed-page-number-increment' => sub { my ( $widget, $n ) = @_; is( $n, 2, 'changed-page-number-increment' ); $dialog->signal_handler_disconnect($signal); } ); $dialog->set( 'page-number-increment', 2 ); $dialog->signal_connect( 'changed-side-to-scan' => sub { my ( $widget, $side ) = @_; is( $side, 'reverse', 'changed-side-to-scan' ); is( $dialog->get('page-number-increment'), -2, 'reverse side gives increment -2' ); } ); $dialog->set( 'side-to-scan', 'reverse' ); my $reloads = 0; $dialog->signal_connect( 'reloaded-scan-options' => sub { ++$reloads; } ); $signal = $dialog->signal_connect( 'reloaded-scan-options' => sub { is( $reloads, 1, 'reloaded-scan-options' ); $dialog->signal_handler_disconnect($signal); # So that it can be used in hash my $resolution = SANE_NAME_SCAN_RESOLUTION; my $brx = SANE_NAME_SCAN_BR_X; $signal = $dialog->signal_connect( 'added-profile' => sub { my ( $widget, $name, $profile ) = @_; is( $name, 'my profile', 'added-profile name' ); is_deeply( $profile, [ { $resolution => 52 }, { mode => 'Color' } ], 'added-profile profile' ); $dialog->signal_handler_disconnect($signal); } ); $dialog->add_profile( 'my profile', [ { $resolution => 52 }, { mode => 'Color' } ] ); ###################################### $signal = $dialog->signal_connect( 'added-profile' => sub { my ( $widget, $name, $profile ) = @_; is( $name, 'old profile', 'added-profile old name' ); is_deeply( $profile, [ { mode => 'Gray' }, { $resolution => 51 } ], 'added-profile profile as hash' ); $dialog->signal_handler_disconnect($signal); } ); $dialog->add_profile( 'old profile', { $resolution => 51, mode => 'Gray' } ); ###################################### $dialog->signal_connect( 'removed-profile' => sub { my ( $widget, $profile ) = @_; is( $profile, 'old profile', 'removed-profile' ); } ); $dialog->remove_profile('old profile'); ###################################### # need a new main loop because of the timeout my $loop = Glib::MainLoop->new; my $flag = FALSE; $signal = $dialog->signal_connect( 'changed-profile' => sub { my ( $widget, $profile ) = @_; is( $profile, 'my profile', 'changed-profile' ); is_deeply( $dialog->get('current-scan-options'), [ { $resolution => 52 }, { mode => 'Color' } ], 'current-scan-options with profile' ); is( $reloads, 1, 'reloaded-scan-options not called' ); $dialog->signal_handler_disconnect($signal); $flag = TRUE; $loop->quit; } ); $dialog->set( 'profile', 'my profile' ); $loop->run unless ($flag); ###################################### $dialog->add_profile( 'my profile2', [ { $resolution => 52 }, { mode => 'Color' } ] ); # need a new main loop because of the timeout $loop = Glib::MainLoop->new; $flag = FALSE; $signal = $dialog->signal_connect( 'changed-profile' => sub { my ( $widget, $profile ) = @_; is( $profile, 'my profile2', 'set profile with identical options' ); $dialog->signal_handler_disconnect($signal); $flag = TRUE; $loop->quit; } ); $dialog->set( 'profile', 'my profile2' ); $loop->run unless ($flag); ###################################### # need a new main loop because of the timeout $loop = Glib::MainLoop->new; $flag = FALSE; $signal = $dialog->signal_connect( 'changed-scan-option' => sub { my ( $widget, $option, $value ) = @_; is( $dialog->get('profile'), undef, 'changing an option deselects the current profile' ); is_deeply( $dialog->get('current-scan-options'), [ { mode => 'Color' }, { $resolution => 51 } ], 'current-scan-options without profile' ); $dialog->signal_handler_disconnect($signal); $flag = TRUE; $loop->quit; } ); my $options = $dialog->get('available-scan-options'); $dialog->set_option( $options->by_name($resolution), 51 ); $loop->run unless ($flag); my @geometry_widgets = keys %{ $options->{box} }; cmp_ok( $#geometry_widgets == 3, '||', $#geometry_widgets == 5, 'Only 4 or 6 options should be flagged as geometry' ); ###################################### # need a new main loop because of the timeout $loop = Glib::MainLoop->new; $flag = FALSE; # Reset profile for next test $signal = $dialog->signal_connect( 'changed-profile' => sub { my ( $widget, $profile ) = @_; is( $profile, 'my profile', 'reset profile' ); $dialog->signal_handler_disconnect($signal); $flag = TRUE; $loop->quit; } ); $dialog->set( 'profile', 'my profile' ); $loop->run unless ($flag); ###################################### # need a new main loop because of the timeout $loop = Glib::MainLoop->new; $flag = FALSE; $signal = $dialog->signal_connect( 'changed-profile' => sub { my ( $widget, $profile ) = @_; is( $profile, undef, 'changing an option fires the changed-profile signal if a profile is set' ); is_deeply( $dialog->get('current-scan-options'), [ { $resolution => 52 }, { mode => 'Gray' } ], 'current-scan-options without profile (again)' ); my $reloaded_options = $dialog->get('available-scan-options'); is( $reloaded_options->by_name($resolution)->{val}, 52, 'option value updated when reloaded' ); $dialog->signal_handler_disconnect($signal); $flag = TRUE; $loop->quit; } ); $options = $dialog->get('available-scan-options'); $dialog->set_option( $options->by_name('mode'), 'Gray' ); $loop->run unless ($flag); ###################################### $dialog->set( 'reload-triggers', qw(mode) ); # need a new main loop because of the timeout $loop = Glib::MainLoop->new; $flag = FALSE; $dialog->signal_connect( 'reloaded-scan-options' => sub { is_deeply( $dialog->get('current-scan-options'), [ { $resolution => 52 }, { mode => 'Color' } ], 'setting a option with a reload trigger to a non-default value stays set' ); $flag = TRUE; $loop->quit; } ); $options = $dialog->get('available-scan-options'); $dialog->set_option( $options->by_name('mode'), 'Color' ); $loop->run unless ($flag); ###################################### # need a new main loop because of the timeout $loop = Glib::MainLoop->new; $flag = FALSE; $signal = $dialog->signal_connect( 'changed-scan-option' => sub { my ( $widget, $option, $value ) = @_; is_deeply( $dialog->get('current-scan-options'), [ { x => 11 } ], 'map option names' ); $dialog->signal_handler_disconnect($signal); $flag = TRUE; $loop->quit; } ); $dialog->set( 'current-scan-options', [ { $brx => 11 } ] ); $loop->run unless ($flag); ###################################### $dialog->set( 'paper-formats', { new => { l => 1, y => 50, x => 50, t => 2, } } ); $dialog->add_profile( 'cli geometry', [ { 'Paper size' => 'new' }, { $resolution => 50 } ] ); # need a new main loop because of the timeout $loop = Glib::MainLoop->new; $flag = FALSE; $signal = $dialog->signal_connect( 'changed-profile' => sub { my ( $widget, $profile ) = @_; my $options = $dialog->get('available-scan-options'); my $expected = [ { 'Paper size' => 'new' } ]; push @$expected, { scalar(SANE_NAME_PAGE_HEIGHT) => 52 } if ( defined $options->by_name(SANE_NAME_PAGE_HEIGHT) ); push @$expected, { scalar(SANE_NAME_PAGE_WIDTH) => 51 } if ( defined $options->by_name(SANE_NAME_PAGE_WIDTH) ); push @$expected, { y => 50 }, { l => 1 }, { t => 2 }, { x => 50 }, { $resolution => 50 }; is_deeply( $dialog->get('current-scan-options'), $expected, 'CLI geometry option names' ); $dialog->signal_handler_disconnect($signal); $flag = TRUE; $loop->quit; } ); $dialog->set( 'profile', 'cli geometry' ); $loop->run unless ($flag); ###################################### $dialog->signal_connect( 'changed-paper-formats' => sub { my ( $widget, $formats ) = @_; ok( 1, 'changed-paper-formats' ); } ); $dialog->set( 'paper-formats', { new2 => { l => 0, y => 10, x => 10, t => 0, } } ); $dialog->signal_connect( 'changed-paper' => sub { my ( $widget, $paper ) = @_; is( $paper, 'new2', 'changed-paper' ); my $options = $dialog->get('available-scan-options'); my $expected = [ { 'Paper size' => 'new' }, { $resolution => 50 } ]; push @$expected, { scalar(SANE_NAME_PAGE_HEIGHT) => 10 } if ( defined $options->by_name(SANE_NAME_PAGE_HEIGHT) ); push @$expected, { scalar(SANE_NAME_PAGE_WIDTH) => 10 } if ( defined $options->by_name(SANE_NAME_PAGE_WIDTH) ); push @$expected, { l => 0 }, { t => 0 }, { x => 10 }, { y => 10 }; is_deeply( $dialog->get('current-scan-options'), $expected, 'CLI geometry option names after setting paper' ); } ); $dialog->set( 'paper', 'new2' ); my $s_signal; $s_signal = $dialog->signal_connect( 'started-process' => sub { ok( 1, 'started-process' ); $dialog->signal_handler_disconnect($s_signal); } ); my $c_signal; $c_signal = $dialog->signal_connect( 'changed-progress' => sub { ok( 1, 'changed-progress' ); $dialog->signal_handler_disconnect($c_signal); } ); # FIXME: figure out how to emit this # my $e_signal; # $e_signal = $dialog->signal_connect( # 'process-error' => sub { # ok( 1, 'process-error' ); # $dialog->signal_handler_disconnect($e_signal); # } # ); $dialog->signal_connect( 'new-scan' => sub { my ( $widget, $n ) = @_; is( $n, 2, 'new_scan' ); $flag = TRUE; Gtk2->main_quit; } ); $dialog->set( 'num-pages', 1 ); $dialog->set( 'page-number-increment', 1 ); $dialog->set_option( $options->by_name('enable-test-options'), TRUE ); $dialog->scan; } ); Gtk2->main; is( $reloads, 2, 'Final number of calls reloaded-scan-options' ); is( $dialog->get('available-scan-options')->by_name('mode')->{val}, 'Color', 'reloaded option still set to non-default value' ); __END__ gscan2pdf-1.2.3/t/162_import_ppm.t0000644000175000017500000000235612053230657015211 0ustar jeffjeffuse warnings; use strict; use File::Basename; # Split filename into dir, file, ext use Test::More tests => 3; BEGIN { use_ok('Gscan2pdf::Document'); use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert rose: test.ppm'); system('convert rose: test.png'); my $old = `identify -format '%m %G %g %z-bit %r' test.png`; my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.ppm', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { is( `identify -format '%m %G %g %z-bit %r' $slist->{data}[0][2]{filename}`, $old, 'PPM imported correctly' ); is( dirname("$slist->{data}[0][2]{filename}"), "$dir", 'using session directory' ); Gtk2->main_quit; } ); } ); Gtk2->main; ######################### unlink 'test.ppm', 'test.png', <$dir/*>; rmdir $dir; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/066_Dialog_Scan_CLI.t0000644000175000017500000000451212237446454015664 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 5; use Glib qw(TRUE FALSE); # To get TRUE and FALSE use Gtk2 -init; # Could just call init separately use Sane 0.05; # To get SANE_* enums BEGIN { use_ok('Gscan2pdf::Dialog::Scan::CLI'); } ######################### my $window = Gtk2::Window->new; Glib::set_application_name('gscan2pdf'); use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Frontend::CLI->setup($logger); ok( my $dialog = Gscan2pdf::Dialog::Scan::CLI->new( title => 'title', 'transient-for' => $window, 'logger' => $logger ), 'Created dialog' ); isa_ok( $dialog, 'Gscan2pdf::Dialog::Scan::CLI' ); my $signal; $signal = $dialog->signal_connect( 'reloaded-scan-options' => sub { $dialog->signal_handler_disconnect($signal); $dialog->set( 'current-scan-options', [ { 'invert-endianess' => 0 } ] ); $dialog->signal_connect( 'new-scan' => sub { my ( $widget, $n ) = @_; is( $n, 1, 'error-free scan despite illegal option' ); ######################### $dialog = Gscan2pdf::Dialog::Scan::CLI->new( title => 'title', 'transient-for' => $window, 'logger' => $logger ); $signal = $dialog->signal_connect( 'reloaded-scan-options' => sub { $dialog->signal_handler_disconnect($signal); $dialog->set( 'current-scan-options', [ { mode => 'Gray' }, { 'invert-endianess' => 0 } ] ); $dialog->signal_connect( 'new-scan' => sub { my ( $widget, $n ) = @_; is( $n, 1, 'error-free scan despite illegal option following an ignored one' ); Gtk2->main_quit; } ); $dialog->signal_connect( 'process-error' => sub { my ( $widget, $process, $msg ) = @_; Gtk2->main_quit; } ); $dialog->set( 'num-pages', 1 ); $dialog->set( 'page-number-increment', 1 ); $dialog->scan; } ); $dialog->set( 'device-list', [ { 'name' => 'test' } ] ); $dialog->set( 'device', 'test' ); } ); $dialog->set( 'num-pages', 1 ); $dialog->set( 'page-number-increment', 1 ); $dialog->scan; } ); $dialog->set( 'device-list', [ { 'name' => 'test' } ] ); $dialog->set( 'device', 'test' ); ######################### Gtk2->main; __END__ gscan2pdf-1.2.3/t/151_save_text.t0000644000175000017500000000215312270574026015020 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 1; BEGIN { use Gscan2pdf::Document; use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert rose: test.pnm'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.pnm', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { $slist->{data}[0][2]{hocr} = 'The quick brown fox'; $slist->save_text( path => 'test.txt', list_of_pages => [ $slist->{data}[0][2] ], finished_callback => sub { Gtk2->main_quit } ); } ); } ); Gtk2->main; is( `cat test.txt`, 'The quick brown fox', 'saved ASCII' ); ######################### unlink 'test.pnm', 'test.txt'; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/38_user_defined2.t0000644000175000017500000000223712270574026015463 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 1; BEGIN { use Gscan2pdf::Document; use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); Gscan2pdf::Document->setup(Log::Log4perl::get_logger); # Create test image system('convert xc:white white.pnm'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'white.pnm', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { $slist->user_defined( page => $slist->{data}[0][2], command => 'convert %i -negate %i', finished_callback => sub { $slist->analyse( page => $slist->{data}[0][2], finished_callback => sub { Gtk2->main_quit } ); } ); } ); } ); Gtk2->main; is( $slist->{data}[0][2]{mean}, 0, 'User-defined with %i' ); ######################### unlink 'white.pnm'; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/02_Scanner_Options_snapscan.t0000644000175000017500000003711012271200642017713 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 3; use Sane 0.05; # For enums BEGIN { use_ok('Gscan2pdf::Scanner::Options') } ######################### my $filename = 'scanners/snapscan'; my $output = do { local ( @ARGV, $/ ) = $filename; <> }; my $options = Gscan2pdf::Scanner::Options->new_from_data($output); my @that = ( { 'index' => 0, }, { index => 1, title => 'Scan Mode', 'cap' => 0, 'max_values' => 0, 'name' => '', 'unit' => SANE_UNIT_NONE, 'desc' => '', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { name => 'resolution', title => 'Resolution', index => 2, 'desc' => 'Sets the resolution of the scanned image.', 'val' => '300', 'constraint' => [ '50', '75', '100', '150', '200', '300', '450', '600' ], 'unit' => SANE_UNIT_DPI, constraint_type => SANE_CONSTRAINT_WORD_LIST, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_AUTOMATIC, 'max_values' => 1, }, { name => 'preview', title => 'Preview', index => 3, 'desc' => 'Request a preview-quality scan.', 'val' => SANE_FALSE, 'unit' => SANE_UNIT_NONE, 'type' => SANE_TYPE_BOOL, 'constraint_type' => SANE_CONSTRAINT_NONE, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_AUTOMATIC, 'max_values' => 1, }, { name => 'mode', title => 'Mode', index => 4, 'desc' => 'Selects the scan mode (e.g., lineart, monochrome, or color).', 'val' => 'Color', 'constraint' => [ 'Color', 'Halftone', 'Gray', 'Lineart' ], 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_STRING_LIST, type => SANE_TYPE_STRING, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_AUTOMATIC, 'max_values' => 1, }, { name => 'preview-mode', title => 'Preview mode', index => 5, 'desc' => 'Select the mode for previews. Greyscale previews usually give the best combination of speed and detail.', 'val' => 'Auto', 'constraint' => [ 'Auto', 'Color', 'Halftone', 'Gray', 'Lineart' ], 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_STRING_LIST, type => SANE_TYPE_STRING, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_AUTOMATIC, 'max_values' => 1, }, { name => 'high-quality', title => 'High quality', index => 6, 'desc' => 'Highest quality but lower speed', 'val' => SANE_FALSE, 'unit' => SANE_UNIT_NONE, 'type' => SANE_TYPE_BOOL, 'constraint_type' => SANE_CONSTRAINT_NONE, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_AUTOMATIC, 'max_values' => 1, }, { name => 'source', title => 'Source', index => 7, 'desc' => 'Selects the scan source (such as a document-feeder).', 'constraint' => ['Flatbed'], 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_STRING_LIST, type => SANE_TYPE_STRING, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE + SANE_CAP_AUTOMATIC, 'max_values' => 1, }, { index => 8, title => 'Geometry', 'cap' => 0, 'max_values' => 0, 'name' => '', 'unit' => SANE_UNIT_NONE, 'desc' => '', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { name => 'l', title => 'Top-left x', index => 9, 'desc' => 'Top-left x position of scan area.', 'val' => 0, constraint => { 'min' => 0, 'max' => 216, }, 'unit' => SANE_UNIT_MM, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 't', title => 'Top-left y', index => 10, 'desc' => 'Top-left y position of scan area.', 'val' => 0, constraint => { 'min' => 0, 'max' => 297, }, 'unit' => SANE_UNIT_MM, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'x', title => 'Width', index => 11, 'desc' => 'Width of scan-area.', 'val' => 216, constraint => { 'min' => 0, 'max' => 216, }, 'unit' => SANE_UNIT_MM, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'y', title => 'Height', index => 12, 'desc' => 'Height of scan-area.', 'val' => 297, constraint => { 'min' => 0, 'max' => 297, }, 'unit' => SANE_UNIT_MM, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'predef-window', title => 'Predef window', index => 13, 'desc' => 'Provides standard scanning areas for photographs, printed pages and the like.', 'val' => 'None', 'constraint' => [ 'None', '6x4 (inch)', '8x10 (inch)', '8.5x11 (inch)' ], 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_STRING_LIST, type => SANE_TYPE_STRING, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { index => 14, title => 'Enhancement', 'cap' => 0, 'max_values' => 0, 'name' => '', 'unit' => SANE_UNIT_NONE, 'desc' => '', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { name => 'depth', title => 'Depth', index => 15, 'desc' => 'Number of bits per sample, typical values are 1 for "line-art" and 8 for multibit scans.', 'constraint' => ['8'], 'unit' => SANE_UNIT_BIT, constraint_type => SANE_CONSTRAINT_WORD_LIST, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 1, }, { name => 'quality-cal', title => 'Quality cal', index => 16, 'desc' => 'Do a quality white-calibration', 'val' => SANE_TRUE, 'unit' => SANE_UNIT_NONE, 'type' => SANE_TYPE_BOOL, 'constraint_type' => SANE_CONSTRAINT_NONE, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'halftoning', title => 'Halftoning', index => 17, 'desc' => 'Selects whether the acquired image should be halftoned (dithered).', 'unit' => SANE_UNIT_NONE, 'type' => SANE_TYPE_BOOL, 'constraint_type' => SANE_CONSTRAINT_NONE, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 1, }, { name => 'halftone-pattern', title => 'Halftone pattern', index => 18, 'desc' => 'Defines the halftoning (dithering) pattern for scanning halftoned images.', 'constraint' => [ 'DispersedDot8x8', 'DispersedDot16x16' ], 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_STRING_LIST, type => SANE_TYPE_STRING, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 1, }, { name => 'custom-gamma', title => 'Custom gamma', index => 19, 'desc' => 'Determines whether a builtin or a custom gamma-table should be used.', 'val' => SANE_FALSE, 'unit' => SANE_UNIT_NONE, 'type' => SANE_TYPE_BOOL, 'constraint_type' => SANE_CONSTRAINT_NONE, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'analog-gamma-bind', title => 'Analog gamma bind', index => 20, 'desc' => 'In RGB-mode use same values for each color', 'val' => SANE_FALSE, 'unit' => SANE_UNIT_NONE, 'type' => SANE_TYPE_BOOL, 'constraint_type' => SANE_CONSTRAINT_NONE, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'analog-gamma', title => 'Analog gamma', index => 21, 'desc' => 'Analog gamma-correction', constraint => { 'min' => 0, 'max' => 4, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 1, }, { name => 'analog-gamma-r', title => 'Analog gamma r', index => 22, 'desc' => 'Analog gamma-correction for red', 'val' => '1.79999', constraint => { 'min' => 0, 'max' => 4, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_FIXED, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'analog-gamma-g', title => 'Analog gamma g', index => 23, 'desc' => 'Analog gamma-correction for green', 'val' => '1.79999', constraint => { 'min' => 0, 'max' => 4, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_FIXED, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'analog-gamma-b', title => 'Analog gamma b', index => 24, 'desc' => 'Analog gamma-correction for blue', 'val' => '1.79999', constraint => { 'min' => 0, 'max' => 4, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_FIXED, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'gamma-table', title => 'Gamma table', index => 25, 'desc' => 'Gamma-correction table. In color mode this option equally affects the red, green, and blue channels simultaneously (i.e., it is an intensity gamma table).', constraint => { 'min' => 0, 'max' => 65535, 'quant' => 1, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 255, }, { name => 'red-gamma-table', title => 'Red gamma table', index => 26, 'desc' => 'Gamma-correction table for the red band.', constraint => { 'min' => 0, 'max' => 65535, 'quant' => 1, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 255, }, { name => 'green-gamma-table', title => 'Green gamma table', index => 27, 'desc' => 'Gamma-correction table for the green band.', constraint => { 'min' => 0, 'max' => 65535, 'quant' => 1, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 255, }, { name => 'blue-gamma-table', title => 'Blue gamma table', index => 28, 'desc' => 'Gamma-correction table for the blue band.', constraint => { 'min' => 0, 'max' => 65535, 'quant' => 1, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 255, }, { name => 'negative', title => 'Negative', index => 29, 'desc' => 'Swap black and white', 'unit' => SANE_UNIT_NONE, 'type' => SANE_TYPE_BOOL, 'constraint_type' => SANE_CONSTRAINT_NONE, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE + SANE_CAP_AUTOMATIC, 'max_values' => 1, }, { name => 'threshold', title => 'Threshold', index => 30, 'desc' => 'Select minimum-brightness to get a white point', constraint => { 'min' => 0, 'max' => 100, 'quant' => 1, }, 'unit' => SANE_UNIT_PERCENT, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 1, }, { name => 'brightness', title => 'Brightness', index => 31, 'desc' => 'Controls the brightness of the acquired image.', 'val' => '0', constraint => { 'min' => -400, 'max' => 400, 'quant' => 1, }, 'unit' => SANE_UNIT_PERCENT, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'contrast', title => 'Contrast', index => 32, 'desc' => 'Controls the contrast of the acquired image.', 'val' => '0', constraint => { 'min' => -100, 'max' => 400, 'quant' => 1, }, 'unit' => SANE_UNIT_PERCENT, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { index => 33, title => 'Advanced', 'cap' => 0, 'max_values' => 0, 'name' => '', 'unit' => SANE_UNIT_NONE, 'desc' => '', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { name => 'rgb-lpr', title => 'Rgb lpr', index => 34, 'desc' => 'Number of scan lines to request in a SCSI read. Changing this parameter allows you to tune the speed at which data is read from the scanner during scans. If this is set too low, the scanner will have to stop periodically in the middle of a scan; if it\'s set too high, X-based frontends may stop responding to X events and your system could bog down.', 'val' => '4', constraint => { 'min' => 1, 'max' => 50, 'quant' => 1, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'gs-lpr', title => 'Gs lpr', index => 35, 'desc' => 'Number of scan lines to request in a SCSI read. Changing this parameter allows you to tune the speed at which data is read from the scanner during scans. If this is set too low, the scanner will have to stop periodically in the middle of a scan; if it\'s set too high, X-based frontends may stop responding to X events and your system could bog down.', constraint => { 'min' => 1, 'max' => 50, 'quant' => 1, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 1, }, ); is_deeply( $options->{array}, \@that, 'snapscan' ); is( Gscan2pdf::Scanner::Options->device, 'snapscan:/dev/uscanner0', 'device name' ); gscan2pdf-1.2.3/t/26_unsharp_mask.t0000644000175000017500000000253612053230657015435 0ustar jeffjeffuse warnings; use strict; use File::Basename; # Split filename into dir, file, ext use Test::More tests => 3; BEGIN { use_ok('Gscan2pdf::Document'); use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert rose: test.jpg'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.jpg', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { $slist->unsharp( page => $slist->{data}[0][2], radius => 100, sigma => 5, amount => 100, threshold => 0.5, finished_callback => sub { is( system("identify $slist->{data}[0][2]{filename}"), 0, 'valid JPG created' ); is( dirname("$slist->{data}[0][2]{filename}"), "$dir", 'using session directory' ); Gtk2->main_quit; } ); } ); } ); Gtk2->main; ######################### unlink 'test.jpg', <$dir/*>; rmdir $dir; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/02_Scanner_Options_umax.t0000644000175000017500000006700112271200642017061 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 3; use Sane 0.05; # For enums BEGIN { use_ok('Gscan2pdf::Scanner::Options') } ######################### my $filename = 'scanners/umax'; my $output = do { local ( @ARGV, $/ ) = $filename; <> }; my $options = Gscan2pdf::Scanner::Options->new_from_data($output); my @that = ( { 'index' => 0, }, { index => 1, title => 'Scan Mode', 'cap' => 0, 'max_values' => 0, 'name' => '', 'unit' => SANE_UNIT_NONE, 'desc' => '', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { name => 'mode', title => 'Mode', index => 2, 'desc' => 'Selects the scan mode (e.g., lineart, monochrome, or color).', 'val' => 'Color', 'constraint' => [ 'Lineart', 'Gray', 'Color' ], constraint_type => SANE_CONSTRAINT_STRING_LIST, 'unit' => SANE_UNIT_NONE, type => SANE_TYPE_STRING, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, max_values => 1, }, { name => 'source', title => 'Source', index => 3, 'desc' => 'Selects the scan source (such as a document-feeder).', 'val' => 'Flatbed', 'constraint' => ['Flatbed'], constraint_type => SANE_CONSTRAINT_STRING_LIST, 'unit' => SANE_UNIT_NONE, type => SANE_TYPE_STRING, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, max_values => 1, }, { name => 'resolution', title => 'Resolution', index => 4, 'desc' => 'Sets the resolution of the scanned image.', 'val' => '100', constraint => { 'min' => 5, 'max' => 300, 'quant' => 5, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_DPI, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, max_values => 1, }, { name => 'y-resolution', title => 'Y resolution', index => 5, 'desc' => 'Sets the vertical resolution of the scanned image.', constraint => { 'min' => 5, 'max' => 600, 'quant' => 5, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_DPI, type => SANE_TYPE_INT, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 1, }, { name => 'resolution-bind', title => 'Resolution bind', index => 6, 'desc' => 'Use same values for X and Y resolution', 'val' => SANE_TRUE, constraint_type => SANE_CONSTRAINT_NONE, 'unit' => SANE_UNIT_NONE, type => SANE_TYPE_BOOL, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, max_values => 1, }, { name => 'negative', title => 'Negative', index => 7, 'desc' => 'Swap black and white', constraint_type => SANE_CONSTRAINT_NONE, 'unit' => SANE_UNIT_NONE, type => SANE_TYPE_BOOL, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 1, }, { index => 8, title => 'Geometry', 'cap' => 0, 'max_values' => 0, 'name' => '', 'unit' => SANE_UNIT_NONE, 'desc' => '', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { name => 'l', title => 'Top-left x', index => 9, 'desc' => 'Top-left x position of scan area.', 'val' => 0, constraint => { 'min' => 0, 'max' => 215.9, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_MM, type => SANE_TYPE_FIXED, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, max_values => 1, }, { name => 't', title => 'Top-left y', index => 10, 'desc' => 'Top-left y position of scan area.', 'val' => 0, constraint => { 'min' => 0, 'max' => 297.18, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_MM, type => SANE_TYPE_FIXED, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, max_values => 1, }, { name => 'x', title => 'Width', index => 11, 'desc' => 'Width of scan-area.', 'val' => 215.9, constraint => { 'min' => 0, 'max' => 215.9, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_MM, type => SANE_TYPE_FIXED, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, max_values => 1, }, { name => 'y', title => 'Height', index => 12, 'desc' => 'Height of scan-area.', 'val' => 297.18, constraint => { 'min' => 0, 'max' => 297.18, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_MM, type => SANE_TYPE_FIXED, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, max_values => 1, }, { index => 13, title => 'Enhancement', 'cap' => 0, 'max_values' => 0, 'name' => '', 'unit' => SANE_UNIT_NONE, 'desc' => '', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { name => 'depth', title => 'Depth', index => 14, 'desc' => 'Number of bits per sample, typical values are 1 for "line-art" and 8 for multibit scans.', 'val' => '8', 'constraint' => ['8'], constraint_type => SANE_CONSTRAINT_WORD_LIST, 'unit' => SANE_UNIT_BIT, type => SANE_TYPE_INT, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, max_values => 1, }, { name => 'quality-cal', title => 'Quality cal', index => 15, 'desc' => 'Do a quality white-calibration', 'val' => SANE_TRUE, constraint_type => SANE_CONSTRAINT_NONE, 'unit' => SANE_UNIT_NONE, type => SANE_TYPE_BOOL, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, max_values => 1, }, { name => 'double-res', title => 'Double res', index => 16, 'desc' => 'Use lens that doubles optical resolution', constraint_type => SANE_CONSTRAINT_NONE, 'unit' => SANE_UNIT_NONE, type => SANE_TYPE_BOOL, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 1, }, { name => 'warmup', title => 'Warmup', index => 17, 'desc' => 'Warmup lamp before scanning', constraint_type => SANE_CONSTRAINT_NONE, 'unit' => SANE_UNIT_NONE, type => SANE_TYPE_BOOL, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 1, }, { name => 'rgb-bind', title => 'Rgb bind', index => 18, 'desc' => 'In RGB-mode use same values for each color', 'val' => SANE_FALSE, constraint_type => SANE_CONSTRAINT_NONE, 'unit' => SANE_UNIT_NONE, type => SANE_TYPE_BOOL, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, max_values => 1, }, { name => 'brightness', title => 'Brightness', index => 19, 'desc' => 'Controls the brightness of the acquired image.', constraint => { 'min' => -100, 'max' => 100, 'quant' => 1, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_PERCENT, type => SANE_TYPE_INT, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 1, }, { name => 'contrast', title => 'Contrast', index => 20, 'desc' => 'Controls the contrast of the acquired image.', constraint => { 'min' => -100, 'max' => 100, 'quant' => 1, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_PERCENT, type => SANE_TYPE_INT, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 1, }, { name => 'threshold', title => 'Threshold', index => 21, 'desc' => 'Select minimum-brightness to get a white point', constraint => { 'min' => 0, 'max' => 100, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_PERCENT, type => SANE_TYPE_INT, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 1, }, { name => 'highlight', title => 'Highlight', index => 22, 'desc' => 'Selects what radiance level should be considered "white".', constraint => { 'min' => 0, 'max' => 100, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_PERCENT, type => SANE_TYPE_INT, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 1, }, { name => 'highlight-r', title => 'Highlight r', index => 23, 'desc' => 'Selects what red radiance level should be considered "full red".', 'val' => '100', constraint => { 'min' => 0, 'max' => 100, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_PERCENT, type => SANE_TYPE_INT, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, max_values => 1, }, { name => 'highlight-g', title => 'Highlight g', index => 24, 'desc' => 'Selects what green radiance level should be considered "full green".', 'val' => '100', constraint => { 'min' => 0, 'max' => 100, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_PERCENT, type => SANE_TYPE_INT, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, max_values => 1, }, { name => 'highlight-b', title => 'Highlight b', index => 25, 'desc' => 'Selects what blue radiance level should be considered "full blue".', 'val' => '100', constraint => { 'min' => 0, 'max' => 100, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_PERCENT, type => SANE_TYPE_INT, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, max_values => 1, }, { name => 'shadow', title => 'Shadow', index => 26, 'desc' => 'Selects what radiance level should be considered "black".', constraint => { 'min' => 0, 'max' => 100, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_PERCENT, type => SANE_TYPE_INT, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 1, }, { name => 'shadow-r', title => 'Shadow r', index => 27, 'desc' => 'Selects what red radiance level should be considered "black".', constraint => { 'min' => 0, 'max' => 100, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_PERCENT, type => SANE_TYPE_INT, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 1, }, { name => 'shadow-g', title => 'Shadow g', index => 28, 'desc' => 'Selects what green radiance level should be considered "black".', constraint => { 'min' => 0, 'max' => 100, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_PERCENT, type => SANE_TYPE_INT, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 1, }, { name => 'shadow-b', title => 'Shadow b', index => 29, 'desc' => 'Selects what blue radiance level should be considered "black".', constraint => { 'min' => 0, 'max' => 100, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_PERCENT, type => SANE_TYPE_INT, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 1, }, { name => 'analog-gamma', title => 'Analog gamma', index => 30, 'desc' => 'Analog gamma-correction', constraint => { 'min' => 1, 'max' => 2, 'quant' => 0.00999451, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_NONE, type => SANE_TYPE_FIXED, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 1, }, { name => 'analog-gamma-r', title => 'Analog gamma r', index => 31, 'desc' => 'Analog gamma-correction for red', constraint => { 'min' => 1, 'max' => 2, 'quant' => 0.00999451, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_NONE, type => SANE_TYPE_FIXED, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 1, }, { name => 'analog-gamma-g', title => 'Analog gamma g', index => 32, 'desc' => 'Analog gamma-correction for green', constraint => { 'min' => 1, 'max' => 2, 'quant' => 0.00999451, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_NONE, type => SANE_TYPE_FIXED, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 1, }, { name => 'analog-gamma-b', title => 'Analog gamma b', index => 33, 'desc' => 'Analog gamma-correction for blue', constraint => { 'min' => 1, 'max' => 2, 'quant' => 0.00999451, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_NONE, type => SANE_TYPE_FIXED, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 1, }, { name => 'custom-gamma', title => 'Custom gamma', index => 34, 'desc' => 'Determines whether a builtin or a custom gamma-table should be used.', 'val' => SANE_TRUE, constraint_type => SANE_CONSTRAINT_NONE, 'unit' => SANE_UNIT_NONE, type => SANE_TYPE_BOOL, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, max_values => 1, }, { name => 'gamma-table', title => 'Gamma table', index => 35, constraint => { 'min' => 0, 'max' => 255, }, 'desc' => 'Gamma-correction table. In color mode this option equally affects the red, green, and blue channels simultaneously (i.e., it is an intensity gamma table).', constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_NONE, type => SANE_TYPE_INT, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, max_values => 255, }, { name => 'red-gamma-table', title => 'Red gamma table', index => 36, constraint => { 'min' => 0, 'max' => 255, }, 'desc' => 'Gamma-correction table for the red band.', constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_NONE, type => SANE_TYPE_INT, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, max_values => 255, }, { name => 'green-gamma-table', title => 'Green gamma table', index => 37, constraint => { 'min' => 0, 'max' => 255, }, 'desc' => 'Gamma-correction table for the green band.', constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_NONE, type => SANE_TYPE_INT, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, max_values => 255, }, { name => 'blue-gamma-table', title => 'Blue gamma table', index => 38, constraint => { 'min' => 0, 'max' => 255, }, 'desc' => 'Gamma-correction table for the blue band.', constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_NONE, type => SANE_TYPE_INT, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, max_values => 255, }, { name => 'halftone-size', title => 'Halftone size', index => 39, 'desc' => 'Sets the size of the halftoning (dithering) pattern used when scanning halftoned images.', 'constraint' => [ '2', '4', '6', '8', '12' ], constraint_type => SANE_CONSTRAINT_WORD_LIST, 'unit' => SANE_UNIT_PIXEL, type => SANE_TYPE_INT, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 1, }, { name => 'halftone-pattern', title => 'Halftone pattern', index => 40, 'desc' => 'Defines the halftoning (dithering) pattern for scanning halftoned images.', constraint => { 'min' => 0, 'max' => 255, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_NONE, type => SANE_TYPE_INT, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 1, }, { index => 41, title => 'Advanced', 'cap' => 0, 'max_values' => 0, 'name' => '', 'unit' => SANE_UNIT_NONE, 'desc' => '', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { name => 'cal-exposure-time', title => 'Cal exposure time', index => 42, 'desc' => 'Define exposure-time for calibration', constraint => { 'min' => 0, 'max' => 0, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_MICROSECOND, type => SANE_TYPE_INT, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 1, }, { name => 'cal-exposure-time-r', title => 'Cal exposure time r', index => 43, 'desc' => 'Define exposure-time for red calibration', constraint => { 'min' => 0, 'max' => 0, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_MICROSECOND, type => SANE_TYPE_INT, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 1, }, { name => 'cal-exposure-time-g', title => 'Cal exposure time g', index => 44, 'desc' => 'Define exposure-time for green calibration', constraint => { 'min' => 0, 'max' => 0, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_MICROSECOND, type => SANE_TYPE_INT, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 1, }, { name => 'cal-exposure-time-b', title => 'Cal exposure time b', index => 45, 'desc' => 'Define exposure-time for blue calibration', constraint => { 'min' => 0, 'max' => 0, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_MICROSECOND, type => SANE_TYPE_INT, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 1, }, { name => 'scan-exposure-time', title => 'Scan exposure time', index => 46, 'desc' => 'Define exposure-time for scan', constraint => { 'min' => 0, 'max' => 0, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_MICROSECOND, type => SANE_TYPE_INT, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 1, }, { name => 'scan-exposure-time-r', title => 'Scan exposure time r', index => 47, 'desc' => 'Define exposure-time for red scan', constraint => { 'min' => 0, 'max' => 0, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_MICROSECOND, type => SANE_TYPE_INT, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 1, }, { name => 'scan-exposure-time-g', title => 'Scan exposure time g', index => 48, 'desc' => 'Define exposure-time for green scan', constraint => { 'min' => 0, 'max' => 0, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_MICROSECOND, type => SANE_TYPE_INT, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 1, }, { name => 'scan-exposure-time-b', title => 'Scan exposure time b', index => 49, 'desc' => 'Define exposure-time for blue scan', constraint => { 'min' => 0, 'max' => 0, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_MICROSECOND, type => SANE_TYPE_INT, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 1, }, { name => 'disable-pre-focus', title => 'Disable pre focus', index => 50, 'desc' => 'Do not calibrate focus', constraint_type => SANE_CONSTRAINT_NONE, 'unit' => SANE_UNIT_NONE, type => SANE_TYPE_BOOL, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 1, }, { name => 'manual-pre-focus', title => 'Manual pre focus', index => 51, 'desc' => '', constraint_type => SANE_CONSTRAINT_NONE, 'unit' => SANE_UNIT_NONE, type => SANE_TYPE_BOOL, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 1, }, { name => 'fix-focus-position', title => 'Fix focus position', index => 52, 'desc' => '', constraint_type => SANE_CONSTRAINT_NONE, 'unit' => SANE_UNIT_NONE, type => SANE_TYPE_BOOL, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 1, }, { name => 'lens-calibration-in-doc-position', title => 'Lens calibration in doc position', index => 53, 'desc' => 'Calibrate lens focus in document position', constraint_type => SANE_CONSTRAINT_NONE, 'unit' => SANE_UNIT_NONE, type => SANE_TYPE_BOOL, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 1, }, { name => 'holder-focus-position-0mm', title => 'Holder focus position 0mm', index => 54, 'desc' => 'Use 0mm holder focus position instead of 0.6mm', constraint_type => SANE_CONSTRAINT_NONE, 'unit' => SANE_UNIT_NONE, type => SANE_TYPE_BOOL, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 1, }, { name => 'cal-lamp-density', title => 'Cal lamp density', index => 55, 'desc' => 'Define lamp density for calibration', constraint => { 'min' => 0, 'max' => 100, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_PERCENT, type => SANE_TYPE_INT, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 1, }, { name => 'scan-lamp-density', title => 'Scan lamp density', index => 56, 'desc' => 'Define lamp density for scan', constraint => { 'min' => 0, 'max' => 100, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_PERCENT, type => SANE_TYPE_INT, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 1, }, { name => 'select-exposure-time', title => 'Select exposure time', index => 57, 'desc' => 'Enable selection of exposure-time', constraint_type => SANE_CONSTRAINT_NONE, 'unit' => SANE_UNIT_NONE, type => SANE_TYPE_BOOL, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 1, }, { name => 'select-calibration-exposure-time', title => 'Select calibration exposure time', index => 58, 'desc' => 'Allow different settings for calibration and scan exposure times', constraint_type => SANE_CONSTRAINT_NONE, 'unit' => SANE_UNIT_NONE, type => SANE_TYPE_BOOL, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 1, }, { name => 'select-lamp-density', title => 'Select lamp density', index => 59, 'desc' => 'Enable selection of lamp density', constraint_type => SANE_CONSTRAINT_NONE, 'unit' => SANE_UNIT_NONE, type => SANE_TYPE_BOOL, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 1, }, { name => 'lamp-on', title => 'Lamp on', index => 60, 'desc' => 'Turn on scanner lamp', constraint_type => SANE_CONSTRAINT_NONE, 'unit' => SANE_UNIT_NONE, type => SANE_TYPE_BUTTON, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 0, }, { name => 'lamp-off', title => 'Lamp off', index => 61, 'desc' => 'Turn off scanner lamp', constraint_type => SANE_CONSTRAINT_NONE, 'unit' => SANE_UNIT_NONE, type => SANE_TYPE_BUTTON, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 0, }, { name => 'lamp-off-at-exit', title => 'Lamp off at exit', index => 62, 'desc' => 'Turn off lamp when program exits', type => SANE_TYPE_BOOL, constraint_type => SANE_CONSTRAINT_NONE, 'unit' => SANE_UNIT_NONE, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 1, }, { name => 'batch-scan-start', title => 'Batch scan start', index => 63, 'desc' => 'set for first scan of batch', type => SANE_TYPE_BOOL, constraint_type => SANE_CONSTRAINT_NONE, 'unit' => SANE_UNIT_NONE, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 1, }, { name => 'batch-scan-loop', title => 'Batch scan loop', index => 64, 'desc' => 'set for middle scans of batch', type => SANE_TYPE_BOOL, constraint_type => SANE_CONSTRAINT_NONE, 'unit' => SANE_UNIT_NONE, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 1, }, { name => 'batch-scan-end', title => 'Batch scan end', index => 65, 'desc' => 'set for last scan of batch', type => SANE_TYPE_BOOL, constraint_type => SANE_CONSTRAINT_NONE, 'unit' => SANE_UNIT_NONE, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 1, }, { name => 'batch-scan-next-tl-y', title => 'Batch scan next tl y', index => 66, 'desc' => 'Set top left Y position for next scan', constraint => { 'min' => 0, 'max' => 297.18, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_MM, type => SANE_TYPE_FIXED, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, max_values => 1, }, { name => 'preview', title => 'Preview', index => 67, 'desc' => 'Request a preview-quality scan.', 'val' => SANE_FALSE, type => SANE_TYPE_BOOL, constraint_type => SANE_CONSTRAINT_NONE, 'unit' => SANE_UNIT_NONE, cap => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, max_values => 1, }, ); is_deeply( $options->{array}, \@that, 'umax' ); is( Gscan2pdf::Scanner::Options->device, 'umax:/dev/sg2', 'device name' ); gscan2pdf-1.2.3/t/non-utf8.html0000644000175000017500000000145012053230657014604 0ustar jeffjeff

Pe

gscan2pdf-1.2.3/t/121_save_djvu.t0000644000175000017500000000207612053230657015003 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 2; BEGIN { use_ok('Gscan2pdf::Document'); use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert rose: test.pnm'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.pnm', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { $slist->save_djvu( path => 'test.djvu', list_of_pages => [ $slist->{data}[0][2] ], finished_callback => sub { Gtk2->main_quit } ); } ); } ); Gtk2->main; is( -s 'test.djvu', 1054, 'DjVu created with expected size' ); ######################### unlink 'test.pnm', 'test.djvu'; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/172_open_session.t0000644000175000017500000000256612270574026015535 0ustar jeffjeffuse warnings; use strict; use File::Basename; # Split filename into dir, file, ext use Test::More tests => 4; BEGIN { use Gscan2pdf::Document; use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); Gscan2pdf::Document->setup(Log::Log4perl::get_logger); my $slist = Gscan2pdf::Document->new; my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->open_session_file('test.gs2p'); like( `file $slist->{data}[0][2]{filename}`, qr/PNG image data, 70 x 46, 8-bit\/color RGB, non-interlaced/, 'PNG extracted with expected size' ); is( $slist->{data}[0][2]{hocr}, 'The quick brown fox', 'Basic OCR output extracted' ); # Add another image to test behaviour with multiple saves system('convert rose: test.pnm'); $slist->get_file_info( path => 'test.pnm', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { $slist->save_session('test2.gs2p'); Gtk2->main_quit; } ); } ); Gtk2->main; is( `file test2.gs2p`, "test2.gs2p: gzip compressed data\n", 'Session file created' ); cmp_ok( -s 'test2.gs2p', '>', 0, 'Non-empty Session file created' ); ######################### Gscan2pdf::Document->quit; unlink 'test.gs2p', 'test.pnm'; gscan2pdf-1.2.3/t/10_Document.t0000644000175000017500000000527112271546252014513 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 22; use Glib 1.210 qw(TRUE FALSE); use Gtk2 -init; # Could just call init separately BEGIN { use_ok('Gscan2pdf::Document'); } ######################### Glib::set_application_name('gscan2pdf'); use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); my $slist = Gscan2pdf::Document->new; is( $slist->pages_possible( 1, 1 ), -1, 'pages_possible infinite forwards in empty document' ); is( $slist->pages_possible( 2, -1 ), 2, 'pages_possible finite backwards in empty document' ); my @selected = $slist->get_page_index( 'all', sub { pass('error in all') } ); is_deeply( \@selected, [], 'no pages' ); @{ $slist->{data} } = ( [ 2, undef, undef ] ); @selected = $slist->get_page_index( 'selected', sub { pass('error in selected') } ); is_deeply( \@selected, [], 'none selected' ); $slist->select(0); @selected = $slist->get_page_index( 'selected', sub { fail('no error in selected') } ); is_deeply( \@selected, [0], 'selected' ); @selected = $slist->get_page_index( 'all', sub { fail('no error in all') } ); is_deeply( \@selected, [0], 'all' ); is( $slist->pages_possible( 2, 1 ), 0, 'pages_possible 0 due to existing page' ); is( $slist->pages_possible( 1, 1 ), 1, 'pages_possible finite forwards in non-empty document' ); is( $slist->pages_possible( 1, -1 ), 1, 'pages_possible finite backwards in non-empty document' ); $slist->{data}[0][0] = 1; is( $slist->pages_possible( 2, 1 ), -1, 'pages_possible infinite forwards in non-empty document' ); @{ $slist->{data} } = ( [ 1, undef, undef ], [ 3, undef, undef ], [ 5, undef, undef ] ); is( $slist->pages_possible( 2, 1 ), 1, 'pages_possible finite forwards starting in middle of range' ); is( $slist->pages_possible( 2, -1 ), 1, 'pages_possible finite backwards starting in middle of range' ); is( $slist->pages_possible( 6, -2 ), 3, 'pages_possible finite backwards starting at end of range' ); ######################### is( $slist->valid_renumber( 1, 1, 'all' ), TRUE, 'valid_renumber all step 1' ); is( $slist->valid_renumber( 3, -1, 'all' ), TRUE, 'valid_renumber all start 3 step -1' ); is( $slist->valid_renumber( 2, -1, 'all' ), FALSE, 'valid_renumber all start 2 step -1' ); $slist->select(0); is( $slist->valid_renumber( 1, 1, 'selected' ), TRUE, 'valid_renumber selected ok' ); is( $slist->valid_renumber( 3, 1, 'selected' ), FALSE, 'valid_renumber selected nok' ); ######################### $slist->renumber( 1, 1, 'all' ); is_deeply( $slist->{data}, [ [ 1, undef, undef ], [ 2, undef, undef ], [ 3, undef, undef ] ], 'renumber start 1 step 1' ); ######################### Gscan2pdf::Document->quit(); __END__ gscan2pdf-1.2.3/t/124_cancel_save_djvu.t0000644000175000017500000000247212270574026016315 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 1; BEGIN { use Gscan2pdf::Document; use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert rose: test.pnm'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.pnm', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { my $pid = $slist->save_djvu( path => 'test.djvu', list_of_pages => [ $slist->{data}[0][2] ], cancelled_callback => sub { $slist->save_image( path => 'test.jpg', list_of_pages => [ $slist->{data}[0][2] ], finished_callback => sub { Gtk2->main_quit } ); } ); $slist->cancel($pid); } ); } ); Gtk2->main; is( system('identify test.jpg'), 0, 'can create a valid JPG after cancelling save DjVu process' ); ######################### unlink 'test.pnm', 'test.djvu', 'test.jpg'; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/32_ocropus_in_thread.t0000644000175000017500000000310312053230657016435 0ustar jeffjeffuse warnings; use strict; use File::Basename; # Split filename into dir, file, ext use Test::More tests => 3; BEGIN { use Gscan2pdf::Document; use_ok('Gscan2pdf::Ocropus'); } ######################### # Insert your test code below, the Test::More module is use()ed here so read # its man page ( perldoc Test::More ) for help writing this test script. use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); SKIP: { skip 'Ocropus not installed', 2 unless Gscan2pdf::Ocropus->setup($logger); # Create test image system( 'convert +matte -depth 1 -pointsize 12 -density 300 label:"The quick brown fox" test.png' ); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.png', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { $slist->ocropus( page => $slist->{data}[0][2], language => 'eng', finished_callback => sub { like( $slist->{data}[0][2]{hocr}, qr/The quick brown fox/, 'Ocropus returned sensible text' ); is( dirname("$slist->{data}[0][2]{filename}"), "$dir", 'using session directory' ); Gtk2->main_quit; } ); } ); } ); Gtk2->main; unlink 'test.png', <$dir/*>; rmdir $dir; } Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/169_import_multipage_PDF2.t0000644000175000017500000000354512237446416017175 0ustar jeffjeffuse warnings; use strict; use File::Temp; use Test::More tests => 1; BEGIN { use Gscan2pdf::Document; use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert rose: page1.pdf'); my $content = <<'EOS'; %PDF-1.4 1 0 obj << /Type /Catalog /Outlines 2 0 R /Pages 3 0 R >> endobj 2 0 obj << /Type /Outlines /Count 0 >> endobj 3 0 obj << /Type /Pages /Kids [ 4 0 R ] /Count 1 >> endobj 4 0 obj << /Type /Page /Parent 3 0 R /MediaBox [ 0 0 612 792 ] /Contents 5 0 R /Resources << /ProcSet 6 0 R /Font << /F1 7 0 R >> >> >> endobj 5 0 obj << /Length 73 >> stream BT /F1 24 Tf 100 100 Td ( Hello World ) Tj ET endstream endobj xref 0 8 0000000000 65535 f 0000000010 00000 n 0000000020 00000 n 0000000030 00000 n 0000000040 00000 n 0000000050 00000 n 0000000060 00000 n 0000000070 00000 n trailer <> startxref 555 %%EOF EOS open my $fh, '>', 'page2.pdf' or die 'Cannot open page2.pdf'; print $fh $content; close $fh; system('pdftk page1.pdf page2.pdf cat output test.pdf'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.pdf', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 2, finished_callback => sub { is( $#{ $slist->{data} }, 0, 'imported 1 image' ); Gtk2->main_quit; } ); } ); Gtk2->main; ######################### unlink 'page1.pdf', 'page2.pdf', 'test.pdf', <$dir/*>; rmdir $dir; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/40_gocr.t0000644000175000017500000000264712237446416013701 0ustar jeffjeffuse warnings; use strict; use Encode; use Test::More tests => 4; BEGIN { use Gscan2pdf::Document; use Gtk2 -init; # Could just call init separately } ######################### SKIP: { skip 'gocr not installed', 1 unless ( system("which gocr > /dev/null 2> /dev/null") == 0 ); use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system( 'convert +matte -depth 1 -pointsize 12 -density 300 label:"öÖäÄüÜß" test.pnm' ); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.pnm', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { $slist->gocr( page => $slist->{data}[0][2], finished_callback => sub { is( Encode::is_utf8( $slist->{data}[0][2]{hocr}, 1 ), 1, "gocr returned UTF8" ); for my $c (qw( ö ä ü )) { # ignoring ß, as gocr doesn't recognise it my $c2 = decode_utf8($c); like( $slist->{data}[0][2]{hocr}, qr/$c2/, "gocr returned $c" ); } Gtk2->main_quit; } ); } ); } ); Gtk2->main; unlink 'test.pnm'; Gscan2pdf::Document->quit(); } gscan2pdf-1.2.3/t/164_import_multiple_images.t0000644000175000017500000000202212270574026017567 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 1; BEGIN { use Gscan2pdf::Document; use Gtk2 -init; # Could just call init separately use File::Copy; } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert rose: 1.tif'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); for my $i ( 1 .. 10 ) { copy( '1.tif', "$i.tif" ) if ( $i > 1 ); $slist->get_file_info( path => "$i.tif", finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { Gtk2->main_quit if ( $i == 10 ); } ); } ); } Gtk2->main; is( $#{ $slist->{data} }, 9, 'Imported 10 images' ); ######################### for my $i ( 1 .. 10 ) { unlink "$i.tif"; } Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/perlcriticrc0000644000175000017500000000015212053230657014646 0ustar jeffjeffseverity = 3 [RegularExpressions::RequireExtendedFormatting] minimum_regex_length_to_complain_about = 3 gscan2pdf-1.2.3/t/112_save_pdf_with_text.t0000644000175000017500000000222412270574026016700 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 1; BEGIN { use Gscan2pdf::Document; use Gtk2 -init; # Could just call init separately use PDF::API2; } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert rose: test.pnm'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.pnm', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { $slist->{data}[0][2]{hocr} = 'The quick brown fox'; $slist->save_pdf( path => 'test.pdf', list_of_pages => [ $slist->{data}[0][2] ], finished_callback => sub { Gtk2->main_quit } ); } ); } ); Gtk2->main; like( `pdftotext test.pdf -`, qr/The quick brown fox/, 'PDF with expected text' ); ######################### unlink 'test.pnm', 'test.pdf'; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/25_negate.t0000644000175000017500000000251612053230657014202 0ustar jeffjeffuse warnings; use strict; use File::Basename; # Split filename into dir, file, ext use Test::More tests => 3; BEGIN { use_ok('Gscan2pdf::Document'); use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert xc:white white.pnm'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'white.pnm', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { $slist->negate( page => $slist->{data}[0][2], finished_callback => sub { $slist->analyse( page => $slist->{data}[0][2], finished_callback => sub { is( $slist->{data}[0][2]{mean}, 0, 'Found dark page' ); is( dirname("$slist->{data}[0][2]{filename}"), "$dir", 'using session directory' ); Gtk2->main_quit; } ); } ); } ); } ); Gtk2->main; ######################### unlink 'white.pnm', <$dir/*>; rmdir $dir; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/168_import_multipage_PDF.t0000644000175000017500000000204712237446416017106 0ustar jeffjeffuse warnings; use strict; use File::Temp; use Test::More tests => 1; BEGIN { use Gscan2pdf::Document; use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert rose: test.tif'); system('tiffcp test.tif test.tif test2.tif'); system('tiff2pdf -o test2.pdf test2.tif'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test2.pdf', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 2, finished_callback => sub { is( $#{ $slist->{data} }, 1, 'imported 2 images' ); Gtk2->main_quit; } ); } ); Gtk2->main; ######################### unlink 'test.tif', 'test2.tif', 'test2.pdf', <$dir/*>; rmdir $dir; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/113_save_pdf_with_hocr.t0000644000175000017500000000333512270574026016654 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 1; BEGIN { use Gscan2pdf::Document; use Gtk2 -init; # Could just call init separately use PDF::API2; } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert rose: test.pnm'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.pnm', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { $slist->{data}[0][2]{hocr} = < OCR Output
The quick brown fox

EOS $slist->save_pdf( path => 'test.pdf', list_of_pages => [ $slist->{data}[0][2] ], finished_callback => sub { Gtk2->main_quit } ); } ); } ); Gtk2->main; like( `pdftotext test.pdf -`, qr/The quick brown fox/, 'PDF with expected text' ); ######################### unlink 'test.pnm', 'test.pdf'; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/068_Dialog_Scan_CLI.t0000644000175000017500000000574112237446454015673 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 10; use Glib qw(TRUE FALSE); # To get TRUE and FALSE use Gtk2 -init; # Could just call init separately BEGIN { use_ok('Gscan2pdf::Dialog::Scan::CLI'); } ######################### my $window = Gtk2::Window->new; Glib::set_application_name('gscan2pdf'); use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Frontend::CLI->setup($logger); ok( my $dialog = Gscan2pdf::Dialog::Scan::CLI->new( title => 'title', 'transient-for' => $window, 'logger' => $logger, 'reload-triggers' => qw(mode), ), 'Created dialog' ); isa_ok( $dialog, 'Gscan2pdf::Dialog::Scan::CLI' ); $dialog->set( 'cache-options', TRUE ); $dialog->signal_connect( 'process-error' => sub { my ( $widget, $process, $msg ) = @_; Gtk2->main_quit; } ); my ( $signal, $signal2 ); $signal = $dialog->signal_connect( 'changed-options-cache' => sub { $dialog->signal_handler_disconnect($signal); is( $#{ $dialog->get('current-scan-options') }, -1, 'cached default Gray - no scan option set' ); $signal = $dialog->signal_connect( 'reloaded-scan-options' => sub { $dialog->signal_handler_disconnect($signal); $signal = $dialog->signal_connect( 'changed-scan-option' => sub { my ( $widget, $option, $value ) = @_; $dialog->signal_handler_disconnect($signal); is( $option, 'source', 'setting source' ); is( $value, 'Automatic Document Feeder', 'setting source to Automatic Document Feeder' ); $signal = $dialog->signal_connect( 'reloaded-scan-options' => sub { $dialog->signal_handler_disconnect($signal); my $options = $dialog->get('available-scan-options'); is( $options->by_name('mode')->{val}, 'Color', 'set mode to Color' ); is( $options->by_name('source')->{val}, 'Automatic Document Feeder', 'source still Automatic Document Feeder' ); $signal = $dialog->signal_connect( 'reloaded-scan-options' => sub { $dialog->signal_handler_disconnect($signal); my $options = $dialog->get('available-scan-options'); is( $options->by_name('mode')->{val}, 'Gray', 'set mode to Gray' ); is( $options->by_name('source')->{val}, 'Automatic Document Feeder', 'source still Automatic Document Feeder' ); Gtk2->main_quit; } ); $dialog->set_option( $dialog->get('available-scan-options')->by_name('mode'), 'Gray' ); } ); $dialog->set_option( $dialog->get('available-scan-options')->by_name('mode'), 'Color' ); } ); $dialog->set_option( $dialog->get('available-scan-options')->by_name('source'), 'Automatic Document Feeder' ); } ); } ); $dialog->set( 'device-list', [ { 'name' => 'test' } ] ); $dialog->set( 'device', 'test' ); Gtk2->main; ######################### __END__ gscan2pdf-1.2.3/t/33_cuneiform.t0000644000175000017500000000173312105700644014721 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 6; BEGIN { use_ok('Gscan2pdf::Cuneiform'); use Encode; } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; SKIP: { skip 'Cuneiform not installed', 5 unless Gscan2pdf::Cuneiform->setup($logger); # Create test image system( 'convert +matte -depth 1 -pointsize 12 -density 300 label:"The quick brown fox" test.png' ); my $got = Gscan2pdf::Cuneiform->hocr( 'test.png', 'eng', $logger ); like( $got, qr/The quick brown fox/, 'Cuneiform returned sensible text' ); # Create test image system( "convert +matte -depth 1 -pointsize 12 -density 300 label:'öÖäÄüÜß' test.png" ); $got = Gscan2pdf::Cuneiform->hocr( 'test.png', 'ger', $logger ); is( Encode::is_utf8( $got, 1 ), 1, "Cuneiform returned UTF8" ); for my $c (qw( ö ä ü )) { my $c2 = decode_utf8($c); like( $got, qr/$c2/, "Cuneiform returned $c" ); } unlink 'test.png'; } gscan2pdf-1.2.3/t/02_Scanner_Options_hp_scanjet5300c.t0000644000175000017500000002400512271200642020675 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 3; use Sane 0.05; # For enums BEGIN { use_ok('Gscan2pdf::Scanner::Options') } ######################### my $filename = 'scanners/hp_scanjet5300c'; my $output = do { local ( @ARGV, $/ ) = $filename; <> }; my $options = Gscan2pdf::Scanner::Options->new_from_data($output); my @that = ( { 'index' => 0, }, { index => 1, title => 'Scan mode', 'cap' => 0, 'max_values' => 0, 'name' => '', 'unit' => SANE_UNIT_NONE, 'desc' => '', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { name => 'mode', title => 'Mode', index => 2, 'desc' => 'Selects the scan mode (e.g., lineart, monochrome, or color).', 'val' => 'Color', 'constraint' => [ 'Lineart', 'Dithered', 'Gray', '12bit Gray', 'Color', '12bit Color' ], 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_STRING_LIST, type => SANE_TYPE_STRING, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'resolution', title => 'Resolution', index => 3, 'desc' => 'Sets the resolution of the scanned image.', 'val' => '150', constraint => { 'min' => 100, 'max' => 1200, 'quant' => 5, }, 'unit' => SANE_UNIT_DPI, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'speed', title => 'Speed', index => 4, 'desc' => 'Determines the speed at which the scan proceeds.', 'val' => '0', constraint => { 'min' => 0, 'max' => 4, 'quant' => 1, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'preview', title => 'Preview', index => 5, 'desc' => 'Request a preview-quality scan.', 'val' => SANE_FALSE, 'unit' => SANE_UNIT_NONE, 'type' => SANE_TYPE_BOOL, 'constraint_type' => SANE_CONSTRAINT_NONE, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'source', title => 'Source', index => 6, 'desc' => 'Selects the scan source (such as a document-feeder).', 'val' => 'Normal', 'constraint' => [ 'Normal', 'ADF' ], 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_STRING_LIST, type => SANE_TYPE_STRING, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { index => 7, title => 'Geometry', 'cap' => 0, 'max_values' => 0, 'name' => '', 'unit' => SANE_UNIT_NONE, 'desc' => '', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { name => 'l', title => 'Top-left x', index => 8, 'desc' => 'Top-left x position of scan area.', 'val' => 0, constraint => { 'min' => 0, 'max' => 216, }, 'unit' => SANE_UNIT_MM, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 't', title => 'Top-left y', index => 9, 'desc' => 'Top-left y position of scan area.', 'val' => 0, constraint => { 'min' => 0, 'max' => 296, }, 'unit' => SANE_UNIT_MM, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'x', title => 'Width', index => 10, 'desc' => 'Width of scan-area.', 'val' => 216, constraint => { 'min' => 0, 'max' => 216, }, 'unit' => SANE_UNIT_MM, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'y', title => 'Height', index => 11, 'desc' => 'Height of scan-area.', 'val' => 296, constraint => { 'min' => 0, 'max' => 296, }, 'unit' => SANE_UNIT_MM, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { index => 12, title => 'Enhancement', 'cap' => 0, 'max_values' => 0, 'name' => '', 'unit' => SANE_UNIT_NONE, 'desc' => '', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { name => 'brightness', title => 'Brightness', index => 13, 'desc' => 'Controls the brightness of the acquired image.', 'val' => '0', constraint => { 'min' => -100, 'max' => 100, 'quant' => 1, }, 'unit' => SANE_UNIT_PERCENT, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'contrast', title => 'Contrast', index => 14, 'desc' => 'Controls the contrast of the acquired image.', 'val' => '0', constraint => { 'min' => -100, 'max' => 100, 'quant' => 1, }, 'unit' => SANE_UNIT_PERCENT, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'quality-scan', title => 'Quality scan', index => 15, 'desc' => 'Turn on quality scanning (slower but better).', 'val' => SANE_TRUE, 'unit' => SANE_UNIT_NONE, 'type' => SANE_TYPE_BOOL, 'constraint_type' => SANE_CONSTRAINT_NONE, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'quality-cal', title => 'Quality cal', index => 16, 'desc' => 'Do a quality white-calibration', 'val' => SANE_TRUE, 'unit' => SANE_UNIT_NONE, 'type' => SANE_TYPE_BOOL, 'constraint_type' => SANE_CONSTRAINT_NONE, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'gamma-table', title => 'Gamma table', index => 17, 'desc' => 'Gamma-correction table. In color mode this option equally affects the red, green, and blue channels simultaneously (i.e., it is an intensity gamma table).', constraint => { 'min' => 0, 'max' => 255, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 255, }, { name => 'red-gamma-table', title => 'Red gamma table', index => 18, 'desc' => 'Gamma-correction table for the red band.', constraint => { 'min' => 0, 'max' => 255, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 255, }, { name => 'green-gamma-table', title => 'Green gamma table', index => 19, 'desc' => 'Gamma-correction table for the green band.', constraint => { 'min' => 0, 'max' => 255, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 255, }, { name => 'blue-gamma-table', title => 'Blue gamma table', index => 20, 'desc' => 'Gamma-correction table for the blue band.', constraint => { 'min' => 0, 'max' => 255, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 255, }, { name => 'frame', title => 'Frame', index => 21, 'desc' => 'Selects the number of the frame to scan', constraint => { 'min' => 0, 'max' => 0, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 1, }, { name => 'power-save-time', title => 'Power save time', index => 22, 'desc' => 'Allows control of the scanner\'s power save timer, dimming or turning off the light.', 'val' => '65535', 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_NONE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'nvram-values', title => 'Nvram values', index => 23, 'desc' => 'Allows access obtaining the scanner\'s NVRAM values as pretty printed text.', 'val' => "Vendor: HP \nModel: ScanJet 5300C \nFirmware: 4.00\nSerial: 3119ME\nManufacturing date: 0-0-0\nFirst scan date: 65535-0-0\nFlatbed scans: 65547\nPad scans: -65536\nADF simplex scans: 136183808", 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_NONE, type => SANE_TYPE_STRING, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, ); is_deeply( $options->{array}, \@that, 'hp_scanjet5300c' ); is( Gscan2pdf::Scanner::Options->device, 'avision:libusb:001:005', 'device name' ); gscan2pdf-1.2.3/t/39_gocr.t0000644000175000017500000000237512237446416013707 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 1; BEGIN { use Gscan2pdf::Document; use Gtk2 -init; # Could just call init separately } ######################### SKIP: { skip 'gocr not installed', 1 unless ( system("which gocr > /dev/null 2> /dev/null") == 0 ); use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system( 'convert +matte -depth 1 -pointsize 12 -density 300 label:"The quick brown fox" test.pnm' ); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.pnm', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { $slist->gocr( page => $slist->{data}[0][2], finished_callback => sub { like( $slist->{data}[0][2]{hocr}, qr/The quick brown fox/, 'gocr returned sensible text' ); Gtk2->main_quit; } ); } ); } ); Gtk2->main; unlink 'test.pnm'; Gscan2pdf::Document->quit(); } gscan2pdf-1.2.3/t/115_save_pdf_with_utf8.t0000644000175000017500000000263212053230657016606 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 1; BEGIN { use Gscan2pdf::Document; use Gtk2 -init; # Could just call init separately use PDF::API2; } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert rose: test.pnm'); my %options; $options{font} = `fc-list : file | grep times.ttf | head -n 1`; chomp $options{font}; $options{font} =~ s/: $//; my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.pnm', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { use utf8; $slist->{data}[0][2]{hocr} = 'пени способствовала сохранению'; $slist->save_pdf( path => 'test.pdf', list_of_pages => [ $slist->{data}[0][2] ], options => \%options, finished_callback => sub { Gtk2->main_quit } ); } ); } ); Gtk2->main; like( `pdftotext test.pdf -`, qr/пени способствовала сохранению/, 'PDF with expected text' ); ######################### unlink 'test.pnm', 'test.pdf'; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/02_Scanner_Options_libsane-perl.t0000644000175000017500000001641412270574026020477 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 17; BEGIN { use_ok('Gscan2pdf::Scanner::Options') } ######################### my $data = [ { 'cap' => '0', 'unit' => '0', 'max_values' => '0', 'desc' => '', 'name' => '', 'title' => 'Geometry', 'type' => '5', 'constraint_type' => '0' }, { 'cap' => '5', 'max_values' => '1', 'name' => 'tl-x', 'val' => '0', 'unit' => '3', 'desc' => 'Top-left x position of scan area.', 'constraint' => { 'min' => '0', 'max' => '200', 'quant' => '1' }, 'title' => 'Top-left x', 'type' => '2', 'constraint_type' => '1' }, { 'cap' => '5', 'max_values' => '1', 'name' => 'tl-y', 'val' => '0', 'unit' => '3', 'desc' => 'Top-left y position of scan area.', 'constraint' => { 'min' => '0', 'max' => '200', 'quant' => '1' }, 'title' => 'Top-left y', 'type' => '2', 'constraint_type' => '1' }, { 'cap' => '5', 'max_values' => '1', 'name' => 'br-x', 'val' => '80', 'unit' => '3', 'desc' => 'Bottom-right x position of scan area.', 'constraint' => { 'min' => '0', 'max' => '200', 'quant' => '1' }, 'title' => 'Bottom-right x', 'type' => '2', 'constraint_type' => '1' }, { 'cap' => '5', 'max_values' => '1', 'name' => 'br-y', 'val' => '100', 'unit' => '3', 'desc' => 'Bottom-right y position of scan area.', 'constraint' => { 'min' => '0', 'max' => '200', 'quant' => '1' }, 'title' => 'Bottom-right y', 'type' => '2', 'constraint_type' => '1' }, { 'cap' => '5', 'max_values' => '1', 'name' => 'page-width', 'val' => '200', 'unit' => '3', 'desc' => 'Specifies the width of the media. Required for automatic centering of sheet-fed scans.', 'constraint' => { 'min' => '0', 'max' => '300', 'quant' => '1' }, 'title' => 'Page width', 'type' => '2', 'constraint_type' => '1' }, { 'cap' => '5', 'max_values' => '1', 'name' => 'page-height', 'val' => '200', 'unit' => '3', 'desc' => 'Specifies the height of the media.', 'constraint' => { 'min' => '0', 'max' => '300', 'quant' => '1' }, 'title' => 'Page height', 'type' => '2', 'constraint_type' => '1' }, ]; my $options = Gscan2pdf::Scanner::Options->new_from_data($data); my @that = ( { index => 0, 'cap' => '0', 'unit' => '0', 'max_values' => '0', 'desc' => '', 'name' => '', 'title' => 'Geometry', 'type' => '5', 'constraint_type' => '0' }, { index => 1, 'cap' => '5', 'max_values' => '1', 'name' => 'tl-x', 'val' => '0', 'unit' => '3', 'desc' => 'Top-left x position of scan area.', 'constraint' => { 'min' => '0', 'max' => '200', 'quant' => '1' }, 'title' => 'Top-left x', 'type' => '2', 'constraint_type' => '1' }, { index => 2, 'cap' => '5', 'max_values' => '1', 'name' => 'tl-y', 'val' => '0', 'unit' => '3', 'desc' => 'Top-left y position of scan area.', 'constraint' => { 'min' => '0', 'max' => '200', 'quant' => '1' }, 'title' => 'Top-left y', 'type' => '2', 'constraint_type' => '1' }, { index => 3, 'cap' => '5', 'max_values' => '1', 'name' => 'br-x', 'val' => '80', 'unit' => '3', 'desc' => 'Bottom-right x position of scan area.', 'constraint' => { 'min' => '0', 'max' => '200', 'quant' => '1' }, 'title' => 'Bottom-right x', 'type' => '2', 'constraint_type' => '1' }, { index => 4, 'cap' => '5', 'max_values' => '1', 'name' => 'br-y', 'val' => '100', 'unit' => '3', 'desc' => 'Bottom-right y position of scan area.', 'constraint' => { 'min' => '0', 'max' => '200', 'quant' => '1' }, 'title' => 'Bottom-right y', 'type' => '2', 'constraint_type' => '1' }, { index => 5, 'cap' => '5', 'max_values' => '1', 'name' => 'page-width', 'val' => '200', 'unit' => '3', 'desc' => 'Specifies the width of the media. Required for automatic centering of sheet-fed scans.', 'constraint' => { 'min' => '0', 'max' => '300', 'quant' => '1' }, 'title' => 'Page width', 'type' => '2', 'constraint_type' => '1' }, { index => 6, 'cap' => '5', 'max_values' => '1', 'name' => 'page-height', 'val' => '200', 'unit' => '3', 'desc' => 'Specifies the height of the media.', 'constraint' => { 'min' => '0', 'max' => '300', 'quant' => '1' }, 'title' => 'Page height', 'type' => '2', 'constraint_type' => '1' }, ); is_deeply( $options->{array}, \@that, 'libsane-perl' ); is( $options->supports_paper( { x => 210, y => 297, l => 0, t => 0, }, 0 ), 1, 'page-width supports_paper' ); is( $options->supports_paper( { x => 210, y => 297, l => 0, t => -10, }, 0 ), 0, 'page-width paper crosses top border' ); is( $options->supports_paper( { x => 210, y => 297, l => 0, t => 600, }, 0 ), 0, 'page-width paper crosses bottom border' ); is( $options->supports_paper( { x => 210, y => 297, l => -10, t => 0, }, 0 ), 0, 'page-width paper crosses left border' ); is( $options->supports_paper( { x => 210, y => 297, l => 100, t => 0, }, 0 ), 0, 'page-width paper crosses right border' ); is( $options->supports_paper( { x => 301, y => 297, l => 0, t => 0, }, 0 ), 0, 'page-width paper too wide' ); is( $options->supports_paper( { x => 210, y => 870, l => 0, t => 0, }, 0 ), 0, 'page-width paper too tall' ); $options->delete_by_name('page-width'); $options->delete_by_name('page-height'); delete $options->{geometry}{w}; delete $options->{geometry}{h}; is( $options->supports_paper( { x => 200, y => 200, l => 0, t => 0, }, 0 ), 1, 'supports_paper' ); is( $options->supports_paper( { x => 200, y => 200, l => 0, t => -10, }, 0 ), 0, 'paper crosses top border' ); is( $options->supports_paper( { x => 200, y => 200, l => 0, t => 600, }, 0 ), 0, 'paper crosses bottom border' ); is( $options->supports_paper( { x => 200, y => 200, l => -10, t => 0, }, 0 ), 0, 'paper crosses left border' ); is( $options->supports_paper( { x => 200, y => 200, l => 100, t => 0, }, 0 ), 0, 'paper crosses right border' ); is( $options->supports_paper( { x => 201, y => 200, l => 0, t => 0, }, 0 ), 0, 'paper too wide' ); is( $options->supports_paper( { x => 200, y => 270, l => 0, t => 0, }, 0 ), 0, 'paper too tall' ); is( $options->by_name('page-height'), undef, 'by name undefined' ); gscan2pdf-1.2.3/t/46_cancel_negate.t0000644000175000017500000000271112270574026015511 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 2; BEGIN { use Gscan2pdf::Document; use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert xc:white white.pnm'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'white.pnm', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { my $md5sum = `md5sum $slist->{data}[0][2]{filename} | cut -c -32`; my $pid = $slist->negate( page => $slist->{data}[0][2], cancelled_callback => sub { is( $md5sum, `md5sum $slist->{data}[0][2]{filename} | cut -c -32`, 'image not modified' ); $slist->save_image( path => 'test.jpg', list_of_pages => [ $slist->{data}[0][2] ], finished_callback => sub { Gtk2->main_quit } ); } ); $slist->cancel($pid); } ); } ); Gtk2->main; is( system('identify test.jpg'), 0, 'can create a valid JPG after cancelling previous process' ); ######################### unlink 'white.pnm', 'test.jpg'; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/061_Dialog_Scan_Sane.t0000644000175000017500000002774112270574026016141 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 45; use Glib qw(TRUE FALSE); # To get TRUE and FALSE use Gtk2 -init; # Could just call init separately use Sane 0.05; # To get SANE_* enums BEGIN { use_ok('Gscan2pdf::Dialog::Scan::Sane'); } ######################### my $window = Gtk2::Window->new; Glib::set_application_name('gscan2pdf'); use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Frontend::Sane->setup($logger); ok( my $dialog = Gscan2pdf::Dialog::Scan::Sane->new( title => 'title', 'transient-for' => $window, 'logger' => $logger ), 'Created dialog' ); isa_ok( $dialog, 'Gscan2pdf::Dialog::Scan::Sane' ); is( $dialog->get('device'), '', 'device' ); is( $dialog->get('device-list'), undef, 'device-list' ); is( $dialog->get('dir'), undef, 'dir' ); is( $dialog->get('num-pages'), 1, 'num-pages' ); is( $dialog->get('max-pages'), 0, 'max-pages' ); is( $dialog->get('page-number-start'), 1, 'page-number-start' ); is( $dialog->get('page-number-increment'), 1, 'page-number-increment' ); is( $dialog->get('side-to-scan'), 'facing', 'side-to-scan' ); is( $dialog->get('available-scan-options'), undef, 'available-scan-options' ); $dialog->{signal} = $dialog->signal_connect( 'changed-num-pages' => sub { my ( $widget, $n, $signal ) = @_; $dialog->signal_handler_disconnect( $dialog->{signal} ); is( $n, 0, 'changed-num-pages' ); } ); $dialog->set( 'num-pages', 0 ); $dialog->{signal} = $dialog->signal_connect( 'changed-page-number-start' => sub { my ( $widget, $n ) = @_; $dialog->signal_handler_disconnect( $dialog->{signal} ); is( $n, 2, 'changed-page-number-start' ); } ); $dialog->set( 'page-number-start', 2 ); $dialog->{signal} = $dialog->signal_connect( 'changed-page-number-increment' => sub { my ( $widget, $n ) = @_; $dialog->signal_handler_disconnect( $dialog->{signal} ); is( $n, 2, 'changed-page-number-increment' ); $dialog->{signal} = $dialog->signal_connect( 'changed-side-to-scan' => sub { my ( $widget, $side ) = @_; $dialog->signal_handler_disconnect( $dialog->{signal} ); is( $side, 'reverse', 'changed-side-to-scan' ); is( $dialog->get('page-number-increment'), -2, 'reverse side gives increment -2' ); } ); $dialog->set( 'side-to-scan', 'reverse' ); } ); $dialog->set( 'page-number-increment', 2 ); $dialog->{reloaded_signal} = $dialog->signal_connect( 'reloaded-scan-options' => sub { $dialog->signal_handler_disconnect( $dialog->{reloaded_signal} ); ok( 1, 'reloaded-scan-options' ); # So that it can be used in hash my $resolution = SANE_NAME_SCAN_RESOLUTION; $dialog->{signal} = $dialog->signal_connect( 'added-profile' => sub { my ( $widget, $name, $profile ) = @_; $dialog->signal_handler_disconnect( $dialog->{signal} ); is( $name, 'my profile', 'added-profile name' ); is_deeply( $profile, [ { $resolution => 52 }, { mode => 'Color' } ], 'added-profile profile' ); } ); $dialog->add_profile( 'my profile', [ { $resolution => 52 }, { mode => 'Color' } ] ); ###################################### $dialog->{signal} = $dialog->signal_connect( 'added-profile' => sub { my ( $widget, $name, $profile ) = @_; $dialog->signal_handler_disconnect( $dialog->{signal} ); is( $name, 'old profile', 'added-profile old name' ); is_deeply( $profile, [ { mode => 'Gray' }, { $resolution => 51 } ], 'added-profile profile as hash' ); } ); $dialog->add_profile( 'old profile', { $resolution => 51, mode => 'Gray' } ); ###################################### $dialog->signal_connect( 'removed-profile' => sub { my ( $widget, $profile ) = @_; is( $profile, 'old profile', 'removed-profile' ); } ); $dialog->remove_profile('old profile'); ###################################### # need a new main loop because of the timeout my $loop = Glib::MainLoop->new; my $flag = FALSE; $dialog->{signal} = $dialog->signal_connect( 'changed-profile' => sub { my ( $widget, $profile ) = @_; $dialog->signal_handler_disconnect( $dialog->{signal} ); is( $profile, 'my profile', 'changed-profile' ); is_deeply( $dialog->get('current-scan-options'), [ { $resolution => 52 }, { mode => 'Color' } ], 'current-scan-options with profile' ); $flag = TRUE; $loop->quit; } ); $dialog->set( 'profile', 'my profile' ); $loop->run unless ($flag); ###################################### $dialog->add_profile( 'my profile2', [ { $resolution => 52 }, { mode => 'Color' } ] ); # need a new main loop because of the timeout $loop = Glib::MainLoop->new; $flag = FALSE; $dialog->{signal} = $dialog->signal_connect( 'changed-profile' => sub { my ( $widget, $profile ) = @_; $dialog->signal_handler_disconnect( $dialog->{signal} ); is( $profile, 'my profile2', 'set profile with identical options' ); $flag = TRUE; $loop->quit; } ); $dialog->set( 'profile', 'my profile2' ); $loop->run unless ($flag); ###################################### # need a new main loop because of the timeout $loop = Glib::MainLoop->new; $flag = FALSE; $dialog->{signal} = $dialog->signal_connect( 'changed-scan-option' => sub { my ( $widget, $option, $value ) = @_; $dialog->signal_handler_disconnect( $dialog->{signal} ); is( $dialog->get('profile'), undef, 'changing an option deselects the current profile' ); is_deeply( $dialog->get('current-scan-options'), [ { mode => 'Color' }, { $resolution => 51 } ], 'current-scan-options without profile' ); $flag = TRUE; $loop->quit; } ); my $options = $dialog->get('available-scan-options'); $dialog->set_option( $options->by_name($resolution), 51 ); $loop->run unless ($flag); my @geometry_widgets = keys %{ $options->{box} }; cmp_ok( $#geometry_widgets == 3, '||', $#geometry_widgets == 5, 'Only 4 or 6 options should be flagged as geometry' ); ###################################### # need a new main loop because of the timeout $loop = Glib::MainLoop->new; $flag = FALSE; # Reset profile for next test $dialog->{signal} = $dialog->signal_connect( 'changed-profile' => sub { my ( $widget, $profile ) = @_; $dialog->signal_handler_disconnect( $dialog->{signal} ); is( $profile, 'my profile', 'reset profile' ); $flag = TRUE; $loop->quit; } ); $dialog->set( 'profile', 'my profile' ); $loop->run unless ($flag); ###################################### # need a new main loop because of the timeout $loop = Glib::MainLoop->new; $flag = FALSE; $dialog->{signal} = $dialog->signal_connect( 'changed-profile' => sub { my ( $widget, $profile ) = @_; $dialog->signal_handler_disconnect( $dialog->{signal} ); is( $profile, undef, 'changing an option fires the changed-profile signal if a profile is set' ); is_deeply( $dialog->get('current-scan-options'), [ { mode => 'Color' }, { $resolution => 51 } ], 'current-scan-options without profile (again)' ); my $reloaded_options = $dialog->get('available-scan-options'); is( $reloaded_options->by_name($resolution)->{val}, 51, 'option value updated when reloaded' ); $flag = TRUE; $loop->quit; } ); $options = $dialog->get('available-scan-options'); $dialog->set_option( $options->by_name($resolution), 51 ); $loop->run unless ($flag); ###################################### $dialog->set( 'paper-formats', { new => { l => 1, y => 50, x => 50, t => 2, } } ); $dialog->add_profile( 'cli geometry', [ { 'Paper size' => 'new' }, { $resolution => 50 } ] ); # need a new main loop because of the timeout $loop = Glib::MainLoop->new; $flag = FALSE; $dialog->{signal} = $dialog->signal_connect( 'changed-profile' => sub { my ( $widget, $profile ) = @_; $dialog->signal_handler_disconnect( $dialog->{signal} ); my $options = $dialog->get('available-scan-options'); my $expected = [ { 'Paper size' => 'new' } ]; push @$expected, { scalar(SANE_NAME_PAGE_HEIGHT) => 52 } if ( defined $options->by_name(SANE_NAME_PAGE_HEIGHT) ); push @$expected, { scalar(SANE_NAME_PAGE_WIDTH) => 51 } if ( defined $options->by_name(SANE_NAME_PAGE_WIDTH) ); push @$expected, { scalar(SANE_NAME_SCAN_TL_X) => 1 }, { scalar(SANE_NAME_SCAN_TL_Y) => 2 }, { scalar(SANE_NAME_SCAN_BR_X) => 51 }, { scalar(SANE_NAME_SCAN_BR_Y) => 52 }, { $resolution => 50 }; is_deeply( $dialog->get('current-scan-options'), $expected, 'CLI geometry option names' ); $flag = TRUE; $loop->quit; } ); $dialog->set( 'profile', 'cli geometry' ); $loop->run unless ($flag); ###################################### $dialog->signal_connect( 'changed-paper-formats' => sub { my ( $widget, $formats ) = @_; ok( 1, 'changed-paper-formats' ); } ); $dialog->set( 'paper-formats', { new2 => { l => 0, y => 10, x => 10, t => 0, } } ); $dialog->signal_connect( 'changed-paper' => sub { my ( $widget, $paper ) = @_; is( $paper, 'new2', 'changed-paper' ); } ); $dialog->set( 'paper', 'new2' ); my $s_signal; $s_signal = $dialog->signal_connect( 'started-process' => sub { $dialog->signal_handler_disconnect($s_signal); ok( 1, 'started-process' ); } ); my $c_signal; $c_signal = $dialog->signal_connect( 'changed-progress' => sub { $dialog->signal_handler_disconnect($c_signal); ok( 1, 'changed-progress' ); } ); my $f_signal; $f_signal = $dialog->signal_connect( 'finished-process' => sub { my ( $widget, $process ) = @_; $dialog->signal_handler_disconnect($f_signal); is( $process, 'set_option', 'finished-process set_option' ); } ); my $n; $dialog->signal_connect( 'new-scan' => sub { ( my $widget, $n ) = @_; } ); $dialog->signal_connect( 'finished-process' => sub { my ( $widget, $process ) = @_; if ( $process eq 'scan_pages' ) { is( $n, 1, 'new-scan emitted once' ); # changing device via the combobox should really change the device! $dialog->{signal} = $dialog->signal_connect( 'changed-device' => sub { my ( $widget, $name ) = @_; $dialog->signal_handler_disconnect( $dialog->{signal} ); is( $name, 'test:1', 'changed-device via combobox' ); my $e_signal; $e_signal = $dialog->signal_connect( 'process-error' => sub { my ( $widget, $process, $message ) = @_; $dialog->signal_handler_disconnect($e_signal); is( $process, 'open_device', 'caught error opening device' ); Gtk2->main_quit; } ); # setting an unknown device should throw an error $dialog->set( 'device', 'error' ); } ); $dialog->{combobd}->set_active(1); } } ); $dialog->set( 'num-pages', 1 ); $dialog->set( 'page-number-start', 1 ); $dialog->set( 'side-to-scan', 'facing' ); $dialog->scan; } ); $dialog->{signal} = $dialog->signal_connect( 'changed-device-list' => sub { $dialog->signal_handler_disconnect( $dialog->{signal} ); ok( 1, 'changed-device-list' ); is_deeply( $dialog->get('device-list'), [ { 'name' => 'test:0', 'model' => 'test:0', 'label' => 'test:0' }, { 'name' => 'test:1', 'model' => 'test:1', 'label' => 'test:1' } ], 'add model field if missing' ); $dialog->{signal} = $dialog->signal_connect( 'changed-device' => sub { my ( $widget, $name ) = @_; $dialog->signal_handler_disconnect( $dialog->{signal} ); is( $name, 'test:0', 'changed-device' ); } ); $dialog->set( 'device', 'test:0' ); } ); $dialog->set( 'device-list', [ { 'name' => 'test:0' }, { 'name' => 'test:1' } ] ); Gtk2->main; Gscan2pdf::Frontend::Sane->quit; __END__ gscan2pdf-1.2.3/t/52_cancel_cuneiform.t0000644000175000017500000000305012053230657016225 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 2; BEGIN { use Gscan2pdf::Document; use Gscan2pdf::Cuneiform; use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; SKIP: { skip 'Cuneiform not installed', 2 unless Gscan2pdf::Cuneiform->setup($logger); Gscan2pdf::Document->setup($logger); # Create test image system( 'convert +matte -depth 1 -pointsize 12 -density 300 label:"The quick brown fox" test.png' ); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.png', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { my $pid = $slist->cuneiform( page => $slist->{data}[0][2], language => 'eng', cancelled_callback => sub { is( $slist->{data}[0][2]{hocr}, undef, 'no OCR output' ); $slist->save_image( path => 'test.jpg', list_of_pages => [ $slist->{data}[0][2] ], finished_callback => sub { Gtk2->main_quit } ); } ); $slist->cancel($pid); } ); } ); Gtk2->main; is( system('identify test.jpg'), 0, 'can create a valid JPG after cancelling previous process' ); unlink 'test.png', 'test.jpg'; Gscan2pdf::Document->quit(); } gscan2pdf-1.2.3/t/99_pod.t0000644000175000017500000000023312053230657013526 0ustar jeffjeffuse warnings; use strict; use Test::More; eval "use Test::Pod 1.00"; plan skip_all => "Test::Pod 1.00 required for testing POD" if $@; all_pod_files_ok(); gscan2pdf-1.2.3/t/53_cancel_unpaper.t0000644000175000017500000000413712270574026015722 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 2; BEGIN { use Gscan2pdf::Document; use Gscan2pdf::Unpaper; use Gtk2 -init; # Could just call init separately } ######################### SKIP: { skip 'unpaper not installed', 2 unless ( system("which unpaper > /dev/null 2> /dev/null") == 0 ); my $unpaper = Gscan2pdf::Unpaper->new( { 'output-pages' => 2, layout => 'double' } ); use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system( 'convert +matte -depth 1 -border 2x2 -bordercolor black -pointsize 12 -density 300 label:"The quick brown fox" 1.pnm' ); system( 'convert +matte -depth 1 -border 2x2 -bordercolor black -pointsize 12 -density 300 label:"The slower lazy dog" 2.pnm' ); system('convert -size 100x100 xc:black black.pnm'); system('convert 1.pnm black.pnm 2.pnm +append test.pnm'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.pnm', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { my $md5sum = `md5sum $slist->{data}[0][2]{filename} | cut -c -32`; my $pid = $slist->unpaper( page => $slist->{data}[0][2], options => $unpaper->get_cmdline, cancelled_callback => sub { is( $md5sum, `md5sum $slist->{data}[0][2]{filename} | cut -c -32`, 'image not modified' ); $slist->save_image( path => 'test.jpg', list_of_pages => [ $slist->{data}[0][2] ], finished_callback => sub { Gtk2->main_quit } ); } ); $slist->cancel($pid); } ); } ); Gtk2->main; is( system('identify test.jpg'), 0, 'can create a valid JPG after cancelling previous process' ); unlink 'test.pnm', '1.pnm', '2.pnm', 'black.pnm', 'test.jpg'; Gscan2pdf::Document->quit(); } gscan2pdf-1.2.3/t/81_scanadf-perl.t0000644000175000017500000000076012053230657015277 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 1; ######################### SKIP: { skip 'scanadf v1.0.14 not installed', 1 unless ( `scanadf --version` eq "scanadf (sane-frontends) 1.0.14\n" ); my $output = `perl bin/scanadf-perl --device=test --help`; $output =~ s/scanadf-perl/scanadf/g; my $example = `scanadf --device=test --help`; my @output = split( "\n", $output ); my @example = split( "\n", $example ); is_deeply( \@output, \@example, "basic help functionality" ); } gscan2pdf-1.2.3/t/1111_save_pdf_with_locale.t0000644000175000017500000000224412053230657017233 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 1; use Gtk2 -init; # Could just call init separately use POSIX qw(locale_h); BEGIN { use Gscan2pdf::Document; use PDF::API2; } ######################### setlocale( LC_NUMERIC, "de_DE" ); Glib::set_application_name('gscan2pdf'); use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert rose: test.pnm'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.pnm', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { $slist->save_pdf( path => 'test.pdf', list_of_pages => [ $slist->{data}[0][2] ], finished_callback => sub { Gtk2->main_quit } ); } ); } ); Gtk2->main; is( system('identify test.pdf'), 0, 'valid PDF created' ); ######################### unlink 'test.pnm', 'test.pdf'; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/04_Unpaper.t0000644000175000017500000000400212053230657014336 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 5; BEGIN { use_ok('Gscan2pdf::Unpaper'); use Gtk2 -init; # Could just call init separately use version; } ######################### my $unpaper = Gscan2pdf::Unpaper->new; my $vbox = Gtk2::VBox->new; $unpaper->add_options($vbox); is( $unpaper->get_cmdline, 'unpaper --output-pages 1 --white-threshold 0.9 --layout single --black-threshold 0.33 --deskew-scan-direction left,right --border-margin 0,0 --overwrite ' . ( version->parse( $unpaper->version ) > version->parse('v0.3') ? '%s %s %s' : '--input-file-sequence %s --output-file-sequence %s %s' ), 'Basic functionality' ); $unpaper = Gscan2pdf::Unpaper->new( { layout => 'Double' } ); $unpaper->add_options($vbox); is( $unpaper->get_cmdline, 'unpaper --output-pages 1 --white-threshold 0.9 --layout double --black-threshold 0.33 --deskew-scan-direction left,right --border-margin 0,0 --overwrite ' . ( version->parse( $unpaper->version ) > version->parse('v0.3') ? '%s %s %s' : '--input-file-sequence %s --output-file-sequence %s %s' ), 'Defaults' ); is_deeply( $unpaper->get_options, { 'no-blackfilter' => '', 'output-pages' => '1', 'no-deskew' => '', 'no-border-scan' => '', 'no-noisefilter' => '', 'no-blurfilter' => '', 'white-threshold' => '0.9', 'layout' => 'double', 'no-mask-scan' => '', 'no-grayfilter' => '', 'no-border-align' => '', 'black-threshold' => '0.33', 'deskew-scan-direction' => 'left,right', 'border-margin' => '0,0' }, 'get_options' ); ######################### $unpaper = Gscan2pdf::Unpaper->new( { 'white-threshold' => '0.8', 'black-threshold' => '0.35', }, ); is( $unpaper->get_cmdline, 'unpaper --white-threshold 0.8 --black-threshold 0.35 --overwrite ' . ( version->parse( $unpaper->version ) > version->parse('v0.3') ? '%s %s %s' : '--input-file-sequence %s --output-file-sequence %s %s' ), 'no GUI' ); __END__ gscan2pdf-1.2.3/t/54_cancel_user_defined.t0000644000175000017500000000300312270574026016674 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 2; BEGIN { use Gscan2pdf::Document; use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert xc:white white.pnm'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'white.pnm', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { my $md5sum = `md5sum $slist->{data}[0][2]{filename} | cut -c -32`; my $pid = $slist->user_defined( page => $slist->{data}[0][2], command => 'convert %i -negate %o', cancelled_callback => sub { is( $md5sum, `md5sum $slist->{data}[0][2]{filename} | cut -c -32`, 'image not modified' ); $slist->save_image( path => 'test.jpg', list_of_pages => [ $slist->{data}[0][2] ], finished_callback => sub { Gtk2->main_quit } ); } ); $slist->cancel($pid); } ); } ); Gtk2->main; is( system('identify test.jpg'), 0, 'can create a valid JPG after cancelling previous process' ); ######################### unlink 'white.pnm', 'test.jpg'; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/36_unpaper2.t0000644000175000017500000000365512053230657014502 0ustar jeffjeffuse warnings; use strict; use File::Basename; # Split filename into dir, file, ext use Test::More tests => 3; BEGIN { use Gscan2pdf::Document; use Gscan2pdf::Unpaper; use Gtk2 -init; # Could just call init separately } SKIP: { skip 'unpaper not installed', 2 unless ( system("which unpaper > /dev/null 2> /dev/null") == 0 ); my $unpaper = Gscan2pdf::Unpaper->new( { 'output-pages' => 2, layout => 'double' } ); use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); Gscan2pdf::Document->setup(Log::Log4perl::get_logger); # Create test image system( 'convert +matte -depth 1 -border 2x2 -bordercolor black -pointsize 12 -density 300 label:"The quick brown fox" 1.pnm' ); system( 'convert +matte -depth 1 -border 2x2 -bordercolor black -pointsize 12 -density 300 label:"The slower lazy dog" 2.pnm' ); system('convert -size 100x100 xc:black black.pnm'); system('convert 1.pnm black.pnm 2.pnm +append test.pnm'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.pnm', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { $slist->unpaper( page => $slist->{data}[0][2], options => $unpaper->get_cmdline, finished_callback => sub { is( system("identify $slist->{data}[0][2]{filename}"), 0, 'valid PNM created for LH' ); is( system("identify $slist->{data}[1][2]{filename}"), 0, 'valid PNM created for RH' ); is( dirname("$slist->{data}[0][2]{filename}"), "$dir", 'using session directory' ); Gtk2->main_quit; } ); } ); } ); Gtk2->main; unlink 'test.pnm', '1.pnm', '2.pnm', 'black.pnm', <$dir/*>; rmdir $dir; Gscan2pdf::Document->quit(); } gscan2pdf-1.2.3/t/374_user_defined.t0000644000175000017500000000371312237446416015470 0ustar jeffjeffuse warnings; use strict; use File::Basename; # Split filename into dir, file, ext use Test::More tests => 5; BEGIN { use Gscan2pdf::Document; use Gtk2 -init; # Could just call init separately } use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); Gscan2pdf::Document->setup(Log::Log4perl::get_logger); my %paper_sizes = ( A4 => { x => 210, y => 297, l => 0, t => 0, }, 'US Letter' => { x => 216, y => 279, l => 0, t => 0, }, 'US Legal' => { x => 216, y => 356, l => 0, t => 0, }, ); # Create test image system('convert -size 210x297 xc:white white.pnm'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->set_paper_sizes( \%paper_sizes ); $slist->get_file_info( path => 'white.pnm', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { is( int( abs( $slist->{data}[0][2]{resolution} - 25.4 ) ), 0, 'Resolution of imported image' ); $slist->user_defined( page => $slist->{data}[0][2], command => 'convert %i tmp.pgm;mv tmp.pgm %i', finished_callback => sub { is( int( abs( $slist->{data}[0][2]{resolution} - 25.4 ) ), 0, 'Resolution of converted image' ); my ( $dir, $base, $suffix ) = fileparse( "$slist->{data}[0][2]{filename}", qr/\.[^.]*/ ); is( $dir, "$dir", 'using session directory' ); is( $suffix, ".pgm", 'still has an extension' ); $slist->save_pdf( path => 'test.pdf', list_of_pages => [ $slist->{data}[0][2] ], finished_callback => sub { Gtk2->main_quit } ); } ); } ); } ); Gtk2->main; like( `pdfinfo test.pdf`, qr/A4/, 'PDF is A4' ); ######################### unlink 'white.pnm', 'test.pdf', <$dir/*>; rmdir $dir; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/02_Scanner_Options_Brother_DCP-7025.t0000644000175000017500000001222212271200642020570 0ustar jeffjeffuse warnings; use strict; use Sane 0.05; # For enums use Test::More tests => 3; BEGIN { use_ok('Gscan2pdf::Scanner::Options') } ######################### my $filename = 'scanners/Brother_DCP-7025'; my $output = do { local ( @ARGV, $/ ) = $filename; <> }; my $options = Gscan2pdf::Scanner::Options->new_from_data($output); my @that = ( { 'index' => 0, }, { title => 'Mode', type => SANE_TYPE_GROUP, 'cap' => 0, 'max_values' => 0, 'name' => '', 'unit' => SANE_UNIT_NONE, 'index' => 1, 'desc' => '', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { name => 'mode', title => 'Mode', index => 2, 'desc' => 'Select the scan mode', 'val' => 'Black & White', 'constraint' => [ 'Black & White', 'Gray[Error Diffusion]', 'True Gray', '24bit Color', '24bit Color[Fast]' ], constraint_type => SANE_CONSTRAINT_STRING_LIST, 'unit' => SANE_UNIT_NONE, type => SANE_TYPE_STRING, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'resolution', title => 'Resolution', index => 3, 'desc' => 'Sets the resolution of the scanned image.', 'val' => 200, 'constraint' => [ 100, 150, 200, 300, 400, 600, 1200, 2400, 4800, '9600' ], 'unit' => SANE_UNIT_DPI, constraint_type => SANE_CONSTRAINT_WORD_LIST, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'source', title => 'Source', index => 4, 'desc' => 'Selects the scan source (such as a document-feeder).', 'val' => 'Automatic Document Feeder', 'constraint' => [ 'FlatBed', 'Automatic Document Feeder' ], 'unit' => SANE_UNIT_NONE, type => SANE_TYPE_STRING, constraint_type => SANE_CONSTRAINT_STRING_LIST, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'brightness', title => 'Brightness', index => 5, 'desc' => 'Controls the brightness of the acquired image.', 'val' => 0, constraint => { 'min' => -50, 'max' => 50, 'quant' => 1, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_PERCENT, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'contrast', title => 'Contrast', index => 6, 'desc' => 'Controls the contrast of the acquired image.', constraint => { 'min' => -50, 'max' => 50, 'quant' => 1, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_PERCENT, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 1, }, { index => 7, title => 'Geometry', type => SANE_TYPE_GROUP, 'cap' => 0, 'max_values' => 0, 'name' => '', 'unit' => SANE_UNIT_NONE, 'desc' => '', 'constraint_type' => SANE_CONSTRAINT_NONE }, { name => 'l', title => 'Top-left x', index => 8, 'desc' => 'Top-left x position of scan area.', 'val' => 0, constraint => { 'min' => 0, 'max' => 210, 'quant' => 0.0999908, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_MM, type => SANE_TYPE_FIXED, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 't', title => 'Top-left y', index => 9, 'desc' => 'Top-left y position of scan area.', 'val' => 0, constraint => { 'min' => 0, 'max' => 297, 'quant' => 0.0999908, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_MM, type => SANE_TYPE_FIXED, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'x', title => 'Width', index => 10, 'desc' => 'Width of scan-area.', 'val' => 209.981, constraint => { 'min' => 0, 'max' => 210, 'quant' => 0.0999908, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_MM, type => SANE_TYPE_FIXED, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'y', title => 'Height', index => 11, 'desc' => 'Height of scan-area.', 'val' => 296.973, constraint => { 'min' => 0, 'max' => 297, 'quant' => 0.0999908, }, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_MM, type => SANE_TYPE_FIXED, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, } ); is_deeply( $options->{array}, \@that, 'Brother_DCP-7025' ); is( Gscan2pdf::Scanner::Options->device, 'brother2:bus5;dev1', 'device name' ); gscan2pdf-1.2.3/t/067_Dialog_Scan_CLI.t0000644000175000017500000000620112237446454015662 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 9; use Glib qw(TRUE FALSE); # To get TRUE and FALSE use Gtk2 -init; # Could just call init separately BEGIN { use_ok('Gscan2pdf::Dialog::Scan::CLI'); } ######################### my $window = Gtk2::Window->new; Glib::set_application_name('gscan2pdf'); use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Frontend::CLI->setup($logger); ok( my $dialog = Gscan2pdf::Dialog::Scan::CLI->new( title => 'title', 'transient-for' => $window, 'logger' => $logger, 'reload-triggers' => qw(mode), ), 'Created dialog' ); isa_ok( $dialog, 'Gscan2pdf::Dialog::Scan::CLI' ); $dialog->set( 'cache-options', TRUE ); $dialog->signal_connect( 'process-error' => sub { my ( $widget, $process, $msg ) = @_; Gtk2->main_quit; } ); my ( $signal, $signal2 ); $signal = $dialog->signal_connect( 'changed-options-cache' => sub { $dialog->signal_handler_disconnect($signal); is( $#{ $dialog->get('current-scan-options') }, -1, 'cached default Gray - no scan option set' ); $signal = $dialog->signal_connect( 'reloaded-scan-options' => sub { $dialog->signal_handler_disconnect($signal); $signal = $dialog->signal_connect( 'changed-options-cache' => sub { $dialog->signal_handler_disconnect($signal); is( $#{ $dialog->get('current-scan-options') }, 0, 'cached Color - 1 scan option set' ); $signal2 = $dialog->signal_connect( 'fetched-options-cache' => sub { my ( $widget, $device, $cache_key ) = @_; $dialog->signal_handler_disconnect($signal2); pass('fetched-options-cache'); } ); $signal = $dialog->signal_connect( 'reloaded-scan-options' => sub { $dialog->signal_handler_disconnect($signal); is( $#{ $dialog->get('current-scan-options') }, 0, 'retrieved Gray from cache - 1 scan option set' ); $signal = $dialog->signal_connect( 'reloaded-scan-options' => sub { $dialog->signal_handler_disconnect($signal); is( $#{ $dialog->get('current-scan-options') }, 0, 'retrieved Color from cache - 1 scan option set' ); $signal = $dialog->signal_connect( 'reloaded-scan-options' => sub { $dialog->signal_handler_disconnect($signal); is( $#{ $dialog->get('current-scan-options') }, 0, 'retrieved Gray from cache #2 - 1 scan option set' ); Gtk2->main_quit; } ); $dialog->set_option( $dialog->get('available-scan-options')->by_name('mode'), 'Gray' ); } ); $dialog->set_option( $dialog->get('available-scan-options')->by_name('mode'), 'Color' ); } ); $dialog->set_option( $dialog->get('available-scan-options')->by_name('mode'), 'Gray' ); } ); $dialog->set_option( $dialog->get('available-scan-options')->by_name('mode'), 'Color' ); } ); } ); $dialog->set( 'device-list', [ { 'name' => 'test' } ] ); $dialog->set( 'device', 'test' ); Gtk2->main; ######################### __END__ gscan2pdf-1.2.3/t/166_cancel_import.t0000644000175000017500000000252412270574026015645 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 2; BEGIN { use Gscan2pdf::Document; use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert rose: test.tif'); my $old = `identify -format '%m %G %g %z-bit %r' test.tif`; my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.tif', finished_callback => sub { my ($info) = @_; my $pid = $slist->import_file( info => $info, first => 1, last => 1, cancelled_callback => sub { is( defined( $slist->{data}[0] ), '', 'TIFF not imported' ); $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { system("cp $slist->{data}[0][2]{filename} test.tif"); Gtk2->main_quit; } ); } ); $slist->cancel($pid); } ); Gtk2->main; is( `identify -format '%m %G %g %z-bit %r' test.tif`, $old, 'TIFF imported correctly after cancelling previous import' ); ######################### unlink 'test.tif'; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/167_import_with_error.t0000644000175000017500000000346612237446416016617 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 3; BEGIN { use Gscan2pdf::Document; use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test images system('touch test.ppm'); system('convert rose: test.tif'); my $old = `identify -format '%m %G %g %z-bit %r' test.tif`; my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.ppm', error_callback => sub { my ($text) = @_; is( $text, 'test.ppm is not a recognised image type', 'message opening empty image' ); $slist->get_file_info( path => 'test.png', error_callback => sub { my ($text) = @_; is( $text, 'File test.png not found', 'message opening non-existent image' ); $slist->get_file_info( path => 'test.tif', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { is( `identify -format '%m %G %g %z-bit %r' $slist->{data}[0][2]{filename}`, $old, 'TIFF imported correctly after previous errors' ); Gtk2->main_quit; } ); }, error_callback => sub { ok( 0, 'error callback triggered after previous errors' ); Gtk2->main_quit; } ); }, finished_callback => sub { Gtk2->main_quit; } ); }, finished_callback => sub { Gtk2->main_quit; } ); Gtk2->main; ######################### unlink 'test.ppm', 'test.tif', <$dir/*>; rmdir $dir; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/34_cuneiform_in_thread.t0000644000175000017500000000276112053230657016745 0ustar jeffjeffuse warnings; use strict; use File::Basename; # Split filename into dir, file, ext use Test::More tests => 3; BEGIN { use Gscan2pdf::Document; use_ok('Gscan2pdf::Cuneiform'); use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; SKIP: { skip 'Cuneiform not installed', 2 unless Gscan2pdf::Cuneiform->setup($logger); Gscan2pdf::Document->setup($logger); # Create test image system( 'convert +matte -depth 1 -pointsize 12 -density 300 label:"The quick brown fox" test.png' ); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.png', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { $slist->cuneiform( page => $slist->{data}[0][2], language => 'eng', finished_callback => sub { like( $slist->{data}[0][2]{hocr}, qr/The quick brown fox/, 'Cuneiform returned sensible text' ); is( dirname("$slist->{data}[0][2]{filename}"), "$dir", 'using session directory' ); Gtk2->main_quit; } ); } ); } ); Gtk2->main; unlink 'test.png', <$dir/*>; rmdir $dir; Gscan2pdf::Document->quit(); } gscan2pdf-1.2.3/t/29_tesseract.t0000644000175000017500000000620412237446416014744 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 22; BEGIN { use_ok('Gscan2pdf::Tesseract'); use Encode; } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; my $output = <setup($logger); # Create test image system( 'convert +matte -depth 1 -colorspace Gray -pointsize 12 -density 300 label:"The quick brown fox" test.png' ); my ( $got, $messages ) = Gscan2pdf::Tesseract->hocr( 'test.png', 'eng', $logger ); like( $got, qr/The/, 'Tesseract returned "The"' ); like( $got, qr/quick/, 'Tesseract returned "quick"' ); like( $got, qr/brown/, 'Tesseract returned "brown"' ); like( $got, qr/fox/, 'Tesseract returned "fox"' ); my $languages = Gscan2pdf::Tesseract->languages; skip 'German language pack for Tesseract not installed', 5 unless ( defined $languages->{'deu'} ); # Create test image system( "convert +matte -depth 1 -colorspace Gray -pointsize 12 -density 300 label:'öÖäÄüÜß' test.png" ); ( $got, $messages ) = Gscan2pdf::Tesseract->hocr( 'test.png', 'deu', $logger ); is( Encode::is_utf8( $got, 1 ), 1, "Tesseract returned UTF8" ); for my $c (qw( ö ä ü ß )) { my $c2 = decode_utf8($c); like( $got, qr/$c2/, "Tesseract returned $c" ); } unlink 'test.png'; } __END__ gscan2pdf-1.2.3/t/02_Scanner_Options_brother.t0000644000175000017500000001210712271200642017551 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 3; use Sane 0.05; # For enums BEGIN { use_ok('Gscan2pdf::Scanner::Options') } ######################### my $filename = 'scanners/brother'; my $output = do { local ( @ARGV, $/ ) = $filename; <> }; my $options = Gscan2pdf::Scanner::Options->new_from_data($output); my @that = ( { index => 0, }, { name => '', index => 1, title => 'Mode', cap => 0, type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE, 'unit' => SANE_UNIT_NONE, 'max_values' => 0, 'desc' => '', }, { name => 'mode', title => 'Mode', 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, index => 2, 'desc' => 'Select the scan mode', 'val' => '24bit Color', 'constraint' => [ 'Black & White', 'Gray[Error Diffusion]', 'True Gray', '24bit Color', '24bit Color[Fast]' ], 'type' => SANE_TYPE_STRING, constraint_type => SANE_CONSTRAINT_STRING_LIST, 'unit' => SANE_UNIT_NONE, 'max_values' => 1, }, { name => 'resolution', title => 'Resolution', 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, index => 3, 'desc' => 'Sets the resolution of the scanned image.', 'val' => '200', 'constraint' => [ '100', '150', '200', '300', '400', '600', '1200', '2400', '4800', '9600' ], 'type' => SANE_TYPE_INT, constraint_type => SANE_CONSTRAINT_WORD_LIST, 'unit' => SANE_UNIT_DPI, 'max_values' => 1, }, { name => 'source', title => 'Source', 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, index => 4, 'desc' => 'Selects the scan source (such as a document-feeder).', 'val' => 'Automatic Document Feeder', 'constraint' => [ 'FlatBed', 'Automatic Document Feeder' ], 'type' => SANE_TYPE_STRING, constraint_type => SANE_CONSTRAINT_STRING_LIST, 'unit' => SANE_UNIT_NONE, 'max_values' => 1, }, { name => 'brightness', title => 'Brightness', 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, index => 5, 'desc' => 'Controls the brightness of the acquired image.', constraint => { 'min' => -50, 'max' => 50, 'quant' => 1, }, 'type' => SANE_TYPE_INT, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_PERCENT, 'max_values' => 1, }, { name => 'contrast', title => 'Contrast', 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, index => 6, 'desc' => 'Controls the contrast of the acquired image.', constraint => { 'min' => -50, 'max' => 50, 'quant' => 1, }, 'type' => SANE_TYPE_INT, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_PERCENT, 'max_values' => 1, }, { name => '', index => 7, title => 'Geometry', cap => 0, type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE, 'unit' => SANE_UNIT_NONE, 'max_values' => 0, 'desc' => '', }, { name => 'l', title => 'Top-left x', 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, index => 8, 'desc' => 'Top-left x position of scan area.', 'val' => 0, constraint => { 'min' => 0, 'max' => 210, 'quant' => 0.0999908, }, 'type' => SANE_TYPE_FIXED, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_MM, 'max_values' => 1, }, { name => 't', title => 'Top-left y', 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, index => 9, 'desc' => 'Top-left y position of scan area.', 'val' => 0, constraint => { 'min' => 0, 'max' => 297, 'quant' => 0.0999908, }, 'type' => SANE_TYPE_FIXED, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_MM, 'max_values' => 1, }, { name => 'x', title => 'Width', 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, index => 10, 'desc' => 'Width of scan-area.', 'val' => 209.981, constraint => { 'min' => 0, 'max' => 210, 'quant' => 0.0999908, }, 'type' => SANE_TYPE_FIXED, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_MM, 'max_values' => 1, }, { name => 'y', title => 'Height', 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, index => 11, 'desc' => 'Height of scan-area.', 'val' => 296.973, constraint => { 'min' => 0, 'max' => 297, 'quant' => 0.0999908, }, 'type' => SANE_TYPE_FIXED, constraint_type => SANE_CONSTRAINT_RANGE, 'unit' => SANE_UNIT_MM, 'max_values' => 1, } ); is_deeply( $options->{array}, \@that, 'brother' ); is( Gscan2pdf::Scanner::Options->device, 'brother2:net1;dev0', 'device name' ); gscan2pdf-1.2.3/t/163_import_pdf.t0000644000175000017500000000235612053230657015167 0ustar jeffjeffuse warnings; use strict; use File::Basename; # Split filename into dir, file, ext use Test::More tests => 3; BEGIN { use_ok('Gscan2pdf::Document'); use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert rose: test.pdf'); system('convert rose: test.png'); my $old = `identify -format '%m %G %g %z-bit %r' test.png`; my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.pdf', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { is( `identify -format '%m %G %g %z-bit %r' $slist->{data}[0][2]{filename}`, $old, 'PDF imported correctly' ); is( dirname("$slist->{data}[0][2]{filename}"), "$dir", 'using session directory' ); Gtk2->main_quit; } ); } ); Gtk2->main; ######################### unlink 'test.pdf', 'test.png', <$dir/*>; rmdir $dir; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/118_save_multipage_pdf.t0000644000175000017500000000260612270574026016662 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 1; BEGIN { use Gscan2pdf::Document; use Gtk2 -init; # Could just call init separately use PDF::API2; use File::Copy; } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert rose: 1.pnm'); # number of pages my $n = 3; my @pages; my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); for my $i ( 1 .. $n ) { copy( '1.pnm', "$i.pnm" ) if ( $i > 1 ); $slist->get_file_info( path => "$i.pnm", finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { use utf8; $slist->{data}[ $i - 1 ][2]{hocr} = 'hello world'; push @pages, $slist->{data}[ $i - 1 ][2]; $slist->save_pdf( path => 'test.pdf', list_of_pages => \@pages, finished_callback => sub { Gtk2->main_quit } ) if ( $i == $n ); } ); } ); } Gtk2->main; is( `pdffonts test.pdf | grep -c Times-Roman` + 0, 1, 'font embedded once in multipage PDF' ); ######################### for my $i ( 1 .. $n ) { unlink "$i.pnm"; } unlink 'test.pdf'; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/02_Scanner_Options_epson_3490.t0000644000175000017500000003721512271200642017716 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 3; use Sane 0.05; # For enums BEGIN { use_ok('Gscan2pdf::Scanner::Options') } ######################### my $filename = 'scanners/epson_3490'; my $output = do { local ( @ARGV, $/ ) = $filename; <> }; my $options = Gscan2pdf::Scanner::Options->new_from_data($output); my @that = ( { 'index' => 0, }, { index => 1, title => 'Scan Mode', 'cap' => 0, 'max_values' => 0, 'name' => '', 'unit' => SANE_UNIT_NONE, 'desc' => '', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { name => 'resolution', title => 'Resolution', index => 2, 'desc' => 'Sets the resolution of the scanned image.', 'val' => '300', 'constraint' => [ '50', '150', '200', '240', '266', '300', '350', '360', '400', '600', '720', '800', '1200', '1600', '3200' ], 'unit' => SANE_UNIT_DPI, constraint_type => SANE_CONSTRAINT_WORD_LIST, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_AUTOMATIC, 'max_values' => 1, }, { name => 'preview', title => 'Preview', index => 3, 'desc' => 'Request a preview-quality scan.', 'val' => SANE_FALSE, 'unit' => SANE_UNIT_NONE, 'type' => SANE_TYPE_BOOL, 'constraint_type' => SANE_CONSTRAINT_NONE, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_AUTOMATIC, 'max_values' => 1, }, { name => 'mode', title => 'Mode', index => 4, 'desc' => 'Selects the scan mode (e.g., lineart, monochrome, or color).', 'val' => 'Color', 'constraint' => [ 'Color', 'Gray', 'Lineart' ], 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_STRING_LIST, type => SANE_TYPE_STRING, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_AUTOMATIC, 'max_values' => 1, }, { name => 'preview-mode', title => 'Preview mode', index => 5, 'desc' => 'Select the mode for previews. Greyscale previews usually give the best combination of speed and detail.', 'val' => 'Auto', 'constraint' => [ 'Auto', 'Color', 'Gray', 'Lineart' ], 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_STRING_LIST, type => SANE_TYPE_STRING, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_AUTOMATIC, 'max_values' => 1, }, { name => 'high-quality', title => 'High quality', index => 6, 'desc' => 'Highest quality but lower speed', 'val' => SANE_FALSE, 'unit' => SANE_UNIT_NONE, 'type' => SANE_TYPE_BOOL, 'constraint_type' => SANE_CONSTRAINT_NONE, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_AUTOMATIC, 'max_values' => 1, }, { name => 'source', title => 'Source', index => 7, 'desc' => 'Selects the scan source (such as a document-feeder).', 'val' => 'Flatbed', 'constraint' => [ 'Flatbed', 'Transparency Adapter' ], 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_STRING_LIST, type => SANE_TYPE_STRING, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_AUTOMATIC, 'max_values' => 1, }, { index => 8, title => 'Geometry', 'cap' => 0, 'max_values' => 0, 'name' => '', 'unit' => SANE_UNIT_NONE, 'desc' => '', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { name => 'l', title => 'Top-left x', index => 9, 'desc' => 'Top-left x position of scan area.', 'val' => 0, constraint => { 'min' => 0, 'max' => 216, }, 'unit' => SANE_UNIT_MM, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 't', title => 'Top-left y', index => 10, 'desc' => 'Top-left y position of scan area.', 'val' => 0, constraint => { 'min' => 0, 'max' => 297, }, 'unit' => SANE_UNIT_MM, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'x', title => 'Width', index => 11, 'desc' => 'Width of scan-area.', 'val' => 216, constraint => { 'min' => 0, 'max' => 216, }, 'unit' => SANE_UNIT_MM, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'y', title => 'Height', index => 12, 'desc' => 'Height of scan-area.', 'val' => 297, constraint => { 'min' => 0, 'max' => 297, }, 'unit' => SANE_UNIT_MM, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'predef-window', title => 'Predef window', index => 13, 'desc' => 'Provides standard scanning areas for photographs, printed pages and the like.', 'val' => 'None', 'constraint' => [ 'None', '6x4 (inch)', '8x10 (inch)', '8.5x11 (inch)' ], 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_STRING_LIST, type => SANE_TYPE_STRING, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { index => 14, title => 'Enhancement', 'cap' => 0, 'max_values' => 0, 'name' => '', 'unit' => SANE_UNIT_NONE, 'desc' => '', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { name => 'depth', title => 'Depth', index => 15, 'desc' => 'Number of bits per sample, typical values are 1 for "line-art" and 8 for multibit scans.', 'val' => '8', 'constraint' => [ '8', '16' ], 'unit' => SANE_UNIT_BIT, constraint_type => SANE_CONSTRAINT_WORD_LIST, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'quality-cal', title => 'Quality cal', index => 16, 'desc' => 'Do a quality white-calibration', 'val' => SANE_TRUE, 'unit' => SANE_UNIT_NONE, 'type' => SANE_TYPE_BOOL, 'constraint_type' => SANE_CONSTRAINT_NONE, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'halftoning', title => 'Halftoning', index => 17, 'desc' => 'Selects whether the acquired image should be halftoned (dithered).', 'unit' => SANE_UNIT_NONE, 'type' => SANE_TYPE_BOOL, 'constraint_type' => SANE_CONSTRAINT_NONE, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 1, }, { name => 'halftone-pattern', title => 'Halftone pattern', index => 18, 'desc' => 'Defines the halftoning (dithering) pattern for scanning halftoned images.', 'constraint' => [ 'DispersedDot8x8', 'DispersedDot16x16' ], 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_STRING_LIST, type => SANE_TYPE_STRING, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 1, }, { name => 'custom-gamma', title => 'Custom gamma', index => 19, 'desc' => 'Determines whether a builtin or a custom gamma-table should be used.', 'val' => SANE_FALSE, 'unit' => SANE_UNIT_NONE, 'type' => SANE_TYPE_BOOL, 'constraint_type' => SANE_CONSTRAINT_NONE, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'analog-gamma-bind', title => 'Analog gamma bind', index => 20, 'desc' => 'In RGB-mode use same values for each color', 'val' => SANE_FALSE, 'unit' => SANE_UNIT_NONE, 'type' => SANE_TYPE_BOOL, 'constraint_type' => SANE_CONSTRAINT_NONE, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'analog-gamma', title => 'Analog gamma', index => 21, 'desc' => 'Analog gamma-correction', constraint => { 'min' => 0, 'max' => 4, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 1, }, { name => 'analog-gamma-r', title => 'Analog gamma r', index => 22, 'desc' => 'Analog gamma-correction for red', 'val' => '1.79999', constraint => { 'min' => 0, 'max' => 4, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_FIXED, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'analog-gamma-g', title => 'Analog gamma g', index => 23, 'desc' => 'Analog gamma-correction for green', 'val' => '1.79999', constraint => { 'min' => 0, 'max' => 4, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_FIXED, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'analog-gamma-b', title => 'Analog gamma b', index => 24, 'desc' => 'Analog gamma-correction for blue', 'val' => '1.79999', constraint => { 'min' => 0, 'max' => 4, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_FIXED, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'gamma-table', title => 'Gamma table', index => 25, 'desc' => 'Gamma-correction table. In color mode this option equally affects the red, green, and blue channels simultaneously (i.e., it is an intensity gamma table).', constraint => { 'min' => 0, 'max' => 65535, 'quant' => 1, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 255, }, { name => 'red-gamma-table', title => 'Red gamma table', index => 26, 'desc' => 'Gamma-correction table for the red band.', constraint => { 'min' => 0, 'max' => 65535, 'quant' => 1, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 255, }, { name => 'green-gamma-table', title => 'Green gamma table', index => 27, 'desc' => 'Gamma-correction table for the green band.', constraint => { 'min' => 0, 'max' => 65535, 'quant' => 1, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 255, }, { name => 'blue-gamma-table', title => 'Blue gamma table', index => 28, 'desc' => 'Gamma-correction table for the blue band.', constraint => { 'min' => 0, 'max' => 65535, 'quant' => 1, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 255, }, { name => 'negative', title => 'Negative', index => 29, 'desc' => 'Swap black and white', 'unit' => SANE_UNIT_NONE, 'type' => SANE_TYPE_BOOL, 'constraint_type' => SANE_CONSTRAINT_NONE, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_AUTOMATIC + SANE_CAP_INACTIVE, 'max_values' => 1, }, { name => 'threshold', title => 'Threshold', index => 30, 'desc' => 'Select minimum-brightness to get a white point', constraint => { 'min' => 0, 'max' => 100, 'quant' => 1, }, 'unit' => SANE_UNIT_PERCENT, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 1, }, { name => 'brightness', title => 'Brightness', index => 31, 'desc' => 'Controls the brightness of the acquired image.', 'val' => '0', constraint => { 'min' => -400, 'max' => 400, 'quant' => 1, }, 'unit' => SANE_UNIT_PERCENT, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'contrast', title => 'Contrast', index => 32, 'desc' => 'Controls the contrast of the acquired image.', 'val' => '0', constraint => { 'min' => -100, 'max' => 400, 'quant' => 1, }, 'unit' => SANE_UNIT_PERCENT, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { index => 33, title => 'Advanced', 'cap' => 0, 'max_values' => 0, 'name' => '', 'unit' => SANE_UNIT_NONE, 'desc' => '', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { name => 'rgb-lpr', title => 'Rgb lpr', index => 34, 'desc' => 'Number of scan lines to request in a SCSI read. Changing this parameter allows you to tune the speed at which data is read from the scanner during scans. If this is set too low, the scanner will have to stop periodically in the middle of a scan; if it\'s set too high, X-based frontends may stop responding to X events and your system could bog down.', 'val' => '4', constraint => { 'quant' => 1, 'min' => 1, 'max' => 50, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'gs-lpr', title => 'Gs lpr', index => 35, 'desc' => 'Number of scan lines to request in a SCSI read. Changing this parameter allows you to tune the speed at which data is read from the scanner during scans. If this is set too low, the scanner will have to stop periodically in the middle of a scan; if it\'s set too high, X-based frontends may stop responding to X events and your system could bog down.', constraint => { 'quant' => 1, 'min' => 1, 'max' => 50, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 1, }, ); is_deeply( $options->{array}, \@that, 'epson_3490' ); is( Gscan2pdf::Scanner::Options->device, 'snapscan:libusb:005:007', 'device name' ); gscan2pdf-1.2.3/t/48_cancel_crop.t0000644000175000017500000000275312270574026015221 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 2; BEGIN { use Gscan2pdf::Document; use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert rose: test.jpg'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.jpg', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { my $pid = $slist->crop( page => $slist->{data}[0][2], x => 10, y => 10, w => 10, h => 10, cancelled_callback => sub { is( -s 'test.jpg', -s "$slist->{data}[0][2]{filename}", 'image not modified' ); $slist->save_image( path => 'test2.jpg', list_of_pages => [ $slist->{data}[0][2] ], finished_callback => sub { Gtk2->main_quit } ); } ); $slist->cancel($pid); } ); } ); Gtk2->main; is( system('identify test2.jpg'), 0, 'can create a valid JPG after cancelling previous process' ); ######################### unlink 'test.jpg', 'test2.jpg'; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/111_save_pdf.t0000644000175000017500000000221412103156350014566 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 2; use Gtk2 -init; # Could just call init separately BEGIN { use_ok('Gscan2pdf::Document'); } ######################### Glib::set_application_name('gscan2pdf'); use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert rose: test.pnm'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.pnm', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { $slist->save_pdf( path => 'test.pdf', list_of_pages => [ $slist->{data}[0][2] ], finished_callback => sub { Gtk2->main_quit } ); } ); } ); Gtk2->main; is( `pdfinfo test.pdf | grep 'Page size:'`, "Page size: 70 x 46 pts\n", 'valid PDF created' ); ######################### unlink 'test.pnm', 'test.pdf'; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/069_Dialog_Scan_CLI.t0000644000175000017500000000312312237446454015664 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 4; use Glib qw(TRUE FALSE); # To get TRUE and FALSE use Gtk2 -init; # Could just call init separately BEGIN { use_ok('Gscan2pdf::Dialog::Scan::CLI'); } ######################### my $window = Gtk2::Window->new; Glib::set_application_name('gscan2pdf'); use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Frontend::CLI->setup($logger); ok( my $dialog = Gscan2pdf::Dialog::Scan::CLI->new( title => 'title', 'transient-for' => $window, 'logger' => $logger, 'reload-triggers' => qw(mode), ), 'Created dialog' ); isa_ok( $dialog, 'Gscan2pdf::Dialog::Scan::CLI' ); $dialog->set( 'cache-options', TRUE ); $dialog->signal_connect( 'process-error' => sub { my ( $widget, $process, $msg ) = @_; Gtk2->main_quit; } ); my ( $signal, $signal2 ); $signal = $dialog->signal_connect( 'reloaded-scan-options' => sub { $dialog->signal_handler_disconnect($signal); $signal = $dialog->signal_connect( 'changed-options-cache' => sub { my ( $widget, $cache ) = @_; $dialog->signal_handler_disconnect($signal); my @keys = keys( %{ $cache->{test} } ); is_deeply( \@keys, [ 'mode,Color', 'mode,Gray', 'default' ], 'starting with a non-default profile' ); Gtk2->main_quit; } ); $dialog->set_option( $dialog->get('available-scan-options')->by_name('mode'), 'Color' ); } ); $dialog->set( 'device-list', [ { 'name' => 'test' } ] ); $dialog->set( 'device', 'test' ); Gtk2->main; ######################### __END__ gscan2pdf-1.2.3/t/09_NetPBM.t0000644000175000017500000000077412053230657014032 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 7; BEGIN { use_ok('Gscan2pdf::NetPBM'); } ######################### for (qw(pbm pgm ppm)) { my $file = "test.$_"; system("convert -resize 8x5 rose: $file"); is( Gscan2pdf::NetPBM::file_size_from_header($file), -s $file, "get_size_from_PNM $_ 8 wide" ); system("convert -resize 9x6 rose: $file"); is( Gscan2pdf::NetPBM::file_size_from_header($file), -s $file, "get_size_from_PNM $_ 9 wide" ); unlink $file; } ######################### __END__ gscan2pdf-1.2.3/t/02_Scanner_Options_officejet_5500.t0000644000175000017500000002043012271200642020511 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 10; use Sane 0.05; # For enums BEGIN { use_ok('Gscan2pdf::Scanner::Options') } ######################### my $filename = 'scanners/officejet_5500'; my $output = do { local ( @ARGV, $/ ) = $filename; <> }; my $options = Gscan2pdf::Scanner::Options->new_from_data($output); my @that = ( { 'index' => 0, }, { index => 1, title => 'Scan mode', 'cap' => 0, 'max_values' => 0, 'name' => '', 'unit' => SANE_UNIT_NONE, 'desc' => '', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { name => 'mode', title => 'Mode', index => 2, 'desc' => 'Selects the scan mode (e.g., lineart, monochrome, or color).', 'val' => 'Color', 'constraint' => [ 'Lineart', 'Grayscale', 'Color' ], 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_STRING_LIST, type => SANE_TYPE_STRING, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'resolution', title => 'Resolution', index => 3, 'desc' => 'Sets the resolution of the scanned image.', 'val' => '75', constraint => { 'min' => 75, 'max' => 600, }, 'unit' => SANE_UNIT_DPI, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { index => 4, title => 'Advanced', 'cap' => 0, 'max_values' => 0, 'name' => '', 'unit' => SANE_UNIT_NONE, 'desc' => '', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { name => 'contrast', title => 'Contrast', index => 5, 'desc' => 'Controls the contrast of the acquired image.', constraint => { 'min' => 0, 'max' => 100, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 1, }, { name => 'compression', title => 'Compression', index => 6, 'desc' => 'Selects the scanner compression method for faster scans, possibly at the expense of image quality.', 'val' => 'JPEG', 'constraint' => [ 'None', 'JPEG' ], 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_STRING_LIST, type => SANE_TYPE_STRING, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'jpeg-compression-factor', title => 'JPEG compression factor', index => 7, 'desc' => 'Sets the scanner JPEG compression factor. Larger numbers mean better compression, and smaller numbers mean better image quality.', 'val' => '10', constraint => { 'min' => 0, 'max' => 100, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'batch-scan', title => 'Batch scan', index => 8, 'desc' => 'Guarantees that a "no documents" condition will be returned after the last scanned page, to prevent endless flatbed scans after a batch scan. For some models, option changes in the middle of a batch scan don\'t take effect until after the last page.', 'val' => SANE_FALSE, 'unit' => SANE_UNIT_NONE, 'type' => SANE_TYPE_BOOL, 'constraint_type' => SANE_CONSTRAINT_NONE, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'source', title => 'Source', index => 9, 'desc' => 'Selects the desired scan source for models with both flatbed and automatic document feeder (ADF) capabilities. The "Auto" setting means that the ADF will be used if it\'s loaded, and the flatbed (if present) will be used otherwise.', 'val' => 'Auto', 'constraint' => [ 'Auto', 'Flatbed', 'ADF' ], 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_STRING_LIST, type => SANE_TYPE_STRING, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'duplex', title => 'Duplex', index => 10, 'desc' => 'Enables scanning on both sides of the page for models with duplex-capable document feeders. For pages printed in "book"-style duplex mode, one side will be scanned upside-down. This feature is experimental.', 'unit' => SANE_UNIT_NONE, 'type' => SANE_TYPE_BOOL, 'constraint_type' => SANE_CONSTRAINT_NONE, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 1, }, { index => 11, title => 'Geometry', 'cap' => 0, 'max_values' => 0, 'name' => '', 'unit' => SANE_UNIT_NONE, 'desc' => '', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { name => 'length-measurement', title => 'Length measurement', index => 12, 'desc' => 'Selects how the scanned image length is measured and reported, which is impossible to know in advance for scrollfed scans.', 'val' => 'Padded', 'constraint' => [ 'Unknown', 'Approximate', 'Padded' ], 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_STRING_LIST, type => SANE_TYPE_STRING, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'l', title => 'Top-left x', index => 13, 'desc' => 'Top-left x position of scan area.', 'val' => 0, constraint => { 'min' => 0, 'max' => 215.9, }, 'unit' => SANE_UNIT_MM, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_FIXED, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 't', title => 'Top-left y', index => 14, 'desc' => 'Top-left y position of scan area.', 'val' => 0, constraint => { 'min' => 0, 'max' => 381, }, 'unit' => SANE_UNIT_MM, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'x', title => 'Width', index => 15, 'desc' => 'Width of scan-area.', 'val' => 215.9, constraint => { 'min' => 0, 'max' => 215.9, }, 'unit' => SANE_UNIT_MM, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_FIXED, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'y', title => 'Height', index => 16, 'desc' => 'Height of scan-area.', 'val' => 381, constraint => { 'min' => 0, 'max' => 381, }, 'unit' => SANE_UNIT_MM, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, } ); is_deeply( $options->{array}, \@that, 'officejet_5500' ); is( $options->supports_paper( { x => 210, y => 297, l => 0, t => 0, }, 0 ), 1, 'supports_paper' ); is( $options->supports_paper( { x => 210, y => 297, l => 0, t => -10, }, 0 ), 0, 'paper crosses top border' ); is( $options->supports_paper( { x => 210, y => 297, l => 0, t => 90, }, 0 ), 0, 'paper crosses bottom border' ); is( $options->supports_paper( { x => 210, y => 297, l => -10, t => 0, }, 0 ), 0, 'paper crosses left border' ); is( $options->supports_paper( { x => 210, y => 297, l => 10, t => 0, }, 0 ), 0, 'paper crosses right border' ); is( $options->supports_paper( { x => 225, y => 297, l => 0, t => 0, }, 0 ), 0, 'paper too wide' ); is( $options->supports_paper( { x => 210, y => 870, l => 0, t => 0, }, 0 ), 0, 'paper too tall' ); is( Gscan2pdf::Scanner::Options->device, 'hpaio:/usb/officejet_5500_series?serial=MY42QF209H96', 'device name' ); gscan2pdf-1.2.3/t/062_Dialog_Scan_Sane.t0000644000175000017500000000421112237446454016133 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 7; use Glib qw(TRUE FALSE); # To get TRUE and FALSE use Gtk2 -init; # Could just call init separately use Sane 0.05; # To get SANE_* enums BEGIN { use_ok('Gscan2pdf::Dialog::Scan::Sane'); } ######################### my $window = Gtk2::Window->new; Glib::set_application_name('gscan2pdf'); use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Frontend::Sane->setup($logger); ok( my $dialog = Gscan2pdf::Dialog::Scan::Sane->new( title => 'title', 'transient-for' => $window, 'logger' => $logger ), 'Created dialog' ); isa_ok( $dialog, 'Gscan2pdf::Dialog::Scan::Sane' ); my $signal; $signal = $dialog->signal_connect( 'reloaded-scan-options' => sub { $dialog->signal_handler_disconnect($signal); # So that it can be used in hash my $resolution = SANE_NAME_SCAN_RESOLUTION; $dialog->add_profile( 'my profile', [ { $resolution => 52 } ] ); my $loop; my $option_signal; $option_signal = $dialog->signal_connect( 'changed-scan-option' => sub { my ( $widget, $option, $value ) = @_; is_deeply( $dialog->get('current-scan-options'), [ { $resolution => 52 } ], 'current-scan-options' ); $dialog->signal_handler_disconnect($option_signal); $loop->quit; } ); $signal = $dialog->signal_connect( 'changed-profile' => sub { my ( $widget, $profile ) = @_; $dialog->signal_handler_disconnect($signal); is( $profile, 'my profile', 'changed-profile' ); } ); # need a new main loop because of the timeout $loop = Glib::MainLoop->new; $dialog->set( 'profile', 'my profile' ); $loop->run; $dialog->signal_connect( 'reloaded-scan-options' => sub { is( $dialog->get('profile'), undef, 'reloading scan options unsets profile' ); is( $dialog->get('current-scan-options'), undef, 'reloading scan options unsets current-scan-options' ); Gtk2->main_quit; } ); $dialog->scan_options('test'); } ); $dialog->set( 'device', 'test' ); $dialog->scan_options('test'); Gtk2->main; Gscan2pdf::Frontend::Sane->quit; __END__ gscan2pdf-1.2.3/t/117_save_multipage_pdf_with_utf8.t0000644000175000017500000000313612053230657020657 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 1; BEGIN { use Gscan2pdf::Document; use Gtk2 -init; # Could just call init separately use PDF::API2; use File::Copy; } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert rose: 1.pnm'); # number of pages my $n = 3; my @pages; my %options; $options{font} = `fc-list : file | grep times.ttf | head -n 1`; chomp $options{font}; $options{font} =~ s/: $//; my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); for my $i ( 1 .. $n ) { copy( '1.pnm', "$i.pnm" ) if ( $i > 1 ); $slist->get_file_info( path => "$i.pnm", finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { use utf8; $slist->{data}[ $i - 1 ][2]{hocr} = 'пени способствовала сохранению'; push @pages, $slist->{data}[ $i - 1 ][2]; $slist->save_pdf( path => 'test.pdf', list_of_pages => \@pages, options => \%options, finished_callback => sub { Gtk2->main_quit } ) if ( $i == $n ); } ); } ); } Gtk2->main; is( `pdffonts test.pdf | grep -c TrueType` + 0, 1, 'font embedded once in multipage PDF' ); ######################### for my $i ( 1 .. $n ) { unlink "$i.pnm"; } unlink 'test.pdf'; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/122_save_djvu_with_text.t0000644000175000017500000000220212270574026017074 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 1; BEGIN { use Gscan2pdf::Document; use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert rose: test.pnm'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.pnm', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { $slist->{data}[0][2]{hocr} = 'The quick brown fox'; $slist->save_djvu( path => 'test.djvu', list_of_pages => [ $slist->{data}[0][2] ], finished_callback => sub { Gtk2->main_quit } ); } ); } ); Gtk2->main; like( `djvutxt test.djvu`, qr/The quick brown fox/, 'DjVu with expected text' ); ######################### unlink 'test.pnm', 'test.djvu'; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/91_critic.t0000644000175000017500000000073112053230657014214 0ustar jeffjeffuse strict; use warnings; use File::Spec; use Test::More; if ( not $ENV{TEST_AUTHOR} ) { my $msg = 'Author test. Set $ENV{TEST_AUTHOR} to a true value to run.'; plan( skip_all => $msg ); } if ( not eval { require Test::Perl::Critic; } ) { my $msg = 'Test::Perl::Critic required to criticise code'; plan( skip_all => $msg ); } my $rcfile = File::Spec->catfile( 't', 'perlcriticrc' ); Test::Perl::Critic->import( -profile => $rcfile ); all_critic_ok( 'bin', 'lib' ); gscan2pdf-1.2.3/t/51_cancel_ocropus.t0000644000175000017500000000303612270574026015735 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 2; BEGIN { use Gscan2pdf::Document; use Gscan2pdf::Ocropus; use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); SKIP: { skip 'Ocropus not installed', 2 unless Gscan2pdf::Ocropus->setup($logger); # Create test image system( 'convert +matte -depth 1 -pointsize 12 -density 300 label:"The quick brown fox" test.png' ); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.png', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { my $pid = $slist->ocropus( page => $slist->{data}[0][2], language => 'eng', cancelled_callback => sub { is( $slist->{data}[0][2]{hocr}, undef, 'no OCR output' ); $slist->save_image( path => 'test.jpg', list_of_pages => [ $slist->{data}[0][2] ], finished_callback => sub { Gtk2->main_quit } ); } ); $slist->cancel($pid); } ); } ); Gtk2->main; is( system('identify test.jpg'), 0, 'can create a valid JPG after cancelling previous process' ); unlink 'test.png', 'test.jpg'; } Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/03_Page.t0000644000175000017500000001675312105514007013607 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 10; BEGIN { use_ok('Gscan2pdf::Page'); use Encode; } ######################### Glib::set_application_name('gscan2pdf'); use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); # Create test image system('convert rose: test.pnm'); Gscan2pdf::Page->set_logger(Log::Log4perl::get_logger); my $page = Gscan2pdf::Page->new( filename => 'test.pnm', format => 'Portable anymap', resolution => 72, dir => File::Temp->newdir, ); $page->{hocr} = <<'EOS'; '

The quick brown fox

EOS my @boxes = ( [ 1, 14, 77, 48, 'The' ], [ 92, 14, 202, 59, 'quick' ], [ 214, 14, 341, 48, 'brown' ], [ 355, 14, 420, 48, 'fox' ] ); is_deeply( [ $page->boxes ], \@boxes, 'Boxes from tesseract 3.00' ); ######################### $page->{hocr} = <<'EOS';

The quick brown fox

EOS @boxes = ( [ 1, 9, 88, 45, 'The' ], [ 106, 9, 235, 55, 'quick' ], [ 253, 9, 397, 45, 'brown' ], [ 416, 9, 490, 45, 'fox' ] ); is_deeply( [ $page->boxes ], \@boxes, 'Boxes from tesseract 3.02.01' ); ######################### $page->{hocr} = <<'EOS'; OCR Output
ööäiiüüß €
EOS @boxes = ( [ 3, 1, 271, 47, decode_utf8('ööäiiüüß €') ] ); is_deeply( [ $page->boxes ], \@boxes, 'Boxes from ocropus 0.3 with UTF8' ); ######################### $page->{hocr} = <<'EOS'; OCR Output
¤öAäUüß' Test Test Test E
EOS @boxes = ( [ 22, 26, 107, 39, "\x{a4}\x{f6}A\x{e4}U\x{fc}\x{df}'" ], [ 21, 74, 155, 87, 'Test Test Test E' ] ); is_deeply( [ $page->boxes ], \@boxes, 'More boxes from ocropus 0.3 with UTF8' ); ######################### $page->{hocr} = <<'EOS'; OCR Output
The quick brown fox
EOS @boxes = ( [ 1, 14, 420, 59, 'The quick brown fox' ] ); is_deeply( [ $page->boxes ], \@boxes, 'Boxes from ocropus 0.4' ); ######################### $page->{hocr} = <<'EOS';

The quick brown fox

EOS @boxes = ( [ 1, 15, 420, 60, 'The quick brown fox' ] ); is_deeply( [ $page->boxes ], \@boxes, 'Boxes from cuneiform 1.0.0' ); ######################### my %paper_sizes = ( A4 => { x => 210, y => 297, l => 0, t => 0, }, 'US Letter' => { x => 216, y => 279, l => 0, t => 0, }, 'US Legal' => { x => 216, y => 356, l => 0, t => 0, }, ); system('convert -size 210x297 xc:white test.pnm'); $page = Gscan2pdf::Page->new( filename => 'test.pnm', format => 'Portable anymap', dir => File::Temp->newdir, ); is_deeply( $page->matching_paper_sizes( \%paper_sizes ), { A4 => 25.4 }, 'basic portrait' ); system('convert -size 297x210 xc:white test.pnm'); $page = Gscan2pdf::Page->new( filename => 'test.pnm', format => 'Portable anymap', dir => File::Temp->newdir, ); is_deeply( $page->matching_paper_sizes( \%paper_sizes ), { A4 => 25.4 }, 'basic landscape' ); ######################### is( $page->resolution( \%paper_sizes ), 25.4, 'resolution' ); ######################### unlink 'test.pnm'; __END__ gscan2pdf-1.2.3/t/55_cancel_gocr.t0000644000175000017500000000276712270574026015213 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 2; BEGIN { use Gscan2pdf::Document; use Gtk2 -init; # Could just call init separately } ######################### SKIP: { skip 'gocr not installed', 1 unless ( system("which gocr > /dev/null 2> /dev/null") == 0 ); use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system( 'convert +matte -depth 1 -pointsize 12 -density 300 label:"The quick brown fox" test.pnm' ); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.pnm', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { my $pid = $slist->gocr( page => $slist->{data}[0][2], cancelled_callback => sub { is( $slist->{data}[0][2]{hocr}, undef, 'no OCR output' ); $slist->save_image( path => 'test.jpg', list_of_pages => [ $slist->{data}[0][2] ], finished_callback => sub { Gtk2->main_quit } ); } ); $slist->cancel($pid); } ); } ); Gtk2->main; is( system('identify test.jpg'), 0, 'can create a valid JPG after cancelling previous process' ); unlink 'test.pnm', 'test.jpg'; Gscan2pdf::Document->quit(); } gscan2pdf-1.2.3/t/114_cancel_save_pdf.t0000644000175000017500000000250612270574026016113 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 1; BEGIN { use Gscan2pdf::Document; use Gtk2 -init; # Could just call init separately use PDF::API2; } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert rose: test.pnm'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.pnm', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { my $pid = $slist->save_pdf( path => 'test.pdf', list_of_pages => [ $slist->{data}[0][2] ], cancelled_callback => sub { $slist->save_image( path => 'test.jpg', list_of_pages => [ $slist->{data}[0][2] ], finished_callback => sub { Gtk2->main_quit } ); } ); $slist->cancel($pid); } ); } ); Gtk2->main; is( system('identify test.jpg'), 0, 'can create a valid JPG after cancelling save PDF process' ); ######################### unlink 'test.pnm', 'test.pdf', 'test.jpg'; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/50_cancel_tesseract.t0000644000175000017500000000306712270574026016243 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 2; BEGIN { use Gscan2pdf::Document; use Gscan2pdf::Tesseract; use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); SKIP: { skip 'Tesseract not installed', 2 unless Gscan2pdf::Tesseract->setup($logger); # Create test image system( 'convert +matte -depth 1 -colorspace Gray -pointsize 12 -density 300 label:"The quick brown fox" test.tif' ); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.tif', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { my $pid = $slist->tesseract( page => $slist->{data}[0][2], language => 'eng', cancelled_callback => sub { is( $slist->{data}[0][2]{hocr}, undef, 'no OCR output' ); $slist->save_image( path => 'test.jpg', list_of_pages => [ $slist->{data}[0][2] ], finished_callback => sub { Gtk2->main_quit } ); } ); $slist->cancel($pid); } ); } ); Gtk2->main; is( system('identify test.jpg'), 0, 'can create a valid JPG after cancelling previous process' ); unlink 'test.tif', 'test.jpg'; } Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/173_open_multiple_session.t0000644000175000017500000000176712270574026017453 0ustar jeffjeffuse warnings; use strict; use File::Basename; # Split filename into dir, file, ext use Test::More tests => 2; BEGIN { use Gscan2pdf::Document; use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); Gscan2pdf::Document->setup(Log::Log4perl::get_logger); my $slist = Gscan2pdf::Document->new; # use fixed name in temporary directory to be able to pick it up as a crashed # session in the next test $slist->set_dir( File::Spec->catfile( File::Spec->tmpdir, 'gscan2pdf-tmp' ) ); $slist->open_session_file('test2.gs2p'); # allow up to pick it up as a crashed session in next test $slist->save_session; like( `file $slist->{data}[0][2]{filename}`, qr/PNG image data, 70 x 46, 8-bit\/color RGB, non-interlaced/, 'PNG extracted with expected size' ); is( $slist->{data}[0][2]{hocr}, 'The quick brown fox', 'Basic OCR output extracted' ); ######################### unlink 'test2.gs2p'; Gscan2pdf::Document->quit; gscan2pdf-1.2.3/t/02_Scanner_Options_canoscan_FB_630P.t0000644000175000017500000000747412271200642020763 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 3; use Sane 0.05; # For enums BEGIN { use_ok('Gscan2pdf::Scanner::Options') } ######################### my $filename = 'scanners/canoscan_FB_630P'; my $output = do { local ( @ARGV, $/ ) = $filename; <> }; my $options = Gscan2pdf::Scanner::Options->new_from_data($output); my @that = ( { 'index' => 0, }, { name => 'resolution', title => 'Resolution', index => 1, 'desc' => 'Sets the resolution of the scanned image.', 'val' => '75', 'constraint' => [ '75', '150', '300', '600' ], 'unit' => SANE_UNIT_DPI, constraint_type => SANE_CONSTRAINT_WORD_LIST, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'mode', title => 'Mode', index => 2, 'desc' => 'Selects the scan mode (e.g., lineart, monochrome, or color).', 'val' => 'Gray', 'constraint' => [ 'Gray', 'Color' ], 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_STRING_LIST, type => SANE_TYPE_STRING, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'depth', title => 'Depth', index => 3, 'desc' => 'Number of bits per sample, typical values are 1 for "line-art" and 8 for multibit scans.', 'val' => '8', 'constraint' => [ '8', '12' ], 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_WORD_LIST, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'l', title => 'Top-left x', index => 4, 'desc' => 'Top-left x position of scan area.', 'val' => 0, constraint => { 'min' => 0, 'max' => 215, 'quant' => 1869504867, }, 'unit' => SANE_UNIT_MM, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 't', title => 'Top-left y', index => 5, 'desc' => 'Top-left y position of scan area.', 'val' => 0, constraint => { 'min' => 0, 'max' => 296, 'quant' => 1852795252, }, 'unit' => SANE_UNIT_MM, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'x', title => 'Width', index => 6, 'desc' => 'Width of scan-area.', 'val' => 100, constraint => { 'min' => 3, 'max' => 216, 'quant' => 16, }, 'unit' => SANE_UNIT_MM, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'y', title => 'Height', index => 7, 'desc' => 'Height of scan-area.', 'val' => 100, constraint => { 'min' => 1, 'max' => 297, }, 'unit' => SANE_UNIT_MM, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'quality-cal', title => 'Quality cal', 'val' => '', index => 8, 'desc' => 'Do a quality white-calibration', 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_NONE, type => SANE_TYPE_BUTTON, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 0, }, ); is_deeply( $options->{array}, \@that, 'canoscan_FB_630P' ); is( Gscan2pdf::Scanner::Options->device, 'canon_pp:parport0', 'device name' ); gscan2pdf-1.2.3/t/375_user_defined.t0000644000175000017500000000371312237446416015471 0ustar jeffjeffuse warnings; use strict; use File::Basename; # Split filename into dir, file, ext use Test::More tests => 5; BEGIN { use Gscan2pdf::Document; use Gtk2 -init; # Could just call init separately } use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); Gscan2pdf::Document->setup(Log::Log4perl::get_logger); my %paper_sizes = ( A4 => { x => 210, y => 297, l => 0, t => 0, }, 'US Letter' => { x => 216, y => 279, l => 0, t => 0, }, 'US Legal' => { x => 216, y => 356, l => 0, t => 0, }, ); # Create test image system('convert -size 210x297 xc:white white.pnm'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->set_paper_sizes( \%paper_sizes ); $slist->get_file_info( path => 'white.pnm', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { is( int( abs( $slist->{data}[0][2]{resolution} - 25.4 ) ), 0, 'Resolution of imported image' ); $slist->user_defined( page => $slist->{data}[0][2], command => 'convert %i tmp.ppm;mv tmp.ppm %i', finished_callback => sub { is( int( abs( $slist->{data}[0][2]{resolution} - 25.4 ) ), 0, 'Resolution of converted image' ); my ( $dir, $base, $suffix ) = fileparse( "$slist->{data}[0][2]{filename}", qr/\.[^.]*/ ); is( $dir, "$dir", 'using session directory' ); is( $suffix, ".ppm", 'still has an extension' ); $slist->save_pdf( path => 'test.pdf', list_of_pages => [ $slist->{data}[0][2] ], finished_callback => sub { Gtk2->main_quit } ); } ); } ); } ); Gtk2->main; like( `pdfinfo test.pdf`, qr/A4/, 'PDF is A4' ); ######################### unlink 'white.pnm', 'test.pdf', <$dir/*>; rmdir $dir; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/02_Scanner_Options_test.t0000644000175000017500000006223312271200642017070 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 15; use Sane 0.05; # For enums BEGIN { use_ok('Gscan2pdf::Scanner::Options') } ######################### my $filename = 'scanners/test'; my $output = do { local ( @ARGV, $/ ) = $filename; <> }; my $options = Gscan2pdf::Scanner::Options->new_from_data($output); my @that = ( { 'index' => 0, }, { 'cap' => 0, 'max_values' => 0, 'name' => '', 'unit' => SANE_UNIT_NONE, 'index' => 1, 'desc' => '', 'title' => 'Scan Mode', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => '1', 'name' => 'mode', 'val' => 'Gray', 'index' => 2, 'unit' => SANE_UNIT_NONE, 'desc' => 'Selects the scan mode (e.g., lineart, monochrome, or color).', 'type' => SANE_TYPE_STRING, 'constraint' => [ 'Gray', 'Color' ], 'title' => 'Mode', constraint_type => SANE_CONSTRAINT_STRING_LIST, }, { 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => '1', 'name' => 'depth', 'val' => '8', 'index' => 3, 'unit' => SANE_UNIT_NONE, 'desc' => 'Number of bits per sample, typical values are 1 for "line-art" and 8 for multibit scans.', 'type' => SANE_TYPE_INT, 'constraint' => [ '1', '8', '16' ], 'title' => 'Depth', 'constraint_type' => SANE_CONSTRAINT_WORD_LIST }, { 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => '1', 'name' => 'hand-scanner', 'val' => '0', 'index' => 4, 'unit' => SANE_UNIT_NONE, 'desc' => 'Simulate a hand-scanner. Hand-scanners do not know the image height a priori. Instead, they return a height of -1. Setting this option allows to test whether a frontend can handle this correctly. This option also enables a fixed width of 11 cm.', 'title' => 'Hand scanner', 'type' => SANE_TYPE_BOOL, 'constraint_type' => SANE_CONSTRAINT_NONE }, { 'cap' => '37', 'max_values' => '1', 'name' => 'three-pass', 'unit' => SANE_UNIT_NONE, 'index' => 5, 'desc' => 'Simulate a three-pass scanner. In color mode, three frames are transmitted.', 'title' => 'Three pass', 'type' => SANE_TYPE_BOOL, 'constraint_type' => SANE_CONSTRAINT_NONE }, { 'cap' => '37', 'max_values' => '1', 'name' => 'three-pass-order', 'index' => 6, 'unit' => SANE_UNIT_NONE, 'desc' => 'Set the order of frames in three-pass color mode.', 'title' => 'Three pass order', 'type' => SANE_TYPE_STRING, 'constraint' => [ 'RGB', 'RBG', 'GBR', 'GRB', 'BRG', 'BGR' ], constraint_type => SANE_CONSTRAINT_STRING_LIST, }, { 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => '1', 'name' => 'resolution', 'val' => '50', 'index' => 7, 'unit' => SANE_UNIT_DPI, 'desc' => 'Sets the resolution of the scanned image.', 'type' => SANE_TYPE_INT, 'constraint' => { 'min' => '1', 'max' => '1200', 'quant' => '1' }, 'title' => 'Resolution', constraint_type => SANE_CONSTRAINT_RANGE, }, { 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => '1', 'name' => 'source', 'val' => 'Flatbed', 'index' => 8, 'unit' => SANE_UNIT_NONE, 'desc' => 'If Automatic Document Feeder is selected, the feeder will be \'empty\' after 10 scans.', 'type' => SANE_TYPE_STRING, 'constraint' => [ 'Flatbed', 'Automatic Document Feeder' ], 'title' => 'Source', constraint_type => SANE_CONSTRAINT_STRING_LIST, }, { 'cap' => '0', 'max_values' => '0', 'name' => '', 'unit' => SANE_UNIT_NONE, 'index' => 9, 'desc' => '', 'title' => 'Special Options', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => '1', 'name' => 'test-picture', 'val' => 'Solid black', 'index' => 10, 'unit' => SANE_UNIT_NONE, 'desc' => 'Select the kind of test picture. Available options: Solid black: fills the whole scan with black. Solid white: fills the whole scan with white. Color pattern: draws various color test patterns depending on the mode. Grid: draws a black/white grid with a width and height of 10 mm per square.', 'type' => SANE_TYPE_STRING, 'constraint' => [ 'Solid black', 'Solid white', 'Color pattern', 'Grid' ], 'title' => 'Test picture', constraint_type => SANE_CONSTRAINT_STRING_LIST, }, { 'cap' => '37', 'max_values' => '1', 'name' => 'invert-endianess', 'unit' => SANE_UNIT_NONE, 'index' => 11, 'desc' => 'Exchange upper and lower byte of image data in 16 bit modes. This option can be used to test the 16 bit modes of frontends, e.g. if the frontend uses the correct endianness.', 'title' => 'Invert endianess', 'type' => SANE_TYPE_BOOL, 'constraint_type' => SANE_CONSTRAINT_NONE }, { 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => '1', 'name' => 'read-limit', 'val' => '0', 'index' => 12, 'unit' => SANE_UNIT_NONE, 'desc' => 'Limit the amount of data transferred with each call to sane_read().', 'title' => 'Read limit', 'type' => SANE_TYPE_BOOL, 'constraint_type' => SANE_CONSTRAINT_NONE }, { 'cap' => '37', 'max_values' => '1', 'name' => 'read-limit-size', 'index' => 13, 'unit' => SANE_UNIT_NONE, 'desc' => 'The (maximum) amount of data transferred with each call to sane_read().', 'title' => 'Read limit size', 'type' => SANE_TYPE_INT, 'constraint' => { 'min' => '1', 'max' => '65536', 'quant' => '1' }, constraint_type => SANE_CONSTRAINT_RANGE, }, { 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => '1', 'name' => 'read-delay', 'val' => '0', 'index' => 14, 'unit' => SANE_UNIT_NONE, 'desc' => 'Delay the transfer of data to the pipe.', 'title' => 'Read delay', 'type' => SANE_TYPE_BOOL, 'constraint_type' => SANE_CONSTRAINT_NONE }, { 'cap' => '37', 'max_values' => '1', 'name' => 'read-delay-duration', 'index' => 15, 'unit' => SANE_UNIT_MICROSECOND, 'desc' => 'How long to wait after transferring each buffer of data through the pipe.', 'title' => 'Read delay duration', 'type' => SANE_TYPE_INT, 'constraint' => { 'min' => '1000', 'max' => '200000', 'quant' => '1000' }, constraint_type => SANE_CONSTRAINT_RANGE, }, { 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => '1', 'name' => 'read-return-value', 'val' => 'Default', 'index' => 16, 'unit' => SANE_UNIT_NONE, 'desc' => 'Select the return-value of sane_read(). "Default" is the normal handling for scanning. All other status codes are for testing how the frontend handles them.', 'type' => SANE_TYPE_STRING, 'constraint' => [ 'Default', 'SANE_STATUS_UNSUPPORTED', 'SANE_STATUS_CANCELLED', 'SANE_STATUS_DEVICE_BUSY', 'SANE_STATUS_INVAL', 'SANE_STATUS_EOF', 'SANE_STATUS_JAMMED', 'SANE_STATUS_NO_DOCS', 'SANE_STATUS_COVER_OPEN', 'SANE_STATUS_IO_ERROR', 'SANE_STATUS_NO_MEM', 'SANE_STATUS_ACCESS_DENIED' ], 'title' => 'Read return value', constraint_type => SANE_CONSTRAINT_STRING_LIST, }, { 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => '1', 'name' => 'ppl-loss', 'val' => '0', 'index' => 17, 'unit' => SANE_UNIT_PIXEL, 'desc' => 'The number of pixels that are wasted at the end of each line.', 'type' => SANE_TYPE_INT, 'constraint' => { 'min' => '-128', 'max' => '128', 'quant' => '1' }, 'title' => 'Ppl loss', constraint_type => SANE_CONSTRAINT_RANGE, }, { 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => '1', 'name' => 'fuzzy-parameters', 'val' => '0', 'index' => 18, 'unit' => SANE_UNIT_NONE, 'desc' => 'Return fuzzy lines and bytes per line when sane_parameters() is called before sane_start().', 'title' => 'Fuzzy parameters', 'type' => SANE_TYPE_BOOL, 'constraint_type' => SANE_CONSTRAINT_NONE }, { 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => '1', 'name' => 'non-blocking', 'val' => '0', 'index' => 19, 'unit' => SANE_UNIT_NONE, 'desc' => 'Use non-blocking IO for sane_read() if supported by the frontend.', 'title' => 'Non blocking', 'type' => SANE_TYPE_BOOL, 'constraint_type' => SANE_CONSTRAINT_NONE }, { 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => '1', 'name' => 'select-fd', 'val' => '0', 'index' => 20, 'unit' => SANE_UNIT_NONE, 'desc' => 'Offer a select filedescriptor for detecting if sane_read() will return data.', 'title' => 'Select fd', 'type' => SANE_TYPE_BOOL, 'constraint_type' => SANE_CONSTRAINT_NONE }, { 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => '1', 'name' => 'enable-test-options', 'val' => '0', 'index' => 21, 'unit' => SANE_UNIT_NONE, 'desc' => 'Enable various test options. This is for testing the ability of frontends to view and modify all the different SANE option types.', 'title' => 'Enable test options', 'type' => SANE_TYPE_BOOL, 'constraint_type' => SANE_CONSTRAINT_NONE }, { 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => '1', 'name' => 'read-length-zero', 'val' => '0', 'index' => 22, 'unit' => SANE_UNIT_NONE, 'desc' => 'sane_read() returns data \'x\' but length=0 on first call. This is helpful for testing slow device behavior that returns no data when background work is in process and zero length with SANE_STATUS_GOOD although data is NOT filled with 0.', 'title' => 'Read length zero', 'type' => SANE_TYPE_BOOL, 'constraint_type' => SANE_CONSTRAINT_NONE }, { 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => '0', 'name' => 'print-options', 'unit' => SANE_UNIT_NONE, 'index' => 23, 'desc' => 'Print a list of all options.', 'title' => 'Print options', 'type' => SANE_TYPE_BUTTON, 'constraint_type' => SANE_CONSTRAINT_NONE }, { 'cap' => '0', 'max_values' => '0', 'name' => '', 'unit' => SANE_UNIT_NONE, 'index' => 24, 'desc' => '', 'title' => 'Geometry', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => '1', 'name' => 'l', 'val' => '0', 'index' => 25, 'unit' => SANE_UNIT_MM, 'desc' => 'Top-left x position of scan area.', 'type' => SANE_TYPE_INT, 'constraint' => { 'min' => '0', 'max' => '200', 'quant' => '1' }, 'title' => 'Top-left x', constraint_type => SANE_CONSTRAINT_RANGE, }, { 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => '1', 'name' => 't', 'val' => '0', 'index' => 26, 'unit' => SANE_UNIT_MM, 'desc' => 'Top-left y position of scan area.', 'type' => SANE_TYPE_INT, 'constraint' => { 'min' => '0', 'max' => '200', 'quant' => '1' }, 'title' => 'Top-left y', constraint_type => SANE_CONSTRAINT_RANGE, }, { 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => '1', 'name' => 'x', 'val' => '80', 'index' => 27, 'unit' => SANE_UNIT_MM, 'desc' => 'Width of scan-area.', 'type' => SANE_TYPE_INT, 'constraint' => { 'min' => '0', 'max' => '200', 'quant' => '1' }, 'title' => 'Width', constraint_type => SANE_CONSTRAINT_RANGE, }, { 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => '1', 'name' => 'y', 'val' => '100', 'index' => 28, 'unit' => SANE_UNIT_MM, 'desc' => 'Height of scan-area.', 'type' => SANE_TYPE_INT, 'constraint' => { 'min' => '0', 'max' => '200', 'quant' => '1' }, 'title' => 'Height', constraint_type => SANE_CONSTRAINT_RANGE, }, { 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => '1', 'name' => 'page-width', 'val' => '200', 'index' => 29, 'unit' => SANE_UNIT_MM, 'desc' => 'Specifies the width of the media. Required for automatic centering of sheet-fed scans.', 'type' => SANE_TYPE_INT, 'constraint' => { 'min' => '0', 'max' => '300', 'quant' => '1' }, 'title' => 'Page width', constraint_type => SANE_CONSTRAINT_RANGE, }, { 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => '1', 'name' => 'page-height', 'val' => '200', 'index' => 30, 'unit' => SANE_UNIT_MM, 'desc' => 'Specifies the height of the media.', 'type' => SANE_TYPE_INT, 'constraint' => { 'min' => '0', 'max' => '300', 'quant' => '1' }, 'title' => 'Page height', constraint_type => SANE_CONSTRAINT_RANGE, }, { 'cap' => 0, 'max_values' => '0', 'name' => '', 'unit' => SANE_UNIT_NONE, 'index' => 31, 'desc' => '', 'title' => 'Bool test options', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => '1', 'name' => 'bool-soft-select-soft-detect', 'unit' => SANE_UNIT_NONE, 'index' => 32, 'desc' => '(1/6) Bool test option that has soft select and soft detect (and advanced) capabilities. That\'s just a normal bool option.', 'title' => 'Bool soft select soft detect', 'type' => SANE_TYPE_BOOL, 'constraint_type' => SANE_CONSTRAINT_NONE }, { 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => '1', 'name' => 'bool-soft-select-soft-detect-emulated', 'unit' => SANE_UNIT_NONE, 'index' => 33, 'desc' => '(5/6) Bool test option that has soft select, soft detect, and emulated (and advanced) capabilities.', 'title' => 'Bool soft select soft detect emulated', 'type' => SANE_TYPE_BOOL, 'constraint_type' => SANE_CONSTRAINT_NONE }, { 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE + SANE_CAP_AUTOMATIC, 'max_values' => '1', 'name' => 'bool-soft-select-soft-detect-auto', 'unit' => SANE_UNIT_NONE, 'index' => 34, 'desc' => '(6/6) Bool test option that has soft select, soft detect, and automatic (and advanced) capabilities. This option can be automatically set by the backend.', 'title' => 'Bool soft select soft detect auto', 'type' => SANE_TYPE_BOOL, 'constraint_type' => SANE_CONSTRAINT_NONE }, { 'cap' => 0, 'max_values' => '0', 'name' => '', 'unit' => SANE_UNIT_NONE, 'index' => 35, 'desc' => '', 'title' => 'Int test options', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => '1', 'name' => 'int', 'unit' => SANE_UNIT_NONE, 'index' => 36, 'desc' => '(1/6) Int test option with no unit and no constraint set.', 'title' => 'Int', 'type' => SANE_TYPE_INT, 'constraint_type' => SANE_CONSTRAINT_NONE }, { 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => '1', 'name' => 'int-constraint-range', 'index' => 37, 'unit' => SANE_UNIT_PIXEL, 'desc' => '(2/6) Int test option with unit pixel and constraint range set. Minimum is 4, maximum 192, and quant is 2.', 'title' => 'Int constraint range', 'type' => SANE_TYPE_INT, 'constraint' => { 'min' => '4', 'max' => '192', 'quant' => '2' }, constraint_type => SANE_CONSTRAINT_RANGE, }, { 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => '1', 'name' => 'int-constraint-word-list', 'index' => 38, 'unit' => SANE_UNIT_BIT, 'desc' => '(3/6) Int test option with unit bits and constraint word list set.', 'title' => 'Int constraint word list', 'type' => SANE_TYPE_INT, 'constraint' => [ '-42', '-8', '0', '17', '42', '256', '65536', '16777216', '1073741824' ], 'constraint_type' => SANE_CONSTRAINT_WORD_LIST }, { 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 255, 'name' => 'int-constraint-array', 'unit' => SANE_UNIT_NONE, 'index' => 39, 'desc' => '(4/6) Int test option with unit mm and using an array without constraints.', 'title' => 'Int constraint array', 'type' => SANE_TYPE_INT, 'constraint_type' => SANE_CONSTRAINT_NONE }, { 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 255, 'name' => 'int-constraint-array-constraint-range', 'index' => 40, 'unit' => SANE_UNIT_DPI, 'desc' => '(5/6) Int test option with unit dpi and using an array with a range constraint. Minimum is 4, maximum 192, and quant is 2.', 'title' => 'Int constraint array constraint range', 'type' => SANE_TYPE_INT, 'constraint' => { 'min' => '4', 'max' => '192', 'quant' => '2' }, constraint_type => SANE_CONSTRAINT_RANGE, }, { 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => 255, 'name' => 'int-constraint-array-constraint-word-list', 'index' => 41, 'unit' => SANE_UNIT_PERCENT, 'desc' => '(6/6) Int test option with unit percent and using an array with a word list constraint.', 'title' => 'Int constraint array constraint word list', 'type' => SANE_TYPE_INT, 'constraint' => [ '-42', '-8', '0', '17', '42', '256', '65536', '16777216', '1073741824' ], 'constraint_type' => SANE_CONSTRAINT_WORD_LIST }, { 'cap' => 0, 'max_values' => '0', 'name' => '', 'unit' => SANE_UNIT_NONE, 'index' => 42, 'desc' => '', 'title' => 'Fixed test options', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => '1', 'name' => 'fixed', 'unit' => SANE_UNIT_NONE, 'index' => 43, 'desc' => '(1/3) Fixed test option with no unit and no constraint set.', 'title' => 'Fixed', 'type' => SANE_TYPE_FIXED, 'constraint_type' => SANE_CONSTRAINT_NONE }, { 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => '1', 'name' => 'fixed-constraint-range', 'index' => 44, 'unit' => SANE_UNIT_MICROSECOND, 'desc' => '(2/3) Fixed test option with unit microsecond and constraint range set. Minimum is -42.17, maximum 32767.9999, and quant is 2.0.', 'title' => 'Fixed constraint range', 'type' => SANE_TYPE_FIXED, 'constraint' => { 'min' => '-42.17', 'max' => '32768', 'quant' => '2' }, constraint_type => SANE_CONSTRAINT_RANGE, }, { 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => '1', 'name' => 'fixed-constraint-word-list', 'index' => 45, 'unit' => SANE_UNIT_NONE, 'desc' => '(3/3) Fixed test option with no unit and constraint word list set.', 'title' => 'Fixed constraint word list', 'type' => SANE_TYPE_FIXED, 'constraint' => [ '-32.7', '12.1', '42', '129.5' ], 'constraint_type' => SANE_CONSTRAINT_WORD_LIST }, { 'cap' => '0', 'max_values' => '0', 'name' => '', 'unit' => SANE_UNIT_NONE, 'index' => 46, 'desc' => '', 'title' => 'String test options', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => '1', 'name' => 'string', 'unit' => SANE_UNIT_NONE, 'index' => 47, 'desc' => '(1/3) String test option without constraint.', 'title' => 'String', 'type' => SANE_TYPE_STRING, 'constraint_type' => SANE_CONSTRAINT_NONE }, { 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => '1', 'name' => 'string-constraint-string-list', 'index' => 48, 'unit' => SANE_UNIT_NONE, 'desc' => '(2/3) String test option with string list constraint.', 'title' => 'String constraint string list', 'type' => SANE_TYPE_STRING, 'constraint' => [ 'First entry', 'Second entry', 'This is the very long third entry. Maybe the frontend has an idea how to display it' ], constraint_type => SANE_CONSTRAINT_STRING_LIST, }, { 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => '1', 'name' => 'string-constraint-long-string-list', 'index' => 49, 'unit' => SANE_UNIT_NONE, 'desc' => '(3/3) String test option with string list constraint. Contains some more entries...', 'title' => 'String constraint long string list', 'type' => SANE_TYPE_STRING, 'constraint' => [ 'First entry', 'Second entry', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45', '46' ], constraint_type => SANE_CONSTRAINT_STRING_LIST, }, { 'cap' => '0', 'max_values' => '0', 'name' => '', 'unit' => SANE_UNIT_NONE, 'index' => 50, 'desc' => '', 'title' => 'Button test options', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT + SANE_CAP_INACTIVE, 'max_values' => '0', 'name' => 'button', 'unit' => SANE_UNIT_NONE, 'index' => 51, 'desc' => '(1/1) Button test option. Prints some text...', 'title' => 'Button', 'type' => SANE_TYPE_BUTTON, 'constraint_type' => SANE_CONSTRAINT_NONE }, ); is_deeply( $options->{array}, \@that, 'test' ); is( Gscan2pdf::Scanner::Options->device, 'test:0', 'device name' ); is_deeply( Gscan2pdf::Scanner::Options::synonyms(SANE_NAME_PAGE_HEIGHT), [ SANE_NAME_PAGE_HEIGHT, 'pageheight' ], 'synonyms for SANE_NAME_PAGE_HEIGHT' ); is_deeply( Gscan2pdf::Scanner::Options::synonyms('pageheight'), [ SANE_NAME_PAGE_HEIGHT, 'pageheight' ], 'synonyms for pageheight' ); is_deeply( Gscan2pdf::Scanner::Options::synonyms(SANE_NAME_PAGE_WIDTH), [ SANE_NAME_PAGE_WIDTH, 'pagewidth' ], 'synonyms for SANE_NAME_PAGE_WIDTH' ); is_deeply( Gscan2pdf::Scanner::Options::synonyms('pagewidth'), [ SANE_NAME_PAGE_WIDTH, 'pagewidth' ], 'synonyms for pagewidth' ); is_deeply( Gscan2pdf::Scanner::Options::synonyms(SANE_NAME_SCAN_TL_X), [ SANE_NAME_SCAN_TL_X, 'l' ], 'synonyms for SANE_NAME_SCAN_TL_X' ); is_deeply( Gscan2pdf::Scanner::Options::synonyms('l'), [ SANE_NAME_SCAN_TL_X, 'l' ], 'synonyms for l' ); is_deeply( Gscan2pdf::Scanner::Options::synonyms(SANE_NAME_SCAN_TL_Y), [ SANE_NAME_SCAN_TL_Y, 't' ], 'synonyms for SANE_NAME_SCAN_TL_Y' ); is_deeply( Gscan2pdf::Scanner::Options::synonyms('t'), [ SANE_NAME_SCAN_TL_Y, 't' ], 'synonyms for t' ); is_deeply( Gscan2pdf::Scanner::Options::synonyms(SANE_NAME_SCAN_BR_X), [ SANE_NAME_SCAN_BR_X, 'x' ], 'synonyms for SANE_NAME_SCAN_BR_X' ); is_deeply( Gscan2pdf::Scanner::Options::synonyms('x'), [ SANE_NAME_SCAN_BR_X, 'x' ], 'synonyms for x' ); is_deeply( Gscan2pdf::Scanner::Options::synonyms(SANE_NAME_SCAN_BR_Y), [ SANE_NAME_SCAN_BR_Y, 'y' ], 'synonyms for SANE_NAME_SCAN_BR_Y' ); is_deeply( Gscan2pdf::Scanner::Options::synonyms('y'), [ SANE_NAME_SCAN_BR_Y, 'y' ], 'synonyms for y' ); gscan2pdf-1.2.3/t/065_Dialog_Scan_CLI.t0000644000175000017500000000602612237446454015665 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 9; use Glib qw(TRUE FALSE); # To get TRUE and FALSE use Gtk2 -init; # Could just call init separately BEGIN { use_ok('Gscan2pdf::Dialog::Scan::CLI'); } ######################### my $window = Gtk2::Window->new; Glib::set_application_name('gscan2pdf'); use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Frontend::CLI->setup($logger); ok( my $dialog = Gscan2pdf::Dialog::Scan::CLI->new( title => 'title', 'transient-for' => $window, 'logger' => $logger, 'reload-triggers' => qw(mode), ), 'Created dialog' ); isa_ok( $dialog, 'Gscan2pdf::Dialog::Scan::CLI' ); is( $dialog->get('cache-options'), 0, 'default cache-options' ); my $signal; $signal = $dialog->signal_connect( 'changed-cache-options' => sub { my ( $widget, $cache_options ) = @_; $dialog->signal_handler_disconnect($signal); is( $cache_options, TRUE, 'changed cache-options' ); } ); $dialog->set( 'cache-options', TRUE ); $signal = $dialog->signal_connect( 'changed-options-cache' => sub { my ( $widget, $cache ) = @_; $dialog->signal_handler_disconnect($signal); ok( 1, 'changed options-cache' ); $signal = $dialog->signal_connect( 'reloaded-scan-options' => sub { $dialog->signal_handler_disconnect($signal); my $options = $dialog->get('available-scan-options'); $dialog->set_option( $options->by_name('mode'), 'Color' ); $signal = $dialog->signal_connect( 'changed-options-cache' => sub { my ( $widget, $cache ) = @_; $dialog->signal_handler_disconnect($signal); ok( 1, 'changed options-cache after set mode' ); $dialog = Gscan2pdf::Dialog::Scan::CLI->new( title => 'title', 'transient-for' => $window, 'logger' => $logger, 'reload-triggers' => qw(mode), 'cache-options' => TRUE, 'options-cache' => $cache, ); $signal = $dialog->signal_connect( 'fetched-options-cache' => sub { my ( $widget, $device, $cache_key ) = @_; $dialog->signal_handler_disconnect($signal); ok( 1, 'fetched-options-cache' ); $signal = $dialog->signal_connect( 'fetched-options-cache' => sub { my ( $widget, $device, $cache_key ) = @_; $dialog->signal_handler_disconnect($signal); ok( 1, 'fetched-options-cache for set mode' ); Gtk2->main_quit; } ); my $signal2; $signal2 = $dialog->signal_connect( 'reloaded-scan-options' => sub { $dialog->signal_handler_disconnect($signal2); my $options = $dialog->get('available-scan-options'); $dialog->set_option( $options->by_name('mode'), 'Color' ); } ); } ); $dialog->set( 'device-list', [ { 'name' => 'test' } ] ); $dialog->set( 'device', 'test' ); } ); } ); } ); $dialog->set( 'device-list', [ { 'name' => 'test' } ] ); $dialog->set( 'device', 'test' ); Gtk2->main; __END__ gscan2pdf-1.2.3/t/35_unpaper.t0000644000175000017500000000437712103156350014412 0ustar jeffjeffuse warnings; use strict; use File::Basename; # Split filename into dir, file, ext use Test::More tests => 5; BEGIN { use Gscan2pdf::Document; use Gscan2pdf::Unpaper; use Gtk2 -init; # Could just call init separately use version; } SKIP: { skip 'unpaper not installed', 2 unless ( system("which unpaper > /dev/null 2> /dev/null") == 0 ); my $unpaper = Gscan2pdf::Unpaper->new; use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); my %paper_sizes = ( A4 => { x => 210, y => 297, l => 0, t => 0, }, 'US Letter' => { x => 216, y => 279, l => 0, t => 0, }, 'US Legal' => { x => 216, y => 356, l => 0, t => 0, }, ); # Create test image system( 'convert -size 2100x2970 +matte -depth 1 -border 2x2 -bordercolor black -pointsize 12 -density 300 label:"The quick brown fox" test.pnm' ); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->set_paper_sizes( \%paper_sizes ); $slist->get_file_info( path => 'test.pnm', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { is( int( abs( $slist->{data}[0][2]{resolution} - 254 ) ), 0, 'Resolution of imported image' ); $slist->unpaper( page => $slist->{data}[0][2], options => $unpaper->get_cmdline, finished_callback => sub { is( int( abs( $slist->{data}[0][2]{resolution} - 254 ) ), 0, 'Resolution of processed image' ); is( system("identify $slist->{data}[0][2]{filename}"), 0, 'valid image created' ); is( dirname("$slist->{data}[0][2]{filename}"), "$dir", 'using session directory' ); $slist->save_pdf( path => 'test.pdf', list_of_pages => [ $slist->{data}[0][2] ], finished_callback => sub { Gtk2->main_quit } ); } ); } ); } ); Gtk2->main; like( `pdfinfo test.pdf`, qr/A4/, 'PDF is A4' ); unlink 'test.pnm', 'test.pdf', <$dir/*>; rmdir $dir; Gscan2pdf::Document->quit(); } gscan2pdf-1.2.3/t/31_ocropus.t0000644000175000017500000000234312270574026014426 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 7; BEGIN { use_ok('Gscan2pdf::Ocropus'); use Gscan2pdf::Tesseract; use Encode; } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; SKIP: { skip 'Ocropus not installed', 6 unless Gscan2pdf::Ocropus->setup($logger); # Create test image system( 'convert +matte -depth 1 -pointsize 12 -density 300 label:"The quick brown fox" test.png' ); my $got = Gscan2pdf::Ocropus->hocr( 'test.png', 'eng', $logger ); like( $got, qr/The quick brown fox/, 'Ocropus returned sensible text' ); skip 'Tesseract not installed', 5 unless Gscan2pdf::Tesseract->setup($logger); my $languages = Gscan2pdf::Tesseract->languages; skip 'German language pack for Tesseract not installed', 5 unless ( defined $languages->{'deu'} ); # Create test image system( "convert +matte -depth 1 -pointsize 12 -density 300 label:'öÖäÄüÜß' test.png" ); $got = Gscan2pdf::Ocropus->hocr( 'test.png', 'deu', $logger ); is( Encode::is_utf8( $got, 1 ), 1, "Ocropus returned UTF8" ); for my $c (qw( ö ä ü ß )) { my $c2 = decode_utf8($c); like( $got, qr/$c2/, "Ocropus returned $c" ); } unlink 'test.png'; } done_testing(); gscan2pdf-1.2.3/t/47_cancel_unsharp_mask.t0000644000175000017500000000276012270574026016746 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 2; BEGIN { use Gscan2pdf::Document; use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert rose: test.jpg'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.jpg', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { my $pid = $slist->unsharp( page => $slist->{data}[0][2], radius => 100, sigma => 5, amount => 100, threshold => 0.5, cancelled_callback => sub { is( -s 'test.jpg', -s "$slist->{data}[0][2]{filename}", 'image not modified' ); $slist->save_image( path => 'test2.jpg', list_of_pages => [ $slist->{data}[0][2] ], finished_callback => sub { Gtk2->main_quit } ); } ); $slist->cancel($pid); } ); } ); Gtk2->main; is( system('identify test2.jpg'), 0, 'can create a valid JPG after cancelling previous process' ); ######################### unlink 'test.jpg', 'test2.jpg'; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/23_analyse_dark.t0000644000175000017500000000231212053230657015364 0ustar jeffjeffuse warnings; use strict; use File::Basename; # Split filename into dir, file, ext use Test::More tests => 3; BEGIN { use_ok('Gscan2pdf::Document'); use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert xc:black black.pnm'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'black.pnm', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { $slist->analyse( page => $slist->{data}[0][2], finished_callback => sub { is( $slist->{data}[0][2]{mean}, 0, 'Found dark page' ); is( dirname("$slist->{data}[0][2]{filename}"), "$dir", 'using session directory' ); Gtk2->main_quit; } ); } ); } ); Gtk2->main; ######################### unlink 'black.pnm', <$dir/*>; rmdir $dir; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/45_cancel_threshold.t0000644000175000017500000000262312270574026016243 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 2; BEGIN { use Gscan2pdf::Document; use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert rose: test.jpg'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->get_file_info( path => 'test.jpg', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { my $pid = $slist->threshold( threshold => 80, page => $slist->{data}[0][2], cancelled_callback => sub { is( -s 'test.jpg', -s "$slist->{data}[0][2]{filename}", 'image not modified' ); $slist->save_image( path => 'test2.jpg', list_of_pages => [ $slist->{data}[0][2] ], finished_callback => sub { Gtk2->main_quit } ); } ); $slist->cancel($pid); } ); } ); Gtk2->main; is( system('identify test2.jpg'), 0, 'can create a valid JPG after cancelling previous process' ); ######################### unlink 'test.jpg', 'test2.jpg'; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/t/174_open_crashed_session.t0000644000175000017500000000176512270574026017230 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 3; use File::Path qw(remove_tree); BEGIN { use Gscan2pdf::Document; use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); Gscan2pdf::Document->setup(Log::Log4perl::get_logger); my $slist = Gscan2pdf::Document->new; my $dir = File::Spec->catfile( File::Spec->tmpdir, 'gscan2pdf-tmp' ); $slist->set_dir($dir); $slist->open_session($dir); like( `file $slist->{data}[0][2]{filename}`, qr/PNG image data, 70 x 46, 8-bit\/color RGB, non-interlaced/, 'PNG extracted with expected size' ); is( $slist->{data}[0][2]{hocr}, 'The quick brown fox', 'Basic OCR output extracted' ); ######################### $slist = Gscan2pdf::Document->new; unlink File::Spec->catfile( $dir, 'session' ); $slist->set_dir($dir); $slist->open_session( undef, undef, sub { pass('trapped missing session file') } ); ######################### Gscan2pdf::Document->quit; remove_tree($dir); gscan2pdf-1.2.3/t/02_Scanner_Options_fujitsu.t0000644000175000017500000002553012271200642017601 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 25; use Sane 0.05; # For enums BEGIN { use_ok('Gscan2pdf::Scanner::Options') } ######################### my $filename = 'scanners/fujitsu'; my $output = do { local ( @ARGV, $/ ) = $filename; <> }; my $options = Gscan2pdf::Scanner::Options->new_from_data($output); my @that = ( { 'index' => 0, }, { index => 1, title => 'Scan Mode', 'cap' => 0, 'max_values' => 0, 'name' => '', 'unit' => SANE_UNIT_NONE, 'desc' => '', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { name => 'source', title => 'Source', index => 2, 'desc' => 'Selects the scan source (such as a document-feeder).', 'val' => 'ADF Front', 'constraint' => [ 'ADF Front', 'ADF Back', 'ADF Duplex' ], 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_STRING_LIST, type => SANE_TYPE_STRING, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'mode', title => 'Mode', index => 3, 'desc' => 'Selects the scan mode (e.g., lineart, monochrome, or color).', 'val' => 'Gray', 'constraint' => [ 'Gray', 'Color' ], 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_STRING_LIST, type => SANE_TYPE_STRING, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'resolution', title => 'Resolution', index => 4, 'desc' => 'Sets the horizontal resolution of the scanned image.', 'val' => '600', constraint => { 'min' => 100, 'max' => 600, 'quant' => 1, }, 'unit' => SANE_UNIT_DPI, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'y-resolution', title => 'Y resolution', index => 5, 'desc' => 'Sets the vertical resolution of the scanned image.', 'val' => '600', constraint => { 'min' => 50, 'max' => 600, 'quant' => 1, }, 'unit' => SANE_UNIT_DPI, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { index => 6, title => 'Geometry', 'cap' => 0, 'max_values' => 0, 'name' => '', 'unit' => SANE_UNIT_NONE, 'desc' => '', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { name => 'l', title => 'Top-left x', index => 7, 'desc' => 'Top-left x position of scan area.', 'val' => 0, constraint => { 'min' => 0, 'max' => 224.846, 'quant' => 0.0211639, }, 'unit' => SANE_UNIT_MM, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_FIXED, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 't', title => 'Top-left y', index => 8, 'desc' => 'Top-left y position of scan area.', 'val' => 0, constraint => { 'min' => 0, 'max' => 863.489, 'quant' => 0.0211639, }, 'unit' => SANE_UNIT_MM, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_FIXED, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'x', title => 'Width', index => 9, 'desc' => 'Width of scan-area.', 'val' => 215.872, constraint => { 'min' => 0, 'max' => 224.846, 'quant' => 0.0211639, }, 'unit' => SANE_UNIT_MM, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_FIXED, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'y', title => 'Height', index => 10, 'desc' => 'Height of scan-area.', 'val' => 279.364, constraint => { 'min' => 0, 'max' => 863.489, 'quant' => 0.0211639, }, 'unit' => SANE_UNIT_MM, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_FIXED, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'pagewidth', title => 'Pagewidth', index => 11, 'desc' => 'Must be set properly to align scanning window', 'val' => '215.872', constraint => { 'min' => 0, 'max' => 224.846, 'quant' => 0.0211639, }, 'unit' => SANE_UNIT_MM, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_FIXED, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'pageheight', title => 'Pageheight', index => 12, 'desc' => 'Must be set properly to eject pages', 'val' => '279.364', constraint => { 'min' => 0, 'max' => 863.489, 'quant' => 0.0211639, }, 'unit' => SANE_UNIT_MM, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_FIXED, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { index => 13, title => 'Enhancement', 'cap' => 0, 'max_values' => 0, 'name' => '', 'unit' => SANE_UNIT_NONE, 'desc' => '', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { name => 'rif', title => 'Rif', index => 14, 'desc' => 'Reverse image format', 'val' => SANE_FALSE, 'unit' => SANE_UNIT_NONE, 'type' => SANE_TYPE_BOOL, 'constraint_type' => SANE_CONSTRAINT_NONE, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { index => 15, title => 'Advanced', 'cap' => 0, 'max_values' => 0, 'name' => '', 'unit' => SANE_UNIT_NONE, 'desc' => '', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, { name => 'dropoutcolor', title => 'Dropoutcolor', index => 16, 'desc' => 'One-pass scanners use only one color during gray or binary scanning, useful for colored paper or ink', 'val' => 'Default', 'constraint' => [ 'Default', 'Red', 'Green', 'Blue' ], 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_STRING_LIST, type => SANE_TYPE_STRING, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { name => 'sleeptimer', title => 'Sleeptimer', index => 17, 'desc' => 'Time in minutes until the internal power supply switches to sleep mode', 'val' => '0', constraint => { 'min' => 0, 'max' => 60, 'quant' => 1, }, 'unit' => SANE_UNIT_NONE, constraint_type => SANE_CONSTRAINT_RANGE, type => SANE_TYPE_INT, 'cap' => SANE_CAP_SOFT_DETECT + SANE_CAP_SOFT_SELECT, 'max_values' => 1, }, { index => 18, title => 'Sensors and Buttons', 'cap' => 0, 'max_values' => 0, 'name' => '', 'unit' => SANE_UNIT_NONE, 'desc' => '', type => SANE_TYPE_GROUP, 'constraint_type' => SANE_CONSTRAINT_NONE }, ); is_deeply( $options->{array}, \@that, 'fujitsu' ); is( $options->num_options, 19, 'number of options' ); is( $options->by_index(2)->{name}, 'source', 'by_index' ); is( $options->by_name('source')->{name}, 'source', 'by_name' ); is( $options->by_title('Source')->{name}, 'source', 'by_title' ); is( $options->supports_paper( { x => 210, y => 297, l => 0, t => 0, }, 0 ), 1, 'supports_paper' ); is( $options->supports_paper( { x => 210, y => 297, l => 0, t => -10, }, 0 ), 0, 'paper crosses top border' ); is( $options->supports_paper( { x => 210, y => 297, l => 0, t => 600, }, 0 ), 0, 'paper crosses bottom border' ); is( $options->supports_paper( { x => 210, y => 297, l => -10, t => 0, }, 0 ), 0, 'paper crosses left border' ); is( $options->supports_paper( { x => 210, y => 297, l => 20, t => 0, }, 0 ), 0, 'paper crosses right border' ); is( $options->supports_paper( { x => 225, y => 297, l => 0, t => 0, }, 0 ), 0, 'paper too wide' ); is( $options->supports_paper( { x => 210, y => 870, l => 0, t => 0, }, 0 ), 0, 'paper too tall' ); $options->delete_by_index(2); is( $options->by_index(2), undef, 'delete_by_index' ); is( $options->by_name('source'), undef, 'delete_by_index got hash too' ); $options->delete_by_name('mode'); is( $options->by_name('mode'), undef, 'delete_by_name' ); is( $options->by_index(3), undef, 'delete_by_name got array too' ); $output = <<'END'; Options specific to device `fujitsu:libusb:002:004': Geometry: -l 0..224.846mm (in quants of 0.0211639) [0] Top-left x position of scan area. -t 0..863.489mm (in quants of 0.0211639) [0] Top-left y position of scan area. -x 0..204.846mm (in quants of 0.0211639) [215.872] Width of scan-area. -y 0..263.489mm (in quants of 0.0211639) [279.364] Height of scan-area. --page-width 0..224.846mm (in quants of 0.0211639) [215.872] Must be set properly to align scanning window --page-height 0..863.489mm (in quants of 0.0211639) [279.364] Must be set properly to eject pages END $options = Gscan2pdf::Scanner::Options->new_from_data($output); is( $options->supports_paper( { x => 210, y => 297, l => 0, t => 0, }, 0 ), 1, 'page-width supports_paper' ); is( $options->supports_paper( { x => 210, y => 297, l => 0, t => -10, }, 0 ), 0, 'page-width paper crosses top border' ); is( $options->supports_paper( { x => 210, y => 297, l => 0, t => 600, }, 0 ), 0, 'page-width paper crosses bottom border' ); is( $options->supports_paper( { x => 210, y => 297, l => -10, t => 0, }, 0 ), 0, 'page-width paper crosses left border' ); is( $options->supports_paper( { x => 210, y => 297, l => 20, t => 0, }, 0 ), 0, 'page-width paper crosses right border' ); is( $options->supports_paper( { x => 225, y => 297, l => 0, t => 0, }, 0 ), 0, 'page-width paper too wide' ); is( $options->supports_paper( { x => 210, y => 870, l => 0, t => 0, }, 0 ), 0, 'page-width paper too tall' ); is( Gscan2pdf::Scanner::Options->device, 'fujitsu:libusb:002:004', 'device name' ); gscan2pdf-1.2.3/t/171_save_session.t0000644000175000017500000000214612270574026015523 0ustar jeffjeffuse warnings; use strict; use Test::More tests => 2; use File::Basename; # Split filename into dir, file, ext BEGIN { use Gscan2pdf::Document; use Gtk2 -init; # Could just call init separately } ######################### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $logger = Log::Log4perl::get_logger; Gscan2pdf::Document->setup($logger); # Create test image system('convert rose: test.pnm'); my $slist = Gscan2pdf::Document->new; $slist->set_dir( File::Temp->newdir ); $slist->get_file_info( path => 'test.pnm', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { $slist->{data}[0][2]{hocr} = 'The quick brown fox'; $slist->save_session('test.gs2p'); Gtk2->main_quit; } ); } ); Gtk2->main; is( `file test.gs2p`, "test.gs2p: gzip compressed data\n", 'Session file created' ); cmp_ok( -s 'test.gs2p', '>', 0, 'Non-empty Session file created' ); ######################### Gscan2pdf::Document->quit(); unlink 'test.pnm'; gscan2pdf-1.2.3/t/37_user_defined.t0000644000175000017500000000404512103156350015366 0ustar jeffjeffuse warnings; use strict; use File::Basename; # Split filename into dir, file, ext use Test::More tests => 5; BEGIN { use Gscan2pdf::Document; use Gtk2 -init; # Could just call init separately } use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); Gscan2pdf::Document->setup(Log::Log4perl::get_logger); my %paper_sizes = ( A4 => { x => 210, y => 297, l => 0, t => 0, }, 'US Letter' => { x => 216, y => 279, l => 0, t => 0, }, 'US Legal' => { x => 216, y => 356, l => 0, t => 0, }, ); # Create test image system('convert -size 210x297 xc:white white.pnm'); my $slist = Gscan2pdf::Document->new; # dir for temporary files my $dir = File::Temp->newdir; $slist->set_dir($dir); $slist->set_paper_sizes( \%paper_sizes ); $slist->get_file_info( path => 'white.pnm', finished_callback => sub { my ($info) = @_; $slist->import_file( info => $info, first => 1, last => 1, finished_callback => sub { is( int( abs( $slist->{data}[0][2]{resolution} - 25.4 ) ), 0, 'Resolution of imported image' ); $slist->user_defined( page => $slist->{data}[0][2], command => 'convert %i -negate %o', finished_callback => sub { $slist->analyse( page => $slist->{data}[0][2], finished_callback => sub { is( $slist->{data}[0][2]{mean}, 0, 'User-defined with %i and %o' ); is( int( abs( $slist->{data}[0][2]{resolution} - 25.4 ) ), 0, 'Resolution of converted image' ); is( dirname("$slist->{data}[0][2]{filename}"), "$dir", 'using session directory' ); $slist->save_pdf( path => 'test.pdf', list_of_pages => [ $slist->{data}[0][2] ], finished_callback => sub { Gtk2->main_quit } ); } ); } ); } ); } ); Gtk2->main; like( `pdfinfo test.pdf`, qr/A4/, 'PDF is A4' ); ######################### unlink 'white.pnm', 'test.pdf', <$dir/*>; rmdir $dir; Gscan2pdf::Document->quit(); gscan2pdf-1.2.3/META.yml0000664000175000017500000000176212271546566013271 0ustar jeffjeff--- #YAML:1.0 name: gscan2pdf version: 1.2.3 abstract: A GUI to produce PDFs or DjVus from scanned documents author: - Jeffrey Ratcliffe license: unknown distribution_type: module configure_requires: ExtUtils::MakeMaker: 0 build_requires: ExtUtils::MakeMaker: 0 requires: Config::General: 2.4 Glib: 1.21 Goo::Canvas: 0 Gtk2: 1.09 Gtk2::Ex::Simple::List: 0 Gtk2::ImageView: 0 Image::Magick: 0 List::MoreUtils: 0 Locale::gettext: 1.05 Log::Log4perl: 0 PDF::API2: 0 Readonly: 0 Sane: 0.05 Set::IntSpan: 1.1 Try::Tiny: 0 no_index: directory: - t - inc generated_by: ExtUtils::MakeMaker version 6.57_05 meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html version: 1.4 gscan2pdf-1.2.3/stock-selection-all-16.png0000644000175000017500000000021412053230657016600 0ustar jeffjeffPNG  IHDRabKGDAIDATxcd``dȈ'(@>@!Ȁ30.x`9q4@=/m {?IENDB`gscan2pdf-1.2.3/gscan2pdf.svg0000644000175000017500000013732412053230657014377 0ustar jeffjeff image/svg+xml F.Bellaiche <frederic.bellaiche@gmail.com> Epson Perfection 1260 Scanner May 2007 gscan2pdf-1.2.3/gscan2pdf.desktop0000644000175000017500000000061012053230657015234 0ustar jeffjeff[Desktop Entry] Name=gscan2pdf GenericName=gscan2pdf Comment=A GUI to aid the scan-to-PDF process Comment[de]=Machen Sie PDF-Dateien direkt von Ihrem Scanner Comment[fr]=Une interface graphique permettant de réaliser des fichiers PDF de plusieurs pages à partir d'un scanner Exec=gscan2pdf Icon=gscan2pdf Terminal=false Type=Application Categories=Graphics;Scanning; X-SuSE-translate=false gscan2pdf-1.2.3/MANIFEST0000644000175000017500000001172612271546566013150 0ustar jeffjeffCOPYING History INSTALL LICENCE MANIFEST Makefile.PL bin/gscan2pdf bin/scanadf-perl bin/scanimage-perl debian/changelog debian/compat debian/control debian/copyright debian/rules debian/source/format debian/watch gscan2pdf.Suse.spec gscan2pdf.desktop gscan2pdf.spec gscan2pdf.svg lib/Gscan2pdf/Cuneiform.pm lib/Gscan2pdf/Dialog.pm lib/Gscan2pdf/Dialog/Renumber.pm lib/Gscan2pdf/Dialog/Scan.pm lib/Gscan2pdf/Dialog/Scan/CLI.pm lib/Gscan2pdf/Dialog/Scan/Sane.pm lib/Gscan2pdf/Document.pm lib/Gscan2pdf/Frontend/CLI.pm lib/Gscan2pdf/Frontend/Sane.pm lib/Gscan2pdf/NetPBM.pm lib/Gscan2pdf/Ocropus.pm lib/Gscan2pdf/Page.pm lib/Gscan2pdf/PageRange.pm lib/Gscan2pdf/Scanner/Options.pm lib/Gscan2pdf/Tesseract.pm lib/Gscan2pdf/Unpaper.pm pdf.svg po/gscan2pdf-ab.po po/gscan2pdf-be.po po/gscan2pdf-bg.po po/gscan2pdf-ca.po po/gscan2pdf-cs.po po/gscan2pdf-da.po po/gscan2pdf-de.po po/gscan2pdf-el.po po/gscan2pdf-en_GB.po po/gscan2pdf-es.po po/gscan2pdf-fa.po po/gscan2pdf-fr.po po/gscan2pdf-gu.po po/gscan2pdf-he.po po/gscan2pdf-hr.po po/gscan2pdf-hu.po po/gscan2pdf-it.po po/gscan2pdf-ja.po po/gscan2pdf-ko.po po/gscan2pdf-nb.po po/gscan2pdf-nl.po po/gscan2pdf-oc.po po/gscan2pdf-pl.po po/gscan2pdf-pt.po po/gscan2pdf-pt_BR.po po/gscan2pdf-ru.po po/gscan2pdf-sk.po po/gscan2pdf-sl.po po/gscan2pdf-sv.po po/gscan2pdf-tr.po po/gscan2pdf-uk.po po/gscan2pdf-zh_CN.po po/gscan2pdf-zh_TW.po scanner.svg scanners/Brother_DCP-7025 scanners/Brother_MFC-8860DN scanners/Brother_MFC_5100c scanners/Dell_Laser_MFP_1600n scanners/Epson_GT-2500 scanners/FujitsuS510 scanners/FujitsuS510.Color scanners/FujitsuS510.Lineart scanners/brother scanners/canonFB630u scanners/canonLiDE25 scanners/canoscan_FB_630P scanners/dummy_scanner scanners/epson1 scanners/epson1200 scanners/epson_3490 scanners/epson_3490.Lineart scanners/epson_GT-X770 scanners/fujitsu scanners/hp3900 scanners/hp_6200 scanners/hp_scanjet5300c scanners/hp_scanjet5470c scanners/hp_scanjet5470c.scanadf scanners/hp_scanjet6390c scanners/hp_scanjet6390c.scanadf scanners/hp_v40 scanners/hpangua scanners/laserjet_3020 scanners/mustek scanners/niash scanners/officejet_5500 scanners/officejet_5500.Lineart scanners/officejet_5500.color scanners/officejet_5500.gray scanners/officejet_5500.lineart scanners/officejet_5500.scanadf scanners/psc1200 scanners/psc1315 scanners/snapscan scanners/snapscanS510 scanners/snapscanS510.Color scanners/snapscanS510.Lineart scanners/test scanners/umax scanners/xp450 stock-rotate-180.svg stock-rotate-270.svg stock-rotate-90.svg stock-selection-all-16.png t/01_scan_sane.t t/02_Scanner_Options_Brother_DCP-7025.t t/02_Scanner_Options_Brother_MFC_5100c.t t/02_Scanner_Options_brother.t t/02_Scanner_Options_canonLiDE25.t t/02_Scanner_Options_canoscan_FB_630P.t t/02_Scanner_Options_epson1.t t/02_Scanner_Options_epson_3490.t t/02_Scanner_Options_fujitsu.t t/02_Scanner_Options_hp_scanjet5300c.t t/02_Scanner_Options_libsane-perl.t t/02_Scanner_Options_officejet_5500.t t/02_Scanner_Options_snapscan.t t/02_Scanner_Options_test.t t/02_Scanner_Options_umax.t t/03_Page.t t/04_Unpaper.t t/05_Dialog.t t/061_Dialog_Scan_Sane.t t/062_Dialog_Scan_Sane.t t/063_Dialog_Scan_CLI.t t/064_Dialog_Scan_CLI.t t/065_Dialog_Scan_CLI.t t/066_Dialog_Scan_CLI.t t/067_Dialog_Scan_CLI.t t/068_Dialog_Scan_CLI.t t/069_Dialog_Scan_CLI.t t/07_Dialog_Renumber.t t/08_Frontend_CLI.t t/09_NetPBM.t t/10_Document.t t/1111_save_pdf_with_locale.t t/111_save_pdf.t t/112_save_pdf_with_text.t t/113_save_pdf_with_hocr.t t/114_cancel_save_pdf.t t/115_save_pdf_with_utf8.t t/116_save_pdf_with_metadata.t t/117_save_multipage_pdf_with_utf8.t t/118_save_multipage_pdf.t t/119_save_pdf_with_non-utf8.t t/121_save_djvu.t t/122_save_djvu_with_text.t t/123_save_djvu_with_hocr.t t/124_cancel_save_djvu.t t/131_save_tiff.t t/132_cancel_save_tiff.t t/14_save_image.t t/151_save_text.t t/152_save_utf8.t t/161_import_TIFF.t t/162_import_ppm.t t/163_import_pdf.t t/164_import_multiple_images.t t/165_import_with_spaces.t t/166_cancel_import.t t/167_import_with_error.t t/168_import_multipage_PDF.t t/169_import_multipage_PDF2.t t/170_import_multipage_TIFF.t t/171_save_session.t t/172_open_session.t t/173_open_multiple_session.t t/174_open_crashed_session.t t/21_rotate.t t/22_analyse_blank.t t/23_analyse_dark.t t/24_threshold.t t/25_negate.t t/26_unsharp_mask.t t/27_crop.t t/28_to_png.t t/29_tesseract.t t/30_tesseract_in_thread.t t/31_ocropus.t t/32_ocropus_in_thread.t t/33_cuneiform.t t/34_cuneiform_in_thread.t t/35_unpaper.t t/36_unpaper2.t t/373_user_defined.t t/374_user_defined.t t/375_user_defined.t t/37_user_defined.t t/38_user_defined2.t t/39_gocr.t t/40_gocr.t t/44_cancel_rotate.t t/45_cancel_threshold.t t/46_cancel_negate.t t/47_cancel_unsharp_mask.t t/48_cancel_crop.t t/49_cancel_to_png.t t/50_cancel_tesseract.t t/51_cancel_ocropus.t t/52_cancel_cuneiform.t t/53_cancel_unpaper.t t/54_cancel_user_defined.t t/55_cancel_gocr.t t/80_scanimage-perl.t t/81_scanadf-perl.t t/90_MANIFEST.t t/91_critic.t t/99_pod.t t/non-utf8.html t/perlcriticrc META.yml Module meta-data (added by MakeMaker) gscan2pdf-1.2.3/stock-rotate-90.svg0000644000175000017500000001571712053230657015376 0ustar jeffjeff image/svg+xml gscan2pdf-1.2.3/gscan2pdf.Suse.spec0000644000175000017500000002443112271546354015450 0ustar jeffjeffName: gscan2pdf Version: 1.2.3 Release: 1%{?dist} Summary: A GUI to produce PDFs from scanned documents Group: Applications/Publishing License: GPL URL: http://%{name}.sourceforge.net/ Source0: %{name}-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root BuildArch: noarch BuildRequires: perl(ExtUtils::MakeMaker), perl(Test::More) BuildRequires: gettext, desktop-file-utils Requires: perl-PerlMagick, ImageMagick, djvulibre, sane-backends Requires: sane-frontends, xdg-utils, unpaper, gocr, tiff, perl(Gtk2::ImageView) Requires: perl(Gtk2::Ex::PodViewer), perl(PDF::API2), perl(Config::General) %description Only two clicks are required to scan several pages and then save all or a selection as a PDF file, including metadata if required. gscan2pdf can control regular or sheet-fed (ADF) scanners with SANE via scanimage or scanadf, and can scan multiple pages at once. It presents a thumbnail view of scanned pages, and permits simple operations such as rotating and deleting pages. PDF conversion is done by PDF::API2. The resulting document may be saved as a PDF or a multipage TIFF file. %prep %setup -q %build %{__perl} Makefile.PL INSTALLDIRS=vendor make %{?_smp_mflags} %install rm -rf $RPM_BUILD_ROOT make install DESTDIR=$RPM_BUILD_ROOT find $RPM_BUILD_ROOT -type f -name .packlist -exec rm -f {} ';' find $RPM_BUILD_ROOT -depth -type d -exec rmdir {} 2>/dev/null ';' rm -f $RPM_BUILD_ROOT/%{perl_archlib}/perllocal.pod chmod -R u+w $RPM_BUILD_ROOT/* desktop-file-install --delete-original --vendor="" \ --dir=$RPM_BUILD_ROOT/%{_datadir}/applications \ $RPM_BUILD_ROOT/%{_datadir}/applications/%{name}.desktop %find_lang %{name} %check export DISPLAY=:0.0 #make test %clean rm -rf $RPM_BUILD_ROOT %post update-desktop-database &> /dev/null ||: touch --no-create %{_datadir}/icons/hicolor || : if [ -x %{_bindir}/gtk-update-icon-cache ]; then %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || : fi %postun update-desktop-database &> /dev/null ||: touch --no-create %{_datadir}/icons/hicolor || : if [ -x %{_bindir}/gtk-update-icon-cache ]; then %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || : fi %files -f %{name}.lang %defattr(-,root,root,-) %doc LICENCE %{_bindir}/* %{perl_vendorlib}/* %{_datadir}/%{name} %{_datadir}/applications/%{name}.desktop %{_datadir}/pixmaps/gscan2pdf.svg %{_mandir}/man1/*.1* %changelog * Mon Jan 27 2014 Jeffrey Ratcliffe - New upstream release - Added depends: liblist-moreutils-perl - New upstream release Closes: #734854 (gscan2pdf wrong resolution) - New upstream release Closes: #701581 (Thunderbird detection (for send email) does not work reliably on XFCE) Closes: #729589 (Can not scan using a Canon LiDE 210 with version 1.1.3-1) Closes: #717479 (Background-scanning for devices and options) - New upstream release - New upstream release - New upstream release - New upstream release Closes: #682818 (Presets aren't working) - Added depends: libtry-tiny-perl - New upstream release - New upstream release Closes: #670640 (Can't call method get_cmdline) - Recommend tesseract OR gocr OR cuneiform, rather than AND Closes: #682100 gscan2pdf Recommends cuneiform which is in non-free - Fix updating widgets in scanimage dialog Closes: #678911 (Device-dependent options disappear after selecting Lineart mode) - Fixed warning in lib/Gscan2pdf/Scanner/Options.pm - Fix unpaper as part of scan process Closes: #670640 (Can't call method get_cmdline) - Deal with non-utf-8 characters in OCR output Closes: #670831 (not resilient against non utf-8 from tesseract) - Bumped standards to 3.9.3 (no changes required) - New upstream release - New upstream release - Updated Depends on libsane-perl to 0.05 - New upstream release Closes: #663584 (copy-paste of pages corrupts document) Closes: #664635 (Fails to restore session, invalid pathname) Closes: #665871 (no longer offers 'tesseract' OCR, persistently) - New upstream release Closes: #653918 (gscan2pdf doesn't save metadata anymore) Closes: #646298 (pdf-exports of ocropus texts are slow, big) Closes: #646246 (gscan2pdf ignores html-entities returned by ocropus documents) Closes: #651666 (ability to preview saved files) Closes: #645322 (No lock after recovery can result in data loss) Closes: #645323 (Imported pages have no thumbnails) - Bumped standards to 3.9.2 (no changes required) - New upstream release Closes: #622616 (gscan2pdf: error message) Closes: #622844 (gscan2pdf + libsane-perl frontend + Canon CanoScan LiDE25 results in "End of file reached") Closes: #563461 (ability to remove unreferenced temporary files) Closes: #577144 (gscan2pdf: lost option for editing/scanning simultaneously in newer versions) Closes: #602578 (Clearing the OCR text) Closes: #617886 ("Open gscan2pdf session file" icon looks too much like "Save" icon) - New upstream release Closes: #599181 (gscan2pdf: OCR doesn't support Umlauts/national characters) Closes: #608226 (pressing space causes unexpected data loss) New Depends: liblog-log4perl-perl Removed Depends: libarchive-tar-perl, as now in perl - Removed debian/patches/replace-forks-with-threads Removed Build-Depends: quilt Updated rules not to use quilt - Replace forks with threads Closes: #591404 (gscan2pdf: libforks-perl could be removed) Removed Depends: libforks-perl Added Build-Depends: quilt Updated rules to use quilt - Bumped standards to 3.9.1 (no changes required) - New upstream release Closes: #510309 (gscan2pdf: Ability to configure how GIMP is started) Closes: #576193 (gscan2pdf: OCR does not works, due to Goo::Canvas::Text programming error) Closes: #584787 (gscan2pdf: Gscan2pdf quits without saving) Closes: #585441 (gscan2pdf: "Useless use of sort in void context") New Depends: libhtml-parser-perl, libreadonly-perl Removed Depends: libxml-simple-perl New Recommends: cuneiform - Minor editing of description - Patched the clean target to fix FTBFS - Bumped standards to 3.9.0 (no changes required) - New upstream release. Closes: #461086 (embed OCR output at correct position) Closes: #510314 (gscan2pdf: Mapping File_Scan to a shortcut key) Closes: #557657 (gscan2pdf binarization option [wishlist]) New Depends: libxml-simple-perl, libgoo-canvas-perl, libproc-processtable-perl - Removed URL from description Closes: #564325 (gscan2pdf: please remove homepage from description) - Fixed VCS-URLs - Bumped standards to 3.8.3 (no changes required) - Switch to tiny dh7 rules - Added ${misc:Depends} - New upstream release. Closes: #526845 (gscan2pdf: Renaming of frontends breaks current settings) - New upstream release. Closes: #506150 (gscan2pdf: pdf creation failes when using LZW compression) Closes: #512758 (Error handling: 'Unknown message: "scanimage: sane_read: Operation was cancelled"') Closes: #512760 (Error reporting: empty document feeder not reported) Closes: #515605 (gscan2pdf: repeating save-dialog when saving as pnm) Closes: #517913 (gscan2pdf: Tools -> Gimp broken) New Depends: libset-intspan-perl, libforks-perl - New upstream release. Closes: #500547 (fails to save PDF files) Closes: #497629 (Rotation of pages does work on manual double sided scanning) Closes: #497630 (Selection of all odd pages or all even pages) Closes: #504543 (gscan2pdf: Resolution strangeness) Closes: #504546 (gscan2pdf: Resolution not sent to gimp) Closes: #507032 (improper window split between page list and preview pane) New Depends: libsane-perl - New upstream release. Closes: #490356 (gscan2pdf: It is impossible to save current session) Closes: #486115 (PDF files from gscan2pdf are huge) Closes: #493837 (gscan2pdf: should depend on sane-utils, not libsane) Closes: #494074 (Select All Text; Save all OCRed text) New Depends: libarchive-tar-perl - New upstream release. Now Depends: libconfig-general-perl (>= 2.40) to avoid heredoc bug Closes: #480947 (gscan2pdf: Defaults for pages are weird now) Closes: #486553 (gscan2pdf: unable to save as DjVu) Closes: #486680 (gscan2pdf: bizarre DjVu text zones) Closes: #485641 (gscan2pdf: No longer saves resolution in TIFF files) Closes: #484641 (gscan2pdf: prefix option for scanimage command) - Bumped Standards-Version - New upstream release. New Depends: libgtk2-imageview-perl - Updated Homepage and Vcs* sections - Bumped compat 4->5 - New upstream release. Closes: #463708 (gscan2pdf: Error when saving as PNG) Closes: #462171 (importing DjVu files fails, hogs memory) - New upstream release. Closes: #461859 (better selected/current/all heuristic) Closes: #461076 (importing PDFs causes /tmp/ overflow) - New upstream release. Closes: #449421 (Recognise warm-up message from gt68xx driver) Closes: #457377 (Can't save files with spaces in names) Closes: #457376 (gscan2pdf: Some paper sizes not available) Closes: #457249 (gscan2pdf: Tries to set threshold option for color scans) Closes: #457375 (gscan2pdf: Nondeterministic duplex scanning) Closes: #461058 (does not ask when quitting without saving the PDF) - Updated rules to dh-make-perl 0.35 - Bumped Standards-Version - + watch file - New upstream release. Closes: #440902 (window placement of scan dialog) - New upstream release. - New upstream release. Closes: #433497, #426525, #440204. - Thanks to Jeffrey Ratcliffe for contributing to this Debian release. - Added Jeffrey Ratcliffe to Uploaders. - New upstream release. - New upstream release. - Initial upload to Debian. Closes: #420953. - Added support for negative ranges on sliders. [516c47fb2f00] - Added support for brightness slider. Needed for Visioneer Strobe XP 450 scanners. [516c47fb2f00] - Added scanners/xp450 [b68d6a627700] - Add .tif extension when saving TIFF and DjVu files, to match PDF code. Fix up PDF saving extension regexp. [a0354eeeb4bf, 06425ce40520] gscan2pdf-1.2.3/stock-rotate-270.svg0000644000175000017500000001600512053230657015445 0ustar jeffjeff image/svg+xml gscan2pdf-1.2.3/stock-rotate-180.svg0000644000175000017500000001571412053230657015453 0ustar jeffjeff image/svg+xml gscan2pdf-1.2.3/debian/0000755000175000017500000000000012271546566013232 5ustar jeffjeffgscan2pdf-1.2.3/debian/watch0000644000175000017500000000007712053230657014254 0ustar jeffjeffversion=3 http://sf.net/gscan2pdf/gscan2pdf-([\d\.]*)\.tar\.gz gscan2pdf-1.2.3/debian/copyright0000644000175000017500000000060512270574026015155 0ustar jeffjeffThis is the debian package for the gscan2pdf module. It was downloaded from http://gscan2pdf.sourceforge.net/ This program is distributed under the terms of the GPL v3. # Copyright (c) 2006--2014 by Jeffrey Ratcliffe (jjr at debian dot org) # This script is released under the GPL license. The full text of the GPL is available on Debian systems in /usr/share/common-licenses/GPL-3 gscan2pdf-1.2.3/debian/control0000644000175000017500000000334612270574026014632 0ustar jeffjeffSource: gscan2pdf Section: utils Priority: optional Build-Depends: debhelper (>= 7.0.50~) Build-Depends-Indep: perl (>= 5.8.0-7), gettext, libtest-pod-perl Maintainer: Jeffrey Ratcliffe Standards-Version: 3.9.4 Vcs-git: git://gscan2pdf.git.sourceforge.net/gitroot/gscan2pdf Vcs-Browser: http://gscan2pdf.git.sourceforge.net/git/gitweb.cgi?p=gscan2pdf/gscan2pdf;a=summary Homepage: http://gscan2pdf.sourceforge.net/ Package: gscan2pdf Architecture: all Depends: libgtk2-imageview-perl, libgtk2-ex-simple-list-perl, libsane-perl (>= 0.05~0), liblocale-gettext-perl (>= 1.05), sane-utils (>= 1.0.17), libtiff-tools, libpdf-api2-perl, libconfig-general-perl (>= 2.40), perlmagick, imagemagick, librsvg2-common, libset-intspan-perl (>= 1.10), liblist-moreutils-perl, libhtml-parser-perl, libgoo-canvas-perl, libproc-processtable-perl, libreadonly-perl, liblog-log4perl-perl, libtry-tiny-perl, ${misc:Depends} Recommends: libgtk2-ex-podviewer-perl, sane, xdg-utils, djvulibre-bin, unpaper, tesseract-ocr | gocr | cuneiform Description: GUI to produce PDFs or DjVus from scanned documents Only two clicks are required to scan several pages and then save all or a selection as a PDF or DjVu file, including metadata if required. . gscan2pdf can control regular or sheet-fed (ADF) scanners with SANE via libsane-perl, scanimage or scanadf, and can scan multiple pages at once. It presents a thumbnail view of scanned pages, and permits simple operations such as cropping, rotating and deleting pages. . OCR can be used to recognise text in the scans, and the output embedded in the PDF or DjVu. . PDF conversion is done by PDF::API2. . The resulting document may be saved as a PDF, DjVu, multipage TIFF file, or single page image file. gscan2pdf-1.2.3/debian/rules0000755000175000017500000000016312053230657014277 0ustar jeffjeff#!/usr/bin/make -f %: dh $@ override_dh_installchangelogs: dh_installchangelogs History override_dh_auto_test: gscan2pdf-1.2.3/debian/source/0000755000175000017500000000000012271546566014532 5ustar jeffjeffgscan2pdf-1.2.3/debian/source/format0000644000175000017500000000000412053230657015724 0ustar jeffjeff1.0 gscan2pdf-1.2.3/debian/changelog0000644000175000017500000003041412271546461015100 0ustar jeffjeffgscan2pdf (1.2.3) unstable; urgency=low * New upstream release -- Jeffrey Ratcliffe Mon, 27 Jan 2014 22:18:41 +0100 gscan2pdf (1.2.2) unstable; urgency=low * New upstream release * Added depends: liblist-moreutils-perl -- Jeffrey Ratcliffe Mon, 13 Jan 2014 21:53:51 +0100 gscan2pdf (1.2.1) unstable; urgency=low * New upstream release Closes: #734854 (gscan2pdf wrong resolution) -- Jeffrey Ratcliffe Sun, 12 Jan 2014 00:27:37 +0100 gscan2pdf (1.2.0) unstable; urgency=low * New upstream release Closes: #701581 (Thunderbird detection (for send email) does not work reliably on XFCE) Closes: #729589 (Can not scan using a Canon LiDE 210 with version 1.1.3-1) Closes: #717479 (Background-scanning for devices and options) -- Jeffrey Ratcliffe Sat, 23 Nov 2013 23:07:51 +0100 gscan2pdf (1.1.3) unstable; urgency=low * New upstream release -- Jeffrey Ratcliffe Mon, 25 Feb 2013 11:17:12 +0100 gscan2pdf (1.1.2) unstable; urgency=low * New upstream release -- Jeffrey Ratcliffe Sun, 10 Feb 2013 12:24:24 +0100 gscan2pdf (1.1.1) unstable; urgency=low * New upstream release -- Jeffrey Ratcliffe Sat, 02 Feb 2013 10:32:51 +0100 gscan2pdf (1.1.0) unstable; urgency=low * New upstream release Closes: #682818 (Presets aren't working) * Added depends: libtry-tiny-perl -- Jeffrey Ratcliffe Sun, 18 Nov 2012 20:54:51 +0100 gscan2pdf (1.0.6) unstable; urgency=low * New upstream release -- Jeffrey Ratcliffe Fri, 20 Jul 2012 22:26:19 +0200 gscan2pdf (1.0.5) unstable; urgency=low * New upstream release Closes: #670640 (Can't call method get_cmdline) -- Jeffrey Ratcliffe Sun, 15 Jul 2012 12:18:16 +0200 gscan2pdf (1.0.4-4) unstable; urgency=low * Recommend tesseract OR gocr OR cuneiform, rather than AND Closes: #682100 gscan2pdf Recommends cuneiform which is in non-free -- Jeffrey Ratcliffe Thu, 19 Jul 2012 22:16:51 +0200 gscan2pdf (1.0.4-3) unstable; urgency=low * Fix updating widgets in scanimage dialog Closes: #678911 (Device-dependent options disappear after selecting Lineart mode) * Fixed warning in lib/Gscan2pdf/Scanner/Options.pm -- Jeffrey Ratcliffe Sat, 14 Jul 2012 23:36:40 +0200 gscan2pdf (1.0.4-2) unstable; urgency=low * Fix unpaper as part of scan process Closes: #670640 (Can't call method get_cmdline) * Deal with non-utf-8 characters in OCR output Closes: #670831 (not resilient against non utf-8 from tesseract) * Bumped standards to 3.9.3 (no changes required) -- Jeffrey Ratcliffe Sat, 23 Jun 2012 13:34:06 +0200 gscan2pdf (1.0.4-1) unstable; urgency=low * New upstream release -- Jeffrey Ratcliffe Wed, 11 Apr 2012 22:37:52 +0200 gscan2pdf (1.0.3-1) unstable; urgency=low * New upstream release * Updated Depends on libsane-perl to 0.05 -- Jeffrey Ratcliffe Sun, 08 Apr 2012 23:29:12 +0200 gscan2pdf (1.0.2-1) unstable; urgency=low * New upstream release Closes: #663584 (copy-paste of pages corrupts document) Closes: #664635 (Fails to restore session, invalid pathname) Closes: #665871 (no longer offers 'tesseract' OCR, persistently) -- Jeffrey Ratcliffe Tue, 27 Mar 2012 10:56:33 +0200 gscan2pdf (1.0.1-1) unstable; urgency=low * New upstream release Closes: #653918 (gscan2pdf doesn't save metadata anymore) Closes: #646298 (pdf-exports of ocropus texts are slow, big) Closes: #646246 (gscan2pdf ignores html-entities returned by ocropus documents) Closes: #651666 (ability to preview saved files) Closes: #645322 (No lock after recovery can result in data loss) Closes: #645323 (Imported pages have no thumbnails) * Bumped standards to 3.9.2 (no changes required) -- Jeffrey Ratcliffe Sun, 05 Feb 2012 22:13:28 +0100 gscan2pdf (1.0.0-1) unstable; urgency=low * New upstream release Closes: #622616 (gscan2pdf: error message) Closes: #622844 (gscan2pdf + libsane-perl frontend + Canon CanoScan LiDE25 results in "End of file reached") Closes: #563461 (ability to remove unreferenced temporary files) Closes: #577144 (gscan2pdf: lost option for editing/scanning simultaneously in newer versions) Closes: #602578 (Clearing the OCR text) Closes: #617886 ("Open gscan2pdf session file" icon looks too much like "Save" icon) -- Jeffrey Ratcliffe Thu, 22 Sep 2011 21:37:23 +0200 gscan2pdf (0.9.32-1) unstable; urgency=low * New upstream release Closes: #599181 (gscan2pdf: OCR doesn't support Umlauts/national characters) Closes: #608226 (pressing space causes unexpected data loss) New Depends: liblog-log4perl-perl Removed Depends: libarchive-tar-perl, as now in perl * Removed debian/patches/replace-forks-with-threads Removed Build-Depends: quilt Updated rules not to use quilt -- Jeffrey Ratcliffe Mon, 14 Feb 2011 11:30:39 +0100 gscan2pdf (0.9.31-2) unstable; urgency=low * Replace forks with threads Closes: #591404 (gscan2pdf: libforks-perl could be removed) Removed Depends: libforks-perl Added Build-Depends: quilt Updated rules to use quilt * Bumped standards to 3.9.1 (no changes required) -- Jeffrey Ratcliffe Sat, 07 Aug 2010 23:35:46 +0200 gscan2pdf (0.9.31-1) unstable; urgency=low * New upstream release Closes: #510309 (gscan2pdf: Ability to configure how GIMP is started) Closes: #576193 (gscan2pdf: OCR does not works, due to Goo::Canvas::Text programming error) Closes: #584787 (gscan2pdf: Gscan2pdf quits without saving) Closes: #585441 (gscan2pdf: "Useless use of sort in void context") New Depends: libhtml-parser-perl, libreadonly-perl Removed Depends: libxml-simple-perl New Recommends: cuneiform * Minor editing of description * Patched the clean target to fix FTBFS * Bumped standards to 3.9.0 (no changes required) -- Jeffrey Ratcliffe Wed, 14 Jul 2010 16:08:09 +0200 gscan2pdf (0.9.30-1) unstable; urgency=low * New upstream release. Closes: #461086 (embed OCR output at correct position) Closes: #510314 (gscan2pdf: Mapping File_Scan to a shortcut key) Closes: #557657 (gscan2pdf binarization option [wishlist]) New Depends: libxml-simple-perl, libgoo-canvas-perl, libproc-processtable-perl * Removed URL from description Closes: #564325 (gscan2pdf: please remove homepage from description) * Fixed VCS-URLs * Bumped standards to 3.8.3 (no changes required) * Switch to tiny dh7 rules * Added ${misc:Depends} -- Jeffrey Ratcliffe Mon, 01 Feb 2010 20:31:10 +0100 gscan2pdf (0.9.29-1) unstable; urgency=low * New upstream release. Closes: #526845 (gscan2pdf: Renaming of frontends breaks current settings) -- Jeffrey Ratcliffe Mon, 04 May 2009 21:32:43 +0200 gscan2pdf (0.9.28-1) unstable; urgency=low * New upstream release. Closes: #506150 (gscan2pdf: pdf creation failes when using LZW compression) Closes: #512758 (Error handling: 'Unknown message: "scanimage: sane_read: Operation was cancelled"') Closes: #512760 (Error reporting: empty document feeder not reported) Closes: #515605 (gscan2pdf: repeating save-dialog when saving as pnm) Closes: #517913 (gscan2pdf: Tools -> Gimp broken) New Depends: libset-intspan-perl, libforks-perl -- Jeffrey Ratcliffe Thu, 30 Apr 2009 21:51:12 +0200 gscan2pdf (0.9.27-1) unstable; urgency=low * New upstream release. Closes: #500547 (fails to save PDF files) Closes: #497629 (Rotation of pages does work on manual double sided scanning) Closes: #497630 (Selection of all odd pages or all even pages) Closes: #504543 (gscan2pdf: Resolution strangeness) Closes: #504546 (gscan2pdf: Resolution not sent to gimp) Closes: #507032 (improper window split between page list and preview pane) New Depends: libsane-perl -- Jeffrey Ratcliffe Thu, 11 Dec 2008 21:18:04 +0100 gscan2pdf (0.9.26-1) unstable; urgency=low * New upstream release. Closes: #490356 (gscan2pdf: It is impossible to save current session) Closes: #486115 (PDF files from gscan2pdf are huge) Closes: #493837 (gscan2pdf: should depend on sane-utils, not libsane) Closes: #494074 (Select All Text; Save all OCRed text) New Depends: libarchive-tar-perl -- Jeffrey Ratcliffe Sun, 24 Aug 2008 10:21:14 +0200 gscan2pdf (0.9.25-1) unstable; urgency=low * New upstream release. Now Depends: libconfig-general-perl (>= 2.40) to avoid heredoc bug Closes: #480947 (gscan2pdf: Defaults for pages are weird now) Closes: #486553 (gscan2pdf: unable to save as DjVu) Closes: #486680 (gscan2pdf: bizarre DjVu text zones) Closes: #485641 (gscan2pdf: No longer saves resolution in TIFF files) Closes: #484641 (gscan2pdf: prefix option for scanimage command) * Bumped Standards-Version -- Jeffrey Ratcliffe Fri, 04 Jul 2008 22:54:16 +0200 gscan2pdf (0.9.24-1) unstable; urgency=low * New upstream release. New Depends: libgtk2-imageview-perl * Updated Homepage and Vcs* sections * Bumped compat 4->5 -- Jeffrey Ratcliffe Sun, 11 May 2008 15:23:17 +0200 gscan2pdf (0.9.23-1) unstable; urgency=low * New upstream release. Closes: #463708 (gscan2pdf: Error when saving as PNG) Closes: #462171 (importing DjVu files fails, hogs memory) -- Jeffrey Ratcliffe Fri, 14 Mar 2008 17:55:03 +0100 gscan2pdf (0.9.21-1) unstable; urgency=low * New upstream release. Closes: #461859 (better selected/current/all heuristic) Closes: #461076 (importing PDFs causes /tmp/ overflow) -- Jeffrey Ratcliffe Fri, 01 Feb 2008 21:01:10 +0100 gscan2pdf (0.9.20-1) unstable; urgency=low * New upstream release. Closes: #449421 (Recognise warm-up message from gt68xx driver) Closes: #457377 (Can't save files with spaces in names) Closes: #457376 (gscan2pdf: Some paper sizes not available) Closes: #457249 (gscan2pdf: Tries to set threshold option for color scans) Closes: #457375 (gscan2pdf: Nondeterministic duplex scanning) Closes: #461058 (does not ask when quitting without saving the PDF) * Updated rules to dh-make-perl 0.35 * Bumped Standards-Version * + watch file -- Jeffrey Ratcliffe Fri, 18 Jan 2008 23:58:58 +0100 gscan2pdf (0.9.19-1) unstable; urgency=low * New upstream release. Closes: #440902 (window placement of scan dialog) -- Jeffrey Ratcliffe Mon, 19 Nov 2007 19:58:59 +0100 gscan2pdf (0.9.17-1) unstable; urgency=low * New upstream release. -- Jeffrey Ratcliffe Tue, 02 Oct 2007 20:02:22 +0200 gscan2pdf (0.9.16-1) unstable; urgency=low * New upstream release. Closes: #433497, #426525, #440204. * Thanks to Jeffrey Ratcliffe for contributing to this Debian release. * Added Jeffrey Ratcliffe to Uploaders. -- John Goerzen Thu, 06 Sep 2007 08:45:00 -0500 gscan2pdf (0.9.10-1) unstable; urgency=low * New upstream release. -- John Goerzen Wed, 06 Jun 2007 10:08:53 -0500 gscan2pdf (0.9.9-1) unstable; urgency=low * New upstream release. -- John Goerzen Fri, 01 Jun 2007 04:55:12 -0500 gscan2pdf (0.9.7-1) unstable; urgency=low * Initial upload to Debian. Closes: #420953. * Added support for negative ranges on sliders. [516c47fb2f00] * Added support for brightness slider. Needed for Visioneer Strobe XP 450 scanners. [516c47fb2f00] * Added scanners/xp450 [b68d6a627700] * Add .tif extension when saving TIFF and DjVu files, to match PDF code. Fix up PDF saving extension regexp. [a0354eeeb4bf, 06425ce40520] -- John Goerzen Wed, 25 Apr 2007 09:31:38 -0500 gscan2pdf-1.2.3/debian/compat0000644000175000017500000000000212053230657014415 0ustar jeffjeff5 gscan2pdf-1.2.3/Makefile.PL0000644000175000017500000001573612270574026013765 0ustar jeffjeffuse ExtUtils::MakeMaker; # See lib/ExtUtils/MakeMaker.pm for details of how to influence # the contents of the Makefile that is written. my $program = "gscan2pdf"; my $year = (localtime)[5] + 1900; my $author = "Jeffrey Ratcliffe"; my $email = 'ra28145@users.sourceforge.net'; # Slurp the program source and dig out the version number. my $text = do { local ( @ARGV, $/ ) = "bin/$program"; <> }; my $version = $1 if ( $text =~ /^my \$VERSION\s*=\s*'(.*)'/m ); my @argv = @ARGV; my $prefixdir; my $sharedir; my $shareinstdir; @ARGV = (); foreach (@argv) { if (m!PREFIX=(.+)!i) { $prefixdir = $1; push @ARGV, $_; } elsif (m!SHAREINSTDIR=(.+)!i) { $shareinstdir = $1; } elsif (m!SHAREDIR=(.+)!i) { $sharedir = $1; } else { push @ARGV, $_; } } $prefixdir = "/usr" unless ($prefixdir); $sharedir = $prefixdir . "/share" unless ($sharedir); $localedir = $sharedir . "/locale" unless ($localedir); WriteMakefile( NAME => $program, VERSION => $version, EXE_FILES => [ "bin/$program", 'bin/scanimage-perl', 'bin/scanadf-perl' ], PREREQ_PM => { Glib => 1.210, Gtk2 => 1.090, Sane => 0.05, Gtk2::Ex::Simple::List => 0, Gtk2::ImageView => 0, Image::Magick => 0, Locale::gettext => 1.05, Config::General => 2.40, PDF::API2 => 0, Set::IntSpan => 1.10, Goo::Canvas => 0, Readonly => 0, Log::Log4perl => 0, Try::Tiny => 0, List::MoreUtils => 0, }, clean => { FILES => '$(SOURCE_TIDY)' }, ( $] >= 5.005 ? ## Add these new keywords supported since 5.005 ( ABSTRACT_FROM => "bin/$program", # retrieve abstract from module AUTHOR => "$author <$email>" ) : () ), ); sub MY::macro { my $self = shift; my $string = $self->MM::macro(); $string .= "SHAREDIR=$sharedir\n"; $string .= "LOCALEDIR=$localedir\n"; $string .= "AUTHOR=$author\n"; $string .= "EMAIL=$email\n"; $string .= "YEAR=$year\n"; $string .= "SITEPREFIX=$prefixdir\n"; $string .= "INSTALLMAN1DIR=$sharedir/man/man1\n"; $string .= "INSTALLSITEMAN1DIR=$sharedir/man/man1\n"; $string .= "INSTALLMAN3DIR=$sharedir/man/man3\n"; $string .= "INSTALLSITEMAN3DIR=$sharedir/man/man3\n"; $string .= "MAN1EXT=1p\n"; return $string; } sub MY::install { my $self = shift; my $string = $self->MM::install(); $string =~ s/doc_install/doc_install locale_install icon_install/; return $string; } sub MY::postamble { my $postamble = <<'END'; SHELL = bash PO = $(wildcard po/*.po) DEB_BUILD_ROOT = /var/tmp/$(NAME)-$(VERSION) MANIFEST = $(shell cat MANIFEST) SOURCE = $(filter bin/% %.pm %.PL %.pl %.t,$(MANIFEST)) SOURCE_TIDY = $(foreach file,$(SOURCE),$(file).tdy) PO = $(filter %.po,$(MANIFEST)) LANGUAGES = $(patsubst po/$(NAME)-%.po,%,$(PO)) MO = $(foreach lang,$(LANGUAGES),$(DESTDIR)$(LOCALEDIR)/$(lang)/LC_MESSAGES/$(NAME).mo) rpmdist : $(NAME).spec $(NAME).Suse.spec tardist $(MKPATH) rpm rpm/SPECS rpm/SOURCES rpm/BUILD rpm/RPMS rpm/SRPMS \ rpm/RPMS/noarch || /bin/true $(CP) $(NAME).spec $(NAME).Suse.spec rpm/SPECS/ $(CP) $(NAME)-$(VERSION).tar.gz rpm/SOURCES/$(NAME)-$(VERSION).tar.gz ( cd rpm/SPECS; \ rpmbuild --nodeps --define='_topdir $(PWD)/rpm' -ba $(NAME).spec; \ rpmbuild --nodeps --define='_topdir $(PWD)/rpm' --define 'dist .Suse' -ba $(NAME).Suse.spec ) locale_install : $(MO) $(DESTDIR)$(LOCALEDIR)/%/LC_MESSAGES/$(NAME).mo : po/$(NAME)-%.po $(MKPATH) $(@D) msgfmt -c $< -o $@ $(CHMOD) 755 $(@D) $(DESTDIR)$(SHAREDIR)/$(NAME) : $(MKPATH) $(DESTDIR)$(SHAREDIR)/$(NAME) icon_install : $(DESTDIR)$(SHAREDIR)/$(NAME) $(MKPATH) $(DESTDIR)$(SHAREDIR)/applications $(MKPATH) $(DESTDIR)$(SHAREDIR)/pixmaps $(CP) $(NAME).desktop $(DESTDIR)$(SHAREDIR)/applications $(CP) $(NAME).svg stock-rotate-90.svg stock-rotate-180.svg \ stock-rotate-270.svg scanner.svg pdf.svg \ stock-selection-all-16.png $(DESTDIR)$(SHAREDIR)/$(NAME) $(CP) $(NAME).svg $(DESTDIR)$(SHAREDIR)/pixmaps html : htdocs/index.html pot : po/$(NAME).pot po.tar.gz : po/$(NAME).pot $(PO) cd po; tar cfvz po.tar.gz $(NAME).pot *.po mv po/po.tar.gz . $(NAME).spec : bin/$(NAME) debian/changelog $(CP) $(NAME).spec $(NAME).spec_tmp sed 's/^Version:.*/Version: $(VERSION)/' < $(NAME).spec_tmp | \ sed '/^%changelog/q' > $(NAME).spec rm $(NAME).spec_tmp echo "*" `date +'%a %b %d %Y'` "$(AUTHOR) <$(EMAIL)>" >> $(NAME).spec sed 's/^$(NAME).*//' < debian/changelog | \ sed 's/^ --.*//' | sed 's/^ \*/ -/' | sed '/^$$/d' >> $(NAME).spec $(NAME).Suse.spec : bin/$(NAME) debian/changelog $(CP) $(NAME).Suse.spec $(NAME).spec_tmp sed 's/^Version:.*/Version: $(VERSION)/' < $(NAME).spec_tmp | \ sed '/^%changelog/q' > $(NAME).Suse.spec rm $(NAME).spec_tmp echo "*" `date +'%a %b %d %Y'` "$(AUTHOR) <$(EMAIL)>" >> $(NAME).Suse.spec sed 's/^$(NAME).*//' < debian/changelog | \ sed 's/^ --.*//' | sed 's/^ \*/ -/' | sed '/^$$/d' >> $(NAME).Suse.spec ppa : tardist $(RM_RF) /tmp/$(NAME) $(MKPATH) /tmp/$(NAME) cp $(NAME)-$(VERSION).tar.gz /tmp/$(NAME)/$(NAME)_$(VERSION).orig.tar.gz cd /tmp/$(NAME) && tar xvfz $(NAME)_$(VERSION).orig.tar.gz cd /tmp/$(NAME)/$(NAME)-$(VERSION) && debuild -S -sa dput $(NAME)-ppa /tmp/$(NAME)/$(NAME)_$(VERSION)*_source.changes debdist : tardist $(RM_RF) /tmp/$(NAME) $(MKPATH) /tmp/$(NAME) cp $(NAME)-$(VERSION).tar.gz /tmp/$(NAME)/$(NAME)_$(VERSION).orig.tar.gz cd /tmp/$(NAME) && tar xvfz $(NAME)_$(VERSION).orig.tar.gz cd /tmp/$(NAME)/$(NAME)-$(VERSION) && debuild $(CP) /tmp/$(NAME)/$(NAME)_$(VERSION)_all.deb \ /tmp/$(NAME)/$(NAME)_$(VERSION).diff.gz \ /tmp/$(NAME)/$(NAME)_$(VERSION).dsc \ /tmp/$(NAME)/$(NAME)_$(VERSION).orig.tar.gz . htdocs/index.html : bin/$(NAME) [ -d htdocs ] || mkdir htdocs pod2html --noindex --title=$(NAME)-$(VERSION) bin/$(NAME) > htdocs/index.html remote-html : htdocs/index.html scp htdocs/index.html ra28145,$(NAME)@web.sf.net:/home/groups/g/gs/$(NAME)/htdocs/ file_releases : scp $(NAME)-$(VERSION).tar.gz \ rpm/RPMS/noarch/$(NAME)-$(VERSION)* \ rpm/SRPMS/$(NAME)-$(VERSION)* \ /tmp/$(NAME)/$(NAME)_$(VERSION)*.deb \ ra28145,$(NAME)@frs.sf.net:/home/frs/project/g/gs/$(NAME)/$(NAME)/$(VERSION)/ po/$(NAME).pot : $(SOURCE) xgettext -L perl --keyword=get --from-code=UTF-8 -o - -f MANIFEST | \ sed 's/SOME DESCRIPTIVE TITLE/messages.pot for $(NAME)/' | \ sed 's/PACKAGE VERSION/$(NAME)-$(VERSION)/' | \ sed "s/YEAR THE PACKAGE'S COPYRIGHT HOLDER/$(YEAR) $(AUTHOR)/" | \ sed 's/PACKAGE/$(NAME)/' | \ sed 's/FIRST AUTHOR , YEAR/$(AUTHOR) <$(EMAIL)>, $(YEAR)/' | \ sed 's/Report-Msgid-Bugs-To: /Report-Msgid-Bugs-To: $(EMAIL)/' | \ grep -v fuzzy > $@ MANIFEST : $(SOURCE) git ls-files | egrep -v '^\.(git|be)' > $@ tidy : MANIFEST $(SOURCE_TIDY) %.tdy : % perltidy -i=1 $* && if ! diff -q $@ $* > /dev/null; then cp $@ $*; fi END $postamble; } gscan2pdf-1.2.3/History0000644000175000017500000013525212271546252013374 0ustar jeffjeff1.2.3 (27.01.2014): * Deal with crashed sessions with no session file * Fixed bug setting TMPDIR in preferences * Added menu item 'Open crashed session' * Don't process empty lists of pages Closes bug #165 "all or selected? a surprise that can bite like snake" 1.2.2 (13.01.2014): * Fixed paper editor widget * Fixed position of paper size widget * Hide geometry widgets at startup if paper selected 1.2.1 (12.01.2014): * Fixed opening saved sessions * Fixed storing resolution of scanned images Closes Debian bug #734854 (gscan2pdf wrong resolution) 1.2.0 (23.11.2013): * Don't lose extension if user-defined tool converts pnm to pbm, ppm or pgm. Closes Launchpad bug 889549 (again) (gscan2pdf gimp integration creates page size error) * Allow thread to import different number of pages than requested. Closes LP: #1163739 (Import of pdf no longer working) * Take the resolution directly from the scanner when scanning rather than assuming that the system value is up-to-date. Closes bug 134 (reduces PDF to half size of scan) * Fixed UTF8 handling with gocr Thanks to patch from Pablo Saratxaga * Fixed import of multipage TIFFs Closes Launchpad bug 1181019 (importing existing multipage tif file loads only the first one) * Actually change the device when the device combobox is changed. Closes debian bug #729589 (Can not scan using a Canon LiDE 210 with version 1.1.3-1) * Show/hide options in CLI frontends via Edit/Preferences * Fix Thunderbird detection from XFCE. Closes debian bug #701581 (Thunderbird detection (for send email) does not work reliably on XFCE) * Fixed bug opening a session file from multiple sessions * + option in Edit/Preferences to automatically open the scan dialog in the background on program start. Closes debian bug #717479 (Background-scanning for devices and options) * Update to Brazilian Portuguese translation (thanks to Rodrigo Zimmermann) * Update to Danish translation (thanks to peteradleralberti) * Update to French translation (thanks to mavosaure) * Update to Polish translation (thanks to Piotr Strębski) * Update to Russian translation (thanks to Aleksey Kabanov) * Update to Slovak translation (thanks to zdpo) * Update to Slovenian translation (thanks to Andrej Znidarsic) * Update to Turkish translation (thanks to Utku BERBEROĞLU) * Update to Ukranian translation (thanks to Сергій Дубик) 1.1.3 (25.02.2013): * Added missing arguments to 'changed-progress' signal emission. * Fix bug preventing import after error. Closes bug 155 (can't enter correct file name after incorrect file name) * Fixed bug introduced in v1.1.2 causing only one page to be scanned when all requested * Fixed bug introduced in v1.1.2 causing two pages to be scanned when only one requested 1.1.2 (10.02.2013): * Add scrollbar to prevent long font names making save dialog too wide Closes Launchpad bug 1113208 (The save dialogue is way to big for my screen and cannot resize) * Don't need to convert image to .tiff for tesseract v3 Thanks to Leon Fisk for the patch * Fix parsing of hocr output from tesseract v3.02.01 Thanks to Leon Fisk for the patch * Correct tests for presence of cuneiform & tesseract installations 1.1.1 (01.02.2013): * + support for tesseract 3.02.01 * Fixed tesseract 3.00 support * Fixed bug sending PDF as email Closes bug 152 (No eMail gscan2pdf 1.1 Suse 12.2) * Don't need to convert image to .bmp for cuneiform 1.1.0 * Ensure the image resolution, and therefore the page size, is either taken from the file or inferred from the page dimensions. Closes Launchpad bug 889549 (gscan2pdf gimp integration creates page size error) * Update to Slovak translation (thanks to Prescott_SK) 1.1.0 (18.11.2012): * Fix applying default settings to widgets in scanimage dialog Closes debian bug #682818 (Presets aren't working) * Fixed bug editing OCR output. * Add profiles to libsane-perl frontend * Fixed switching to last directory on open/save * Fixed extracting image resolution in non-English locales Closes bug 3572463 (After update suse 12.2 pdf blank page) * Much refactorisation of code to allow more regression tests and reduce duplication * Fixed bug importing multipage PDF Closes bug 3574898 (Always imports all pages of a PDF) * Update to German translation (thanks to Jari) * Update to Greek translation (thanks to Stavros Kakaliantis) * Update to Gujarati translation (thanks to Vishal Goswami) * Update to Occitan (post 1500) translation (thanks to Cédric VALMARY) * Update to Turkish translation (thanks to Utku BERBEROĞLU) 1.0.6 (20.07.2012): * Fixed cropping when selector tool not active or page not selected Closes bug 3544597 (crop tool not working) * Fixed renumber dialog Closes bug 3545151 (renumber not working in version 1.0.5) * Fixed keyboard entry in dialog boxes Closes Launchpad bug 1026944 (Unable to type text in Save dialog box) * + support for unpaper > 0.3 Closes bug 3542615 (Incompatibility with recent releases of unpaper) * Repage after crop Closes bug 3526661 (cropping page twice: coordinates off) 1.0.5 (15.07.2012): * Allow new processes to be started after pressing cancel button * Fixed paste menu Closes bug 3517797 (Copy and paste no longer work) * Pad scans which have less data than their headers announce with blanks Closes bug 3480247 (No image from HP6500A ADF) * Fix unpaper when used as part of scan process Closes Debian bug #670640 (Can't call method get_cmdline) * Sort OCR languages in ComboBoxes * Deal with non-UTF-8 output from OCR. Closes Debian bug #670831 (gscan2pdf is not resilient against non utf-8 from tesseract) * Fix Email to PDF with kmail Closes bug 3487790 (suse 12.1 emails no pdf) * Fix updating widgets in scanimage dialog Closes debian bug #678911 (Device-dependent options disappear after selecting Lineart mode) * + Gujarati translation (thanks to Vishal Goswami) * Update to Brazilian Portuguese translation (thanks to Arthur Rodrigues) * Update to Simplified Chinese translation (thanks to Wang Dianjin) * Update to Czech translation (thanks to Zbyněk Schwarz) * Update to German translation (thanks to Dennis Baudys) * Update to Hungarian translation (thanks to Herczeg Zsolt) * Update to Japanese translation (thanks to Shushi Kurose) * Update to Polish translation (thanks to Wojciech Górnaś) * Update to Spanish translation (thanks to Adolfo Jayme Barrientos) * Update to Swedish translation (thanks to Tobias Holm) 1.0.4 (11.04.2012): * Fixed Clean Up (unpaper) dialog 1.0.3 (08.04.2012): * Refactor switch usage to satisfy Perl 5.10. Closes bug 3514239 (gscan2pdf won't load) * Support page-width and page-height options with libsane-perl frontend Closes bug 3441159 (Page size cannot be changed) Closes bug 3052205 (Cannot set paper size) * Update to Russian translation (thanks to Oleg Koptev) 1.0.2 (27.03.2012): * Fixed ocropus support Closes bug 3487120 (Ocropus no longer in OCR selection) * Reference core font in PDF only once * Add more language codes for Tesseract and Cuneiform * + Tesseract 3.02 support Closes Debian bug #665871 * Fixed Perl exiting when restoring a crashed session * Don't add corrupted page if error is thrown copying the image Closes Debian bug #663584 * Fix restore crashed session Closes Debian bug #664635 * Update to German translation (thanks to Daniel Dietrich) * Update to Russian translation (thanks to Artem Karimov) * Update to Spanish translation (thanks to Fitoschido) * Update to Turkish translation (thanks to Utku BERBEROĞLU) * Update to Ukranian translation (thanks to Сергій Дубик) 1.0.1 (05.02.2012): * Fixed metadata in PDF Closes Debian bug #653918 Thanks to Sebastian Schmidt for the patch * Embed TTF in PDF only once Closes Debian bug #646298 Thanks to noreply@example.com for the patch * Decode HTML entities returned by Ocropus Closes Debian bug #646246 Thanks to noreply@example.com for the patch * Fixed saving PS * Optionally start viewer after saving Closes Debian bug #651666 * Fixed email as PDF. Closes bug 3459124 * Fixed error message importing DjVu with spaces in filename * Support multiple sessions Closes Debian bug #645322 * Optionally cycle SANE handle after scan * Fix import of PDFs with greyscale and colour images Closes Debian bugs #645323 #563442 * Fixed opening session files * Update to Brazilian Portuguese translation (thanks to Fitoschido) * Update to Catalan translation (thanks to Norbux) * Update to Dutch translation (thanks to Tico) * Update to Greek translation (thanks to jimpap) * Update to Hungarian translation (thanks to Szenográdi Norbert Péter) * Update to Spanish translation (thanks to Fitoschido) * Update to Turkish translation (thanks to Serkan Guldal) 1.0.0 (16.09.2011): * Deal with version information from PDF::API2 * Suppressed "End of file reached" message. Closes Debian bug #622844 Thanks to Sebastian Schmidt for the patch * Switch to OO interface for File::Temp, thus automatically clearing up unneeded temporary files. Closes Debian bug #563461 * Removed all blocking progress dialogs Closes bug 2670868, Debian bug #577144 * + Spinbuttons to crop dialog * + Edit/Select/No OCR * + Edit/Clear OCR Closes Debian bug #602578 * Combined Import and Open dialogs Closes Debian bug #617885 #617886 * + Tesseract 3.01 support. Closes bug 3246957, feature request 3081360 * Fix embedding of UTF-8 OCR output * Update to Catalan translation (thanks to Norbux) * Update to Dutch translation (thanks to Tico) * Update to Hungarian translation (thanks to Gábor Sepsi) * Update to Italian translation (thanks to Milo Casagrande) * Update to Polish translation (thanks to pp/bs) * Update to Russian translation (thanks to Eugene Marshal) * Update to Spanish translation (thanks to R120X) * Update to Turkish translation (thanks to Utku BERBEROĞLU) * Update to Ukranian translation (thanks to Сергій Дубик) 0.9.32 (14.02.2011): * Use Log::Log4perl for logging messages * + Print option. Closes bug 2108705 * Fixed ignored unpaper border-margin options * Fixed sensitivity of unpaper border-margin options on startup * Switched from forks to threads * + filters to the file selector Thanks to Jarl Stefansson for the patch * Changed DPI->PPI. * Retrieve metadata from resource file as unicode Thanks to Andy Fingerhut for the patch * Fixed bug saving postscript with multiple pages Thanks to Andy Fingerhut for the patch * Fixed bug saving postscript with spaces in filename * Fixed bug saving OCR output as text Thanks to Andy Fingerhut for the patch * Fixed bug saving to an existing write-protected file Thanks to Andy Fingerhut for the patch * Fixed bug running OCR on pages with varying sizes Thanks to Andy Fingerhut for the patch * Fixed regex for Tesseract language codes so that deu-f is recognised * Moved ocropus option tesslanguage to environment variable Closes Debian bug #599181 * Support cuneiform better by converting first to bmp if necessary Closes LP: #654771 * Use trick from Jakub Wilk to avoid hardcoding tessdata path * Deal better with errors from tesseract * Ask before clearing all pages Closes Debian bug #608226 * Don't load page if unpaper call is cancelled * Make escape button hide/kill active dialog/window * Update to Brazilian Portuguese translation (thanks to Jlio Cezar Santos Pires) * Update to Catalan translation (thanks to Norbux) * Update to Dutch translation (thanks to Tico) * Update to French translation (thanks to JeromeJ) * Update to German translation (thanks to Matthias Gutjahr) * Update to Italian translation (thanks to Luca Pedrazzi) * Update to Japanese translation (thanks to YAMAKAGE Hideo) * Update to Polish translation (thanks to Piotr Strębski) * Update to Russian translation (thanks to Oleg Koptev) * Update to Spanish translation (thanks to Fitoschido) * Update to Ukranian translation (thanks to Сергій Дубик) 0.9.31 (19.07.2010): * Don't attach PDF to email until it has been created Closes 2941906 (Emailing PDF produces 0-byte attachment) * + user-defined shell commands Closes Debian bug #510309 (gscan2pdf: Ability to configure how GIMP is started) * Update UI after restore Closes 2952845 (Menu and toolbar items greyed out after restore) * Fixed bug in scanimage-perl with --batch option Closes 2951789 (uninitialized value $batch_count scanimage-perl line 1199) * Do not allow multiple instances in order to prevent data loss Closes 2962298 (gscan2pdf instances collide and delete hours of work) * + Cuneiform support Closes 2927831 (Add cuneiforms to supported OCR engines) * Pad filenames of saved images with zeros to fix subsequent sorting issues Closes 2958788 (Add leading zeros to export image filenames) Thanks to Frederik Elwert for the patch * Fix embedding of OCR output from tesseract and GOCR (broken in v0.9.30) * Fixed ocropus use without debug option. Thanks to Klaus Ethgen for the patch. * Fixed UTF8 encoding in OCR output. Thanks to Klaus Ethgen for the patch. * Save default filename between sessions * Automatically hide unpaper and OCR dialogs when finished * Block delete event if main window is closed and quit not OK. Closes 3015248 (Gscan2pdf quits without saving) Closes LP 588974 (Program quits without saving) Closes Debian bug #584787 (gscan2pdf: Gscan2pdf quits without saving) * Wait until scan exists before trying to import. Closes 2991751 (gscan2pdf randomly aborting multiple-pages scanning) * Correct position of OCR output when downsampling. Thanks to Matthijs Kooijman for the patch * Suppress warning "Useless use of sort in void context" Closes Debian bug #585441 (gscan2pdf: "Useless use of sort in void context") * Offer to reload device-dependent options cache if empty Closes LP 602560 (device-dependent options cache inobvious) * Start of Occitan (post 1500) translation (thanks to Cédric VALMARY) * Update to Catalan translation (thanks to Norbux) * Update to Simplified Chinese translation (thanks to Eleanor Chen) * Update to Danish translation (thanks to Ask Hjorth Larsen) * Update to Italian translation (thanks to suoko) * Update to Polish translation (thanks to Wojciech Górnaś) * Update to Portuguese translation (thanks to Sérgio Marques) * Update to Russian translation (thanks to Spector) * Update to Slovak translation (thanks to zdpo) * Update to Ukranian translation (thanks to Сергій Дубик) 0.9.30 (01.02.2010): * + Ocropus support * Use Goo::Canvas to place OCR output at boundary boxes supplied by Ocropus New dependency on XML::Simple to parse hocr output from Ocropus * Write OCR output to PDF or DjVu at boundary boxes supplied by Goo::Canvas Closes Debian bug #461086 (embed OCR output at correct position) No longer additionally write OCR output as PDF annotation * + g shortcut for the scan dialog, moving intial focus to the scan button Closes Debian bug #510314 (gscan2pdf: Mapping File_Scan to a shortcut key) * + Slovak to tesseract languages. Documented logic. Closes 2793056 (gscan2pdf offers for tesseract only english) * Display and store TIFF compression options when saving PS * + basic functionality to view and modify numerical array scan options in graphical format * Incorporate PDF metadata in filename Closes 2185401 (Save Dialog: option to concatenate date+title in filename) * Force bilevel image after thresholding Closes Debian bug #557657 (gscan2pdf binarization option [wishlist]) * Deactivate G3 and G4 compression for PDF, as not supported by PDF::API2 * Also look for tesseract language packages in /usr/share/tesseract, to support Fedora * Use Proc::Killfam to ensure that all subprocesses are killed with the parent * Fix broken link in documentation. Closes 2929707 (Broken link om homepage) * Note resolution with libsane-perl whilst reading or updating options Closes LP #424249 (locks when trying to save as PDF) * Fix bug cancelling scan with libsane-perl frontend * + Slovak translation (thanks to zdpo) * + Simplified Chinese translation (thanks to WangLu) * Start of Abkhaz translation * Start of Catalan translation * Update to Brazilian Portuguese translation (thanks to Andrius Gabriel da Luz) * Update to Bulgarian translation (thanks to Emil Pavlov) * Update to Czech translation (thanks to zdpo) * Update to Dutch translation (thanks to cumulus007) * Update to French translation (thanks to winniemiel05) * Update to German translation (thanks to PsychoKim) * Update to Hebrew translation (thanks to Ddorda) * Update to Italian translation (thanks to Nicola Cardinali) * Update to Korean translation (thanks to Elex) * Update to Polish translation (thanks to Piotr Strbski) * Update to Portuguese translation (thanks to Tiago Silva) * Update to Russian translation (thanks to aks-id) * Update to Slovenian translation (thanks to Simon Vidmar) * Update to Spanish translation (thanks to Yzen Hernndez) * Update to Swedish translation (thanks to Mattias Ohlsson) * Update to Ukranian translation (thanks to ) 0.9.29 (04.05.2009): * Delete frontend=scanimage.pl and frontend=scanadf.pl settings Closes Debian bug #526845 (gscan2pdf: Renaming of frontends breaks current settings) 0.9.28 (01.05.2009): * + Rescan devices. Closes 2433654 (gscan2pdf loses USB scanner connection after replugging) * Fix JPEG compression for TIFF, broken in 0.9.27, changeset 60f40d2c0cf4 * Display any errors from tiffcp * Fix TIFF compression in PDF Closes Debian bug #506150 (gscan2pdf: pdf creation failes when using LZW compression) * Rename scanimage.pl and scanadf.pl to scanimage-perl and scanadf-perl to fix lintian warnings about .pl suffices. * + Progress bar for scanadf frontend * + Renumber selected pages * + adf-mode. Closes 2533708 (Duplex ability not recognized) * Catch "sane_read: Operation was cancelled" message Closes Debian bug #512758 (Error handling: 'Unknown message: "scanimage: sane_read: Operation was cancelled"') * Print 'Document feeder out of documents' message Closes Debian bug #512760 (Error reporting: empty document feeder not reported) * Hide save window after saving PNM or DjVu Closes Debian bug #515605 (gscan2pdf: repeating save-dialog when saving as pnm) * Fix bug preventing non-PNM being passed to GIMP. Closes Debian bug #517913 (gscan2pdf: Tools -> Gimp broken) * + overscan-(top|bottom) options * Set batch-scan to yes if ADF used, or #pages is all or > 1 Closes LP #340099 (Scan all pages option doesn't stop when all pages are done) * Make sure languages combobox is hidden unless tesseract is selected for OCR Closes LP #340096 (Tesseract languages options shown when GOCR is default selected) * Make rubberband selections persist between pages Closes 2629351 (Rectangular Crop Area) * Use Test::Pod on documentation * + Select blank and dark pages. Closes 2567485 (auto detect blank pages) Thanks to Roy Shahbazian for the patch. * Fixed bug where temp dir not created after previous session killed and old temp dir deleted. Closes 2735303 (Import function fails when stale session variable set) * Fixed bug after unpaper --output-pages=2 where OCR not carried out for second page. * + Option to select whether OCR output is replaced, appended or prepended. Closes 2578995 (prepend new OCR text to old text) Thanks to Roy Shahbazian for the patch. * + Option to select pages modified since last OCR run. Closes 2579015 (auto select modified pages) Thanks to Roy Shahbazian for the patch. * Update to Brazilian Portuguese translation (thanks to Andr Gondim) * Update to Croatian translation (thanks to DarioSeparovic) * Update to Dutch translation (thanks to Jan Klopper) * Update to German translation (thanks to Manuel Rennecke) * + Hebrew translation (thanks to liorda) * Update to Italian translation (thanks to Andrea) * Update to Korean translation (thanks to You Hyun Jo) * Update to Norwegian Bokmal translation (thanks to Roger Skjerping Urstad) * Update to Russian translation (thanks to Vadim Peretokin) * Update to Slovenian translation (thanks to Robert Hrovat) * Update to Spanish translation (thanks to Szerelem) * Update to Traditional Chinese translation (thanks to Chien Cheng Wei) * Update to Ukranian translation 0.9.27 (11.12.2008): * Check whether crashed session exists before trying to open it. Closes 2099857 (Program does not start, as long as file session is missing) * Switched many dialogs to modal. Closes Debian bug #500547 (fails to save PDF files) * + scanimage.pl and scanadf.pl frontends * Parse units from --help output. Closes LP #283847 (Saving a djvu file with a resolution of 600dpi fails in gscan2pdf v0.9.26) * Corrected logic for auto-rotating manual double-sided scans. Closes Debian bug #497629 (Rotation of pages does work on manual double sided scanning) * Force -depth 8 and -r 16 for TIFF JPEG compression to prevent error messages from tiffcp * + Select (Odd|Even). Closes Debian bug #497630 (Selection of all odd pages or all even pages) * + support for the renamed pagewidth and pageheight options to page-width and page-height in SANE 1.1.0 in CVS. Closes 2217511 (determining supported paper sizes fails with fujitsu adf) * + Properties dialog to show and change resolution of image * Write images including resolution information * Guess resolution of PNMs from shape of image Closes Debian bug #504543 (gscan2pdf: Resolution strangeness) * Convert PNMs to TIFF before giving them to GIMP Closes Debian bug #504546 (gscan2pdf: Resolution not sent to gimp) * Stop thumbnail panel being resized by main window Closes Debian bug #507032 (improper window split between page list and preview pane) * Force depth if necessary when converting to pnm for unpaper Closes 2340005 (keep image depth when running unpaper) * + Croatian translation (thanks to rmare) * + Korean translation (thanks to You Hyun Jo) * Update to Brazilian Portuguese translation (thanks to Alexandre Sapata Carbonell) * Update to Bulgarian translation (thanks to Mitko K.) * Update to Dutch translation (thanks to Jan Klopper) * Update to French translation (thanks to Simon Leblanc) * Update to German translation (thanks to Manuel Rennecke) * Update to Norwegian Bokmal translation (thanks to Kenneth Langdalen) * Update to Russian translation (thanks to Alexandre Prokoudine) * Update to Swedish translation (thanks to Mattias Ohlsson) 0.9.26 (24.08.2008): * Various fixes causing TMPDIR not to work, including ~ expansion and creation of TMPDIR if necessary. * + Scan profiles. Closes 1700803 (RFE: support scan profiles) * Fixed remembering directory on import * Look for error loading config and revert to defaults if necessary * Save and restore sessions, a. to allow restore after crash b. to be able to save your work, shutdown, and go back afterwards * + Automatic PDF compression option * + Tools/GIMP Closes 1823585 (Edit in Gimp) * + Save as text. Closes Debian bug #494074 (Select All Text; Save all OCRed text) * + Ukranian translation (thanks to Serhey Kusyumoff) * Update to Dutch translation (thanks to Hans Spaans) * Update to German translation (thanks to Kim Linoh) * Update to Russian translation (thanks to Alexandre Prokoudine) * Update to Spanish translation (thanks to Yzen Hernndez) * Update to Swedish translation (thanks to ChalkyGBG) 0.9.25 (04.07.2008): * - current page selection as not intuitive for some people, and anyway not strictly necessary. Closes Debian bug #480947 (Defaults for pages are weird now) * + support for unpaper option --output-pages Closes Launchpad bug #215683 (gscan2pdf should offer an option to split a scanned page) * Check for device before caching. * + Checkbox to disable option cache Closes 1980762 (Second Start Failure) * Check {Pseudo|Direct}Class for pnm and convert to pbm in necessary for djvu Closes Debian bug #486553 (gscan2pdf: unable to save as DjVu) * Correct DjVu text zones Closes Debian bug #486680 (gscan2pdf: bizarre DjVu text zones) * Save resolution information with TIFF. Closes Debian bug #485641: (gscan2pdf: No longer saves resolution in TIFF files) * fixed unsharp mask tool * + prefix option to preferences Closes Debian bug #484641 (gscan2pdf: prefix option for scanimage command) * + Bulgarian translation (thanks to Emil Pavlov) * Update to Danish translation (thanks to Jacob Nielsen) * Update to Dutch translation (thanks to Lodder) * Update to French translation (thanks to Simon Leblanc) * Update to German translation (thanks to Kim Linoh) * Update to Italian translation (thanks to Milo Casagrande) * Update to Polish translation (thanks to Wojtek Jamrozy) * Update to Russian translation (thanks to Igor Zubarev) * Update to Spanish translation (thanks to Alejandro Rochette) 0.9.24 (07.05.2008): * + check that the file can be written before saving PDF, TIFF or PS. Closes 1915008 (crash when trying to save in non-writable directory) * use gtk+ set_do_overwrite_confirmation for save as DjVu. * detect thunderbird mail client and attach PDF appropriately. Closes LP 202709 ("Email as PDF" option does not work with Thunderbird) * deal correctly with newline character in device name * + gain option from scanners/canonFB630u * always force depth before embedding image in PDF Closes LP 204988 (gscan2pdf generates blank pages in the .pdf output) * fixed erroneous read-only error writing file * fixed threshold tool. Closes 1936561 (Threshold tool fails) * + Cache options * + crop tool * + adf_mode option from Epson GT-2500 * + --device option * + negate tool * fixed bug preventing scanning when no device-dependent options reported * + Norwegian Bokmal translation (thanks to Mikal Krogstad) * + Persian translation (thanks to Artin) * + Hungarian translation (thanks to Szenogrdi Norbert Pter) * + Japanese translation (thanks to John M) * Update to Czech translation (thanks to Petr Jelínek) * Update to Dutch translation (thanks to Jan Klopper) * Update to French translation (thanks to Simon Leblanc) * Update to German translation (thanks to Manuel Rennecke) * Update to Italian translation (thanks to Alberto) * Update to Slovenian translation (thanks to Robert Hrovat) * Update to Spanish translation (thanks to starmaker) 0.9.23 (05.03.2008): * fixed bug running unpaper * hide progress bar when asking for page range to import 0.9.22 (04.03.2008): * fixed incorrect error message when saving image Closes Debian bug #463708 (gscan2pdf: Error when saving as PNG) * + Edit/Preferences to choose TMPDIR * moved Frontends, Save options and Restore window settings to Edit/Preferences * improve error messages saving PDF * + unsharp mask tool * merged Save PDF, Save Image & Save DjVu dialogs * request page range when importing a DjVu with more than one page, and extract the pages singly Closes Debian bug #462171 (importing DjVu files fails, hogs memory) * replace some unpaper references with 'Clean up' Closes 1889896 ('unpaper' should be called something more clear) * prepopulate PDF filename with title Closes 1889901 (Use PDF 'Title' as the default file name in the save dialog) * change max number of pages to scan to 999 Closes 1803801 (page # in document scan dialog show only number till 99) * use gtk+ set_do_overwrite_confirmation * prevent page range widget switching to all when deleting a page * + progress bar whilst rotating Closes 1895947 (Show progress bar when rotating pages) * + rotate options to scan dialog Closes 1889674 (Patch for Duplex Scanning) * fixed about dialog Closes 1900576 (About dialog does not function on FC8) * use tiffcp rather than tiffsplit to import TIFFs Closes Debian bug #462171 (importing DjVu files fails, hogs memory) * + Initial Slovenian translation (thanks to Robert Hrovat) * Update to Brazilian Portuguese translation (thanks to Manuel Rennecke) * Update to Czech translation (thanks to Petr Jelínek) * Update to Danish translation (thanks to Jacob Nielsen) * Update to Dutch translation (thanks to saabaero) * Update to French translation (thanks to Manuel Rennecke) * Update to German translation (thanks to Matthias Gutjahr) * Update to Portuguese translation (thanks to Manuel Rennecke) * Update to Russian translation (thanks to Alexandre Prokoudine) * Update to Spanish translation (thanks to Manuel Rennecke) * Update to Swedish translation (thanks to Poppe) * Update to Belarusian translation (thanks to booxter) * Update to Italian translation (thanks to Andrea (pikkio)) * Update to Polish translation (thanks to Piotr Strębski) * Update to Traditional Chinese translation (thanks to Chien Cheng Wei) 0.9.21 (01.02.2008): * ensure quit question only displayed once, rather than once per not-saved page * update selected/current/all heuristic Closes Debian bug #461859 (better selected/current/all heuristic) * reset start page in scan dialog after File/New selected Closes 1879331 (Choosing New file does not zero page count) * request page range when importing a PDF with more than one page Closes Debian bug #461076 (importing PDFs causes /tmp/ overflow) * File/Compress working files * fixed bug remembering setting where setting is first in a list * fixed bug where thumbs get unselected after saving * fixed wide character crash caused by translations containing utf8. * + Initial Turkish translation (thanks to denz) * Update to Brazilian Portuguese translation (thanks to luther-x) * Update to Czech translation (thanks to Petr Jelínek) * Update to Greek translation (thanks to jimpap) * Update to Polish translation (thanks to nikt_taki) 0.9.20 (18.01.2008): * fixed bug where backslashes in text layer in djvu files not escaped. * made ctrl-x, ctrl-c, ctrl-v work in text buffer * suppressed multiple paper size editor windows * + manual paper size * fixed bug trying to scan large paper size than scanner allows * + warning message when paper sizes too big for scanner * recognise warm-up message from gt68xx driver Closes Debian bug #449421 * cope with spaces in filename of image to save Closes Debian bug #457377 * improve tesseract language file search * implement --pagewidth|height properly [2348533a4a6a] Closes Debian bug #457376 (gscan2pdf: Some paper sizes not available) * account for options that completely disappear or appear between modes Closes 1868985 (can't disable invalid options (e.g. threshold)) Closes Debian bug #457249 (gscan2pdf: Tries to set threshold option for color scans) * + scanner.svg, pdf.svg, gscan2pdf.svg - scanner.png, pdf.png, gscan2pdf.png Closes bug 1836312 (Tangoify Icons) * fixed bug parsing scanimage progress output Closes Debian bug #457375 (gscan2pdf: Nondeterministic duplex scanning) * ask when quitting if not all pages have been saved. Closes Debian bug #461058 (does not ask when quitting without saving the PDF) * + Initial Brazilian Portuguese translation (thanks to Daniel Frank) * Update to Russian translation (thanks to Alexandre Prokoudine) * Update to German translation (thanks to Matthias Mailnder) * Update to French translation (thanks to Nicolas Stransky) * Update to Czech translation (thanks to Petr Jelínek) * Update to Danish translation (thanks to Jacob Nielsen) 0.9.19 (19.11.2007): * fixed bug creating user-defined paper sizes 0.9.18 (16.11.2007): * recoded DjVu save * + Photo compression to DjVu output. Respect! Miles better than JPEG * + DjVu import * + PS to save as image options * Split options in scan dialog into two tabs. Closes bug 1812030 (Dialog Box Too Big to fit on screen) * build scan window before scanning for devices in order to make sure that it centres properly. Closes Debian bug #440902: window placement of scan dialog * djvu compression automatic on image depth to allow multiple pages with different compression for each page * + TIFF compression options to PDF output Closes bug 1803099 (created PDF files are huge) * + threshold tool. Closes feature request 1750849 (RFE: support software controlled contrast) * + paper size editor * detect if destination directory is read-only Closes 1829961 (Crash saving .pdf in r/o subdirectory using v0.9.17) * reset start page number in scan dialog after deleting a page * Update to Czech translation (thanks to Petr Jelínek) * Update to French translation (thanks to Nicolas Stransky) * Update to German translation (thanks to Matthias Gutjahr) * Update to Greek translation (thanks to Ioannis Koniaris) * Update to Polish translation (thanks to Brech) * Update to Russian translation (thanks to Alexandre Prokoudine) 0.9.17 (02.10.2007): * + cut, copy and paste of pages Closes Feature Request 1780866 (Cut/copy/paste editing functions) * + multiple-item drag-and-drop, including copy. Closes Feature Request 1743098 (Improved drag'n'drop reordering of pages) * fixed bug saving DjVu with 2 pages * + ProgressBar during scan * + extended page numbering to scan dialog * Update to Czech translation (thanks to Petr Jelínek) * Update to Danish translation (thanks to Jacob Nielsen) * Update to German translation (thanks to Matthias Gutjahr) * + Greek translation (thanks to Spartakus) * Update to French translation (thanks to Nicolas Stransky) * Update to Italian translation (thanks to Andrea (pikkio)) * Update to Polish translation (thanks to Piotr Strębski) * Update to Russian translation (thanks to Alexandre Prokoudine) * Update to Spanish translation (thanks to Yzen Hernndez) * Relicensed under GPLv3 0.9.16 (24.08.2007): * do not restore mode setting if default device not found * + workaround for those versions of imagemagick that produce 16bit output with rotate. Patch 1760543 (rotate creates 16bit images that tesseract can't read) from Chris Mayo * + ProgressBar during image import * + Downsample option. Closes Feature Request 1722832 (setting the resolution before export) * + Hidden text layer from OCR in djvu output * + Support for language options in tesseract-2.00 * + UTF-8 support in OCR output * Fixed bug caused by imagemagick giving resolution=0. Closes bug 1770367 (Illegal division by zero) * + ProgressBar during TIFF save * better attempt at trapping errors whilst embedding scan in PDF * + ProgressBar during DjVu save * Stop unpaper and ocr if scan is cancelled * Fixed scrolling bug during drag and drop * Update to Dutch translation (thanks to Eric Spierings) * Update to French translation (thanks to Nicolas Stransky) * Update to Spanish translation (thanks to Rodrigo Donado) 0.9.15 (22.07.2007): * Fixed bug setting defaults, also responsible for preventing the device-dependent options being displayed in certain circumstances. * store unpaper options in settings * fractional instead of pulsing ProgressBar & more info during PDF save * fixed bug where spaces in mode not escaped in shell * fixed bug parsing device-dependent options (affecting some Brother scanners). * + option not to restore window settings. closes Debian bug 433497 (please don't remember window position) * Update to French translation (thanks to Nicolas Stransky) 0.9.14 (11.07.2007): * Fixed bug parsing device-dependent options. Closes bug 1751125 (Some device-dependent options have gone) * Update to French translation (thanks to Nicolas Stransky) * Update to Italian translation (thanks to Andrea (pikkio)) * Update to Portugese translation (thanks to Hugo Pereira) * Update to Russian translation (thanks to Alexandre Prokoudine) 0.9.13 (08.07.2007): * Select all or Ctrl-A works properly in thumbnails or OCR buffer, depending on focus. Closes bug 1740131 (Ctrl-A (select all) in OCR window does not work). * + Tesseract support. Closes feature request 1725818 (tesseract for OCR?) * unset mode if changing device. Closes bug 1741598 (2 scanners with differing mode options). * ghost scan all pages RadioButton if Flatbed selected. Closes bug 1743059 (Endless scanning loop) * trap device busy error. Closes bug 1744451 (handle busy device) * Modify PDF metadata date format to conform to ISO-8601 Closes feature request 1744458 (change dates to ISO-8601) * Fixed double scan bug with scanadf frontend * Fixed bug where Custom paper size not set from default * Update to Danish translation (thanks to Jacob Nielsen) * Update to French translation (thanks to Pierre Slamich) * Update to Polish translation (thanks to Piotr Strębski) * Fixed blocking whilst setting up/updating scan dialog * + US Legal paper. Closes feature request 1748679 (RFE: add legal paper size as an option) 0.9.12 (19.06.2007): * + check for mode-dependent options. * note resolution info so that the resulting PDF has the correct paper size. Closes bug 1736036 (page size is somehow a ratio of resolution) and Debian bug 426525 (after unpaper, saving PDF causes magnified page) * + no-grayfilter option. Closes Debian bug 426529 (more unpaper options) * + error message if error on tiff export. Closes Debian bug 426527 (tif/jpg export produces empty file) * + quality setting for JPG compression in save as PDF. Closes feature request 1736043 (Compression setting) and bug 1736582 (PDFs with embedded JPEGS are large) * save image functionality supporting TIFF, PNG, JPEG, PNM & GIF. Closes feature request 1709380 (Support PNG output equivalent to TIFF) * save default dates as offset from current, closing bug 1736037 (pdf file->save dialog should automatically set the date to the current day) * Update to Czech translation (thanks to Petr Jelínek) * update to German translation (thanks to Florian) * update to Portuguese translation (thanks to Hugo Pereira) * Update to Spanish translation (thanks to Raúl González Duque) 0.9.10 (05.06.2007): * patch credits * Switched rotate icons from Crystal (KDE) to those stolen from Eye of Gnome * Closed bug 1712967 (long lines in ocr output resized document display off screen) * + contrast and threshold controls * handle PNG, JPEG, GIF, PNM natively, closing feature request 1708448 (JPG to PDF) and bugs 1714874 (import b/w pdf problem) and 1669413 (Problem with "callback") * + PDF compression options (JPEG, PNG), closing feature request 1708036 * + --speed option (Epson 1200) * + ProgressBar for PDF save, closing feature request 1712964 * + Portuguese translation (thanks to Hugo Pereira) * + Danish translation (thanks to Jacob Nielsen) * Update to Czech translation (thanks to Petr Jelínek) * Update to Dutch translation (thanks to Eric Spierings) * Update to French translation (thanks to codL) * remembers OCR on scan setting * + unpaper on scan * + calibration-cache option for Canon LiDE25 * + roadmap to website/help 0.9.9 (30.04.2007): * Closed bug 1709377 ("Unknwn msg: scanimage: unrec'd option --compression=None'") * Fixed bug where attempt to run gocr after scanning despite not being installed * Replaced about MessageDialog with AboutDialog * Update to Russian translation (thanks to Alexandre Prokoudine) * Update to Czech translation (thanks to Petr Jelínek) * Update to Dutch translation (thanks to Eric Spierings) * Packed unpaper options into Gtk2::Notebook to make dialog shorter, closed bug 1709379 ("unpaper-0.2 dialog too tall for 1024x768") 0.9.8 (28.04.2007): * - compression option from scan dialog. * Explicitly sets compression=None if mode=Lineart * + Check for PDF::API2 * Forces startup check on new version * Runs unpaper sequencially on pages instead of in parallel * Enabled double sided scanning for scanadf frontend * + no-deskew, no-border-scan, no-border-align, no-mask-scan, no-blackfilter no-noisefilter, no-blurfilter, black-threshold, white-threshold options to unpaper * + Stock icon for about * Scrolls thumb list to selected page * Embeds OCR output in white on white hidden behind scan. pdftotext can extract contents, and can be indexed by Beagle. * Update to Spanish translation (thanks to Th3n3k) * Moved OCR buffer to main window * Patch from John Goerzen to adjust brightness and add negative support for SpinBoxes * Patches from John Goerzen to add .tif and .djvu endings if necessary, plus fixed bug adding .pdf ending. * Separated perlmagick and imagemagick dependencies * Updated French translation (thanks to Mathieu Goeminne) 0.9.7 (04.04.2007): * Fixed bug calling help * Fixed error message caused by update_options sub being called twice. * Streamlined image creation (speedup) * Adjusted widget justification in scan dialog * Suppressed rounded messages from scanadf frontend * Remembers scan area * Ghosts zoom and rotate buttons if no page selected * Fixed bug where custom scan area not hidden when A4 or Letter selected * Help update 0.9.6 (31.03.2007): * Replaced "Enable Options" with "Enable Save Options" * After cancelling scan, I/O error ignored. * tiff2pdf replaced with PDF::API2, fixing character encoding bug in metadata * OCR result buffer embedded as annotation in PDF * + PDF import * Loads modules when needed, rather than at start to speed up start-up. * Can import any format that imagemagick recognises * Makes use of new_from_file_at_scale (speedup) * OptionMenus swapped for ComboBoxes (+EventBoxes to wrap ToolTips) * Fixed bug caused by trying to hide save_TIFF dialog although not created * + SpinButtons to adjust top left corner of scan area * Ghosts save options when no pages to save * + Italian translation (thanks to Alberto Boiti) * Update to Dutch translation (thanks to Eric Spierings) 0.9.5 (08.03.2007): * Fixed bug where nothing saved if no default for page rage * Seperated pdf, tiff and scan compression defaults * Save TIFF and DjVu respects enable options toggle * + cancel on scan dialog sends ctrl-c to scanimage * update to Czech translation (thanks to Petr Jelínek) 0.9.4 (25.02.2007): * Using the top right hand close button to quit saves the settings properly. * enable PDF options toggle * + compression scan option * closed bug 1656900 where hup condition not recognised under FreeBSD. * update to Czech translation (thanks to Petr Jelínek) * update to German translation (thanks to Florian) * update to Russian translation (thanks to Alexandre Prokoudine) 0.9.3 (08.02.2007): * Switched the deprecated Gtk2::SimpleList to Gtk2::Ex::Simple::List. * Fixed bug where thumbnail lost after undo/redo * Deleting pages selects nearest page * + unpaper --border-align and --border-margin support * + compression options for save TIFF * unpaper ghosted if imagemagick not present * updated scan and PDF icons (thanks to lodp) 0.9.2 (31.01.2007): * Update to Czech translation (thanks to Petr Jelínek) * + Spanish translation (thanks to mecedesjorge) * Passes image depth to imagemagick to ensure rotation produces a valid TIFF * + DjVu support Fixed bug where device-dependent options disappear if frontend changed whilst scan dialog hidden. * + Progress bar whilst updating device-dependent options * + unpaper support * + Undo/redo 0.9.1 (23.01.2007): Fixed bug where frontend not properly selected 0.9.0 (19.01.2007): * + OCR support * scanadf frontend uses own device-dependent options * Displays start-up message if optional packages missing 0.8.9 (11.01.2007): * + Spanish translation (thanks to mecedesjorge) * Update to Czech translation (thanks to Petr Jelínek) * + Support for scanadf frontend * + Email as PDF * Displays warm-up message if backend supports it * Ghosts out the rotate menus and buttons if imagemagick not installed 0.8.7 (31.12.2006): * + Belarusian translation (thanks to booxter) * + Chinese (Taiwan) translation (thanks to cwchien) * + Czech translation (thanks to Petr Jelínek) * + Russian translation (thanks to Alexandre Prokoudine) * + Update to Swedish translation (thanks to Daniel Nylander) * - 2 scanimage calls (speedup). * Adds the device to the model name if the same model present more than once. * + Drag-n-drop autoscrolls the thumbnail list. * Error thrown if Locale::gettext version < 1.05. * + New icons for application and rotate buttons (thanks to lodp) 0.8.4 (11.12.2006): * + Polish translation (thanks to Wojciech Myrda) * Update to French translation (thanks to Nicolas Velin) * + Support for HP ScanJet 6390c. * Fixed bug caused by moving thumbnail/detail window divider so that detail window disappears. * Fixed missing translations in scanimage commandline options * Set open or save buttons as default on all FileChooserDialogs * + 1mm tolerance to paper size check 0.8.3 (25.11.2006): * Stickier right mouse button * + Dutch translation (thanks to Tikkel) * Update to German translation (thanks to Christoph Langner) * Update to French translation (thanks to Simon Leblanc) * Rewrote Makefile with MakeMaker Corrected .deb to all instead of i386 architecture * + code to allow translation of scanimage commandline options * + .rpm build 0.8.2 (10.11.2006): * + Partial Swedish translation (thanks to Daniel Nylander) * + Partial French translation (thanks to Nicolas Velin) * Update to German translation (thanks to joeb) * Fixed bug in arguments passed to scanimage in non-English locale * + liblocale-gettext-perl (>= 1.05) dependency in .deb * + Support for epson_3490 and canoscan_FB_630P scanners * chmod a+rw for executable in deb 0.8.1 (01.11.2006): * + Gnome menu * Fixed zoom bug * + German translation (thanks to Christoph Langner) 0.8.0 (28.10.2006): * + Rotate options * Automatically adds .pdf extension if not already there * Renamed Import menu to Import TIFF * Changed the scan toolbar button from print to print-preview * Made Zip compression default if not in settings * Fixed lack of shortcut for File menu * + German translation 0.7.12 (22.10.2006): * Fixed bug displaying detail view in multipage scans 0.7.11 (19.10.2006): * Fixed bug importing from temp * Fixed bug no PDF file created if JPEG compression selected (thanks Thomas for the patch) * + FAQ * + more tooltips * + Support for niash scanner * + Right mouse button menus * Wrapped all strings in gettext calls for internationalisation * Ignores "rounded br-" warnings from scanimage * Update to help to improve html look * Copes with spaces in device-dependent options * Copes with strange characters in device names * Uses new FileChooser instead of old FileSelection 0.7.2 (05.10.2006): * + button-wait scan option * + source scan option * Fixed locale problem, forcing LC_NUMERIC=C * Tidied up drag and drop routine 0.7 (23.09.2006): * + Drag and drop page reordering * + Toolbar buttons * + Tool tips * + View menu * + Some documentation * + Help viewer * Improved window handling * + PDF compression options * Fixed libpixbuf-tiff Read error * Fixed dialog after unknown scan warning 0.6.3 (08.09.2006): * Fixed "scanimage: option --br-y: bad option value" bug * Child windows hidden rather than destroyed to improve speed and prevent multiple instances. * + # pages to scan to config file * + Renumber menu item * + Config save for PDF, scan and window settings * + Added config file support for window maximize state * Changed order of options in tiff2pdf call for FreeBSD compatibility * Moved test output to external file * Parses paper size from device-dependent options 0.6.2 (04.09.2006): * Fixed bug in Letter size scans 0.6.1 (01.09.2006): * Renumber by editing page number * Destroy window after pdf write * Read options from --help --device-name= * + Test mode * Hides Custom paper sizes when not needed 0.6 (22.08.2006): * Error checking for import * Import multiselect * + Save as TIFF * + Import multipage TIFFs 0.5 (21.08.2006): * + Support for PDF Metadata * + Doublesided scan options * + deb packaging 0.4 (16.08.2006): * + Thumbnails * + Edit menu * + Install script 0.3 (08.08.2006): * Resizing widgets and more scan options. 0.2 (07.08.2006): * + Scan options 0.1 (06.08.2006): * Initial release gscan2pdf-1.2.3/po/0000755000175000017500000000000012271546566012426 5ustar jeffjeffgscan2pdf-1.2.3/po/gscan2pdf-cs.po0000644000175000017500000013636512243440507015241 0ustar jeffjeff# Czech translation for gscan2pdf # Copyright (c) 2006 Rosetta Contributors and Canonical Ltd 2006 # This file is distributed under the same license as the gscan2pdf package. # FIRST AUTHOR , 2006. # msgid "" msgstr "" "Project-Id-Version: gscan2pdf\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-10-25 08:12+0200\n" "PO-Revision-Date: 2012-05-19 21:00+0000\n" "Last-Translator: Zbyněk Schwarz \n" "Language-Team: Czech \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-19 09:22+0000\n" "X-Generator: Launchpad (build 16831)\n" #: bin/gscan2pdf:157 msgid "Error displaying help" msgstr "" #: bin/gscan2pdf:201 msgid "" "Error: unable to load settings.\n" "Backing up settings\n" "Reverting to defaults" msgstr "" "Chyba: nelze načíst nastavení\n" "Zálohuje se nastavení\n" "Obnovuje se výchozí" #: bin/gscan2pdf:244 msgid "A4" msgstr "A4" #: bin/gscan2pdf:250 msgid "US Letter" msgstr "US Letter" #: bin/gscan2pdf:256 msgid "US Legal" msgstr "US Legal" #: bin/gscan2pdf:323 bin/gscan2pdf:344 #, perl-format msgid "Cannot read file: %s" msgstr "Nelze přečíst soubor: %s" #: bin/gscan2pdf:451 msgid "_File" msgstr "_Soubor" #: bin/gscan2pdf:454 msgid "_New" msgstr "_Nový" #: bin/gscan2pdf:455 msgid "Clears all pages" msgstr "Smazat všechny stránky" #: bin/gscan2pdf:459 msgid "_Open" msgstr "_Otevřít" #: bin/gscan2pdf:460 msgid "Open image file(s)" msgstr "Otevřít soubor(y) s obrázkem" #: bin/gscan2pdf:465 msgid "S_can" msgstr "S_kenovat" #: bin/gscan2pdf:467 msgid "Scan document" msgstr "Skenovat dokument" #: bin/gscan2pdf:471 bin/gscan2pdf:472 bin/gscan2pdf:2582 msgid "Save" msgstr "Uložit" #: bin/gscan2pdf:476 msgid "_Email as PDF" msgstr "Zaslat _emailem jako PDF" #: bin/gscan2pdf:477 msgid "Attach as PDF to a new email" msgstr "Připojit jako PDF k novému emailu" #: bin/gscan2pdf:480 msgid "_Print" msgstr "_Tisk" #: bin/gscan2pdf:481 msgid "Print" msgstr "Vytisknout" #: bin/gscan2pdf:485 msgid "_Compress temporary files" msgstr "_Kompresovat dočasné soubory" #: bin/gscan2pdf:486 msgid "Compress temporary files" msgstr "Kompresovat dočasné soubory" #: bin/gscan2pdf:490 msgid "_Quit" msgstr "_Ukončit" #: bin/gscan2pdf:491 msgid "Quit" msgstr "Konec" #: bin/gscan2pdf:495 msgid "_Edit" msgstr "Ú_pravy" #: bin/gscan2pdf:497 msgid "_Undo" msgstr "V_rátit" #: bin/gscan2pdf:497 msgid "Undo" msgstr "Zpět" #: bin/gscan2pdf:501 msgid "_Redo" msgstr "Zn_ovu" #: bin/gscan2pdf:502 msgid "Redo" msgstr "Znovu" #: bin/gscan2pdf:506 msgid "Cu_t" msgstr "_Vyjmout" #: bin/gscan2pdf:507 msgid "Cut selection" msgstr "Vyjmout výběr" #: bin/gscan2pdf:511 msgid "_Copy" msgstr "_Kopírovat" #: bin/gscan2pdf:512 msgid "Copy selection" msgstr "Kopírovat výběr" #: bin/gscan2pdf:516 msgid "_Paste" msgstr "_Vložit" #: bin/gscan2pdf:517 msgid "Paste selection" msgstr "Vložit výběr" #: bin/gscan2pdf:521 msgid "_Delete" msgstr "_Smazat" #: bin/gscan2pdf:522 msgid "Delete selected pages" msgstr "Smazat vybrané stránky" #: bin/gscan2pdf:526 msgid "_Renumber" msgstr "_Přečíslovat" #: bin/gscan2pdf:527 msgid "Renumber pages" msgstr "Přečíslovat stránky" #: bin/gscan2pdf:529 bin/gscan2pdf:679 msgid "_Select" msgstr "Vy_brat" #: bin/gscan2pdf:532 msgid "_All" msgstr "_Vše" #: bin/gscan2pdf:533 msgid "Select all pages" msgstr "Vybrat všechny stránky" #: bin/gscan2pdf:536 msgid "_Odd" msgstr "_Liché" #: bin/gscan2pdf:537 msgid "Select all odd-numbered pages" msgstr "Vybrat všechny stránky s lichým číslováním" #: bin/gscan2pdf:541 msgid "_Even" msgstr "S_udé" #: bin/gscan2pdf:542 msgid "Select all evenly-numbered pages" msgstr "Vybrat všechny stránky se sudým číslováním" #: bin/gscan2pdf:547 msgid "_Blank" msgstr "_Čistý" #: bin/gscan2pdf:548 msgid "Select pages with low standard deviation" msgstr "Vybrat stránky s malou standardní odchylkou" #: bin/gscan2pdf:552 msgid "_Dark" msgstr "_Tmavé" #: bin/gscan2pdf:553 msgid "Select dark pages" msgstr "Vybrat tmavé stránky" #: bin/gscan2pdf:558 msgid "_Modified" msgstr "_Změněno" #: bin/gscan2pdf:560 msgid "Select modified pages since last OCR" msgstr "Vybrat změněné stránky od posledního OCR" #: bin/gscan2pdf:565 msgid "_No OCR" msgstr "_Bez OCR" #: bin/gscan2pdf:566 msgid "Select pages with no OCR output" msgstr "Vybrat stránky bez výstupu OCR" #: bin/gscan2pdf:570 msgid "_Clear OCR" msgstr "_Vyčistit OCR" #: bin/gscan2pdf:571 msgid "Clear OCR output from selected pages" msgstr "Vyčistit výstup OCR ze zvolených stránek" #: bin/gscan2pdf:575 msgid "Propert_ies" msgstr "_Vlastnosti" #: bin/gscan2pdf:576 msgid "Edit image properties" msgstr "Upravit vlastnosti obrázku" #: bin/gscan2pdf:580 msgid "Prefere_nces" msgstr "_Nastavení" #: bin/gscan2pdf:581 msgid "Edit preferences" msgstr "Upravit nastavení" #: bin/gscan2pdf:585 msgid "_View" msgstr "_Zobrazit" #: bin/gscan2pdf:588 msgid "Zoom _100%" msgstr "Velikost _100%" #: bin/gscan2pdf:589 msgid "Zoom to 100%" msgstr "Zvětšit na 100%" #: bin/gscan2pdf:593 msgid "Zoom to _fit" msgstr "Př_izpůsobit" #: bin/gscan2pdf:594 msgid "Zoom to fit" msgstr "Přizpůsobit" #: bin/gscan2pdf:598 msgid "Zoom _in" msgstr "Z_většit" #: bin/gscan2pdf:599 msgid "Zoom in" msgstr "Zvětšit" #: bin/gscan2pdf:603 msgid "Zoom _out" msgstr "Z_menšit" #: bin/gscan2pdf:604 msgid "Zoom out" msgstr "Zmenšit" #: bin/gscan2pdf:609 bin/gscan2pdf:611 msgid "Rotate 90 clockwise" msgstr "Otočit o 90° vlevo" #: bin/gscan2pdf:617 bin/gscan2pdf:619 msgid "Rotate 180" msgstr "Otočit o 180°" #: bin/gscan2pdf:625 bin/gscan2pdf:627 msgid "Rotate 90 anticlockwise" msgstr "Otočit o 90° vpravo" #: bin/gscan2pdf:632 msgid "_Tools" msgstr "_Nástroje" #: bin/gscan2pdf:634 msgid "_Threshold" msgstr "_Práh:" #: bin/gscan2pdf:635 msgid "Change each pixel above this threshold to black" msgstr "Změnit každý pixel nad tento práh na černou" #: bin/gscan2pdf:639 msgid "_Negate" msgstr "N_egovat" #: bin/gscan2pdf:640 msgid "Converts black to white and vice versa" msgstr "Konvertovat černou na bílou a obráceně" #: bin/gscan2pdf:644 msgid "_Unsharp Mask" msgstr "_Maska rozostření" #: bin/gscan2pdf:645 msgid "Apply an unsharp mask" msgstr "Aplikovat masku rozostření" #: bin/gscan2pdf:648 msgid "_Crop" msgstr "_Oříznout" #: bin/gscan2pdf:649 msgid "Crop pages" msgstr "Oříznout stránky" #: bin/gscan2pdf:653 msgid "_Clean up" msgstr "_Vyčistit" #: bin/gscan2pdf:654 bin/gscan2pdf:4085 msgid "Clean up scanned images with unpaper" msgstr "Vyčistit skenované stránky pomocí unpaper" #: bin/gscan2pdf:657 msgid "_OCR" msgstr "_OCR" #: bin/gscan2pdf:658 msgid "Optical Character Recognition" msgstr "Optické rozpoznávání znaků" #: bin/gscan2pdf:660 msgid "U_ser-defined" msgstr "Už_ivatelem určené" #: bin/gscan2pdf:663 bin/gscan2pdf:665 msgid "_Help" msgstr "_Nápověda" #: bin/gscan2pdf:666 msgid "Help" msgstr "Nápověda" #: bin/gscan2pdf:668 msgid "_About" msgstr "_O programu" #: bin/gscan2pdf:674 msgid "_Drag" msgstr "Tá_hnout" #: bin/gscan2pdf:675 msgid "Use the hand tool" msgstr "Použít ruční nástroj" #: bin/gscan2pdf:680 msgid "Use the rectangular selection tool" msgstr "Použít nástroj obdélníkového výběru" #: bin/gscan2pdf:684 msgid "_Paint" msgstr "_Kreslit" #: bin/gscan2pdf:685 msgid "Use the painter tool" msgstr "Použít nástroj kreslení" #: bin/gscan2pdf:965 lib/Gscan2pdf/Document.pm:2594 #: lib/Gscan2pdf/Document.pm:2595 msgid "Error copying page" msgstr "Chyba při kopírování stránky" #: bin/gscan2pdf:1082 msgid "Image" msgstr "Obrázek" #: bin/gscan2pdf:1117 msgid "OCR Output" msgstr "Výstup OCR" #: bin/gscan2pdf:1174 msgid "Mode" msgstr "Režim" #: bin/gscan2pdf:1176 msgid "Lineart" msgstr "Perokresba" #: bin/gscan2pdf:1177 msgid "Grayscale" msgstr "Odstíny šedi" #: bin/gscan2pdf:1178 msgid "Gray" msgstr "Šedý" #: bin/gscan2pdf:1179 msgid "Color" msgstr "Barevný" #: bin/gscan2pdf:1180 msgid "Black & White" msgstr "Černobílý" #: bin/gscan2pdf:1181 msgid "True Gray" msgstr "Pravá šedá" #: bin/gscan2pdf:1182 msgid "Binary" msgstr "Binární" #: bin/gscan2pdf:1183 bin/gscan2pdf:1242 bin/gscan2pdf:1243 msgid "Auto" msgstr "Automaticky" #: bin/gscan2pdf:1184 msgid "Halftone" msgstr "Polotóny" #: bin/gscan2pdf:1185 msgid "24bit Color" msgstr "24bit barva" #: bin/gscan2pdf:1189 bin/gscan2pdf:2547 bin/gscan2pdf:2644 msgid "Compression" msgstr "Komprese" #: bin/gscan2pdf:1191 bin/gscan2pdf:2539 bin/gscan2pdf:2636 msgid "None" msgstr "Žádné" #: bin/gscan2pdf:1192 bin/gscan2pdf:2537 bin/gscan2pdf:2601 bin/gscan2pdf:2622 msgid "JPEG" msgstr "JPEG" #: bin/gscan2pdf:1195 bin/gscan2pdf:8127 msgid "Resolution" msgstr "Rozlišení" #: bin/gscan2pdf:1196 msgid "Brightness" msgstr "Světlost" #: bin/gscan2pdf:1197 msgid "Gain" msgstr "Zisk" #: bin/gscan2pdf:1198 msgid "Contrast" msgstr "Kontrast" #: bin/gscan2pdf:1199 bin/gscan2pdf:6406 bin/gscan2pdf:6417 bin/gscan2pdf:6620 msgid "Threshold" msgstr "Práh" #: bin/gscan2pdf:1201 msgid "Speed" msgstr "Rychlost" #: bin/gscan2pdf:1203 bin/gscan2pdf:1210 bin/gscan2pdf:1217 bin/gscan2pdf:1224 #: bin/gscan2pdf:1231 msgid "Yes" msgstr "Ano" #: bin/gscan2pdf:1204 bin/gscan2pdf:1211 bin/gscan2pdf:1218 bin/gscan2pdf:1225 #: bin/gscan2pdf:1232 msgid "No" msgstr "Ne" #: bin/gscan2pdf:1208 msgid "Batch scan" msgstr "Dávkové skenování" #: bin/gscan2pdf:1215 bin/gscan2pdf:1222 msgid "Wait for button" msgstr "Čekání na tlačítko" #: bin/gscan2pdf:1229 msgid "Cache calibration" msgstr "Kalibrace zásobníku" #: bin/gscan2pdf:1236 msgid "Source" msgstr "Zdroj" #: bin/gscan2pdf:1238 msgid "Normal" msgstr "Normální" #: bin/gscan2pdf:1239 msgid "ADF" msgstr "ADF" #: bin/gscan2pdf:1240 msgid "Automatic Document Feeder" msgstr "Automatický podavač dokumentů" #: bin/gscan2pdf:1241 msgid "XPA" msgstr "XPA" #: bin/gscan2pdf:1244 msgid "Flatbed" msgstr "Stolní" #: bin/gscan2pdf:1245 msgid "Transparency Adapter" msgstr "Prosvětlovací adaptér" #: bin/gscan2pdf:1246 msgid "Transparency Unit" msgstr "Prosvětlovací jednotka" #: bin/gscan2pdf:1249 bin/gscan2pdf:1251 msgid "Page Width" msgstr "Šířka stránky" #: bin/gscan2pdf:1250 bin/gscan2pdf:1252 msgid "Page Height" msgstr "Výška stránky" #: bin/gscan2pdf:1253 msgid "Top Overscan" msgstr "Vrchní výřez" #: bin/gscan2pdf:1254 msgid "Bottom Overscan" msgstr "Spodní výřez" #: bin/gscan2pdf:1256 bin/gscan2pdf:1263 msgid "ADF Mode" msgstr "ADF mód" #: bin/gscan2pdf:1258 bin/gscan2pdf:1265 msgid "Simplex" msgstr "Jednostraně" #: bin/gscan2pdf:1259 bin/gscan2pdf:1266 msgid "Duplex" msgstr "Oboustraně" #: bin/gscan2pdf:1301 bin/gscan2pdf:1306 msgid "Pick crashed session to restore" msgstr "Vyberte spadlou relaci k obnově" #: bin/gscan2pdf:1308 bin/gscan2pdf:2609 msgid "Session" msgstr "Sezení" #: bin/gscan2pdf:1338 #, perl-format msgid "" "Warning: unable to use %s for temporary storage. Defaulting to %s instead." msgstr "" "Varování: nelze použít %s jako dočasné úložiště. Místo toho je použito " "standardní %s." #: bin/gscan2pdf:1441 msgid "GOCR" msgstr "GOCR" #: bin/gscan2pdf:1441 msgid "Process image with GOCR." msgstr "Zpracovat obrázek pomocí GOCR" #: bin/gscan2pdf:1445 msgid "Tesseract" msgstr "Tesseract" #: bin/gscan2pdf:1446 msgid "Process image with Tesseract." msgstr "Zpracovat obrázek pomocí Tesseract" #: bin/gscan2pdf:1450 msgid "Ocropus" msgstr "Ocropus" #: bin/gscan2pdf:1450 msgid "Process image with Ocropus." msgstr "Zpracovat obrázrk pomocí Ocropus" #: bin/gscan2pdf:1454 msgid "Cuneiform" msgstr "Cuneiform" #: bin/gscan2pdf:1455 msgid "Process image with Cuneiform." msgstr "Zpracovat obrázk pomocí Cuneiform." #: bin/gscan2pdf:1461 msgid "Save image and Save as PDF both require imagemagick\n" msgstr "Uložení obráku a uložení jako PDF vyžadují imagemagick\n" #: bin/gscan2pdf:1465 msgid "Save image requires libtiff\n" msgstr "Uložení obrázku vyžaduje libtiff\n" #: bin/gscan2pdf:1469 msgid "Save as DjVu requires djvulibre-bin\n" msgstr "Ukládání do DjVu vyžaduje djvulibre-bin\n" #: bin/gscan2pdf:1473 msgid "Email as PDF requires xdg-email\n" msgstr "Zaslání emailem jako PDF vyžaduje xdg-email\n" #: bin/gscan2pdf:1518 msgid "The rotating options and unpaper support require perlmagick\n" msgstr "Volby otáčení a podpora unpaper vyžadují perlmagick\n" #: bin/gscan2pdf:1524 msgid "unpaper missing\n" msgstr "unpaper chybí\n" #: bin/gscan2pdf:1534 msgid "OCR requires gocr, tesseract, ocropus, or cuneiform\n" msgstr "OCR vyžaduje gocr, tesseract, ocropus, nebo cuneiform\n" #: bin/gscan2pdf:1539 msgid "Warning: missing packages" msgstr "Varování: chybí balíčky" #: bin/gscan2pdf:1544 msgid "Don't show this message again" msgstr "Tuto zprávu znovu nezobrazovat" #: bin/gscan2pdf:1753 msgid "" "Some pages have not been saved.\n" "Do you really want to clear all pages?" msgstr "" "Některé stránky nebyly uloženy.\n" "Chcete opravdu vyčistit všechny stránky?" #: bin/gscan2pdf:1828 bin/gscan2pdf:1858 #, perl-format msgid "Process %i of %i (%s)" msgstr "Zpracování %i z %i (%s)" #: bin/gscan2pdf:1867 #, perl-format msgid "Process %i of %i" msgstr "Zpracování %i z %i" #: bin/gscan2pdf:1895 msgid "Open image" msgstr "Otevřít obrázek" #: bin/gscan2pdf:1903 bin/gscan2pdf:2797 bin/gscan2pdf:3113 msgid "Image files" msgstr "Obrázkové soubory" #: bin/gscan2pdf:1940 msgid "Pages to extract" msgstr "Stránky k rozbalení" #: bin/gscan2pdf:1943 bin/gscan2pdf:2117 bin/gscan2pdf:2586 bin/gscan2pdf:3353 #: bin/gscan2pdf:3494 bin/gscan2pdf:4104 bin/gscan2pdf:4514 bin/gscan2pdf:5825 #: bin/gscan2pdf:6409 bin/gscan2pdf:6495 bin/gscan2pdf:6565 bin/gscan2pdf:6737 #: bin/gscan2pdf:7011 bin/gscan2pdf:7274 bin/gscan2pdf:7757 bin/gscan2pdf:8123 #: lib/Gscan2pdf/Dialog.pm:56 lib/Gscan2pdf/Dialog/Renumber.pm:80 #: lib/Gscan2pdf/Scanner/Dialog.pm:201 t/05_Dialog.t:28 msgid "vbox" msgstr "" #: bin/gscan2pdf:1946 msgid "First page to extract" msgstr "První stránka k rozbalení" #: bin/gscan2pdf:1953 msgid "Last page to extract" msgstr "Poslední stránka k rozbalení" #: bin/gscan2pdf:2042 lib/Gscan2pdf/Dialog/Renumber.pm:83 msgid "Page Range" msgstr "Rozsah stránek" #: bin/gscan2pdf:2092 msgid "Metadata" msgstr "Metadata" #: bin/gscan2pdf:2101 msgid "Date" msgstr "Datum" #: bin/gscan2pdf:2114 msgid "Select Date" msgstr "Vybrat datum" #: bin/gscan2pdf:2136 msgid "Today" msgstr "dnes" #: bin/gscan2pdf:2150 msgid "Year-Month-Day" msgstr "Rok-Měsíc-Den" #: bin/gscan2pdf:2156 msgid "Document author" msgstr "Autor dokumentu" #: bin/gscan2pdf:2165 msgid "Title" msgstr "Název" #: bin/gscan2pdf:2174 msgid "Subject" msgstr "Předmět" #: bin/gscan2pdf:2183 msgid "Keywords" msgstr "Klíčová slova" #: bin/gscan2pdf:2245 msgid "Editing text" msgstr "Úprava textu" #: bin/gscan2pdf:2252 bin/gscan2pdf:2258 bin/gscan2pdf:2332 msgid "text" msgstr "text" #: bin/gscan2pdf:2352 msgid "PDF filename" msgstr "Jméno PDF souboru" #: bin/gscan2pdf:2381 msgid "PDF files" msgstr "Soubory PDF" #: bin/gscan2pdf:2405 bin/gscan2pdf:2823 bin/gscan2pdf:2880 bin/gscan2pdf:2976 #: bin/gscan2pdf:3035 bin/gscan2pdf:3087 bin/gscan2pdf:3275 #, perl-format msgid "File %s is read-only" msgstr "Soubor %s je jen pro čtení" #: bin/gscan2pdf:2482 msgid "JPEG Quality" msgstr "JPEG kvalita" #: bin/gscan2pdf:2496 msgid "Downsample to" msgstr "Převzorkovat na" #: bin/gscan2pdf:2501 msgid "PPI" msgstr "PPI" #: bin/gscan2pdf:2520 msgid "Automatic" msgstr "Automaticky" #: bin/gscan2pdf:2521 msgid "Let gscan2pdf which type of compression to use." msgstr "Gscan2pdf rozhodne jaký typ komprese použít." #: bin/gscan2pdf:2524 bin/gscan2pdf:2616 msgid "LZW" msgstr "LZW" #: bin/gscan2pdf:2525 bin/gscan2pdf:2617 msgid "Compress output with Lempel-Ziv & Welch encoding." msgstr "Kompresovat výstup kódováním Lempel-Ziv & Welch." #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Zip" msgstr "Zip" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Compress output with deflate encoding." msgstr "Kompresovat výstup kódováním deflate." #: bin/gscan2pdf:2529 bin/gscan2pdf:2624 msgid "Packbits" msgstr "Packbits" #: bin/gscan2pdf:2530 bin/gscan2pdf:2625 msgid "Compress output with Packbits encoding." msgstr "Kompresovat výstup kódováním Packbits." #: bin/gscan2pdf:2536 bin/gscan2pdf:2604 msgid "PNG" msgstr "PNG" #: bin/gscan2pdf:2536 msgid "Compress output with PNG encoding." msgstr "Kompresovat výstup pomocí PNG kódování" #: bin/gscan2pdf:2537 bin/gscan2pdf:2622 msgid "Compress output with JPEG encoding." msgstr "Kompresovat výstup kódováním JPEG." #: bin/gscan2pdf:2540 bin/gscan2pdf:2637 msgid "Use no compression algorithm on output." msgstr "Nekompresovat výstup." #: bin/gscan2pdf:2594 msgid "Image type" msgstr "Typ obrázku" #: bin/gscan2pdf:2598 msgid "PDF" msgstr "PDF" #: bin/gscan2pdf:2598 msgid "Portable Document Format" msgstr "Přenosný formát dokumentu" #: bin/gscan2pdf:2599 msgid "GIF" msgstr "GIF" #: bin/gscan2pdf:2599 msgid "CompuServe graphics interchange format" msgstr "CompuServe graphics interchange format" #: bin/gscan2pdf:2602 msgid "Joint Photographic Experts Group JFIF format" msgstr "Joint Photographic Experts Group JFIF format" #: bin/gscan2pdf:2604 msgid "Portable Network Graphics" msgstr "Portable Network Graphics" #: bin/gscan2pdf:2605 msgid "PNM" msgstr "PNM" #: bin/gscan2pdf:2605 msgid "Portable anymap" msgstr "Portable anymap" #: bin/gscan2pdf:2606 msgid "PS" msgstr "PS" #: bin/gscan2pdf:2606 msgid "Postscript" msgstr "Postskript" #: bin/gscan2pdf:2607 msgid "TIFF" msgstr "TIFF" #: bin/gscan2pdf:2607 msgid "Tagged Image File Format" msgstr "Tagged Image File Format" #: bin/gscan2pdf:2608 msgid "Text" msgstr "Text" #: bin/gscan2pdf:2608 msgid "Plain text" msgstr "Prostý text" #: bin/gscan2pdf:2609 msgid "gscan2pdf session file" msgstr "soubor sezení gscan2pdf" #: bin/gscan2pdf:2611 msgid "DjVu" msgstr "DjVu" #: bin/gscan2pdf:2611 msgid "Deja Vu" msgstr "Deja Vu" #: bin/gscan2pdf:2628 msgid "G3" msgstr "G3" #: bin/gscan2pdf:2629 msgid "Compress output with CCITT Group 3 encoding." msgstr "Kompresovat výstup pomocí kódování CCITT Skupiny 3." #: bin/gscan2pdf:2632 msgid "G4" msgstr "G4" #: bin/gscan2pdf:2633 msgid "Compress output with CCITT Group 4 encoding." msgstr "Kompresovat výstup poocí kódovaní CCITT Skupiny 4." #: bin/gscan2pdf:2649 msgid "tiff" msgstr "tiff" #: bin/gscan2pdf:2681 msgid "Font for non-ASCII text" msgstr "Písmo pro text mimo ASCII" #: bin/gscan2pdf:2790 msgid "TIFF filename" msgstr "Jméno TIFF souboru" #: bin/gscan2pdf:2848 msgid "Text filename" msgstr "Jméno textového souboru" #: bin/gscan2pdf:2856 msgid "Text files" msgstr "Textové soubory" #: bin/gscan2pdf:2944 msgid "PS filename" msgstr "PS jméno souboru" #: bin/gscan2pdf:2951 msgid "Postscript files" msgstr "Soubory Postscript" #: bin/gscan2pdf:3003 msgid "gscan2pdf session filename" msgstr "jméno souboru sezení gscan2pdf" #: bin/gscan2pdf:3010 msgid "gscan2pdf session files" msgstr "soubory relací gscan2pdf" #: bin/gscan2pdf:3093 #, perl-format msgid "" "File %s exists.\n" "Really overwrite?" msgstr "" "Soubor %s existuje\n" "Opravdu přepsat?" #: bin/gscan2pdf:3106 msgid "Image filename" msgstr "Jméno souboru s obrázkem" #: bin/gscan2pdf:3245 msgid "DjVu filename" msgstr "Jméno souboru DjVu" #: bin/gscan2pdf:3252 msgid "DjVu files" msgstr "Soubory DjVu" #: bin/gscan2pdf:3349 msgid "Email as PDF" msgstr "Zaslat emailem jako PDF" #: bin/gscan2pdf:3454 msgid "Error creating email" msgstr "Chyba při vytváření emailu" #: bin/gscan2pdf:3490 bin/gscan2pdf:4313 msgid "Scan Document" msgstr "Skenovat dokument" #: bin/gscan2pdf:3507 lib/Gscan2pdf/Scanner/Dialog.pm:248 msgid "Page Options" msgstr "Vlastnosti stránky" #: bin/gscan2pdf:3510 lib/Gscan2pdf/Scanner/Dialog.pm:251 msgid "# Pages" msgstr "# stránek" #: bin/gscan2pdf:3519 lib/Gscan2pdf/PageRange.pm:34 #: lib/Gscan2pdf/Scanner/Dialog.pm:261 msgid "All" msgstr "Všechny" #: bin/gscan2pdf:3520 lib/Gscan2pdf/Scanner/Dialog.pm:262 msgid "Scan all pages" msgstr "Skenovat všechny stránky" #: bin/gscan2pdf:3532 bin/gscan2pdf:3537 lib/Gscan2pdf/Scanner/Dialog.pm:274 #: lib/Gscan2pdf/Scanner/Dialog.pm:279 msgid "Set number of pages to scan" msgstr "Nastavit počet stránek pro skenování" #: bin/gscan2pdf:3550 lib/Gscan2pdf/Scanner/Dialog.pm:308 msgid "Extended page numbering" msgstr "Rozšířené číslování stránek" #: bin/gscan2pdf:3554 lib/Gscan2pdf/Scanner/Dialog.pm:312 msgid "Page number" msgstr "Číslo stránky" #: bin/gscan2pdf:3563 lib/Gscan2pdf/Dialog/Renumber.pm:111 #: lib/Gscan2pdf/Scanner/Dialog.pm:321 msgid "Start" msgstr "Začátek" #: bin/gscan2pdf:3572 lib/Gscan2pdf/Dialog/Renumber.pm:132 #: lib/Gscan2pdf/Scanner/Dialog.pm:340 msgid "Increment" msgstr "Přírůstek" #: bin/gscan2pdf:3604 lib/Gscan2pdf/Scanner/Dialog.pm:372 msgid "Source document" msgstr "Zdrojový dokument" #: bin/gscan2pdf:3611 lib/Gscan2pdf/Scanner/Dialog.pm:379 msgid "Single sided" msgstr "jednostranný" #: bin/gscan2pdf:3612 lib/Gscan2pdf/Scanner/Dialog.pm:380 msgid "Source document is single-sided" msgstr "Zdrojový dokument je jednostranný" #: bin/gscan2pdf:3622 lib/Gscan2pdf/Scanner/Dialog.pm:390 msgid "Double sided" msgstr "oboustranný" #: bin/gscan2pdf:3623 lib/Gscan2pdf/Scanner/Dialog.pm:391 msgid "Source document is double-sided" msgstr "Zdrojový dokument je oboustranný" #: bin/gscan2pdf:3629 lib/Gscan2pdf/Scanner/Dialog.pm:397 msgid "Side to scan" msgstr "Strana na snímání" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Facing" msgstr "Přední" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Reverse" msgstr "Zadní" #: bin/gscan2pdf:3655 lib/Gscan2pdf/Scanner/Dialog.pm:418 msgid "Sets which side of a double-sided document is scanned" msgstr "Nastaví jaká strana oboustranného dokumentu je skenována" #: bin/gscan2pdf:3719 msgid "Scan Options" msgstr "Vlastnosti skenování" #: bin/gscan2pdf:3722 msgid "Device-dependent options" msgstr "Volby závislé na zařízení" #: bin/gscan2pdf:3729 lib/Gscan2pdf/Scanner/Dialog.pm:458 msgid "Scan profiles" msgstr "Profily skenování" #: bin/gscan2pdf:3778 bin/gscan2pdf:3784 lib/Gscan2pdf/Scanner/Dialog.pm:479 #: lib/Gscan2pdf/Scanner/Dialog.pm:485 msgid "Name of scan profile" msgstr "Jméno profilu skenování" #: bin/gscan2pdf:3828 lib/Gscan2pdf/Scanner/Dialog.pm:518 msgid "Scan" msgstr "Skenovat" #: bin/gscan2pdf:3866 msgid "Must scan facing pages first" msgstr "Nutno nejdříve skenovat přední stránky" #: bin/gscan2pdf:3977 msgid "Post-processing" msgstr "Následné zpracování" #: bin/gscan2pdf:3986 bin/gscan2pdf:4008 msgid "Rotate" msgstr "Otočit" #: bin/gscan2pdf:3987 bin/gscan2pdf:4009 msgid "Rotate image after scanning" msgstr "Otočit obrázek po skenování" #: bin/gscan2pdf:3990 msgid "Both sides" msgstr "Obě strany" #: bin/gscan2pdf:3990 msgid "Both sides." msgstr "Obě strany." #: bin/gscan2pdf:3991 msgid "Facing side" msgstr "Přední strana" #: bin/gscan2pdf:3991 msgid "Facing side." msgstr "Přední strana." #: bin/gscan2pdf:3992 msgid "Reverse side" msgstr "Zadní strana" #: bin/gscan2pdf:3992 msgid "Reverse side." msgstr "Zadní strana." #: bin/gscan2pdf:3995 bin/gscan2pdf:4013 msgid "Select side to rotate" msgstr "Vyberte stranu pro otočení" #: bin/gscan2pdf:3998 msgid "90" msgstr "90" #: bin/gscan2pdf:3998 msgid "Rotate image 90 degrees clockwise." msgstr "Otočit obrázek o 90 stupnů vpravo" #: bin/gscan2pdf:3999 msgid "180" msgstr "180" #: bin/gscan2pdf:3999 msgid "Rotate image 180 degrees clockwise." msgstr "Otočit obrázek o 180 stupnů" #: bin/gscan2pdf:4000 msgid "270" msgstr "270" #: bin/gscan2pdf:4000 msgid "Rotate image 90 degrees anticlockwise." msgstr "Otočit obrázek o 90 stupňů vlevo" #: bin/gscan2pdf:4003 bin/gscan2pdf:4016 msgid "Select direction of rotation" msgstr "Vybrat směr rotace" #: bin/gscan2pdf:4083 msgid "Clean up images" msgstr "Vyčistit obrázky" #: bin/gscan2pdf:4094 msgid "Options" msgstr "Volby" #: bin/gscan2pdf:4095 msgid "Set unpaper options" msgstr "Nastavit vlastnosti unpaper" #: bin/gscan2pdf:4101 msgid "unpaper options" msgstr "volby unpaperu" #: bin/gscan2pdf:4136 bin/gscan2pdf:4137 msgid "OCR scanned pages" msgstr "OCR na oskenované stránky" #: bin/gscan2pdf:4151 msgid "Select OCR engine" msgstr "Vybrat OCR engine" #: bin/gscan2pdf:4210 lib/Gscan2pdf/Scanner/Dialog.pm:634 msgid "Fetching list of devices" msgstr "Stahuje se seznam zařízení" #: bin/gscan2pdf:4225 lib/Gscan2pdf/Scanner/Dialog.pm:654 msgid "No devices found" msgstr "Nenalezeno žádné zařízení" #: bin/gscan2pdf:4367 bin/gscan2pdf:4732 bin/gscan2pdf:4777 bin/gscan2pdf:5214 #: lib/Gscan2pdf/Scanner/Dialog.pm:343 lib/Gscan2pdf/Scanner/Dialog.pm:348 #: t/061_Scanner_Dialog.t:38 t/061_Scanner_Dialog.t:95 msgid "page-number-increment" msgstr "" #: bin/gscan2pdf:4374 bin/gscan2pdf:4729 bin/gscan2pdf:4730 bin/gscan2pdf:4776 #: bin/gscan2pdf:5213 lib/Gscan2pdf/Scanner/Dialog.pm:361 #: t/061_Scanner_Dialog.t:37 msgid "page-number-start" msgstr "" #: bin/gscan2pdf:4663 lib/Gscan2pdf/Scanner/Dialog.pm:210 msgid "Device" msgstr "Zařízení" #: bin/gscan2pdf:4671 lib/Gscan2pdf/Scanner/Dialog.pm:213 msgid "Rescan for devices" msgstr "Opakovat hledání zařízení" #: bin/gscan2pdf:4694 lib/Gscan2pdf/Scanner/Dialog.pm:237 msgid "Sets the device to be used for the scan" msgstr "Nastaví zařízení pro skenování" #: bin/gscan2pdf:4780 lib/Gscan2pdf/Scanner/Dialog.pm:300 #: t/061_Scanner_Dialog.t:35 msgid "num-pages" msgstr "" #: bin/gscan2pdf:4821 msgid "Scanning" msgstr "Skenuje se" #: bin/gscan2pdf:4974 msgid "Unable to load image" msgstr "Nelze načíst obrázek" #: bin/gscan2pdf:5004 msgid "print-pages" msgstr "tisk-stran" #: bin/gscan2pdf:5008 msgid "page-ranges" msgstr "rozsahy-stran" #: bin/gscan2pdf:5405 msgid "Patches gratefully received from:" msgstr "Záplata přijata od:" #: bin/gscan2pdf:5407 msgid "To aid the scan-to-PDF process" msgstr "Pomáhá skenovat dokumenty do PDF" #: bin/gscan2pdf:5408 msgid "Copyright 2006--2012 Jeffrey Ratcliffe" msgstr "Všechna právy vyhrazena 2006--2012 Jeffrey Ratcliffe" #: bin/gscan2pdf:5492 bin/gscan2pdf:6028 msgid "The options cache seems to be empty. Reload device-dependent options?" msgstr "" "Mezipaměť voleb se zdá být prázdná. Znovu načíst volby závislé na zařízení?" #: bin/gscan2pdf:5519 bin/gscan2pdf:6054 msgid "Updating options" msgstr "Aktualizuji volby" #: bin/gscan2pdf:5571 msgid "Paper size" msgstr "Rozměr papíru" #: bin/gscan2pdf:5572 bin/gscan2pdf:5672 bin/gscan2pdf:5840 bin/gscan2pdf:6769 msgid "Width" msgstr "Šířka" #: bin/gscan2pdf:5573 bin/gscan2pdf:5678 bin/gscan2pdf:5841 bin/gscan2pdf:6780 msgid "Height" msgstr "Výška" #: bin/gscan2pdf:5574 bin/gscan2pdf:5684 bin/gscan2pdf:5842 #: lib/Gscan2pdf/Unpaper.pm:124 lib/Gscan2pdf/Unpaper.pm:152 msgid "Left" msgstr "Vlevo" #: bin/gscan2pdf:5575 bin/gscan2pdf:5690 bin/gscan2pdf:5843 #: lib/Gscan2pdf/Unpaper.pm:129 lib/Gscan2pdf/Unpaper.pm:157 msgid "Top" msgstr "Horní" #: bin/gscan2pdf:5589 bin/gscan2pdf:5703 bin/gscan2pdf:6232 msgid "Manual" msgstr "Ručně" #: bin/gscan2pdf:5590 bin/gscan2pdf:5700 msgid "Edit" msgstr "Editovat" #: bin/gscan2pdf:5591 msgid "Selects or edits the paper size" msgstr "Vybírá nebo upravuje rozměry stránek" #: bin/gscan2pdf:5673 msgid "Width of scan area" msgstr "Šířka skenované oblasti" #: bin/gscan2pdf:5679 msgid "Height of scan area" msgstr "Výška skenované oblasti" #: bin/gscan2pdf:5685 msgid "Top-left x position of scan area" msgstr "Horní levá x pozice skenované oblasti" #: bin/gscan2pdf:5691 msgid "Top-left y position of scan area" msgstr "Horní levá y pozice skenované oblasti" #: bin/gscan2pdf:5822 msgid "Edit paper size" msgstr "Upravit velikost papíru" #: bin/gscan2pdf:5839 msgid "Name" msgstr "Jméno" #: bin/gscan2pdf:5893 msgid "Cannot delete all paper sizes" msgstr "Nelze smazat všechny rozměry stránek" #: bin/gscan2pdf:5955 msgid "" "The following paper sizes are too big to be scanned by the selected device:" msgstr "" "Následující velikosti stránek jsou příliš velké pro skenování s vybraným " "zařízením:" #: bin/gscan2pdf:6419 bin/gscan2pdf:6605 msgid "%" msgstr "%" #: bin/gscan2pdf:6492 msgid "Negate" msgstr "Negovat" #: bin/gscan2pdf:6562 msgid "Unsharp mask" msgstr "Maska rozostření" #: bin/gscan2pdf:6573 msgid "Radius" msgstr "Poloměr" #: bin/gscan2pdf:6575 bin/gscan2pdf:6592 bin/gscan2pdf:6747 bin/gscan2pdf:6759 #: bin/gscan2pdf:6771 bin/gscan2pdf:6782 msgid "pixels" msgstr "pixelů" #: bin/gscan2pdf:6582 msgid "" "The radius of the Gaussian, in pixels, not counting the center pixel (0 = " "automatic)." msgstr "" "Rádius Gaussianu, v pixelech bez středového pixelu (0 = automaticky)." #: bin/gscan2pdf:6590 msgid "Sigma" msgstr "Sigma" #: bin/gscan2pdf:6597 msgid "The standard deviation of the Gaussian." msgstr "Standardní odchylka Gaussianu." #: bin/gscan2pdf:6603 msgid "Amount" msgstr "Množství" #: bin/gscan2pdf:6612 msgid "" "The percentage of the difference between the original and the blur image " "that is added back into the original." msgstr "" "Procento rozdílu mezi původním a rozmazaným obrázkem, který je přidán zpátky " "do původního." #: bin/gscan2pdf:6627 msgid "" "The threshold, as a fraction of QuantumRange, needed to apply the difference " "amount." msgstr "Práh, zlomek kvantového rozsahu, potřebný k použití výše rozdílu." #: bin/gscan2pdf:6733 msgid "Crop" msgstr "Oříznout" #: bin/gscan2pdf:6745 msgid "x" msgstr "x" #: bin/gscan2pdf:6751 msgid "The x-position of the left hand edge of the crop." msgstr "Umístění x na levé straně hrany výřezu." #: bin/gscan2pdf:6757 msgid "y" msgstr "y" #: bin/gscan2pdf:6763 msgid "The y-position of the top edge of the crop." msgstr "Umístění y na horní hraně výřezu." #: bin/gscan2pdf:6774 msgid "The width of the crop." msgstr "Šířka výřezu." #: bin/gscan2pdf:6785 msgid "The height of the crop." msgstr "Výška výřezu." #: bin/gscan2pdf:6906 msgid "label" msgstr "popisek" #: bin/gscan2pdf:7007 msgid "unpaper" msgstr "unpaper" #: bin/gscan2pdf:7216 bin/gscan2pdf:7244 msgid "Language to recognise" msgstr "Jazyk pro rozpoznávání" #: bin/gscan2pdf:7227 msgid "English" msgstr "Anglický" #: bin/gscan2pdf:7270 msgid "OCR" msgstr "OCR" #: bin/gscan2pdf:7279 msgid "OCR Engine" msgstr "OCR program" #: bin/gscan2pdf:7323 msgid "Start OCR" msgstr "Spustit OCR" #: bin/gscan2pdf:7339 msgid "No page selected" msgstr "nebyla vybrána stránka" #: bin/gscan2pdf:7374 msgid "" "Some pages have not been saved.\n" "Do you really want to quit?" msgstr "" "Některé stránky nebyly uloženy.\n" "Opravdu chcete odejít?" #: bin/gscan2pdf:7432 #, perl-format msgid "" "The help viewer requires module Gtk2::Ex::PodViewer\n" "Alternatively, try: %s %s\n" "\n" msgstr "" "Prohlížeč nápovědy potřebuje modul Gtk2::Ex::PodViewer\n" "Případně zkuste: %s %s\n" "\n" #: bin/gscan2pdf:7698 msgid "This operation cannot be undone. Are you sure?" msgstr "Tato operace nelze vzít zpět. Jste si jist?" #: bin/gscan2pdf:7753 msgid "Preferences" msgstr "Předvolby" #: bin/gscan2pdf:7762 msgid "Frontend" msgstr "Rozhraní" #: bin/gscan2pdf:7766 msgid "libsane-perl" msgstr "libsane-perl" #: bin/gscan2pdf:7767 msgid "Scan using the perl bindings for SANE." msgstr "Skenovat pomocí vázání perl pro SANE" #: bin/gscan2pdf:7770 msgid "scanimage" msgstr "scanimage" #: bin/gscan2pdf:7771 msgid "Scan using the scanimage frontend." msgstr "Skenovat pomocí rozhraní scanimage" #: bin/gscan2pdf:7775 msgid "scanimage-perl" msgstr "scanimage-perl" #: bin/gscan2pdf:7776 msgid "Scan using the scanimage-perl frontend." msgstr "Skenovat pomocí rozhraní scanimage-perl" #: bin/gscan2pdf:7779 msgid "scanadf-perl" msgstr "scanadf-perl" #: bin/gscan2pdf:7780 msgid "Scan using the scanadf-perl frontend." msgstr "Skenovat pomocí rozhraní scanadf-perl" #: bin/gscan2pdf:7785 msgid "scanadf" msgstr "scanadf" #: bin/gscan2pdf:7786 msgid "Scan using the scanadf frontend." msgstr "Skenovat pomocí rozhraní scanadf" #: bin/gscan2pdf:7791 msgid "Cycle SANE handle after scan" msgstr "Kroužit obslužnou rutinou SANE po skenování" #: bin/gscan2pdf:7814 msgid "Default filename for PDFs" msgstr "Výchozí název souboru pro PDF" #: bin/gscan2pdf:7820 msgid "" "%a\t author\n" "%t\t title\n" "%y\t document's year\n" "%Y\t today's year\n" "%m\t document's month\n" "%M\t today's month\n" "%d\t document's day\n" "%D\t today's day" msgstr "" "%a\t autor\n" "%t\t název\n" "%y\t rok dokumentu\n" "%Y\t dnešní rok\n" "%m\t měsíc dokumentu\n" "%M\t dnešní měsíc\n" "%d\t den dokumentu\n" "%D\t dnešní den" #: bin/gscan2pdf:7830 msgid "Scan command prefix" msgstr "Prefix příkazu skenování" #: bin/gscan2pdf:7839 msgid "Restore window settings on startup" msgstr "Obnovit nastavení okna při spuštění" #: bin/gscan2pdf:7845 msgid "Cache device-dependent options" msgstr "Volby mezipaměti závislé na zařízení" #: bin/gscan2pdf:7851 msgid "Clear device-dependent options cache" msgstr "Vyčistit mezipaměť volb závislých na zařízení" #: bin/gscan2pdf:7862 msgid "Temporary directory" msgstr "Dočasný adresář" #: bin/gscan2pdf:7867 msgid "Browse" msgstr "Procházet" #: bin/gscan2pdf:7871 msgid "Select temporary directory" msgstr "Vybrat dočasný adresář" #: bin/gscan2pdf:7888 msgid "Blank threshold" msgstr "Práh prázdnoty" #: bin/gscan2pdf:7893 msgid "Threshold used for selecting blank pages" msgstr "Práh, který je použit pro vybrání prázdných stránek" #: bin/gscan2pdf:7899 msgid "Dark threshold" msgstr "Práh temnoty" #: bin/gscan2pdf:7904 msgid "Threshold used for selecting dark pages" msgstr "Práh, který je použit pro výběr temných stránek" #: bin/gscan2pdf:7910 msgid "OCR output" msgstr "Výstup OCR" #: bin/gscan2pdf:7915 msgid "Replace" msgstr "Nahradit" #: bin/gscan2pdf:7917 msgid "" "Replace the contents of the text buffer with that from the OCR output." msgstr "Nahradit obsah textové vyrovnávací paměti obsahem výstupu OCR." #: bin/gscan2pdf:7920 msgid "Prepend" msgstr "Předřadit" #: bin/gscan2pdf:7921 msgid "Prepend the OCR output to the text buffer." msgstr "Předřadit výstup OCR do textové vyrovnávací paměti." #: bin/gscan2pdf:7924 msgid "Append" msgstr "Připojit" #: bin/gscan2pdf:7925 msgid "Append the OCR output to the text buffer." msgstr "Připojit výstup OCR do textové vyrovnávací paměti." #: bin/gscan2pdf:7933 msgid "User-defined tools" msgstr "Nástroje určené uživatelem" #: bin/gscan2pdf:7954 msgid "View files on saving" msgstr "Zobrazit soubory při ukládaní" #: bin/gscan2pdf:8000 msgid "" "You will have to restart gscanp2df for changes to the temporary directory to " "take effect." msgstr "" "Bude třeba restartovat gscan2pdf pro provedení změn v dočasném adresáři." #: bin/gscan2pdf:8092 msgid "" "Use %i and %o for the input and output filenames respectively, or a single " "%i if the image is to be modified in-place.\n" "\n" "The other variable available is:\n" "\n" "%r resolution" msgstr "" "Použijte %i a %o pro názvy souborů výstupu a vstupu, nebo jedno %i pokud má " "být obrázek upravován na místě..\n" "\n" "Další dostupná proměnná je:\n" "\n" "%r rozměr" #: bin/gscan2pdf:8119 msgid "Properties" msgstr "Vlastnosti" #: lib/Gscan2pdf/Dialog.pm:63 lib/Gscan2pdf/Dialog.pm:79 t/05_Dialog.t:25 msgid "hide-on-delete" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:78 lib/Gscan2pdf/Dialog/Renumber.pm:162 msgid "Renumber" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:98 lib/Gscan2pdf/Dialog/Renumber.pm:207 #: lib/Gscan2pdf/Dialog/Renumber.pm:244 msgid "range" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:102 msgid "Page numbering" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:105 lib/Gscan2pdf/Scanner/Dialog.pm:254 msgid "border_width" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:126 lib/Gscan2pdf/Dialog/Renumber.pm:192 #: lib/Gscan2pdf/Dialog/Renumber.pm:242 t/07_Dialog_Renumber.t:33 #: t/07_Dialog_Renumber.t:45 t/07_Dialog_Renumber.t:59 #: t/07_Dialog_Renumber.t:66 msgid "start" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:147 lib/Gscan2pdf/Dialog/Renumber.pm:193 #: lib/Gscan2pdf/Dialog/Renumber.pm:243 t/07_Dialog_Renumber.t:34 #: t/07_Dialog_Renumber.t:46 t/07_Dialog_Renumber.t:60 #: t/07_Dialog_Renumber.t:67 msgid "increment" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:205 lib/Gscan2pdf/Dialog/Renumber.pm:241 msgid "document" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:295 msgid "" "The current settings would result in duplicate page numbers. Please select " "new start and increment values." msgstr "" #: lib/Gscan2pdf/Document.pm:83 msgid "Thumbnails" msgstr "Miniatury" #: lib/Gscan2pdf/Document.pm:1502 msgid "Unknown DjVu file structure. Please contact the author." msgstr "Neznámá struktura souboru DjVu. Prosím kontaktujte autora." #: lib/Gscan2pdf/Document.pm:1558 #, perl-format msgid "%s is not a recognised image type" msgstr "%s není rozpoznávaný typ obrázku" #: lib/Gscan2pdf/Document.pm:1580 lib/Gscan2pdf/Document.pm:1637 #, perl-format msgid "Importing page %i of %i" msgstr "Importování stránky %i z %i" #: lib/Gscan2pdf/Document.pm:1613 msgid "Error extracting images from PDF" msgstr "Chyba při xtrahování obrázků z PDF" #: lib/Gscan2pdf/Document.pm:1692 msgid "Setting up PDF" msgstr "Nastavování PDF" #: lib/Gscan2pdf/Document.pm:1703 #, perl-format msgid "Saving page %i of %i" msgstr "Ukládání stránky %i z %i" #: lib/Gscan2pdf/Document.pm:1814 lib/Gscan2pdf/Document.pm:2136 #, perl-format msgid "Error compressing image: %s" msgstr "Chyba při komprimaci obrázku: %s" #: lib/Gscan2pdf/Document.pm:1919 #, perl-format msgid "Error creating PDF image object: %s" msgstr "Chyba při vytváření objektu obrázku PDF: %s" #: lib/Gscan2pdf/Document.pm:1930 #, perl-format msgid "Error embedding file image in %s format to PDF: %s" msgstr "Chyba při vnořování souboru obrázku ve formátu %s do PDF: %s" #: lib/Gscan2pdf/Document.pm:1939 msgid "Closing PDF" msgstr "Uzavírání PDF" #: lib/Gscan2pdf/Document.pm:1955 #, perl-format msgid "Writing page %i of %i" msgstr "Zápis stránky %i z %i" #: lib/Gscan2pdf/Document.pm:2006 msgid "Error writing DjVu" msgstr "Chyba při zápisu DjVu" #: lib/Gscan2pdf/Document.pm:2025 lib/Gscan2pdf/Document.pm:2227 #, perl-format msgid "Can't open file: %s" msgstr "Nelze otevřít soubor: %s" #: lib/Gscan2pdf/Document.pm:2050 msgid "Error adding text layer to DjVu" msgstr "Chyba při přidávání textové vrstvy do DjVu" #: lib/Gscan2pdf/Document.pm:2056 msgid "Closing DjVu" msgstr "Uzavírání DjVu" #: lib/Gscan2pdf/Document.pm:2063 msgid "Error closing DjVu" msgstr "Chyba při uzavírání DjVu" #: lib/Gscan2pdf/Document.pm:2078 #, perl-format msgid "Converting image %i of %i to TIFF" msgstr "Převod obrázku %i z %i do TIFF" #: lib/Gscan2pdf/Document.pm:2105 msgid "Error writing TIFF" msgstr "Chyba při zápisu TIFF" #: lib/Gscan2pdf/Document.pm:2121 msgid "Concatenating TIFFs" msgstr "Zřetězení TIFF" #: lib/Gscan2pdf/Document.pm:2140 msgid "Converting to PS" msgstr "Převod do PS" #: lib/Gscan2pdf/Document.pm:2200 lib/Gscan2pdf/Document.pm:2215 msgid "Error saving image" msgstr "Chyba při ukládání obrázku" #: lib/Gscan2pdf/Frontend/CLI.pm:158 #, perl-format msgid "Scanning %i pages..." msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:163 #, perl-format msgid "Scanning page %i..." msgstr "Skenuje se stránka %i..." #: lib/Gscan2pdf/Frontend/CLI.pm:188 lib/Gscan2pdf/Frontend/CLI.pm:296 msgid "Scanner warming up" msgstr "Zahřívání skeneru" #: lib/Gscan2pdf/Frontend/CLI.pm:195 msgid "Document feeder out of documents" msgstr "Podavač dokumentů je prázdný" #: lib/Gscan2pdf/Frontend/CLI.pm:212 lib/Gscan2pdf/Frontend/CLI.pm:325 msgid "Device busy" msgstr "Zařízení zaneprázdněno" #: lib/Gscan2pdf/Frontend/CLI.pm:218 lib/Gscan2pdf/Frontend/CLI.pm:330 msgid "Operation cancelled" msgstr "Operace zrušena" #: lib/Gscan2pdf/Frontend/CLI.pm:223 lib/Gscan2pdf/Frontend/CLI.pm:336 msgid "Unknown message: " msgstr "Neznámá zpráva: " #: lib/Gscan2pdf/Page.pm:68 lib/Gscan2pdf/Page.pm:73 #, perl-format msgid "Error importing image %s: %s" msgstr "" #: lib/Gscan2pdf/PageRange.pm:33 msgid "Selected" msgstr "Vybrané" #: lib/Gscan2pdf/PageRange.pm:58 msgid "active" msgstr "aktivní" #: lib/Gscan2pdf/Scanner/Dialog.pm:218 t/061_Scanner_Dialog.t:33 #: t/061_Scanner_Dialog.t:59 msgid "device-list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:496 t/061_Scanner_Dialog.t:139 #: t/061_Scanner_Dialog.t:174 t/062_Scanner_Dialog.t:50 #: t/062_Scanner_Dialog.t:75 msgid "current-scan-options" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:567 msgid "logger" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:650 t/05_Dialog.t:24 msgid "transient-for" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:716 msgid "device_list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:749 t/061_Scanner_Dialog.t:32 msgid "device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:751 msgid "Opening device" msgstr "Otevírání zařízení" #: lib/Gscan2pdf/Scanner/Dialog.pm:760 msgid "Retrieving options" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:41 msgid "Layout" msgstr "Formát" #: lib/Gscan2pdf/Unpaper.pm:44 msgid "Single" msgstr "Jednotlivé" #: lib/Gscan2pdf/Unpaper.pm:46 msgid "One page per sheet, oriented upwards without rotation." msgstr "Jedna stránka na list, orientovaná na výšku bez rotace." #: lib/Gscan2pdf/Unpaper.pm:49 msgid "Double" msgstr "Dvojité" #: lib/Gscan2pdf/Unpaper.pm:51 msgid "" "Two pages per sheet, landscape orientation (one page on the left half, one " "page on the right half)." msgstr "" "Dvě stránky na list, orientovaná na šířku (jedna stránka na levé půlce, " "druhá na pravé)" #: lib/Gscan2pdf/Unpaper.pm:59 msgid "# Output pages" msgstr "# Výstupní stránky" #: lib/Gscan2pdf/Unpaper.pm:60 msgid "Number of pages to output." msgstr "Počet stránek k výstupu" #: lib/Gscan2pdf/Unpaper.pm:68 msgid "No deskew" msgstr "Bez deskew" #: lib/Gscan2pdf/Unpaper.pm:69 msgid "Disable deskewing." msgstr "Zakázat deskew" #: lib/Gscan2pdf/Unpaper.pm:74 msgid "No mask scan" msgstr "Bez skenování masky" #: lib/Gscan2pdf/Unpaper.pm:75 msgid "Disable mask detection." msgstr "Zakázat detekci masky" #: lib/Gscan2pdf/Unpaper.pm:80 msgid "No black filter" msgstr "Bez filtru černé" #: lib/Gscan2pdf/Unpaper.pm:81 msgid "Disable black area scan." msgstr "Zakázat skenování černé oblasti" #: lib/Gscan2pdf/Unpaper.pm:86 msgid "No gray filter" msgstr "Bez filtru šedé" #: lib/Gscan2pdf/Unpaper.pm:87 msgid "Disable gray area scan." msgstr "Zakázat skenování šedé oblasti" #: lib/Gscan2pdf/Unpaper.pm:92 msgid "No noise filter" msgstr "Bez filtru šumu" #: lib/Gscan2pdf/Unpaper.pm:93 msgid "Disable noise filter." msgstr "Zakázat filtr šumu." #: lib/Gscan2pdf/Unpaper.pm:98 msgid "No blur filter" msgstr "Bez filtru rozmazání" #: lib/Gscan2pdf/Unpaper.pm:99 msgid "Disable blur filter." msgstr "Zakázat filtr rozmazání" #: lib/Gscan2pdf/Unpaper.pm:104 msgid "No border scan" msgstr "Bez skenování ohraničení" #: lib/Gscan2pdf/Unpaper.pm:105 msgid "Disable border scanning." msgstr "Zakázat skenování ohraničení" #: lib/Gscan2pdf/Unpaper.pm:110 msgid "No border align" msgstr "Bez zarovnání kraje" #: lib/Gscan2pdf/Unpaper.pm:112 msgid "Disable aligning of the area detected by border scanning." msgstr "Zakázat zarovnání oblasti detekované skenováním okrajů." #: lib/Gscan2pdf/Unpaper.pm:117 msgid "Deskew to edge" msgstr "Deskew k okraji" #: lib/Gscan2pdf/Unpaper.pm:119 msgid "" "Edges from which to scan for rotation. Each edge of a mask can be used to " "detect the mask's rotation. If multiple edges are specified, the average " "value will be used, unless the statistical deviation exceeds --deskew-scan-" "deviation." msgstr "" "Okraje, ze kterých vyhledávat rotaci. Každý okraj masky může být použít pro " "detekci rotace masky. Při zadání více okrajů je použita průměrná hodnota " "dokud není překročena statistická deviace --deskew-scan-deviation." #: lib/Gscan2pdf/Unpaper.pm:125 msgid "Use 'left' for scanning from the left edge." msgstr "Použijte \"vlevo\" pro snímání od levého okraje." #: lib/Gscan2pdf/Unpaper.pm:130 msgid "Use 'top' for scanning from the top edge." msgstr "Použijte \"horní\" pro snímání od horního okraje." #: lib/Gscan2pdf/Unpaper.pm:134 lib/Gscan2pdf/Unpaper.pm:162 msgid "Right" msgstr "Vpravo" #: lib/Gscan2pdf/Unpaper.pm:135 msgid "Use 'right' for scanning from the right edge." msgstr "Použijte \"vpravo\" pro snímání od pravého okraje." #: lib/Gscan2pdf/Unpaper.pm:139 lib/Gscan2pdf/Unpaper.pm:167 msgid "Bottom" msgstr "Spodní" #: lib/Gscan2pdf/Unpaper.pm:140 msgid "Use 'bottom' for scanning from the bottom." msgstr "Použijte \"spodní\" pro snímání od spodního okraje." #: lib/Gscan2pdf/Unpaper.pm:147 msgid "Align to edge" msgstr "Zarovnat k okraji" #: lib/Gscan2pdf/Unpaper.pm:148 msgid "Edge to which to align the page." msgstr "Okraj pro zarovnání stránky." #: lib/Gscan2pdf/Unpaper.pm:153 msgid "Use 'left' to align to the left edge." msgstr "Použijte \"vlevo\" pro zarovnání stránky k levému okraji." #: lib/Gscan2pdf/Unpaper.pm:158 msgid "Use 'top' to align to the top edge." msgstr "Použijte \"nahoru\" pro zarovní stránky k hornímu okraji." #: lib/Gscan2pdf/Unpaper.pm:163 msgid "Use 'right' to align to the right edge." msgstr "Použijte \"vpravo\" pro zarovní stránky k pravému okraji." #: lib/Gscan2pdf/Unpaper.pm:168 msgid "Use 'bottom' to align to the bottom." msgstr "Použijte \"dolů\" pro zarovní stránky ke spodnímu okraji." #: lib/Gscan2pdf/Unpaper.pm:174 msgid "Border margin" msgstr "Mez okraje" #: lib/Gscan2pdf/Unpaper.pm:178 msgid "Vertical margin" msgstr "Svislý okraj" #: lib/Gscan2pdf/Unpaper.pm:180 msgid "" "Vertical distance to keep from the sheet edge when aligning a border area." msgstr "" "Svislá vzdálenost pro zachování kraje listu při zarovnávání okraje oblasti." #: lib/Gscan2pdf/Unpaper.pm:189 msgid "Horizontal margin" msgstr "Vodorovný okraj" #: lib/Gscan2pdf/Unpaper.pm:191 msgid "" "Horizontal distance to keep from the sheet edge when aligning a border area." msgstr "" "Vodorovná vzdálenost pro zachování kraje listu při zarovnávání okraje " "oblasti." #: lib/Gscan2pdf/Unpaper.pm:202 msgid "White threshold" msgstr "Práh bílé" #: lib/Gscan2pdf/Unpaper.pm:204 msgid "Brightness ratio above which a pixel is considered white." msgstr "Poměr jasu, nad který je pixel považován za bílý." #: lib/Gscan2pdf/Unpaper.pm:212 msgid "Black threshold" msgstr "Práh černé" #: lib/Gscan2pdf/Unpaper.pm:214 msgid "" "Brightness ratio below which a pixel is considered black (non-gray). This is " "used by the gray-filter. This value is also used when converting a grayscale " "image to black-and-white mode." msgstr "" "Poměr jasu, nad který je pixel považován za bílý (ne šedý). Je to používáno " "filtrem šedé. Tato hodnota je také používána při konverzi šedého obrázku do " "černobílé." #: lib/Gscan2pdf/Unpaper.pm:250 msgid "Deskew" msgstr "Deskew" #: lib/Gscan2pdf/Unpaper.pm:280 msgid "Border" msgstr "Ohraničení" #: lib/Gscan2pdf/Unpaper.pm:337 msgid "Filters" msgstr "Filtry" #: t/05_Dialog.t:23 msgid "title" msgstr "" #: t/05_Dialog.t:26 t/05_Dialog.t:31 t/05_Dialog.t:32 t/05_Dialog.t:38 #: t/05_Dialog.t:39 msgid "border-width" msgstr "" #: t/061_Scanner_Dialog.t:34 msgid "dir" msgstr "" #: t/061_Scanner_Dialog.t:36 msgid "max-pages" msgstr "" #: t/061_Scanner_Dialog.t:39 msgid "side-to-scan" msgstr "" #: t/061_Scanner_Dialog.t:40 t/061_Scanner_Dialog.t:185 msgid "available-scan-options" msgstr "" #: t/061_Scanner_Dialog.t:171 t/062_Scanner_Dialog.t:73 msgid "profile" msgstr "" gscan2pdf-1.2.3/po/gscan2pdf-en_GB.po0000644000175000017500000012605512243440507015601 0ustar jeffjeff# English (United Kingdom) translation for gscan2pdf # Copyright (c) 2006 Rosetta Contributors and Canonical Ltd 2006 # This file is distributed under the same license as the gscan2pdf package. # FIRST AUTHOR , 2006. # msgid "" msgstr "" "Project-Id-Version: gscan2pdf\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-10-25 08:12+0200\n" "PO-Revision-Date: 2011-09-09 05:52+0000\n" "Last-Translator: Jessica Tallon \n" "Language-Team: English (United Kingdom) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-19 09:22+0000\n" "X-Generator: Launchpad (build 16831)\n" #: bin/gscan2pdf:157 msgid "Error displaying help" msgstr "" #: bin/gscan2pdf:201 msgid "" "Error: unable to load settings.\n" "Backing up settings\n" "Reverting to defaults" msgstr "" "Error: unable to load settings.\n" "Backing up settings\n" "Reverting to defaults" #: bin/gscan2pdf:244 msgid "A4" msgstr "A4" #: bin/gscan2pdf:250 msgid "US Letter" msgstr "US Letter" #: bin/gscan2pdf:256 msgid "US Legal" msgstr "US Legal" #: bin/gscan2pdf:323 bin/gscan2pdf:344 #, perl-format msgid "Cannot read file: %s" msgstr "" #: bin/gscan2pdf:451 msgid "_File" msgstr "_File" #: bin/gscan2pdf:454 msgid "_New" msgstr "_New" #: bin/gscan2pdf:455 msgid "Clears all pages" msgstr "Clears all pages" #: bin/gscan2pdf:459 msgid "_Open" msgstr "_Open" #: bin/gscan2pdf:460 msgid "Open image file(s)" msgstr "" #: bin/gscan2pdf:465 msgid "S_can" msgstr "S_can" #: bin/gscan2pdf:467 msgid "Scan document" msgstr "Scan document" #: bin/gscan2pdf:471 bin/gscan2pdf:472 bin/gscan2pdf:2582 msgid "Save" msgstr "Save" #: bin/gscan2pdf:476 msgid "_Email as PDF" msgstr "_Email as PDF" #: bin/gscan2pdf:477 msgid "Attach as PDF to a new email" msgstr "Attach as PDF to a new email" #: bin/gscan2pdf:480 msgid "_Print" msgstr "_Print" #: bin/gscan2pdf:481 msgid "Print" msgstr "Print" #: bin/gscan2pdf:485 msgid "_Compress temporary files" msgstr "_Compress temporary files" #: bin/gscan2pdf:486 msgid "Compress temporary files" msgstr "Compress temporary files" #: bin/gscan2pdf:490 msgid "_Quit" msgstr "_Quit" #: bin/gscan2pdf:491 msgid "Quit" msgstr "Quit" #: bin/gscan2pdf:495 msgid "_Edit" msgstr "_Edit" #: bin/gscan2pdf:497 msgid "_Undo" msgstr "_Undo" #: bin/gscan2pdf:497 msgid "Undo" msgstr "Undo" #: bin/gscan2pdf:501 msgid "_Redo" msgstr "_Redo" #: bin/gscan2pdf:502 msgid "Redo" msgstr "Redo" #: bin/gscan2pdf:506 msgid "Cu_t" msgstr "Cu_t" #: bin/gscan2pdf:507 msgid "Cut selection" msgstr "Cut selection" #: bin/gscan2pdf:511 msgid "_Copy" msgstr "_Copy" #: bin/gscan2pdf:512 msgid "Copy selection" msgstr "Copy selection" #: bin/gscan2pdf:516 msgid "_Paste" msgstr "_Paste" #: bin/gscan2pdf:517 msgid "Paste selection" msgstr "Paste selection" #: bin/gscan2pdf:521 msgid "_Delete" msgstr "_Delete" #: bin/gscan2pdf:522 msgid "Delete selected pages" msgstr "Delete selected pages" #: bin/gscan2pdf:526 msgid "_Renumber" msgstr "_Renumber" #: bin/gscan2pdf:527 msgid "Renumber pages" msgstr "Renumber pages" #: bin/gscan2pdf:529 bin/gscan2pdf:679 msgid "_Select" msgstr "_Select" #: bin/gscan2pdf:532 msgid "_All" msgstr "_All" #: bin/gscan2pdf:533 msgid "Select all pages" msgstr "Select all pages" #: bin/gscan2pdf:536 msgid "_Odd" msgstr "_Odd" #: bin/gscan2pdf:537 msgid "Select all odd-numbered pages" msgstr "Select all odd-numbered pages" #: bin/gscan2pdf:541 msgid "_Even" msgstr "_Even" #: bin/gscan2pdf:542 msgid "Select all evenly-numbered pages" msgstr "Select all evenly-numbered pages" #: bin/gscan2pdf:547 msgid "_Blank" msgstr "_Blank" #: bin/gscan2pdf:548 msgid "Select pages with low standard deviation" msgstr "Select pages with low standard deviation" #: bin/gscan2pdf:552 msgid "_Dark" msgstr "_Dark" #: bin/gscan2pdf:553 msgid "Select dark pages" msgstr "Select dark pages" #: bin/gscan2pdf:558 msgid "_Modified" msgstr "" #: bin/gscan2pdf:560 msgid "Select modified pages since last OCR" msgstr "" #: bin/gscan2pdf:565 msgid "_No OCR" msgstr "" #: bin/gscan2pdf:566 msgid "Select pages with no OCR output" msgstr "" #: bin/gscan2pdf:570 msgid "_Clear OCR" msgstr "" #: bin/gscan2pdf:571 msgid "Clear OCR output from selected pages" msgstr "" #: bin/gscan2pdf:575 msgid "Propert_ies" msgstr "Propert_ies" #: bin/gscan2pdf:576 msgid "Edit image properties" msgstr "Edit image properties" #: bin/gscan2pdf:580 msgid "Prefere_nces" msgstr "Prefere_nces" #: bin/gscan2pdf:581 msgid "Edit preferences" msgstr "Edit preferences" #: bin/gscan2pdf:585 msgid "_View" msgstr "_View" #: bin/gscan2pdf:588 msgid "Zoom _100%" msgstr "Zoom _100%" #: bin/gscan2pdf:589 msgid "Zoom to 100%" msgstr "Zoom to 100%" #: bin/gscan2pdf:593 msgid "Zoom to _fit" msgstr "Zoom to _fit" #: bin/gscan2pdf:594 msgid "Zoom to fit" msgstr "Zoom to fit" #: bin/gscan2pdf:598 msgid "Zoom _in" msgstr "Zoom _in" #: bin/gscan2pdf:599 msgid "Zoom in" msgstr "Zoom in" #: bin/gscan2pdf:603 msgid "Zoom _out" msgstr "Zoom _out" #: bin/gscan2pdf:604 msgid "Zoom out" msgstr "Zoom out" #: bin/gscan2pdf:609 bin/gscan2pdf:611 msgid "Rotate 90 clockwise" msgstr "Rotate 90 clockwise" #: bin/gscan2pdf:617 bin/gscan2pdf:619 msgid "Rotate 180" msgstr "Rotate 180" #: bin/gscan2pdf:625 bin/gscan2pdf:627 msgid "Rotate 90 anticlockwise" msgstr "Rotate 90 anticlockwise" #: bin/gscan2pdf:632 msgid "_Tools" msgstr "_Tools" #: bin/gscan2pdf:634 msgid "_Threshold" msgstr "_Threshold" #: bin/gscan2pdf:635 msgid "Change each pixel above this threshold to black" msgstr "Change each pixel above this threshold to black" #: bin/gscan2pdf:639 msgid "_Negate" msgstr "_Negate" #: bin/gscan2pdf:640 msgid "Converts black to white and vice versa" msgstr "Converts black to white and vice versa" #: bin/gscan2pdf:644 msgid "_Unsharp Mask" msgstr "_Unsharp Mask" #: bin/gscan2pdf:645 msgid "Apply an unsharp mask" msgstr "Apply an unsharp mask" #: bin/gscan2pdf:648 msgid "_Crop" msgstr "_Crop" #: bin/gscan2pdf:649 msgid "Crop pages" msgstr "Crop pages" #: bin/gscan2pdf:653 msgid "_Clean up" msgstr "_Clean up" #: bin/gscan2pdf:654 bin/gscan2pdf:4085 msgid "Clean up scanned images with unpaper" msgstr "Clean up scanned images with unpaper" #: bin/gscan2pdf:657 msgid "_OCR" msgstr "_OCR" #: bin/gscan2pdf:658 msgid "Optical Character Recognition" msgstr "Optical Character Recognition" #: bin/gscan2pdf:660 msgid "U_ser-defined" msgstr "" #: bin/gscan2pdf:663 bin/gscan2pdf:665 msgid "_Help" msgstr "_Help" #: bin/gscan2pdf:666 msgid "Help" msgstr "Help" #: bin/gscan2pdf:668 msgid "_About" msgstr "_About" #: bin/gscan2pdf:674 msgid "_Drag" msgstr "_Drag" #: bin/gscan2pdf:675 msgid "Use the hand tool" msgstr "Use the hand tool" #: bin/gscan2pdf:680 msgid "Use the rectangular selection tool" msgstr "Use the rectangular selection tool" #: bin/gscan2pdf:684 msgid "_Paint" msgstr "_Paint" #: bin/gscan2pdf:685 msgid "Use the painter tool" msgstr "Use the painter tool" #: bin/gscan2pdf:965 lib/Gscan2pdf/Document.pm:2594 #: lib/Gscan2pdf/Document.pm:2595 msgid "Error copying page" msgstr "Error copying page" #: bin/gscan2pdf:1082 msgid "Image" msgstr "Image" #: bin/gscan2pdf:1117 msgid "OCR Output" msgstr "OCR Output" #: bin/gscan2pdf:1174 msgid "Mode" msgstr "Mode" #: bin/gscan2pdf:1176 msgid "Lineart" msgstr "Lineart" #: bin/gscan2pdf:1177 msgid "Grayscale" msgstr "Greyscale" #: bin/gscan2pdf:1178 msgid "Gray" msgstr "Grey" #: bin/gscan2pdf:1179 msgid "Color" msgstr "Colour" #: bin/gscan2pdf:1180 msgid "Black & White" msgstr "Black & White" #: bin/gscan2pdf:1181 msgid "True Gray" msgstr "True Grey" #: bin/gscan2pdf:1182 msgid "Binary" msgstr "Binary" #: bin/gscan2pdf:1183 bin/gscan2pdf:1242 bin/gscan2pdf:1243 msgid "Auto" msgstr "Auto" #: bin/gscan2pdf:1184 msgid "Halftone" msgstr "Halftone" #: bin/gscan2pdf:1185 msgid "24bit Color" msgstr "24bit Colour" #: bin/gscan2pdf:1189 bin/gscan2pdf:2547 bin/gscan2pdf:2644 msgid "Compression" msgstr "Compression" #: bin/gscan2pdf:1191 bin/gscan2pdf:2539 bin/gscan2pdf:2636 msgid "None" msgstr "None" #: bin/gscan2pdf:1192 bin/gscan2pdf:2537 bin/gscan2pdf:2601 bin/gscan2pdf:2622 msgid "JPEG" msgstr "JPEG" #: bin/gscan2pdf:1195 bin/gscan2pdf:8127 msgid "Resolution" msgstr "Resolution" #: bin/gscan2pdf:1196 msgid "Brightness" msgstr "Brightness" #: bin/gscan2pdf:1197 msgid "Gain" msgstr "Gain" #: bin/gscan2pdf:1198 msgid "Contrast" msgstr "Contrast" #: bin/gscan2pdf:1199 bin/gscan2pdf:6406 bin/gscan2pdf:6417 bin/gscan2pdf:6620 msgid "Threshold" msgstr "Threshold" #: bin/gscan2pdf:1201 msgid "Speed" msgstr "Speed" #: bin/gscan2pdf:1203 bin/gscan2pdf:1210 bin/gscan2pdf:1217 bin/gscan2pdf:1224 #: bin/gscan2pdf:1231 msgid "Yes" msgstr "Yes" #: bin/gscan2pdf:1204 bin/gscan2pdf:1211 bin/gscan2pdf:1218 bin/gscan2pdf:1225 #: bin/gscan2pdf:1232 msgid "No" msgstr "No" #: bin/gscan2pdf:1208 msgid "Batch scan" msgstr "Batch scan" #: bin/gscan2pdf:1215 bin/gscan2pdf:1222 msgid "Wait for button" msgstr "Wait for button" #: bin/gscan2pdf:1229 msgid "Cache calibration" msgstr "Cache calibration" #: bin/gscan2pdf:1236 msgid "Source" msgstr "Source" #: bin/gscan2pdf:1238 msgid "Normal" msgstr "Normal" #: bin/gscan2pdf:1239 msgid "ADF" msgstr "ADF" #: bin/gscan2pdf:1240 msgid "Automatic Document Feeder" msgstr "Automatic Document Feeder" #: bin/gscan2pdf:1241 msgid "XPA" msgstr "XPA" #: bin/gscan2pdf:1244 msgid "Flatbed" msgstr "Flatbed" #: bin/gscan2pdf:1245 msgid "Transparency Adapter" msgstr "Transparency Adaptor" #: bin/gscan2pdf:1246 msgid "Transparency Unit" msgstr "Transparency Unit" #: bin/gscan2pdf:1249 bin/gscan2pdf:1251 msgid "Page Width" msgstr "Page Width" #: bin/gscan2pdf:1250 bin/gscan2pdf:1252 msgid "Page Height" msgstr "Page Height" #: bin/gscan2pdf:1253 msgid "Top Overscan" msgstr "Top Overscan" #: bin/gscan2pdf:1254 msgid "Bottom Overscan" msgstr "Bottom Overscan" #: bin/gscan2pdf:1256 bin/gscan2pdf:1263 msgid "ADF Mode" msgstr "ADF Mode" #: bin/gscan2pdf:1258 bin/gscan2pdf:1265 msgid "Simplex" msgstr "Simplex" #: bin/gscan2pdf:1259 bin/gscan2pdf:1266 msgid "Duplex" msgstr "Duplex" #: bin/gscan2pdf:1301 bin/gscan2pdf:1306 msgid "Pick crashed session to restore" msgstr "" #: bin/gscan2pdf:1308 bin/gscan2pdf:2609 msgid "Session" msgstr "Session" #: bin/gscan2pdf:1338 #, perl-format msgid "" "Warning: unable to use %s for temporary storage. Defaulting to %s instead." msgstr "" "Warning: unable to use %s for temporary storage. Defaulting to %s instead." #: bin/gscan2pdf:1441 msgid "GOCR" msgstr "GOCR" #: bin/gscan2pdf:1441 msgid "Process image with GOCR." msgstr "Process image with GOCR." #: bin/gscan2pdf:1445 msgid "Tesseract" msgstr "Tesseract" #: bin/gscan2pdf:1446 msgid "Process image with Tesseract." msgstr "Process image with Tesseract." #: bin/gscan2pdf:1450 msgid "Ocropus" msgstr "" #: bin/gscan2pdf:1450 msgid "Process image with Ocropus." msgstr "" #: bin/gscan2pdf:1454 msgid "Cuneiform" msgstr "" #: bin/gscan2pdf:1455 msgid "Process image with Cuneiform." msgstr "" #: bin/gscan2pdf:1461 msgid "Save image and Save as PDF both require imagemagick\n" msgstr "Save image and Save as PDF both require imagemagick\n" #: bin/gscan2pdf:1465 msgid "Save image requires libtiff\n" msgstr "Save image requires libtiff\n" #: bin/gscan2pdf:1469 msgid "Save as DjVu requires djvulibre-bin\n" msgstr "Save as DjVu requires djvulibre-bin\n" #: bin/gscan2pdf:1473 msgid "Email as PDF requires xdg-email\n" msgstr "Email as PDF requires xdg-email\n" #: bin/gscan2pdf:1518 msgid "The rotating options and unpaper support require perlmagick\n" msgstr "The rotating options and unpaper support require perlmagick\n" #: bin/gscan2pdf:1524 msgid "unpaper missing\n" msgstr "unpaper missing\n" #: bin/gscan2pdf:1534 msgid "OCR requires gocr, tesseract, ocropus, or cuneiform\n" msgstr "" #: bin/gscan2pdf:1539 msgid "Warning: missing packages" msgstr "Warning: missing packages" #: bin/gscan2pdf:1544 msgid "Don't show this message again" msgstr "Don't show this message again" #: bin/gscan2pdf:1753 msgid "" "Some pages have not been saved.\n" "Do you really want to clear all pages?" msgstr "" #: bin/gscan2pdf:1828 bin/gscan2pdf:1858 #, perl-format msgid "Process %i of %i (%s)" msgstr "" #: bin/gscan2pdf:1867 #, perl-format msgid "Process %i of %i" msgstr "" #: bin/gscan2pdf:1895 msgid "Open image" msgstr "" #: bin/gscan2pdf:1903 bin/gscan2pdf:2797 bin/gscan2pdf:3113 msgid "Image files" msgstr "" #: bin/gscan2pdf:1940 msgid "Pages to extract" msgstr "Pages to extract" #: bin/gscan2pdf:1943 bin/gscan2pdf:2117 bin/gscan2pdf:2586 bin/gscan2pdf:3353 #: bin/gscan2pdf:3494 bin/gscan2pdf:4104 bin/gscan2pdf:4514 bin/gscan2pdf:5825 #: bin/gscan2pdf:6409 bin/gscan2pdf:6495 bin/gscan2pdf:6565 bin/gscan2pdf:6737 #: bin/gscan2pdf:7011 bin/gscan2pdf:7274 bin/gscan2pdf:7757 bin/gscan2pdf:8123 #: lib/Gscan2pdf/Dialog.pm:56 lib/Gscan2pdf/Dialog/Renumber.pm:80 #: lib/Gscan2pdf/Scanner/Dialog.pm:201 t/05_Dialog.t:28 msgid "vbox" msgstr "" #: bin/gscan2pdf:1946 msgid "First page to extract" msgstr "First page to extract" #: bin/gscan2pdf:1953 msgid "Last page to extract" msgstr "Last page to extract" #: bin/gscan2pdf:2042 lib/Gscan2pdf/Dialog/Renumber.pm:83 msgid "Page Range" msgstr "Page Range" #: bin/gscan2pdf:2092 msgid "Metadata" msgstr "Metadata" #: bin/gscan2pdf:2101 msgid "Date" msgstr "Date" #: bin/gscan2pdf:2114 msgid "Select Date" msgstr "Select Date" #: bin/gscan2pdf:2136 msgid "Today" msgstr "Today" #: bin/gscan2pdf:2150 msgid "Year-Month-Day" msgstr "Year-Month-Day" #: bin/gscan2pdf:2156 msgid "Document author" msgstr "Document author" #: bin/gscan2pdf:2165 msgid "Title" msgstr "Title" #: bin/gscan2pdf:2174 msgid "Subject" msgstr "Subject" #: bin/gscan2pdf:2183 msgid "Keywords" msgstr "Keywords" #: bin/gscan2pdf:2245 msgid "Editing text" msgstr "" #: bin/gscan2pdf:2252 bin/gscan2pdf:2258 bin/gscan2pdf:2332 msgid "text" msgstr "" #: bin/gscan2pdf:2352 msgid "PDF filename" msgstr "PDF filename" #: bin/gscan2pdf:2381 msgid "PDF files" msgstr "" #: bin/gscan2pdf:2405 bin/gscan2pdf:2823 bin/gscan2pdf:2880 bin/gscan2pdf:2976 #: bin/gscan2pdf:3035 bin/gscan2pdf:3087 bin/gscan2pdf:3275 #, perl-format msgid "File %s is read-only" msgstr "File %s is read-only" #: bin/gscan2pdf:2482 msgid "JPEG Quality" msgstr "JPEG Quality" #: bin/gscan2pdf:2496 msgid "Downsample to" msgstr "Downsample to" #: bin/gscan2pdf:2501 msgid "PPI" msgstr "" #: bin/gscan2pdf:2520 msgid "Automatic" msgstr "Automatic" #: bin/gscan2pdf:2521 msgid "Let gscan2pdf which type of compression to use." msgstr "Let gscan2pdf which type of compression to use." #: bin/gscan2pdf:2524 bin/gscan2pdf:2616 msgid "LZW" msgstr "LZW" #: bin/gscan2pdf:2525 bin/gscan2pdf:2617 msgid "Compress output with Lempel-Ziv & Welch encoding." msgstr "Compress output with Lempel-Ziv & Welch encoding." #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Zip" msgstr "Zip" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Compress output with deflate encoding." msgstr "Compress output with deflate encoding." #: bin/gscan2pdf:2529 bin/gscan2pdf:2624 msgid "Packbits" msgstr "Packbits" #: bin/gscan2pdf:2530 bin/gscan2pdf:2625 msgid "Compress output with Packbits encoding." msgstr "Compress output with Packbits encoding." #: bin/gscan2pdf:2536 bin/gscan2pdf:2604 msgid "PNG" msgstr "PNG" #: bin/gscan2pdf:2536 msgid "Compress output with PNG encoding." msgstr "Compress output with PNG encoding." #: bin/gscan2pdf:2537 bin/gscan2pdf:2622 msgid "Compress output with JPEG encoding." msgstr "Compress output with JPEG encoding." #: bin/gscan2pdf:2540 bin/gscan2pdf:2637 msgid "Use no compression algorithm on output." msgstr "Use no compression algorithm on output." #: bin/gscan2pdf:2594 msgid "Image type" msgstr "Image type" #: bin/gscan2pdf:2598 msgid "PDF" msgstr "PDF" #: bin/gscan2pdf:2598 msgid "Portable Document Format" msgstr "Portable Document Format" #: bin/gscan2pdf:2599 msgid "GIF" msgstr "GIF" #: bin/gscan2pdf:2599 msgid "CompuServe graphics interchange format" msgstr "CompuServe graphics interchange format" #: bin/gscan2pdf:2602 msgid "Joint Photographic Experts Group JFIF format" msgstr "Joint Photographic Experts Group JFIF format" #: bin/gscan2pdf:2604 msgid "Portable Network Graphics" msgstr "Portable Network Graphics" #: bin/gscan2pdf:2605 msgid "PNM" msgstr "PNM" #: bin/gscan2pdf:2605 msgid "Portable anymap" msgstr "Portable anymap" #: bin/gscan2pdf:2606 msgid "PS" msgstr "PS" #: bin/gscan2pdf:2606 msgid "Postscript" msgstr "Postscript" #: bin/gscan2pdf:2607 msgid "TIFF" msgstr "TIFF" #: bin/gscan2pdf:2607 msgid "Tagged Image File Format" msgstr "Tagged Image File Format" #: bin/gscan2pdf:2608 msgid "Text" msgstr "Text" #: bin/gscan2pdf:2608 msgid "Plain text" msgstr "Plain text" #: bin/gscan2pdf:2609 msgid "gscan2pdf session file" msgstr "gscan2pdf session file" #: bin/gscan2pdf:2611 msgid "DjVu" msgstr "DjVu" #: bin/gscan2pdf:2611 msgid "Deja Vu" msgstr "Deja Vu" #: bin/gscan2pdf:2628 msgid "G3" msgstr "G3" #: bin/gscan2pdf:2629 msgid "Compress output with CCITT Group 3 encoding." msgstr "Compress output with CCITT Group 3 encoding." #: bin/gscan2pdf:2632 msgid "G4" msgstr "G4" #: bin/gscan2pdf:2633 msgid "Compress output with CCITT Group 4 encoding." msgstr "Compress output with CCITT Group 4 encoding." #: bin/gscan2pdf:2649 msgid "tiff" msgstr "tiff" #: bin/gscan2pdf:2681 msgid "Font for non-ASCII text" msgstr "" #: bin/gscan2pdf:2790 msgid "TIFF filename" msgstr "TIFF filename" #: bin/gscan2pdf:2848 msgid "Text filename" msgstr "Text filename" #: bin/gscan2pdf:2856 msgid "Text files" msgstr "" #: bin/gscan2pdf:2944 msgid "PS filename" msgstr "PS filename" #: bin/gscan2pdf:2951 msgid "Postscript files" msgstr "" #: bin/gscan2pdf:3003 msgid "gscan2pdf session filename" msgstr "gscan2pdf session filename" #: bin/gscan2pdf:3010 msgid "gscan2pdf session files" msgstr "" #: bin/gscan2pdf:3093 #, perl-format msgid "" "File %s exists.\n" "Really overwrite?" msgstr "" "File %s exists.\n" "Really overwrite?" #: bin/gscan2pdf:3106 msgid "Image filename" msgstr "Image filename" #: bin/gscan2pdf:3245 msgid "DjVu filename" msgstr "DjVu filename" #: bin/gscan2pdf:3252 msgid "DjVu files" msgstr "" #: bin/gscan2pdf:3349 msgid "Email as PDF" msgstr "Email as PDF" #: bin/gscan2pdf:3454 msgid "Error creating email" msgstr "" #: bin/gscan2pdf:3490 bin/gscan2pdf:4313 msgid "Scan Document" msgstr "Scan Document" #: bin/gscan2pdf:3507 lib/Gscan2pdf/Scanner/Dialog.pm:248 msgid "Page Options" msgstr "Page Options" #: bin/gscan2pdf:3510 lib/Gscan2pdf/Scanner/Dialog.pm:251 msgid "# Pages" msgstr "# Pages" #: bin/gscan2pdf:3519 lib/Gscan2pdf/PageRange.pm:34 #: lib/Gscan2pdf/Scanner/Dialog.pm:261 msgid "All" msgstr "All" #: bin/gscan2pdf:3520 lib/Gscan2pdf/Scanner/Dialog.pm:262 msgid "Scan all pages" msgstr "Scan all pages" #: bin/gscan2pdf:3532 bin/gscan2pdf:3537 lib/Gscan2pdf/Scanner/Dialog.pm:274 #: lib/Gscan2pdf/Scanner/Dialog.pm:279 msgid "Set number of pages to scan" msgstr "Set number of pages to scan" #: bin/gscan2pdf:3550 lib/Gscan2pdf/Scanner/Dialog.pm:308 msgid "Extended page numbering" msgstr "Extended page numbering" #: bin/gscan2pdf:3554 lib/Gscan2pdf/Scanner/Dialog.pm:312 msgid "Page number" msgstr "Page number" #: bin/gscan2pdf:3563 lib/Gscan2pdf/Dialog/Renumber.pm:111 #: lib/Gscan2pdf/Scanner/Dialog.pm:321 msgid "Start" msgstr "Start" #: bin/gscan2pdf:3572 lib/Gscan2pdf/Dialog/Renumber.pm:132 #: lib/Gscan2pdf/Scanner/Dialog.pm:340 msgid "Increment" msgstr "Increment" #: bin/gscan2pdf:3604 lib/Gscan2pdf/Scanner/Dialog.pm:372 msgid "Source document" msgstr "Source document" #: bin/gscan2pdf:3611 lib/Gscan2pdf/Scanner/Dialog.pm:379 msgid "Single sided" msgstr "Single sided" #: bin/gscan2pdf:3612 lib/Gscan2pdf/Scanner/Dialog.pm:380 msgid "Source document is single-sided" msgstr "Source document is single-sided" #: bin/gscan2pdf:3622 lib/Gscan2pdf/Scanner/Dialog.pm:390 msgid "Double sided" msgstr "Double sided" #: bin/gscan2pdf:3623 lib/Gscan2pdf/Scanner/Dialog.pm:391 msgid "Source document is double-sided" msgstr "Source document is double-sided" #: bin/gscan2pdf:3629 lib/Gscan2pdf/Scanner/Dialog.pm:397 msgid "Side to scan" msgstr "Side to scan" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Facing" msgstr "Facing" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Reverse" msgstr "Reverse" #: bin/gscan2pdf:3655 lib/Gscan2pdf/Scanner/Dialog.pm:418 msgid "Sets which side of a double-sided document is scanned" msgstr "Sets which side of a double-sided document is scanned" #: bin/gscan2pdf:3719 msgid "Scan Options" msgstr "Scan Options" #: bin/gscan2pdf:3722 msgid "Device-dependent options" msgstr "Device-dependent options" #: bin/gscan2pdf:3729 lib/Gscan2pdf/Scanner/Dialog.pm:458 msgid "Scan profiles" msgstr "Scan profiles" #: bin/gscan2pdf:3778 bin/gscan2pdf:3784 lib/Gscan2pdf/Scanner/Dialog.pm:479 #: lib/Gscan2pdf/Scanner/Dialog.pm:485 msgid "Name of scan profile" msgstr "Name of scan profile" #: bin/gscan2pdf:3828 lib/Gscan2pdf/Scanner/Dialog.pm:518 msgid "Scan" msgstr "Scan" #: bin/gscan2pdf:3866 msgid "Must scan facing pages first" msgstr "Must scan facing pages first" #: bin/gscan2pdf:3977 msgid "Post-processing" msgstr "Post-processing" #: bin/gscan2pdf:3986 bin/gscan2pdf:4008 msgid "Rotate" msgstr "Rotate" #: bin/gscan2pdf:3987 bin/gscan2pdf:4009 msgid "Rotate image after scanning" msgstr "Rotate image after scanning" #: bin/gscan2pdf:3990 msgid "Both sides" msgstr "Both sides" #: bin/gscan2pdf:3990 msgid "Both sides." msgstr "Both sides." #: bin/gscan2pdf:3991 msgid "Facing side" msgstr "Facing side" #: bin/gscan2pdf:3991 msgid "Facing side." msgstr "Facing side." #: bin/gscan2pdf:3992 msgid "Reverse side" msgstr "Reverse side" #: bin/gscan2pdf:3992 msgid "Reverse side." msgstr "Reverse side." #: bin/gscan2pdf:3995 bin/gscan2pdf:4013 msgid "Select side to rotate" msgstr "Select side to rotate" #: bin/gscan2pdf:3998 msgid "90" msgstr "90" #: bin/gscan2pdf:3998 msgid "Rotate image 90 degrees clockwise." msgstr "Rotate image 90 degrees clockwise." #: bin/gscan2pdf:3999 msgid "180" msgstr "180" #: bin/gscan2pdf:3999 msgid "Rotate image 180 degrees clockwise." msgstr "Rotate image 180 degrees clockwise." #: bin/gscan2pdf:4000 msgid "270" msgstr "270" #: bin/gscan2pdf:4000 msgid "Rotate image 90 degrees anticlockwise." msgstr "Rotate image 90 degrees anticlockwise." #: bin/gscan2pdf:4003 bin/gscan2pdf:4016 msgid "Select direction of rotation" msgstr "Select direction of rotation" #: bin/gscan2pdf:4083 msgid "Clean up images" msgstr "Clean up images" #: bin/gscan2pdf:4094 msgid "Options" msgstr "Options" #: bin/gscan2pdf:4095 msgid "Set unpaper options" msgstr "Set unpaper options" #: bin/gscan2pdf:4101 msgid "unpaper options" msgstr "unpaper options" #: bin/gscan2pdf:4136 bin/gscan2pdf:4137 msgid "OCR scanned pages" msgstr "OCR scanned pages" #: bin/gscan2pdf:4151 msgid "Select OCR engine" msgstr "Select OCR engine" #: bin/gscan2pdf:4210 lib/Gscan2pdf/Scanner/Dialog.pm:634 msgid "Fetching list of devices" msgstr "Fetching list of devices" #: bin/gscan2pdf:4225 lib/Gscan2pdf/Scanner/Dialog.pm:654 msgid "No devices found" msgstr "No devices found" #: bin/gscan2pdf:4367 bin/gscan2pdf:4732 bin/gscan2pdf:4777 bin/gscan2pdf:5214 #: lib/Gscan2pdf/Scanner/Dialog.pm:343 lib/Gscan2pdf/Scanner/Dialog.pm:348 #: t/061_Scanner_Dialog.t:38 t/061_Scanner_Dialog.t:95 msgid "page-number-increment" msgstr "" #: bin/gscan2pdf:4374 bin/gscan2pdf:4729 bin/gscan2pdf:4730 bin/gscan2pdf:4776 #: bin/gscan2pdf:5213 lib/Gscan2pdf/Scanner/Dialog.pm:361 #: t/061_Scanner_Dialog.t:37 msgid "page-number-start" msgstr "" #: bin/gscan2pdf:4663 lib/Gscan2pdf/Scanner/Dialog.pm:210 msgid "Device" msgstr "Device" #: bin/gscan2pdf:4671 lib/Gscan2pdf/Scanner/Dialog.pm:213 msgid "Rescan for devices" msgstr "Rescan for devices" #: bin/gscan2pdf:4694 lib/Gscan2pdf/Scanner/Dialog.pm:237 msgid "Sets the device to be used for the scan" msgstr "Sets the device to be used for the scan" #: bin/gscan2pdf:4780 lib/Gscan2pdf/Scanner/Dialog.pm:300 #: t/061_Scanner_Dialog.t:35 msgid "num-pages" msgstr "" #: bin/gscan2pdf:4821 msgid "Scanning" msgstr "Scanning" #: bin/gscan2pdf:4974 msgid "Unable to load image" msgstr "Unable to load image" #: bin/gscan2pdf:5004 msgid "print-pages" msgstr "" #: bin/gscan2pdf:5008 msgid "page-ranges" msgstr "" #: bin/gscan2pdf:5405 msgid "Patches gratefully received from:" msgstr "Patches gratefully received from:" #: bin/gscan2pdf:5407 msgid "To aid the scan-to-PDF process" msgstr "To aid the scan-to-PDF process" #: bin/gscan2pdf:5408 msgid "Copyright 2006--2012 Jeffrey Ratcliffe" msgstr "" #: bin/gscan2pdf:5492 bin/gscan2pdf:6028 msgid "The options cache seems to be empty. Reload device-dependent options?" msgstr "" #: bin/gscan2pdf:5519 bin/gscan2pdf:6054 msgid "Updating options" msgstr "Updating options" #: bin/gscan2pdf:5571 msgid "Paper size" msgstr "Paper size" #: bin/gscan2pdf:5572 bin/gscan2pdf:5672 bin/gscan2pdf:5840 bin/gscan2pdf:6769 msgid "Width" msgstr "Width" #: bin/gscan2pdf:5573 bin/gscan2pdf:5678 bin/gscan2pdf:5841 bin/gscan2pdf:6780 msgid "Height" msgstr "Height" #: bin/gscan2pdf:5574 bin/gscan2pdf:5684 bin/gscan2pdf:5842 #: lib/Gscan2pdf/Unpaper.pm:124 lib/Gscan2pdf/Unpaper.pm:152 msgid "Left" msgstr "Left" #: bin/gscan2pdf:5575 bin/gscan2pdf:5690 bin/gscan2pdf:5843 #: lib/Gscan2pdf/Unpaper.pm:129 lib/Gscan2pdf/Unpaper.pm:157 msgid "Top" msgstr "Top" #: bin/gscan2pdf:5589 bin/gscan2pdf:5703 bin/gscan2pdf:6232 msgid "Manual" msgstr "Manual" #: bin/gscan2pdf:5590 bin/gscan2pdf:5700 msgid "Edit" msgstr "Edit" #: bin/gscan2pdf:5591 msgid "Selects or edits the paper size" msgstr "Selects or edits the paper size" #: bin/gscan2pdf:5673 msgid "Width of scan area" msgstr "Width of scan area" #: bin/gscan2pdf:5679 msgid "Height of scan area" msgstr "Height of scan area" #: bin/gscan2pdf:5685 msgid "Top-left x position of scan area" msgstr "Top-left x position of scan area" #: bin/gscan2pdf:5691 msgid "Top-left y position of scan area" msgstr "Top-left y position of scan area" #: bin/gscan2pdf:5822 msgid "Edit paper size" msgstr "Edit paper size" #: bin/gscan2pdf:5839 msgid "Name" msgstr "Name" #: bin/gscan2pdf:5893 msgid "Cannot delete all paper sizes" msgstr "Cannot delete all paper sizes" #: bin/gscan2pdf:5955 msgid "" "The following paper sizes are too big to be scanned by the selected device:" msgstr "" "The following paper sizes are too big to be scanned by the selected device:" #: bin/gscan2pdf:6419 bin/gscan2pdf:6605 msgid "%" msgstr "%" #: bin/gscan2pdf:6492 msgid "Negate" msgstr "Negate" #: bin/gscan2pdf:6562 msgid "Unsharp mask" msgstr "Unsharp mask" #: bin/gscan2pdf:6573 msgid "Radius" msgstr "Radius" #: bin/gscan2pdf:6575 bin/gscan2pdf:6592 bin/gscan2pdf:6747 bin/gscan2pdf:6759 #: bin/gscan2pdf:6771 bin/gscan2pdf:6782 msgid "pixels" msgstr "pixels" #: bin/gscan2pdf:6582 msgid "" "The radius of the Gaussian, in pixels, not counting the center pixel (0 = " "automatic)." msgstr "" "The radius of the Gaussian, in pixels, not counting the centre pixel (0 = " "automatic)." #: bin/gscan2pdf:6590 msgid "Sigma" msgstr "Sigma" #: bin/gscan2pdf:6597 msgid "The standard deviation of the Gaussian." msgstr "The standard deviation of the Gaussian." #: bin/gscan2pdf:6603 msgid "Amount" msgstr "Amount" #: bin/gscan2pdf:6612 msgid "" "The percentage of the difference between the original and the blur image " "that is added back into the original." msgstr "" "The percentage of the difference between the original and the blur image " "that is added back into the original." #: bin/gscan2pdf:6627 msgid "" "The threshold, as a fraction of QuantumRange, needed to apply the difference " "amount." msgstr "" "The threshold, as a fraction of QuantumRange, needed to apply the difference " "amount." #: bin/gscan2pdf:6733 msgid "Crop" msgstr "Crop" #: bin/gscan2pdf:6745 msgid "x" msgstr "" #: bin/gscan2pdf:6751 msgid "The x-position of the left hand edge of the crop." msgstr "" #: bin/gscan2pdf:6757 msgid "y" msgstr "" #: bin/gscan2pdf:6763 msgid "The y-position of the top edge of the crop." msgstr "" #: bin/gscan2pdf:6774 msgid "The width of the crop." msgstr "" #: bin/gscan2pdf:6785 msgid "The height of the crop." msgstr "" #: bin/gscan2pdf:6906 msgid "label" msgstr "" #: bin/gscan2pdf:7007 msgid "unpaper" msgstr "unpaper" #: bin/gscan2pdf:7216 bin/gscan2pdf:7244 msgid "Language to recognise" msgstr "Language to recognise" #: bin/gscan2pdf:7227 msgid "English" msgstr "English" #: bin/gscan2pdf:7270 msgid "OCR" msgstr "OCR" #: bin/gscan2pdf:7279 msgid "OCR Engine" msgstr "OCR Engine" #: bin/gscan2pdf:7323 msgid "Start OCR" msgstr "Start OCR" #: bin/gscan2pdf:7339 msgid "No page selected" msgstr "No page selected" #: bin/gscan2pdf:7374 msgid "" "Some pages have not been saved.\n" "Do you really want to quit?" msgstr "" "Some pages have not been saved.\n" "Do you really want to quit?" #: bin/gscan2pdf:7432 #, perl-format msgid "" "The help viewer requires module Gtk2::Ex::PodViewer\n" "Alternatively, try: %s %s\n" "\n" msgstr "" "The help viewer requires module Gtk2::Ex::PodViewer\n" "Alternatively, try: %s %s\n" "\n" #: bin/gscan2pdf:7698 msgid "This operation cannot be undone. Are you sure?" msgstr "This operation cannot be undone. Are you sure?" #: bin/gscan2pdf:7753 msgid "Preferences" msgstr "" #: bin/gscan2pdf:7762 msgid "Frontend" msgstr "" #: bin/gscan2pdf:7766 msgid "libsane-perl" msgstr "" #: bin/gscan2pdf:7767 msgid "Scan using the perl bindings for SANE." msgstr "" #: bin/gscan2pdf:7770 msgid "scanimage" msgstr "" #: bin/gscan2pdf:7771 msgid "Scan using the scanimage frontend." msgstr "" #: bin/gscan2pdf:7775 msgid "scanimage-perl" msgstr "" #: bin/gscan2pdf:7776 msgid "Scan using the scanimage-perl frontend." msgstr "" #: bin/gscan2pdf:7779 msgid "scanadf-perl" msgstr "" #: bin/gscan2pdf:7780 msgid "Scan using the scanadf-perl frontend." msgstr "" #: bin/gscan2pdf:7785 msgid "scanadf" msgstr "" #: bin/gscan2pdf:7786 msgid "Scan using the scanadf frontend." msgstr "" #: bin/gscan2pdf:7791 msgid "Cycle SANE handle after scan" msgstr "" #: bin/gscan2pdf:7814 msgid "Default filename for PDFs" msgstr "" #: bin/gscan2pdf:7820 msgid "" "%a\t author\n" "%t\t title\n" "%y\t document's year\n" "%Y\t today's year\n" "%m\t document's month\n" "%M\t today's month\n" "%d\t document's day\n" "%D\t today's day" msgstr "" #: bin/gscan2pdf:7830 msgid "Scan command prefix" msgstr "" #: bin/gscan2pdf:7839 msgid "Restore window settings on startup" msgstr "" #: bin/gscan2pdf:7845 msgid "Cache device-dependent options" msgstr "" #: bin/gscan2pdf:7851 msgid "Clear device-dependent options cache" msgstr "" #: bin/gscan2pdf:7862 msgid "Temporary directory" msgstr "" #: bin/gscan2pdf:7867 msgid "Browse" msgstr "" #: bin/gscan2pdf:7871 msgid "Select temporary directory" msgstr "" #: bin/gscan2pdf:7888 msgid "Blank threshold" msgstr "" #: bin/gscan2pdf:7893 msgid "Threshold used for selecting blank pages" msgstr "" #: bin/gscan2pdf:7899 msgid "Dark threshold" msgstr "" #: bin/gscan2pdf:7904 msgid "Threshold used for selecting dark pages" msgstr "" #: bin/gscan2pdf:7910 msgid "OCR output" msgstr "" #: bin/gscan2pdf:7915 msgid "Replace" msgstr "" #: bin/gscan2pdf:7917 msgid "" "Replace the contents of the text buffer with that from the OCR output." msgstr "" #: bin/gscan2pdf:7920 msgid "Prepend" msgstr "" #: bin/gscan2pdf:7921 msgid "Prepend the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7924 msgid "Append" msgstr "" #: bin/gscan2pdf:7925 msgid "Append the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7933 msgid "User-defined tools" msgstr "" #: bin/gscan2pdf:7954 msgid "View files on saving" msgstr "" #: bin/gscan2pdf:8000 msgid "" "You will have to restart gscanp2df for changes to the temporary directory to " "take effect." msgstr "" "You will have to restart gscanp2df for changes to the temporary directory to " "take effect." #: bin/gscan2pdf:8092 msgid "" "Use %i and %o for the input and output filenames respectively, or a single " "%i if the image is to be modified in-place.\n" "\n" "The other variable available is:\n" "\n" "%r resolution" msgstr "" #: bin/gscan2pdf:8119 msgid "Properties" msgstr "Properties" #: lib/Gscan2pdf/Dialog.pm:63 lib/Gscan2pdf/Dialog.pm:79 t/05_Dialog.t:25 msgid "hide-on-delete" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:78 lib/Gscan2pdf/Dialog/Renumber.pm:162 msgid "Renumber" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:98 lib/Gscan2pdf/Dialog/Renumber.pm:207 #: lib/Gscan2pdf/Dialog/Renumber.pm:244 msgid "range" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:102 msgid "Page numbering" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:105 lib/Gscan2pdf/Scanner/Dialog.pm:254 msgid "border_width" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:126 lib/Gscan2pdf/Dialog/Renumber.pm:192 #: lib/Gscan2pdf/Dialog/Renumber.pm:242 t/07_Dialog_Renumber.t:33 #: t/07_Dialog_Renumber.t:45 t/07_Dialog_Renumber.t:59 #: t/07_Dialog_Renumber.t:66 msgid "start" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:147 lib/Gscan2pdf/Dialog/Renumber.pm:193 #: lib/Gscan2pdf/Dialog/Renumber.pm:243 t/07_Dialog_Renumber.t:34 #: t/07_Dialog_Renumber.t:46 t/07_Dialog_Renumber.t:60 #: t/07_Dialog_Renumber.t:67 msgid "increment" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:205 lib/Gscan2pdf/Dialog/Renumber.pm:241 msgid "document" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:295 msgid "" "The current settings would result in duplicate page numbers. Please select " "new start and increment values." msgstr "" #: lib/Gscan2pdf/Document.pm:83 msgid "Thumbnails" msgstr "" #: lib/Gscan2pdf/Document.pm:1502 msgid "Unknown DjVu file structure. Please contact the author." msgstr "" #: lib/Gscan2pdf/Document.pm:1558 #, perl-format msgid "%s is not a recognised image type" msgstr "" #: lib/Gscan2pdf/Document.pm:1580 lib/Gscan2pdf/Document.pm:1637 #, perl-format msgid "Importing page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:1613 msgid "Error extracting images from PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1692 msgid "Setting up PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1703 #, perl-format msgid "Saving page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:1814 lib/Gscan2pdf/Document.pm:2136 #, perl-format msgid "Error compressing image: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1919 #, perl-format msgid "Error creating PDF image object: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1930 #, perl-format msgid "Error embedding file image in %s format to PDF: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1939 msgid "Closing PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1955 #, perl-format msgid "Writing page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:2006 msgid "Error writing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2025 lib/Gscan2pdf/Document.pm:2227 #, perl-format msgid "Can't open file: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:2050 msgid "Error adding text layer to DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2056 msgid "Closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2063 msgid "Error closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2078 #, perl-format msgid "Converting image %i of %i to TIFF" msgstr "" #: lib/Gscan2pdf/Document.pm:2105 msgid "Error writing TIFF" msgstr "" #: lib/Gscan2pdf/Document.pm:2121 msgid "Concatenating TIFFs" msgstr "" #: lib/Gscan2pdf/Document.pm:2140 msgid "Converting to PS" msgstr "" #: lib/Gscan2pdf/Document.pm:2200 lib/Gscan2pdf/Document.pm:2215 msgid "Error saving image" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:158 #, perl-format msgid "Scanning %i pages..." msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:163 #, perl-format msgid "Scanning page %i..." msgstr "Scanning page %i..." #: lib/Gscan2pdf/Frontend/CLI.pm:188 lib/Gscan2pdf/Frontend/CLI.pm:296 msgid "Scanner warming up" msgstr "Scanner warming up" #: lib/Gscan2pdf/Frontend/CLI.pm:195 msgid "Document feeder out of documents" msgstr "Document feeder out of documents" #: lib/Gscan2pdf/Frontend/CLI.pm:212 lib/Gscan2pdf/Frontend/CLI.pm:325 msgid "Device busy" msgstr "Device busy" #: lib/Gscan2pdf/Frontend/CLI.pm:218 lib/Gscan2pdf/Frontend/CLI.pm:330 msgid "Operation cancelled" msgstr "Operation cancelled" #: lib/Gscan2pdf/Frontend/CLI.pm:223 lib/Gscan2pdf/Frontend/CLI.pm:336 msgid "Unknown message: " msgstr "Unknown message: " #: lib/Gscan2pdf/Page.pm:68 lib/Gscan2pdf/Page.pm:73 #, perl-format msgid "Error importing image %s: %s" msgstr "" #: lib/Gscan2pdf/PageRange.pm:33 msgid "Selected" msgstr "Selected" #: lib/Gscan2pdf/PageRange.pm:58 msgid "active" msgstr "active" #: lib/Gscan2pdf/Scanner/Dialog.pm:218 t/061_Scanner_Dialog.t:33 #: t/061_Scanner_Dialog.t:59 msgid "device-list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:496 t/061_Scanner_Dialog.t:139 #: t/061_Scanner_Dialog.t:174 t/062_Scanner_Dialog.t:50 #: t/062_Scanner_Dialog.t:75 msgid "current-scan-options" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:567 msgid "logger" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:650 t/05_Dialog.t:24 msgid "transient-for" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:716 msgid "device_list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:749 t/061_Scanner_Dialog.t:32 msgid "device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:751 msgid "Opening device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:760 msgid "Retrieving options" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:41 msgid "Layout" msgstr "Layout" #: lib/Gscan2pdf/Unpaper.pm:44 msgid "Single" msgstr "Single" #: lib/Gscan2pdf/Unpaper.pm:46 msgid "One page per sheet, oriented upwards without rotation." msgstr "One page per sheet, oriented upwards without rotation." #: lib/Gscan2pdf/Unpaper.pm:49 msgid "Double" msgstr "Double" #: lib/Gscan2pdf/Unpaper.pm:51 msgid "" "Two pages per sheet, landscape orientation (one page on the left half, one " "page on the right half)." msgstr "" "Two pages per sheet, landscape orientation (one page on the left half, one " "page on the right half)." #: lib/Gscan2pdf/Unpaper.pm:59 msgid "# Output pages" msgstr "# Output pages" #: lib/Gscan2pdf/Unpaper.pm:60 msgid "Number of pages to output." msgstr "Number of pages to output." #: lib/Gscan2pdf/Unpaper.pm:68 msgid "No deskew" msgstr "No deskew" #: lib/Gscan2pdf/Unpaper.pm:69 msgid "Disable deskewing." msgstr "Disable deskewing." #: lib/Gscan2pdf/Unpaper.pm:74 msgid "No mask scan" msgstr "No mask scan" #: lib/Gscan2pdf/Unpaper.pm:75 msgid "Disable mask detection." msgstr "Disable mask detection." #: lib/Gscan2pdf/Unpaper.pm:80 msgid "No black filter" msgstr "No black filter" #: lib/Gscan2pdf/Unpaper.pm:81 msgid "Disable black area scan." msgstr "Disable black area scan." #: lib/Gscan2pdf/Unpaper.pm:86 msgid "No gray filter" msgstr "No gray filter" #: lib/Gscan2pdf/Unpaper.pm:87 msgid "Disable gray area scan." msgstr "Disable gray area scan." #: lib/Gscan2pdf/Unpaper.pm:92 msgid "No noise filter" msgstr "No noise filter" #: lib/Gscan2pdf/Unpaper.pm:93 msgid "Disable noise filter." msgstr "Disable noise filter." #: lib/Gscan2pdf/Unpaper.pm:98 msgid "No blur filter" msgstr "No blur filter" #: lib/Gscan2pdf/Unpaper.pm:99 msgid "Disable blur filter." msgstr "Disable blur filter." #: lib/Gscan2pdf/Unpaper.pm:104 msgid "No border scan" msgstr "No border scan" #: lib/Gscan2pdf/Unpaper.pm:105 msgid "Disable border scanning." msgstr "Disable border scanning." #: lib/Gscan2pdf/Unpaper.pm:110 msgid "No border align" msgstr "No border align" #: lib/Gscan2pdf/Unpaper.pm:112 msgid "Disable aligning of the area detected by border scanning." msgstr "Disable aligning of the area detected by border scanning." #: lib/Gscan2pdf/Unpaper.pm:117 msgid "Deskew to edge" msgstr "Deskew to edge" #: lib/Gscan2pdf/Unpaper.pm:119 msgid "" "Edges from which to scan for rotation. Each edge of a mask can be used to " "detect the mask's rotation. If multiple edges are specified, the average " "value will be used, unless the statistical deviation exceeds --deskew-scan-" "deviation." msgstr "" "Edges from which to scan for rotation. Each edge of a mask can be used to " "detect the mask's rotation. If multiple edges are specified, the average " "value will be used, unless the statistical deviation exceeds --deskew-scan-" "deviation." #: lib/Gscan2pdf/Unpaper.pm:125 msgid "Use 'left' for scanning from the left edge." msgstr "Use 'left' for scanning from the left edge." #: lib/Gscan2pdf/Unpaper.pm:130 msgid "Use 'top' for scanning from the top edge." msgstr "Use 'top' for scanning from the top edge." #: lib/Gscan2pdf/Unpaper.pm:134 lib/Gscan2pdf/Unpaper.pm:162 msgid "Right" msgstr "Right" #: lib/Gscan2pdf/Unpaper.pm:135 msgid "Use 'right' for scanning from the right edge." msgstr "Use 'right' for scanning from the right edge." #: lib/Gscan2pdf/Unpaper.pm:139 lib/Gscan2pdf/Unpaper.pm:167 msgid "Bottom" msgstr "Bottom" #: lib/Gscan2pdf/Unpaper.pm:140 msgid "Use 'bottom' for scanning from the bottom." msgstr "Use 'bottom' for scanning from the bottom." #: lib/Gscan2pdf/Unpaper.pm:147 msgid "Align to edge" msgstr "Align to edge" #: lib/Gscan2pdf/Unpaper.pm:148 msgid "Edge to which to align the page." msgstr "Edge to align the page." #: lib/Gscan2pdf/Unpaper.pm:153 msgid "Use 'left' to align to the left edge." msgstr "Use 'left' to align to the left edge." #: lib/Gscan2pdf/Unpaper.pm:158 msgid "Use 'top' to align to the top edge." msgstr "Use 'top' to align to the top edge." #: lib/Gscan2pdf/Unpaper.pm:163 msgid "Use 'right' to align to the right edge." msgstr "Use 'right' to align to the right edge." #: lib/Gscan2pdf/Unpaper.pm:168 msgid "Use 'bottom' to align to the bottom." msgstr "Use 'bottom' to align to the bottom." #: lib/Gscan2pdf/Unpaper.pm:174 msgid "Border margin" msgstr "Border margin" #: lib/Gscan2pdf/Unpaper.pm:178 msgid "Vertical margin" msgstr "Vertical margin" #: lib/Gscan2pdf/Unpaper.pm:180 msgid "" "Vertical distance to keep from the sheet edge when aligning a border area." msgstr "" "Vertical distance to keep from the sheet edge when aligning a border area." #: lib/Gscan2pdf/Unpaper.pm:189 msgid "Horizontal margin" msgstr "Horizontal margin" #: lib/Gscan2pdf/Unpaper.pm:191 msgid "" "Horizontal distance to keep from the sheet edge when aligning a border area." msgstr "" "Horizontal distance to keep from the sheet edge when aligning a border area." #: lib/Gscan2pdf/Unpaper.pm:202 msgid "White threshold" msgstr "White threshold" #: lib/Gscan2pdf/Unpaper.pm:204 msgid "Brightness ratio above which a pixel is considered white." msgstr "Brightness ratio above which a pixel is considered white." #: lib/Gscan2pdf/Unpaper.pm:212 msgid "Black threshold" msgstr "Black threshold" #: lib/Gscan2pdf/Unpaper.pm:214 msgid "" "Brightness ratio below which a pixel is considered black (non-gray). This is " "used by the gray-filter. This value is also used when converting a grayscale " "image to black-and-white mode." msgstr "" "Brightness ratio below which a pixel is considered black (non-grey). This is " "used by the grey-filter. This value is also used when converting a greyscale " "image to black-and-white mode." #: lib/Gscan2pdf/Unpaper.pm:250 msgid "Deskew" msgstr "Deskew" #: lib/Gscan2pdf/Unpaper.pm:280 msgid "Border" msgstr "Border" #: lib/Gscan2pdf/Unpaper.pm:337 msgid "Filters" msgstr "Filters" #: t/05_Dialog.t:23 msgid "title" msgstr "" #: t/05_Dialog.t:26 t/05_Dialog.t:31 t/05_Dialog.t:32 t/05_Dialog.t:38 #: t/05_Dialog.t:39 msgid "border-width" msgstr "" #: t/061_Scanner_Dialog.t:34 msgid "dir" msgstr "" #: t/061_Scanner_Dialog.t:36 msgid "max-pages" msgstr "" #: t/061_Scanner_Dialog.t:39 msgid "side-to-scan" msgstr "" #: t/061_Scanner_Dialog.t:40 t/061_Scanner_Dialog.t:185 msgid "available-scan-options" msgstr "" #: t/061_Scanner_Dialog.t:171 t/062_Scanner_Dialog.t:73 msgid "profile" msgstr "" gscan2pdf-1.2.3/po/gscan2pdf-be.po0000644000175000017500000011514012243440507015206 0ustar jeffjeff# Belarusian translation for gscan2pdf # Copyright (c) 2006 Rosetta Contributors and Canonical Ltd 2006 # This file is distributed under the same license as the gscan2pdf package. # FIRST AUTHOR , 2006. # msgid "" msgstr "" "Project-Id-Version: gscan2pdf\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-10-25 08:12+0200\n" "PO-Revision-Date: 2008-12-15 23:52+0000\n" "Last-Translator: Jeffrey Ratcliffe \n" "Language-Team: Belarusian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-19 09:22+0000\n" "X-Generator: Launchpad (build 16831)\n" #: bin/gscan2pdf:157 msgid "Error displaying help" msgstr "" #: bin/gscan2pdf:201 msgid "" "Error: unable to load settings.\n" "Backing up settings\n" "Reverting to defaults" msgstr "" #: bin/gscan2pdf:244 msgid "A4" msgstr "" #: bin/gscan2pdf:250 msgid "US Letter" msgstr "" #: bin/gscan2pdf:256 msgid "US Legal" msgstr "" #: bin/gscan2pdf:323 bin/gscan2pdf:344 #, perl-format msgid "Cannot read file: %s" msgstr "" #: bin/gscan2pdf:451 msgid "_File" msgstr "_Файл" #: bin/gscan2pdf:454 msgid "_New" msgstr "_Новы" #: bin/gscan2pdf:455 msgid "Clears all pages" msgstr "Ачышчае ўсе аркушы" #: bin/gscan2pdf:459 msgid "_Open" msgstr "" #: bin/gscan2pdf:460 msgid "Open image file(s)" msgstr "" #: bin/gscan2pdf:465 msgid "S_can" msgstr "" #: bin/gscan2pdf:467 msgid "Scan document" msgstr "Сканаваць дакумэнт" #: bin/gscan2pdf:471 bin/gscan2pdf:472 bin/gscan2pdf:2582 msgid "Save" msgstr "" #: bin/gscan2pdf:476 msgid "_Email as PDF" msgstr "" #: bin/gscan2pdf:477 msgid "Attach as PDF to a new email" msgstr "" #: bin/gscan2pdf:480 msgid "_Print" msgstr "" #: bin/gscan2pdf:481 msgid "Print" msgstr "" #: bin/gscan2pdf:485 msgid "_Compress temporary files" msgstr "" #: bin/gscan2pdf:486 msgid "Compress temporary files" msgstr "" #: bin/gscan2pdf:490 msgid "_Quit" msgstr "_Выйсце" #: bin/gscan2pdf:491 msgid "Quit" msgstr "Выйсце" #: bin/gscan2pdf:495 msgid "_Edit" msgstr "З_мяніць" #: bin/gscan2pdf:497 msgid "_Undo" msgstr "" #: bin/gscan2pdf:497 msgid "Undo" msgstr "" #: bin/gscan2pdf:501 msgid "_Redo" msgstr "" #: bin/gscan2pdf:502 msgid "Redo" msgstr "" #: bin/gscan2pdf:506 msgid "Cu_t" msgstr "" #: bin/gscan2pdf:507 msgid "Cut selection" msgstr "" #: bin/gscan2pdf:511 msgid "_Copy" msgstr "" #: bin/gscan2pdf:512 msgid "Copy selection" msgstr "" #: bin/gscan2pdf:516 msgid "_Paste" msgstr "" #: bin/gscan2pdf:517 msgid "Paste selection" msgstr "" #: bin/gscan2pdf:521 msgid "_Delete" msgstr "_Выдаліць" #: bin/gscan2pdf:522 msgid "Delete selected pages" msgstr "Выдаліць выбраныя старонкі" #: bin/gscan2pdf:526 msgid "_Renumber" msgstr "Змяніць _нумарацыю" #: bin/gscan2pdf:527 msgid "Renumber pages" msgstr "" #: bin/gscan2pdf:529 bin/gscan2pdf:679 msgid "_Select" msgstr "" #: bin/gscan2pdf:532 msgid "_All" msgstr "" #: bin/gscan2pdf:533 msgid "Select all pages" msgstr "Выбраць усе аркушы" #: bin/gscan2pdf:536 msgid "_Odd" msgstr "" #: bin/gscan2pdf:537 msgid "Select all odd-numbered pages" msgstr "" #: bin/gscan2pdf:541 msgid "_Even" msgstr "" #: bin/gscan2pdf:542 msgid "Select all evenly-numbered pages" msgstr "" #: bin/gscan2pdf:547 msgid "_Blank" msgstr "" #: bin/gscan2pdf:548 msgid "Select pages with low standard deviation" msgstr "" #: bin/gscan2pdf:552 msgid "_Dark" msgstr "" #: bin/gscan2pdf:553 msgid "Select dark pages" msgstr "" #: bin/gscan2pdf:558 msgid "_Modified" msgstr "" #: bin/gscan2pdf:560 msgid "Select modified pages since last OCR" msgstr "" #: bin/gscan2pdf:565 msgid "_No OCR" msgstr "" #: bin/gscan2pdf:566 msgid "Select pages with no OCR output" msgstr "" #: bin/gscan2pdf:570 msgid "_Clear OCR" msgstr "" #: bin/gscan2pdf:571 msgid "Clear OCR output from selected pages" msgstr "" #: bin/gscan2pdf:575 msgid "Propert_ies" msgstr "" #: bin/gscan2pdf:576 msgid "Edit image properties" msgstr "" #: bin/gscan2pdf:580 msgid "Prefere_nces" msgstr "" #: bin/gscan2pdf:581 msgid "Edit preferences" msgstr "" #: bin/gscan2pdf:585 msgid "_View" msgstr "_Выгляд" #: bin/gscan2pdf:588 msgid "Zoom _100%" msgstr "Маштаб _100%" #: bin/gscan2pdf:589 msgid "Zoom to 100%" msgstr "Маштаб 100%" #: bin/gscan2pdf:593 msgid "Zoom to _fit" msgstr "Расцягнуць у _вакне" #: bin/gscan2pdf:594 msgid "Zoom to fit" msgstr "Расцягнуць у вакне" #: bin/gscan2pdf:598 msgid "Zoom _in" msgstr "Па_вяліць" #: bin/gscan2pdf:599 msgid "Zoom in" msgstr "Павяліць" #: bin/gscan2pdf:603 msgid "Zoom _out" msgstr "Па_меншыць" #: bin/gscan2pdf:604 msgid "Zoom out" msgstr "Паменшыць" #: bin/gscan2pdf:609 bin/gscan2pdf:611 msgid "Rotate 90 clockwise" msgstr "Павярнуць на 90 управа" #: bin/gscan2pdf:617 bin/gscan2pdf:619 msgid "Rotate 180" msgstr "Павярнуць на 180" #: bin/gscan2pdf:625 bin/gscan2pdf:627 msgid "Rotate 90 anticlockwise" msgstr "Павярнуць на 90 улева" #: bin/gscan2pdf:632 msgid "_Tools" msgstr "" #: bin/gscan2pdf:634 msgid "_Threshold" msgstr "" #: bin/gscan2pdf:635 msgid "Change each pixel above this threshold to black" msgstr "" #: bin/gscan2pdf:639 msgid "_Negate" msgstr "" #: bin/gscan2pdf:640 msgid "Converts black to white and vice versa" msgstr "" #: bin/gscan2pdf:644 msgid "_Unsharp Mask" msgstr "" #: bin/gscan2pdf:645 msgid "Apply an unsharp mask" msgstr "" #: bin/gscan2pdf:648 msgid "_Crop" msgstr "" #: bin/gscan2pdf:649 msgid "Crop pages" msgstr "" #: bin/gscan2pdf:653 msgid "_Clean up" msgstr "" #: bin/gscan2pdf:654 bin/gscan2pdf:4085 msgid "Clean up scanned images with unpaper" msgstr "" #: bin/gscan2pdf:657 msgid "_OCR" msgstr "" #: bin/gscan2pdf:658 msgid "Optical Character Recognition" msgstr "" #: bin/gscan2pdf:660 msgid "U_ser-defined" msgstr "" #: bin/gscan2pdf:663 bin/gscan2pdf:665 msgid "_Help" msgstr "_Даведка" #: bin/gscan2pdf:666 msgid "Help" msgstr "Даведка" #: bin/gscan2pdf:668 msgid "_About" msgstr "_Аб праграме" #: bin/gscan2pdf:674 msgid "_Drag" msgstr "" #: bin/gscan2pdf:675 msgid "Use the hand tool" msgstr "" #: bin/gscan2pdf:680 msgid "Use the rectangular selection tool" msgstr "" #: bin/gscan2pdf:684 msgid "_Paint" msgstr "" #: bin/gscan2pdf:685 msgid "Use the painter tool" msgstr "" #: bin/gscan2pdf:965 lib/Gscan2pdf/Document.pm:2594 #: lib/Gscan2pdf/Document.pm:2595 msgid "Error copying page" msgstr "" #: bin/gscan2pdf:1082 msgid "Image" msgstr "" #: bin/gscan2pdf:1117 msgid "OCR Output" msgstr "" #: bin/gscan2pdf:1174 msgid "Mode" msgstr "Рэжым" #: bin/gscan2pdf:1176 msgid "Lineart" msgstr "Рысунак" #: bin/gscan2pdf:1177 msgid "Grayscale" msgstr "Адценні шэрага колеру" #: bin/gscan2pdf:1178 msgid "Gray" msgstr "Шэры" #: bin/gscan2pdf:1179 msgid "Color" msgstr "Каляровы" #: bin/gscan2pdf:1180 msgid "Black & White" msgstr "Чорна-белы" #: bin/gscan2pdf:1181 msgid "True Gray" msgstr "Сапраўды шэры" #: bin/gscan2pdf:1182 msgid "Binary" msgstr "Двайковы" #: bin/gscan2pdf:1183 bin/gscan2pdf:1242 bin/gscan2pdf:1243 msgid "Auto" msgstr "Аўтаматычна" #: bin/gscan2pdf:1184 msgid "Halftone" msgstr "Паўтону" #: bin/gscan2pdf:1185 msgid "24bit Color" msgstr "24 біты" #: bin/gscan2pdf:1189 bin/gscan2pdf:2547 bin/gscan2pdf:2644 msgid "Compression" msgstr "Уціск" #: bin/gscan2pdf:1191 bin/gscan2pdf:2539 bin/gscan2pdf:2636 msgid "None" msgstr "Няма" #: bin/gscan2pdf:1192 bin/gscan2pdf:2537 bin/gscan2pdf:2601 bin/gscan2pdf:2622 msgid "JPEG" msgstr "JPEG" #: bin/gscan2pdf:1195 bin/gscan2pdf:8127 msgid "Resolution" msgstr "Раздзельнасць" #: bin/gscan2pdf:1196 msgid "Brightness" msgstr "" #: bin/gscan2pdf:1197 msgid "Gain" msgstr "" #: bin/gscan2pdf:1198 msgid "Contrast" msgstr "" #: bin/gscan2pdf:1199 bin/gscan2pdf:6406 bin/gscan2pdf:6417 bin/gscan2pdf:6620 msgid "Threshold" msgstr "" #: bin/gscan2pdf:1201 msgid "Speed" msgstr "" #: bin/gscan2pdf:1203 bin/gscan2pdf:1210 bin/gscan2pdf:1217 bin/gscan2pdf:1224 #: bin/gscan2pdf:1231 msgid "Yes" msgstr "Так" #: bin/gscan2pdf:1204 bin/gscan2pdf:1211 bin/gscan2pdf:1218 bin/gscan2pdf:1225 #: bin/gscan2pdf:1232 msgid "No" msgstr "Не" #: bin/gscan2pdf:1208 msgid "Batch scan" msgstr "Чаргаванае сканаванне" #: bin/gscan2pdf:1215 bin/gscan2pdf:1222 msgid "Wait for button" msgstr "Чакаць націску кнопкі" #: bin/gscan2pdf:1229 msgid "Cache calibration" msgstr "" #: bin/gscan2pdf:1236 msgid "Source" msgstr "Крыніца" #: bin/gscan2pdf:1238 msgid "Normal" msgstr "Звычайная" #: bin/gscan2pdf:1239 msgid "ADF" msgstr "ADF" #: bin/gscan2pdf:1240 msgid "Automatic Document Feeder" msgstr "Аўтаматычная загрузка дакумэнтаў" #: bin/gscan2pdf:1241 msgid "XPA" msgstr "XPA" #: bin/gscan2pdf:1244 msgid "Flatbed" msgstr "Планшэт" #: bin/gscan2pdf:1245 msgid "Transparency Adapter" msgstr "Адаптар празрыстасці" #: bin/gscan2pdf:1246 msgid "Transparency Unit" msgstr "Адзінка празрыстасці" #: bin/gscan2pdf:1249 bin/gscan2pdf:1251 msgid "Page Width" msgstr "" #: bin/gscan2pdf:1250 bin/gscan2pdf:1252 msgid "Page Height" msgstr "" #: bin/gscan2pdf:1253 msgid "Top Overscan" msgstr "" #: bin/gscan2pdf:1254 msgid "Bottom Overscan" msgstr "" #: bin/gscan2pdf:1256 bin/gscan2pdf:1263 msgid "ADF Mode" msgstr "" #: bin/gscan2pdf:1258 bin/gscan2pdf:1265 msgid "Simplex" msgstr "" #: bin/gscan2pdf:1259 bin/gscan2pdf:1266 msgid "Duplex" msgstr "" #: bin/gscan2pdf:1301 bin/gscan2pdf:1306 msgid "Pick crashed session to restore" msgstr "" #: bin/gscan2pdf:1308 bin/gscan2pdf:2609 msgid "Session" msgstr "" #: bin/gscan2pdf:1338 #, perl-format msgid "" "Warning: unable to use %s for temporary storage. Defaulting to %s instead." msgstr "" #: bin/gscan2pdf:1441 msgid "GOCR" msgstr "" #: bin/gscan2pdf:1441 msgid "Process image with GOCR." msgstr "" #: bin/gscan2pdf:1445 msgid "Tesseract" msgstr "" #: bin/gscan2pdf:1446 msgid "Process image with Tesseract." msgstr "" #: bin/gscan2pdf:1450 msgid "Ocropus" msgstr "" #: bin/gscan2pdf:1450 msgid "Process image with Ocropus." msgstr "" #: bin/gscan2pdf:1454 msgid "Cuneiform" msgstr "" #: bin/gscan2pdf:1455 msgid "Process image with Cuneiform." msgstr "" #: bin/gscan2pdf:1461 msgid "Save image and Save as PDF both require imagemagick\n" msgstr "" #: bin/gscan2pdf:1465 msgid "Save image requires libtiff\n" msgstr "" #: bin/gscan2pdf:1469 msgid "Save as DjVu requires djvulibre-bin\n" msgstr "" #: bin/gscan2pdf:1473 msgid "Email as PDF requires xdg-email\n" msgstr "" #: bin/gscan2pdf:1518 msgid "The rotating options and unpaper support require perlmagick\n" msgstr "" #: bin/gscan2pdf:1524 msgid "unpaper missing\n" msgstr "" #: bin/gscan2pdf:1534 msgid "OCR requires gocr, tesseract, ocropus, or cuneiform\n" msgstr "" #: bin/gscan2pdf:1539 msgid "Warning: missing packages" msgstr "" #: bin/gscan2pdf:1544 msgid "Don't show this message again" msgstr "" #: bin/gscan2pdf:1753 msgid "" "Some pages have not been saved.\n" "Do you really want to clear all pages?" msgstr "" #: bin/gscan2pdf:1828 bin/gscan2pdf:1858 #, perl-format msgid "Process %i of %i (%s)" msgstr "" #: bin/gscan2pdf:1867 #, perl-format msgid "Process %i of %i" msgstr "" #: bin/gscan2pdf:1895 msgid "Open image" msgstr "" #: bin/gscan2pdf:1903 bin/gscan2pdf:2797 bin/gscan2pdf:3113 msgid "Image files" msgstr "" #: bin/gscan2pdf:1940 msgid "Pages to extract" msgstr "" #: bin/gscan2pdf:1943 bin/gscan2pdf:2117 bin/gscan2pdf:2586 bin/gscan2pdf:3353 #: bin/gscan2pdf:3494 bin/gscan2pdf:4104 bin/gscan2pdf:4514 bin/gscan2pdf:5825 #: bin/gscan2pdf:6409 bin/gscan2pdf:6495 bin/gscan2pdf:6565 bin/gscan2pdf:6737 #: bin/gscan2pdf:7011 bin/gscan2pdf:7274 bin/gscan2pdf:7757 bin/gscan2pdf:8123 #: lib/Gscan2pdf/Dialog.pm:56 lib/Gscan2pdf/Dialog/Renumber.pm:80 #: lib/Gscan2pdf/Scanner/Dialog.pm:201 t/05_Dialog.t:28 msgid "vbox" msgstr "" #: bin/gscan2pdf:1946 msgid "First page to extract" msgstr "" #: bin/gscan2pdf:1953 msgid "Last page to extract" msgstr "" #: bin/gscan2pdf:2042 lib/Gscan2pdf/Dialog/Renumber.pm:83 msgid "Page Range" msgstr "" #: bin/gscan2pdf:2092 msgid "Metadata" msgstr "Мэтаданні" #: bin/gscan2pdf:2101 msgid "Date" msgstr "Дата" #: bin/gscan2pdf:2114 msgid "Select Date" msgstr "Выберыце дату" #: bin/gscan2pdf:2136 msgid "Today" msgstr "" #: bin/gscan2pdf:2150 msgid "Year-Month-Day" msgstr "" #: bin/gscan2pdf:2156 msgid "Document author" msgstr "Стваральнік дакумэнта" #: bin/gscan2pdf:2165 msgid "Title" msgstr "Назва" #: bin/gscan2pdf:2174 msgid "Subject" msgstr "Тэма" #: bin/gscan2pdf:2183 msgid "Keywords" msgstr "Галоўныя словы" #: bin/gscan2pdf:2245 msgid "Editing text" msgstr "" #: bin/gscan2pdf:2252 bin/gscan2pdf:2258 bin/gscan2pdf:2332 msgid "text" msgstr "" #: bin/gscan2pdf:2352 msgid "PDF filename" msgstr "Назва файла PDF" #: bin/gscan2pdf:2381 msgid "PDF files" msgstr "" #: bin/gscan2pdf:2405 bin/gscan2pdf:2823 bin/gscan2pdf:2880 bin/gscan2pdf:2976 #: bin/gscan2pdf:3035 bin/gscan2pdf:3087 bin/gscan2pdf:3275 #, perl-format msgid "File %s is read-only" msgstr "" #: bin/gscan2pdf:2482 msgid "JPEG Quality" msgstr "Якасць JPEG" #: bin/gscan2pdf:2496 msgid "Downsample to" msgstr "" #: bin/gscan2pdf:2501 msgid "PPI" msgstr "" #: bin/gscan2pdf:2520 msgid "Automatic" msgstr "" #: bin/gscan2pdf:2521 msgid "Let gscan2pdf which type of compression to use." msgstr "" #: bin/gscan2pdf:2524 bin/gscan2pdf:2616 msgid "LZW" msgstr "" #: bin/gscan2pdf:2525 bin/gscan2pdf:2617 msgid "Compress output with Lempel-Ziv & Welch encoding." msgstr "" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Zip" msgstr "Zip" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Compress output with deflate encoding." msgstr "" #: bin/gscan2pdf:2529 bin/gscan2pdf:2624 msgid "Packbits" msgstr "" #: bin/gscan2pdf:2530 bin/gscan2pdf:2625 msgid "Compress output with Packbits encoding." msgstr "" #: bin/gscan2pdf:2536 bin/gscan2pdf:2604 msgid "PNG" msgstr "" #: bin/gscan2pdf:2536 msgid "Compress output with PNG encoding." msgstr "" #: bin/gscan2pdf:2537 bin/gscan2pdf:2622 msgid "Compress output with JPEG encoding." msgstr "" #: bin/gscan2pdf:2540 bin/gscan2pdf:2637 msgid "Use no compression algorithm on output." msgstr "" #: bin/gscan2pdf:2594 msgid "Image type" msgstr "" #: bin/gscan2pdf:2598 msgid "PDF" msgstr "" #: bin/gscan2pdf:2598 msgid "Portable Document Format" msgstr "" #: bin/gscan2pdf:2599 msgid "GIF" msgstr "" #: bin/gscan2pdf:2599 msgid "CompuServe graphics interchange format" msgstr "" #: bin/gscan2pdf:2602 msgid "Joint Photographic Experts Group JFIF format" msgstr "" #: bin/gscan2pdf:2604 msgid "Portable Network Graphics" msgstr "" #: bin/gscan2pdf:2605 msgid "PNM" msgstr "" #: bin/gscan2pdf:2605 msgid "Portable anymap" msgstr "" #: bin/gscan2pdf:2606 msgid "PS" msgstr "" #: bin/gscan2pdf:2606 msgid "Postscript" msgstr "" #: bin/gscan2pdf:2607 msgid "TIFF" msgstr "" #: bin/gscan2pdf:2607 msgid "Tagged Image File Format" msgstr "" #: bin/gscan2pdf:2608 msgid "Text" msgstr "" #: bin/gscan2pdf:2608 msgid "Plain text" msgstr "" #: bin/gscan2pdf:2609 msgid "gscan2pdf session file" msgstr "" #: bin/gscan2pdf:2611 msgid "DjVu" msgstr "" #: bin/gscan2pdf:2611 msgid "Deja Vu" msgstr "" #: bin/gscan2pdf:2628 msgid "G3" msgstr "" #: bin/gscan2pdf:2629 msgid "Compress output with CCITT Group 3 encoding." msgstr "" #: bin/gscan2pdf:2632 msgid "G4" msgstr "" #: bin/gscan2pdf:2633 msgid "Compress output with CCITT Group 4 encoding." msgstr "" #: bin/gscan2pdf:2649 msgid "tiff" msgstr "" #: bin/gscan2pdf:2681 msgid "Font for non-ASCII text" msgstr "" #: bin/gscan2pdf:2790 msgid "TIFF filename" msgstr "Назва файла TIFF" #: bin/gscan2pdf:2848 msgid "Text filename" msgstr "" #: bin/gscan2pdf:2856 msgid "Text files" msgstr "" #: bin/gscan2pdf:2944 msgid "PS filename" msgstr "" #: bin/gscan2pdf:2951 msgid "Postscript files" msgstr "" #: bin/gscan2pdf:3003 msgid "gscan2pdf session filename" msgstr "" #: bin/gscan2pdf:3010 msgid "gscan2pdf session files" msgstr "" #: bin/gscan2pdf:3093 #, perl-format msgid "" "File %s exists.\n" "Really overwrite?" msgstr "" #: bin/gscan2pdf:3106 msgid "Image filename" msgstr "" #: bin/gscan2pdf:3245 msgid "DjVu filename" msgstr "" #: bin/gscan2pdf:3252 msgid "DjVu files" msgstr "" #: bin/gscan2pdf:3349 msgid "Email as PDF" msgstr "" #: bin/gscan2pdf:3454 msgid "Error creating email" msgstr "" #: bin/gscan2pdf:3490 bin/gscan2pdf:4313 msgid "Scan Document" msgstr "Сканаваць дакумэнт" #: bin/gscan2pdf:3507 lib/Gscan2pdf/Scanner/Dialog.pm:248 msgid "Page Options" msgstr "" #: bin/gscan2pdf:3510 lib/Gscan2pdf/Scanner/Dialog.pm:251 msgid "# Pages" msgstr "# Аркушы" #: bin/gscan2pdf:3519 lib/Gscan2pdf/PageRange.pm:34 #: lib/Gscan2pdf/Scanner/Dialog.pm:261 msgid "All" msgstr "Усе" #: bin/gscan2pdf:3520 lib/Gscan2pdf/Scanner/Dialog.pm:262 msgid "Scan all pages" msgstr "Сканаваць усе старонкі" #: bin/gscan2pdf:3532 bin/gscan2pdf:3537 lib/Gscan2pdf/Scanner/Dialog.pm:274 #: lib/Gscan2pdf/Scanner/Dialog.pm:279 msgid "Set number of pages to scan" msgstr "Вызначыць колькасць неабходных аркушаў" #: bin/gscan2pdf:3550 lib/Gscan2pdf/Scanner/Dialog.pm:308 msgid "Extended page numbering" msgstr "" #: bin/gscan2pdf:3554 lib/Gscan2pdf/Scanner/Dialog.pm:312 msgid "Page number" msgstr "" #: bin/gscan2pdf:3563 lib/Gscan2pdf/Dialog/Renumber.pm:111 #: lib/Gscan2pdf/Scanner/Dialog.pm:321 msgid "Start" msgstr "" #: bin/gscan2pdf:3572 lib/Gscan2pdf/Dialog/Renumber.pm:132 #: lib/Gscan2pdf/Scanner/Dialog.pm:340 msgid "Increment" msgstr "" #: bin/gscan2pdf:3604 lib/Gscan2pdf/Scanner/Dialog.pm:372 msgid "Source document" msgstr "Дакумэнт" #: bin/gscan2pdf:3611 lib/Gscan2pdf/Scanner/Dialog.pm:379 msgid "Single sided" msgstr "Аднабаковы" #: bin/gscan2pdf:3612 lib/Gscan2pdf/Scanner/Dialog.pm:380 msgid "Source document is single-sided" msgstr "Дакумэнт аднабаковы" #: bin/gscan2pdf:3622 lib/Gscan2pdf/Scanner/Dialog.pm:390 msgid "Double sided" msgstr "Двухбаковы" #: bin/gscan2pdf:3623 lib/Gscan2pdf/Scanner/Dialog.pm:391 msgid "Source document is double-sided" msgstr "Дакумэнт двухбаковы" #: bin/gscan2pdf:3629 lib/Gscan2pdf/Scanner/Dialog.pm:397 msgid "Side to scan" msgstr "Бок, які трэба адсканаваць" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Facing" msgstr "Пярэдні" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Reverse" msgstr "Адваротны" #: bin/gscan2pdf:3655 lib/Gscan2pdf/Scanner/Dialog.pm:418 msgid "Sets which side of a double-sided document is scanned" msgstr "Вызначае бок дакумэнта, які скануецца" #: bin/gscan2pdf:3719 msgid "Scan Options" msgstr "" #: bin/gscan2pdf:3722 msgid "Device-dependent options" msgstr "Опцыі сканара" #: bin/gscan2pdf:3729 lib/Gscan2pdf/Scanner/Dialog.pm:458 msgid "Scan profiles" msgstr "" #: bin/gscan2pdf:3778 bin/gscan2pdf:3784 lib/Gscan2pdf/Scanner/Dialog.pm:479 #: lib/Gscan2pdf/Scanner/Dialog.pm:485 msgid "Name of scan profile" msgstr "" #: bin/gscan2pdf:3828 lib/Gscan2pdf/Scanner/Dialog.pm:518 msgid "Scan" msgstr "Сканаваць" #: bin/gscan2pdf:3866 msgid "Must scan facing pages first" msgstr "Трэба адсканаваць спачатку пярэднія бакі" #: bin/gscan2pdf:3977 msgid "Post-processing" msgstr "" #: bin/gscan2pdf:3986 bin/gscan2pdf:4008 msgid "Rotate" msgstr "" #: bin/gscan2pdf:3987 bin/gscan2pdf:4009 msgid "Rotate image after scanning" msgstr "" #: bin/gscan2pdf:3990 msgid "Both sides" msgstr "" #: bin/gscan2pdf:3990 msgid "Both sides." msgstr "" #: bin/gscan2pdf:3991 msgid "Facing side" msgstr "" #: bin/gscan2pdf:3991 msgid "Facing side." msgstr "" #: bin/gscan2pdf:3992 msgid "Reverse side" msgstr "" #: bin/gscan2pdf:3992 msgid "Reverse side." msgstr "" #: bin/gscan2pdf:3995 bin/gscan2pdf:4013 msgid "Select side to rotate" msgstr "" #: bin/gscan2pdf:3998 msgid "90" msgstr "" #: bin/gscan2pdf:3998 msgid "Rotate image 90 degrees clockwise." msgstr "" #: bin/gscan2pdf:3999 msgid "180" msgstr "" #: bin/gscan2pdf:3999 msgid "Rotate image 180 degrees clockwise." msgstr "" #: bin/gscan2pdf:4000 msgid "270" msgstr "" #: bin/gscan2pdf:4000 msgid "Rotate image 90 degrees anticlockwise." msgstr "" #: bin/gscan2pdf:4003 bin/gscan2pdf:4016 msgid "Select direction of rotation" msgstr "" #: bin/gscan2pdf:4083 msgid "Clean up images" msgstr "" #: bin/gscan2pdf:4094 msgid "Options" msgstr "" #: bin/gscan2pdf:4095 msgid "Set unpaper options" msgstr "" #: bin/gscan2pdf:4101 msgid "unpaper options" msgstr "" #: bin/gscan2pdf:4136 bin/gscan2pdf:4137 msgid "OCR scanned pages" msgstr "" #: bin/gscan2pdf:4151 msgid "Select OCR engine" msgstr "" #: bin/gscan2pdf:4210 lib/Gscan2pdf/Scanner/Dialog.pm:634 msgid "Fetching list of devices" msgstr "" #: bin/gscan2pdf:4225 lib/Gscan2pdf/Scanner/Dialog.pm:654 msgid "No devices found" msgstr "" #: bin/gscan2pdf:4367 bin/gscan2pdf:4732 bin/gscan2pdf:4777 bin/gscan2pdf:5214 #: lib/Gscan2pdf/Scanner/Dialog.pm:343 lib/Gscan2pdf/Scanner/Dialog.pm:348 #: t/061_Scanner_Dialog.t:38 t/061_Scanner_Dialog.t:95 msgid "page-number-increment" msgstr "" #: bin/gscan2pdf:4374 bin/gscan2pdf:4729 bin/gscan2pdf:4730 bin/gscan2pdf:4776 #: bin/gscan2pdf:5213 lib/Gscan2pdf/Scanner/Dialog.pm:361 #: t/061_Scanner_Dialog.t:37 msgid "page-number-start" msgstr "" #: bin/gscan2pdf:4663 lib/Gscan2pdf/Scanner/Dialog.pm:210 msgid "Device" msgstr "Прыстасаванне" #: bin/gscan2pdf:4671 lib/Gscan2pdf/Scanner/Dialog.pm:213 msgid "Rescan for devices" msgstr "" #: bin/gscan2pdf:4694 lib/Gscan2pdf/Scanner/Dialog.pm:237 msgid "Sets the device to be used for the scan" msgstr "Вызначыць сканар" #: bin/gscan2pdf:4780 lib/Gscan2pdf/Scanner/Dialog.pm:300 #: t/061_Scanner_Dialog.t:35 msgid "num-pages" msgstr "" #: bin/gscan2pdf:4821 msgid "Scanning" msgstr "Сканаванне" #: bin/gscan2pdf:4974 msgid "Unable to load image" msgstr "Немагчыма адкрыць малюнак" #: bin/gscan2pdf:5004 msgid "print-pages" msgstr "" #: bin/gscan2pdf:5008 msgid "page-ranges" msgstr "" #: bin/gscan2pdf:5405 msgid "Patches gratefully received from:" msgstr "" #: bin/gscan2pdf:5407 msgid "To aid the scan-to-PDF process" msgstr "Падтрымаць працэс сканавання ў PDF" #: bin/gscan2pdf:5408 msgid "Copyright 2006--2012 Jeffrey Ratcliffe" msgstr "" #: bin/gscan2pdf:5492 bin/gscan2pdf:6028 msgid "The options cache seems to be empty. Reload device-dependent options?" msgstr "" #: bin/gscan2pdf:5519 bin/gscan2pdf:6054 msgid "Updating options" msgstr "" #: bin/gscan2pdf:5571 msgid "Paper size" msgstr "Памер ліста" #: bin/gscan2pdf:5572 bin/gscan2pdf:5672 bin/gscan2pdf:5840 bin/gscan2pdf:6769 msgid "Width" msgstr "" #: bin/gscan2pdf:5573 bin/gscan2pdf:5678 bin/gscan2pdf:5841 bin/gscan2pdf:6780 msgid "Height" msgstr "" #: bin/gscan2pdf:5574 bin/gscan2pdf:5684 bin/gscan2pdf:5842 #: lib/Gscan2pdf/Unpaper.pm:124 lib/Gscan2pdf/Unpaper.pm:152 msgid "Left" msgstr "" #: bin/gscan2pdf:5575 bin/gscan2pdf:5690 bin/gscan2pdf:5843 #: lib/Gscan2pdf/Unpaper.pm:129 lib/Gscan2pdf/Unpaper.pm:157 msgid "Top" msgstr "" #: bin/gscan2pdf:5589 bin/gscan2pdf:5703 bin/gscan2pdf:6232 msgid "Manual" msgstr "" #: bin/gscan2pdf:5590 bin/gscan2pdf:5700 msgid "Edit" msgstr "Змяніць" #: bin/gscan2pdf:5591 msgid "Selects or edits the paper size" msgstr "" #: bin/gscan2pdf:5673 msgid "Width of scan area" msgstr "" #: bin/gscan2pdf:5679 msgid "Height of scan area" msgstr "" #: bin/gscan2pdf:5685 msgid "Top-left x position of scan area" msgstr "" #: bin/gscan2pdf:5691 msgid "Top-left y position of scan area" msgstr "" #: bin/gscan2pdf:5822 msgid "Edit paper size" msgstr "" #: bin/gscan2pdf:5839 msgid "Name" msgstr "" #: bin/gscan2pdf:5893 msgid "Cannot delete all paper sizes" msgstr "" #: bin/gscan2pdf:5955 msgid "" "The following paper sizes are too big to be scanned by the selected device:" msgstr "" #: bin/gscan2pdf:6419 bin/gscan2pdf:6605 msgid "%" msgstr "" #: bin/gscan2pdf:6492 msgid "Negate" msgstr "" #: bin/gscan2pdf:6562 msgid "Unsharp mask" msgstr "" #: bin/gscan2pdf:6573 msgid "Radius" msgstr "" #: bin/gscan2pdf:6575 bin/gscan2pdf:6592 bin/gscan2pdf:6747 bin/gscan2pdf:6759 #: bin/gscan2pdf:6771 bin/gscan2pdf:6782 msgid "pixels" msgstr "" #: bin/gscan2pdf:6582 msgid "" "The radius of the Gaussian, in pixels, not counting the center pixel (0 = " "automatic)." msgstr "" #: bin/gscan2pdf:6590 msgid "Sigma" msgstr "" #: bin/gscan2pdf:6597 msgid "The standard deviation of the Gaussian." msgstr "" #: bin/gscan2pdf:6603 msgid "Amount" msgstr "" #: bin/gscan2pdf:6612 msgid "" "The percentage of the difference between the original and the blur image " "that is added back into the original." msgstr "" #: bin/gscan2pdf:6627 msgid "" "The threshold, as a fraction of QuantumRange, needed to apply the difference " "amount." msgstr "" #: bin/gscan2pdf:6733 msgid "Crop" msgstr "" #: bin/gscan2pdf:6745 msgid "x" msgstr "" #: bin/gscan2pdf:6751 msgid "The x-position of the left hand edge of the crop." msgstr "" #: bin/gscan2pdf:6757 msgid "y" msgstr "" #: bin/gscan2pdf:6763 msgid "The y-position of the top edge of the crop." msgstr "" #: bin/gscan2pdf:6774 msgid "The width of the crop." msgstr "" #: bin/gscan2pdf:6785 msgid "The height of the crop." msgstr "" #: bin/gscan2pdf:6906 msgid "label" msgstr "" #: bin/gscan2pdf:7007 msgid "unpaper" msgstr "" #: bin/gscan2pdf:7216 bin/gscan2pdf:7244 msgid "Language to recognise" msgstr "" #: bin/gscan2pdf:7227 msgid "English" msgstr "" #: bin/gscan2pdf:7270 msgid "OCR" msgstr "" #: bin/gscan2pdf:7279 msgid "OCR Engine" msgstr "" #: bin/gscan2pdf:7323 msgid "Start OCR" msgstr "" #: bin/gscan2pdf:7339 msgid "No page selected" msgstr "" #: bin/gscan2pdf:7374 msgid "" "Some pages have not been saved.\n" "Do you really want to quit?" msgstr "" #: bin/gscan2pdf:7432 #, perl-format msgid "" "The help viewer requires module Gtk2::Ex::PodViewer\n" "Alternatively, try: %s %s\n" "\n" msgstr "" #: bin/gscan2pdf:7698 msgid "This operation cannot be undone. Are you sure?" msgstr "" #: bin/gscan2pdf:7753 msgid "Preferences" msgstr "" #: bin/gscan2pdf:7762 msgid "Frontend" msgstr "" #: bin/gscan2pdf:7766 msgid "libsane-perl" msgstr "" #: bin/gscan2pdf:7767 msgid "Scan using the perl bindings for SANE." msgstr "" #: bin/gscan2pdf:7770 msgid "scanimage" msgstr "" #: bin/gscan2pdf:7771 msgid "Scan using the scanimage frontend." msgstr "" #: bin/gscan2pdf:7775 msgid "scanimage-perl" msgstr "" #: bin/gscan2pdf:7776 msgid "Scan using the scanimage-perl frontend." msgstr "" #: bin/gscan2pdf:7779 msgid "scanadf-perl" msgstr "" #: bin/gscan2pdf:7780 msgid "Scan using the scanadf-perl frontend." msgstr "" #: bin/gscan2pdf:7785 msgid "scanadf" msgstr "" #: bin/gscan2pdf:7786 msgid "Scan using the scanadf frontend." msgstr "" #: bin/gscan2pdf:7791 msgid "Cycle SANE handle after scan" msgstr "" #: bin/gscan2pdf:7814 msgid "Default filename for PDFs" msgstr "" #: bin/gscan2pdf:7820 msgid "" "%a\t author\n" "%t\t title\n" "%y\t document's year\n" "%Y\t today's year\n" "%m\t document's month\n" "%M\t today's month\n" "%d\t document's day\n" "%D\t today's day" msgstr "" #: bin/gscan2pdf:7830 msgid "Scan command prefix" msgstr "" #: bin/gscan2pdf:7839 msgid "Restore window settings on startup" msgstr "" #: bin/gscan2pdf:7845 msgid "Cache device-dependent options" msgstr "" #: bin/gscan2pdf:7851 msgid "Clear device-dependent options cache" msgstr "" #: bin/gscan2pdf:7862 msgid "Temporary directory" msgstr "" #: bin/gscan2pdf:7867 msgid "Browse" msgstr "" #: bin/gscan2pdf:7871 msgid "Select temporary directory" msgstr "" #: bin/gscan2pdf:7888 msgid "Blank threshold" msgstr "" #: bin/gscan2pdf:7893 msgid "Threshold used for selecting blank pages" msgstr "" #: bin/gscan2pdf:7899 msgid "Dark threshold" msgstr "" #: bin/gscan2pdf:7904 msgid "Threshold used for selecting dark pages" msgstr "" #: bin/gscan2pdf:7910 msgid "OCR output" msgstr "" #: bin/gscan2pdf:7915 msgid "Replace" msgstr "" #: bin/gscan2pdf:7917 msgid "" "Replace the contents of the text buffer with that from the OCR output." msgstr "" #: bin/gscan2pdf:7920 msgid "Prepend" msgstr "" #: bin/gscan2pdf:7921 msgid "Prepend the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7924 msgid "Append" msgstr "" #: bin/gscan2pdf:7925 msgid "Append the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7933 msgid "User-defined tools" msgstr "" #: bin/gscan2pdf:7954 msgid "View files on saving" msgstr "" #: bin/gscan2pdf:8000 msgid "" "You will have to restart gscanp2df for changes to the temporary directory to " "take effect." msgstr "" #: bin/gscan2pdf:8092 msgid "" "Use %i and %o for the input and output filenames respectively, or a single " "%i if the image is to be modified in-place.\n" "\n" "The other variable available is:\n" "\n" "%r resolution" msgstr "" #: bin/gscan2pdf:8119 msgid "Properties" msgstr "" #: lib/Gscan2pdf/Dialog.pm:63 lib/Gscan2pdf/Dialog.pm:79 t/05_Dialog.t:25 msgid "hide-on-delete" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:78 lib/Gscan2pdf/Dialog/Renumber.pm:162 msgid "Renumber" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:98 lib/Gscan2pdf/Dialog/Renumber.pm:207 #: lib/Gscan2pdf/Dialog/Renumber.pm:244 msgid "range" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:102 msgid "Page numbering" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:105 lib/Gscan2pdf/Scanner/Dialog.pm:254 msgid "border_width" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:126 lib/Gscan2pdf/Dialog/Renumber.pm:192 #: lib/Gscan2pdf/Dialog/Renumber.pm:242 t/07_Dialog_Renumber.t:33 #: t/07_Dialog_Renumber.t:45 t/07_Dialog_Renumber.t:59 #: t/07_Dialog_Renumber.t:66 msgid "start" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:147 lib/Gscan2pdf/Dialog/Renumber.pm:193 #: lib/Gscan2pdf/Dialog/Renumber.pm:243 t/07_Dialog_Renumber.t:34 #: t/07_Dialog_Renumber.t:46 t/07_Dialog_Renumber.t:60 #: t/07_Dialog_Renumber.t:67 msgid "increment" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:205 lib/Gscan2pdf/Dialog/Renumber.pm:241 msgid "document" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:295 msgid "" "The current settings would result in duplicate page numbers. Please select " "new start and increment values." msgstr "" #: lib/Gscan2pdf/Document.pm:83 msgid "Thumbnails" msgstr "" #: lib/Gscan2pdf/Document.pm:1502 msgid "Unknown DjVu file structure. Please contact the author." msgstr "" #: lib/Gscan2pdf/Document.pm:1558 #, perl-format msgid "%s is not a recognised image type" msgstr "" #: lib/Gscan2pdf/Document.pm:1580 lib/Gscan2pdf/Document.pm:1637 #, perl-format msgid "Importing page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:1613 msgid "Error extracting images from PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1692 msgid "Setting up PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1703 #, perl-format msgid "Saving page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:1814 lib/Gscan2pdf/Document.pm:2136 #, perl-format msgid "Error compressing image: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1919 #, perl-format msgid "Error creating PDF image object: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1930 #, perl-format msgid "Error embedding file image in %s format to PDF: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1939 msgid "Closing PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1955 #, perl-format msgid "Writing page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:2006 msgid "Error writing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2025 lib/Gscan2pdf/Document.pm:2227 #, perl-format msgid "Can't open file: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:2050 msgid "Error adding text layer to DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2056 msgid "Closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2063 msgid "Error closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2078 #, perl-format msgid "Converting image %i of %i to TIFF" msgstr "" #: lib/Gscan2pdf/Document.pm:2105 msgid "Error writing TIFF" msgstr "" #: lib/Gscan2pdf/Document.pm:2121 msgid "Concatenating TIFFs" msgstr "" #: lib/Gscan2pdf/Document.pm:2140 msgid "Converting to PS" msgstr "" #: lib/Gscan2pdf/Document.pm:2200 lib/Gscan2pdf/Document.pm:2215 msgid "Error saving image" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:158 #, perl-format msgid "Scanning %i pages..." msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:163 #, perl-format msgid "Scanning page %i..." msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:188 lib/Gscan2pdf/Frontend/CLI.pm:296 msgid "Scanner warming up" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:195 msgid "Document feeder out of documents" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:212 lib/Gscan2pdf/Frontend/CLI.pm:325 msgid "Device busy" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:218 lib/Gscan2pdf/Frontend/CLI.pm:330 msgid "Operation cancelled" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:223 lib/Gscan2pdf/Frontend/CLI.pm:336 msgid "Unknown message: " msgstr "Невядомае паведамленне: " #: lib/Gscan2pdf/Page.pm:68 lib/Gscan2pdf/Page.pm:73 #, perl-format msgid "Error importing image %s: %s" msgstr "" #: lib/Gscan2pdf/PageRange.pm:33 msgid "Selected" msgstr "Выбраны" #: lib/Gscan2pdf/PageRange.pm:58 msgid "active" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:218 t/061_Scanner_Dialog.t:33 #: t/061_Scanner_Dialog.t:59 msgid "device-list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:496 t/061_Scanner_Dialog.t:139 #: t/061_Scanner_Dialog.t:174 t/062_Scanner_Dialog.t:50 #: t/062_Scanner_Dialog.t:75 msgid "current-scan-options" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:567 msgid "logger" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:650 t/05_Dialog.t:24 msgid "transient-for" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:716 msgid "device_list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:749 t/061_Scanner_Dialog.t:32 msgid "device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:751 msgid "Opening device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:760 msgid "Retrieving options" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:41 msgid "Layout" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:44 msgid "Single" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:46 msgid "One page per sheet, oriented upwards without rotation." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:49 msgid "Double" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:51 msgid "" "Two pages per sheet, landscape orientation (one page on the left half, one " "page on the right half)." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:59 msgid "# Output pages" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:60 msgid "Number of pages to output." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:68 msgid "No deskew" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:69 msgid "Disable deskewing." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:74 msgid "No mask scan" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:75 msgid "Disable mask detection." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:80 msgid "No black filter" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:81 msgid "Disable black area scan." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:86 msgid "No gray filter" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:87 msgid "Disable gray area scan." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:92 msgid "No noise filter" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:93 msgid "Disable noise filter." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:98 msgid "No blur filter" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:99 msgid "Disable blur filter." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:104 msgid "No border scan" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:105 msgid "Disable border scanning." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:110 msgid "No border align" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:112 msgid "Disable aligning of the area detected by border scanning." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:117 msgid "Deskew to edge" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:119 msgid "" "Edges from which to scan for rotation. Each edge of a mask can be used to " "detect the mask's rotation. If multiple edges are specified, the average " "value will be used, unless the statistical deviation exceeds --deskew-scan-" "deviation." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:125 msgid "Use 'left' for scanning from the left edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:130 msgid "Use 'top' for scanning from the top edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:134 lib/Gscan2pdf/Unpaper.pm:162 msgid "Right" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:135 msgid "Use 'right' for scanning from the right edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:139 lib/Gscan2pdf/Unpaper.pm:167 msgid "Bottom" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:140 msgid "Use 'bottom' for scanning from the bottom." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:147 msgid "Align to edge" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:148 msgid "Edge to which to align the page." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:153 msgid "Use 'left' to align to the left edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:158 msgid "Use 'top' to align to the top edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:163 msgid "Use 'right' to align to the right edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:168 msgid "Use 'bottom' to align to the bottom." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:174 msgid "Border margin" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:178 msgid "Vertical margin" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:180 msgid "" "Vertical distance to keep from the sheet edge when aligning a border area." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:189 msgid "Horizontal margin" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:191 msgid "" "Horizontal distance to keep from the sheet edge when aligning a border area." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:202 msgid "White threshold" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:204 msgid "Brightness ratio above which a pixel is considered white." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:212 msgid "Black threshold" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:214 msgid "" "Brightness ratio below which a pixel is considered black (non-gray). This is " "used by the gray-filter. This value is also used when converting a grayscale " "image to black-and-white mode." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:250 msgid "Deskew" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:280 msgid "Border" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:337 msgid "Filters" msgstr "" #: t/05_Dialog.t:23 msgid "title" msgstr "" #: t/05_Dialog.t:26 t/05_Dialog.t:31 t/05_Dialog.t:32 t/05_Dialog.t:38 #: t/05_Dialog.t:39 msgid "border-width" msgstr "" #: t/061_Scanner_Dialog.t:34 msgid "dir" msgstr "" #: t/061_Scanner_Dialog.t:36 msgid "max-pages" msgstr "" #: t/061_Scanner_Dialog.t:39 msgid "side-to-scan" msgstr "" #: t/061_Scanner_Dialog.t:40 t/061_Scanner_Dialog.t:185 msgid "available-scan-options" msgstr "" #: t/061_Scanner_Dialog.t:171 t/062_Scanner_Dialog.t:73 msgid "profile" msgstr "" gscan2pdf-1.2.3/po/gscan2pdf-ko.po0000644000175000017500000011762712243440507015245 0ustar jeffjeff# Korean translation for gscan2pdf # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the gscan2pdf package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: gscan2pdf\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-10-25 08:12+0200\n" "PO-Revision-Date: 2009-12-11 02:19+0000\n" "Last-Translator: Elex \n" "Language-Team: Korean \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-19 09:22+0000\n" "X-Generator: Launchpad (build 16831)\n" #: bin/gscan2pdf:157 msgid "Error displaying help" msgstr "" #: bin/gscan2pdf:201 msgid "" "Error: unable to load settings.\n" "Backing up settings\n" "Reverting to defaults" msgstr "" "오류: 프로그램 설정을 불러들일 수 없습니다. \n" "설정을 백업합니다.\n" "기본값으로 되돌립니다." #: bin/gscan2pdf:244 msgid "A4" msgstr "A4" #: bin/gscan2pdf:250 msgid "US Letter" msgstr "US Letter" #: bin/gscan2pdf:256 msgid "US Legal" msgstr "US Legal" #: bin/gscan2pdf:323 bin/gscan2pdf:344 #, perl-format msgid "Cannot read file: %s" msgstr "" #: bin/gscan2pdf:451 msgid "_File" msgstr "파일(_F)" #: bin/gscan2pdf:454 msgid "_New" msgstr "새로 만들기(_N)" #: bin/gscan2pdf:455 msgid "Clears all pages" msgstr "모든 페이지 지우기" #: bin/gscan2pdf:459 msgid "_Open" msgstr "열기(_O)" #: bin/gscan2pdf:460 msgid "Open image file(s)" msgstr "" #: bin/gscan2pdf:465 msgid "S_can" msgstr "스캔" #: bin/gscan2pdf:467 msgid "Scan document" msgstr "문서 스캔" #: bin/gscan2pdf:471 bin/gscan2pdf:472 bin/gscan2pdf:2582 msgid "Save" msgstr "저장" #: bin/gscan2pdf:476 msgid "_Email as PDF" msgstr "PDF로 이메일 보내기(_E)" #: bin/gscan2pdf:477 msgid "Attach as PDF to a new email" msgstr "새 이메일에 PDF 첨부" #: bin/gscan2pdf:480 msgid "_Print" msgstr "" #: bin/gscan2pdf:481 msgid "Print" msgstr "" #: bin/gscan2pdf:485 msgid "_Compress temporary files" msgstr "임시 파일 압축(_C)" #: bin/gscan2pdf:486 msgid "Compress temporary files" msgstr "임시 파일 압축" #: bin/gscan2pdf:490 msgid "_Quit" msgstr "끝내기(_Q)" #: bin/gscan2pdf:491 msgid "Quit" msgstr "끝내기" #: bin/gscan2pdf:495 msgid "_Edit" msgstr "편집(_E)" #: bin/gscan2pdf:497 msgid "_Undo" msgstr "되돌리기(_U)" #: bin/gscan2pdf:497 msgid "Undo" msgstr "되돌리기" #: bin/gscan2pdf:501 msgid "_Redo" msgstr "다시 실행(_R)" #: bin/gscan2pdf:502 msgid "Redo" msgstr "다시 실행" #: bin/gscan2pdf:506 msgid "Cu_t" msgstr "잘라내기(_t)" #: bin/gscan2pdf:507 msgid "Cut selection" msgstr "선택 잘라내기" #: bin/gscan2pdf:511 msgid "_Copy" msgstr "복사하기(_C)" #: bin/gscan2pdf:512 msgid "Copy selection" msgstr "선택 복사하기" #: bin/gscan2pdf:516 msgid "_Paste" msgstr "붙여넣기(_P)" #: bin/gscan2pdf:517 msgid "Paste selection" msgstr "선택 붙여넣기" #: bin/gscan2pdf:521 msgid "_Delete" msgstr "지우기(_D)" #: bin/gscan2pdf:522 msgid "Delete selected pages" msgstr "선택한 페이지 지우기" #: bin/gscan2pdf:526 msgid "_Renumber" msgstr "번호 다시 붙이기" #: bin/gscan2pdf:527 msgid "Renumber pages" msgstr "페이지 다시 매기기" #: bin/gscan2pdf:529 bin/gscan2pdf:679 msgid "_Select" msgstr "선택(_S)" #: bin/gscan2pdf:532 msgid "_All" msgstr "모두(_A)" #: bin/gscan2pdf:533 msgid "Select all pages" msgstr "모든 페이지 선택하기" #: bin/gscan2pdf:536 msgid "_Odd" msgstr "홀수(_O)" #: bin/gscan2pdf:537 msgid "Select all odd-numbered pages" msgstr "모든 홀수 페이지 선택" #: bin/gscan2pdf:541 msgid "_Even" msgstr "짝수 (_E)" #: bin/gscan2pdf:542 msgid "Select all evenly-numbered pages" msgstr "모든 짝수 페이지 선택" #: bin/gscan2pdf:547 msgid "_Blank" msgstr "비우기(_B)" #: bin/gscan2pdf:548 msgid "Select pages with low standard deviation" msgstr "" #: bin/gscan2pdf:552 msgid "_Dark" msgstr "" #: bin/gscan2pdf:553 msgid "Select dark pages" msgstr "어두운 페이지를 선택" #: bin/gscan2pdf:558 msgid "_Modified" msgstr "" #: bin/gscan2pdf:560 msgid "Select modified pages since last OCR" msgstr "" #: bin/gscan2pdf:565 msgid "_No OCR" msgstr "" #: bin/gscan2pdf:566 msgid "Select pages with no OCR output" msgstr "" #: bin/gscan2pdf:570 msgid "_Clear OCR" msgstr "" #: bin/gscan2pdf:571 msgid "Clear OCR output from selected pages" msgstr "" #: bin/gscan2pdf:575 msgid "Propert_ies" msgstr "속성 (_i)" #: bin/gscan2pdf:576 msgid "Edit image properties" msgstr "" #: bin/gscan2pdf:580 msgid "Prefere_nces" msgstr "환경설정(_N)" #: bin/gscan2pdf:581 msgid "Edit preferences" msgstr "설정 사항 편집" #: bin/gscan2pdf:585 msgid "_View" msgstr "보기(_V)" #: bin/gscan2pdf:588 msgid "Zoom _100%" msgstr "크기 _100%" #: bin/gscan2pdf:589 msgid "Zoom to 100%" msgstr "100%로 확대" #: bin/gscan2pdf:593 msgid "Zoom to _fit" msgstr "" #: bin/gscan2pdf:594 msgid "Zoom to fit" msgstr "" #: bin/gscan2pdf:598 msgid "Zoom _in" msgstr "확대(_i)" #: bin/gscan2pdf:599 msgid "Zoom in" msgstr "확대" #: bin/gscan2pdf:603 msgid "Zoom _out" msgstr "축소(_o)" #: bin/gscan2pdf:604 msgid "Zoom out" msgstr "축소" #: bin/gscan2pdf:609 bin/gscan2pdf:611 msgid "Rotate 90 clockwise" msgstr "시계방향으로 90도 회전" #: bin/gscan2pdf:617 bin/gscan2pdf:619 msgid "Rotate 180" msgstr "180도 회전" #: bin/gscan2pdf:625 bin/gscan2pdf:627 msgid "Rotate 90 anticlockwise" msgstr "반시계방향으로 90도 회전" #: bin/gscan2pdf:632 msgid "_Tools" msgstr "도구(_T)" #: bin/gscan2pdf:634 msgid "_Threshold" msgstr "임계(_Threshold):" #: bin/gscan2pdf:635 msgid "Change each pixel above this threshold to black" msgstr "임계값 이상의 픽셀을 검은색으로 바꾼다" #: bin/gscan2pdf:639 msgid "_Negate" msgstr "" #: bin/gscan2pdf:640 msgid "Converts black to white and vice versa" msgstr "검은색과 흰색을 서로 바꾼다" #: bin/gscan2pdf:644 msgid "_Unsharp Mask" msgstr "" #: bin/gscan2pdf:645 msgid "Apply an unsharp mask" msgstr "" #: bin/gscan2pdf:648 msgid "_Crop" msgstr "잘라내기(_C)" #: bin/gscan2pdf:649 msgid "Crop pages" msgstr "" #: bin/gscan2pdf:653 msgid "_Clean up" msgstr "" #: bin/gscan2pdf:654 bin/gscan2pdf:4085 msgid "Clean up scanned images with unpaper" msgstr "" #: bin/gscan2pdf:657 msgid "_OCR" msgstr "_OCR" #: bin/gscan2pdf:658 msgid "Optical Character Recognition" msgstr "광학 문자 인식(OCR)" #: bin/gscan2pdf:660 msgid "U_ser-defined" msgstr "" #: bin/gscan2pdf:663 bin/gscan2pdf:665 msgid "_Help" msgstr "도움말(_H)" #: bin/gscan2pdf:666 msgid "Help" msgstr "도움말" #: bin/gscan2pdf:668 msgid "_About" msgstr "정보(_A)" #: bin/gscan2pdf:674 msgid "_Drag" msgstr "" #: bin/gscan2pdf:675 msgid "Use the hand tool" msgstr "" #: bin/gscan2pdf:680 msgid "Use the rectangular selection tool" msgstr "직사각형 선택 도구 사용" #: bin/gscan2pdf:684 msgid "_Paint" msgstr "" #: bin/gscan2pdf:685 msgid "Use the painter tool" msgstr "" #: bin/gscan2pdf:965 lib/Gscan2pdf/Document.pm:2594 #: lib/Gscan2pdf/Document.pm:2595 msgid "Error copying page" msgstr "" #: bin/gscan2pdf:1082 msgid "Image" msgstr "" #: bin/gscan2pdf:1117 msgid "OCR Output" msgstr "" #: bin/gscan2pdf:1174 msgid "Mode" msgstr "" #: bin/gscan2pdf:1176 msgid "Lineart" msgstr "라인아트" #: bin/gscan2pdf:1177 msgid "Grayscale" msgstr "그레이스케일" #: bin/gscan2pdf:1178 msgid "Gray" msgstr "" #: bin/gscan2pdf:1179 msgid "Color" msgstr "컬러" #: bin/gscan2pdf:1180 msgid "Black & White" msgstr "흑백" #: bin/gscan2pdf:1181 msgid "True Gray" msgstr "" #: bin/gscan2pdf:1182 msgid "Binary" msgstr "" #: bin/gscan2pdf:1183 bin/gscan2pdf:1242 bin/gscan2pdf:1243 msgid "Auto" msgstr "" #: bin/gscan2pdf:1184 msgid "Halftone" msgstr "하프톤" #: bin/gscan2pdf:1185 msgid "24bit Color" msgstr "24비트 컬러" #: bin/gscan2pdf:1189 bin/gscan2pdf:2547 bin/gscan2pdf:2644 msgid "Compression" msgstr "" #: bin/gscan2pdf:1191 bin/gscan2pdf:2539 bin/gscan2pdf:2636 msgid "None" msgstr "" #: bin/gscan2pdf:1192 bin/gscan2pdf:2537 bin/gscan2pdf:2601 bin/gscan2pdf:2622 msgid "JPEG" msgstr "JPEG" #: bin/gscan2pdf:1195 bin/gscan2pdf:8127 msgid "Resolution" msgstr "해상도" #: bin/gscan2pdf:1196 msgid "Brightness" msgstr "밝기" #: bin/gscan2pdf:1197 msgid "Gain" msgstr "" #: bin/gscan2pdf:1198 msgid "Contrast" msgstr "대비" #: bin/gscan2pdf:1199 bin/gscan2pdf:6406 bin/gscan2pdf:6417 bin/gscan2pdf:6620 msgid "Threshold" msgstr "임계값" #: bin/gscan2pdf:1201 msgid "Speed" msgstr "속도" #: bin/gscan2pdf:1203 bin/gscan2pdf:1210 bin/gscan2pdf:1217 bin/gscan2pdf:1224 #: bin/gscan2pdf:1231 msgid "Yes" msgstr "예" #: bin/gscan2pdf:1204 bin/gscan2pdf:1211 bin/gscan2pdf:1218 bin/gscan2pdf:1225 #: bin/gscan2pdf:1232 msgid "No" msgstr "아니오" #: bin/gscan2pdf:1208 msgid "Batch scan" msgstr "" #: bin/gscan2pdf:1215 bin/gscan2pdf:1222 msgid "Wait for button" msgstr "" #: bin/gscan2pdf:1229 msgid "Cache calibration" msgstr "" #: bin/gscan2pdf:1236 msgid "Source" msgstr "" #: bin/gscan2pdf:1238 msgid "Normal" msgstr "" #: bin/gscan2pdf:1239 msgid "ADF" msgstr "ADF" #: bin/gscan2pdf:1240 msgid "Automatic Document Feeder" msgstr "자동 문서 공급 장치" #: bin/gscan2pdf:1241 msgid "XPA" msgstr "" #: bin/gscan2pdf:1244 msgid "Flatbed" msgstr "" #: bin/gscan2pdf:1245 msgid "Transparency Adapter" msgstr "" #: bin/gscan2pdf:1246 msgid "Transparency Unit" msgstr "" #: bin/gscan2pdf:1249 bin/gscan2pdf:1251 msgid "Page Width" msgstr "페이지 너비" #: bin/gscan2pdf:1250 bin/gscan2pdf:1252 msgid "Page Height" msgstr "페이지 높이" #: bin/gscan2pdf:1253 msgid "Top Overscan" msgstr "" #: bin/gscan2pdf:1254 msgid "Bottom Overscan" msgstr "" #: bin/gscan2pdf:1256 bin/gscan2pdf:1263 msgid "ADF Mode" msgstr "자동문서공급장치 모드" #: bin/gscan2pdf:1258 bin/gscan2pdf:1265 msgid "Simplex" msgstr "단면" #: bin/gscan2pdf:1259 bin/gscan2pdf:1266 msgid "Duplex" msgstr "양면" #: bin/gscan2pdf:1301 bin/gscan2pdf:1306 msgid "Pick crashed session to restore" msgstr "" #: bin/gscan2pdf:1308 bin/gscan2pdf:2609 msgid "Session" msgstr "" #: bin/gscan2pdf:1338 #, perl-format msgid "" "Warning: unable to use %s for temporary storage. Defaulting to %s instead." msgstr "" #: bin/gscan2pdf:1441 msgid "GOCR" msgstr "GOCR" #: bin/gscan2pdf:1441 msgid "Process image with GOCR." msgstr "GOCR을 이용하여 이미지 처리" #: bin/gscan2pdf:1445 msgid "Tesseract" msgstr "Tesseract" #: bin/gscan2pdf:1446 msgid "Process image with Tesseract." msgstr "Tesseract를 이용하여 이미지 처리" #: bin/gscan2pdf:1450 msgid "Ocropus" msgstr "" #: bin/gscan2pdf:1450 msgid "Process image with Ocropus." msgstr "" #: bin/gscan2pdf:1454 msgid "Cuneiform" msgstr "" #: bin/gscan2pdf:1455 msgid "Process image with Cuneiform." msgstr "" #: bin/gscan2pdf:1461 msgid "Save image and Save as PDF both require imagemagick\n" msgstr "이미지를 저장하는 것과 PDF로 저장하는 것 모두 imagemagick을 필요로 합니다\n" #: bin/gscan2pdf:1465 msgid "Save image requires libtiff\n" msgstr "이미지를 저장하려면 libtiff가 필요합니다.\n" #: bin/gscan2pdf:1469 msgid "Save as DjVu requires djvulibre-bin\n" msgstr "DjVu로 저장하려면 djvulibre-bin이 필요합니다\n" #: bin/gscan2pdf:1473 msgid "Email as PDF requires xdg-email\n" msgstr "PDF로 이메일을 보내려면 xdg-email이 필요합니다\n" #: bin/gscan2pdf:1518 msgid "The rotating options and unpaper support require perlmagick\n" msgstr "" #: bin/gscan2pdf:1524 msgid "unpaper missing\n" msgstr "" #: bin/gscan2pdf:1534 msgid "OCR requires gocr, tesseract, ocropus, or cuneiform\n" msgstr "" #: bin/gscan2pdf:1539 msgid "Warning: missing packages" msgstr "" #: bin/gscan2pdf:1544 msgid "Don't show this message again" msgstr "이 메시지를 다시 보이지 않습니다" #: bin/gscan2pdf:1753 msgid "" "Some pages have not been saved.\n" "Do you really want to clear all pages?" msgstr "" #: bin/gscan2pdf:1828 bin/gscan2pdf:1858 #, perl-format msgid "Process %i of %i (%s)" msgstr "" #: bin/gscan2pdf:1867 #, perl-format msgid "Process %i of %i" msgstr "" #: bin/gscan2pdf:1895 msgid "Open image" msgstr "" #: bin/gscan2pdf:1903 bin/gscan2pdf:2797 bin/gscan2pdf:3113 msgid "Image files" msgstr "" #: bin/gscan2pdf:1940 msgid "Pages to extract" msgstr "" #: bin/gscan2pdf:1943 bin/gscan2pdf:2117 bin/gscan2pdf:2586 bin/gscan2pdf:3353 #: bin/gscan2pdf:3494 bin/gscan2pdf:4104 bin/gscan2pdf:4514 bin/gscan2pdf:5825 #: bin/gscan2pdf:6409 bin/gscan2pdf:6495 bin/gscan2pdf:6565 bin/gscan2pdf:6737 #: bin/gscan2pdf:7011 bin/gscan2pdf:7274 bin/gscan2pdf:7757 bin/gscan2pdf:8123 #: lib/Gscan2pdf/Dialog.pm:56 lib/Gscan2pdf/Dialog/Renumber.pm:80 #: lib/Gscan2pdf/Scanner/Dialog.pm:201 t/05_Dialog.t:28 msgid "vbox" msgstr "" #: bin/gscan2pdf:1946 msgid "First page to extract" msgstr "" #: bin/gscan2pdf:1953 msgid "Last page to extract" msgstr "" #: bin/gscan2pdf:2042 lib/Gscan2pdf/Dialog/Renumber.pm:83 msgid "Page Range" msgstr "페이지 범위" #: bin/gscan2pdf:2092 msgid "Metadata" msgstr "메타데이터" #: bin/gscan2pdf:2101 msgid "Date" msgstr "날짜" #: bin/gscan2pdf:2114 msgid "Select Date" msgstr "날짜 선택" #: bin/gscan2pdf:2136 msgid "Today" msgstr "오늘" #: bin/gscan2pdf:2150 msgid "Year-Month-Day" msgstr "년-월-일" #: bin/gscan2pdf:2156 msgid "Document author" msgstr "문서 작성자" #: bin/gscan2pdf:2165 msgid "Title" msgstr "제목" #: bin/gscan2pdf:2174 msgid "Subject" msgstr "주제" #: bin/gscan2pdf:2183 msgid "Keywords" msgstr "주제어" #: bin/gscan2pdf:2245 msgid "Editing text" msgstr "" #: bin/gscan2pdf:2252 bin/gscan2pdf:2258 bin/gscan2pdf:2332 msgid "text" msgstr "" #: bin/gscan2pdf:2352 msgid "PDF filename" msgstr "PDF 파일이름" #: bin/gscan2pdf:2381 msgid "PDF files" msgstr "" #: bin/gscan2pdf:2405 bin/gscan2pdf:2823 bin/gscan2pdf:2880 bin/gscan2pdf:2976 #: bin/gscan2pdf:3035 bin/gscan2pdf:3087 bin/gscan2pdf:3275 #, perl-format msgid "File %s is read-only" msgstr "" #: bin/gscan2pdf:2482 msgid "JPEG Quality" msgstr "JPEG 품질" #: bin/gscan2pdf:2496 msgid "Downsample to" msgstr "" #: bin/gscan2pdf:2501 msgid "PPI" msgstr "" #: bin/gscan2pdf:2520 msgid "Automatic" msgstr "" #: bin/gscan2pdf:2521 msgid "Let gscan2pdf which type of compression to use." msgstr "" #: bin/gscan2pdf:2524 bin/gscan2pdf:2616 msgid "LZW" msgstr "LZW" #: bin/gscan2pdf:2525 bin/gscan2pdf:2617 msgid "Compress output with Lempel-Ziv & Welch encoding." msgstr "" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Zip" msgstr "Zip" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Compress output with deflate encoding." msgstr "" #: bin/gscan2pdf:2529 bin/gscan2pdf:2624 msgid "Packbits" msgstr "" #: bin/gscan2pdf:2530 bin/gscan2pdf:2625 msgid "Compress output with Packbits encoding." msgstr "" #: bin/gscan2pdf:2536 bin/gscan2pdf:2604 msgid "PNG" msgstr "PNG" #: bin/gscan2pdf:2536 msgid "Compress output with PNG encoding." msgstr "출력을 PNG 인코딩으로 압축" #: bin/gscan2pdf:2537 bin/gscan2pdf:2622 msgid "Compress output with JPEG encoding." msgstr "출력을 JPEG 인코딩으로 압축" #: bin/gscan2pdf:2540 bin/gscan2pdf:2637 msgid "Use no compression algorithm on output." msgstr "출력에 압축 알고리즘 사용하지 않음" #: bin/gscan2pdf:2594 msgid "Image type" msgstr "이미지 유형" #: bin/gscan2pdf:2598 msgid "PDF" msgstr "PDF" #: bin/gscan2pdf:2598 msgid "Portable Document Format" msgstr "Portable Document Format" #: bin/gscan2pdf:2599 msgid "GIF" msgstr "GIF" #: bin/gscan2pdf:2599 msgid "CompuServe graphics interchange format" msgstr "" #: bin/gscan2pdf:2602 msgid "Joint Photographic Experts Group JFIF format" msgstr "" #: bin/gscan2pdf:2604 msgid "Portable Network Graphics" msgstr "" #: bin/gscan2pdf:2605 msgid "PNM" msgstr "PNM" #: bin/gscan2pdf:2605 msgid "Portable anymap" msgstr "" #: bin/gscan2pdf:2606 msgid "PS" msgstr "PS" #: bin/gscan2pdf:2606 msgid "Postscript" msgstr "Postscript" #: bin/gscan2pdf:2607 msgid "TIFF" msgstr "TIFF" #: bin/gscan2pdf:2607 msgid "Tagged Image File Format" msgstr "" #: bin/gscan2pdf:2608 msgid "Text" msgstr "텍스트" #: bin/gscan2pdf:2608 msgid "Plain text" msgstr "일반 텍스트" #: bin/gscan2pdf:2609 msgid "gscan2pdf session file" msgstr "" #: bin/gscan2pdf:2611 msgid "DjVu" msgstr "DjVu" #: bin/gscan2pdf:2611 msgid "Deja Vu" msgstr "" #: bin/gscan2pdf:2628 msgid "G3" msgstr "G3" #: bin/gscan2pdf:2629 msgid "Compress output with CCITT Group 3 encoding." msgstr "" #: bin/gscan2pdf:2632 msgid "G4" msgstr "G4" #: bin/gscan2pdf:2633 msgid "Compress output with CCITT Group 4 encoding." msgstr "" #: bin/gscan2pdf:2649 msgid "tiff" msgstr "TIFF" #: bin/gscan2pdf:2681 msgid "Font for non-ASCII text" msgstr "" #: bin/gscan2pdf:2790 msgid "TIFF filename" msgstr "TIFF 파일이름" #: bin/gscan2pdf:2848 msgid "Text filename" msgstr "텍스트 파일 이름" #: bin/gscan2pdf:2856 msgid "Text files" msgstr "" #: bin/gscan2pdf:2944 msgid "PS filename" msgstr "PS 파일이름" #: bin/gscan2pdf:2951 msgid "Postscript files" msgstr "" #: bin/gscan2pdf:3003 msgid "gscan2pdf session filename" msgstr "gscan2pdf 세션 파일 이름" #: bin/gscan2pdf:3010 msgid "gscan2pdf session files" msgstr "" #: bin/gscan2pdf:3093 #, perl-format msgid "" "File %s exists.\n" "Really overwrite?" msgstr "" "파일 %s가 존재합니다.\n" "정말로 덮어쓰시겠습니까?" #: bin/gscan2pdf:3106 msgid "Image filename" msgstr "이미지 파일이름" #: bin/gscan2pdf:3245 msgid "DjVu filename" msgstr "DjVu 파일이름f" #: bin/gscan2pdf:3252 msgid "DjVu files" msgstr "" #: bin/gscan2pdf:3349 msgid "Email as PDF" msgstr "PDF로 이메일 보내기" #: bin/gscan2pdf:3454 msgid "Error creating email" msgstr "" #: bin/gscan2pdf:3490 bin/gscan2pdf:4313 msgid "Scan Document" msgstr "문서 스캔" #: bin/gscan2pdf:3507 lib/Gscan2pdf/Scanner/Dialog.pm:248 msgid "Page Options" msgstr "" #: bin/gscan2pdf:3510 lib/Gscan2pdf/Scanner/Dialog.pm:251 msgid "# Pages" msgstr "# 페이지" #: bin/gscan2pdf:3519 lib/Gscan2pdf/PageRange.pm:34 #: lib/Gscan2pdf/Scanner/Dialog.pm:261 msgid "All" msgstr "모두" #: bin/gscan2pdf:3520 lib/Gscan2pdf/Scanner/Dialog.pm:262 msgid "Scan all pages" msgstr "모든 페이지 스캔" #: bin/gscan2pdf:3532 bin/gscan2pdf:3537 lib/Gscan2pdf/Scanner/Dialog.pm:274 #: lib/Gscan2pdf/Scanner/Dialog.pm:279 msgid "Set number of pages to scan" msgstr "스캔할 페이지 수 설정" #: bin/gscan2pdf:3550 lib/Gscan2pdf/Scanner/Dialog.pm:308 msgid "Extended page numbering" msgstr "확장 페이지 번호" #: bin/gscan2pdf:3554 lib/Gscan2pdf/Scanner/Dialog.pm:312 msgid "Page number" msgstr "페이지 번호" #: bin/gscan2pdf:3563 lib/Gscan2pdf/Dialog/Renumber.pm:111 #: lib/Gscan2pdf/Scanner/Dialog.pm:321 msgid "Start" msgstr "시작" #: bin/gscan2pdf:3572 lib/Gscan2pdf/Dialog/Renumber.pm:132 #: lib/Gscan2pdf/Scanner/Dialog.pm:340 msgid "Increment" msgstr "증가폭" #: bin/gscan2pdf:3604 lib/Gscan2pdf/Scanner/Dialog.pm:372 msgid "Source document" msgstr "" #: bin/gscan2pdf:3611 lib/Gscan2pdf/Scanner/Dialog.pm:379 msgid "Single sided" msgstr "단면" #: bin/gscan2pdf:3612 lib/Gscan2pdf/Scanner/Dialog.pm:380 msgid "Source document is single-sided" msgstr "" #: bin/gscan2pdf:3622 lib/Gscan2pdf/Scanner/Dialog.pm:390 msgid "Double sided" msgstr "양면" #: bin/gscan2pdf:3623 lib/Gscan2pdf/Scanner/Dialog.pm:391 msgid "Source document is double-sided" msgstr "" #: bin/gscan2pdf:3629 lib/Gscan2pdf/Scanner/Dialog.pm:397 msgid "Side to scan" msgstr "스캔할 면" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Facing" msgstr "" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Reverse" msgstr "" #: bin/gscan2pdf:3655 lib/Gscan2pdf/Scanner/Dialog.pm:418 msgid "Sets which side of a double-sided document is scanned" msgstr "양면 문서에서 어느 면을 스캔할지 설정한다" #: bin/gscan2pdf:3719 msgid "Scan Options" msgstr "스캔 옵션" #: bin/gscan2pdf:3722 msgid "Device-dependent options" msgstr "" #: bin/gscan2pdf:3729 lib/Gscan2pdf/Scanner/Dialog.pm:458 msgid "Scan profiles" msgstr "" #: bin/gscan2pdf:3778 bin/gscan2pdf:3784 lib/Gscan2pdf/Scanner/Dialog.pm:479 #: lib/Gscan2pdf/Scanner/Dialog.pm:485 msgid "Name of scan profile" msgstr "" #: bin/gscan2pdf:3828 lib/Gscan2pdf/Scanner/Dialog.pm:518 msgid "Scan" msgstr "스캔" #: bin/gscan2pdf:3866 msgid "Must scan facing pages first" msgstr "" #: bin/gscan2pdf:3977 msgid "Post-processing" msgstr "후처리" #: bin/gscan2pdf:3986 bin/gscan2pdf:4008 msgid "Rotate" msgstr "돌리기" #: bin/gscan2pdf:3987 bin/gscan2pdf:4009 msgid "Rotate image after scanning" msgstr "스캔 후 이미지 회전" #: bin/gscan2pdf:3990 msgid "Both sides" msgstr "양면 모두" #: bin/gscan2pdf:3990 msgid "Both sides." msgstr "양면 모두." #: bin/gscan2pdf:3991 msgid "Facing side" msgstr "" #: bin/gscan2pdf:3991 msgid "Facing side." msgstr "" #: bin/gscan2pdf:3992 msgid "Reverse side" msgstr "" #: bin/gscan2pdf:3992 msgid "Reverse side." msgstr "" #: bin/gscan2pdf:3995 bin/gscan2pdf:4013 msgid "Select side to rotate" msgstr "" #: bin/gscan2pdf:3998 msgid "90" msgstr "90" #: bin/gscan2pdf:3998 msgid "Rotate image 90 degrees clockwise." msgstr "시계방향으로 90도 회전" #: bin/gscan2pdf:3999 msgid "180" msgstr "180" #: bin/gscan2pdf:3999 msgid "Rotate image 180 degrees clockwise." msgstr "시계방향으로 180도 회전" #: bin/gscan2pdf:4000 msgid "270" msgstr "270" #: bin/gscan2pdf:4000 msgid "Rotate image 90 degrees anticlockwise." msgstr "반시계방향으로 90도 회전" #: bin/gscan2pdf:4003 bin/gscan2pdf:4016 msgid "Select direction of rotation" msgstr "회전 방향 선택" #: bin/gscan2pdf:4083 msgid "Clean up images" msgstr "" #: bin/gscan2pdf:4094 msgid "Options" msgstr "" #: bin/gscan2pdf:4095 msgid "Set unpaper options" msgstr "" #: bin/gscan2pdf:4101 msgid "unpaper options" msgstr "" #: bin/gscan2pdf:4136 bin/gscan2pdf:4137 msgid "OCR scanned pages" msgstr "" #: bin/gscan2pdf:4151 msgid "Select OCR engine" msgstr "OCR 엔진 선택" #: bin/gscan2pdf:4210 lib/Gscan2pdf/Scanner/Dialog.pm:634 msgid "Fetching list of devices" msgstr "" #: bin/gscan2pdf:4225 lib/Gscan2pdf/Scanner/Dialog.pm:654 msgid "No devices found" msgstr "" #: bin/gscan2pdf:4367 bin/gscan2pdf:4732 bin/gscan2pdf:4777 bin/gscan2pdf:5214 #: lib/Gscan2pdf/Scanner/Dialog.pm:343 lib/Gscan2pdf/Scanner/Dialog.pm:348 #: t/061_Scanner_Dialog.t:38 t/061_Scanner_Dialog.t:95 msgid "page-number-increment" msgstr "" #: bin/gscan2pdf:4374 bin/gscan2pdf:4729 bin/gscan2pdf:4730 bin/gscan2pdf:4776 #: bin/gscan2pdf:5213 lib/Gscan2pdf/Scanner/Dialog.pm:361 #: t/061_Scanner_Dialog.t:37 msgid "page-number-start" msgstr "" #: bin/gscan2pdf:4663 lib/Gscan2pdf/Scanner/Dialog.pm:210 msgid "Device" msgstr "장치" #: bin/gscan2pdf:4671 lib/Gscan2pdf/Scanner/Dialog.pm:213 msgid "Rescan for devices" msgstr "" #: bin/gscan2pdf:4694 lib/Gscan2pdf/Scanner/Dialog.pm:237 msgid "Sets the device to be used for the scan" msgstr "스캔할 때 사용할 장치 설정" #: bin/gscan2pdf:4780 lib/Gscan2pdf/Scanner/Dialog.pm:300 #: t/061_Scanner_Dialog.t:35 msgid "num-pages" msgstr "" #: bin/gscan2pdf:4821 msgid "Scanning" msgstr "" #: bin/gscan2pdf:4974 msgid "Unable to load image" msgstr "" #: bin/gscan2pdf:5004 msgid "print-pages" msgstr "" #: bin/gscan2pdf:5008 msgid "page-ranges" msgstr "" #: bin/gscan2pdf:5405 msgid "Patches gratefully received from:" msgstr "" #: bin/gscan2pdf:5407 msgid "To aid the scan-to-PDF process" msgstr "" #: bin/gscan2pdf:5408 msgid "Copyright 2006--2012 Jeffrey Ratcliffe" msgstr "" #: bin/gscan2pdf:5492 bin/gscan2pdf:6028 msgid "The options cache seems to be empty. Reload device-dependent options?" msgstr "" #: bin/gscan2pdf:5519 bin/gscan2pdf:6054 msgid "Updating options" msgstr "" #: bin/gscan2pdf:5571 msgid "Paper size" msgstr "용지 크기" #: bin/gscan2pdf:5572 bin/gscan2pdf:5672 bin/gscan2pdf:5840 bin/gscan2pdf:6769 msgid "Width" msgstr "폭" #: bin/gscan2pdf:5573 bin/gscan2pdf:5678 bin/gscan2pdf:5841 bin/gscan2pdf:6780 msgid "Height" msgstr "높이" #: bin/gscan2pdf:5574 bin/gscan2pdf:5684 bin/gscan2pdf:5842 #: lib/Gscan2pdf/Unpaper.pm:124 lib/Gscan2pdf/Unpaper.pm:152 msgid "Left" msgstr "왼쪽" #: bin/gscan2pdf:5575 bin/gscan2pdf:5690 bin/gscan2pdf:5843 #: lib/Gscan2pdf/Unpaper.pm:129 lib/Gscan2pdf/Unpaper.pm:157 msgid "Top" msgstr "위" #: bin/gscan2pdf:5589 bin/gscan2pdf:5703 bin/gscan2pdf:6232 msgid "Manual" msgstr "" #: bin/gscan2pdf:5590 bin/gscan2pdf:5700 msgid "Edit" msgstr "편집" #: bin/gscan2pdf:5591 msgid "Selects or edits the paper size" msgstr "" #: bin/gscan2pdf:5673 msgid "Width of scan area" msgstr "스캔 영역의 너비" #: bin/gscan2pdf:5679 msgid "Height of scan area" msgstr "스캔 영역의 높이" #: bin/gscan2pdf:5685 msgid "Top-left x position of scan area" msgstr "" #: bin/gscan2pdf:5691 msgid "Top-left y position of scan area" msgstr "" #: bin/gscan2pdf:5822 msgid "Edit paper size" msgstr "용지 크기 편집" #: bin/gscan2pdf:5839 msgid "Name" msgstr "이름" #: bin/gscan2pdf:5893 msgid "Cannot delete all paper sizes" msgstr "" #: bin/gscan2pdf:5955 msgid "" "The following paper sizes are too big to be scanned by the selected device:" msgstr "" #: bin/gscan2pdf:6419 bin/gscan2pdf:6605 msgid "%" msgstr "%" #: bin/gscan2pdf:6492 msgid "Negate" msgstr "" #: bin/gscan2pdf:6562 msgid "Unsharp mask" msgstr "" #: bin/gscan2pdf:6573 msgid "Radius" msgstr "" #: bin/gscan2pdf:6575 bin/gscan2pdf:6592 bin/gscan2pdf:6747 bin/gscan2pdf:6759 #: bin/gscan2pdf:6771 bin/gscan2pdf:6782 msgid "pixels" msgstr "" #: bin/gscan2pdf:6582 msgid "" "The radius of the Gaussian, in pixels, not counting the center pixel (0 = " "automatic)." msgstr "" #: bin/gscan2pdf:6590 msgid "Sigma" msgstr "" #: bin/gscan2pdf:6597 msgid "The standard deviation of the Gaussian." msgstr "" #: bin/gscan2pdf:6603 msgid "Amount" msgstr "" #: bin/gscan2pdf:6612 msgid "" "The percentage of the difference between the original and the blur image " "that is added back into the original." msgstr "" #: bin/gscan2pdf:6627 msgid "" "The threshold, as a fraction of QuantumRange, needed to apply the difference " "amount." msgstr "" #: bin/gscan2pdf:6733 msgid "Crop" msgstr "" #: bin/gscan2pdf:6745 msgid "x" msgstr "" #: bin/gscan2pdf:6751 msgid "The x-position of the left hand edge of the crop." msgstr "" #: bin/gscan2pdf:6757 msgid "y" msgstr "" #: bin/gscan2pdf:6763 msgid "The y-position of the top edge of the crop." msgstr "" #: bin/gscan2pdf:6774 msgid "The width of the crop." msgstr "" #: bin/gscan2pdf:6785 msgid "The height of the crop." msgstr "" #: bin/gscan2pdf:6906 msgid "label" msgstr "" #: bin/gscan2pdf:7007 msgid "unpaper" msgstr "" #: bin/gscan2pdf:7216 bin/gscan2pdf:7244 msgid "Language to recognise" msgstr "" #: bin/gscan2pdf:7227 msgid "English" msgstr "영어" #: bin/gscan2pdf:7270 msgid "OCR" msgstr "" #: bin/gscan2pdf:7279 msgid "OCR Engine" msgstr "OCR 엔진" #: bin/gscan2pdf:7323 msgid "Start OCR" msgstr "OCR 시작" #: bin/gscan2pdf:7339 msgid "No page selected" msgstr "선택된 페이지가 없습니다" #: bin/gscan2pdf:7374 msgid "" "Some pages have not been saved.\n" "Do you really want to quit?" msgstr "" "저장되지 않은 페이지가 있습니다.\n" "정말로 끝내시겠습니까?" #: bin/gscan2pdf:7432 #, perl-format msgid "" "The help viewer requires module Gtk2::Ex::PodViewer\n" "Alternatively, try: %s %s\n" "\n" msgstr "" #: bin/gscan2pdf:7698 msgid "This operation cannot be undone. Are you sure?" msgstr "이 작업은 되돌릴 수 없습니다. 정말로 하시겠습니까?" #: bin/gscan2pdf:7753 msgid "Preferences" msgstr "" #: bin/gscan2pdf:7762 msgid "Frontend" msgstr "" #: bin/gscan2pdf:7766 msgid "libsane-perl" msgstr "" #: bin/gscan2pdf:7767 msgid "Scan using the perl bindings for SANE." msgstr "" #: bin/gscan2pdf:7770 msgid "scanimage" msgstr "" #: bin/gscan2pdf:7771 msgid "Scan using the scanimage frontend." msgstr "" #: bin/gscan2pdf:7775 msgid "scanimage-perl" msgstr "" #: bin/gscan2pdf:7776 msgid "Scan using the scanimage-perl frontend." msgstr "" #: bin/gscan2pdf:7779 msgid "scanadf-perl" msgstr "" #: bin/gscan2pdf:7780 msgid "Scan using the scanadf-perl frontend." msgstr "" #: bin/gscan2pdf:7785 msgid "scanadf" msgstr "" #: bin/gscan2pdf:7786 msgid "Scan using the scanadf frontend." msgstr "" #: bin/gscan2pdf:7791 msgid "Cycle SANE handle after scan" msgstr "" #: bin/gscan2pdf:7814 msgid "Default filename for PDFs" msgstr "" #: bin/gscan2pdf:7820 msgid "" "%a\t author\n" "%t\t title\n" "%y\t document's year\n" "%Y\t today's year\n" "%m\t document's month\n" "%M\t today's month\n" "%d\t document's day\n" "%D\t today's day" msgstr "" #: bin/gscan2pdf:7830 msgid "Scan command prefix" msgstr "" #: bin/gscan2pdf:7839 msgid "Restore window settings on startup" msgstr "" #: bin/gscan2pdf:7845 msgid "Cache device-dependent options" msgstr "" #: bin/gscan2pdf:7851 msgid "Clear device-dependent options cache" msgstr "" #: bin/gscan2pdf:7862 msgid "Temporary directory" msgstr "" #: bin/gscan2pdf:7867 msgid "Browse" msgstr "" #: bin/gscan2pdf:7871 msgid "Select temporary directory" msgstr "" #: bin/gscan2pdf:7888 msgid "Blank threshold" msgstr "" #: bin/gscan2pdf:7893 msgid "Threshold used for selecting blank pages" msgstr "" #: bin/gscan2pdf:7899 msgid "Dark threshold" msgstr "" #: bin/gscan2pdf:7904 msgid "Threshold used for selecting dark pages" msgstr "" #: bin/gscan2pdf:7910 msgid "OCR output" msgstr "" #: bin/gscan2pdf:7915 msgid "Replace" msgstr "" #: bin/gscan2pdf:7917 msgid "" "Replace the contents of the text buffer with that from the OCR output." msgstr "" #: bin/gscan2pdf:7920 msgid "Prepend" msgstr "" #: bin/gscan2pdf:7921 msgid "Prepend the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7924 msgid "Append" msgstr "" #: bin/gscan2pdf:7925 msgid "Append the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7933 msgid "User-defined tools" msgstr "" #: bin/gscan2pdf:7954 msgid "View files on saving" msgstr "" #: bin/gscan2pdf:8000 msgid "" "You will have to restart gscanp2df for changes to the temporary directory to " "take effect." msgstr "" #: bin/gscan2pdf:8092 msgid "" "Use %i and %o for the input and output filenames respectively, or a single " "%i if the image is to be modified in-place.\n" "\n" "The other variable available is:\n" "\n" "%r resolution" msgstr "" #: bin/gscan2pdf:8119 msgid "Properties" msgstr "" #: lib/Gscan2pdf/Dialog.pm:63 lib/Gscan2pdf/Dialog.pm:79 t/05_Dialog.t:25 msgid "hide-on-delete" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:78 lib/Gscan2pdf/Dialog/Renumber.pm:162 msgid "Renumber" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:98 lib/Gscan2pdf/Dialog/Renumber.pm:207 #: lib/Gscan2pdf/Dialog/Renumber.pm:244 msgid "range" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:102 msgid "Page numbering" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:105 lib/Gscan2pdf/Scanner/Dialog.pm:254 msgid "border_width" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:126 lib/Gscan2pdf/Dialog/Renumber.pm:192 #: lib/Gscan2pdf/Dialog/Renumber.pm:242 t/07_Dialog_Renumber.t:33 #: t/07_Dialog_Renumber.t:45 t/07_Dialog_Renumber.t:59 #: t/07_Dialog_Renumber.t:66 msgid "start" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:147 lib/Gscan2pdf/Dialog/Renumber.pm:193 #: lib/Gscan2pdf/Dialog/Renumber.pm:243 t/07_Dialog_Renumber.t:34 #: t/07_Dialog_Renumber.t:46 t/07_Dialog_Renumber.t:60 #: t/07_Dialog_Renumber.t:67 msgid "increment" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:205 lib/Gscan2pdf/Dialog/Renumber.pm:241 msgid "document" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:295 msgid "" "The current settings would result in duplicate page numbers. Please select " "new start and increment values." msgstr "" #: lib/Gscan2pdf/Document.pm:83 msgid "Thumbnails" msgstr "" #: lib/Gscan2pdf/Document.pm:1502 msgid "Unknown DjVu file structure. Please contact the author." msgstr "" #: lib/Gscan2pdf/Document.pm:1558 #, perl-format msgid "%s is not a recognised image type" msgstr "" #: lib/Gscan2pdf/Document.pm:1580 lib/Gscan2pdf/Document.pm:1637 #, perl-format msgid "Importing page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:1613 msgid "Error extracting images from PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1692 msgid "Setting up PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1703 #, perl-format msgid "Saving page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:1814 lib/Gscan2pdf/Document.pm:2136 #, perl-format msgid "Error compressing image: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1919 #, perl-format msgid "Error creating PDF image object: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1930 #, perl-format msgid "Error embedding file image in %s format to PDF: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1939 msgid "Closing PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1955 #, perl-format msgid "Writing page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:2006 msgid "Error writing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2025 lib/Gscan2pdf/Document.pm:2227 #, perl-format msgid "Can't open file: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:2050 msgid "Error adding text layer to DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2056 msgid "Closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2063 msgid "Error closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2078 #, perl-format msgid "Converting image %i of %i to TIFF" msgstr "" #: lib/Gscan2pdf/Document.pm:2105 msgid "Error writing TIFF" msgstr "" #: lib/Gscan2pdf/Document.pm:2121 msgid "Concatenating TIFFs" msgstr "" #: lib/Gscan2pdf/Document.pm:2140 msgid "Converting to PS" msgstr "" #: lib/Gscan2pdf/Document.pm:2200 lib/Gscan2pdf/Document.pm:2215 msgid "Error saving image" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:158 #, perl-format msgid "Scanning %i pages..." msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:163 #, perl-format msgid "Scanning page %i..." msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:188 lib/Gscan2pdf/Frontend/CLI.pm:296 msgid "Scanner warming up" msgstr "스캐너 준비 중" #: lib/Gscan2pdf/Frontend/CLI.pm:195 msgid "Document feeder out of documents" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:212 lib/Gscan2pdf/Frontend/CLI.pm:325 msgid "Device busy" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:218 lib/Gscan2pdf/Frontend/CLI.pm:330 msgid "Operation cancelled" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:223 lib/Gscan2pdf/Frontend/CLI.pm:336 msgid "Unknown message: " msgstr "" #: lib/Gscan2pdf/Page.pm:68 lib/Gscan2pdf/Page.pm:73 #, perl-format msgid "Error importing image %s: %s" msgstr "" #: lib/Gscan2pdf/PageRange.pm:33 msgid "Selected" msgstr "" #: lib/Gscan2pdf/PageRange.pm:58 msgid "active" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:218 t/061_Scanner_Dialog.t:33 #: t/061_Scanner_Dialog.t:59 msgid "device-list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:496 t/061_Scanner_Dialog.t:139 #: t/061_Scanner_Dialog.t:174 t/062_Scanner_Dialog.t:50 #: t/062_Scanner_Dialog.t:75 msgid "current-scan-options" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:567 msgid "logger" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:650 t/05_Dialog.t:24 msgid "transient-for" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:716 msgid "device_list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:749 t/061_Scanner_Dialog.t:32 msgid "device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:751 msgid "Opening device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:760 msgid "Retrieving options" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:41 msgid "Layout" msgstr "레이아웃" #: lib/Gscan2pdf/Unpaper.pm:44 msgid "Single" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:46 msgid "One page per sheet, oriented upwards without rotation." msgstr "회전 없이 바로 선 한 장의 용지에 한 페이지" #: lib/Gscan2pdf/Unpaper.pm:49 msgid "Double" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:51 msgid "" "Two pages per sheet, landscape orientation (one page on the left half, one " "page on the right half)." msgstr "가로 방향의 한 장의 용지에 두 페이지 (한 페이지는 왼쪽 반, 한 페이지는 오른쪽 반)" #: lib/Gscan2pdf/Unpaper.pm:59 msgid "# Output pages" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:60 msgid "Number of pages to output." msgstr "출력할 페이지의 수" #: lib/Gscan2pdf/Unpaper.pm:68 msgid "No deskew" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:69 msgid "Disable deskewing." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:74 msgid "No mask scan" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:75 msgid "Disable mask detection." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:80 msgid "No black filter" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:81 msgid "Disable black area scan." msgstr "검은 영역을 스캔하지 않음" #: lib/Gscan2pdf/Unpaper.pm:86 msgid "No gray filter" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:87 msgid "Disable gray area scan." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:92 msgid "No noise filter" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:93 msgid "Disable noise filter." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:98 msgid "No blur filter" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:99 msgid "Disable blur filter." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:104 msgid "No border scan" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:105 msgid "Disable border scanning." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:110 msgid "No border align" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:112 msgid "Disable aligning of the area detected by border scanning." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:117 msgid "Deskew to edge" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:119 msgid "" "Edges from which to scan for rotation. Each edge of a mask can be used to " "detect the mask's rotation. If multiple edges are specified, the average " "value will be used, unless the statistical deviation exceeds --deskew-scan-" "deviation." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:125 msgid "Use 'left' for scanning from the left edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:130 msgid "Use 'top' for scanning from the top edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:134 lib/Gscan2pdf/Unpaper.pm:162 msgid "Right" msgstr "오른쪽" #: lib/Gscan2pdf/Unpaper.pm:135 msgid "Use 'right' for scanning from the right edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:139 lib/Gscan2pdf/Unpaper.pm:167 msgid "Bottom" msgstr "아래" #: lib/Gscan2pdf/Unpaper.pm:140 msgid "Use 'bottom' for scanning from the bottom." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:147 msgid "Align to edge" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:148 msgid "Edge to which to align the page." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:153 msgid "Use 'left' to align to the left edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:158 msgid "Use 'top' to align to the top edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:163 msgid "Use 'right' to align to the right edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:168 msgid "Use 'bottom' to align to the bottom." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:174 msgid "Border margin" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:178 msgid "Vertical margin" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:180 msgid "" "Vertical distance to keep from the sheet edge when aligning a border area." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:189 msgid "Horizontal margin" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:191 msgid "" "Horizontal distance to keep from the sheet edge when aligning a border area." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:202 msgid "White threshold" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:204 msgid "Brightness ratio above which a pixel is considered white." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:212 msgid "Black threshold" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:214 msgid "" "Brightness ratio below which a pixel is considered black (non-gray). This is " "used by the gray-filter. This value is also used when converting a grayscale " "image to black-and-white mode." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:250 msgid "Deskew" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:280 msgid "Border" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:337 msgid "Filters" msgstr "" #: t/05_Dialog.t:23 msgid "title" msgstr "" #: t/05_Dialog.t:26 t/05_Dialog.t:31 t/05_Dialog.t:32 t/05_Dialog.t:38 #: t/05_Dialog.t:39 msgid "border-width" msgstr "" #: t/061_Scanner_Dialog.t:34 msgid "dir" msgstr "" #: t/061_Scanner_Dialog.t:36 msgid "max-pages" msgstr "" #: t/061_Scanner_Dialog.t:39 msgid "side-to-scan" msgstr "" #: t/061_Scanner_Dialog.t:40 t/061_Scanner_Dialog.t:185 msgid "available-scan-options" msgstr "" #: t/061_Scanner_Dialog.t:171 t/062_Scanner_Dialog.t:73 msgid "profile" msgstr "" gscan2pdf-1.2.3/po/gscan2pdf-pt.po0000644000175000017500000012027612243440507015251 0ustar jeffjeff# Portuguese translation for gscan2pdf # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the gscan2pdf package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: gscan2pdf\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-10-25 08:12+0200\n" "PO-Revision-Date: 2010-05-08 16:42+0000\n" "Last-Translator: Sérgio Marques \n" "Language-Team: Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-19 09:22+0000\n" "X-Generator: Launchpad (build 16831)\n" #: bin/gscan2pdf:157 msgid "Error displaying help" msgstr "" #: bin/gscan2pdf:201 msgid "" "Error: unable to load settings.\n" "Backing up settings\n" "Reverting to defaults" msgstr "" "Erro:incapaz de carregar definições.\n" "Criando cópia das definições\n" "Revertendo para omissões" #: bin/gscan2pdf:244 msgid "A4" msgstr "A4" #: bin/gscan2pdf:250 msgid "US Letter" msgstr "Letter (EUA)" #: bin/gscan2pdf:256 msgid "US Legal" msgstr "Legal EUA" #: bin/gscan2pdf:323 bin/gscan2pdf:344 #, perl-format msgid "Cannot read file: %s" msgstr "" #: bin/gscan2pdf:451 msgid "_File" msgstr "_Ficheiro" #: bin/gscan2pdf:454 msgid "_New" msgstr "_Novo" #: bin/gscan2pdf:455 msgid "Clears all pages" msgstr "Apagar todas as páginas" #: bin/gscan2pdf:459 msgid "_Open" msgstr "_Abrir" #: bin/gscan2pdf:460 msgid "Open image file(s)" msgstr "" #: bin/gscan2pdf:465 msgid "S_can" msgstr "_Digitalizar" #: bin/gscan2pdf:467 msgid "Scan document" msgstr "Digitalizar documento" #: bin/gscan2pdf:471 bin/gscan2pdf:472 bin/gscan2pdf:2582 msgid "Save" msgstr "Guardar" #: bin/gscan2pdf:476 msgid "_Email as PDF" msgstr "_Email como PDF" #: bin/gscan2pdf:477 msgid "Attach as PDF to a new email" msgstr "Anexar como PDF num novo email" #: bin/gscan2pdf:480 msgid "_Print" msgstr "" #: bin/gscan2pdf:481 msgid "Print" msgstr "" #: bin/gscan2pdf:485 msgid "_Compress temporary files" msgstr "_Comprimir ficheiros temporários" #: bin/gscan2pdf:486 msgid "Compress temporary files" msgstr "Comprimir ficheiros temporários" #: bin/gscan2pdf:490 msgid "_Quit" msgstr "_Sair" #: bin/gscan2pdf:491 msgid "Quit" msgstr "Sair" #: bin/gscan2pdf:495 msgid "_Edit" msgstr "_Editar" #: bin/gscan2pdf:497 msgid "_Undo" msgstr "Des_fazer" #: bin/gscan2pdf:497 msgid "Undo" msgstr "Desfazer" #: bin/gscan2pdf:501 msgid "_Redo" msgstr "_Refazer" #: bin/gscan2pdf:502 msgid "Redo" msgstr "Refazer" #: bin/gscan2pdf:506 msgid "Cu_t" msgstr "Cor_tar" #: bin/gscan2pdf:507 msgid "Cut selection" msgstr "Cortar a selecção" #: bin/gscan2pdf:511 msgid "_Copy" msgstr "_Copiar" #: bin/gscan2pdf:512 msgid "Copy selection" msgstr "Copiar a selecção" #: bin/gscan2pdf:516 msgid "_Paste" msgstr "C_olar" #: bin/gscan2pdf:517 msgid "Paste selection" msgstr "Colar a selecção" #: bin/gscan2pdf:521 msgid "_Delete" msgstr "Apa_gar" #: bin/gscan2pdf:522 msgid "Delete selected pages" msgstr "Apagar páginas seleccionadas" #: bin/gscan2pdf:526 msgid "_Renumber" msgstr "_Renumerar" #: bin/gscan2pdf:527 msgid "Renumber pages" msgstr "Renumerar páginas" #: bin/gscan2pdf:529 bin/gscan2pdf:679 msgid "_Select" msgstr "_Seleccionar" #: bin/gscan2pdf:532 msgid "_All" msgstr "_Todas" #: bin/gscan2pdf:533 msgid "Select all pages" msgstr "Seleccionar todas as páginas" #: bin/gscan2pdf:536 msgid "_Odd" msgstr "Í_mpares" #: bin/gscan2pdf:537 msgid "Select all odd-numbered pages" msgstr "Seleccionar todas as ímpares" #: bin/gscan2pdf:541 msgid "_Even" msgstr "_Pares" #: bin/gscan2pdf:542 msgid "Select all evenly-numbered pages" msgstr "Seleccionar todas as pares" #: bin/gscan2pdf:547 msgid "_Blank" msgstr "_Limpar" #: bin/gscan2pdf:548 msgid "Select pages with low standard deviation" msgstr "" #: bin/gscan2pdf:552 msgid "_Dark" msgstr "" #: bin/gscan2pdf:553 msgid "Select dark pages" msgstr "" #: bin/gscan2pdf:558 msgid "_Modified" msgstr "" #: bin/gscan2pdf:560 msgid "Select modified pages since last OCR" msgstr "" #: bin/gscan2pdf:565 msgid "_No OCR" msgstr "" #: bin/gscan2pdf:566 msgid "Select pages with no OCR output" msgstr "" #: bin/gscan2pdf:570 msgid "_Clear OCR" msgstr "" #: bin/gscan2pdf:571 msgid "Clear OCR output from selected pages" msgstr "" #: bin/gscan2pdf:575 msgid "Propert_ies" msgstr "Propr_iedades" #: bin/gscan2pdf:576 msgid "Edit image properties" msgstr "Editar propriedades da imagem" #: bin/gscan2pdf:580 msgid "Prefere_nces" msgstr "Preferê_ncias" #: bin/gscan2pdf:581 msgid "Edit preferences" msgstr "Editar preferências" #: bin/gscan2pdf:585 msgid "_View" msgstr "_Ver" #: bin/gscan2pdf:588 msgid "Zoom _100%" msgstr "Zoom _100%" #: bin/gscan2pdf:589 msgid "Zoom to 100%" msgstr "Zoom a 100%" #: bin/gscan2pdf:593 msgid "Zoom to _fit" msgstr "Zoom para _caber" #: bin/gscan2pdf:594 msgid "Zoom to fit" msgstr "Zoom para caber" #: bin/gscan2pdf:598 msgid "Zoom _in" msgstr "_Aumentar zoom" #: bin/gscan2pdf:599 msgid "Zoom in" msgstr "Aumentar zoom" #: bin/gscan2pdf:603 msgid "Zoom _out" msgstr "Diminuir z_oom" #: bin/gscan2pdf:604 msgid "Zoom out" msgstr "Diminuir zoom" #: bin/gscan2pdf:609 bin/gscan2pdf:611 msgid "Rotate 90 clockwise" msgstr "Rodar 90° em sentido horário" #: bin/gscan2pdf:617 bin/gscan2pdf:619 msgid "Rotate 180" msgstr "Rodar 180º" #: bin/gscan2pdf:625 bin/gscan2pdf:627 msgid "Rotate 90 anticlockwise" msgstr "Rodar 90° em sentido anti-horário" #: bin/gscan2pdf:632 msgid "_Tools" msgstr "_Ferramentas" #: bin/gscan2pdf:634 msgid "_Threshold" msgstr "_Tolerância" #: bin/gscan2pdf:635 msgid "Change each pixel above this threshold to black" msgstr "" #: bin/gscan2pdf:639 msgid "_Negate" msgstr "_Negar" #: bin/gscan2pdf:640 msgid "Converts black to white and vice versa" msgstr "" #: bin/gscan2pdf:644 msgid "_Unsharp Mask" msgstr "" #: bin/gscan2pdf:645 msgid "Apply an unsharp mask" msgstr "" #: bin/gscan2pdf:648 msgid "_Crop" msgstr "_Cortar" #: bin/gscan2pdf:649 msgid "Crop pages" msgstr "Cortar páginas" #: bin/gscan2pdf:653 msgid "_Clean up" msgstr "_Limpar" #: bin/gscan2pdf:654 bin/gscan2pdf:4085 msgid "Clean up scanned images with unpaper" msgstr "" #: bin/gscan2pdf:657 msgid "_OCR" msgstr "_OCR" #: bin/gscan2pdf:658 msgid "Optical Character Recognition" msgstr "Reconhecimento Óptico de Caracteres" #: bin/gscan2pdf:660 msgid "U_ser-defined" msgstr "" #: bin/gscan2pdf:663 bin/gscan2pdf:665 msgid "_Help" msgstr "_Ajuda" #: bin/gscan2pdf:666 msgid "Help" msgstr "Ajuda" #: bin/gscan2pdf:668 msgid "_About" msgstr "_Acerca" #: bin/gscan2pdf:674 msgid "_Drag" msgstr "_Arrastar" #: bin/gscan2pdf:675 msgid "Use the hand tool" msgstr "Usar a ferramenta mão" #: bin/gscan2pdf:680 msgid "Use the rectangular selection tool" msgstr "Usar a ferramenta de selecção rectangular" #: bin/gscan2pdf:684 msgid "_Paint" msgstr "_Pintar" #: bin/gscan2pdf:685 msgid "Use the painter tool" msgstr "" #: bin/gscan2pdf:965 lib/Gscan2pdf/Document.pm:2594 #: lib/Gscan2pdf/Document.pm:2595 msgid "Error copying page" msgstr "Erro ao copiar página" #: bin/gscan2pdf:1082 msgid "Image" msgstr "" #: bin/gscan2pdf:1117 msgid "OCR Output" msgstr "" #: bin/gscan2pdf:1174 msgid "Mode" msgstr "Modo" #: bin/gscan2pdf:1176 msgid "Lineart" msgstr "Lineart" #: bin/gscan2pdf:1177 msgid "Grayscale" msgstr "Escala de cinzentos" #: bin/gscan2pdf:1178 msgid "Gray" msgstr "Cinzento" #: bin/gscan2pdf:1179 msgid "Color" msgstr "Cor" #: bin/gscan2pdf:1180 msgid "Black & White" msgstr "Preto & Branco" #: bin/gscan2pdf:1181 msgid "True Gray" msgstr "" #: bin/gscan2pdf:1182 msgid "Binary" msgstr "Binário" #: bin/gscan2pdf:1183 bin/gscan2pdf:1242 bin/gscan2pdf:1243 msgid "Auto" msgstr "Automático" #: bin/gscan2pdf:1184 msgid "Halftone" msgstr "Meios-tons" #: bin/gscan2pdf:1185 msgid "24bit Color" msgstr "Cor a 24bit" #: bin/gscan2pdf:1189 bin/gscan2pdf:2547 bin/gscan2pdf:2644 msgid "Compression" msgstr "Compressão" #: bin/gscan2pdf:1191 bin/gscan2pdf:2539 bin/gscan2pdf:2636 msgid "None" msgstr "Nenhum" #: bin/gscan2pdf:1192 bin/gscan2pdf:2537 bin/gscan2pdf:2601 bin/gscan2pdf:2622 msgid "JPEG" msgstr "JPEG" #: bin/gscan2pdf:1195 bin/gscan2pdf:8127 msgid "Resolution" msgstr "Resolução" #: bin/gscan2pdf:1196 msgid "Brightness" msgstr "Brilho" #: bin/gscan2pdf:1197 msgid "Gain" msgstr "Ganho" #: bin/gscan2pdf:1198 msgid "Contrast" msgstr "Contraste" #: bin/gscan2pdf:1199 bin/gscan2pdf:6406 bin/gscan2pdf:6417 bin/gscan2pdf:6620 msgid "Threshold" msgstr "Limiar" #: bin/gscan2pdf:1201 msgid "Speed" msgstr "Velocidade" #: bin/gscan2pdf:1203 bin/gscan2pdf:1210 bin/gscan2pdf:1217 bin/gscan2pdf:1224 #: bin/gscan2pdf:1231 msgid "Yes" msgstr "Sim" #: bin/gscan2pdf:1204 bin/gscan2pdf:1211 bin/gscan2pdf:1218 bin/gscan2pdf:1225 #: bin/gscan2pdf:1232 msgid "No" msgstr "Não" #: bin/gscan2pdf:1208 msgid "Batch scan" msgstr "Digitalizar em série" #: bin/gscan2pdf:1215 bin/gscan2pdf:1222 msgid "Wait for button" msgstr "Espere pelo botão" #: bin/gscan2pdf:1229 msgid "Cache calibration" msgstr "Calibração de cache" #: bin/gscan2pdf:1236 msgid "Source" msgstr "Origem" #: bin/gscan2pdf:1238 msgid "Normal" msgstr "Normal" #: bin/gscan2pdf:1239 msgid "ADF" msgstr "ADF" #: bin/gscan2pdf:1240 msgid "Automatic Document Feeder" msgstr "Alimentador Automático" #: bin/gscan2pdf:1241 msgid "XPA" msgstr "XPA" #: bin/gscan2pdf:1244 msgid "Flatbed" msgstr "Flatbed" #: bin/gscan2pdf:1245 msgid "Transparency Adapter" msgstr "Adaptador de Transparências" #: bin/gscan2pdf:1246 msgid "Transparency Unit" msgstr "Unidade de Transparências" #: bin/gscan2pdf:1249 bin/gscan2pdf:1251 msgid "Page Width" msgstr "Largura da página" #: bin/gscan2pdf:1250 bin/gscan2pdf:1252 msgid "Page Height" msgstr "Altura da Página" #: bin/gscan2pdf:1253 msgid "Top Overscan" msgstr "" #: bin/gscan2pdf:1254 msgid "Bottom Overscan" msgstr "" #: bin/gscan2pdf:1256 bin/gscan2pdf:1263 msgid "ADF Mode" msgstr "Modo ADF" #: bin/gscan2pdf:1258 bin/gscan2pdf:1265 msgid "Simplex" msgstr "Simples" #: bin/gscan2pdf:1259 bin/gscan2pdf:1266 msgid "Duplex" msgstr "Duplo" #: bin/gscan2pdf:1301 bin/gscan2pdf:1306 msgid "Pick crashed session to restore" msgstr "" #: bin/gscan2pdf:1308 bin/gscan2pdf:2609 msgid "Session" msgstr "" #: bin/gscan2pdf:1338 #, perl-format msgid "" "Warning: unable to use %s for temporary storage. Defaulting to %s instead." msgstr "" #: bin/gscan2pdf:1441 msgid "GOCR" msgstr "GOCR" #: bin/gscan2pdf:1441 msgid "Process image with GOCR." msgstr "" #: bin/gscan2pdf:1445 msgid "Tesseract" msgstr "Tesseract" #: bin/gscan2pdf:1446 msgid "Process image with Tesseract." msgstr "" #: bin/gscan2pdf:1450 msgid "Ocropus" msgstr "" #: bin/gscan2pdf:1450 msgid "Process image with Ocropus." msgstr "" #: bin/gscan2pdf:1454 msgid "Cuneiform" msgstr "" #: bin/gscan2pdf:1455 msgid "Process image with Cuneiform." msgstr "" #: bin/gscan2pdf:1461 msgid "Save image and Save as PDF both require imagemagick\n" msgstr "" #: bin/gscan2pdf:1465 msgid "Save image requires libtiff\n" msgstr "" #: bin/gscan2pdf:1469 msgid "Save as DjVu requires djvulibre-bin\n" msgstr "Guardar como DjVu requere djvulibre-bin\n" #: bin/gscan2pdf:1473 msgid "Email as PDF requires xdg-email\n" msgstr "Email como PDF requere xdg-email\n" #: bin/gscan2pdf:1518 msgid "The rotating options and unpaper support require perlmagick\n" msgstr "" #: bin/gscan2pdf:1524 msgid "unpaper missing\n" msgstr "" #: bin/gscan2pdf:1534 msgid "OCR requires gocr, tesseract, ocropus, or cuneiform\n" msgstr "" #: bin/gscan2pdf:1539 msgid "Warning: missing packages" msgstr "Aviso: faltam pacotes" #: bin/gscan2pdf:1544 msgid "Don't show this message again" msgstr "Não mostrar esta mensagem outra vez" #: bin/gscan2pdf:1753 msgid "" "Some pages have not been saved.\n" "Do you really want to clear all pages?" msgstr "" #: bin/gscan2pdf:1828 bin/gscan2pdf:1858 #, perl-format msgid "Process %i of %i (%s)" msgstr "" #: bin/gscan2pdf:1867 #, perl-format msgid "Process %i of %i" msgstr "" #: bin/gscan2pdf:1895 msgid "Open image" msgstr "" #: bin/gscan2pdf:1903 bin/gscan2pdf:2797 bin/gscan2pdf:3113 msgid "Image files" msgstr "" #: bin/gscan2pdf:1940 msgid "Pages to extract" msgstr "" #: bin/gscan2pdf:1943 bin/gscan2pdf:2117 bin/gscan2pdf:2586 bin/gscan2pdf:3353 #: bin/gscan2pdf:3494 bin/gscan2pdf:4104 bin/gscan2pdf:4514 bin/gscan2pdf:5825 #: bin/gscan2pdf:6409 bin/gscan2pdf:6495 bin/gscan2pdf:6565 bin/gscan2pdf:6737 #: bin/gscan2pdf:7011 bin/gscan2pdf:7274 bin/gscan2pdf:7757 bin/gscan2pdf:8123 #: lib/Gscan2pdf/Dialog.pm:56 lib/Gscan2pdf/Dialog/Renumber.pm:80 #: lib/Gscan2pdf/Scanner/Dialog.pm:201 t/05_Dialog.t:28 msgid "vbox" msgstr "" #: bin/gscan2pdf:1946 msgid "First page to extract" msgstr "" #: bin/gscan2pdf:1953 msgid "Last page to extract" msgstr "" #: bin/gscan2pdf:2042 lib/Gscan2pdf/Dialog/Renumber.pm:83 msgid "Page Range" msgstr "" #: bin/gscan2pdf:2092 msgid "Metadata" msgstr "Meta-Informação" #: bin/gscan2pdf:2101 msgid "Date" msgstr "Data" #: bin/gscan2pdf:2114 msgid "Select Date" msgstr "Seleccionar Data" #: bin/gscan2pdf:2136 msgid "Today" msgstr "Hoje" #: bin/gscan2pdf:2150 msgid "Year-Month-Day" msgstr "Ano-Mês-Dia" #: bin/gscan2pdf:2156 msgid "Document author" msgstr "Autor do documento" #: bin/gscan2pdf:2165 msgid "Title" msgstr "Título" #: bin/gscan2pdf:2174 msgid "Subject" msgstr "Assunto" #: bin/gscan2pdf:2183 msgid "Keywords" msgstr "Palavras Chave" #: bin/gscan2pdf:2245 msgid "Editing text" msgstr "" #: bin/gscan2pdf:2252 bin/gscan2pdf:2258 bin/gscan2pdf:2332 msgid "text" msgstr "" #: bin/gscan2pdf:2352 msgid "PDF filename" msgstr "Nome do ficheiro PDF" #: bin/gscan2pdf:2381 msgid "PDF files" msgstr "" #: bin/gscan2pdf:2405 bin/gscan2pdf:2823 bin/gscan2pdf:2880 bin/gscan2pdf:2976 #: bin/gscan2pdf:3035 bin/gscan2pdf:3087 bin/gscan2pdf:3275 #, perl-format msgid "File %s is read-only" msgstr "" #: bin/gscan2pdf:2482 msgid "JPEG Quality" msgstr "Qualidade do JPEG" #: bin/gscan2pdf:2496 msgid "Downsample to" msgstr "" #: bin/gscan2pdf:2501 msgid "PPI" msgstr "" #: bin/gscan2pdf:2520 msgid "Automatic" msgstr "" #: bin/gscan2pdf:2521 msgid "Let gscan2pdf which type of compression to use." msgstr "" #: bin/gscan2pdf:2524 bin/gscan2pdf:2616 msgid "LZW" msgstr "LZW" #: bin/gscan2pdf:2525 bin/gscan2pdf:2617 msgid "Compress output with Lempel-Ziv & Welch encoding." msgstr "Comprimir saída com a codificação Lempel-Ziv & Welch." #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Zip" msgstr "Zip" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Compress output with deflate encoding." msgstr "" #: bin/gscan2pdf:2529 bin/gscan2pdf:2624 msgid "Packbits" msgstr "Packbits" #: bin/gscan2pdf:2530 bin/gscan2pdf:2625 msgid "Compress output with Packbits encoding." msgstr "Comprimir saída com codificação Packbits" #: bin/gscan2pdf:2536 bin/gscan2pdf:2604 msgid "PNG" msgstr "PNG" #: bin/gscan2pdf:2536 msgid "Compress output with PNG encoding." msgstr "" #: bin/gscan2pdf:2537 bin/gscan2pdf:2622 msgid "Compress output with JPEG encoding." msgstr "Comprimir saída com codificação JPEG" #: bin/gscan2pdf:2540 bin/gscan2pdf:2637 msgid "Use no compression algorithm on output." msgstr "Não utilizar algoritmo de compressão na saída" #: bin/gscan2pdf:2594 msgid "Image type" msgstr "Tipo de imagem" #: bin/gscan2pdf:2598 msgid "PDF" msgstr "" #: bin/gscan2pdf:2598 msgid "Portable Document Format" msgstr "" #: bin/gscan2pdf:2599 msgid "GIF" msgstr "GIF" #: bin/gscan2pdf:2599 msgid "CompuServe graphics interchange format" msgstr "CompuServe graphics interchange format" #: bin/gscan2pdf:2602 msgid "Joint Photographic Experts Group JFIF format" msgstr "Joint Photographic Experts Group JFIF format" #: bin/gscan2pdf:2604 msgid "Portable Network Graphics" msgstr "Portable Network Graphics" #: bin/gscan2pdf:2605 msgid "PNM" msgstr "PNM" #: bin/gscan2pdf:2605 msgid "Portable anymap" msgstr "Portable anymap" #: bin/gscan2pdf:2606 msgid "PS" msgstr "PS" #: bin/gscan2pdf:2606 msgid "Postscript" msgstr "PostScript" #: bin/gscan2pdf:2607 msgid "TIFF" msgstr "TIFF" #: bin/gscan2pdf:2607 msgid "Tagged Image File Format" msgstr "Tagged Image File Format" #: bin/gscan2pdf:2608 msgid "Text" msgstr "" #: bin/gscan2pdf:2608 msgid "Plain text" msgstr "" #: bin/gscan2pdf:2609 msgid "gscan2pdf session file" msgstr "" #: bin/gscan2pdf:2611 msgid "DjVu" msgstr "" #: bin/gscan2pdf:2611 msgid "Deja Vu" msgstr "" #: bin/gscan2pdf:2628 msgid "G3" msgstr "G3" #: bin/gscan2pdf:2629 msgid "Compress output with CCITT Group 3 encoding." msgstr "Comprimir saída com codificação CCIITT Group 3" #: bin/gscan2pdf:2632 msgid "G4" msgstr "G4" #: bin/gscan2pdf:2633 msgid "Compress output with CCITT Group 4 encoding." msgstr "Comprimir saída com codificação CCIITT Group 4" #: bin/gscan2pdf:2649 msgid "tiff" msgstr "" #: bin/gscan2pdf:2681 msgid "Font for non-ASCII text" msgstr "" #: bin/gscan2pdf:2790 msgid "TIFF filename" msgstr "Nome do ficheiro TIFF" #: bin/gscan2pdf:2848 msgid "Text filename" msgstr "" #: bin/gscan2pdf:2856 msgid "Text files" msgstr "" #: bin/gscan2pdf:2944 msgid "PS filename" msgstr "" #: bin/gscan2pdf:2951 msgid "Postscript files" msgstr "" #: bin/gscan2pdf:3003 msgid "gscan2pdf session filename" msgstr "" #: bin/gscan2pdf:3010 msgid "gscan2pdf session files" msgstr "" #: bin/gscan2pdf:3093 #, perl-format msgid "" "File %s exists.\n" "Really overwrite?" msgstr "" "Ficheiro %s já existe.\n" "Tem a certeza que deseja substituí-lo?" #: bin/gscan2pdf:3106 msgid "Image filename" msgstr "" #: bin/gscan2pdf:3245 msgid "DjVu filename" msgstr "Nome do ficheiro DjVu" #: bin/gscan2pdf:3252 msgid "DjVu files" msgstr "" #: bin/gscan2pdf:3349 msgid "Email as PDF" msgstr "Email como PDF" #: bin/gscan2pdf:3454 msgid "Error creating email" msgstr "" #: bin/gscan2pdf:3490 bin/gscan2pdf:4313 msgid "Scan Document" msgstr "Digitalizar Documento" #: bin/gscan2pdf:3507 lib/Gscan2pdf/Scanner/Dialog.pm:248 msgid "Page Options" msgstr "Opções de Página" #: bin/gscan2pdf:3510 lib/Gscan2pdf/Scanner/Dialog.pm:251 msgid "# Pages" msgstr "# Páginas" #: bin/gscan2pdf:3519 lib/Gscan2pdf/PageRange.pm:34 #: lib/Gscan2pdf/Scanner/Dialog.pm:261 msgid "All" msgstr "Tudo" #: bin/gscan2pdf:3520 lib/Gscan2pdf/Scanner/Dialog.pm:262 msgid "Scan all pages" msgstr "Digitalizar todas as páginas" #: bin/gscan2pdf:3532 bin/gscan2pdf:3537 lib/Gscan2pdf/Scanner/Dialog.pm:274 #: lib/Gscan2pdf/Scanner/Dialog.pm:279 msgid "Set number of pages to scan" msgstr "Defina número de páginas a digitalizar" #: bin/gscan2pdf:3550 lib/Gscan2pdf/Scanner/Dialog.pm:308 msgid "Extended page numbering" msgstr "" #: bin/gscan2pdf:3554 lib/Gscan2pdf/Scanner/Dialog.pm:312 msgid "Page number" msgstr "Número de página" #: bin/gscan2pdf:3563 lib/Gscan2pdf/Dialog/Renumber.pm:111 #: lib/Gscan2pdf/Scanner/Dialog.pm:321 msgid "Start" msgstr "Iniciar" #: bin/gscan2pdf:3572 lib/Gscan2pdf/Dialog/Renumber.pm:132 #: lib/Gscan2pdf/Scanner/Dialog.pm:340 msgid "Increment" msgstr "Incremento" #: bin/gscan2pdf:3604 lib/Gscan2pdf/Scanner/Dialog.pm:372 msgid "Source document" msgstr "Origem do documento" #: bin/gscan2pdf:3611 lib/Gscan2pdf/Scanner/Dialog.pm:379 msgid "Single sided" msgstr "Uma face" #: bin/gscan2pdf:3612 lib/Gscan2pdf/Scanner/Dialog.pm:380 msgid "Source document is single-sided" msgstr "Origem do documento tem uma face" #: bin/gscan2pdf:3622 lib/Gscan2pdf/Scanner/Dialog.pm:390 msgid "Double sided" msgstr "Dupla face" #: bin/gscan2pdf:3623 lib/Gscan2pdf/Scanner/Dialog.pm:391 msgid "Source document is double-sided" msgstr "Origem do documento tem dupla face" #: bin/gscan2pdf:3629 lib/Gscan2pdf/Scanner/Dialog.pm:397 msgid "Side to scan" msgstr "Face a digitalizar" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Facing" msgstr "Frente" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Reverse" msgstr "Verso" #: bin/gscan2pdf:3655 lib/Gscan2pdf/Scanner/Dialog.pm:418 msgid "Sets which side of a double-sided document is scanned" msgstr "Seleccione qual a face a digitalizar num documento com duas faces" #: bin/gscan2pdf:3719 msgid "Scan Options" msgstr "" #: bin/gscan2pdf:3722 msgid "Device-dependent options" msgstr "Opções específicas do dispositivo" #: bin/gscan2pdf:3729 lib/Gscan2pdf/Scanner/Dialog.pm:458 msgid "Scan profiles" msgstr "" #: bin/gscan2pdf:3778 bin/gscan2pdf:3784 lib/Gscan2pdf/Scanner/Dialog.pm:479 #: lib/Gscan2pdf/Scanner/Dialog.pm:485 msgid "Name of scan profile" msgstr "" #: bin/gscan2pdf:3828 lib/Gscan2pdf/Scanner/Dialog.pm:518 msgid "Scan" msgstr "Digitalizar" #: bin/gscan2pdf:3866 msgid "Must scan facing pages first" msgstr "Deve digitalizar página da frente primeiro" #: bin/gscan2pdf:3977 msgid "Post-processing" msgstr "" #: bin/gscan2pdf:3986 bin/gscan2pdf:4008 msgid "Rotate" msgstr "" #: bin/gscan2pdf:3987 bin/gscan2pdf:4009 msgid "Rotate image after scanning" msgstr "" #: bin/gscan2pdf:3990 msgid "Both sides" msgstr "" #: bin/gscan2pdf:3990 msgid "Both sides." msgstr "" #: bin/gscan2pdf:3991 msgid "Facing side" msgstr "" #: bin/gscan2pdf:3991 msgid "Facing side." msgstr "" #: bin/gscan2pdf:3992 msgid "Reverse side" msgstr "" #: bin/gscan2pdf:3992 msgid "Reverse side." msgstr "" #: bin/gscan2pdf:3995 bin/gscan2pdf:4013 msgid "Select side to rotate" msgstr "" #: bin/gscan2pdf:3998 msgid "90" msgstr "" #: bin/gscan2pdf:3998 msgid "Rotate image 90 degrees clockwise." msgstr "" #: bin/gscan2pdf:3999 msgid "180" msgstr "" #: bin/gscan2pdf:3999 msgid "Rotate image 180 degrees clockwise." msgstr "" #: bin/gscan2pdf:4000 msgid "270" msgstr "" #: bin/gscan2pdf:4000 msgid "Rotate image 90 degrees anticlockwise." msgstr "" #: bin/gscan2pdf:4003 bin/gscan2pdf:4016 msgid "Select direction of rotation" msgstr "" #: bin/gscan2pdf:4083 msgid "Clean up images" msgstr "" #: bin/gscan2pdf:4094 msgid "Options" msgstr "Opções" #: bin/gscan2pdf:4095 msgid "Set unpaper options" msgstr "" #: bin/gscan2pdf:4101 msgid "unpaper options" msgstr "" #: bin/gscan2pdf:4136 bin/gscan2pdf:4137 msgid "OCR scanned pages" msgstr "" #: bin/gscan2pdf:4151 msgid "Select OCR engine" msgstr "" #: bin/gscan2pdf:4210 lib/Gscan2pdf/Scanner/Dialog.pm:634 msgid "Fetching list of devices" msgstr "" #: bin/gscan2pdf:4225 lib/Gscan2pdf/Scanner/Dialog.pm:654 msgid "No devices found" msgstr "" #: bin/gscan2pdf:4367 bin/gscan2pdf:4732 bin/gscan2pdf:4777 bin/gscan2pdf:5214 #: lib/Gscan2pdf/Scanner/Dialog.pm:343 lib/Gscan2pdf/Scanner/Dialog.pm:348 #: t/061_Scanner_Dialog.t:38 t/061_Scanner_Dialog.t:95 msgid "page-number-increment" msgstr "" #: bin/gscan2pdf:4374 bin/gscan2pdf:4729 bin/gscan2pdf:4730 bin/gscan2pdf:4776 #: bin/gscan2pdf:5213 lib/Gscan2pdf/Scanner/Dialog.pm:361 #: t/061_Scanner_Dialog.t:37 msgid "page-number-start" msgstr "" #: bin/gscan2pdf:4663 lib/Gscan2pdf/Scanner/Dialog.pm:210 msgid "Device" msgstr "Dispositivo" #: bin/gscan2pdf:4671 lib/Gscan2pdf/Scanner/Dialog.pm:213 msgid "Rescan for devices" msgstr "" #: bin/gscan2pdf:4694 lib/Gscan2pdf/Scanner/Dialog.pm:237 msgid "Sets the device to be used for the scan" msgstr "Escolha o dispositivo a utilizar na digitalização" #: bin/gscan2pdf:4780 lib/Gscan2pdf/Scanner/Dialog.pm:300 #: t/061_Scanner_Dialog.t:35 msgid "num-pages" msgstr "" #: bin/gscan2pdf:4821 msgid "Scanning" msgstr "A digitalizar" #: bin/gscan2pdf:4974 msgid "Unable to load image" msgstr "Não foi possível carregar a imagem" #: bin/gscan2pdf:5004 msgid "print-pages" msgstr "" #: bin/gscan2pdf:5008 msgid "page-ranges" msgstr "" #: bin/gscan2pdf:5405 msgid "Patches gratefully received from:" msgstr "" #: bin/gscan2pdf:5407 msgid "To aid the scan-to-PDF process" msgstr "" #: bin/gscan2pdf:5408 msgid "Copyright 2006--2012 Jeffrey Ratcliffe" msgstr "" #: bin/gscan2pdf:5492 bin/gscan2pdf:6028 msgid "The options cache seems to be empty. Reload device-dependent options?" msgstr "" #: bin/gscan2pdf:5519 bin/gscan2pdf:6054 msgid "Updating options" msgstr "Actualizar opções" #: bin/gscan2pdf:5571 msgid "Paper size" msgstr "Formato do papel" #: bin/gscan2pdf:5572 bin/gscan2pdf:5672 bin/gscan2pdf:5840 bin/gscan2pdf:6769 msgid "Width" msgstr "Largura" #: bin/gscan2pdf:5573 bin/gscan2pdf:5678 bin/gscan2pdf:5841 bin/gscan2pdf:6780 msgid "Height" msgstr "Altura" #: bin/gscan2pdf:5574 bin/gscan2pdf:5684 bin/gscan2pdf:5842 #: lib/Gscan2pdf/Unpaper.pm:124 lib/Gscan2pdf/Unpaper.pm:152 msgid "Left" msgstr "Esquerda" #: bin/gscan2pdf:5575 bin/gscan2pdf:5690 bin/gscan2pdf:5843 #: lib/Gscan2pdf/Unpaper.pm:129 lib/Gscan2pdf/Unpaper.pm:157 msgid "Top" msgstr "Topo" #: bin/gscan2pdf:5589 bin/gscan2pdf:5703 bin/gscan2pdf:6232 msgid "Manual" msgstr "Manual" #: bin/gscan2pdf:5590 bin/gscan2pdf:5700 msgid "Edit" msgstr "Editar" #: bin/gscan2pdf:5591 msgid "Selects or edits the paper size" msgstr "" #: bin/gscan2pdf:5673 msgid "Width of scan area" msgstr "Largura da área de digitalização" #: bin/gscan2pdf:5679 msgid "Height of scan area" msgstr "Altura da área de digitalização" #: bin/gscan2pdf:5685 msgid "Top-left x position of scan area" msgstr "" #: bin/gscan2pdf:5691 msgid "Top-left y position of scan area" msgstr "" #: bin/gscan2pdf:5822 msgid "Edit paper size" msgstr "" #: bin/gscan2pdf:5839 msgid "Name" msgstr "Nome" #: bin/gscan2pdf:5893 msgid "Cannot delete all paper sizes" msgstr "" #: bin/gscan2pdf:5955 msgid "" "The following paper sizes are too big to be scanned by the selected device:" msgstr "" #: bin/gscan2pdf:6419 bin/gscan2pdf:6605 msgid "%" msgstr "%" #: bin/gscan2pdf:6492 msgid "Negate" msgstr "" #: bin/gscan2pdf:6562 msgid "Unsharp mask" msgstr "" #: bin/gscan2pdf:6573 msgid "Radius" msgstr "" #: bin/gscan2pdf:6575 bin/gscan2pdf:6592 bin/gscan2pdf:6747 bin/gscan2pdf:6759 #: bin/gscan2pdf:6771 bin/gscan2pdf:6782 msgid "pixels" msgstr "" #: bin/gscan2pdf:6582 msgid "" "The radius of the Gaussian, in pixels, not counting the center pixel (0 = " "automatic)." msgstr "" #: bin/gscan2pdf:6590 msgid "Sigma" msgstr "" #: bin/gscan2pdf:6597 msgid "The standard deviation of the Gaussian." msgstr "" #: bin/gscan2pdf:6603 msgid "Amount" msgstr "" #: bin/gscan2pdf:6612 msgid "" "The percentage of the difference between the original and the blur image " "that is added back into the original." msgstr "" #: bin/gscan2pdf:6627 msgid "" "The threshold, as a fraction of QuantumRange, needed to apply the difference " "amount." msgstr "" #: bin/gscan2pdf:6733 msgid "Crop" msgstr "Recortar" #: bin/gscan2pdf:6745 msgid "x" msgstr "" #: bin/gscan2pdf:6751 msgid "The x-position of the left hand edge of the crop." msgstr "" #: bin/gscan2pdf:6757 msgid "y" msgstr "" #: bin/gscan2pdf:6763 msgid "The y-position of the top edge of the crop." msgstr "" #: bin/gscan2pdf:6774 msgid "The width of the crop." msgstr "" #: bin/gscan2pdf:6785 msgid "The height of the crop." msgstr "" #: bin/gscan2pdf:6906 msgid "label" msgstr "" #: bin/gscan2pdf:7007 msgid "unpaper" msgstr "unpaper" #: bin/gscan2pdf:7216 bin/gscan2pdf:7244 msgid "Language to recognise" msgstr "" #: bin/gscan2pdf:7227 msgid "English" msgstr "Inglês" #: bin/gscan2pdf:7270 msgid "OCR" msgstr "OCR" #: bin/gscan2pdf:7279 msgid "OCR Engine" msgstr "" #: bin/gscan2pdf:7323 msgid "Start OCR" msgstr "Iniciar o OCR" #: bin/gscan2pdf:7339 msgid "No page selected" msgstr "Nenhuma página seleccionada" #: bin/gscan2pdf:7374 msgid "" "Some pages have not been saved.\n" "Do you really want to quit?" msgstr "" #: bin/gscan2pdf:7432 #, perl-format msgid "" "The help viewer requires module Gtk2::Ex::PodViewer\n" "Alternatively, try: %s %s\n" "\n" msgstr "" "O visualizador da ajuda requere o módulo Gtk2::Ex::PodViewer\n" "Em alternativa, tente: %s %s\n" "\n" #: bin/gscan2pdf:7698 msgid "This operation cannot be undone. Are you sure?" msgstr "" #: bin/gscan2pdf:7753 msgid "Preferences" msgstr "" #: bin/gscan2pdf:7762 msgid "Frontend" msgstr "" #: bin/gscan2pdf:7766 msgid "libsane-perl" msgstr "" #: bin/gscan2pdf:7767 msgid "Scan using the perl bindings for SANE." msgstr "" #: bin/gscan2pdf:7770 msgid "scanimage" msgstr "" #: bin/gscan2pdf:7771 msgid "Scan using the scanimage frontend." msgstr "" #: bin/gscan2pdf:7775 msgid "scanimage-perl" msgstr "" #: bin/gscan2pdf:7776 msgid "Scan using the scanimage-perl frontend." msgstr "" #: bin/gscan2pdf:7779 msgid "scanadf-perl" msgstr "" #: bin/gscan2pdf:7780 msgid "Scan using the scanadf-perl frontend." msgstr "" #: bin/gscan2pdf:7785 msgid "scanadf" msgstr "" #: bin/gscan2pdf:7786 msgid "Scan using the scanadf frontend." msgstr "" #: bin/gscan2pdf:7791 msgid "Cycle SANE handle after scan" msgstr "" #: bin/gscan2pdf:7814 msgid "Default filename for PDFs" msgstr "" #: bin/gscan2pdf:7820 msgid "" "%a\t author\n" "%t\t title\n" "%y\t document's year\n" "%Y\t today's year\n" "%m\t document's month\n" "%M\t today's month\n" "%d\t document's day\n" "%D\t today's day" msgstr "" #: bin/gscan2pdf:7830 msgid "Scan command prefix" msgstr "" #: bin/gscan2pdf:7839 msgid "Restore window settings on startup" msgstr "" #: bin/gscan2pdf:7845 msgid "Cache device-dependent options" msgstr "" #: bin/gscan2pdf:7851 msgid "Clear device-dependent options cache" msgstr "" #: bin/gscan2pdf:7862 msgid "Temporary directory" msgstr "" #: bin/gscan2pdf:7867 msgid "Browse" msgstr "" #: bin/gscan2pdf:7871 msgid "Select temporary directory" msgstr "" #: bin/gscan2pdf:7888 msgid "Blank threshold" msgstr "" #: bin/gscan2pdf:7893 msgid "Threshold used for selecting blank pages" msgstr "" #: bin/gscan2pdf:7899 msgid "Dark threshold" msgstr "" #: bin/gscan2pdf:7904 msgid "Threshold used for selecting dark pages" msgstr "" #: bin/gscan2pdf:7910 msgid "OCR output" msgstr "" #: bin/gscan2pdf:7915 msgid "Replace" msgstr "" #: bin/gscan2pdf:7917 msgid "" "Replace the contents of the text buffer with that from the OCR output." msgstr "" #: bin/gscan2pdf:7920 msgid "Prepend" msgstr "" #: bin/gscan2pdf:7921 msgid "Prepend the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7924 msgid "Append" msgstr "" #: bin/gscan2pdf:7925 msgid "Append the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7933 msgid "User-defined tools" msgstr "" #: bin/gscan2pdf:7954 msgid "View files on saving" msgstr "" #: bin/gscan2pdf:8000 msgid "" "You will have to restart gscanp2df for changes to the temporary directory to " "take effect." msgstr "" #: bin/gscan2pdf:8092 msgid "" "Use %i and %o for the input and output filenames respectively, or a single " "%i if the image is to be modified in-place.\n" "\n" "The other variable available is:\n" "\n" "%r resolution" msgstr "" #: bin/gscan2pdf:8119 msgid "Properties" msgstr "" #: lib/Gscan2pdf/Dialog.pm:63 lib/Gscan2pdf/Dialog.pm:79 t/05_Dialog.t:25 msgid "hide-on-delete" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:78 lib/Gscan2pdf/Dialog/Renumber.pm:162 msgid "Renumber" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:98 lib/Gscan2pdf/Dialog/Renumber.pm:207 #: lib/Gscan2pdf/Dialog/Renumber.pm:244 msgid "range" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:102 msgid "Page numbering" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:105 lib/Gscan2pdf/Scanner/Dialog.pm:254 msgid "border_width" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:126 lib/Gscan2pdf/Dialog/Renumber.pm:192 #: lib/Gscan2pdf/Dialog/Renumber.pm:242 t/07_Dialog_Renumber.t:33 #: t/07_Dialog_Renumber.t:45 t/07_Dialog_Renumber.t:59 #: t/07_Dialog_Renumber.t:66 msgid "start" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:147 lib/Gscan2pdf/Dialog/Renumber.pm:193 #: lib/Gscan2pdf/Dialog/Renumber.pm:243 t/07_Dialog_Renumber.t:34 #: t/07_Dialog_Renumber.t:46 t/07_Dialog_Renumber.t:60 #: t/07_Dialog_Renumber.t:67 msgid "increment" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:205 lib/Gscan2pdf/Dialog/Renumber.pm:241 msgid "document" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:295 msgid "" "The current settings would result in duplicate page numbers. Please select " "new start and increment values." msgstr "" #: lib/Gscan2pdf/Document.pm:83 msgid "Thumbnails" msgstr "" #: lib/Gscan2pdf/Document.pm:1502 msgid "Unknown DjVu file structure. Please contact the author." msgstr "" #: lib/Gscan2pdf/Document.pm:1558 #, perl-format msgid "%s is not a recognised image type" msgstr "" #: lib/Gscan2pdf/Document.pm:1580 lib/Gscan2pdf/Document.pm:1637 #, perl-format msgid "Importing page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:1613 msgid "Error extracting images from PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1692 msgid "Setting up PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1703 #, perl-format msgid "Saving page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:1814 lib/Gscan2pdf/Document.pm:2136 #, perl-format msgid "Error compressing image: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1919 #, perl-format msgid "Error creating PDF image object: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1930 #, perl-format msgid "Error embedding file image in %s format to PDF: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1939 msgid "Closing PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1955 #, perl-format msgid "Writing page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:2006 msgid "Error writing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2025 lib/Gscan2pdf/Document.pm:2227 #, perl-format msgid "Can't open file: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:2050 msgid "Error adding text layer to DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2056 msgid "Closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2063 msgid "Error closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2078 #, perl-format msgid "Converting image %i of %i to TIFF" msgstr "" #: lib/Gscan2pdf/Document.pm:2105 msgid "Error writing TIFF" msgstr "" #: lib/Gscan2pdf/Document.pm:2121 msgid "Concatenating TIFFs" msgstr "" #: lib/Gscan2pdf/Document.pm:2140 msgid "Converting to PS" msgstr "" #: lib/Gscan2pdf/Document.pm:2200 lib/Gscan2pdf/Document.pm:2215 msgid "Error saving image" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:158 #, perl-format msgid "Scanning %i pages..." msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:163 #, perl-format msgid "Scanning page %i..." msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:188 lib/Gscan2pdf/Frontend/CLI.pm:296 msgid "Scanner warming up" msgstr "O scanner está a aquecer" #: lib/Gscan2pdf/Frontend/CLI.pm:195 msgid "Document feeder out of documents" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:212 lib/Gscan2pdf/Frontend/CLI.pm:325 msgid "Device busy" msgstr "Dispositivo ocupado" #: lib/Gscan2pdf/Frontend/CLI.pm:218 lib/Gscan2pdf/Frontend/CLI.pm:330 msgid "Operation cancelled" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:223 lib/Gscan2pdf/Frontend/CLI.pm:336 msgid "Unknown message: " msgstr "Mensagem desconhecida: " #: lib/Gscan2pdf/Page.pm:68 lib/Gscan2pdf/Page.pm:73 #, perl-format msgid "Error importing image %s: %s" msgstr "" #: lib/Gscan2pdf/PageRange.pm:33 msgid "Selected" msgstr "Seleccionado" #: lib/Gscan2pdf/PageRange.pm:58 msgid "active" msgstr "activo" #: lib/Gscan2pdf/Scanner/Dialog.pm:218 t/061_Scanner_Dialog.t:33 #: t/061_Scanner_Dialog.t:59 msgid "device-list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:496 t/061_Scanner_Dialog.t:139 #: t/061_Scanner_Dialog.t:174 t/062_Scanner_Dialog.t:50 #: t/062_Scanner_Dialog.t:75 msgid "current-scan-options" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:567 msgid "logger" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:650 t/05_Dialog.t:24 msgid "transient-for" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:716 msgid "device_list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:749 t/061_Scanner_Dialog.t:32 msgid "device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:751 msgid "Opening device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:760 msgid "Retrieving options" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:41 msgid "Layout" msgstr "Esquema" #: lib/Gscan2pdf/Unpaper.pm:44 msgid "Single" msgstr "Uma face" #: lib/Gscan2pdf/Unpaper.pm:46 msgid "One page per sheet, oriented upwards without rotation." msgstr "Uma página por folha, orientada para cima e sem rotação" #: lib/Gscan2pdf/Unpaper.pm:49 msgid "Double" msgstr "Dupla face" #: lib/Gscan2pdf/Unpaper.pm:51 msgid "" "Two pages per sheet, landscape orientation (one page on the left half, one " "page on the right half)." msgstr "" "Duas páginas por folha, orientação horizontal (uma página na metade " "esquerda, outra página na metade direita)." #: lib/Gscan2pdf/Unpaper.pm:59 msgid "# Output pages" msgstr "# Páginas de saída" #: lib/Gscan2pdf/Unpaper.pm:60 msgid "Number of pages to output." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:68 msgid "No deskew" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:69 msgid "Disable deskewing." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:74 msgid "No mask scan" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:75 msgid "Disable mask detection." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:80 msgid "No black filter" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:81 msgid "Disable black area scan." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:86 msgid "No gray filter" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:87 msgid "Disable gray area scan." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:92 msgid "No noise filter" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:93 msgid "Disable noise filter." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:98 msgid "No blur filter" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:99 msgid "Disable blur filter." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:104 msgid "No border scan" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:105 msgid "Disable border scanning." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:110 msgid "No border align" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:112 msgid "Disable aligning of the area detected by border scanning." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:117 msgid "Deskew to edge" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:119 msgid "" "Edges from which to scan for rotation. Each edge of a mask can be used to " "detect the mask's rotation. If multiple edges are specified, the average " "value will be used, unless the statistical deviation exceeds --deskew-scan-" "deviation." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:125 msgid "Use 'left' for scanning from the left edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:130 msgid "Use 'top' for scanning from the top edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:134 lib/Gscan2pdf/Unpaper.pm:162 msgid "Right" msgstr "Direita" #: lib/Gscan2pdf/Unpaper.pm:135 msgid "Use 'right' for scanning from the right edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:139 lib/Gscan2pdf/Unpaper.pm:167 msgid "Bottom" msgstr "Fundo" #: lib/Gscan2pdf/Unpaper.pm:140 msgid "Use 'bottom' for scanning from the bottom." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:147 msgid "Align to edge" msgstr "Alinhar à margem" #: lib/Gscan2pdf/Unpaper.pm:148 msgid "Edge to which to align the page." msgstr "Margem para alinhar página." #: lib/Gscan2pdf/Unpaper.pm:153 msgid "Use 'left' to align to the left edge." msgstr "Utilize ''esquerda' para alinhar à margem esquerda." #: lib/Gscan2pdf/Unpaper.pm:158 msgid "Use 'top' to align to the top edge." msgstr "Utilize 'topo' para alinhar à margem superior." #: lib/Gscan2pdf/Unpaper.pm:163 msgid "Use 'right' to align to the right edge." msgstr "Utilize 'direita' para alinhar à margem direita." #: lib/Gscan2pdf/Unpaper.pm:168 msgid "Use 'bottom' to align to the bottom." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:174 msgid "Border margin" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:178 msgid "Vertical margin" msgstr "Margem vertical" #: lib/Gscan2pdf/Unpaper.pm:180 msgid "" "Vertical distance to keep from the sheet edge when aligning a border area." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:189 msgid "Horizontal margin" msgstr "Margem horizontal" #: lib/Gscan2pdf/Unpaper.pm:191 msgid "" "Horizontal distance to keep from the sheet edge when aligning a border area." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:202 msgid "White threshold" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:204 msgid "Brightness ratio above which a pixel is considered white." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:212 msgid "Black threshold" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:214 msgid "" "Brightness ratio below which a pixel is considered black (non-gray). This is " "used by the gray-filter. This value is also used when converting a grayscale " "image to black-and-white mode." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:250 msgid "Deskew" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:280 msgid "Border" msgstr "Borda" #: lib/Gscan2pdf/Unpaper.pm:337 msgid "Filters" msgstr "Filtros" #: t/05_Dialog.t:23 msgid "title" msgstr "" #: t/05_Dialog.t:26 t/05_Dialog.t:31 t/05_Dialog.t:32 t/05_Dialog.t:38 #: t/05_Dialog.t:39 msgid "border-width" msgstr "" #: t/061_Scanner_Dialog.t:34 msgid "dir" msgstr "" #: t/061_Scanner_Dialog.t:36 msgid "max-pages" msgstr "" #: t/061_Scanner_Dialog.t:39 msgid "side-to-scan" msgstr "" #: t/061_Scanner_Dialog.t:40 t/061_Scanner_Dialog.t:185 msgid "available-scan-options" msgstr "" #: t/061_Scanner_Dialog.t:171 t/062_Scanner_Dialog.t:73 msgid "profile" msgstr "" gscan2pdf-1.2.3/po/gscan2pdf-sv.po0000644000175000017500000012745112243440507015260 0ustar jeffjeff# Swedish translation for gscan2pdf # Copyright (c) 2006 Rosetta Contributors and Canonical Ltd 2006 # This file is distributed under the same license as the gscan2pdf package. # FIRST AUTHOR , 2006. # msgid "" msgstr "" "Project-Id-Version: gscan2pdf\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-10-25 08:12+0200\n" "PO-Revision-Date: 2012-05-17 20:22+0000\n" "Last-Translator: Tobias Holm \n" "Language-Team: Swedish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-19 09:22+0000\n" "X-Generator: Launchpad (build 16831)\n" #: bin/gscan2pdf:157 msgid "Error displaying help" msgstr "" #: bin/gscan2pdf:201 msgid "" "Error: unable to load settings.\n" "Backing up settings\n" "Reverting to defaults" msgstr "" "Fel: Kan inte ladda inställningarna.\n" "Sparar undan de nuvarande inställningarna och återgår till standardvärden." #: bin/gscan2pdf:244 msgid "A4" msgstr "A4" #: bin/gscan2pdf:250 msgid "US Letter" msgstr "US Letter" #: bin/gscan2pdf:256 msgid "US Legal" msgstr "US Legal" #: bin/gscan2pdf:323 bin/gscan2pdf:344 #, perl-format msgid "Cannot read file: %s" msgstr "Kan inte läsa filen: %s" #: bin/gscan2pdf:451 msgid "_File" msgstr "_Arkiv" #: bin/gscan2pdf:454 msgid "_New" msgstr "_Ny" #: bin/gscan2pdf:455 msgid "Clears all pages" msgstr "Tömmer alla sidor" #: bin/gscan2pdf:459 msgid "_Open" msgstr "_Öppna" #: bin/gscan2pdf:460 msgid "Open image file(s)" msgstr "" #: bin/gscan2pdf:465 msgid "S_can" msgstr "S_can" #: bin/gscan2pdf:467 msgid "Scan document" msgstr "Läs in dokument" #: bin/gscan2pdf:471 bin/gscan2pdf:472 bin/gscan2pdf:2582 msgid "Save" msgstr "Spara" #: bin/gscan2pdf:476 msgid "_Email as PDF" msgstr "_E-posta som PDF fil" #: bin/gscan2pdf:477 msgid "Attach as PDF to a new email" msgstr "Lägg som PDF-bilaga till nytt e-postmeddelande" #: bin/gscan2pdf:480 msgid "_Print" msgstr "" #: bin/gscan2pdf:481 msgid "Print" msgstr "" #: bin/gscan2pdf:485 msgid "_Compress temporary files" msgstr "_Komprimera temporära filer" #: bin/gscan2pdf:486 msgid "Compress temporary files" msgstr "Komprimera temporära filer" #: bin/gscan2pdf:490 msgid "_Quit" msgstr "_Avsluta" #: bin/gscan2pdf:491 msgid "Quit" msgstr "Avsluta" #: bin/gscan2pdf:495 msgid "_Edit" msgstr "_Redigera" #: bin/gscan2pdf:497 msgid "_Undo" msgstr "_Ångra" #: bin/gscan2pdf:497 msgid "Undo" msgstr "Ångra" #: bin/gscan2pdf:501 msgid "_Redo" msgstr "_Återställ" #: bin/gscan2pdf:502 msgid "Redo" msgstr "Återställ" #: bin/gscan2pdf:506 msgid "Cu_t" msgstr "Klipp _ut" #: bin/gscan2pdf:507 msgid "Cut selection" msgstr "Klipp ut markering" #: bin/gscan2pdf:511 msgid "_Copy" msgstr "_Kopiera" #: bin/gscan2pdf:512 msgid "Copy selection" msgstr "Kopiera markering" #: bin/gscan2pdf:516 msgid "_Paste" msgstr "_Klistra in" #: bin/gscan2pdf:517 msgid "Paste selection" msgstr "Klistra in markeringen" #: bin/gscan2pdf:521 msgid "_Delete" msgstr "_Ta bort" #: bin/gscan2pdf:522 msgid "Delete selected pages" msgstr "Ta bort markerade sidor" #: bin/gscan2pdf:526 msgid "_Renumber" msgstr "_Numrera om" #: bin/gscan2pdf:527 msgid "Renumber pages" msgstr "Omnumera sidor" #: bin/gscan2pdf:529 bin/gscan2pdf:679 msgid "_Select" msgstr "_Markera" #: bin/gscan2pdf:532 msgid "_All" msgstr "_Alla" #: bin/gscan2pdf:533 msgid "Select all pages" msgstr "Markera alla sidor" #: bin/gscan2pdf:536 msgid "_Odd" msgstr "_Udda" #: bin/gscan2pdf:537 msgid "Select all odd-numbered pages" msgstr "Markerar alla udda sidor" #: bin/gscan2pdf:541 msgid "_Even" msgstr "_Jämna" #: bin/gscan2pdf:542 msgid "Select all evenly-numbered pages" msgstr "Markerar alla jämna sidor" #: bin/gscan2pdf:547 msgid "_Blank" msgstr "_Blanka" #: bin/gscan2pdf:548 msgid "Select pages with low standard deviation" msgstr "Markera sidor som har låg avvikelse" #: bin/gscan2pdf:552 msgid "_Dark" msgstr "_Mörka" #: bin/gscan2pdf:553 msgid "Select dark pages" msgstr "Markera mörka sidor" #: bin/gscan2pdf:558 msgid "_Modified" msgstr "_Ändrade" #: bin/gscan2pdf:560 msgid "Select modified pages since last OCR" msgstr "Markera ändrade sidor efter OCR" #: bin/gscan2pdf:565 msgid "_No OCR" msgstr "" #: bin/gscan2pdf:566 msgid "Select pages with no OCR output" msgstr "" #: bin/gscan2pdf:570 msgid "_Clear OCR" msgstr "" #: bin/gscan2pdf:571 msgid "Clear OCR output from selected pages" msgstr "" #: bin/gscan2pdf:575 msgid "Propert_ies" msgstr "_Egenskaper" #: bin/gscan2pdf:576 msgid "Edit image properties" msgstr "Redigerar bildegenskaperna" #: bin/gscan2pdf:580 msgid "Prefere_nces" msgstr "Inställ_ningar" #: bin/gscan2pdf:581 msgid "Edit preferences" msgstr "Redigera inställningar" #: bin/gscan2pdf:585 msgid "_View" msgstr "_Visa" #: bin/gscan2pdf:588 msgid "Zoom _100%" msgstr "Zooma _100%" #: bin/gscan2pdf:589 msgid "Zoom to 100%" msgstr "Zooma till 100%" #: bin/gscan2pdf:593 msgid "Zoom to _fit" msgstr "Anpassa till _fönstret" #: bin/gscan2pdf:594 msgid "Zoom to fit" msgstr "Zooma för att passa" #: bin/gscan2pdf:598 msgid "Zoom _in" msgstr "Zooma _in" #: bin/gscan2pdf:599 msgid "Zoom in" msgstr "Zooma in" #: bin/gscan2pdf:603 msgid "Zoom _out" msgstr "Zooma _ut" #: bin/gscan2pdf:604 msgid "Zoom out" msgstr "Zooma ut" #: bin/gscan2pdf:609 bin/gscan2pdf:611 msgid "Rotate 90 clockwise" msgstr "Rotera 90° medsols" #: bin/gscan2pdf:617 bin/gscan2pdf:619 msgid "Rotate 180" msgstr "Rotera 180°" #: bin/gscan2pdf:625 bin/gscan2pdf:627 msgid "Rotate 90 anticlockwise" msgstr "Rotera 90° motsols" #: bin/gscan2pdf:632 msgid "_Tools" msgstr "_Verktyg" #: bin/gscan2pdf:634 msgid "_Threshold" msgstr "_Tröskelvärde" #: bin/gscan2pdf:635 msgid "Change each pixel above this threshold to black" msgstr "Ändra varje pixel ovan tröskelvärdet till svart" #: bin/gscan2pdf:639 msgid "_Negate" msgstr "_Invertera" #: bin/gscan2pdf:640 msgid "Converts black to white and vice versa" msgstr "Gör om svart till vitt och vice versa" #: bin/gscan2pdf:644 msgid "_Unsharp Mask" msgstr "_Oskarp masakning" #: bin/gscan2pdf:645 msgid "Apply an unsharp mask" msgstr "Använd en oskarp maskning" #: bin/gscan2pdf:648 msgid "_Crop" msgstr "_Beskär" #: bin/gscan2pdf:649 msgid "Crop pages" msgstr "Beskär en bild" #: bin/gscan2pdf:653 msgid "_Clean up" msgstr "_Rensa upp" #: bin/gscan2pdf:654 bin/gscan2pdf:4085 msgid "Clean up scanned images with unpaper" msgstr "Rensa scannade filer från fula kanter med unpaper" #: bin/gscan2pdf:657 msgid "_OCR" msgstr "_OCR" #: bin/gscan2pdf:658 msgid "Optical Character Recognition" msgstr "Optisk teckenläsning" #: bin/gscan2pdf:660 msgid "U_ser-defined" msgstr "" #: bin/gscan2pdf:663 bin/gscan2pdf:665 msgid "_Help" msgstr "_Hjälp" #: bin/gscan2pdf:666 msgid "Help" msgstr "Hjälp" #: bin/gscan2pdf:668 msgid "_About" msgstr "_Om" #: bin/gscan2pdf:674 msgid "_Drag" msgstr "_Dra" #: bin/gscan2pdf:675 msgid "Use the hand tool" msgstr "Använd handverktyget" #: bin/gscan2pdf:680 msgid "Use the rectangular selection tool" msgstr "Använd det rektangulära markeringsverktyget" #: bin/gscan2pdf:684 msgid "_Paint" msgstr "_Fyll" #: bin/gscan2pdf:685 msgid "Use the painter tool" msgstr "Använd fyllverktyget" #: bin/gscan2pdf:965 lib/Gscan2pdf/Document.pm:2594 #: lib/Gscan2pdf/Document.pm:2595 msgid "Error copying page" msgstr "Fel vid kopiering av sida" #: bin/gscan2pdf:1082 msgid "Image" msgstr "" #: bin/gscan2pdf:1117 msgid "OCR Output" msgstr "" #: bin/gscan2pdf:1174 msgid "Mode" msgstr "Läge" #: bin/gscan2pdf:1176 msgid "Lineart" msgstr "Streckteckning" #: bin/gscan2pdf:1177 msgid "Grayscale" msgstr "Gråskala" #: bin/gscan2pdf:1178 msgid "Gray" msgstr "Grå" #: bin/gscan2pdf:1179 msgid "Color" msgstr "Färg" #: bin/gscan2pdf:1180 msgid "Black & White" msgstr "Svart och vit" #: bin/gscan2pdf:1181 msgid "True Gray" msgstr "Sann Grå" #: bin/gscan2pdf:1182 msgid "Binary" msgstr "Binär" #: bin/gscan2pdf:1183 bin/gscan2pdf:1242 bin/gscan2pdf:1243 msgid "Auto" msgstr "Auto" #: bin/gscan2pdf:1184 msgid "Halftone" msgstr "Halvton" #: bin/gscan2pdf:1185 msgid "24bit Color" msgstr "24 bitars färg" #: bin/gscan2pdf:1189 bin/gscan2pdf:2547 bin/gscan2pdf:2644 msgid "Compression" msgstr "Komprimering" #: bin/gscan2pdf:1191 bin/gscan2pdf:2539 bin/gscan2pdf:2636 msgid "None" msgstr "Inget" #: bin/gscan2pdf:1192 bin/gscan2pdf:2537 bin/gscan2pdf:2601 bin/gscan2pdf:2622 msgid "JPEG" msgstr "JPEG" #: bin/gscan2pdf:1195 bin/gscan2pdf:8127 msgid "Resolution" msgstr "Upplösning" #: bin/gscan2pdf:1196 msgid "Brightness" msgstr "Ljusstyrka" #: bin/gscan2pdf:1197 msgid "Gain" msgstr "Förstärk" #: bin/gscan2pdf:1198 msgid "Contrast" msgstr "Kontrast" #: bin/gscan2pdf:1199 bin/gscan2pdf:6406 bin/gscan2pdf:6417 bin/gscan2pdf:6620 msgid "Threshold" msgstr "Tröskelvärde" #: bin/gscan2pdf:1201 msgid "Speed" msgstr "Hastighet" #: bin/gscan2pdf:1203 bin/gscan2pdf:1210 bin/gscan2pdf:1217 bin/gscan2pdf:1224 #: bin/gscan2pdf:1231 msgid "Yes" msgstr "Ja" #: bin/gscan2pdf:1204 bin/gscan2pdf:1211 bin/gscan2pdf:1218 bin/gscan2pdf:1225 #: bin/gscan2pdf:1232 msgid "No" msgstr "Nej" #: bin/gscan2pdf:1208 msgid "Batch scan" msgstr "Batchskanning" #: bin/gscan2pdf:1215 bin/gscan2pdf:1222 msgid "Wait for button" msgstr "Vänta på knapp" #: bin/gscan2pdf:1229 msgid "Cache calibration" msgstr "Cache kallibration" #: bin/gscan2pdf:1236 msgid "Source" msgstr "Källa" #: bin/gscan2pdf:1238 msgid "Normal" msgstr "Normal" #: bin/gscan2pdf:1239 msgid "ADF" msgstr "ADF" #: bin/gscan2pdf:1240 msgid "Automatic Document Feeder" msgstr "Automatisk dokumentmatare" #: bin/gscan2pdf:1241 msgid "XPA" msgstr "XPA" #: bin/gscan2pdf:1244 msgid "Flatbed" msgstr "Flatbädd" #: bin/gscan2pdf:1245 msgid "Transparency Adapter" msgstr "Adapter för transparens" #: bin/gscan2pdf:1246 msgid "Transparency Unit" msgstr "Transperensenhet" #: bin/gscan2pdf:1249 bin/gscan2pdf:1251 msgid "Page Width" msgstr "Sidbredd" #: bin/gscan2pdf:1250 bin/gscan2pdf:1252 msgid "Page Height" msgstr "Sidhöjd" #: bin/gscan2pdf:1253 msgid "Top Overscan" msgstr "" #: bin/gscan2pdf:1254 msgid "Bottom Overscan" msgstr "" #: bin/gscan2pdf:1256 bin/gscan2pdf:1263 msgid "ADF Mode" msgstr "Dokumentmatarläge" #: bin/gscan2pdf:1258 bin/gscan2pdf:1265 msgid "Simplex" msgstr "Enkelsidig" #: bin/gscan2pdf:1259 bin/gscan2pdf:1266 msgid "Duplex" msgstr "Dubbelsidig" #: bin/gscan2pdf:1301 bin/gscan2pdf:1306 msgid "Pick crashed session to restore" msgstr "" #: bin/gscan2pdf:1308 bin/gscan2pdf:2609 msgid "Session" msgstr "Session" #: bin/gscan2pdf:1338 #, perl-format msgid "" "Warning: unable to use %s for temporary storage. Defaulting to %s instead." msgstr "" #: bin/gscan2pdf:1441 msgid "GOCR" msgstr "Optisk teckentydning GOCR" #: bin/gscan2pdf:1441 msgid "Process image with GOCR." msgstr "Använd optisk teckentydning GOCR" #: bin/gscan2pdf:1445 msgid "Tesseract" msgstr "Tesseract" #: bin/gscan2pdf:1446 msgid "Process image with Tesseract." msgstr "Använd optisk teckentydning Tesseract" #: bin/gscan2pdf:1450 msgid "Ocropus" msgstr "" #: bin/gscan2pdf:1450 msgid "Process image with Ocropus." msgstr "" #: bin/gscan2pdf:1454 msgid "Cuneiform" msgstr "" #: bin/gscan2pdf:1455 msgid "Process image with Cuneiform." msgstr "" #: bin/gscan2pdf:1461 msgid "Save image and Save as PDF both require imagemagick\n" msgstr "Spara bild och Spara som PDF kräver Imagemagic\n" #: bin/gscan2pdf:1465 msgid "Save image requires libtiff\n" msgstr "Spara bild kräver Libtitt\n" #: bin/gscan2pdf:1469 msgid "Save as DjVu requires djvulibre-bin\n" msgstr "Spara som DJVu kräve DjVulibre-bin\n" #: bin/gscan2pdf:1473 msgid "Email as PDF requires xdg-email\n" msgstr "e-posta som PDF kräver xdg-email\n" #: bin/gscan2pdf:1518 msgid "The rotating options and unpaper support require perlmagick\n" msgstr "" "Paketet \"perlmagic\" behöver vara installerat för att kunna vrida på sidan " "och/eller använda \"unpaper\" (ta bort fula kanter från inskannande sidor)\n" #: bin/gscan2pdf:1524 msgid "unpaper missing\n" msgstr "unpaper saknas\n" #: bin/gscan2pdf:1534 msgid "OCR requires gocr, tesseract, ocropus, or cuneiform\n" msgstr "" #: bin/gscan2pdf:1539 msgid "Warning: missing packages" msgstr "Varning: paket saknas" #: bin/gscan2pdf:1544 msgid "Don't show this message again" msgstr "Visa inte detta meddelande igen" #: bin/gscan2pdf:1753 msgid "" "Some pages have not been saved.\n" "Do you really want to clear all pages?" msgstr "" #: bin/gscan2pdf:1828 bin/gscan2pdf:1858 #, perl-format msgid "Process %i of %i (%s)" msgstr "" #: bin/gscan2pdf:1867 #, perl-format msgid "Process %i of %i" msgstr "" #: bin/gscan2pdf:1895 msgid "Open image" msgstr "" #: bin/gscan2pdf:1903 bin/gscan2pdf:2797 bin/gscan2pdf:3113 msgid "Image files" msgstr "" #: bin/gscan2pdf:1940 msgid "Pages to extract" msgstr "Sidor att extrahera" #: bin/gscan2pdf:1943 bin/gscan2pdf:2117 bin/gscan2pdf:2586 bin/gscan2pdf:3353 #: bin/gscan2pdf:3494 bin/gscan2pdf:4104 bin/gscan2pdf:4514 bin/gscan2pdf:5825 #: bin/gscan2pdf:6409 bin/gscan2pdf:6495 bin/gscan2pdf:6565 bin/gscan2pdf:6737 #: bin/gscan2pdf:7011 bin/gscan2pdf:7274 bin/gscan2pdf:7757 bin/gscan2pdf:8123 #: lib/Gscan2pdf/Dialog.pm:56 lib/Gscan2pdf/Dialog/Renumber.pm:80 #: lib/Gscan2pdf/Scanner/Dialog.pm:201 t/05_Dialog.t:28 msgid "vbox" msgstr "" #: bin/gscan2pdf:1946 msgid "First page to extract" msgstr "Första sida att extrahera" #: bin/gscan2pdf:1953 msgid "Last page to extract" msgstr "Sista sida att extrahera" #: bin/gscan2pdf:2042 lib/Gscan2pdf/Dialog/Renumber.pm:83 msgid "Page Range" msgstr "Spann av sidor" #: bin/gscan2pdf:2092 msgid "Metadata" msgstr "Metadata" #: bin/gscan2pdf:2101 msgid "Date" msgstr "Datum" #: bin/gscan2pdf:2114 msgid "Select Date" msgstr "Välj datum" #: bin/gscan2pdf:2136 msgid "Today" msgstr "Idag" #: bin/gscan2pdf:2150 msgid "Year-Month-Day" msgstr "År-Månad-Dag" #: bin/gscan2pdf:2156 msgid "Document author" msgstr "Upphovsman" #: bin/gscan2pdf:2165 msgid "Title" msgstr "Titel" #: bin/gscan2pdf:2174 msgid "Subject" msgstr "Ämne" #: bin/gscan2pdf:2183 msgid "Keywords" msgstr "Nyckelord" #: bin/gscan2pdf:2245 msgid "Editing text" msgstr "" #: bin/gscan2pdf:2252 bin/gscan2pdf:2258 bin/gscan2pdf:2332 msgid "text" msgstr "" #: bin/gscan2pdf:2352 msgid "PDF filename" msgstr "PDF-filnamn" #: bin/gscan2pdf:2381 msgid "PDF files" msgstr "" #: bin/gscan2pdf:2405 bin/gscan2pdf:2823 bin/gscan2pdf:2880 bin/gscan2pdf:2976 #: bin/gscan2pdf:3035 bin/gscan2pdf:3087 bin/gscan2pdf:3275 #, perl-format msgid "File %s is read-only" msgstr "File %s är skrivskyddad" #: bin/gscan2pdf:2482 msgid "JPEG Quality" msgstr "JPEG-kvalitet" #: bin/gscan2pdf:2496 msgid "Downsample to" msgstr "Nedsampla till" #: bin/gscan2pdf:2501 msgid "PPI" msgstr "" #: bin/gscan2pdf:2520 msgid "Automatic" msgstr "Automatiskt" #: bin/gscan2pdf:2521 msgid "Let gscan2pdf which type of compression to use." msgstr "Låt gscan2pdf bestämma vilken typ av komprimering som ska användas." #: bin/gscan2pdf:2524 bin/gscan2pdf:2616 msgid "LZW" msgstr "LZW" #: bin/gscan2pdf:2525 bin/gscan2pdf:2617 msgid "Compress output with Lempel-Ziv & Welch encoding." msgstr "Komprimera resultatet med Lempel-Ziv & Welch encoding" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Zip" msgstr "Zip" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Compress output with deflate encoding." msgstr "Komprimera resultatet med deflate encoding" #: bin/gscan2pdf:2529 bin/gscan2pdf:2624 msgid "Packbits" msgstr "Packa bitar" #: bin/gscan2pdf:2530 bin/gscan2pdf:2625 msgid "Compress output with Packbits encoding." msgstr "Komprimerar resultatet med Packbits encoding" #: bin/gscan2pdf:2536 bin/gscan2pdf:2604 msgid "PNG" msgstr "PNG" #: bin/gscan2pdf:2536 msgid "Compress output with PNG encoding." msgstr "Komprimera resultatet med PNG encoding" #: bin/gscan2pdf:2537 bin/gscan2pdf:2622 msgid "Compress output with JPEG encoding." msgstr "Komprimera resultatet med JPEG encoding" #: bin/gscan2pdf:2540 bin/gscan2pdf:2637 msgid "Use no compression algorithm on output." msgstr "Använd ingen komprimering av resultatet." #: bin/gscan2pdf:2594 msgid "Image type" msgstr "Bildtyp" #: bin/gscan2pdf:2598 msgid "PDF" msgstr "PDF" #: bin/gscan2pdf:2598 msgid "Portable Document Format" msgstr "Portable Document Format" #: bin/gscan2pdf:2599 msgid "GIF" msgstr "GIF" #: bin/gscan2pdf:2599 msgid "CompuServe graphics interchange format" msgstr "CompuServe graphics interchange format" #: bin/gscan2pdf:2602 msgid "Joint Photographic Experts Group JFIF format" msgstr "Joint Photographic Experts Group JFIF format" #: bin/gscan2pdf:2604 msgid "Portable Network Graphics" msgstr "Portable Network Graphics" #: bin/gscan2pdf:2605 msgid "PNM" msgstr "PNM" #: bin/gscan2pdf:2605 msgid "Portable anymap" msgstr "Portable anymap" #: bin/gscan2pdf:2606 msgid "PS" msgstr "PS" #: bin/gscan2pdf:2606 msgid "Postscript" msgstr "Postscript" #: bin/gscan2pdf:2607 msgid "TIFF" msgstr "TIFF" #: bin/gscan2pdf:2607 msgid "Tagged Image File Format" msgstr "Tagged Image File Format" #: bin/gscan2pdf:2608 msgid "Text" msgstr "Text" #: bin/gscan2pdf:2608 msgid "Plain text" msgstr "Vanlig text" #: bin/gscan2pdf:2609 msgid "gscan2pdf session file" msgstr "gscan2pdfs sessionsfil" #: bin/gscan2pdf:2611 msgid "DjVu" msgstr "DjVu" #: bin/gscan2pdf:2611 msgid "Deja Vu" msgstr "Deja Vu" #: bin/gscan2pdf:2628 msgid "G3" msgstr "G3" #: bin/gscan2pdf:2629 msgid "Compress output with CCITT Group 3 encoding." msgstr "Komprimera resultatet med CCITT Grupp 3 encoding" #: bin/gscan2pdf:2632 msgid "G4" msgstr "G4" #: bin/gscan2pdf:2633 msgid "Compress output with CCITT Group 4 encoding." msgstr "Komprimera resultatet med CCITT Grupp 4 encoding" #: bin/gscan2pdf:2649 msgid "tiff" msgstr "tiff" #: bin/gscan2pdf:2681 msgid "Font for non-ASCII text" msgstr "" #: bin/gscan2pdf:2790 msgid "TIFF filename" msgstr "TIFF-filnamn" #: bin/gscan2pdf:2848 msgid "Text filename" msgstr "Textfilnamn" #: bin/gscan2pdf:2856 msgid "Text files" msgstr "" #: bin/gscan2pdf:2944 msgid "PS filename" msgstr "PS filnamn" #: bin/gscan2pdf:2951 msgid "Postscript files" msgstr "" #: bin/gscan2pdf:3003 msgid "gscan2pdf session filename" msgstr "filnamnet på gscan2pdfs session" #: bin/gscan2pdf:3010 msgid "gscan2pdf session files" msgstr "" #: bin/gscan2pdf:3093 #, perl-format msgid "" "File %s exists.\n" "Really overwrite?" msgstr "" "Filen %s finns redan\n" "Skriv över?" #: bin/gscan2pdf:3106 msgid "Image filename" msgstr "Bildfilnamn" #: bin/gscan2pdf:3245 msgid "DjVu filename" msgstr "DjVu filnamn" #: bin/gscan2pdf:3252 msgid "DjVu files" msgstr "" #: bin/gscan2pdf:3349 msgid "Email as PDF" msgstr "E-posta som PDF" #: bin/gscan2pdf:3454 msgid "Error creating email" msgstr "" #: bin/gscan2pdf:3490 bin/gscan2pdf:4313 msgid "Scan Document" msgstr "Läs in dokument" #: bin/gscan2pdf:3507 lib/Gscan2pdf/Scanner/Dialog.pm:248 msgid "Page Options" msgstr "Inställningar för sida" #: bin/gscan2pdf:3510 lib/Gscan2pdf/Scanner/Dialog.pm:251 msgid "# Pages" msgstr "# Sidor" #: bin/gscan2pdf:3519 lib/Gscan2pdf/PageRange.pm:34 #: lib/Gscan2pdf/Scanner/Dialog.pm:261 msgid "All" msgstr "Alla" #: bin/gscan2pdf:3520 lib/Gscan2pdf/Scanner/Dialog.pm:262 msgid "Scan all pages" msgstr "Läs in alla sidor" #: bin/gscan2pdf:3532 bin/gscan2pdf:3537 lib/Gscan2pdf/Scanner/Dialog.pm:274 #: lib/Gscan2pdf/Scanner/Dialog.pm:279 msgid "Set number of pages to scan" msgstr "Ställ in antalet sidor att läsa in" #: bin/gscan2pdf:3550 lib/Gscan2pdf/Scanner/Dialog.pm:308 msgid "Extended page numbering" msgstr "Utökad sidnumrering" #: bin/gscan2pdf:3554 lib/Gscan2pdf/Scanner/Dialog.pm:312 msgid "Page number" msgstr "Sidnummer" #: bin/gscan2pdf:3563 lib/Gscan2pdf/Dialog/Renumber.pm:111 #: lib/Gscan2pdf/Scanner/Dialog.pm:321 msgid "Start" msgstr "Start" #: bin/gscan2pdf:3572 lib/Gscan2pdf/Dialog/Renumber.pm:132 #: lib/Gscan2pdf/Scanner/Dialog.pm:340 msgid "Increment" msgstr "Steglängd" #: bin/gscan2pdf:3604 lib/Gscan2pdf/Scanner/Dialog.pm:372 msgid "Source document" msgstr "Källdokument" #: bin/gscan2pdf:3611 lib/Gscan2pdf/Scanner/Dialog.pm:379 msgid "Single sided" msgstr "Ensidigt" #: bin/gscan2pdf:3612 lib/Gscan2pdf/Scanner/Dialog.pm:380 msgid "Source document is single-sided" msgstr "Källdokumentet är enkelsidigt" #: bin/gscan2pdf:3622 lib/Gscan2pdf/Scanner/Dialog.pm:390 msgid "Double sided" msgstr "Dubbelsidigt" #: bin/gscan2pdf:3623 lib/Gscan2pdf/Scanner/Dialog.pm:391 msgid "Source document is double-sided" msgstr "Källdokumentet är dubbelsidigt" #: bin/gscan2pdf:3629 lib/Gscan2pdf/Scanner/Dialog.pm:397 msgid "Side to scan" msgstr "Sida att läsa in" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Facing" msgstr "Framsida" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Reverse" msgstr "Baksida" #: bin/gscan2pdf:3655 lib/Gscan2pdf/Scanner/Dialog.pm:418 msgid "Sets which side of a double-sided document is scanned" msgstr "Bestämmer vilken sida av dubbelsidigt dokument som skannas" #: bin/gscan2pdf:3719 msgid "Scan Options" msgstr "Skanninställningar" #: bin/gscan2pdf:3722 msgid "Device-dependent options" msgstr "Inställningar beroende på utrustning" #: bin/gscan2pdf:3729 lib/Gscan2pdf/Scanner/Dialog.pm:458 msgid "Scan profiles" msgstr "Skannerprofil" #: bin/gscan2pdf:3778 bin/gscan2pdf:3784 lib/Gscan2pdf/Scanner/Dialog.pm:479 #: lib/Gscan2pdf/Scanner/Dialog.pm:485 msgid "Name of scan profile" msgstr "Namn på skannerprofil" #: bin/gscan2pdf:3828 lib/Gscan2pdf/Scanner/Dialog.pm:518 msgid "Scan" msgstr "Läs in" #: bin/gscan2pdf:3866 msgid "Must scan facing pages first" msgstr "Framsidor skannas först" #: bin/gscan2pdf:3977 msgid "Post-processing" msgstr "Efterhantering" #: bin/gscan2pdf:3986 bin/gscan2pdf:4008 msgid "Rotate" msgstr "Rotera" #: bin/gscan2pdf:3987 bin/gscan2pdf:4009 msgid "Rotate image after scanning" msgstr "Rotera bilden efter inskanning" #: bin/gscan2pdf:3990 msgid "Both sides" msgstr "Båda sidor" #: bin/gscan2pdf:3990 msgid "Both sides." msgstr "Båda sidor" #: bin/gscan2pdf:3991 msgid "Facing side" msgstr "Framsidan" #: bin/gscan2pdf:3991 msgid "Facing side." msgstr "Framsidan" #: bin/gscan2pdf:3992 msgid "Reverse side" msgstr "Baksidan" #: bin/gscan2pdf:3992 msgid "Reverse side." msgstr "Baksidan" #: bin/gscan2pdf:3995 bin/gscan2pdf:4013 msgid "Select side to rotate" msgstr "Välj vilken sida som du vill rotera" #: bin/gscan2pdf:3998 msgid "90" msgstr "90" #: bin/gscan2pdf:3998 msgid "Rotate image 90 degrees clockwise." msgstr "Rotera bilden 90 grader medurs" #: bin/gscan2pdf:3999 msgid "180" msgstr "180" #: bin/gscan2pdf:3999 msgid "Rotate image 180 degrees clockwise." msgstr "Rotera bilden 180 grader medurs." #: bin/gscan2pdf:4000 msgid "270" msgstr "270" #: bin/gscan2pdf:4000 msgid "Rotate image 90 degrees anticlockwise." msgstr "Rotera bilden 180 grader moturs" #: bin/gscan2pdf:4003 bin/gscan2pdf:4016 msgid "Select direction of rotation" msgstr "Välj riktning på rotationen" #: bin/gscan2pdf:4083 msgid "Clean up images" msgstr "Rensa upp bilder" #: bin/gscan2pdf:4094 msgid "Options" msgstr "Inställningar" #: bin/gscan2pdf:4095 msgid "Set unpaper options" msgstr "Gör inställningar för unpaper" #: bin/gscan2pdf:4101 msgid "unpaper options" msgstr "Inställningar för unpaper" #: bin/gscan2pdf:4136 bin/gscan2pdf:4137 msgid "OCR scanned pages" msgstr "Sidor skannade med OCR" #: bin/gscan2pdf:4151 msgid "Select OCR engine" msgstr "Välj OCR-motor" #: bin/gscan2pdf:4210 lib/Gscan2pdf/Scanner/Dialog.pm:634 msgid "Fetching list of devices" msgstr "Hämtar enhetsnamn" #: bin/gscan2pdf:4225 lib/Gscan2pdf/Scanner/Dialog.pm:654 msgid "No devices found" msgstr "Kunde inte hitta några enheter" #: bin/gscan2pdf:4367 bin/gscan2pdf:4732 bin/gscan2pdf:4777 bin/gscan2pdf:5214 #: lib/Gscan2pdf/Scanner/Dialog.pm:343 lib/Gscan2pdf/Scanner/Dialog.pm:348 #: t/061_Scanner_Dialog.t:38 t/061_Scanner_Dialog.t:95 msgid "page-number-increment" msgstr "" #: bin/gscan2pdf:4374 bin/gscan2pdf:4729 bin/gscan2pdf:4730 bin/gscan2pdf:4776 #: bin/gscan2pdf:5213 lib/Gscan2pdf/Scanner/Dialog.pm:361 #: t/061_Scanner_Dialog.t:37 msgid "page-number-start" msgstr "" #: bin/gscan2pdf:4663 lib/Gscan2pdf/Scanner/Dialog.pm:210 msgid "Device" msgstr "Enhet" #: bin/gscan2pdf:4671 lib/Gscan2pdf/Scanner/Dialog.pm:213 msgid "Rescan for devices" msgstr "Leta efter enheter igen" #: bin/gscan2pdf:4694 lib/Gscan2pdf/Scanner/Dialog.pm:237 msgid "Sets the device to be used for the scan" msgstr "Ställer in enheten som används för inläsningen" #: bin/gscan2pdf:4780 lib/Gscan2pdf/Scanner/Dialog.pm:300 #: t/061_Scanner_Dialog.t:35 msgid "num-pages" msgstr "" #: bin/gscan2pdf:4821 msgid "Scanning" msgstr "Läser in" #: bin/gscan2pdf:4974 msgid "Unable to load image" msgstr "Kunde inte läsa in bild" #: bin/gscan2pdf:5004 msgid "print-pages" msgstr "" #: bin/gscan2pdf:5008 msgid "page-ranges" msgstr "" #: bin/gscan2pdf:5405 msgid "Patches gratefully received from:" msgstr "Uppdateringar tacksamt mottaget från:" #: bin/gscan2pdf:5407 msgid "To aid the scan-to-PDF process" msgstr "För att hjälpa till att läsa-in-till-PDF" #: bin/gscan2pdf:5408 msgid "Copyright 2006--2012 Jeffrey Ratcliffe" msgstr "" #: bin/gscan2pdf:5492 bin/gscan2pdf:6028 msgid "The options cache seems to be empty. Reload device-dependent options?" msgstr "" #: bin/gscan2pdf:5519 bin/gscan2pdf:6054 msgid "Updating options" msgstr "Uppdaterar inställningar" #: bin/gscan2pdf:5571 msgid "Paper size" msgstr "Pappersstorlek" #: bin/gscan2pdf:5572 bin/gscan2pdf:5672 bin/gscan2pdf:5840 bin/gscan2pdf:6769 msgid "Width" msgstr "Bredd" #: bin/gscan2pdf:5573 bin/gscan2pdf:5678 bin/gscan2pdf:5841 bin/gscan2pdf:6780 msgid "Height" msgstr "Höjd" #: bin/gscan2pdf:5574 bin/gscan2pdf:5684 bin/gscan2pdf:5842 #: lib/Gscan2pdf/Unpaper.pm:124 lib/Gscan2pdf/Unpaper.pm:152 msgid "Left" msgstr "Vänster" #: bin/gscan2pdf:5575 bin/gscan2pdf:5690 bin/gscan2pdf:5843 #: lib/Gscan2pdf/Unpaper.pm:129 lib/Gscan2pdf/Unpaper.pm:157 msgid "Top" msgstr "Överkant" #: bin/gscan2pdf:5589 bin/gscan2pdf:5703 bin/gscan2pdf:6232 msgid "Manual" msgstr "Manuell" #: bin/gscan2pdf:5590 bin/gscan2pdf:5700 msgid "Edit" msgstr "Redigera" #: bin/gscan2pdf:5591 msgid "Selects or edits the paper size" msgstr "Väljer eller uppdaterar pappersstorlek" #: bin/gscan2pdf:5673 msgid "Width of scan area" msgstr "Skannade ytans bredd" #: bin/gscan2pdf:5679 msgid "Height of scan area" msgstr "Skannade ytans höjd" #: bin/gscan2pdf:5685 msgid "Top-left x position of scan area" msgstr "Skannade ytans övre vänstra x-position" #: bin/gscan2pdf:5691 msgid "Top-left y position of scan area" msgstr "Skannade ytans övre vänstra y-position" #: bin/gscan2pdf:5822 msgid "Edit paper size" msgstr "Ändra papperstorlek" #: bin/gscan2pdf:5839 msgid "Name" msgstr "Namn" #: bin/gscan2pdf:5893 msgid "Cannot delete all paper sizes" msgstr "Kan ej radera alla pappersstorlekar" #: bin/gscan2pdf:5955 msgid "" "The following paper sizes are too big to be scanned by the selected device:" msgstr "Följande pappersstorlekar är för stora att skannas av vald enhet." #: bin/gscan2pdf:6419 bin/gscan2pdf:6605 msgid "%" msgstr "%" #: bin/gscan2pdf:6492 msgid "Negate" msgstr "Invertera färger" #: bin/gscan2pdf:6562 msgid "Unsharp mask" msgstr "Oskarp mask" #: bin/gscan2pdf:6573 msgid "Radius" msgstr "Radie" #: bin/gscan2pdf:6575 bin/gscan2pdf:6592 bin/gscan2pdf:6747 bin/gscan2pdf:6759 #: bin/gscan2pdf:6771 bin/gscan2pdf:6782 msgid "pixels" msgstr "bildpunkter" #: bin/gscan2pdf:6582 msgid "" "The radius of the Gaussian, in pixels, not counting the center pixel (0 = " "automatic)." msgstr "radien på normalfördelningskurvan, i pixlar." #: bin/gscan2pdf:6590 msgid "Sigma" msgstr "standardavvikelsen" #: bin/gscan2pdf:6597 msgid "The standard deviation of the Gaussian." msgstr "Standardavvikelsen på normalfördelningskurvan" #: bin/gscan2pdf:6603 msgid "Amount" msgstr "Belopp" #: bin/gscan2pdf:6612 msgid "" "The percentage of the difference between the original and the blur image " "that is added back into the original." msgstr "" #: bin/gscan2pdf:6627 msgid "" "The threshold, as a fraction of QuantumRange, needed to apply the difference " "amount." msgstr "" #: bin/gscan2pdf:6733 msgid "Crop" msgstr "Beskär" #: bin/gscan2pdf:6745 msgid "x" msgstr "" #: bin/gscan2pdf:6751 msgid "The x-position of the left hand edge of the crop." msgstr "" #: bin/gscan2pdf:6757 msgid "y" msgstr "" #: bin/gscan2pdf:6763 msgid "The y-position of the top edge of the crop." msgstr "" #: bin/gscan2pdf:6774 msgid "The width of the crop." msgstr "" #: bin/gscan2pdf:6785 msgid "The height of the crop." msgstr "" #: bin/gscan2pdf:6906 msgid "label" msgstr "" #: bin/gscan2pdf:7007 msgid "unpaper" msgstr "unpaper" #: bin/gscan2pdf:7216 bin/gscan2pdf:7244 msgid "Language to recognise" msgstr "Språk att känna igen" #: bin/gscan2pdf:7227 msgid "English" msgstr "Engelska" #: bin/gscan2pdf:7270 msgid "OCR" msgstr "Optisk teckentydning" #: bin/gscan2pdf:7279 msgid "OCR Engine" msgstr "OCR motor" #: bin/gscan2pdf:7323 msgid "Start OCR" msgstr "Starta optisk teckentydning" #: bin/gscan2pdf:7339 msgid "No page selected" msgstr "Ingen sida är vald" #: bin/gscan2pdf:7374 msgid "" "Some pages have not been saved.\n" "Do you really want to quit?" msgstr "" "Det finns osparade sidor\n" "Vill du verkligen stänga programmet?" #: bin/gscan2pdf:7432 #, perl-format msgid "" "The help viewer requires module Gtk2::Ex::PodViewer\n" "Alternatively, try: %s %s\n" "\n" msgstr "" "Hjälpavsnittet kräver Gtk2::Ex::PodViewer\n" "Alternativt, pröva: %s %s\n" "\n" #: bin/gscan2pdf:7698 msgid "This operation cannot be undone. Are you sure?" msgstr "Kan ej ångras. Är du säker?" #: bin/gscan2pdf:7753 msgid "Preferences" msgstr "" #: bin/gscan2pdf:7762 msgid "Frontend" msgstr "" #: bin/gscan2pdf:7766 msgid "libsane-perl" msgstr "" #: bin/gscan2pdf:7767 msgid "Scan using the perl bindings for SANE." msgstr "" #: bin/gscan2pdf:7770 msgid "scanimage" msgstr "" #: bin/gscan2pdf:7771 msgid "Scan using the scanimage frontend." msgstr "" #: bin/gscan2pdf:7775 msgid "scanimage-perl" msgstr "" #: bin/gscan2pdf:7776 msgid "Scan using the scanimage-perl frontend." msgstr "" #: bin/gscan2pdf:7779 msgid "scanadf-perl" msgstr "" #: bin/gscan2pdf:7780 msgid "Scan using the scanadf-perl frontend." msgstr "" #: bin/gscan2pdf:7785 msgid "scanadf" msgstr "" #: bin/gscan2pdf:7786 msgid "Scan using the scanadf frontend." msgstr "" #: bin/gscan2pdf:7791 msgid "Cycle SANE handle after scan" msgstr "" #: bin/gscan2pdf:7814 msgid "Default filename for PDFs" msgstr "" #: bin/gscan2pdf:7820 msgid "" "%a\t author\n" "%t\t title\n" "%y\t document's year\n" "%Y\t today's year\n" "%m\t document's month\n" "%M\t today's month\n" "%d\t document's day\n" "%D\t today's day" msgstr "" #: bin/gscan2pdf:7830 msgid "Scan command prefix" msgstr "" #: bin/gscan2pdf:7839 msgid "Restore window settings on startup" msgstr "" #: bin/gscan2pdf:7845 msgid "Cache device-dependent options" msgstr "" #: bin/gscan2pdf:7851 msgid "Clear device-dependent options cache" msgstr "" #: bin/gscan2pdf:7862 msgid "Temporary directory" msgstr "" #: bin/gscan2pdf:7867 msgid "Browse" msgstr "" #: bin/gscan2pdf:7871 msgid "Select temporary directory" msgstr "" #: bin/gscan2pdf:7888 msgid "Blank threshold" msgstr "" #: bin/gscan2pdf:7893 msgid "Threshold used for selecting blank pages" msgstr "" #: bin/gscan2pdf:7899 msgid "Dark threshold" msgstr "" #: bin/gscan2pdf:7904 msgid "Threshold used for selecting dark pages" msgstr "" #: bin/gscan2pdf:7910 msgid "OCR output" msgstr "" #: bin/gscan2pdf:7915 msgid "Replace" msgstr "" #: bin/gscan2pdf:7917 msgid "" "Replace the contents of the text buffer with that from the OCR output." msgstr "" #: bin/gscan2pdf:7920 msgid "Prepend" msgstr "" #: bin/gscan2pdf:7921 msgid "Prepend the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7924 msgid "Append" msgstr "" #: bin/gscan2pdf:7925 msgid "Append the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7933 msgid "User-defined tools" msgstr "" #: bin/gscan2pdf:7954 msgid "View files on saving" msgstr "" #: bin/gscan2pdf:8000 msgid "" "You will have to restart gscanp2df for changes to the temporary directory to " "take effect." msgstr "" "Du måste starta om gscan2pdf för att programmet ska använda den nya temprära " "lagringsplatsen." #: bin/gscan2pdf:8092 msgid "" "Use %i and %o for the input and output filenames respectively, or a single " "%i if the image is to be modified in-place.\n" "\n" "The other variable available is:\n" "\n" "%r resolution" msgstr "" "Använd %i och %o för käll- och målfiler, eller bara %i om bilden ska " "modifieras direkt i källfilen.\n" "\n" "Ytterligare tillgänglig variabel:\n" "\n" "%r för upplösning" #: bin/gscan2pdf:8119 msgid "Properties" msgstr "Egenskaper" #: lib/Gscan2pdf/Dialog.pm:63 lib/Gscan2pdf/Dialog.pm:79 t/05_Dialog.t:25 msgid "hide-on-delete" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:78 lib/Gscan2pdf/Dialog/Renumber.pm:162 msgid "Renumber" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:98 lib/Gscan2pdf/Dialog/Renumber.pm:207 #: lib/Gscan2pdf/Dialog/Renumber.pm:244 msgid "range" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:102 msgid "Page numbering" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:105 lib/Gscan2pdf/Scanner/Dialog.pm:254 msgid "border_width" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:126 lib/Gscan2pdf/Dialog/Renumber.pm:192 #: lib/Gscan2pdf/Dialog/Renumber.pm:242 t/07_Dialog_Renumber.t:33 #: t/07_Dialog_Renumber.t:45 t/07_Dialog_Renumber.t:59 #: t/07_Dialog_Renumber.t:66 msgid "start" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:147 lib/Gscan2pdf/Dialog/Renumber.pm:193 #: lib/Gscan2pdf/Dialog/Renumber.pm:243 t/07_Dialog_Renumber.t:34 #: t/07_Dialog_Renumber.t:46 t/07_Dialog_Renumber.t:60 #: t/07_Dialog_Renumber.t:67 msgid "increment" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:205 lib/Gscan2pdf/Dialog/Renumber.pm:241 msgid "document" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:295 msgid "" "The current settings would result in duplicate page numbers. Please select " "new start and increment values." msgstr "" #: lib/Gscan2pdf/Document.pm:83 msgid "Thumbnails" msgstr "" #: lib/Gscan2pdf/Document.pm:1502 msgid "Unknown DjVu file structure. Please contact the author." msgstr "" #: lib/Gscan2pdf/Document.pm:1558 #, perl-format msgid "%s is not a recognised image type" msgstr "" #: lib/Gscan2pdf/Document.pm:1580 lib/Gscan2pdf/Document.pm:1637 #, perl-format msgid "Importing page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:1613 msgid "Error extracting images from PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1692 msgid "Setting up PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1703 #, perl-format msgid "Saving page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:1814 lib/Gscan2pdf/Document.pm:2136 #, perl-format msgid "Error compressing image: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1919 #, perl-format msgid "Error creating PDF image object: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1930 #, perl-format msgid "Error embedding file image in %s format to PDF: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1939 msgid "Closing PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1955 #, perl-format msgid "Writing page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:2006 msgid "Error writing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2025 lib/Gscan2pdf/Document.pm:2227 #, perl-format msgid "Can't open file: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:2050 msgid "Error adding text layer to DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2056 msgid "Closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2063 msgid "Error closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2078 #, perl-format msgid "Converting image %i of %i to TIFF" msgstr "" #: lib/Gscan2pdf/Document.pm:2105 msgid "Error writing TIFF" msgstr "" #: lib/Gscan2pdf/Document.pm:2121 msgid "Concatenating TIFFs" msgstr "" #: lib/Gscan2pdf/Document.pm:2140 msgid "Converting to PS" msgstr "" #: lib/Gscan2pdf/Document.pm:2200 lib/Gscan2pdf/Document.pm:2215 msgid "Error saving image" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:158 #, perl-format msgid "Scanning %i pages..." msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:163 #, perl-format msgid "Scanning page %i..." msgstr "Skannar sida %i" #: lib/Gscan2pdf/Frontend/CLI.pm:188 lib/Gscan2pdf/Frontend/CLI.pm:296 msgid "Scanner warming up" msgstr "Skanner värms upp" #: lib/Gscan2pdf/Frontend/CLI.pm:195 msgid "Document feeder out of documents" msgstr "Dokumentmataren har slut på dokument" #: lib/Gscan2pdf/Frontend/CLI.pm:212 lib/Gscan2pdf/Frontend/CLI.pm:325 msgid "Device busy" msgstr "Enheten upptagen" #: lib/Gscan2pdf/Frontend/CLI.pm:218 lib/Gscan2pdf/Frontend/CLI.pm:330 msgid "Operation cancelled" msgstr "Åtgärden avbröts" #: lib/Gscan2pdf/Frontend/CLI.pm:223 lib/Gscan2pdf/Frontend/CLI.pm:336 msgid "Unknown message: " msgstr "Okänt meddelande: " #: lib/Gscan2pdf/Page.pm:68 lib/Gscan2pdf/Page.pm:73 #, perl-format msgid "Error importing image %s: %s" msgstr "" #: lib/Gscan2pdf/PageRange.pm:33 msgid "Selected" msgstr "Markerade" #: lib/Gscan2pdf/PageRange.pm:58 msgid "active" msgstr "aktiv" #: lib/Gscan2pdf/Scanner/Dialog.pm:218 t/061_Scanner_Dialog.t:33 #: t/061_Scanner_Dialog.t:59 msgid "device-list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:496 t/061_Scanner_Dialog.t:139 #: t/061_Scanner_Dialog.t:174 t/062_Scanner_Dialog.t:50 #: t/062_Scanner_Dialog.t:75 msgid "current-scan-options" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:567 msgid "logger" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:650 t/05_Dialog.t:24 msgid "transient-for" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:716 msgid "device_list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:749 t/061_Scanner_Dialog.t:32 msgid "device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:751 msgid "Opening device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:760 msgid "Retrieving options" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:41 msgid "Layout" msgstr "Utseende" #: lib/Gscan2pdf/Unpaper.pm:44 msgid "Single" msgstr "Enkel" #: lib/Gscan2pdf/Unpaper.pm:46 msgid "One page per sheet, oriented upwards without rotation." msgstr "En sida per ark, orienterad uppåt utan rotation." #: lib/Gscan2pdf/Unpaper.pm:49 msgid "Double" msgstr "Dubbel" #: lib/Gscan2pdf/Unpaper.pm:51 msgid "" "Two pages per sheet, landscape orientation (one page on the left half, one " "page on the right half)." msgstr "" "Två sidor per ark, landskapsorienterade (en sida till vänster, en till höger)" #: lib/Gscan2pdf/Unpaper.pm:59 msgid "# Output pages" msgstr "# Blad" #: lib/Gscan2pdf/Unpaper.pm:60 msgid "Number of pages to output." msgstr "Antal blad som kommer att skrivas ut." #: lib/Gscan2pdf/Unpaper.pm:68 msgid "No deskew" msgstr "Ingen avskevning" #: lib/Gscan2pdf/Unpaper.pm:69 msgid "Disable deskewing." msgstr "Stäng av avskevning" #: lib/Gscan2pdf/Unpaper.pm:74 msgid "No mask scan" msgstr "Ingen skanningsmask" #: lib/Gscan2pdf/Unpaper.pm:75 msgid "Disable mask detection." msgstr "Stäng av maskavkänning" #: lib/Gscan2pdf/Unpaper.pm:80 msgid "No black filter" msgstr "Inget filter för svart" #: lib/Gscan2pdf/Unpaper.pm:81 msgid "Disable black area scan." msgstr "Stäng av skanning av svart yta" #: lib/Gscan2pdf/Unpaper.pm:86 msgid "No gray filter" msgstr "Inget filter för grått" #: lib/Gscan2pdf/Unpaper.pm:87 msgid "Disable gray area scan." msgstr "Stäng av skanning av grå yta" #: lib/Gscan2pdf/Unpaper.pm:92 msgid "No noise filter" msgstr "Inget skräpfilter" #: lib/Gscan2pdf/Unpaper.pm:93 msgid "Disable noise filter." msgstr "Stäng av skräpfilter" #: lib/Gscan2pdf/Unpaper.pm:98 msgid "No blur filter" msgstr "Inget oskärpefilter" #: lib/Gscan2pdf/Unpaper.pm:99 msgid "Disable blur filter." msgstr "Stäng av oskärpefilter" #: lib/Gscan2pdf/Unpaper.pm:104 msgid "No border scan" msgstr "Ingen ramskanning" #: lib/Gscan2pdf/Unpaper.pm:105 msgid "Disable border scanning." msgstr "Stäng av ramskanning" #: lib/Gscan2pdf/Unpaper.pm:110 msgid "No border align" msgstr "Ingen ramlinjering" #: lib/Gscan2pdf/Unpaper.pm:112 msgid "Disable aligning of the area detected by border scanning." msgstr "Stäng av linjering av yta detekterad med ramskanning" #: lib/Gscan2pdf/Unpaper.pm:117 msgid "Deskew to edge" msgstr "Avskeva till kant" #: lib/Gscan2pdf/Unpaper.pm:119 msgid "" "Edges from which to scan for rotation. Each edge of a mask can be used to " "detect the mask's rotation. If multiple edges are specified, the average " "value will be used, unless the statistical deviation exceeds --deskew-scan-" "deviation." msgstr "" "Kant som bestämmer det skannades rotation. Varje kant av masken kan användas " "för att bestämma maskens rotation. Om flera kanter anges används ett " "genomsnittligt värde, om inte värdet är högre än --avskevning-skanning-" "avvikelse." #: lib/Gscan2pdf/Unpaper.pm:125 msgid "Use 'left' for scanning from the left edge." msgstr "Använd \"vänster\" för att skanna från vänster kant." #: lib/Gscan2pdf/Unpaper.pm:130 msgid "Use 'top' for scanning from the top edge." msgstr "Använd \"Överkant\" för att skanna från överkanten." #: lib/Gscan2pdf/Unpaper.pm:134 lib/Gscan2pdf/Unpaper.pm:162 msgid "Right" msgstr "Höger" #: lib/Gscan2pdf/Unpaper.pm:135 msgid "Use 'right' for scanning from the right edge." msgstr "Använd \"höger\" för att skanna från höger kant." #: lib/Gscan2pdf/Unpaper.pm:139 lib/Gscan2pdf/Unpaper.pm:167 msgid "Bottom" msgstr "Nederkant" #: lib/Gscan2pdf/Unpaper.pm:140 msgid "Use 'bottom' for scanning from the bottom." msgstr "Använd \"Nederkant\" för att skanna från nedre kanten." #: lib/Gscan2pdf/Unpaper.pm:147 msgid "Align to edge" msgstr "Linjera till kant" #: lib/Gscan2pdf/Unpaper.pm:148 msgid "Edge to which to align the page." msgstr "Kant som sidan skall linjeras till." #: lib/Gscan2pdf/Unpaper.pm:153 msgid "Use 'left' to align to the left edge." msgstr "Använd \"vänster\" för att skanna från vänster kant." #: lib/Gscan2pdf/Unpaper.pm:158 msgid "Use 'top' to align to the top edge." msgstr "Använd \"Överst\" för att skanna från övre kanten." #: lib/Gscan2pdf/Unpaper.pm:163 msgid "Use 'right' to align to the right edge." msgstr "Använd \"höger\" för att skanna från högra kanten." #: lib/Gscan2pdf/Unpaper.pm:168 msgid "Use 'bottom' to align to the bottom." msgstr "Använd \"Nederkant\" för att skanna från nedre kanten." #: lib/Gscan2pdf/Unpaper.pm:174 msgid "Border margin" msgstr "Kantmarginal" #: lib/Gscan2pdf/Unpaper.pm:178 msgid "Vertical margin" msgstr "Vertikal marginal" #: lib/Gscan2pdf/Unpaper.pm:180 msgid "" "Vertical distance to keep from the sheet edge when aligning a border area." msgstr "Marginal från den vertikala kanten vid linjering av kantyta." #: lib/Gscan2pdf/Unpaper.pm:189 msgid "Horizontal margin" msgstr "Horisontell marginal" #: lib/Gscan2pdf/Unpaper.pm:191 msgid "" "Horizontal distance to keep from the sheet edge when aligning a border area." msgstr "Marginal från den horisontala kanten vid linjering av kantyta." #: lib/Gscan2pdf/Unpaper.pm:202 msgid "White threshold" msgstr "Tröskelvärde för vitt" #: lib/Gscan2pdf/Unpaper.pm:204 msgid "Brightness ratio above which a pixel is considered white." msgstr "Ovanför detta tröskelvärde anses en pixel vara vit." #: lib/Gscan2pdf/Unpaper.pm:212 msgid "Black threshold" msgstr "Tröskelvärde för svart" #: lib/Gscan2pdf/Unpaper.pm:214 msgid "" "Brightness ratio below which a pixel is considered black (non-gray). This is " "used by the gray-filter. This value is also used when converting a grayscale " "image to black-and-white mode." msgstr "" "Nedanför detta tröskelvärde anses en pixel vara svart, ej grå). Detta värde " "används av gråskalefiltret. Värdet används också när en gråskalebild " "konverteras till svart-vit." #: lib/Gscan2pdf/Unpaper.pm:250 msgid "Deskew" msgstr "Avskeva" #: lib/Gscan2pdf/Unpaper.pm:280 msgid "Border" msgstr "Marginal" #: lib/Gscan2pdf/Unpaper.pm:337 msgid "Filters" msgstr "Filter" #: t/05_Dialog.t:23 msgid "title" msgstr "" #: t/05_Dialog.t:26 t/05_Dialog.t:31 t/05_Dialog.t:32 t/05_Dialog.t:38 #: t/05_Dialog.t:39 msgid "border-width" msgstr "" #: t/061_Scanner_Dialog.t:34 msgid "dir" msgstr "" #: t/061_Scanner_Dialog.t:36 msgid "max-pages" msgstr "" #: t/061_Scanner_Dialog.t:39 msgid "side-to-scan" msgstr "" #: t/061_Scanner_Dialog.t:40 t/061_Scanner_Dialog.t:185 msgid "available-scan-options" msgstr "" #: t/061_Scanner_Dialog.t:171 t/062_Scanner_Dialog.t:73 msgid "profile" msgstr "" gscan2pdf-1.2.3/po/gscan2pdf-bg.po0000644000175000017500000013525112243440507015215 0ustar jeffjeff# Bulgarian translation for gscan2pdf # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the gscan2pdf package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: gscan2pdf\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-10-25 08:12+0200\n" "PO-Revision-Date: 2009-10-26 21:24+0000\n" "Last-Translator: Emil Pavlov \n" "Language-Team: Bulgarian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-19 09:22+0000\n" "X-Generator: Launchpad (build 16831)\n" #: bin/gscan2pdf:157 msgid "Error displaying help" msgstr "" #: bin/gscan2pdf:201 msgid "" "Error: unable to load settings.\n" "Backing up settings\n" "Reverting to defaults" msgstr "" "Грешка: настройките не могат да бъдат заредени.\n" "Създаване на резервно копие на настройките\n" "Връщане към настройките по подразбиране" #: bin/gscan2pdf:244 msgid "A4" msgstr "A4" #: bin/gscan2pdf:250 msgid "US Letter" msgstr "Писмо (САЩ)" #: bin/gscan2pdf:256 msgid "US Legal" msgstr "Юридически формуляр (САЩ)" #: bin/gscan2pdf:323 bin/gscan2pdf:344 #, perl-format msgid "Cannot read file: %s" msgstr "" #: bin/gscan2pdf:451 msgid "_File" msgstr "_Файл" #: bin/gscan2pdf:454 msgid "_New" msgstr "_Нов" #: bin/gscan2pdf:455 msgid "Clears all pages" msgstr "Изчистване на всички страници" #: bin/gscan2pdf:459 msgid "_Open" msgstr "_Отваряне" #: bin/gscan2pdf:460 msgid "Open image file(s)" msgstr "" #: bin/gscan2pdf:465 msgid "S_can" msgstr "С_каниране" #: bin/gscan2pdf:467 msgid "Scan document" msgstr "Сканиране на документа" #: bin/gscan2pdf:471 bin/gscan2pdf:472 bin/gscan2pdf:2582 msgid "Save" msgstr "Запазване" #: bin/gscan2pdf:476 msgid "_Email as PDF" msgstr "Изпращане по _е-поща като PDF" #: bin/gscan2pdf:477 msgid "Attach as PDF to a new email" msgstr "Прикачване като PDF към ново е-писмо" #: bin/gscan2pdf:480 msgid "_Print" msgstr "" #: bin/gscan2pdf:481 msgid "Print" msgstr "" #: bin/gscan2pdf:485 msgid "_Compress temporary files" msgstr "_Компресиране на временните файлове" #: bin/gscan2pdf:486 msgid "Compress temporary files" msgstr "Компресиране на временните файлове" #: bin/gscan2pdf:490 msgid "_Quit" msgstr "_Спиране на програмата" #: bin/gscan2pdf:491 msgid "Quit" msgstr "Спиране на програмата" #: bin/gscan2pdf:495 msgid "_Edit" msgstr "_Редактиране" #: bin/gscan2pdf:497 msgid "_Undo" msgstr "_Отмяна" #: bin/gscan2pdf:497 msgid "Undo" msgstr "Отмяна" #: bin/gscan2pdf:501 msgid "_Redo" msgstr "Пов_торение" #: bin/gscan2pdf:502 msgid "Redo" msgstr "Повторение" #: bin/gscan2pdf:506 msgid "Cu_t" msgstr "Из_рязване" #: bin/gscan2pdf:507 msgid "Cut selection" msgstr "Отрязване на избраните" #: bin/gscan2pdf:511 msgid "_Copy" msgstr "_Копиране" #: bin/gscan2pdf:512 msgid "Copy selection" msgstr "Копиране на избраното" #: bin/gscan2pdf:516 msgid "_Paste" msgstr "_Поставяне" #: bin/gscan2pdf:517 msgid "Paste selection" msgstr "Поставяне на избраното" #: bin/gscan2pdf:521 msgid "_Delete" msgstr "_Изтриване" #: bin/gscan2pdf:522 msgid "Delete selected pages" msgstr "Изтриване на избраните страници" #: bin/gscan2pdf:526 msgid "_Renumber" msgstr "_Повторно номериране" #: bin/gscan2pdf:527 msgid "Renumber pages" msgstr "Повторно номерина на страниците" #: bin/gscan2pdf:529 bin/gscan2pdf:679 msgid "_Select" msgstr "_Избор" #: bin/gscan2pdf:532 msgid "_All" msgstr "_Всичко" #: bin/gscan2pdf:533 msgid "Select all pages" msgstr "Избор на всички страници" #: bin/gscan2pdf:536 msgid "_Odd" msgstr "_Нечетни" #: bin/gscan2pdf:537 msgid "Select all odd-numbered pages" msgstr "Избор на всички нечетни страници" #: bin/gscan2pdf:541 msgid "_Even" msgstr "_Четни" #: bin/gscan2pdf:542 msgid "Select all evenly-numbered pages" msgstr "Избор на всички четни страници" #: bin/gscan2pdf:547 msgid "_Blank" msgstr "_Празни" #: bin/gscan2pdf:548 msgid "Select pages with low standard deviation" msgstr "Избор на всички страници с малко отклонение от стандарта" #: bin/gscan2pdf:552 msgid "_Dark" msgstr "_Тъмни" #: bin/gscan2pdf:553 msgid "Select dark pages" msgstr "Избор на тъмните страници" #: bin/gscan2pdf:558 msgid "_Modified" msgstr "" #: bin/gscan2pdf:560 msgid "Select modified pages since last OCR" msgstr "" #: bin/gscan2pdf:565 msgid "_No OCR" msgstr "" #: bin/gscan2pdf:566 msgid "Select pages with no OCR output" msgstr "" #: bin/gscan2pdf:570 msgid "_Clear OCR" msgstr "" #: bin/gscan2pdf:571 msgid "Clear OCR output from selected pages" msgstr "" #: bin/gscan2pdf:575 msgid "Propert_ies" msgstr "Сво_йства" #: bin/gscan2pdf:576 msgid "Edit image properties" msgstr "Редактиране на свойствата на изображението" #: bin/gscan2pdf:580 msgid "Prefere_nces" msgstr "Настрой_ки" #: bin/gscan2pdf:581 msgid "Edit preferences" msgstr "Настройки на редактирането" #: bin/gscan2pdf:585 msgid "_View" msgstr "_Изглед" #: bin/gscan2pdf:588 msgid "Zoom _100%" msgstr "Мащаб _100%" #: bin/gscan2pdf:589 msgid "Zoom to 100%" msgstr "Мащаб 100%" #: bin/gscan2pdf:593 msgid "Zoom to _fit" msgstr "На_пасване по екрана" #: bin/gscan2pdf:594 msgid "Zoom to fit" msgstr "Напасване по екрана" #: bin/gscan2pdf:598 msgid "Zoom _in" msgstr "_Увеличение" #: bin/gscan2pdf:599 msgid "Zoom in" msgstr "Увеличение" #: bin/gscan2pdf:603 msgid "Zoom _out" msgstr "_Умаляване" #: bin/gscan2pdf:604 msgid "Zoom out" msgstr "Умаляване" #: bin/gscan2pdf:609 bin/gscan2pdf:611 msgid "Rotate 90 clockwise" msgstr "Завъртане на 90 градуса надясно" #: bin/gscan2pdf:617 bin/gscan2pdf:619 msgid "Rotate 180" msgstr "Завъртане на 180 градуса" #: bin/gscan2pdf:625 bin/gscan2pdf:627 msgid "Rotate 90 anticlockwise" msgstr "Завъртане на 90 градуса наляво" #: bin/gscan2pdf:632 msgid "_Tools" msgstr "_Инструменти" #: bin/gscan2pdf:634 msgid "_Threshold" msgstr "_Праг" #: bin/gscan2pdf:635 msgid "Change each pixel above this threshold to black" msgstr "Промяна на всеки пиксел над прага в черно" #: bin/gscan2pdf:639 msgid "_Negate" msgstr "_Негативни цветове" #: bin/gscan2pdf:640 msgid "Converts black to white and vice versa" msgstr "Обръщане на черното в бяло и обратно" #: bin/gscan2pdf:644 msgid "_Unsharp Mask" msgstr "_Маска за увеличаване на рязкостта" #: bin/gscan2pdf:645 msgid "Apply an unsharp mask" msgstr "Прилагана на маската за увеличаване на рязкостта" #: bin/gscan2pdf:648 msgid "_Crop" msgstr "И_зрязване" #: bin/gscan2pdf:649 msgid "Crop pages" msgstr "Изрязване на страниците" #: bin/gscan2pdf:653 msgid "_Clean up" msgstr "_Почистване" #: bin/gscan2pdf:654 bin/gscan2pdf:4085 msgid "Clean up scanned images with unpaper" msgstr "Почистване на сканираните страници с unpaper" #: bin/gscan2pdf:657 msgid "_OCR" msgstr "_ОРЗ" #: bin/gscan2pdf:658 msgid "Optical Character Recognition" msgstr "Оптично разпознаване на знаци (ОРЗ)" #: bin/gscan2pdf:660 msgid "U_ser-defined" msgstr "" #: bin/gscan2pdf:663 bin/gscan2pdf:665 msgid "_Help" msgstr "Помо_щ" #: bin/gscan2pdf:666 msgid "Help" msgstr "Помощ" #: bin/gscan2pdf:668 msgid "_About" msgstr "_Относно" #: bin/gscan2pdf:674 msgid "_Drag" msgstr "_Влачене" #: bin/gscan2pdf:675 msgid "Use the hand tool" msgstr "Използване на инструмента ръчна обработка" #: bin/gscan2pdf:680 msgid "Use the rectangular selection tool" msgstr "Използване на инструмента за правоъгълна селекция" #: bin/gscan2pdf:684 msgid "_Paint" msgstr "_Боядисване" #: bin/gscan2pdf:685 msgid "Use the painter tool" msgstr "Използване наинструмента за боядисване" #: bin/gscan2pdf:965 lib/Gscan2pdf/Document.pm:2594 #: lib/Gscan2pdf/Document.pm:2595 msgid "Error copying page" msgstr "Грешка при копирането на страницата" #: bin/gscan2pdf:1082 msgid "Image" msgstr "" #: bin/gscan2pdf:1117 msgid "OCR Output" msgstr "" #: bin/gscan2pdf:1174 msgid "Mode" msgstr "Режим" #: bin/gscan2pdf:1176 msgid "Lineart" msgstr "Стил на линията" #: bin/gscan2pdf:1177 msgid "Grayscale" msgstr "Степени на сивото" #: bin/gscan2pdf:1178 msgid "Gray" msgstr "Сиво" #: bin/gscan2pdf:1179 msgid "Color" msgstr "Цвят" #: bin/gscan2pdf:1180 msgid "Black & White" msgstr "Черно и бяло" #: bin/gscan2pdf:1181 msgid "True Gray" msgstr "Истинско сиво" #: bin/gscan2pdf:1182 msgid "Binary" msgstr "Двоични" #: bin/gscan2pdf:1183 bin/gscan2pdf:1242 bin/gscan2pdf:1243 msgid "Auto" msgstr "Автоматично" #: bin/gscan2pdf:1184 msgid "Halftone" msgstr "Полутон" #: bin/gscan2pdf:1185 msgid "24bit Color" msgstr "24-битов цвят" #: bin/gscan2pdf:1189 bin/gscan2pdf:2547 bin/gscan2pdf:2644 msgid "Compression" msgstr "Компресия" #: bin/gscan2pdf:1191 bin/gscan2pdf:2539 bin/gscan2pdf:2636 msgid "None" msgstr "Без" #: bin/gscan2pdf:1192 bin/gscan2pdf:2537 bin/gscan2pdf:2601 bin/gscan2pdf:2622 msgid "JPEG" msgstr "JPEG" #: bin/gscan2pdf:1195 bin/gscan2pdf:8127 msgid "Resolution" msgstr "Разделителна способност" #: bin/gscan2pdf:1196 msgid "Brightness" msgstr "Яркост" #: bin/gscan2pdf:1197 msgid "Gain" msgstr "Усилване" #: bin/gscan2pdf:1198 msgid "Contrast" msgstr "Контраст" #: bin/gscan2pdf:1199 bin/gscan2pdf:6406 bin/gscan2pdf:6417 bin/gscan2pdf:6620 msgid "Threshold" msgstr "Праг" #: bin/gscan2pdf:1201 msgid "Speed" msgstr "Скорост" #: bin/gscan2pdf:1203 bin/gscan2pdf:1210 bin/gscan2pdf:1217 bin/gscan2pdf:1224 #: bin/gscan2pdf:1231 msgid "Yes" msgstr "Да" #: bin/gscan2pdf:1204 bin/gscan2pdf:1211 bin/gscan2pdf:1218 bin/gscan2pdf:1225 #: bin/gscan2pdf:1232 msgid "No" msgstr "&Не" #: bin/gscan2pdf:1208 msgid "Batch scan" msgstr "Множествено сканиране" #: bin/gscan2pdf:1215 bin/gscan2pdf:1222 msgid "Wait for button" msgstr "Чакане на бутон" #: bin/gscan2pdf:1229 msgid "Cache calibration" msgstr "Калибриране на кеша" #: bin/gscan2pdf:1236 msgid "Source" msgstr "Източник" #: bin/gscan2pdf:1238 msgid "Normal" msgstr "Нормален" #: bin/gscan2pdf:1239 msgid "ADF" msgstr "АПД" #: bin/gscan2pdf:1240 msgid "Automatic Document Feeder" msgstr "Автоматично подаване на документи" #: bin/gscan2pdf:1241 msgid "XPA" msgstr "XPA" #: bin/gscan2pdf:1244 msgid "Flatbed" msgstr "Плосък" #: bin/gscan2pdf:1245 msgid "Transparency Adapter" msgstr "Адаптор на прозрачността" #: bin/gscan2pdf:1246 msgid "Transparency Unit" msgstr "Единица за прозрачност" #: bin/gscan2pdf:1249 bin/gscan2pdf:1251 msgid "Page Width" msgstr "Ширина на страницата" #: bin/gscan2pdf:1250 bin/gscan2pdf:1252 msgid "Page Height" msgstr "Височина на страницата" #: bin/gscan2pdf:1253 msgid "Top Overscan" msgstr "Повторно сканиране отгоре" #: bin/gscan2pdf:1254 msgid "Bottom Overscan" msgstr "Повторно сканиране отдолу" #: bin/gscan2pdf:1256 bin/gscan2pdf:1263 msgid "ADF Mode" msgstr "Режим на АПД" #: bin/gscan2pdf:1258 bin/gscan2pdf:1265 msgid "Simplex" msgstr "Симплексно" #: bin/gscan2pdf:1259 bin/gscan2pdf:1266 msgid "Duplex" msgstr "Дуплексно" #: bin/gscan2pdf:1301 bin/gscan2pdf:1306 msgid "Pick crashed session to restore" msgstr "" #: bin/gscan2pdf:1308 bin/gscan2pdf:2609 msgid "Session" msgstr "" #: bin/gscan2pdf:1338 #, perl-format msgid "" "Warning: unable to use %s for temporary storage. Defaulting to %s instead." msgstr "" #: bin/gscan2pdf:1441 msgid "GOCR" msgstr "GOCR" #: bin/gscan2pdf:1441 msgid "Process image with GOCR." msgstr "Обработване на изображенията с GOCR." #: bin/gscan2pdf:1445 msgid "Tesseract" msgstr "Tesseract" #: bin/gscan2pdf:1446 msgid "Process image with Tesseract." msgstr "Обработване на изображенията с Tesseract." #: bin/gscan2pdf:1450 msgid "Ocropus" msgstr "" #: bin/gscan2pdf:1450 msgid "Process image with Ocropus." msgstr "" #: bin/gscan2pdf:1454 msgid "Cuneiform" msgstr "" #: bin/gscan2pdf:1455 msgid "Process image with Cuneiform." msgstr "" #: bin/gscan2pdf:1461 msgid "Save image and Save as PDF both require imagemagick\n" msgstr "" "Командите „запазване на изображението“ и „запазване като PDF“ изискват " "imagemagick\n" #: bin/gscan2pdf:1465 msgid "Save image requires libtiff\n" msgstr "Командата „запазване на изображението“ изисква libtiff\n" #: bin/gscan2pdf:1469 msgid "Save as DjVu requires djvulibre-bin\n" msgstr "Командата „запазване като DjVu“ изисква djvulibre-bin\n" #: bin/gscan2pdf:1473 msgid "Email as PDF requires xdg-email\n" msgstr "Командата „изпращане по ел. поща като PDF“ изисква xdg-email\n" #: bin/gscan2pdf:1518 msgid "The rotating options and unpaper support require perlmagick\n" msgstr "" "Настройките за завъртане и поддръжката на unpaper се нуждаят от perlmagick\n" #: bin/gscan2pdf:1524 msgid "unpaper missing\n" msgstr "програмата unpaper не е открита\n" #: bin/gscan2pdf:1534 msgid "OCR requires gocr, tesseract, ocropus, or cuneiform\n" msgstr "" #: bin/gscan2pdf:1539 msgid "Warning: missing packages" msgstr "Внимание: липсващи пакети" #: bin/gscan2pdf:1544 msgid "Don't show this message again" msgstr "Това съобщение да не се показва повече" #: bin/gscan2pdf:1753 msgid "" "Some pages have not been saved.\n" "Do you really want to clear all pages?" msgstr "" #: bin/gscan2pdf:1828 bin/gscan2pdf:1858 #, perl-format msgid "Process %i of %i (%s)" msgstr "" #: bin/gscan2pdf:1867 #, perl-format msgid "Process %i of %i" msgstr "" #: bin/gscan2pdf:1895 msgid "Open image" msgstr "" #: bin/gscan2pdf:1903 bin/gscan2pdf:2797 bin/gscan2pdf:3113 msgid "Image files" msgstr "" #: bin/gscan2pdf:1940 msgid "Pages to extract" msgstr "Страници за извличане" #: bin/gscan2pdf:1943 bin/gscan2pdf:2117 bin/gscan2pdf:2586 bin/gscan2pdf:3353 #: bin/gscan2pdf:3494 bin/gscan2pdf:4104 bin/gscan2pdf:4514 bin/gscan2pdf:5825 #: bin/gscan2pdf:6409 bin/gscan2pdf:6495 bin/gscan2pdf:6565 bin/gscan2pdf:6737 #: bin/gscan2pdf:7011 bin/gscan2pdf:7274 bin/gscan2pdf:7757 bin/gscan2pdf:8123 #: lib/Gscan2pdf/Dialog.pm:56 lib/Gscan2pdf/Dialog/Renumber.pm:80 #: lib/Gscan2pdf/Scanner/Dialog.pm:201 t/05_Dialog.t:28 msgid "vbox" msgstr "" #: bin/gscan2pdf:1946 msgid "First page to extract" msgstr "Първа страница, която да бъде извлечена" #: bin/gscan2pdf:1953 msgid "Last page to extract" msgstr "Последна страница, която да бъде извлечена" #: bin/gscan2pdf:2042 lib/Gscan2pdf/Dialog/Renumber.pm:83 msgid "Page Range" msgstr "Страници от интервала" #: bin/gscan2pdf:2092 msgid "Metadata" msgstr "Метаданни" #: bin/gscan2pdf:2101 msgid "Date" msgstr "Дата" #: bin/gscan2pdf:2114 msgid "Select Date" msgstr "Избор на датата" #: bin/gscan2pdf:2136 msgid "Today" msgstr "днес" #: bin/gscan2pdf:2150 msgid "Year-Month-Day" msgstr "година-месец-ден" #: bin/gscan2pdf:2156 msgid "Document author" msgstr "Автор на документа" #: bin/gscan2pdf:2165 msgid "Title" msgstr "Заглавие" #: bin/gscan2pdf:2174 msgid "Subject" msgstr "Тема" #: bin/gscan2pdf:2183 msgid "Keywords" msgstr "Ключови думи" #: bin/gscan2pdf:2245 msgid "Editing text" msgstr "" #: bin/gscan2pdf:2252 bin/gscan2pdf:2258 bin/gscan2pdf:2332 msgid "text" msgstr "" #: bin/gscan2pdf:2352 msgid "PDF filename" msgstr "Име на PDF-файла" #: bin/gscan2pdf:2381 msgid "PDF files" msgstr "" #: bin/gscan2pdf:2405 bin/gscan2pdf:2823 bin/gscan2pdf:2880 bin/gscan2pdf:2976 #: bin/gscan2pdf:3035 bin/gscan2pdf:3087 bin/gscan2pdf:3275 #, perl-format msgid "File %s is read-only" msgstr "Файлът %s е само за четене" #: bin/gscan2pdf:2482 msgid "JPEG Quality" msgstr "Качество на изображението тип JPEG" #: bin/gscan2pdf:2496 msgid "Downsample to" msgstr "Намаляване на честотата на дискретизация до" #: bin/gscan2pdf:2501 msgid "PPI" msgstr "" #: bin/gscan2pdf:2520 msgid "Automatic" msgstr "автоматично" #: bin/gscan2pdf:2521 msgid "Let gscan2pdf which type of compression to use." msgstr "gscan2pdf може сам да избира типа на компресия." #: bin/gscan2pdf:2524 bin/gscan2pdf:2616 msgid "LZW" msgstr "LZW" #: bin/gscan2pdf:2525 bin/gscan2pdf:2617 msgid "Compress output with Lempel-Ziv & Welch encoding." msgstr "Компресиране на изходния файл с алгоритма на Лемпел-Зив-Уелх." #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Zip" msgstr "Zip" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Compress output with deflate encoding." msgstr "Компресиране на изходния файл с алгоритма Дифлейт." #: bin/gscan2pdf:2529 bin/gscan2pdf:2624 msgid "Packbits" msgstr "Пакбитс" #: bin/gscan2pdf:2530 bin/gscan2pdf:2625 msgid "Compress output with Packbits encoding." msgstr "Компресиране на изходния файл с алгоритма Пакбитс." #: bin/gscan2pdf:2536 bin/gscan2pdf:2604 msgid "PNG" msgstr "PNG" #: bin/gscan2pdf:2536 msgid "Compress output with PNG encoding." msgstr "" "Компресиране на изходния файл с алгоритма Преносими мрежови графики (PNG)." #: bin/gscan2pdf:2537 bin/gscan2pdf:2622 msgid "Compress output with JPEG encoding." msgstr "Компресиране на изходния файл с алгоритма JPEG." #: bin/gscan2pdf:2540 bin/gscan2pdf:2637 msgid "Use no compression algorithm on output." msgstr "Без компресия на изходния файл." #: bin/gscan2pdf:2594 msgid "Image type" msgstr "Тип на изображението" #: bin/gscan2pdf:2598 msgid "PDF" msgstr "PDF" #: bin/gscan2pdf:2598 msgid "Portable Document Format" msgstr "Преносим формат за документи (PDF)" #: bin/gscan2pdf:2599 msgid "GIF" msgstr "" #: bin/gscan2pdf:2599 msgid "CompuServe graphics interchange format" msgstr "" #: bin/gscan2pdf:2602 msgid "Joint Photographic Experts Group JFIF format" msgstr "" #: bin/gscan2pdf:2604 msgid "Portable Network Graphics" msgstr "" #: bin/gscan2pdf:2605 msgid "PNM" msgstr "" #: bin/gscan2pdf:2605 msgid "Portable anymap" msgstr "" #: bin/gscan2pdf:2606 msgid "PS" msgstr "" #: bin/gscan2pdf:2606 msgid "Postscript" msgstr "" #: bin/gscan2pdf:2607 msgid "TIFF" msgstr "" #: bin/gscan2pdf:2607 msgid "Tagged Image File Format" msgstr "" #: bin/gscan2pdf:2608 msgid "Text" msgstr "" #: bin/gscan2pdf:2608 msgid "Plain text" msgstr "" #: bin/gscan2pdf:2609 msgid "gscan2pdf session file" msgstr "" #: bin/gscan2pdf:2611 msgid "DjVu" msgstr "" #: bin/gscan2pdf:2611 msgid "Deja Vu" msgstr "" #: bin/gscan2pdf:2628 msgid "G3" msgstr "Г3" #: bin/gscan2pdf:2629 msgid "Compress output with CCITT Group 3 encoding." msgstr "Компресиране на изходния файл с алгоритма Група 3 на CCITT." #: bin/gscan2pdf:2632 msgid "G4" msgstr "Г4" #: bin/gscan2pdf:2633 msgid "Compress output with CCITT Group 4 encoding." msgstr "Компресиране на изходния файл с алгоритма Група 4 на CCITT." #: bin/gscan2pdf:2649 msgid "tiff" msgstr "" #: bin/gscan2pdf:2681 msgid "Font for non-ASCII text" msgstr "" #: bin/gscan2pdf:2790 msgid "TIFF filename" msgstr "" #: bin/gscan2pdf:2848 msgid "Text filename" msgstr "" #: bin/gscan2pdf:2856 msgid "Text files" msgstr "" #: bin/gscan2pdf:2944 msgid "PS filename" msgstr "" #: bin/gscan2pdf:2951 msgid "Postscript files" msgstr "" #: bin/gscan2pdf:3003 msgid "gscan2pdf session filename" msgstr "" #: bin/gscan2pdf:3010 msgid "gscan2pdf session files" msgstr "" #: bin/gscan2pdf:3093 #, perl-format msgid "" "File %s exists.\n" "Really overwrite?" msgstr "" #: bin/gscan2pdf:3106 msgid "Image filename" msgstr "" #: bin/gscan2pdf:3245 msgid "DjVu filename" msgstr "" #: bin/gscan2pdf:3252 msgid "DjVu files" msgstr "" #: bin/gscan2pdf:3349 msgid "Email as PDF" msgstr "" #: bin/gscan2pdf:3454 msgid "Error creating email" msgstr "" #: bin/gscan2pdf:3490 bin/gscan2pdf:4313 msgid "Scan Document" msgstr "" #: bin/gscan2pdf:3507 lib/Gscan2pdf/Scanner/Dialog.pm:248 msgid "Page Options" msgstr "" #: bin/gscan2pdf:3510 lib/Gscan2pdf/Scanner/Dialog.pm:251 msgid "# Pages" msgstr "" #: bin/gscan2pdf:3519 lib/Gscan2pdf/PageRange.pm:34 #: lib/Gscan2pdf/Scanner/Dialog.pm:261 msgid "All" msgstr "" #: bin/gscan2pdf:3520 lib/Gscan2pdf/Scanner/Dialog.pm:262 msgid "Scan all pages" msgstr "" #: bin/gscan2pdf:3532 bin/gscan2pdf:3537 lib/Gscan2pdf/Scanner/Dialog.pm:274 #: lib/Gscan2pdf/Scanner/Dialog.pm:279 msgid "Set number of pages to scan" msgstr "" #: bin/gscan2pdf:3550 lib/Gscan2pdf/Scanner/Dialog.pm:308 msgid "Extended page numbering" msgstr "" #: bin/gscan2pdf:3554 lib/Gscan2pdf/Scanner/Dialog.pm:312 msgid "Page number" msgstr "" #: bin/gscan2pdf:3563 lib/Gscan2pdf/Dialog/Renumber.pm:111 #: lib/Gscan2pdf/Scanner/Dialog.pm:321 msgid "Start" msgstr "" #: bin/gscan2pdf:3572 lib/Gscan2pdf/Dialog/Renumber.pm:132 #: lib/Gscan2pdf/Scanner/Dialog.pm:340 msgid "Increment" msgstr "" #: bin/gscan2pdf:3604 lib/Gscan2pdf/Scanner/Dialog.pm:372 msgid "Source document" msgstr "" #: bin/gscan2pdf:3611 lib/Gscan2pdf/Scanner/Dialog.pm:379 msgid "Single sided" msgstr "" #: bin/gscan2pdf:3612 lib/Gscan2pdf/Scanner/Dialog.pm:380 msgid "Source document is single-sided" msgstr "" #: bin/gscan2pdf:3622 lib/Gscan2pdf/Scanner/Dialog.pm:390 msgid "Double sided" msgstr "" #: bin/gscan2pdf:3623 lib/Gscan2pdf/Scanner/Dialog.pm:391 msgid "Source document is double-sided" msgstr "" #: bin/gscan2pdf:3629 lib/Gscan2pdf/Scanner/Dialog.pm:397 msgid "Side to scan" msgstr "" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Facing" msgstr "" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Reverse" msgstr "" #: bin/gscan2pdf:3655 lib/Gscan2pdf/Scanner/Dialog.pm:418 msgid "Sets which side of a double-sided document is scanned" msgstr "" #: bin/gscan2pdf:3719 msgid "Scan Options" msgstr "" #: bin/gscan2pdf:3722 msgid "Device-dependent options" msgstr "" #: bin/gscan2pdf:3729 lib/Gscan2pdf/Scanner/Dialog.pm:458 msgid "Scan profiles" msgstr "" #: bin/gscan2pdf:3778 bin/gscan2pdf:3784 lib/Gscan2pdf/Scanner/Dialog.pm:479 #: lib/Gscan2pdf/Scanner/Dialog.pm:485 msgid "Name of scan profile" msgstr "" #: bin/gscan2pdf:3828 lib/Gscan2pdf/Scanner/Dialog.pm:518 msgid "Scan" msgstr "" #: bin/gscan2pdf:3866 msgid "Must scan facing pages first" msgstr "" #: bin/gscan2pdf:3977 msgid "Post-processing" msgstr "" #: bin/gscan2pdf:3986 bin/gscan2pdf:4008 msgid "Rotate" msgstr "" #: bin/gscan2pdf:3987 bin/gscan2pdf:4009 msgid "Rotate image after scanning" msgstr "" #: bin/gscan2pdf:3990 msgid "Both sides" msgstr "" #: bin/gscan2pdf:3990 msgid "Both sides." msgstr "" #: bin/gscan2pdf:3991 msgid "Facing side" msgstr "" #: bin/gscan2pdf:3991 msgid "Facing side." msgstr "" #: bin/gscan2pdf:3992 msgid "Reverse side" msgstr "" #: bin/gscan2pdf:3992 msgid "Reverse side." msgstr "" #: bin/gscan2pdf:3995 bin/gscan2pdf:4013 msgid "Select side to rotate" msgstr "" #: bin/gscan2pdf:3998 msgid "90" msgstr "" #: bin/gscan2pdf:3998 msgid "Rotate image 90 degrees clockwise." msgstr "" #: bin/gscan2pdf:3999 msgid "180" msgstr "" #: bin/gscan2pdf:3999 msgid "Rotate image 180 degrees clockwise." msgstr "" #: bin/gscan2pdf:4000 msgid "270" msgstr "" #: bin/gscan2pdf:4000 msgid "Rotate image 90 degrees anticlockwise." msgstr "" #: bin/gscan2pdf:4003 bin/gscan2pdf:4016 msgid "Select direction of rotation" msgstr "" #: bin/gscan2pdf:4083 msgid "Clean up images" msgstr "" #: bin/gscan2pdf:4094 msgid "Options" msgstr "" #: bin/gscan2pdf:4095 msgid "Set unpaper options" msgstr "" #: bin/gscan2pdf:4101 msgid "unpaper options" msgstr "" #: bin/gscan2pdf:4136 bin/gscan2pdf:4137 msgid "OCR scanned pages" msgstr "" #: bin/gscan2pdf:4151 msgid "Select OCR engine" msgstr "" #: bin/gscan2pdf:4210 lib/Gscan2pdf/Scanner/Dialog.pm:634 msgid "Fetching list of devices" msgstr "" #: bin/gscan2pdf:4225 lib/Gscan2pdf/Scanner/Dialog.pm:654 msgid "No devices found" msgstr "" #: bin/gscan2pdf:4367 bin/gscan2pdf:4732 bin/gscan2pdf:4777 bin/gscan2pdf:5214 #: lib/Gscan2pdf/Scanner/Dialog.pm:343 lib/Gscan2pdf/Scanner/Dialog.pm:348 #: t/061_Scanner_Dialog.t:38 t/061_Scanner_Dialog.t:95 msgid "page-number-increment" msgstr "" #: bin/gscan2pdf:4374 bin/gscan2pdf:4729 bin/gscan2pdf:4730 bin/gscan2pdf:4776 #: bin/gscan2pdf:5213 lib/Gscan2pdf/Scanner/Dialog.pm:361 #: t/061_Scanner_Dialog.t:37 msgid "page-number-start" msgstr "" #: bin/gscan2pdf:4663 lib/Gscan2pdf/Scanner/Dialog.pm:210 msgid "Device" msgstr "" #: bin/gscan2pdf:4671 lib/Gscan2pdf/Scanner/Dialog.pm:213 msgid "Rescan for devices" msgstr "" #: bin/gscan2pdf:4694 lib/Gscan2pdf/Scanner/Dialog.pm:237 msgid "Sets the device to be used for the scan" msgstr "" #: bin/gscan2pdf:4780 lib/Gscan2pdf/Scanner/Dialog.pm:300 #: t/061_Scanner_Dialog.t:35 msgid "num-pages" msgstr "" #: bin/gscan2pdf:4821 msgid "Scanning" msgstr "" #: bin/gscan2pdf:4974 msgid "Unable to load image" msgstr "" #: bin/gscan2pdf:5004 msgid "print-pages" msgstr "" #: bin/gscan2pdf:5008 msgid "page-ranges" msgstr "" #: bin/gscan2pdf:5405 msgid "Patches gratefully received from:" msgstr "" #: bin/gscan2pdf:5407 msgid "To aid the scan-to-PDF process" msgstr "" #: bin/gscan2pdf:5408 msgid "Copyright 2006--2012 Jeffrey Ratcliffe" msgstr "" #: bin/gscan2pdf:5492 bin/gscan2pdf:6028 msgid "The options cache seems to be empty. Reload device-dependent options?" msgstr "" #: bin/gscan2pdf:5519 bin/gscan2pdf:6054 msgid "Updating options" msgstr "" #: bin/gscan2pdf:5571 msgid "Paper size" msgstr "" #: bin/gscan2pdf:5572 bin/gscan2pdf:5672 bin/gscan2pdf:5840 bin/gscan2pdf:6769 msgid "Width" msgstr "" #: bin/gscan2pdf:5573 bin/gscan2pdf:5678 bin/gscan2pdf:5841 bin/gscan2pdf:6780 msgid "Height" msgstr "" #: bin/gscan2pdf:5574 bin/gscan2pdf:5684 bin/gscan2pdf:5842 #: lib/Gscan2pdf/Unpaper.pm:124 lib/Gscan2pdf/Unpaper.pm:152 msgid "Left" msgstr "Отляво" #: bin/gscan2pdf:5575 bin/gscan2pdf:5690 bin/gscan2pdf:5843 #: lib/Gscan2pdf/Unpaper.pm:129 lib/Gscan2pdf/Unpaper.pm:157 msgid "Top" msgstr "Отгоре" #: bin/gscan2pdf:5589 bin/gscan2pdf:5703 bin/gscan2pdf:6232 msgid "Manual" msgstr "" #: bin/gscan2pdf:5590 bin/gscan2pdf:5700 msgid "Edit" msgstr "" #: bin/gscan2pdf:5591 msgid "Selects or edits the paper size" msgstr "" #: bin/gscan2pdf:5673 msgid "Width of scan area" msgstr "" #: bin/gscan2pdf:5679 msgid "Height of scan area" msgstr "" #: bin/gscan2pdf:5685 msgid "Top-left x position of scan area" msgstr "" #: bin/gscan2pdf:5691 msgid "Top-left y position of scan area" msgstr "" #: bin/gscan2pdf:5822 msgid "Edit paper size" msgstr "" #: bin/gscan2pdf:5839 msgid "Name" msgstr "" #: bin/gscan2pdf:5893 msgid "Cannot delete all paper sizes" msgstr "" #: bin/gscan2pdf:5955 msgid "" "The following paper sizes are too big to be scanned by the selected device:" msgstr "" #: bin/gscan2pdf:6419 bin/gscan2pdf:6605 msgid "%" msgstr "" #: bin/gscan2pdf:6492 msgid "Negate" msgstr "" #: bin/gscan2pdf:6562 msgid "Unsharp mask" msgstr "" #: bin/gscan2pdf:6573 msgid "Radius" msgstr "" #: bin/gscan2pdf:6575 bin/gscan2pdf:6592 bin/gscan2pdf:6747 bin/gscan2pdf:6759 #: bin/gscan2pdf:6771 bin/gscan2pdf:6782 msgid "pixels" msgstr "" #: bin/gscan2pdf:6582 msgid "" "The radius of the Gaussian, in pixels, not counting the center pixel (0 = " "automatic)." msgstr "" #: bin/gscan2pdf:6590 msgid "Sigma" msgstr "" #: bin/gscan2pdf:6597 msgid "The standard deviation of the Gaussian." msgstr "" #: bin/gscan2pdf:6603 msgid "Amount" msgstr "" #: bin/gscan2pdf:6612 msgid "" "The percentage of the difference between the original and the blur image " "that is added back into the original." msgstr "" #: bin/gscan2pdf:6627 msgid "" "The threshold, as a fraction of QuantumRange, needed to apply the difference " "amount." msgstr "" #: bin/gscan2pdf:6733 msgid "Crop" msgstr "" #: bin/gscan2pdf:6745 msgid "x" msgstr "" #: bin/gscan2pdf:6751 msgid "The x-position of the left hand edge of the crop." msgstr "" #: bin/gscan2pdf:6757 msgid "y" msgstr "" #: bin/gscan2pdf:6763 msgid "The y-position of the top edge of the crop." msgstr "" #: bin/gscan2pdf:6774 msgid "The width of the crop." msgstr "" #: bin/gscan2pdf:6785 msgid "The height of the crop." msgstr "" #: bin/gscan2pdf:6906 msgid "label" msgstr "" #: bin/gscan2pdf:7007 msgid "unpaper" msgstr "" #: bin/gscan2pdf:7216 bin/gscan2pdf:7244 msgid "Language to recognise" msgstr "" #: bin/gscan2pdf:7227 msgid "English" msgstr "" #: bin/gscan2pdf:7270 msgid "OCR" msgstr "" #: bin/gscan2pdf:7279 msgid "OCR Engine" msgstr "" #: bin/gscan2pdf:7323 msgid "Start OCR" msgstr "" #: bin/gscan2pdf:7339 msgid "No page selected" msgstr "" #: bin/gscan2pdf:7374 msgid "" "Some pages have not been saved.\n" "Do you really want to quit?" msgstr "" #: bin/gscan2pdf:7432 #, perl-format msgid "" "The help viewer requires module Gtk2::Ex::PodViewer\n" "Alternatively, try: %s %s\n" "\n" msgstr "" #: bin/gscan2pdf:7698 msgid "This operation cannot be undone. Are you sure?" msgstr "" #: bin/gscan2pdf:7753 msgid "Preferences" msgstr "" #: bin/gscan2pdf:7762 msgid "Frontend" msgstr "" #: bin/gscan2pdf:7766 msgid "libsane-perl" msgstr "" #: bin/gscan2pdf:7767 msgid "Scan using the perl bindings for SANE." msgstr "" #: bin/gscan2pdf:7770 msgid "scanimage" msgstr "" #: bin/gscan2pdf:7771 msgid "Scan using the scanimage frontend." msgstr "" #: bin/gscan2pdf:7775 msgid "scanimage-perl" msgstr "" #: bin/gscan2pdf:7776 msgid "Scan using the scanimage-perl frontend." msgstr "" #: bin/gscan2pdf:7779 msgid "scanadf-perl" msgstr "" #: bin/gscan2pdf:7780 msgid "Scan using the scanadf-perl frontend." msgstr "" #: bin/gscan2pdf:7785 msgid "scanadf" msgstr "" #: bin/gscan2pdf:7786 msgid "Scan using the scanadf frontend." msgstr "" #: bin/gscan2pdf:7791 msgid "Cycle SANE handle after scan" msgstr "" #: bin/gscan2pdf:7814 msgid "Default filename for PDFs" msgstr "" #: bin/gscan2pdf:7820 msgid "" "%a\t author\n" "%t\t title\n" "%y\t document's year\n" "%Y\t today's year\n" "%m\t document's month\n" "%M\t today's month\n" "%d\t document's day\n" "%D\t today's day" msgstr "" #: bin/gscan2pdf:7830 msgid "Scan command prefix" msgstr "" #: bin/gscan2pdf:7839 msgid "Restore window settings on startup" msgstr "" #: bin/gscan2pdf:7845 msgid "Cache device-dependent options" msgstr "" #: bin/gscan2pdf:7851 msgid "Clear device-dependent options cache" msgstr "" #: bin/gscan2pdf:7862 msgid "Temporary directory" msgstr "" #: bin/gscan2pdf:7867 msgid "Browse" msgstr "" #: bin/gscan2pdf:7871 msgid "Select temporary directory" msgstr "" #: bin/gscan2pdf:7888 msgid "Blank threshold" msgstr "" #: bin/gscan2pdf:7893 msgid "Threshold used for selecting blank pages" msgstr "" #: bin/gscan2pdf:7899 msgid "Dark threshold" msgstr "" #: bin/gscan2pdf:7904 msgid "Threshold used for selecting dark pages" msgstr "" #: bin/gscan2pdf:7910 msgid "OCR output" msgstr "" #: bin/gscan2pdf:7915 msgid "Replace" msgstr "" #: bin/gscan2pdf:7917 msgid "" "Replace the contents of the text buffer with that from the OCR output." msgstr "" #: bin/gscan2pdf:7920 msgid "Prepend" msgstr "" #: bin/gscan2pdf:7921 msgid "Prepend the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7924 msgid "Append" msgstr "" #: bin/gscan2pdf:7925 msgid "Append the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7933 msgid "User-defined tools" msgstr "" #: bin/gscan2pdf:7954 msgid "View files on saving" msgstr "" #: bin/gscan2pdf:8000 msgid "" "You will have to restart gscanp2df for changes to the temporary directory to " "take effect." msgstr "" #: bin/gscan2pdf:8092 msgid "" "Use %i and %o for the input and output filenames respectively, or a single " "%i if the image is to be modified in-place.\n" "\n" "The other variable available is:\n" "\n" "%r resolution" msgstr "" #: bin/gscan2pdf:8119 msgid "Properties" msgstr "" #: lib/Gscan2pdf/Dialog.pm:63 lib/Gscan2pdf/Dialog.pm:79 t/05_Dialog.t:25 msgid "hide-on-delete" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:78 lib/Gscan2pdf/Dialog/Renumber.pm:162 msgid "Renumber" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:98 lib/Gscan2pdf/Dialog/Renumber.pm:207 #: lib/Gscan2pdf/Dialog/Renumber.pm:244 msgid "range" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:102 msgid "Page numbering" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:105 lib/Gscan2pdf/Scanner/Dialog.pm:254 msgid "border_width" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:126 lib/Gscan2pdf/Dialog/Renumber.pm:192 #: lib/Gscan2pdf/Dialog/Renumber.pm:242 t/07_Dialog_Renumber.t:33 #: t/07_Dialog_Renumber.t:45 t/07_Dialog_Renumber.t:59 #: t/07_Dialog_Renumber.t:66 msgid "start" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:147 lib/Gscan2pdf/Dialog/Renumber.pm:193 #: lib/Gscan2pdf/Dialog/Renumber.pm:243 t/07_Dialog_Renumber.t:34 #: t/07_Dialog_Renumber.t:46 t/07_Dialog_Renumber.t:60 #: t/07_Dialog_Renumber.t:67 msgid "increment" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:205 lib/Gscan2pdf/Dialog/Renumber.pm:241 msgid "document" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:295 msgid "" "The current settings would result in duplicate page numbers. Please select " "new start and increment values." msgstr "" #: lib/Gscan2pdf/Document.pm:83 msgid "Thumbnails" msgstr "" #: lib/Gscan2pdf/Document.pm:1502 msgid "Unknown DjVu file structure. Please contact the author." msgstr "" #: lib/Gscan2pdf/Document.pm:1558 #, perl-format msgid "%s is not a recognised image type" msgstr "" #: lib/Gscan2pdf/Document.pm:1580 lib/Gscan2pdf/Document.pm:1637 #, perl-format msgid "Importing page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:1613 msgid "Error extracting images from PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1692 msgid "Setting up PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1703 #, perl-format msgid "Saving page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:1814 lib/Gscan2pdf/Document.pm:2136 #, perl-format msgid "Error compressing image: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1919 #, perl-format msgid "Error creating PDF image object: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1930 #, perl-format msgid "Error embedding file image in %s format to PDF: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1939 msgid "Closing PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1955 #, perl-format msgid "Writing page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:2006 msgid "Error writing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2025 lib/Gscan2pdf/Document.pm:2227 #, perl-format msgid "Can't open file: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:2050 msgid "Error adding text layer to DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2056 msgid "Closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2063 msgid "Error closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2078 #, perl-format msgid "Converting image %i of %i to TIFF" msgstr "" #: lib/Gscan2pdf/Document.pm:2105 msgid "Error writing TIFF" msgstr "" #: lib/Gscan2pdf/Document.pm:2121 msgid "Concatenating TIFFs" msgstr "" #: lib/Gscan2pdf/Document.pm:2140 msgid "Converting to PS" msgstr "" #: lib/Gscan2pdf/Document.pm:2200 lib/Gscan2pdf/Document.pm:2215 msgid "Error saving image" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:158 #, perl-format msgid "Scanning %i pages..." msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:163 #, perl-format msgid "Scanning page %i..." msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:188 lib/Gscan2pdf/Frontend/CLI.pm:296 msgid "Scanner warming up" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:195 msgid "Document feeder out of documents" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:212 lib/Gscan2pdf/Frontend/CLI.pm:325 msgid "Device busy" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:218 lib/Gscan2pdf/Frontend/CLI.pm:330 msgid "Operation cancelled" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:223 lib/Gscan2pdf/Frontend/CLI.pm:336 msgid "Unknown message: " msgstr "" #: lib/Gscan2pdf/Page.pm:68 lib/Gscan2pdf/Page.pm:73 #, perl-format msgid "Error importing image %s: %s" msgstr "" #: lib/Gscan2pdf/PageRange.pm:33 msgid "Selected" msgstr "" #: lib/Gscan2pdf/PageRange.pm:58 msgid "active" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:218 t/061_Scanner_Dialog.t:33 #: t/061_Scanner_Dialog.t:59 msgid "device-list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:496 t/061_Scanner_Dialog.t:139 #: t/061_Scanner_Dialog.t:174 t/062_Scanner_Dialog.t:50 #: t/062_Scanner_Dialog.t:75 msgid "current-scan-options" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:567 msgid "logger" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:650 t/05_Dialog.t:24 msgid "transient-for" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:716 msgid "device_list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:749 t/061_Scanner_Dialog.t:32 msgid "device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:751 msgid "Opening device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:760 msgid "Retrieving options" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:41 msgid "Layout" msgstr "Подредба" #: lib/Gscan2pdf/Unpaper.pm:44 msgid "Single" msgstr "Единично" #: lib/Gscan2pdf/Unpaper.pm:46 msgid "One page per sheet, oriented upwards without rotation." msgstr "Една страница на лист, ориентирана нагоре без завъртане" #: lib/Gscan2pdf/Unpaper.pm:49 msgid "Double" msgstr "Двойно" #: lib/Gscan2pdf/Unpaper.pm:51 msgid "" "Two pages per sheet, landscape orientation (one page on the left half, one " "page on the right half)." msgstr "" "Две страници на лист, ориентация по дългата страна ( едната страница на " "лявата половина, другата - на дясната)." #: lib/Gscan2pdf/Unpaper.pm:59 msgid "# Output pages" msgstr "Брой на изходните страници" #: lib/Gscan2pdf/Unpaper.pm:60 msgid "Number of pages to output." msgstr "Брой на страници, които ще бъдат създадени." #: lib/Gscan2pdf/Unpaper.pm:68 msgid "No deskew" msgstr "Без премахване на дефекти" #: lib/Gscan2pdf/Unpaper.pm:69 msgid "Disable deskewing." msgstr "Изключване на премахването на дефекти." #: lib/Gscan2pdf/Unpaper.pm:74 msgid "No mask scan" msgstr "Без маска за сканиране" #: lib/Gscan2pdf/Unpaper.pm:75 msgid "Disable mask detection." msgstr "Изключване на маската за откриване" #: lib/Gscan2pdf/Unpaper.pm:80 msgid "No black filter" msgstr "Без филтър за черни" #: lib/Gscan2pdf/Unpaper.pm:81 msgid "Disable black area scan." msgstr "Изключване на сканирането на черни области." #: lib/Gscan2pdf/Unpaper.pm:86 msgid "No gray filter" msgstr "Без филтър за сиви" #: lib/Gscan2pdf/Unpaper.pm:87 msgid "Disable gray area scan." msgstr "Изключване на филтъра за сиви области." #: lib/Gscan2pdf/Unpaper.pm:92 msgid "No noise filter" msgstr "Без филтър за шум" #: lib/Gscan2pdf/Unpaper.pm:93 msgid "Disable noise filter." msgstr "Изключване на филтъра за шум." #: lib/Gscan2pdf/Unpaper.pm:98 msgid "No blur filter" msgstr "Без филтър за замъгляване" #: lib/Gscan2pdf/Unpaper.pm:99 msgid "Disable blur filter." msgstr "Изключване на филтъра за замъгляване." #: lib/Gscan2pdf/Unpaper.pm:104 msgid "No border scan" msgstr "Без сканиране на ръба" #: lib/Gscan2pdf/Unpaper.pm:105 msgid "Disable border scanning." msgstr "Изключване на сканирането на ръба" #: lib/Gscan2pdf/Unpaper.pm:110 msgid "No border align" msgstr "Без подравняване на ръба" #: lib/Gscan2pdf/Unpaper.pm:112 msgid "Disable aligning of the area detected by border scanning." msgstr "" "Изключване на подраняването на областите, открити от сканирането на ръба." #: lib/Gscan2pdf/Unpaper.pm:117 msgid "Deskew to edge" msgstr "Премахване на дефектите до ръба" #: lib/Gscan2pdf/Unpaper.pm:119 msgid "" "Edges from which to scan for rotation. Each edge of a mask can be used to " "detect the mask's rotation. If multiple edges are specified, the average " "value will be used, unless the statistical deviation exceeds --deskew-scan-" "deviation." msgstr "" "Ръбове, от които да се сканира за завъртане. Всеки ръб от маската може да " "бъде използван за откриване на завъртането на маската. Ако няколко ръба са " "определени, ще бъде използвана средната стойност, освен ако не надвишава " "маскимално разрешеното статистическото отклонение („--deskew-scan-deviation“ " "от опциите на unpaper)." #: lib/Gscan2pdf/Unpaper.pm:125 msgid "Use 'left' for scanning from the left edge." msgstr "Използвайте „отляво“ за сканиране от левия ръб." #: lib/Gscan2pdf/Unpaper.pm:130 msgid "Use 'top' for scanning from the top edge." msgstr "Използвайте „отгоре“ за сканиране от горния ръб." #: lib/Gscan2pdf/Unpaper.pm:134 lib/Gscan2pdf/Unpaper.pm:162 msgid "Right" msgstr "Отдясно" #: lib/Gscan2pdf/Unpaper.pm:135 msgid "Use 'right' for scanning from the right edge." msgstr "Използвайте „отдясно“ за сканиране от десния ръб." #: lib/Gscan2pdf/Unpaper.pm:139 lib/Gscan2pdf/Unpaper.pm:167 msgid "Bottom" msgstr "Отдолу" #: lib/Gscan2pdf/Unpaper.pm:140 msgid "Use 'bottom' for scanning from the bottom." msgstr "Използвайте „отдолу“ за сканиране от долния ръб" #: lib/Gscan2pdf/Unpaper.pm:147 msgid "Align to edge" msgstr "Подравняване по ръба" #: lib/Gscan2pdf/Unpaper.pm:148 msgid "Edge to which to align the page." msgstr "Ръб, по който да бъде подранявана страницата." #: lib/Gscan2pdf/Unpaper.pm:153 msgid "Use 'left' to align to the left edge." msgstr "Използвайте „отляво“ за подраняване по левия ръб" #: lib/Gscan2pdf/Unpaper.pm:158 msgid "Use 'top' to align to the top edge." msgstr "Използвайте „отгоре“ за подраняване по горния ръб" #: lib/Gscan2pdf/Unpaper.pm:163 msgid "Use 'right' to align to the right edge." msgstr "Използвайте „отдясно“ за подраняване по десния ръб" #: lib/Gscan2pdf/Unpaper.pm:168 msgid "Use 'bottom' to align to the bottom." msgstr "Използвайте „отдолу“ за подраняване по долния ръб" #: lib/Gscan2pdf/Unpaper.pm:174 msgid "Border margin" msgstr "Поле до ръба" #: lib/Gscan2pdf/Unpaper.pm:178 msgid "Vertical margin" msgstr "Вертикално поле" #: lib/Gscan2pdf/Unpaper.pm:180 msgid "" "Vertical distance to keep from the sheet edge when aligning a border area." msgstr "" "Вертикално разстояние, което да бъде спазвано до ръба при подраняване на " "крайните области." #: lib/Gscan2pdf/Unpaper.pm:189 msgid "Horizontal margin" msgstr "Хоризонтално поле" #: lib/Gscan2pdf/Unpaper.pm:191 msgid "" "Horizontal distance to keep from the sheet edge when aligning a border area." msgstr "" "Хоризонтално разстояние, което да бъде спазвано до ръба при подраняване на " "крайните области." #: lib/Gscan2pdf/Unpaper.pm:202 msgid "White threshold" msgstr "Праг на бялото" #: lib/Gscan2pdf/Unpaper.pm:204 msgid "Brightness ratio above which a pixel is considered white." msgstr "Коефициент на яркостта, над който всеки пиксел се счита за бял." #: lib/Gscan2pdf/Unpaper.pm:212 msgid "Black threshold" msgstr "Праг на черното" #: lib/Gscan2pdf/Unpaper.pm:214 msgid "" "Brightness ratio below which a pixel is considered black (non-gray). This is " "used by the gray-filter. This value is also used when converting a grayscale " "image to black-and-white mode." msgstr "" "Коефициент на яркостта, под койт всеки пиксел се счита за черен (несив). " "Това се използва от филтъра за сиви. Тази стойност също се използва, когато " "изображение със степени на сивото се превръща в черно-бяло." #: lib/Gscan2pdf/Unpaper.pm:250 msgid "Deskew" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:280 msgid "Border" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:337 msgid "Filters" msgstr "" #: t/05_Dialog.t:23 msgid "title" msgstr "" #: t/05_Dialog.t:26 t/05_Dialog.t:31 t/05_Dialog.t:32 t/05_Dialog.t:38 #: t/05_Dialog.t:39 msgid "border-width" msgstr "" #: t/061_Scanner_Dialog.t:34 msgid "dir" msgstr "" #: t/061_Scanner_Dialog.t:36 msgid "max-pages" msgstr "" #: t/061_Scanner_Dialog.t:39 msgid "side-to-scan" msgstr "" #: t/061_Scanner_Dialog.t:40 t/061_Scanner_Dialog.t:185 msgid "available-scan-options" msgstr "" #: t/061_Scanner_Dialog.t:171 t/062_Scanner_Dialog.t:73 msgid "profile" msgstr "" gscan2pdf-1.2.3/po/gscan2pdf-da.po0000644000175000017500000012742112243440507015211 0ustar jeffjeff# Danish translation of gscan2pdf. # Copyright (c) 2006 Rosetta Contributors and Canonical Ltd 2006 # This file is distributed under the same license as the gscan2pdf package. # Jacob Nielsen , 2007. # msgid "" msgstr "" "Project-Id-Version: gscan2pdf 0.9.9\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-10-25 08:12+0200\n" "PO-Revision-Date: 2013-05-12 16:50+0000\n" "Last-Translator: peteradleralberti \n" "Language-Team: Danish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-19 09:22+0000\n" "X-Generator: Launchpad (build 16831)\n" #: bin/gscan2pdf:157 msgid "Error displaying help" msgstr "" #: bin/gscan2pdf:201 msgid "" "Error: unable to load settings.\n" "Backing up settings\n" "Reverting to defaults" msgstr "" "Fejl: kunne ikke hente indstillinger.\n" "Gemmer indstillinger\n" "Vender tilbage til standardindstillinger" #: bin/gscan2pdf:244 msgid "A4" msgstr "A4" #: bin/gscan2pdf:250 msgid "US Letter" msgstr "US Letter" #: bin/gscan2pdf:256 msgid "US Legal" msgstr "US Legal" #: bin/gscan2pdf:323 bin/gscan2pdf:344 #, perl-format msgid "Cannot read file: %s" msgstr "Kan ikke læse filen: %s" #: bin/gscan2pdf:451 msgid "_File" msgstr "_Fil" #: bin/gscan2pdf:454 msgid "_New" msgstr "_Ny" #: bin/gscan2pdf:455 msgid "Clears all pages" msgstr "Fjerner alle sider" #: bin/gscan2pdf:459 msgid "_Open" msgstr "_Åbn" #: bin/gscan2pdf:460 msgid "Open image file(s)" msgstr "" #: bin/gscan2pdf:465 msgid "S_can" msgstr "S_can" #: bin/gscan2pdf:467 msgid "Scan document" msgstr "Scan dokument" #: bin/gscan2pdf:471 bin/gscan2pdf:472 bin/gscan2pdf:2582 msgid "Save" msgstr "Gem" #: bin/gscan2pdf:476 msgid "_Email as PDF" msgstr "_Email som PDF" #: bin/gscan2pdf:477 msgid "Attach as PDF to a new email" msgstr "Vedlæg som PDF til ny email" #: bin/gscan2pdf:480 msgid "_Print" msgstr "" #: bin/gscan2pdf:481 msgid "Print" msgstr "Udskriv" #: bin/gscan2pdf:485 msgid "_Compress temporary files" msgstr "Komprimer midlertidige filer" #: bin/gscan2pdf:486 msgid "Compress temporary files" msgstr "Komprimer midlertidige filer" #: bin/gscan2pdf:490 msgid "_Quit" msgstr "Afslut" #: bin/gscan2pdf:491 msgid "Quit" msgstr "Afslut" #: bin/gscan2pdf:495 msgid "_Edit" msgstr "R_ediger" #: bin/gscan2pdf:497 msgid "_Undo" msgstr "Fortryd" #: bin/gscan2pdf:497 msgid "Undo" msgstr "Fortryd" #: bin/gscan2pdf:501 msgid "_Redo" msgstr "Gentag" #: bin/gscan2pdf:502 msgid "Redo" msgstr "Gentag" #: bin/gscan2pdf:506 msgid "Cu_t" msgstr "Klip" #: bin/gscan2pdf:507 msgid "Cut selection" msgstr "Klip det markerede" #: bin/gscan2pdf:511 msgid "_Copy" msgstr "Kopiér" #: bin/gscan2pdf:512 msgid "Copy selection" msgstr "Kopiér det markerede" #: bin/gscan2pdf:516 msgid "_Paste" msgstr "Indsæt" #: bin/gscan2pdf:517 msgid "Paste selection" msgstr "Indsæt markering" #: bin/gscan2pdf:521 msgid "_Delete" msgstr "Slet" #: bin/gscan2pdf:522 msgid "Delete selected pages" msgstr "Slet markerede sider" #: bin/gscan2pdf:526 msgid "_Renumber" msgstr "Omnumme_rer" #: bin/gscan2pdf:527 msgid "Renumber pages" msgstr "Omnummerér sider" #: bin/gscan2pdf:529 bin/gscan2pdf:679 msgid "_Select" msgstr "_Markér" #: bin/gscan2pdf:532 msgid "_All" msgstr "_Alle" #: bin/gscan2pdf:533 msgid "Select all pages" msgstr "Markér alle sider" #: bin/gscan2pdf:536 msgid "_Odd" msgstr "_Ulige" #: bin/gscan2pdf:537 msgid "Select all odd-numbered pages" msgstr "Markér alle uligenummererede sider" #: bin/gscan2pdf:541 msgid "_Even" msgstr "_Lige" #: bin/gscan2pdf:542 msgid "Select all evenly-numbered pages" msgstr "Vælg alle ligenummererede sider" #: bin/gscan2pdf:547 msgid "_Blank" msgstr "_Tomme" #: bin/gscan2pdf:548 msgid "Select pages with low standard deviation" msgstr "Vælg alle sider med lav standardafvigelse" #: bin/gscan2pdf:552 msgid "_Dark" msgstr "_Mørk" #: bin/gscan2pdf:553 msgid "Select dark pages" msgstr "Vælg mørke sider" #: bin/gscan2pdf:558 msgid "_Modified" msgstr "" #: bin/gscan2pdf:560 msgid "Select modified pages since last OCR" msgstr "" #: bin/gscan2pdf:565 msgid "_No OCR" msgstr "" #: bin/gscan2pdf:566 msgid "Select pages with no OCR output" msgstr "" #: bin/gscan2pdf:570 msgid "_Clear OCR" msgstr "" #: bin/gscan2pdf:571 msgid "Clear OCR output from selected pages" msgstr "" #: bin/gscan2pdf:575 msgid "Propert_ies" msgstr "_Egenskaber" #: bin/gscan2pdf:576 msgid "Edit image properties" msgstr "Redigér billedegenskaber" #: bin/gscan2pdf:580 msgid "Prefere_nces" msgstr "Indstilli_nger" #: bin/gscan2pdf:581 msgid "Edit preferences" msgstr "Rediger indstillinger" #: bin/gscan2pdf:585 msgid "_View" msgstr "_Vis" #: bin/gscan2pdf:588 msgid "Zoom _100%" msgstr "Zoom _100%" #: bin/gscan2pdf:589 msgid "Zoom to 100%" msgstr "Zoom til 100%" #: bin/gscan2pdf:593 msgid "Zoom to _fit" msgstr "Zoom optimeret" #: bin/gscan2pdf:594 msgid "Zoom to fit" msgstr "Zoom optimeret" #: bin/gscan2pdf:598 msgid "Zoom _in" msgstr "Zoom _ind" #: bin/gscan2pdf:599 msgid "Zoom in" msgstr "Zoom ind" #: bin/gscan2pdf:603 msgid "Zoom _out" msgstr "Z_oom ud" #: bin/gscan2pdf:604 msgid "Zoom out" msgstr "Zoom ud" #: bin/gscan2pdf:609 bin/gscan2pdf:611 msgid "Rotate 90 clockwise" msgstr "Roter 90 med uret" #: bin/gscan2pdf:617 bin/gscan2pdf:619 msgid "Rotate 180" msgstr "Roter 180" #: bin/gscan2pdf:625 bin/gscan2pdf:627 msgid "Rotate 90 anticlockwise" msgstr "Roter 90 mod uret" #: bin/gscan2pdf:632 msgid "_Tools" msgstr "Værk_tøjer" #: bin/gscan2pdf:634 msgid "_Threshold" msgstr "_Tærskel" #: bin/gscan2pdf:635 msgid "Change each pixel above this threshold to black" msgstr "Gør pixels over denne tærskel sorte" #: bin/gscan2pdf:639 msgid "_Negate" msgstr "_Negativ" #: bin/gscan2pdf:640 msgid "Converts black to white and vice versa" msgstr "Konverterer sort til hvid og omvendt" #: bin/gscan2pdf:644 msgid "_Unsharp Mask" msgstr "Uskarphedsmaske" #: bin/gscan2pdf:645 msgid "Apply an unsharp mask" msgstr "Brug uskarphedsmaske" #: bin/gscan2pdf:648 msgid "_Crop" msgstr "_Beskær" #: bin/gscan2pdf:649 msgid "Crop pages" msgstr "Beskær sider" #: bin/gscan2pdf:653 msgid "_Clean up" msgstr "Rens" #: bin/gscan2pdf:654 bin/gscan2pdf:4085 msgid "Clean up scanned images with unpaper" msgstr "Rens scannede billeder med unpaper" #: bin/gscan2pdf:657 msgid "_OCR" msgstr "_OCR" #: bin/gscan2pdf:658 msgid "Optical Character Recognition" msgstr "Optisk tekstgenkendelse (OCR)" #: bin/gscan2pdf:660 msgid "U_ser-defined" msgstr "" #: bin/gscan2pdf:663 bin/gscan2pdf:665 msgid "_Help" msgstr "_Hjælp" #: bin/gscan2pdf:666 msgid "Help" msgstr "Hjælp" #: bin/gscan2pdf:668 msgid "_About" msgstr "Om" #: bin/gscan2pdf:674 msgid "_Drag" msgstr "_Træk" #: bin/gscan2pdf:675 msgid "Use the hand tool" msgstr "Brug håndværktøjet" #: bin/gscan2pdf:680 msgid "Use the rectangular selection tool" msgstr "Brug værktøjet til rektangulær markering" #: bin/gscan2pdf:684 msgid "_Paint" msgstr "_Mal" #: bin/gscan2pdf:685 msgid "Use the painter tool" msgstr "Brug farveværktøjet" #: bin/gscan2pdf:965 lib/Gscan2pdf/Document.pm:2594 #: lib/Gscan2pdf/Document.pm:2595 msgid "Error copying page" msgstr "Fejl ved kopiering af side" #: bin/gscan2pdf:1082 msgid "Image" msgstr "Billede" #: bin/gscan2pdf:1117 msgid "OCR Output" msgstr "" #: bin/gscan2pdf:1174 msgid "Mode" msgstr "Funktionsmåde" #: bin/gscan2pdf:1176 msgid "Lineart" msgstr "Lineart" #: bin/gscan2pdf:1177 msgid "Grayscale" msgstr "Gråtoner" #: bin/gscan2pdf:1178 msgid "Gray" msgstr "Gråt" #: bin/gscan2pdf:1179 msgid "Color" msgstr "Farve" #: bin/gscan2pdf:1180 msgid "Black & White" msgstr "Sort/hvid" #: bin/gscan2pdf:1181 msgid "True Gray" msgstr "Ægte gråt" #: bin/gscan2pdf:1182 msgid "Binary" msgstr "Binært" #: bin/gscan2pdf:1183 bin/gscan2pdf:1242 bin/gscan2pdf:1243 msgid "Auto" msgstr "Auto" #: bin/gscan2pdf:1184 msgid "Halftone" msgstr "Halvtone" #: bin/gscan2pdf:1185 msgid "24bit Color" msgstr "24-bit farve" #: bin/gscan2pdf:1189 bin/gscan2pdf:2547 bin/gscan2pdf:2644 msgid "Compression" msgstr "Komprimering" #: bin/gscan2pdf:1191 bin/gscan2pdf:2539 bin/gscan2pdf:2636 msgid "None" msgstr "Ingen" #: bin/gscan2pdf:1192 bin/gscan2pdf:2537 bin/gscan2pdf:2601 bin/gscan2pdf:2622 msgid "JPEG" msgstr "JPEG" #: bin/gscan2pdf:1195 bin/gscan2pdf:8127 msgid "Resolution" msgstr "Opløsning" #: bin/gscan2pdf:1196 msgid "Brightness" msgstr "Lysstyrke" #: bin/gscan2pdf:1197 msgid "Gain" msgstr "Forhøjelse" #: bin/gscan2pdf:1198 msgid "Contrast" msgstr "Kontrast" #: bin/gscan2pdf:1199 bin/gscan2pdf:6406 bin/gscan2pdf:6417 bin/gscan2pdf:6620 msgid "Threshold" msgstr "Tærskel" #: bin/gscan2pdf:1201 msgid "Speed" msgstr "Hastighed" #: bin/gscan2pdf:1203 bin/gscan2pdf:1210 bin/gscan2pdf:1217 bin/gscan2pdf:1224 #: bin/gscan2pdf:1231 msgid "Yes" msgstr "Ja" #: bin/gscan2pdf:1204 bin/gscan2pdf:1211 bin/gscan2pdf:1218 bin/gscan2pdf:1225 #: bin/gscan2pdf:1232 msgid "No" msgstr "Nej" #: bin/gscan2pdf:1208 msgid "Batch scan" msgstr "Batch scanning" #: bin/gscan2pdf:1215 bin/gscan2pdf:1222 msgid "Wait for button" msgstr "Afvent tryk på knap" #: bin/gscan2pdf:1229 msgid "Cache calibration" msgstr "Cache kalibrering" #: bin/gscan2pdf:1236 msgid "Source" msgstr "Kilde" #: bin/gscan2pdf:1238 msgid "Normal" msgstr "Normal" #: bin/gscan2pdf:1239 msgid "ADF" msgstr "ADF" #: bin/gscan2pdf:1240 msgid "Automatic Document Feeder" msgstr "Automatisk dokumentføder" #: bin/gscan2pdf:1241 msgid "XPA" msgstr "XPA" #: bin/gscan2pdf:1244 msgid "Flatbed" msgstr "Flatbed" #: bin/gscan2pdf:1245 msgid "Transparency Adapter" msgstr "Transparent-adapter" #: bin/gscan2pdf:1246 msgid "Transparency Unit" msgstr "Transparent-enhed" #: bin/gscan2pdf:1249 bin/gscan2pdf:1251 msgid "Page Width" msgstr "Sidebredde" #: bin/gscan2pdf:1250 bin/gscan2pdf:1252 msgid "Page Height" msgstr "Sidehøjde" #: bin/gscan2pdf:1253 msgid "Top Overscan" msgstr "Top overskan" #: bin/gscan2pdf:1254 msgid "Bottom Overscan" msgstr "Bund overskan" #: bin/gscan2pdf:1256 bin/gscan2pdf:1263 msgid "ADF Mode" msgstr "ADF-tilstand" #: bin/gscan2pdf:1258 bin/gscan2pdf:1265 msgid "Simplex" msgstr "Enkeltsidet" #: bin/gscan2pdf:1259 bin/gscan2pdf:1266 msgid "Duplex" msgstr "Dobbeltsidet" #: bin/gscan2pdf:1301 bin/gscan2pdf:1306 msgid "Pick crashed session to restore" msgstr "" #: bin/gscan2pdf:1308 bin/gscan2pdf:2609 msgid "Session" msgstr "Session" #: bin/gscan2pdf:1338 #, perl-format msgid "" "Warning: unable to use %s for temporary storage. Defaulting to %s instead." msgstr "" "Advarsel: ude af stand til at bruge %s til midlertidig lagerplads. Bruger " "istedet standardværdien %s." #: bin/gscan2pdf:1441 msgid "GOCR" msgstr "GOCR" #: bin/gscan2pdf:1441 msgid "Process image with GOCR." msgstr "Kør GOCR på billedet" #: bin/gscan2pdf:1445 msgid "Tesseract" msgstr "Tesseract" #: bin/gscan2pdf:1446 msgid "Process image with Tesseract." msgstr "Kør Tesseract på billedet" #: bin/gscan2pdf:1450 msgid "Ocropus" msgstr "" #: bin/gscan2pdf:1450 msgid "Process image with Ocropus." msgstr "" #: bin/gscan2pdf:1454 msgid "Cuneiform" msgstr "" #: bin/gscan2pdf:1455 msgid "Process image with Cuneiform." msgstr "" #: bin/gscan2pdf:1461 msgid "Save image and Save as PDF both require imagemagick\n" msgstr "Gem billede og Gem som PDF kræver begge imagemagick\n" #: bin/gscan2pdf:1465 msgid "Save image requires libtiff\n" msgstr "Gem billede kræver libtiff\n" #: bin/gscan2pdf:1469 msgid "Save as DjVu requires djvulibre-bin\n" msgstr "For at gemme som DjVu kræves djvulibre-bin\n" #: bin/gscan2pdf:1473 msgid "Email as PDF requires xdg-email\n" msgstr "Email som PDF kræver xdg-email\n" #: bin/gscan2pdf:1518 msgid "The rotating options and unpaper support require perlmagick\n" msgstr "Rotation og unpaper-understøttelse kræver perlmagick\n" #: bin/gscan2pdf:1524 msgid "unpaper missing\n" msgstr "unpaper blev ikke fundet\n" #: bin/gscan2pdf:1534 msgid "OCR requires gocr, tesseract, ocropus, or cuneiform\n" msgstr "" #: bin/gscan2pdf:1539 msgid "Warning: missing packages" msgstr "Advarsel: manglende pakker" #: bin/gscan2pdf:1544 msgid "Don't show this message again" msgstr "Vis ikke denne meddelelse igen" #: bin/gscan2pdf:1753 msgid "" "Some pages have not been saved.\n" "Do you really want to clear all pages?" msgstr "" #: bin/gscan2pdf:1828 bin/gscan2pdf:1858 #, perl-format msgid "Process %i of %i (%s)" msgstr "" #: bin/gscan2pdf:1867 #, perl-format msgid "Process %i of %i" msgstr "" #: bin/gscan2pdf:1895 msgid "Open image" msgstr "" #: bin/gscan2pdf:1903 bin/gscan2pdf:2797 bin/gscan2pdf:3113 msgid "Image files" msgstr "Billedfiler" #: bin/gscan2pdf:1940 msgid "Pages to extract" msgstr "Sider der skal importeres" #: bin/gscan2pdf:1943 bin/gscan2pdf:2117 bin/gscan2pdf:2586 bin/gscan2pdf:3353 #: bin/gscan2pdf:3494 bin/gscan2pdf:4104 bin/gscan2pdf:4514 bin/gscan2pdf:5825 #: bin/gscan2pdf:6409 bin/gscan2pdf:6495 bin/gscan2pdf:6565 bin/gscan2pdf:6737 #: bin/gscan2pdf:7011 bin/gscan2pdf:7274 bin/gscan2pdf:7757 bin/gscan2pdf:8123 #: lib/Gscan2pdf/Dialog.pm:56 lib/Gscan2pdf/Dialog/Renumber.pm:80 #: lib/Gscan2pdf/Scanner/Dialog.pm:201 t/05_Dialog.t:28 msgid "vbox" msgstr "" #: bin/gscan2pdf:1946 msgid "First page to extract" msgstr "Første side der skal importeres" #: bin/gscan2pdf:1953 msgid "Last page to extract" msgstr "Sidste side der skal importeres" #: bin/gscan2pdf:2042 lib/Gscan2pdf/Dialog/Renumber.pm:83 msgid "Page Range" msgstr "Sideinterval" #: bin/gscan2pdf:2092 msgid "Metadata" msgstr "Metadata" #: bin/gscan2pdf:2101 msgid "Date" msgstr "Dato" #: bin/gscan2pdf:2114 msgid "Select Date" msgstr "Vælg dato" #: bin/gscan2pdf:2136 msgid "Today" msgstr "Idag" #: bin/gscan2pdf:2150 msgid "Year-Month-Day" msgstr "År-Måned-Dag" #: bin/gscan2pdf:2156 msgid "Document author" msgstr "Forfatter" #: bin/gscan2pdf:2165 msgid "Title" msgstr "Titel" #: bin/gscan2pdf:2174 msgid "Subject" msgstr "Emne" #: bin/gscan2pdf:2183 msgid "Keywords" msgstr "Nøgleord" #: bin/gscan2pdf:2245 msgid "Editing text" msgstr "" #: bin/gscan2pdf:2252 bin/gscan2pdf:2258 bin/gscan2pdf:2332 msgid "text" msgstr "tekst" #: bin/gscan2pdf:2352 msgid "PDF filename" msgstr "PDF filnavn" #: bin/gscan2pdf:2381 msgid "PDF files" msgstr "PDF-filer" #: bin/gscan2pdf:2405 bin/gscan2pdf:2823 bin/gscan2pdf:2880 bin/gscan2pdf:2976 #: bin/gscan2pdf:3035 bin/gscan2pdf:3087 bin/gscan2pdf:3275 #, perl-format msgid "File %s is read-only" msgstr "Filen %s er ikke skrivbar" #: bin/gscan2pdf:2482 msgid "JPEG Quality" msgstr "JPEG kvalitet" #: bin/gscan2pdf:2496 msgid "Downsample to" msgstr "Nedsampling til" #: bin/gscan2pdf:2501 msgid "PPI" msgstr "PPI" #: bin/gscan2pdf:2520 msgid "Automatic" msgstr "Automatisk" #: bin/gscan2pdf:2521 msgid "Let gscan2pdf which type of compression to use." msgstr "Lad gscan2pdf vælge, hvilken type komprimering der skal bruges." #: bin/gscan2pdf:2524 bin/gscan2pdf:2616 msgid "LZW" msgstr "LZW" #: bin/gscan2pdf:2525 bin/gscan2pdf:2617 msgid "Compress output with Lempel-Ziv & Welch encoding." msgstr "Komprimer med Lempel-Ziv & Welch indkodning." #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Zip" msgstr "Zip" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Compress output with deflate encoding." msgstr "Komprimer med deflate indkodning." #: bin/gscan2pdf:2529 bin/gscan2pdf:2624 msgid "Packbits" msgstr "Packbits" #: bin/gscan2pdf:2530 bin/gscan2pdf:2625 msgid "Compress output with Packbits encoding." msgstr "Komprimer med Packbits indkodning." #: bin/gscan2pdf:2536 bin/gscan2pdf:2604 msgid "PNG" msgstr "PNG" #: bin/gscan2pdf:2536 msgid "Compress output with PNG encoding." msgstr "Komprimer med PNG indkodning." #: bin/gscan2pdf:2537 bin/gscan2pdf:2622 msgid "Compress output with JPEG encoding." msgstr "Komprimer med JPEG indkodning." #: bin/gscan2pdf:2540 bin/gscan2pdf:2637 msgid "Use no compression algorithm on output." msgstr "Brug ingen kompression." #: bin/gscan2pdf:2594 msgid "Image type" msgstr "Billedtype" #: bin/gscan2pdf:2598 msgid "PDF" msgstr "PDF" #: bin/gscan2pdf:2598 msgid "Portable Document Format" msgstr "Portable Document Format" #: bin/gscan2pdf:2599 msgid "GIF" msgstr "GIF" #: bin/gscan2pdf:2599 msgid "CompuServe graphics interchange format" msgstr "Graphics Interchange Format" #: bin/gscan2pdf:2602 msgid "Joint Photographic Experts Group JFIF format" msgstr "Joint Photographic Experts Group JFIF format" #: bin/gscan2pdf:2604 msgid "Portable Network Graphics" msgstr "Portable Network Graphics" #: bin/gscan2pdf:2605 msgid "PNM" msgstr "PNM" #: bin/gscan2pdf:2605 msgid "Portable anymap" msgstr "Portable anymap" #: bin/gscan2pdf:2606 msgid "PS" msgstr "PS" #: bin/gscan2pdf:2606 msgid "Postscript" msgstr "Postscript" #: bin/gscan2pdf:2607 msgid "TIFF" msgstr "TIFF" #: bin/gscan2pdf:2607 msgid "Tagged Image File Format" msgstr "Tagged Image File Format" #: bin/gscan2pdf:2608 msgid "Text" msgstr "Tekst" #: bin/gscan2pdf:2608 msgid "Plain text" msgstr "Klartekst" #: bin/gscan2pdf:2609 msgid "gscan2pdf session file" msgstr "gscan2pdf sessionsfil" #: bin/gscan2pdf:2611 msgid "DjVu" msgstr "DjVu" #: bin/gscan2pdf:2611 msgid "Deja Vu" msgstr "Deja Vu" #: bin/gscan2pdf:2628 msgid "G3" msgstr "G3" #: bin/gscan2pdf:2629 msgid "Compress output with CCITT Group 3 encoding." msgstr "Komprimer med CCITT Group 3 indkodning." #: bin/gscan2pdf:2632 msgid "G4" msgstr "G4" #: bin/gscan2pdf:2633 msgid "Compress output with CCITT Group 4 encoding." msgstr "Komprimer med CCITT Group 4 indkodning." #: bin/gscan2pdf:2649 msgid "tiff" msgstr "tiff" #: bin/gscan2pdf:2681 msgid "Font for non-ASCII text" msgstr "" #: bin/gscan2pdf:2790 msgid "TIFF filename" msgstr "TIFF filnavn" #: bin/gscan2pdf:2848 msgid "Text filename" msgstr "Tekstfilnavn" #: bin/gscan2pdf:2856 msgid "Text files" msgstr "Tekstfiler" #: bin/gscan2pdf:2944 msgid "PS filename" msgstr "PS filnavn" #: bin/gscan2pdf:2951 msgid "Postscript files" msgstr "Postscript-filer" #: bin/gscan2pdf:3003 msgid "gscan2pdf session filename" msgstr "gscan2pdf sessionens filnavn" #: bin/gscan2pdf:3010 msgid "gscan2pdf session files" msgstr "" #: bin/gscan2pdf:3093 #, perl-format msgid "" "File %s exists.\n" "Really overwrite?" msgstr "" "Filen %s eksisterer.\n" "Overskriv?" #: bin/gscan2pdf:3106 msgid "Image filename" msgstr "Filnavn for billede" #: bin/gscan2pdf:3245 msgid "DjVu filename" msgstr "DjVu filnavn" #: bin/gscan2pdf:3252 msgid "DjVu files" msgstr "DjVu-filer" #: bin/gscan2pdf:3349 msgid "Email as PDF" msgstr "Email som PDF" #: bin/gscan2pdf:3454 msgid "Error creating email" msgstr "" #: bin/gscan2pdf:3490 bin/gscan2pdf:4313 msgid "Scan Document" msgstr "Scan dokument" #: bin/gscan2pdf:3507 lib/Gscan2pdf/Scanner/Dialog.pm:248 msgid "Page Options" msgstr "Sideindstillinger" #: bin/gscan2pdf:3510 lib/Gscan2pdf/Scanner/Dialog.pm:251 msgid "# Pages" msgstr "Antal sider" #: bin/gscan2pdf:3519 lib/Gscan2pdf/PageRange.pm:34 #: lib/Gscan2pdf/Scanner/Dialog.pm:261 msgid "All" msgstr "Alle" #: bin/gscan2pdf:3520 lib/Gscan2pdf/Scanner/Dialog.pm:262 msgid "Scan all pages" msgstr "Scan alle sider" #: bin/gscan2pdf:3532 bin/gscan2pdf:3537 lib/Gscan2pdf/Scanner/Dialog.pm:274 #: lib/Gscan2pdf/Scanner/Dialog.pm:279 msgid "Set number of pages to scan" msgstr "Vælg antal sider der skal scannes" #: bin/gscan2pdf:3550 lib/Gscan2pdf/Scanner/Dialog.pm:308 msgid "Extended page numbering" msgstr "Udvidet sidenummerering" #: bin/gscan2pdf:3554 lib/Gscan2pdf/Scanner/Dialog.pm:312 msgid "Page number" msgstr "Sidetal" #: bin/gscan2pdf:3563 lib/Gscan2pdf/Dialog/Renumber.pm:111 #: lib/Gscan2pdf/Scanner/Dialog.pm:321 msgid "Start" msgstr "Start" #: bin/gscan2pdf:3572 lib/Gscan2pdf/Dialog/Renumber.pm:132 #: lib/Gscan2pdf/Scanner/Dialog.pm:340 msgid "Increment" msgstr "Inkrement" #: bin/gscan2pdf:3604 lib/Gscan2pdf/Scanner/Dialog.pm:372 msgid "Source document" msgstr "Kildedokument" #: bin/gscan2pdf:3611 lib/Gscan2pdf/Scanner/Dialog.pm:379 msgid "Single sided" msgstr "Enkeltsidet" #: bin/gscan2pdf:3612 lib/Gscan2pdf/Scanner/Dialog.pm:380 msgid "Source document is single-sided" msgstr "Kildedokumentet er enkeltsidet" #: bin/gscan2pdf:3622 lib/Gscan2pdf/Scanner/Dialog.pm:390 msgid "Double sided" msgstr "Dobbeltsidet" #: bin/gscan2pdf:3623 lib/Gscan2pdf/Scanner/Dialog.pm:391 msgid "Source document is double-sided" msgstr "Kildedokumentet er dobbeltsidet" #: bin/gscan2pdf:3629 lib/Gscan2pdf/Scanner/Dialog.pm:397 msgid "Side to scan" msgstr "Side der skal scannes" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Facing" msgstr "Forside" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Reverse" msgstr "Bagside" #: bin/gscan2pdf:3655 lib/Gscan2pdf/Scanner/Dialog.pm:418 msgid "Sets which side of a double-sided document is scanned" msgstr "Vælger hvilken side af et dobbeltsidet dokumentet der scannes" #: bin/gscan2pdf:3719 msgid "Scan Options" msgstr "Scanningsindstillinger" #: bin/gscan2pdf:3722 msgid "Device-dependent options" msgstr "Enhedsafhængige indstillinger" #: bin/gscan2pdf:3729 lib/Gscan2pdf/Scanner/Dialog.pm:458 msgid "Scan profiles" msgstr "Skanprofiler" #: bin/gscan2pdf:3778 bin/gscan2pdf:3784 lib/Gscan2pdf/Scanner/Dialog.pm:479 #: lib/Gscan2pdf/Scanner/Dialog.pm:485 msgid "Name of scan profile" msgstr "Navn på skanprofilen" #: bin/gscan2pdf:3828 lib/Gscan2pdf/Scanner/Dialog.pm:518 msgid "Scan" msgstr "Scan" #: bin/gscan2pdf:3866 msgid "Must scan facing pages first" msgstr "Forsiderne skal scannes først" #: bin/gscan2pdf:3977 msgid "Post-processing" msgstr "Efterbehandling" #: bin/gscan2pdf:3986 bin/gscan2pdf:4008 msgid "Rotate" msgstr "Rotér" #: bin/gscan2pdf:3987 bin/gscan2pdf:4009 msgid "Rotate image after scanning" msgstr "Rotér billede efter scanning" #: bin/gscan2pdf:3990 msgid "Both sides" msgstr "Begge sider" #: bin/gscan2pdf:3990 msgid "Both sides." msgstr "Begge sider." #: bin/gscan2pdf:3991 msgid "Facing side" msgstr "Forside" #: bin/gscan2pdf:3991 msgid "Facing side." msgstr "Forside." #: bin/gscan2pdf:3992 msgid "Reverse side" msgstr "Bagside" #: bin/gscan2pdf:3992 msgid "Reverse side." msgstr "Bagside." #: bin/gscan2pdf:3995 bin/gscan2pdf:4013 msgid "Select side to rotate" msgstr "Vælg side for rotation" #: bin/gscan2pdf:3998 msgid "90" msgstr "90" #: bin/gscan2pdf:3998 msgid "Rotate image 90 degrees clockwise." msgstr "Rotér billede 90 grader med uret." #: bin/gscan2pdf:3999 msgid "180" msgstr "180" #: bin/gscan2pdf:3999 msgid "Rotate image 180 degrees clockwise." msgstr "Rotér billede 180 grader" #: bin/gscan2pdf:4000 msgid "270" msgstr "270" #: bin/gscan2pdf:4000 msgid "Rotate image 90 degrees anticlockwise." msgstr "Rotér billede 90 grader mod uret." #: bin/gscan2pdf:4003 bin/gscan2pdf:4016 msgid "Select direction of rotation" msgstr "Vælg rotationsretning" #: bin/gscan2pdf:4083 msgid "Clean up images" msgstr "Rens billeder" #: bin/gscan2pdf:4094 msgid "Options" msgstr "Indstillinger" #: bin/gscan2pdf:4095 msgid "Set unpaper options" msgstr "Indstillinger for unpaper" #: bin/gscan2pdf:4101 msgid "unpaper options" msgstr "Indstillinger for unpaper" #: bin/gscan2pdf:4136 bin/gscan2pdf:4137 msgid "OCR scanned pages" msgstr "Brug OCR på scannede sider" #: bin/gscan2pdf:4151 msgid "Select OCR engine" msgstr "Vælg OCR-program" #: bin/gscan2pdf:4210 lib/Gscan2pdf/Scanner/Dialog.pm:634 msgid "Fetching list of devices" msgstr "Laver liste over scannerenheder" #: bin/gscan2pdf:4225 lib/Gscan2pdf/Scanner/Dialog.pm:654 msgid "No devices found" msgstr "Ingen enheder fundet" #: bin/gscan2pdf:4367 bin/gscan2pdf:4732 bin/gscan2pdf:4777 bin/gscan2pdf:5214 #: lib/Gscan2pdf/Scanner/Dialog.pm:343 lib/Gscan2pdf/Scanner/Dialog.pm:348 #: t/061_Scanner_Dialog.t:38 t/061_Scanner_Dialog.t:95 msgid "page-number-increment" msgstr "" #: bin/gscan2pdf:4374 bin/gscan2pdf:4729 bin/gscan2pdf:4730 bin/gscan2pdf:4776 #: bin/gscan2pdf:5213 lib/Gscan2pdf/Scanner/Dialog.pm:361 #: t/061_Scanner_Dialog.t:37 msgid "page-number-start" msgstr "" #: bin/gscan2pdf:4663 lib/Gscan2pdf/Scanner/Dialog.pm:210 msgid "Device" msgstr "Enhed" #: bin/gscan2pdf:4671 lib/Gscan2pdf/Scanner/Dialog.pm:213 msgid "Rescan for devices" msgstr "Genskan efter enheder" #: bin/gscan2pdf:4694 lib/Gscan2pdf/Scanner/Dialog.pm:237 msgid "Sets the device to be used for the scan" msgstr "Vælger enhed til brug for scanning" #: bin/gscan2pdf:4780 lib/Gscan2pdf/Scanner/Dialog.pm:300 #: t/061_Scanner_Dialog.t:35 msgid "num-pages" msgstr "" #: bin/gscan2pdf:4821 msgid "Scanning" msgstr "Scanner" #: bin/gscan2pdf:4974 msgid "Unable to load image" msgstr "Kan ikke indlæse billede" #: bin/gscan2pdf:5004 msgid "print-pages" msgstr "" #: bin/gscan2pdf:5008 msgid "page-ranges" msgstr "" #: bin/gscan2pdf:5405 msgid "Patches gratefully received from:" msgstr "Patches modtaget med taknemmelighed fra:" #: bin/gscan2pdf:5407 msgid "To aid the scan-to-PDF process" msgstr "Gør scan-til-PDF processen nemmere" #: bin/gscan2pdf:5408 msgid "Copyright 2006--2012 Jeffrey Ratcliffe" msgstr "Copyright 2006--2012 Jeffrey Ratcliffe" #: bin/gscan2pdf:5492 bin/gscan2pdf:6028 msgid "The options cache seems to be empty. Reload device-dependent options?" msgstr "" #: bin/gscan2pdf:5519 bin/gscan2pdf:6054 msgid "Updating options" msgstr "Opdaterer indstillinger" #: bin/gscan2pdf:5571 msgid "Paper size" msgstr "Papirformat" #: bin/gscan2pdf:5572 bin/gscan2pdf:5672 bin/gscan2pdf:5840 bin/gscan2pdf:6769 msgid "Width" msgstr "Bredde" #: bin/gscan2pdf:5573 bin/gscan2pdf:5678 bin/gscan2pdf:5841 bin/gscan2pdf:6780 msgid "Height" msgstr "Højde" #: bin/gscan2pdf:5574 bin/gscan2pdf:5684 bin/gscan2pdf:5842 #: lib/Gscan2pdf/Unpaper.pm:124 lib/Gscan2pdf/Unpaper.pm:152 msgid "Left" msgstr "Venstre" #: bin/gscan2pdf:5575 bin/gscan2pdf:5690 bin/gscan2pdf:5843 #: lib/Gscan2pdf/Unpaper.pm:129 lib/Gscan2pdf/Unpaper.pm:157 msgid "Top" msgstr "Top" #: bin/gscan2pdf:5589 bin/gscan2pdf:5703 bin/gscan2pdf:6232 msgid "Manual" msgstr "Manuelt" #: bin/gscan2pdf:5590 bin/gscan2pdf:5700 msgid "Edit" msgstr "Redigér" #: bin/gscan2pdf:5591 msgid "Selects or edits the paper size" msgstr "Vælger eller ændrer papirstørrelsen" #: bin/gscan2pdf:5673 msgid "Width of scan area" msgstr "Bredde af scanareal" #: bin/gscan2pdf:5679 msgid "Height of scan area" msgstr "Højde af scanareal" #: bin/gscan2pdf:5685 msgid "Top-left x position of scan area" msgstr "Øvre venstre x-position for scanareal" #: bin/gscan2pdf:5691 msgid "Top-left y position of scan area" msgstr "Øvre venstre y-position for scanareal" #: bin/gscan2pdf:5822 msgid "Edit paper size" msgstr "Redigér papirstørrelse" #: bin/gscan2pdf:5839 msgid "Name" msgstr "Navn" #: bin/gscan2pdf:5893 msgid "Cannot delete all paper sizes" msgstr "Kan ikke slette alle papirstørrelser" #: bin/gscan2pdf:5955 msgid "" "The following paper sizes are too big to be scanned by the selected device:" msgstr "Følgende papirstørrelser er for store til den valgte scanner-enhed:" #: bin/gscan2pdf:6419 bin/gscan2pdf:6605 msgid "%" msgstr "%" #: bin/gscan2pdf:6492 msgid "Negate" msgstr "Negativ" #: bin/gscan2pdf:6562 msgid "Unsharp mask" msgstr "Uskarphedsmaske" #: bin/gscan2pdf:6573 msgid "Radius" msgstr "Radius" #: bin/gscan2pdf:6575 bin/gscan2pdf:6592 bin/gscan2pdf:6747 bin/gscan2pdf:6759 #: bin/gscan2pdf:6771 bin/gscan2pdf:6782 msgid "pixels" msgstr "pixels" #: bin/gscan2pdf:6582 msgid "" "The radius of the Gaussian, in pixels, not counting the center pixel (0 = " "automatic)." msgstr "Radius i pixels, centerpixel ikke medregnet (0 = automatisk)" #: bin/gscan2pdf:6590 msgid "Sigma" msgstr "Sigma" #: bin/gscan2pdf:6597 msgid "The standard deviation of the Gaussian." msgstr "Standardafvigelse" #: bin/gscan2pdf:6603 msgid "Amount" msgstr "Omfang" #: bin/gscan2pdf:6612 msgid "" "The percentage of the difference between the original and the blur image " "that is added back into the original." msgstr "" "Den procentdel af forskellen mellem originalen og det slørede billede, som " "lægges tilbage på originalen." #: bin/gscan2pdf:6627 msgid "" "The threshold, as a fraction of QuantumRange, needed to apply the difference " "amount." msgstr "" "Tærskelniveauet, som en brøkdel af QuantumRange, ved hvilket forskellen " "gøres gældende." #: bin/gscan2pdf:6733 msgid "Crop" msgstr "Beskær" #: bin/gscan2pdf:6745 msgid "x" msgstr "" #: bin/gscan2pdf:6751 msgid "The x-position of the left hand edge of the crop." msgstr "" #: bin/gscan2pdf:6757 msgid "y" msgstr "" #: bin/gscan2pdf:6763 msgid "The y-position of the top edge of the crop." msgstr "" #: bin/gscan2pdf:6774 msgid "The width of the crop." msgstr "Bredden af beskæringen" #: bin/gscan2pdf:6785 msgid "The height of the crop." msgstr "Højden af beskæringen" #: bin/gscan2pdf:6906 msgid "label" msgstr "etiket" #: bin/gscan2pdf:7007 msgid "unpaper" msgstr "unpaper" #: bin/gscan2pdf:7216 bin/gscan2pdf:7244 msgid "Language to recognise" msgstr "Sprog for tekstgenkendelse" #: bin/gscan2pdf:7227 msgid "English" msgstr "Engelsk" #: bin/gscan2pdf:7270 msgid "OCR" msgstr "OCR" #: bin/gscan2pdf:7279 msgid "OCR Engine" msgstr "OCR-program" #: bin/gscan2pdf:7323 msgid "Start OCR" msgstr "Start OCR" #: bin/gscan2pdf:7339 msgid "No page selected" msgstr "Ingen sider markeret" #: bin/gscan2pdf:7374 msgid "" "Some pages have not been saved.\n" "Do you really want to quit?" msgstr "" "Nogle sider er endnu ikke gemt.\n" "Vil du virkelig afslutte?" #: bin/gscan2pdf:7432 #, perl-format msgid "" "The help viewer requires module Gtk2::Ex::PodViewer\n" "Alternatively, try: %s %s\n" "\n" msgstr "" "Hjælpefunktionen kræver modulet Gtk2::Ex::PodViewer\n" "Prøv i stedet: %s %s\n" "\n" #: bin/gscan2pdf:7698 msgid "This operation cannot be undone. Are you sure?" msgstr "Operationen kan ikke fortrydes. Er du sikker?" #: bin/gscan2pdf:7753 msgid "Preferences" msgstr "Indstillinger" #: bin/gscan2pdf:7762 msgid "Frontend" msgstr "" #: bin/gscan2pdf:7766 msgid "libsane-perl" msgstr "" #: bin/gscan2pdf:7767 msgid "Scan using the perl bindings for SANE." msgstr "" #: bin/gscan2pdf:7770 msgid "scanimage" msgstr "" #: bin/gscan2pdf:7771 msgid "Scan using the scanimage frontend." msgstr "" #: bin/gscan2pdf:7775 msgid "scanimage-perl" msgstr "" #: bin/gscan2pdf:7776 msgid "Scan using the scanimage-perl frontend." msgstr "" #: bin/gscan2pdf:7779 msgid "scanadf-perl" msgstr "" #: bin/gscan2pdf:7780 msgid "Scan using the scanadf-perl frontend." msgstr "" #: bin/gscan2pdf:7785 msgid "scanadf" msgstr "" #: bin/gscan2pdf:7786 msgid "Scan using the scanadf frontend." msgstr "" #: bin/gscan2pdf:7791 msgid "Cycle SANE handle after scan" msgstr "" #: bin/gscan2pdf:7814 msgid "Default filename for PDFs" msgstr "Standardfilnavn for PDF-filer" #: bin/gscan2pdf:7820 msgid "" "%a\t author\n" "%t\t title\n" "%y\t document's year\n" "%Y\t today's year\n" "%m\t document's month\n" "%M\t today's month\n" "%d\t document's day\n" "%D\t today's day" msgstr "" #: bin/gscan2pdf:7830 msgid "Scan command prefix" msgstr "" #: bin/gscan2pdf:7839 msgid "Restore window settings on startup" msgstr "" #: bin/gscan2pdf:7845 msgid "Cache device-dependent options" msgstr "" #: bin/gscan2pdf:7851 msgid "Clear device-dependent options cache" msgstr "" #: bin/gscan2pdf:7862 msgid "Temporary directory" msgstr "" #: bin/gscan2pdf:7867 msgid "Browse" msgstr "Gennemse" #: bin/gscan2pdf:7871 msgid "Select temporary directory" msgstr "" #: bin/gscan2pdf:7888 msgid "Blank threshold" msgstr "" #: bin/gscan2pdf:7893 msgid "Threshold used for selecting blank pages" msgstr "" #: bin/gscan2pdf:7899 msgid "Dark threshold" msgstr "" #: bin/gscan2pdf:7904 msgid "Threshold used for selecting dark pages" msgstr "" #: bin/gscan2pdf:7910 msgid "OCR output" msgstr "" #: bin/gscan2pdf:7915 msgid "Replace" msgstr "Erstat" #: bin/gscan2pdf:7917 msgid "" "Replace the contents of the text buffer with that from the OCR output." msgstr "" #: bin/gscan2pdf:7920 msgid "Prepend" msgstr "" #: bin/gscan2pdf:7921 msgid "Prepend the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7924 msgid "Append" msgstr "" #: bin/gscan2pdf:7925 msgid "Append the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7933 msgid "User-defined tools" msgstr "" #: bin/gscan2pdf:7954 msgid "View files on saving" msgstr "" #: bin/gscan2pdf:8000 msgid "" "You will have to restart gscanp2df for changes to the temporary directory to " "take effect." msgstr "" #: bin/gscan2pdf:8092 msgid "" "Use %i and %o for the input and output filenames respectively, or a single " "%i if the image is to be modified in-place.\n" "\n" "The other variable available is:\n" "\n" "%r resolution" msgstr "" #: bin/gscan2pdf:8119 msgid "Properties" msgstr "Egenskaber" #: lib/Gscan2pdf/Dialog.pm:63 lib/Gscan2pdf/Dialog.pm:79 t/05_Dialog.t:25 msgid "hide-on-delete" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:78 lib/Gscan2pdf/Dialog/Renumber.pm:162 msgid "Renumber" msgstr "Omnummerér" #: lib/Gscan2pdf/Dialog/Renumber.pm:98 lib/Gscan2pdf/Dialog/Renumber.pm:207 #: lib/Gscan2pdf/Dialog/Renumber.pm:244 msgid "range" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:102 msgid "Page numbering" msgstr "Sidenummerering" #: lib/Gscan2pdf/Dialog/Renumber.pm:105 lib/Gscan2pdf/Scanner/Dialog.pm:254 msgid "border_width" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:126 lib/Gscan2pdf/Dialog/Renumber.pm:192 #: lib/Gscan2pdf/Dialog/Renumber.pm:242 t/07_Dialog_Renumber.t:33 #: t/07_Dialog_Renumber.t:45 t/07_Dialog_Renumber.t:59 #: t/07_Dialog_Renumber.t:66 msgid "start" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:147 lib/Gscan2pdf/Dialog/Renumber.pm:193 #: lib/Gscan2pdf/Dialog/Renumber.pm:243 t/07_Dialog_Renumber.t:34 #: t/07_Dialog_Renumber.t:46 t/07_Dialog_Renumber.t:60 #: t/07_Dialog_Renumber.t:67 msgid "increment" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:205 lib/Gscan2pdf/Dialog/Renumber.pm:241 msgid "document" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:295 msgid "" "The current settings would result in duplicate page numbers. Please select " "new start and increment values." msgstr "" #: lib/Gscan2pdf/Document.pm:83 msgid "Thumbnails" msgstr "Miniaturer" #: lib/Gscan2pdf/Document.pm:1502 msgid "Unknown DjVu file structure. Please contact the author." msgstr "Ukendt struktur i DjVu-filen. Vær venlig at kontakte ophavsmanden." #: lib/Gscan2pdf/Document.pm:1558 #, perl-format msgid "%s is not a recognised image type" msgstr "" #: lib/Gscan2pdf/Document.pm:1580 lib/Gscan2pdf/Document.pm:1637 #, perl-format msgid "Importing page %i of %i" msgstr "Importerer side %i af %i" #: lib/Gscan2pdf/Document.pm:1613 msgid "Error extracting images from PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1692 msgid "Setting up PDF" msgstr "Sætter PDF op" #: lib/Gscan2pdf/Document.pm:1703 #, perl-format msgid "Saving page %i of %i" msgstr "Gemmer side %i af %i" #: lib/Gscan2pdf/Document.pm:1814 lib/Gscan2pdf/Document.pm:2136 #, perl-format msgid "Error compressing image: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1919 #, perl-format msgid "Error creating PDF image object: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1930 #, perl-format msgid "Error embedding file image in %s format to PDF: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1939 msgid "Closing PDF" msgstr "Lukker PDF" #: lib/Gscan2pdf/Document.pm:1955 #, perl-format msgid "Writing page %i of %i" msgstr "Skriver side %i af %i" #: lib/Gscan2pdf/Document.pm:2006 msgid "Error writing DjVu" msgstr "Fejl under skrivning af DjVu" #: lib/Gscan2pdf/Document.pm:2025 lib/Gscan2pdf/Document.pm:2227 #, perl-format msgid "Can't open file: %s" msgstr "Kan ikke åbne fil: %s" #: lib/Gscan2pdf/Document.pm:2050 msgid "Error adding text layer to DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2056 msgid "Closing DjVu" msgstr "Lukker DjVu" #: lib/Gscan2pdf/Document.pm:2063 msgid "Error closing DjVu" msgstr "Fejl under lukning af DjVu" #: lib/Gscan2pdf/Document.pm:2078 #, perl-format msgid "Converting image %i of %i to TIFF" msgstr "Konverterer billede %i af %i til TIFF" #: lib/Gscan2pdf/Document.pm:2105 msgid "Error writing TIFF" msgstr "Fejl under skrivning af TIFF" #: lib/Gscan2pdf/Document.pm:2121 msgid "Concatenating TIFFs" msgstr "" #: lib/Gscan2pdf/Document.pm:2140 msgid "Converting to PS" msgstr "" #: lib/Gscan2pdf/Document.pm:2200 lib/Gscan2pdf/Document.pm:2215 msgid "Error saving image" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:158 #, perl-format msgid "Scanning %i pages..." msgstr "Skanner %i sider..." #: lib/Gscan2pdf/Frontend/CLI.pm:163 #, perl-format msgid "Scanning page %i..." msgstr "Scanner side %i..." #: lib/Gscan2pdf/Frontend/CLI.pm:188 lib/Gscan2pdf/Frontend/CLI.pm:296 msgid "Scanner warming up" msgstr "Scanner varmer op" #: lib/Gscan2pdf/Frontend/CLI.pm:195 msgid "Document feeder out of documents" msgstr "Dokumentføder tom for dokumenter" #: lib/Gscan2pdf/Frontend/CLI.pm:212 lib/Gscan2pdf/Frontend/CLI.pm:325 msgid "Device busy" msgstr "Enhed optaget" #: lib/Gscan2pdf/Frontend/CLI.pm:218 lib/Gscan2pdf/Frontend/CLI.pm:330 msgid "Operation cancelled" msgstr "Operationen blev afbrudt" #: lib/Gscan2pdf/Frontend/CLI.pm:223 lib/Gscan2pdf/Frontend/CLI.pm:336 msgid "Unknown message: " msgstr "Ukendt meddelelse: " #: lib/Gscan2pdf/Page.pm:68 lib/Gscan2pdf/Page.pm:73 #, perl-format msgid "Error importing image %s: %s" msgstr "" #: lib/Gscan2pdf/PageRange.pm:33 msgid "Selected" msgstr "Markeret" #: lib/Gscan2pdf/PageRange.pm:58 msgid "active" msgstr "aktiv" #: lib/Gscan2pdf/Scanner/Dialog.pm:218 t/061_Scanner_Dialog.t:33 #: t/061_Scanner_Dialog.t:59 msgid "device-list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:496 t/061_Scanner_Dialog.t:139 #: t/061_Scanner_Dialog.t:174 t/062_Scanner_Dialog.t:50 #: t/062_Scanner_Dialog.t:75 msgid "current-scan-options" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:567 msgid "logger" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:650 t/05_Dialog.t:24 msgid "transient-for" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:716 msgid "device_list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:749 t/061_Scanner_Dialog.t:32 msgid "device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:751 msgid "Opening device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:760 msgid "Retrieving options" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:41 msgid "Layout" msgstr "Layout" #: lib/Gscan2pdf/Unpaper.pm:44 msgid "Single" msgstr "Enkelt" #: lib/Gscan2pdf/Unpaper.pm:46 msgid "One page per sheet, oriented upwards without rotation." msgstr "En side pr ark, vendt opad uden rotation." #: lib/Gscan2pdf/Unpaper.pm:49 msgid "Double" msgstr "Dobbelt" #: lib/Gscan2pdf/Unpaper.pm:51 msgid "" "Two pages per sheet, landscape orientation (one page on the left half, one " "page on the right half)." msgstr "" "To sider pr ark i landskabsorientering (én side på venstre halvdel, én side " "på højre halvdel)." #: lib/Gscan2pdf/Unpaper.pm:59 msgid "# Output pages" msgstr "# outputsider" #: lib/Gscan2pdf/Unpaper.pm:60 msgid "Number of pages to output." msgstr "Antal sider til output" #: lib/Gscan2pdf/Unpaper.pm:68 msgid "No deskew" msgstr "Ingen opretning" #: lib/Gscan2pdf/Unpaper.pm:69 msgid "Disable deskewing." msgstr "Slå opretning fra" #: lib/Gscan2pdf/Unpaper.pm:74 msgid "No mask scan" msgstr "Ingen maskedetektering" #: lib/Gscan2pdf/Unpaper.pm:75 msgid "Disable mask detection." msgstr "Slå maskedetektering fra." #: lib/Gscan2pdf/Unpaper.pm:80 msgid "No black filter" msgstr "Ingen sort-filter" #: lib/Gscan2pdf/Unpaper.pm:81 msgid "Disable black area scan." msgstr "Fravælg scanning for sort område." #: lib/Gscan2pdf/Unpaper.pm:86 msgid "No gray filter" msgstr "Ingen gråfilter" #: lib/Gscan2pdf/Unpaper.pm:87 msgid "Disable gray area scan." msgstr "Fravælg scan for gråt område" #: lib/Gscan2pdf/Unpaper.pm:92 msgid "No noise filter" msgstr "Ingen støjfilter" #: lib/Gscan2pdf/Unpaper.pm:93 msgid "Disable noise filter." msgstr "Fravælg støjfilter." #: lib/Gscan2pdf/Unpaper.pm:98 msgid "No blur filter" msgstr "Ingen blur-filter" #: lib/Gscan2pdf/Unpaper.pm:99 msgid "Disable blur filter." msgstr "Fravælg blur-filter." #: lib/Gscan2pdf/Unpaper.pm:104 msgid "No border scan" msgstr "Ingen kantscanning" #: lib/Gscan2pdf/Unpaper.pm:105 msgid "Disable border scanning." msgstr "Fravælg kantscanning." #: lib/Gscan2pdf/Unpaper.pm:110 msgid "No border align" msgstr "Ingen kantjustering" #: lib/Gscan2pdf/Unpaper.pm:112 msgid "Disable aligning of the area detected by border scanning." msgstr "Fravælg justering af det område kantscanningen detekterede." #: lib/Gscan2pdf/Unpaper.pm:117 msgid "Deskew to edge" msgstr "Ret op til kant" #: lib/Gscan2pdf/Unpaper.pm:119 msgid "" "Edges from which to scan for rotation. Each edge of a mask can be used to " "detect the mask's rotation. If multiple edges are specified, the average " "value will be used, unless the statistical deviation exceeds --deskew-scan-" "deviation." msgstr "" "Kanter hvorfra der skal scannes for rotation. Hver kant af en maske kan " "bruges til at finde maskens rotation. Hvis der vælges flere kanter bliver " "gennemsnitsværdien brugt, med mindre den statistiske afvigelse overskrider -" "deskew-scan-deviation." #: lib/Gscan2pdf/Unpaper.pm:125 msgid "Use 'left' for scanning from the left edge." msgstr "Brug 'venstre' for at scanne fra venstre kant." #: lib/Gscan2pdf/Unpaper.pm:130 msgid "Use 'top' for scanning from the top edge." msgstr "Brug 'top' for at scanne fra øverste kant." #: lib/Gscan2pdf/Unpaper.pm:134 lib/Gscan2pdf/Unpaper.pm:162 msgid "Right" msgstr "Højre" #: lib/Gscan2pdf/Unpaper.pm:135 msgid "Use 'right' for scanning from the right edge." msgstr "Brug 'højre' for at scanne fra højre kant." #: lib/Gscan2pdf/Unpaper.pm:139 lib/Gscan2pdf/Unpaper.pm:167 msgid "Bottom" msgstr "Bund" #: lib/Gscan2pdf/Unpaper.pm:140 msgid "Use 'bottom' for scanning from the bottom." msgstr "Brug 'bund' for at scanne fra nederste kant." #: lib/Gscan2pdf/Unpaper.pm:147 msgid "Align to edge" msgstr "Flugt med kant" #: lib/Gscan2pdf/Unpaper.pm:148 msgid "Edge to which to align the page." msgstr "Kant som siden skal flugte med." #: lib/Gscan2pdf/Unpaper.pm:153 msgid "Use 'left' to align to the left edge." msgstr "Brug 'venstre' for at flugte med venstre kant." #: lib/Gscan2pdf/Unpaper.pm:158 msgid "Use 'top' to align to the top edge." msgstr "Brug 'top' for at flugte med øverste kant." #: lib/Gscan2pdf/Unpaper.pm:163 msgid "Use 'right' to align to the right edge." msgstr "Brug 'højre' for at flugte med højre kant." #: lib/Gscan2pdf/Unpaper.pm:168 msgid "Use 'bottom' to align to the bottom." msgstr "Brug 'bund' for at flugte med nederste kant." #: lib/Gscan2pdf/Unpaper.pm:174 msgid "Border margin" msgstr "Kantmargen" #: lib/Gscan2pdf/Unpaper.pm:178 msgid "Vertical margin" msgstr "Lodret margen" #: lib/Gscan2pdf/Unpaper.pm:180 msgid "" "Vertical distance to keep from the sheet edge when aligning a border area." msgstr "Den lodrette afstand fra papirkanten når margenen rettes op." #: lib/Gscan2pdf/Unpaper.pm:189 msgid "Horizontal margin" msgstr "Vandret margen" #: lib/Gscan2pdf/Unpaper.pm:191 msgid "" "Horizontal distance to keep from the sheet edge when aligning a border area." msgstr "Den vandrette afstand fra papirkanten når margenen rettes op." #: lib/Gscan2pdf/Unpaper.pm:202 msgid "White threshold" msgstr "Hvid-tærskel" #: lib/Gscan2pdf/Unpaper.pm:204 msgid "Brightness ratio above which a pixel is considered white." msgstr "Mindste lysstyrkeforhold, der detekteres som hvide pixler." #: lib/Gscan2pdf/Unpaper.pm:212 msgid "Black threshold" msgstr "Sort-tærskel" #: lib/Gscan2pdf/Unpaper.pm:214 msgid "" "Brightness ratio below which a pixel is considered black (non-gray). This is " "used by the gray-filter. This value is also used when converting a grayscale " "image to black-and-white mode." msgstr "" "Største lysstyrkeforhold, der detekteres som sort (ikke-gråt). Dette bruges " "af gråfilteret. Værdien bruges også ved konvertering af et gråtonebillede " "til sort/hvidt." #: lib/Gscan2pdf/Unpaper.pm:250 msgid "Deskew" msgstr "Ret op" #: lib/Gscan2pdf/Unpaper.pm:280 msgid "Border" msgstr "Kant" #: lib/Gscan2pdf/Unpaper.pm:337 msgid "Filters" msgstr "Filtre" #: t/05_Dialog.t:23 msgid "title" msgstr "" #: t/05_Dialog.t:26 t/05_Dialog.t:31 t/05_Dialog.t:32 t/05_Dialog.t:38 #: t/05_Dialog.t:39 msgid "border-width" msgstr "" #: t/061_Scanner_Dialog.t:34 msgid "dir" msgstr "" #: t/061_Scanner_Dialog.t:36 msgid "max-pages" msgstr "" #: t/061_Scanner_Dialog.t:39 msgid "side-to-scan" msgstr "" #: t/061_Scanner_Dialog.t:40 t/061_Scanner_Dialog.t:185 msgid "available-scan-options" msgstr "" #: t/061_Scanner_Dialog.t:171 t/062_Scanner_Dialog.t:73 msgid "profile" msgstr "" gscan2pdf-1.2.3/po/gscan2pdf-nb.po0000644000175000017500000012615612243440507015230 0ustar jeffjeff# Norwegian Bokmal translation for gscan2pdf # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the gscan2pdf package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: gscan2pdf\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-10-25 08:12+0200\n" "PO-Revision-Date: 2009-01-18 20:11+0000\n" "Last-Translator: Roger Skjerping Urstad \n" "Language-Team: Norwegian Bokmal \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-19 09:22+0000\n" "X-Generator: Launchpad (build 16831)\n" #: bin/gscan2pdf:157 msgid "Error displaying help" msgstr "" #: bin/gscan2pdf:201 msgid "" "Error: unable to load settings.\n" "Backing up settings\n" "Reverting to defaults" msgstr "" "Feil: Kan ikke laste innstillinger\n" "Tilbakestiller innstillinger\n" "Går tilbake til standardinnstillinger" #: bin/gscan2pdf:244 msgid "A4" msgstr "A4" #: bin/gscan2pdf:250 msgid "US Letter" msgstr "US Letter" #: bin/gscan2pdf:256 msgid "US Legal" msgstr "US Legal" #: bin/gscan2pdf:323 bin/gscan2pdf:344 #, perl-format msgid "Cannot read file: %s" msgstr "" #: bin/gscan2pdf:451 msgid "_File" msgstr "_Fil" #: bin/gscan2pdf:454 msgid "_New" msgstr "_Ny" #: bin/gscan2pdf:455 msgid "Clears all pages" msgstr "Fjerner alle sider" #: bin/gscan2pdf:459 msgid "_Open" msgstr "_Åpne" #: bin/gscan2pdf:460 msgid "Open image file(s)" msgstr "" #: bin/gscan2pdf:465 msgid "S_can" msgstr "S_can" #: bin/gscan2pdf:467 msgid "Scan document" msgstr "Scan dokument" #: bin/gscan2pdf:471 bin/gscan2pdf:472 bin/gscan2pdf:2582 msgid "Save" msgstr "Lagre" #: bin/gscan2pdf:476 msgid "_Email as PDF" msgstr "_E-post som PDF" #: bin/gscan2pdf:477 msgid "Attach as PDF to a new email" msgstr "Legg ved som PDF til ny e-post" #: bin/gscan2pdf:480 msgid "_Print" msgstr "" #: bin/gscan2pdf:481 msgid "Print" msgstr "" #: bin/gscan2pdf:485 msgid "_Compress temporary files" msgstr "_Komprimér midlertidige filer" #: bin/gscan2pdf:486 msgid "Compress temporary files" msgstr "Komprimér midlertidige filer" #: bin/gscan2pdf:490 msgid "_Quit" msgstr "_Avslutt" #: bin/gscan2pdf:491 msgid "Quit" msgstr "Avslutt" #: bin/gscan2pdf:495 msgid "_Edit" msgstr "_Redigér" #: bin/gscan2pdf:497 msgid "_Undo" msgstr "_Angre" #: bin/gscan2pdf:497 msgid "Undo" msgstr "Angre" #: bin/gscan2pdf:501 msgid "_Redo" msgstr "_Gjenopprett" #: bin/gscan2pdf:502 msgid "Redo" msgstr "Gjenopprett" #: bin/gscan2pdf:506 msgid "Cu_t" msgstr "Klipp u_t" #: bin/gscan2pdf:507 msgid "Cut selection" msgstr "Klipp ut utvalg" #: bin/gscan2pdf:511 msgid "_Copy" msgstr "_Kopiér" #: bin/gscan2pdf:512 msgid "Copy selection" msgstr "Kopiér utvalg" #: bin/gscan2pdf:516 msgid "_Paste" msgstr "_Lim inn" #: bin/gscan2pdf:517 msgid "Paste selection" msgstr "Lim inn utvalg" #: bin/gscan2pdf:521 msgid "_Delete" msgstr "_Slett" #: bin/gscan2pdf:522 msgid "Delete selected pages" msgstr "Slett valgte sider" #: bin/gscan2pdf:526 msgid "_Renumber" msgstr "Omnumme_rer" #: bin/gscan2pdf:527 msgid "Renumber pages" msgstr "" #: bin/gscan2pdf:529 bin/gscan2pdf:679 msgid "_Select" msgstr "_Marker" #: bin/gscan2pdf:532 msgid "_All" msgstr "" #: bin/gscan2pdf:533 msgid "Select all pages" msgstr "Velg alle sider" #: bin/gscan2pdf:536 msgid "_Odd" msgstr "" #: bin/gscan2pdf:537 msgid "Select all odd-numbered pages" msgstr "Velg alle oddetallsider" #: bin/gscan2pdf:541 msgid "_Even" msgstr "" #: bin/gscan2pdf:542 msgid "Select all evenly-numbered pages" msgstr "Velg alle partallsider" #: bin/gscan2pdf:547 msgid "_Blank" msgstr "" #: bin/gscan2pdf:548 msgid "Select pages with low standard deviation" msgstr "" #: bin/gscan2pdf:552 msgid "_Dark" msgstr "" #: bin/gscan2pdf:553 msgid "Select dark pages" msgstr "" #: bin/gscan2pdf:558 msgid "_Modified" msgstr "" #: bin/gscan2pdf:560 msgid "Select modified pages since last OCR" msgstr "" #: bin/gscan2pdf:565 msgid "_No OCR" msgstr "" #: bin/gscan2pdf:566 msgid "Select pages with no OCR output" msgstr "" #: bin/gscan2pdf:570 msgid "_Clear OCR" msgstr "" #: bin/gscan2pdf:571 msgid "Clear OCR output from selected pages" msgstr "" #: bin/gscan2pdf:575 msgid "Propert_ies" msgstr "Egenskaper" #: bin/gscan2pdf:576 msgid "Edit image properties" msgstr "Endre bildeegenskaper" #: bin/gscan2pdf:580 msgid "Prefere_nces" msgstr "_Innstillinger" #: bin/gscan2pdf:581 msgid "Edit preferences" msgstr "Redigér innstillinger" #: bin/gscan2pdf:585 msgid "_View" msgstr "_Vis" #: bin/gscan2pdf:588 msgid "Zoom _100%" msgstr "Zoom _100%" #: bin/gscan2pdf:589 msgid "Zoom to 100%" msgstr "Zoom til 100%" #: bin/gscan2pdf:593 msgid "Zoom to _fit" msgstr "Zoom til_passet" #: bin/gscan2pdf:594 msgid "Zoom to fit" msgstr "Zoom _tilpasset" #: bin/gscan2pdf:598 msgid "Zoom _in" msgstr "Zoom _inn" #: bin/gscan2pdf:599 msgid "Zoom in" msgstr "Zoom inn" #: bin/gscan2pdf:603 msgid "Zoom _out" msgstr "Zoom _ut" #: bin/gscan2pdf:604 msgid "Zoom out" msgstr "Zoom ut" #: bin/gscan2pdf:609 bin/gscan2pdf:611 msgid "Rotate 90 clockwise" msgstr "Rotér 90 med klokka" #: bin/gscan2pdf:617 bin/gscan2pdf:619 msgid "Rotate 180" msgstr "Rotér 180" #: bin/gscan2pdf:625 bin/gscan2pdf:627 msgid "Rotate 90 anticlockwise" msgstr "Roter 90 mot klokka" #: bin/gscan2pdf:632 msgid "_Tools" msgstr "_Verktøy" #: bin/gscan2pdf:634 msgid "_Threshold" msgstr "_Terskel" #: bin/gscan2pdf:635 msgid "Change each pixel above this threshold to black" msgstr "Forandre hver pixel over denne terskelen til sort" #: bin/gscan2pdf:639 msgid "_Negate" msgstr "_Inverter" #: bin/gscan2pdf:640 msgid "Converts black to white and vice versa" msgstr "Gjør om svart til hvit og omvendt" #: bin/gscan2pdf:644 msgid "_Unsharp Mask" msgstr "_Uskarp-maske" #: bin/gscan2pdf:645 msgid "Apply an unsharp mask" msgstr "Legg til en uskarp-maske" #: bin/gscan2pdf:648 msgid "_Crop" msgstr "_Beskjær" #: bin/gscan2pdf:649 msgid "Crop pages" msgstr "Beskjær sider" #: bin/gscan2pdf:653 msgid "_Clean up" msgstr "_Rydd opp" #: bin/gscan2pdf:654 bin/gscan2pdf:4085 msgid "Clean up scanned images with unpaper" msgstr "Rydd opp skannede bilder med unpaper" #: bin/gscan2pdf:657 msgid "_OCR" msgstr "_OCR" #: bin/gscan2pdf:658 msgid "Optical Character Recognition" msgstr "Optisk tegngjenkjenning" #: bin/gscan2pdf:660 msgid "U_ser-defined" msgstr "" #: bin/gscan2pdf:663 bin/gscan2pdf:665 msgid "_Help" msgstr "_Hjelp" #: bin/gscan2pdf:666 msgid "Help" msgstr "Hjelp" #: bin/gscan2pdf:668 msgid "_About" msgstr "_Om" #: bin/gscan2pdf:674 msgid "_Drag" msgstr "_Dra" #: bin/gscan2pdf:675 msgid "Use the hand tool" msgstr "Bruk håndverktøyet" #: bin/gscan2pdf:680 msgid "Use the rectangular selection tool" msgstr "Anvend det rektangulæra markeringsverktøyet" #: bin/gscan2pdf:684 msgid "_Paint" msgstr "_Fyll" #: bin/gscan2pdf:685 msgid "Use the painter tool" msgstr "Anvend fyllverktøyet" #: bin/gscan2pdf:965 lib/Gscan2pdf/Document.pm:2594 #: lib/Gscan2pdf/Document.pm:2595 msgid "Error copying page" msgstr "Feil ved kopiering av side" #: bin/gscan2pdf:1082 msgid "Image" msgstr "" #: bin/gscan2pdf:1117 msgid "OCR Output" msgstr "" #: bin/gscan2pdf:1174 msgid "Mode" msgstr "Modus" #: bin/gscan2pdf:1176 msgid "Lineart" msgstr "Strektegning" #: bin/gscan2pdf:1177 msgid "Grayscale" msgstr "Gråtoner" #: bin/gscan2pdf:1178 msgid "Gray" msgstr "Grå" #: bin/gscan2pdf:1179 msgid "Color" msgstr "Farge" #: bin/gscan2pdf:1180 msgid "Black & White" msgstr "Svart-hvitt" #: bin/gscan2pdf:1181 msgid "True Gray" msgstr "Ekte gråfarge" #: bin/gscan2pdf:1182 msgid "Binary" msgstr "Binær" #: bin/gscan2pdf:1183 bin/gscan2pdf:1242 bin/gscan2pdf:1243 msgid "Auto" msgstr "Automatisk" #: bin/gscan2pdf:1184 msgid "Halftone" msgstr "Halvtone" #: bin/gscan2pdf:1185 msgid "24bit Color" msgstr "24-bit farge" #: bin/gscan2pdf:1189 bin/gscan2pdf:2547 bin/gscan2pdf:2644 msgid "Compression" msgstr "Komprimering" #: bin/gscan2pdf:1191 bin/gscan2pdf:2539 bin/gscan2pdf:2636 msgid "None" msgstr "Ingen" #: bin/gscan2pdf:1192 bin/gscan2pdf:2537 bin/gscan2pdf:2601 bin/gscan2pdf:2622 msgid "JPEG" msgstr "JPEG" #: bin/gscan2pdf:1195 bin/gscan2pdf:8127 msgid "Resolution" msgstr "Oppløsning" #: bin/gscan2pdf:1196 msgid "Brightness" msgstr "Lysstyrke" #: bin/gscan2pdf:1197 msgid "Gain" msgstr "Forsterk" #: bin/gscan2pdf:1198 msgid "Contrast" msgstr "Kontrast" #: bin/gscan2pdf:1199 bin/gscan2pdf:6406 bin/gscan2pdf:6417 bin/gscan2pdf:6620 msgid "Threshold" msgstr "Terskel" #: bin/gscan2pdf:1201 msgid "Speed" msgstr "Hastighet" #: bin/gscan2pdf:1203 bin/gscan2pdf:1210 bin/gscan2pdf:1217 bin/gscan2pdf:1224 #: bin/gscan2pdf:1231 msgid "Yes" msgstr "Ja" #: bin/gscan2pdf:1204 bin/gscan2pdf:1211 bin/gscan2pdf:1218 bin/gscan2pdf:1225 #: bin/gscan2pdf:1232 msgid "No" msgstr "Nei" #: bin/gscan2pdf:1208 msgid "Batch scan" msgstr "Volumskanning" #: bin/gscan2pdf:1215 bin/gscan2pdf:1222 msgid "Wait for button" msgstr "Vent på tast" #: bin/gscan2pdf:1229 msgid "Cache calibration" msgstr "Hurtiglager-kalibrering" #: bin/gscan2pdf:1236 msgid "Source" msgstr "Kilde" #: bin/gscan2pdf:1238 msgid "Normal" msgstr "Normal" #: bin/gscan2pdf:1239 msgid "ADF" msgstr "ADF" #: bin/gscan2pdf:1240 msgid "Automatic Document Feeder" msgstr "Automatisk dokumentmater" #: bin/gscan2pdf:1241 msgid "XPA" msgstr "XPA" #: bin/gscan2pdf:1244 msgid "Flatbed" msgstr "Flatbed" #: bin/gscan2pdf:1245 msgid "Transparency Adapter" msgstr "Transparent-adapter" #: bin/gscan2pdf:1246 msgid "Transparency Unit" msgstr "Transparent-enhet" #: bin/gscan2pdf:1249 bin/gscan2pdf:1251 msgid "Page Width" msgstr "Sidebredde" #: bin/gscan2pdf:1250 bin/gscan2pdf:1252 msgid "Page Height" msgstr "Sidehøyde" #: bin/gscan2pdf:1253 msgid "Top Overscan" msgstr "" #: bin/gscan2pdf:1254 msgid "Bottom Overscan" msgstr "" #: bin/gscan2pdf:1256 bin/gscan2pdf:1263 msgid "ADF Mode" msgstr "ADF-modus" #: bin/gscan2pdf:1258 bin/gscan2pdf:1265 msgid "Simplex" msgstr "Enkelsidig" #: bin/gscan2pdf:1259 bin/gscan2pdf:1266 msgid "Duplex" msgstr "Dobbeltsidig" #: bin/gscan2pdf:1301 bin/gscan2pdf:1306 msgid "Pick crashed session to restore" msgstr "" #: bin/gscan2pdf:1308 bin/gscan2pdf:2609 msgid "Session" msgstr "Sesjon" #: bin/gscan2pdf:1338 #, perl-format msgid "" "Warning: unable to use %s for temporary storage. Defaulting to %s instead." msgstr "" #: bin/gscan2pdf:1441 msgid "GOCR" msgstr "GOCR" #: bin/gscan2pdf:1441 msgid "Process image with GOCR." msgstr "Behandle bilde med GOCR:" #: bin/gscan2pdf:1445 msgid "Tesseract" msgstr "Tesseract" #: bin/gscan2pdf:1446 msgid "Process image with Tesseract." msgstr "Behandle bilde med Tesseract." #: bin/gscan2pdf:1450 msgid "Ocropus" msgstr "" #: bin/gscan2pdf:1450 msgid "Process image with Ocropus." msgstr "" #: bin/gscan2pdf:1454 msgid "Cuneiform" msgstr "" #: bin/gscan2pdf:1455 msgid "Process image with Cuneiform." msgstr "" #: bin/gscan2pdf:1461 msgid "Save image and Save as PDF both require imagemagick\n" msgstr "Lagre bilde og Lagre som PDF avhenger av imagemagick\n" #: bin/gscan2pdf:1465 msgid "Save image requires libtiff\n" msgstr "Lagre bilde avhenger av libtiff\n" #: bin/gscan2pdf:1469 msgid "Save as DjVu requires djvulibre-bin\n" msgstr "Lagre som DjVu avhenger av djvulibre-bin\n" #: bin/gscan2pdf:1473 msgid "Email as PDF requires xdg-email\n" msgstr "Send e-post som PDF avhenger av xdg-email\n" #: bin/gscan2pdf:1518 msgid "The rotating options and unpaper support require perlmagick\n" msgstr "Rotasjonsvalg og skjermtilpasningstøtte trenger perlmagick\n" #: bin/gscan2pdf:1524 msgid "unpaper missing\n" msgstr "Programmet unpaper mangler\n" #: bin/gscan2pdf:1534 msgid "OCR requires gocr, tesseract, ocropus, or cuneiform\n" msgstr "" #: bin/gscan2pdf:1539 msgid "Warning: missing packages" msgstr "Advarsel: pakker mangler" #: bin/gscan2pdf:1544 msgid "Don't show this message again" msgstr "Ikke vis denne meldingen igjen" #: bin/gscan2pdf:1753 msgid "" "Some pages have not been saved.\n" "Do you really want to clear all pages?" msgstr "" #: bin/gscan2pdf:1828 bin/gscan2pdf:1858 #, perl-format msgid "Process %i of %i (%s)" msgstr "" #: bin/gscan2pdf:1867 #, perl-format msgid "Process %i of %i" msgstr "" #: bin/gscan2pdf:1895 msgid "Open image" msgstr "" #: bin/gscan2pdf:1903 bin/gscan2pdf:2797 bin/gscan2pdf:3113 msgid "Image files" msgstr "" #: bin/gscan2pdf:1940 msgid "Pages to extract" msgstr "Sider å trekke ut" #: bin/gscan2pdf:1943 bin/gscan2pdf:2117 bin/gscan2pdf:2586 bin/gscan2pdf:3353 #: bin/gscan2pdf:3494 bin/gscan2pdf:4104 bin/gscan2pdf:4514 bin/gscan2pdf:5825 #: bin/gscan2pdf:6409 bin/gscan2pdf:6495 bin/gscan2pdf:6565 bin/gscan2pdf:6737 #: bin/gscan2pdf:7011 bin/gscan2pdf:7274 bin/gscan2pdf:7757 bin/gscan2pdf:8123 #: lib/Gscan2pdf/Dialog.pm:56 lib/Gscan2pdf/Dialog/Renumber.pm:80 #: lib/Gscan2pdf/Scanner/Dialog.pm:201 t/05_Dialog.t:28 msgid "vbox" msgstr "" #: bin/gscan2pdf:1946 msgid "First page to extract" msgstr "Første side å trekke ut" #: bin/gscan2pdf:1953 msgid "Last page to extract" msgstr "Siste side å trekke ut" #: bin/gscan2pdf:2042 lib/Gscan2pdf/Dialog/Renumber.pm:83 msgid "Page Range" msgstr "Sideomfang" #: bin/gscan2pdf:2092 msgid "Metadata" msgstr "Metadata" #: bin/gscan2pdf:2101 msgid "Date" msgstr "Dato" #: bin/gscan2pdf:2114 msgid "Select Date" msgstr "Velg dato" #: bin/gscan2pdf:2136 msgid "Today" msgstr "I dag" #: bin/gscan2pdf:2150 msgid "Year-Month-Day" msgstr "År-Måned-Dag" #: bin/gscan2pdf:2156 msgid "Document author" msgstr "Dokumentforfatter" #: bin/gscan2pdf:2165 msgid "Title" msgstr "Tittel" #: bin/gscan2pdf:2174 msgid "Subject" msgstr "Emne" #: bin/gscan2pdf:2183 msgid "Keywords" msgstr "Nøkkelord" #: bin/gscan2pdf:2245 msgid "Editing text" msgstr "" #: bin/gscan2pdf:2252 bin/gscan2pdf:2258 bin/gscan2pdf:2332 msgid "text" msgstr "" #: bin/gscan2pdf:2352 msgid "PDF filename" msgstr "PDF-filnavn" #: bin/gscan2pdf:2381 msgid "PDF files" msgstr "" #: bin/gscan2pdf:2405 bin/gscan2pdf:2823 bin/gscan2pdf:2880 bin/gscan2pdf:2976 #: bin/gscan2pdf:3035 bin/gscan2pdf:3087 bin/gscan2pdf:3275 #, perl-format msgid "File %s is read-only" msgstr "Filen %s er skrivebeskyttet" #: bin/gscan2pdf:2482 msgid "JPEG Quality" msgstr "JPEG-kvalitet" #: bin/gscan2pdf:2496 msgid "Downsample to" msgstr "Nedsampling til" #: bin/gscan2pdf:2501 msgid "PPI" msgstr "" #: bin/gscan2pdf:2520 msgid "Automatic" msgstr "Automatisk" #: bin/gscan2pdf:2521 msgid "Let gscan2pdf which type of compression to use." msgstr "" "La gscan2pdf bestemme hvilken type av komprimering som skal anvendes." #: bin/gscan2pdf:2524 bin/gscan2pdf:2616 msgid "LZW" msgstr "LZW" #: bin/gscan2pdf:2525 bin/gscan2pdf:2617 msgid "Compress output with Lempel-Ziv & Welch encoding." msgstr "Komprimér med Lempel-Ziv & Welch-koding." #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Zip" msgstr "Zip" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Compress output with deflate encoding." msgstr "Komprimér med Deflate-koding." #: bin/gscan2pdf:2529 bin/gscan2pdf:2624 msgid "Packbits" msgstr "Packbits" #: bin/gscan2pdf:2530 bin/gscan2pdf:2625 msgid "Compress output with Packbits encoding." msgstr "Komprimér med Packbits-koding." #: bin/gscan2pdf:2536 bin/gscan2pdf:2604 msgid "PNG" msgstr "PNG" #: bin/gscan2pdf:2536 msgid "Compress output with PNG encoding." msgstr "Komprimér med PNG-koding." #: bin/gscan2pdf:2537 bin/gscan2pdf:2622 msgid "Compress output with JPEG encoding." msgstr "Komprimér med JPEG-koding." #: bin/gscan2pdf:2540 bin/gscan2pdf:2637 msgid "Use no compression algorithm on output." msgstr "Ikke bruk komprimering." #: bin/gscan2pdf:2594 msgid "Image type" msgstr "Bildetype" #: bin/gscan2pdf:2598 msgid "PDF" msgstr "PDF" #: bin/gscan2pdf:2598 msgid "Portable Document Format" msgstr "Portable Document Format" #: bin/gscan2pdf:2599 msgid "GIF" msgstr "GIF" #: bin/gscan2pdf:2599 msgid "CompuServe graphics interchange format" msgstr "CompuServe graphics interchange format" #: bin/gscan2pdf:2602 msgid "Joint Photographic Experts Group JFIF format" msgstr "" "Copy text \t\r\n" "Joint Photographic Experts Group JFIF format" #: bin/gscan2pdf:2604 msgid "Portable Network Graphics" msgstr "Portable Network Graphics" #: bin/gscan2pdf:2605 msgid "PNM" msgstr "PNM" #: bin/gscan2pdf:2605 msgid "Portable anymap" msgstr "Portable anymap" #: bin/gscan2pdf:2606 msgid "PS" msgstr "PS" #: bin/gscan2pdf:2606 msgid "Postscript" msgstr "Postscript" #: bin/gscan2pdf:2607 msgid "TIFF" msgstr "TIFF" #: bin/gscan2pdf:2607 msgid "Tagged Image File Format" msgstr "Tagged Image File Format" #: bin/gscan2pdf:2608 msgid "Text" msgstr "Tekst" #: bin/gscan2pdf:2608 msgid "Plain text" msgstr "Vanlig tekst" #: bin/gscan2pdf:2609 msgid "gscan2pdf session file" msgstr "gscan2pdf sesjonsfil" #: bin/gscan2pdf:2611 msgid "DjVu" msgstr "DjVu" #: bin/gscan2pdf:2611 msgid "Deja Vu" msgstr "Deja Vu" #: bin/gscan2pdf:2628 msgid "G3" msgstr "G3" #: bin/gscan2pdf:2629 msgid "Compress output with CCITT Group 3 encoding." msgstr "Komprimér med CCITT Group 3-koding." #: bin/gscan2pdf:2632 msgid "G4" msgstr "G4" #: bin/gscan2pdf:2633 msgid "Compress output with CCITT Group 4 encoding." msgstr "Komprimér med CCITT Group 4-koding." #: bin/gscan2pdf:2649 msgid "tiff" msgstr "tiff" #: bin/gscan2pdf:2681 msgid "Font for non-ASCII text" msgstr "" #: bin/gscan2pdf:2790 msgid "TIFF filename" msgstr "TIFF-filnavn" #: bin/gscan2pdf:2848 msgid "Text filename" msgstr "Tekstfilnavn" #: bin/gscan2pdf:2856 msgid "Text files" msgstr "" #: bin/gscan2pdf:2944 msgid "PS filename" msgstr "PS-filnavn" #: bin/gscan2pdf:2951 msgid "Postscript files" msgstr "" #: bin/gscan2pdf:3003 msgid "gscan2pdf session filename" msgstr "filnavnet på gscan2pdfs sessjon" #: bin/gscan2pdf:3010 msgid "gscan2pdf session files" msgstr "" #: bin/gscan2pdf:3093 #, perl-format msgid "" "File %s exists.\n" "Really overwrite?" msgstr "" "Filen %s finnes fra før.\n" "Overskriv den?" #: bin/gscan2pdf:3106 msgid "Image filename" msgstr "Bildefilnavn" #: bin/gscan2pdf:3245 msgid "DjVu filename" msgstr "DjVu-filnavn" #: bin/gscan2pdf:3252 msgid "DjVu files" msgstr "" #: bin/gscan2pdf:3349 msgid "Email as PDF" msgstr "Send PDF som e-post" #: bin/gscan2pdf:3454 msgid "Error creating email" msgstr "" #: bin/gscan2pdf:3490 bin/gscan2pdf:4313 msgid "Scan Document" msgstr "Skann dokument" #: bin/gscan2pdf:3507 lib/Gscan2pdf/Scanner/Dialog.pm:248 msgid "Page Options" msgstr "Sidevalg" #: bin/gscan2pdf:3510 lib/Gscan2pdf/Scanner/Dialog.pm:251 msgid "# Pages" msgstr "# Sider" #: bin/gscan2pdf:3519 lib/Gscan2pdf/PageRange.pm:34 #: lib/Gscan2pdf/Scanner/Dialog.pm:261 msgid "All" msgstr "Alle" #: bin/gscan2pdf:3520 lib/Gscan2pdf/Scanner/Dialog.pm:262 msgid "Scan all pages" msgstr "Skann alle sider" #: bin/gscan2pdf:3532 bin/gscan2pdf:3537 lib/Gscan2pdf/Scanner/Dialog.pm:274 #: lib/Gscan2pdf/Scanner/Dialog.pm:279 msgid "Set number of pages to scan" msgstr "Sett antall sider som skal skannes" #: bin/gscan2pdf:3550 lib/Gscan2pdf/Scanner/Dialog.pm:308 msgid "Extended page numbering" msgstr "Utvidet sidenummerering" #: bin/gscan2pdf:3554 lib/Gscan2pdf/Scanner/Dialog.pm:312 msgid "Page number" msgstr "Sidetall" #: bin/gscan2pdf:3563 lib/Gscan2pdf/Dialog/Renumber.pm:111 #: lib/Gscan2pdf/Scanner/Dialog.pm:321 msgid "Start" msgstr "Start" #: bin/gscan2pdf:3572 lib/Gscan2pdf/Dialog/Renumber.pm:132 #: lib/Gscan2pdf/Scanner/Dialog.pm:340 msgid "Increment" msgstr "Stegverdi" #: bin/gscan2pdf:3604 lib/Gscan2pdf/Scanner/Dialog.pm:372 msgid "Source document" msgstr "Kildedokument" #: bin/gscan2pdf:3611 lib/Gscan2pdf/Scanner/Dialog.pm:379 msgid "Single sided" msgstr "Enkeltsidig" #: bin/gscan2pdf:3612 lib/Gscan2pdf/Scanner/Dialog.pm:380 msgid "Source document is single-sided" msgstr "Kildedokument er enkeltsidig" #: bin/gscan2pdf:3622 lib/Gscan2pdf/Scanner/Dialog.pm:390 msgid "Double sided" msgstr "Dobbeltsidig" #: bin/gscan2pdf:3623 lib/Gscan2pdf/Scanner/Dialog.pm:391 msgid "Source document is double-sided" msgstr "Kildedokumentet er dobbeltsidig" #: bin/gscan2pdf:3629 lib/Gscan2pdf/Scanner/Dialog.pm:397 msgid "Side to scan" msgstr "Side som skal skannes" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Facing" msgstr "Forside" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Reverse" msgstr "Bakside" #: bin/gscan2pdf:3655 lib/Gscan2pdf/Scanner/Dialog.pm:418 msgid "Sets which side of a double-sided document is scanned" msgstr "Setter hvilke side av et dobbeltsidig dokument som skal skannes" #: bin/gscan2pdf:3719 msgid "Scan Options" msgstr "Skann-innstillinger" #: bin/gscan2pdf:3722 msgid "Device-dependent options" msgstr "Enhetsavhengige innstiller" #: bin/gscan2pdf:3729 lib/Gscan2pdf/Scanner/Dialog.pm:458 msgid "Scan profiles" msgstr "Skann profiler" #: bin/gscan2pdf:3778 bin/gscan2pdf:3784 lib/Gscan2pdf/Scanner/Dialog.pm:479 #: lib/Gscan2pdf/Scanner/Dialog.pm:485 msgid "Name of scan profile" msgstr "" #: bin/gscan2pdf:3828 lib/Gscan2pdf/Scanner/Dialog.pm:518 msgid "Scan" msgstr "Skann" #: bin/gscan2pdf:3866 msgid "Must scan facing pages first" msgstr "Må skanne forside først" #: bin/gscan2pdf:3977 msgid "Post-processing" msgstr "Etterbehandling" #: bin/gscan2pdf:3986 bin/gscan2pdf:4008 msgid "Rotate" msgstr "Rotér" #: bin/gscan2pdf:3987 bin/gscan2pdf:4009 msgid "Rotate image after scanning" msgstr "Rotér bilde etter skanning" #: bin/gscan2pdf:3990 msgid "Both sides" msgstr "Begge sider" #: bin/gscan2pdf:3990 msgid "Both sides." msgstr "Begge sider." #: bin/gscan2pdf:3991 msgid "Facing side" msgstr "Forside" #: bin/gscan2pdf:3991 msgid "Facing side." msgstr "Forside." #: bin/gscan2pdf:3992 msgid "Reverse side" msgstr "Bakside" #: bin/gscan2pdf:3992 msgid "Reverse side." msgstr "Bakside." #: bin/gscan2pdf:3995 bin/gscan2pdf:4013 msgid "Select side to rotate" msgstr "Velg side som skal roteres" #: bin/gscan2pdf:3998 msgid "90" msgstr "90" #: bin/gscan2pdf:3998 msgid "Rotate image 90 degrees clockwise." msgstr "Rotér bilde 90 grader med klokka." #: bin/gscan2pdf:3999 msgid "180" msgstr "180" #: bin/gscan2pdf:3999 msgid "Rotate image 180 degrees clockwise." msgstr "Rotér bilde 180 grader med klokka." #: bin/gscan2pdf:4000 msgid "270" msgstr "270" #: bin/gscan2pdf:4000 msgid "Rotate image 90 degrees anticlockwise." msgstr "Rotér bilde 90 grader mot klokka." #: bin/gscan2pdf:4003 bin/gscan2pdf:4016 msgid "Select direction of rotation" msgstr "Velg roteringsretning" #: bin/gscan2pdf:4083 msgid "Clean up images" msgstr "Rydd opp bilder" #: bin/gscan2pdf:4094 msgid "Options" msgstr "Alternativer" #: bin/gscan2pdf:4095 msgid "Set unpaper options" msgstr "Sett unpaper-alternativer" #: bin/gscan2pdf:4101 msgid "unpaper options" msgstr "unpaper-alternativer" #: bin/gscan2pdf:4136 bin/gscan2pdf:4137 msgid "OCR scanned pages" msgstr "Bruk OCR på skannede sider" #: bin/gscan2pdf:4151 msgid "Select OCR engine" msgstr "Velg OCR-motor" #: bin/gscan2pdf:4210 lib/Gscan2pdf/Scanner/Dialog.pm:634 msgid "Fetching list of devices" msgstr "Henter enhetsliste" #: bin/gscan2pdf:4225 lib/Gscan2pdf/Scanner/Dialog.pm:654 msgid "No devices found" msgstr "" #: bin/gscan2pdf:4367 bin/gscan2pdf:4732 bin/gscan2pdf:4777 bin/gscan2pdf:5214 #: lib/Gscan2pdf/Scanner/Dialog.pm:343 lib/Gscan2pdf/Scanner/Dialog.pm:348 #: t/061_Scanner_Dialog.t:38 t/061_Scanner_Dialog.t:95 msgid "page-number-increment" msgstr "" #: bin/gscan2pdf:4374 bin/gscan2pdf:4729 bin/gscan2pdf:4730 bin/gscan2pdf:4776 #: bin/gscan2pdf:5213 lib/Gscan2pdf/Scanner/Dialog.pm:361 #: t/061_Scanner_Dialog.t:37 msgid "page-number-start" msgstr "" #: bin/gscan2pdf:4663 lib/Gscan2pdf/Scanner/Dialog.pm:210 msgid "Device" msgstr "Enhet" #: bin/gscan2pdf:4671 lib/Gscan2pdf/Scanner/Dialog.pm:213 msgid "Rescan for devices" msgstr "" #: bin/gscan2pdf:4694 lib/Gscan2pdf/Scanner/Dialog.pm:237 msgid "Sets the device to be used for the scan" msgstr "Velger enheten som skal brukes til skanning" #: bin/gscan2pdf:4780 lib/Gscan2pdf/Scanner/Dialog.pm:300 #: t/061_Scanner_Dialog.t:35 msgid "num-pages" msgstr "" #: bin/gscan2pdf:4821 msgid "Scanning" msgstr "Skanner" #: bin/gscan2pdf:4974 msgid "Unable to load image" msgstr "Klarte ikke hente bildet" #: bin/gscan2pdf:5004 msgid "print-pages" msgstr "" #: bin/gscan2pdf:5008 msgid "page-ranges" msgstr "" #: bin/gscan2pdf:5405 msgid "Patches gratefully received from:" msgstr "Kodebidrag takknemlig mottatt fra:" #: bin/gscan2pdf:5407 msgid "To aid the scan-to-PDF process" msgstr "For å hjelpe med skann-til-PDF-prosessen" #: bin/gscan2pdf:5408 msgid "Copyright 2006--2012 Jeffrey Ratcliffe" msgstr "" #: bin/gscan2pdf:5492 bin/gscan2pdf:6028 msgid "The options cache seems to be empty. Reload device-dependent options?" msgstr "" #: bin/gscan2pdf:5519 bin/gscan2pdf:6054 msgid "Updating options" msgstr "Oppdaterer innstillinger" #: bin/gscan2pdf:5571 msgid "Paper size" msgstr "Papirstørrelse" #: bin/gscan2pdf:5572 bin/gscan2pdf:5672 bin/gscan2pdf:5840 bin/gscan2pdf:6769 msgid "Width" msgstr "Bredde" #: bin/gscan2pdf:5573 bin/gscan2pdf:5678 bin/gscan2pdf:5841 bin/gscan2pdf:6780 msgid "Height" msgstr "Høyde" #: bin/gscan2pdf:5574 bin/gscan2pdf:5684 bin/gscan2pdf:5842 #: lib/Gscan2pdf/Unpaper.pm:124 lib/Gscan2pdf/Unpaper.pm:152 msgid "Left" msgstr "Venstre" #: bin/gscan2pdf:5575 bin/gscan2pdf:5690 bin/gscan2pdf:5843 #: lib/Gscan2pdf/Unpaper.pm:129 lib/Gscan2pdf/Unpaper.pm:157 msgid "Top" msgstr "Øverst" #: bin/gscan2pdf:5589 bin/gscan2pdf:5703 bin/gscan2pdf:6232 msgid "Manual" msgstr "Manuell" #: bin/gscan2pdf:5590 bin/gscan2pdf:5700 msgid "Edit" msgstr "Redigér" #: bin/gscan2pdf:5591 msgid "Selects or edits the paper size" msgstr "Velger eller redigerer papirstørrelse" #: bin/gscan2pdf:5673 msgid "Width of scan area" msgstr "Skannområdets bredde" #: bin/gscan2pdf:5679 msgid "Height of scan area" msgstr "Skannområdets høyde" #: bin/gscan2pdf:5685 msgid "Top-left x position of scan area" msgstr "Topp-venstre x-posisjon av skannområde" #: bin/gscan2pdf:5691 msgid "Top-left y position of scan area" msgstr "Topp-venstre y-posisjon av skannområde" #: bin/gscan2pdf:5822 msgid "Edit paper size" msgstr "Rediger papirstørrelse" #: bin/gscan2pdf:5839 msgid "Name" msgstr "Navn" #: bin/gscan2pdf:5893 msgid "Cannot delete all paper sizes" msgstr "Kan ikke slette alle papirstørrelser" #: bin/gscan2pdf:5955 msgid "" "The following paper sizes are too big to be scanned by the selected device:" msgstr "" "Følgende papirstørrelser er for store til å skannes av den valgte enheten:" #: bin/gscan2pdf:6419 bin/gscan2pdf:6605 msgid "%" msgstr "%" #: bin/gscan2pdf:6492 msgid "Negate" msgstr "Inverter farger" #: bin/gscan2pdf:6562 msgid "Unsharp mask" msgstr "Uskarp-maske" #: bin/gscan2pdf:6573 msgid "Radius" msgstr "Radius" #: bin/gscan2pdf:6575 bin/gscan2pdf:6592 bin/gscan2pdf:6747 bin/gscan2pdf:6759 #: bin/gscan2pdf:6771 bin/gscan2pdf:6782 msgid "pixels" msgstr "piksler" #: bin/gscan2pdf:6582 msgid "" "The radius of the Gaussian, in pixels, not counting the center pixel (0 = " "automatic)." msgstr "" "Radiusen til Gaussian-utydeliggjøringen, ikke medregnet senterpiksel (0 = " "automatisk)." #: bin/gscan2pdf:6590 msgid "Sigma" msgstr "Sigma" #: bin/gscan2pdf:6597 msgid "The standard deviation of the Gaussian." msgstr "Gaussian-uttydeliggjøringens standardavvik" #: bin/gscan2pdf:6603 msgid "Amount" msgstr "Mengde" #: bin/gscan2pdf:6612 msgid "" "The percentage of the difference between the original and the blur image " "that is added back into the original." msgstr "" "Prosenten av forskjellen mellom originalt og utydeliggjort bilde som skal " "tilføyes tilbake til originalen." #: bin/gscan2pdf:6627 msgid "" "The threshold, as a fraction of QuantumRange, needed to apply the difference " "amount." msgstr "" "Terskelen, som en fraksjon av Quantumrange, trengte legge til " "differansemengden." #: bin/gscan2pdf:6733 msgid "Crop" msgstr "Beskjær" #: bin/gscan2pdf:6745 msgid "x" msgstr "" #: bin/gscan2pdf:6751 msgid "The x-position of the left hand edge of the crop." msgstr "" #: bin/gscan2pdf:6757 msgid "y" msgstr "" #: bin/gscan2pdf:6763 msgid "The y-position of the top edge of the crop." msgstr "" #: bin/gscan2pdf:6774 msgid "The width of the crop." msgstr "" #: bin/gscan2pdf:6785 msgid "The height of the crop." msgstr "" #: bin/gscan2pdf:6906 msgid "label" msgstr "" #: bin/gscan2pdf:7007 msgid "unpaper" msgstr "unpaper" #: bin/gscan2pdf:7216 bin/gscan2pdf:7244 msgid "Language to recognise" msgstr "Språk som skal gjenkjennes" #: bin/gscan2pdf:7227 msgid "English" msgstr "Engelsk" #: bin/gscan2pdf:7270 msgid "OCR" msgstr "OCR" #: bin/gscan2pdf:7279 msgid "OCR Engine" msgstr "OCR-motor" #: bin/gscan2pdf:7323 msgid "Start OCR" msgstr "Start OCR" #: bin/gscan2pdf:7339 msgid "No page selected" msgstr "Ingen side valgt" #: bin/gscan2pdf:7374 msgid "" "Some pages have not been saved.\n" "Do you really want to quit?" msgstr "" "Noen sider har ikke blitt lagret.\n" "Vil du virkelig avslutte?" #: bin/gscan2pdf:7432 #, perl-format msgid "" "The help viewer requires module Gtk2::Ex::PodViewer\n" "Alternatively, try: %s %s\n" "\n" msgstr "" "Hjelpefunksjonen trenger modulen Gtk2::Ex::PodViewer\n" "Du kan som alternativ prøve %s %s\n" "\n" #: bin/gscan2pdf:7698 msgid "This operation cannot be undone. Are you sure?" msgstr "Denne handlingen kan ikke angres. Er du sikker?" #: bin/gscan2pdf:7753 msgid "Preferences" msgstr "" #: bin/gscan2pdf:7762 msgid "Frontend" msgstr "" #: bin/gscan2pdf:7766 msgid "libsane-perl" msgstr "" #: bin/gscan2pdf:7767 msgid "Scan using the perl bindings for SANE." msgstr "" #: bin/gscan2pdf:7770 msgid "scanimage" msgstr "" #: bin/gscan2pdf:7771 msgid "Scan using the scanimage frontend." msgstr "" #: bin/gscan2pdf:7775 msgid "scanimage-perl" msgstr "" #: bin/gscan2pdf:7776 msgid "Scan using the scanimage-perl frontend." msgstr "" #: bin/gscan2pdf:7779 msgid "scanadf-perl" msgstr "" #: bin/gscan2pdf:7780 msgid "Scan using the scanadf-perl frontend." msgstr "" #: bin/gscan2pdf:7785 msgid "scanadf" msgstr "" #: bin/gscan2pdf:7786 msgid "Scan using the scanadf frontend." msgstr "" #: bin/gscan2pdf:7791 msgid "Cycle SANE handle after scan" msgstr "" #: bin/gscan2pdf:7814 msgid "Default filename for PDFs" msgstr "" #: bin/gscan2pdf:7820 msgid "" "%a\t author\n" "%t\t title\n" "%y\t document's year\n" "%Y\t today's year\n" "%m\t document's month\n" "%M\t today's month\n" "%d\t document's day\n" "%D\t today's day" msgstr "" #: bin/gscan2pdf:7830 msgid "Scan command prefix" msgstr "" #: bin/gscan2pdf:7839 msgid "Restore window settings on startup" msgstr "" #: bin/gscan2pdf:7845 msgid "Cache device-dependent options" msgstr "" #: bin/gscan2pdf:7851 msgid "Clear device-dependent options cache" msgstr "" #: bin/gscan2pdf:7862 msgid "Temporary directory" msgstr "" #: bin/gscan2pdf:7867 msgid "Browse" msgstr "" #: bin/gscan2pdf:7871 msgid "Select temporary directory" msgstr "" #: bin/gscan2pdf:7888 msgid "Blank threshold" msgstr "" #: bin/gscan2pdf:7893 msgid "Threshold used for selecting blank pages" msgstr "" #: bin/gscan2pdf:7899 msgid "Dark threshold" msgstr "" #: bin/gscan2pdf:7904 msgid "Threshold used for selecting dark pages" msgstr "" #: bin/gscan2pdf:7910 msgid "OCR output" msgstr "" #: bin/gscan2pdf:7915 msgid "Replace" msgstr "" #: bin/gscan2pdf:7917 msgid "" "Replace the contents of the text buffer with that from the OCR output." msgstr "" #: bin/gscan2pdf:7920 msgid "Prepend" msgstr "" #: bin/gscan2pdf:7921 msgid "Prepend the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7924 msgid "Append" msgstr "" #: bin/gscan2pdf:7925 msgid "Append the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7933 msgid "User-defined tools" msgstr "" #: bin/gscan2pdf:7954 msgid "View files on saving" msgstr "" #: bin/gscan2pdf:8000 msgid "" "You will have to restart gscanp2df for changes to the temporary directory to " "take effect." msgstr "" "Du må starte gscan2pdf på nytt for at programmet skal anvende den nye " "midlertidige lagringsplassen." #: bin/gscan2pdf:8092 msgid "" "Use %i and %o for the input and output filenames respectively, or a single " "%i if the image is to be modified in-place.\n" "\n" "The other variable available is:\n" "\n" "%r resolution" msgstr "" #: bin/gscan2pdf:8119 msgid "Properties" msgstr "Egenskaper" #: lib/Gscan2pdf/Dialog.pm:63 lib/Gscan2pdf/Dialog.pm:79 t/05_Dialog.t:25 msgid "hide-on-delete" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:78 lib/Gscan2pdf/Dialog/Renumber.pm:162 msgid "Renumber" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:98 lib/Gscan2pdf/Dialog/Renumber.pm:207 #: lib/Gscan2pdf/Dialog/Renumber.pm:244 msgid "range" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:102 msgid "Page numbering" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:105 lib/Gscan2pdf/Scanner/Dialog.pm:254 msgid "border_width" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:126 lib/Gscan2pdf/Dialog/Renumber.pm:192 #: lib/Gscan2pdf/Dialog/Renumber.pm:242 t/07_Dialog_Renumber.t:33 #: t/07_Dialog_Renumber.t:45 t/07_Dialog_Renumber.t:59 #: t/07_Dialog_Renumber.t:66 msgid "start" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:147 lib/Gscan2pdf/Dialog/Renumber.pm:193 #: lib/Gscan2pdf/Dialog/Renumber.pm:243 t/07_Dialog_Renumber.t:34 #: t/07_Dialog_Renumber.t:46 t/07_Dialog_Renumber.t:60 #: t/07_Dialog_Renumber.t:67 msgid "increment" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:205 lib/Gscan2pdf/Dialog/Renumber.pm:241 msgid "document" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:295 msgid "" "The current settings would result in duplicate page numbers. Please select " "new start and increment values." msgstr "" #: lib/Gscan2pdf/Document.pm:83 msgid "Thumbnails" msgstr "" #: lib/Gscan2pdf/Document.pm:1502 msgid "Unknown DjVu file structure. Please contact the author." msgstr "" #: lib/Gscan2pdf/Document.pm:1558 #, perl-format msgid "%s is not a recognised image type" msgstr "" #: lib/Gscan2pdf/Document.pm:1580 lib/Gscan2pdf/Document.pm:1637 #, perl-format msgid "Importing page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:1613 msgid "Error extracting images from PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1692 msgid "Setting up PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1703 #, perl-format msgid "Saving page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:1814 lib/Gscan2pdf/Document.pm:2136 #, perl-format msgid "Error compressing image: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1919 #, perl-format msgid "Error creating PDF image object: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1930 #, perl-format msgid "Error embedding file image in %s format to PDF: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1939 msgid "Closing PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1955 #, perl-format msgid "Writing page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:2006 msgid "Error writing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2025 lib/Gscan2pdf/Document.pm:2227 #, perl-format msgid "Can't open file: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:2050 msgid "Error adding text layer to DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2056 msgid "Closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2063 msgid "Error closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2078 #, perl-format msgid "Converting image %i of %i to TIFF" msgstr "" #: lib/Gscan2pdf/Document.pm:2105 msgid "Error writing TIFF" msgstr "" #: lib/Gscan2pdf/Document.pm:2121 msgid "Concatenating TIFFs" msgstr "" #: lib/Gscan2pdf/Document.pm:2140 msgid "Converting to PS" msgstr "" #: lib/Gscan2pdf/Document.pm:2200 lib/Gscan2pdf/Document.pm:2215 msgid "Error saving image" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:158 #, perl-format msgid "Scanning %i pages..." msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:163 #, perl-format msgid "Scanning page %i..." msgstr "Skanner side %i..." #: lib/Gscan2pdf/Frontend/CLI.pm:188 lib/Gscan2pdf/Frontend/CLI.pm:296 msgid "Scanner warming up" msgstr "Skanner varmes opp" #: lib/Gscan2pdf/Frontend/CLI.pm:195 msgid "Document feeder out of documents" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:212 lib/Gscan2pdf/Frontend/CLI.pm:325 msgid "Device busy" msgstr "Enheten er opptatt" #: lib/Gscan2pdf/Frontend/CLI.pm:218 lib/Gscan2pdf/Frontend/CLI.pm:330 msgid "Operation cancelled" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:223 lib/Gscan2pdf/Frontend/CLI.pm:336 msgid "Unknown message: " msgstr "Ukjent melding: " #: lib/Gscan2pdf/Page.pm:68 lib/Gscan2pdf/Page.pm:73 #, perl-format msgid "Error importing image %s: %s" msgstr "" #: lib/Gscan2pdf/PageRange.pm:33 msgid "Selected" msgstr "Valgt" #: lib/Gscan2pdf/PageRange.pm:58 msgid "active" msgstr "aktiv" #: lib/Gscan2pdf/Scanner/Dialog.pm:218 t/061_Scanner_Dialog.t:33 #: t/061_Scanner_Dialog.t:59 msgid "device-list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:496 t/061_Scanner_Dialog.t:139 #: t/061_Scanner_Dialog.t:174 t/062_Scanner_Dialog.t:50 #: t/062_Scanner_Dialog.t:75 msgid "current-scan-options" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:567 msgid "logger" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:650 t/05_Dialog.t:24 msgid "transient-for" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:716 msgid "device_list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:749 t/061_Scanner_Dialog.t:32 msgid "device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:751 msgid "Opening device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:760 msgid "Retrieving options" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:41 msgid "Layout" msgstr "Layout" #: lib/Gscan2pdf/Unpaper.pm:44 msgid "Single" msgstr "Enkel" #: lib/Gscan2pdf/Unpaper.pm:46 msgid "One page per sheet, oriented upwards without rotation." msgstr "En side pr ark, oppadvendt uten rotasjon" #: lib/Gscan2pdf/Unpaper.pm:49 msgid "Double" msgstr "Dobbel" #: lib/Gscan2pdf/Unpaper.pm:51 msgid "" "Two pages per sheet, landscape orientation (one page on the left half, one " "page on the right half)." msgstr "" "To sider pr ark i landskapsorientering (én side på venstre halvdel, én side " "på høyre halvdel)." #: lib/Gscan2pdf/Unpaper.pm:59 msgid "# Output pages" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:60 msgid "Number of pages to output." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:68 msgid "No deskew" msgstr "Ingen oppretting av forskyvning" #: lib/Gscan2pdf/Unpaper.pm:69 msgid "Disable deskewing." msgstr "Deaktiver oppretting av forskyvning" #: lib/Gscan2pdf/Unpaper.pm:74 msgid "No mask scan" msgstr "Ingen maske-skanning" #: lib/Gscan2pdf/Unpaper.pm:75 msgid "Disable mask detection." msgstr "Deaktiver maskegjenkjenning." #: lib/Gscan2pdf/Unpaper.pm:80 msgid "No black filter" msgstr "Ingen sort-filter" #: lib/Gscan2pdf/Unpaper.pm:81 msgid "Disable black area scan." msgstr "Deaktiver skanning av sorte områder." #: lib/Gscan2pdf/Unpaper.pm:86 msgid "No gray filter" msgstr "Ingen gråfilter" #: lib/Gscan2pdf/Unpaper.pm:87 msgid "Disable gray area scan." msgstr "Deaktiver skanning av grå områder." #: lib/Gscan2pdf/Unpaper.pm:92 msgid "No noise filter" msgstr "Ingen støyfilter" #: lib/Gscan2pdf/Unpaper.pm:93 msgid "Disable noise filter." msgstr "Deaktiver støyfilter." #: lib/Gscan2pdf/Unpaper.pm:98 msgid "No blur filter" msgstr "Ingen blur-filter" #: lib/Gscan2pdf/Unpaper.pm:99 msgid "Disable blur filter." msgstr "Deaktiver blur-filter." #: lib/Gscan2pdf/Unpaper.pm:104 msgid "No border scan" msgstr "Ingen kantskanning" #: lib/Gscan2pdf/Unpaper.pm:105 msgid "Disable border scanning." msgstr "Slå av kantskanning." #: lib/Gscan2pdf/Unpaper.pm:110 msgid "No border align" msgstr "Ingen kantjustering" #: lib/Gscan2pdf/Unpaper.pm:112 msgid "Disable aligning of the area detected by border scanning." msgstr "Slå av justering av området kantskanningen oppdaget." #: lib/Gscan2pdf/Unpaper.pm:117 msgid "Deskew to edge" msgstr "Rett opp til kant" #: lib/Gscan2pdf/Unpaper.pm:119 msgid "" "Edges from which to scan for rotation. Each edge of a mask can be used to " "detect the mask's rotation. If multiple edges are specified, the average " "value will be used, unless the statistical deviation exceeds --deskew-scan-" "deviation." msgstr "" "Hvilke kanter det skal skannes fra for rotering. Hver maskekant kan brukes " "til å oppdage maskens rotasjon. Om flere kanter er valgt, så vil " "gjennomsnittsverdien bli brukt, med mindre det statistiske avviket " "overstiger --deskew-scan-deviation." #: lib/Gscan2pdf/Unpaper.pm:125 msgid "Use 'left' for scanning from the left edge." msgstr "Bruk 'venstre' for å skanne fra venstre kant." #: lib/Gscan2pdf/Unpaper.pm:130 msgid "Use 'top' for scanning from the top edge." msgstr "Brug 'øverst' for å skanne fra øverste kant." #: lib/Gscan2pdf/Unpaper.pm:134 lib/Gscan2pdf/Unpaper.pm:162 msgid "Right" msgstr "Høyre" #: lib/Gscan2pdf/Unpaper.pm:135 msgid "Use 'right' for scanning from the right edge." msgstr "Bruk 'høyre' for å skanne fra høyre kant." #: lib/Gscan2pdf/Unpaper.pm:139 lib/Gscan2pdf/Unpaper.pm:167 msgid "Bottom" msgstr "Nederst" #: lib/Gscan2pdf/Unpaper.pm:140 msgid "Use 'bottom' for scanning from the bottom." msgstr "Bruk 'nederst' for å skanne fra nederste kant." #: lib/Gscan2pdf/Unpaper.pm:147 msgid "Align to edge" msgstr "Justér til kant" #: lib/Gscan2pdf/Unpaper.pm:148 msgid "Edge to which to align the page." msgstr "Kant som siden skal justeres til." #: lib/Gscan2pdf/Unpaper.pm:153 msgid "Use 'left' to align to the left edge." msgstr "Bruk 'venstre' for å justere til venstre kant." #: lib/Gscan2pdf/Unpaper.pm:158 msgid "Use 'top' to align to the top edge." msgstr "Bruk 'øverst' for å justere til øverste kant." #: lib/Gscan2pdf/Unpaper.pm:163 msgid "Use 'right' to align to the right edge." msgstr "Bruk 'høyre' for å justere til høyre kant." #: lib/Gscan2pdf/Unpaper.pm:168 msgid "Use 'bottom' to align to the bottom." msgstr "Bruk 'bunn' for å justere til nederste kant." #: lib/Gscan2pdf/Unpaper.pm:174 msgid "Border margin" msgstr "Kantmarg" #: lib/Gscan2pdf/Unpaper.pm:178 msgid "Vertical margin" msgstr "Loddrett marg" #: lib/Gscan2pdf/Unpaper.pm:180 msgid "" "Vertical distance to keep from the sheet edge when aligning a border area." msgstr "Loddrett avstand å holde fra arkkant når margen rettes opp." #: lib/Gscan2pdf/Unpaper.pm:189 msgid "Horizontal margin" msgstr "Vannrett marg" #: lib/Gscan2pdf/Unpaper.pm:191 msgid "" "Horizontal distance to keep from the sheet edge when aligning a border area." msgstr "" "Vannrett avstand som skal holdes fra papirkant når man justerer et " "kantområde." #: lib/Gscan2pdf/Unpaper.pm:202 msgid "White threshold" msgstr "Hvitterskel" #: lib/Gscan2pdf/Unpaper.pm:204 msgid "Brightness ratio above which a pixel is considered white." msgstr "Lysstyrken der en piksel er vurdert som hvit." #: lib/Gscan2pdf/Unpaper.pm:212 msgid "Black threshold" msgstr "Svartterskel" #: lib/Gscan2pdf/Unpaper.pm:214 msgid "" "Brightness ratio below which a pixel is considered black (non-gray). This is " "used by the gray-filter. This value is also used when converting a grayscale " "image to black-and-white mode." msgstr "" "Lysstyrken der en piksel er vurdert som svart (ikke-grå). Dette er bruk av " "gråfilteret. Denne verdien brukes også når et gråtone-bilde konverteres til " "svar/hvitt-modus." #: lib/Gscan2pdf/Unpaper.pm:250 msgid "Deskew" msgstr "Rette opp forskyvning" #: lib/Gscan2pdf/Unpaper.pm:280 msgid "Border" msgstr "Kant" #: lib/Gscan2pdf/Unpaper.pm:337 msgid "Filters" msgstr "Filter" #: t/05_Dialog.t:23 msgid "title" msgstr "" #: t/05_Dialog.t:26 t/05_Dialog.t:31 t/05_Dialog.t:32 t/05_Dialog.t:38 #: t/05_Dialog.t:39 msgid "border-width" msgstr "" #: t/061_Scanner_Dialog.t:34 msgid "dir" msgstr "" #: t/061_Scanner_Dialog.t:36 msgid "max-pages" msgstr "" #: t/061_Scanner_Dialog.t:39 msgid "side-to-scan" msgstr "" #: t/061_Scanner_Dialog.t:40 t/061_Scanner_Dialog.t:185 msgid "available-scan-options" msgstr "" #: t/061_Scanner_Dialog.t:171 t/062_Scanner_Dialog.t:73 msgid "profile" msgstr "" gscan2pdf-1.2.3/po/gscan2pdf-uk.po0000644000175000017500000015456212243440507015252 0ustar jeffjeff# Ukrainian translation for gscan2pdf # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the gscan2pdf package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: gscan2pdf\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-10-25 08:12+0200\n" "PO-Revision-Date: 2013-10-08 18:19+0000\n" "Last-Translator: Сергій Дубик \n" "Language-Team: Ukrainian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-19 09:22+0000\n" "X-Generator: Launchpad (build 16831)\n" #: bin/gscan2pdf:157 msgid "Error displaying help" msgstr "При відображенні довідки сталася помилка" #: bin/gscan2pdf:201 msgid "" "Error: unable to load settings.\n" "Backing up settings\n" "Reverting to defaults" msgstr "" "Помилка: не вдається завантажити параметри програми\n" "Виконується резервне копіювання параметрів\n" "Здійснюється повернення до параметрів за замовчуванням" #: bin/gscan2pdf:244 msgid "A4" msgstr "A4" #: bin/gscan2pdf:250 msgid "US Letter" msgstr "Формат US Letter" #: bin/gscan2pdf:256 msgid "US Legal" msgstr "Формат US Legal" #: bin/gscan2pdf:323 bin/gscan2pdf:344 #, perl-format msgid "Cannot read file: %s" msgstr "Неможливо прочитати файл: %s" #: bin/gscan2pdf:451 msgid "_File" msgstr "_Файл" #: bin/gscan2pdf:454 msgid "_New" msgstr "_Створити" #: bin/gscan2pdf:455 msgid "Clears all pages" msgstr "Очистити всі сторінки" #: bin/gscan2pdf:459 msgid "_Open" msgstr "_Відкрити сеанс" #: bin/gscan2pdf:460 msgid "Open image file(s)" msgstr "Відкрити зображення" #: bin/gscan2pdf:465 msgid "S_can" msgstr "С_канувати" #: bin/gscan2pdf:467 msgid "Scan document" msgstr "Сканувати документ" #: bin/gscan2pdf:471 bin/gscan2pdf:472 bin/gscan2pdf:2582 msgid "Save" msgstr "Зберегти" #: bin/gscan2pdf:476 msgid "_Email as PDF" msgstr "Надіслати по _e-mail як PDF файл" #: bin/gscan2pdf:477 msgid "Attach as PDF to a new email" msgstr "Додати як PDF до нового листа" #: bin/gscan2pdf:480 msgid "_Print" msgstr "_Друк" #: bin/gscan2pdf:481 msgid "Print" msgstr "Друк" #: bin/gscan2pdf:485 msgid "_Compress temporary files" msgstr "С_тиснути тимчасові файли" #: bin/gscan2pdf:486 msgid "Compress temporary files" msgstr "С_тиснути тимчасові файли" #: bin/gscan2pdf:490 msgid "_Quit" msgstr "_Вийти" #: bin/gscan2pdf:491 msgid "Quit" msgstr "Вихід" #: bin/gscan2pdf:495 msgid "_Edit" msgstr "_Редагувати" #: bin/gscan2pdf:497 msgid "_Undo" msgstr "_Відмінити дію" #: bin/gscan2pdf:497 msgid "Undo" msgstr "Відмінити" #: bin/gscan2pdf:501 msgid "_Redo" msgstr "Повт_орити дію" #: bin/gscan2pdf:502 msgid "Redo" msgstr "Повторити" #: bin/gscan2pdf:506 msgid "Cu_t" msgstr "_Вирізати" #: bin/gscan2pdf:507 msgid "Cut selection" msgstr "Вирізати виділене" #: bin/gscan2pdf:511 msgid "_Copy" msgstr "_Копіювати" #: bin/gscan2pdf:512 msgid "Copy selection" msgstr "Копіювати виділене" #: bin/gscan2pdf:516 msgid "_Paste" msgstr "В_ставити" #: bin/gscan2pdf:517 msgid "Paste selection" msgstr "Вставити виділене" #: bin/gscan2pdf:521 msgid "_Delete" msgstr "В_илучити" #: bin/gscan2pdf:522 msgid "Delete selected pages" msgstr "Вилучити обрані сторінки" #: bin/gscan2pdf:526 msgid "_Renumber" msgstr "Поновити нумерацію" #: bin/gscan2pdf:527 msgid "Renumber pages" msgstr "Перенумерувати сторінки послідовно" #: bin/gscan2pdf:529 bin/gscan2pdf:679 msgid "_Select" msgstr "По_значити" #: bin/gscan2pdf:532 msgid "_All" msgstr "Усе" #: bin/gscan2pdf:533 msgid "Select all pages" msgstr "Позначити усі сторінки" #: bin/gscan2pdf:536 msgid "_Odd" msgstr "_Непарні" #: bin/gscan2pdf:537 msgid "Select all odd-numbered pages" msgstr "Вибрати усі непарні сторінки" #: bin/gscan2pdf:541 msgid "_Even" msgstr "Вирівняти" #: bin/gscan2pdf:542 msgid "Select all evenly-numbered pages" msgstr "Вибрати усі парні сторінки" #: bin/gscan2pdf:547 msgid "_Blank" msgstr "Очистити" #: bin/gscan2pdf:548 msgid "Select pages with low standard deviation" msgstr "Виберіть сторінки з малим стандартним відхиленням" #: bin/gscan2pdf:552 msgid "_Dark" msgstr "Затемнити" #: bin/gscan2pdf:553 msgid "Select dark pages" msgstr "Обрати темні сторінки" #: bin/gscan2pdf:558 msgid "_Modified" msgstr "_Змінено" #: bin/gscan2pdf:560 msgid "Select modified pages since last OCR" msgstr "Виберіть змінені сторінки з моменту останнього OCR-розпізнавання" #: bin/gscan2pdf:565 msgid "_No OCR" msgstr "_Без OCR" #: bin/gscan2pdf:566 msgid "Select pages with no OCR output" msgstr "Вибрати сторінки без OCR-виводу" #: bin/gscan2pdf:570 msgid "_Clear OCR" msgstr "_Очистити OCR" #: bin/gscan2pdf:571 msgid "Clear OCR output from selected pages" msgstr "Очистити OCR-вивід з вибраних сторінок" #: bin/gscan2pdf:575 msgid "Propert_ies" msgstr "_Властивості" #: bin/gscan2pdf:576 msgid "Edit image properties" msgstr "Змінити властивості зображення" #: bin/gscan2pdf:580 msgid "Prefere_nces" msgstr "_Налаштування" #: bin/gscan2pdf:581 msgid "Edit preferences" msgstr "Змінити налаштування" #: bin/gscan2pdf:585 msgid "_View" msgstr "_Вигляд" #: bin/gscan2pdf:588 msgid "Zoom _100%" msgstr "Збільшити до _100%" #: bin/gscan2pdf:589 msgid "Zoom to 100%" msgstr "Збільшити до _100%" #: bin/gscan2pdf:593 msgid "Zoom to _fit" msgstr "Збільшити до розмірів вікна" #: bin/gscan2pdf:594 msgid "Zoom to fit" msgstr "Збільшити до розмірів вікна" #: bin/gscan2pdf:598 msgid "Zoom _in" msgstr "Збільшити" #: bin/gscan2pdf:599 msgid "Zoom in" msgstr "Збільшити" #: bin/gscan2pdf:603 msgid "Zoom _out" msgstr "Зменшити" #: bin/gscan2pdf:604 msgid "Zoom out" msgstr "Зменшити" #: bin/gscan2pdf:609 bin/gscan2pdf:611 msgid "Rotate 90 clockwise" msgstr "Повернути на 90° за годинниковою стрілкою" #: bin/gscan2pdf:617 bin/gscan2pdf:619 msgid "Rotate 180" msgstr "Повернути на 180°" #: bin/gscan2pdf:625 bin/gscan2pdf:627 msgid "Rotate 90 anticlockwise" msgstr "Повернути на 90° проти годинникової стрілки" #: bin/gscan2pdf:632 msgid "_Tools" msgstr "_Інструменти" #: bin/gscan2pdf:634 msgid "_Threshold" msgstr "_Поріг" #: bin/gscan2pdf:635 msgid "Change each pixel above this threshold to black" msgstr "Всі пікселі до порогу - чорним" #: bin/gscan2pdf:639 msgid "_Negate" msgstr "_Негатив" #: bin/gscan2pdf:640 msgid "Converts black to white and vice versa" msgstr "Змінює білий на чорний, та навпаки" #: bin/gscan2pdf:644 msgid "_Unsharp Mask" msgstr "_Нечітка маска" #: bin/gscan2pdf:645 msgid "Apply an unsharp mask" msgstr "Збільшити різкість з допомогою нечіткої маски" #: bin/gscan2pdf:648 msgid "_Crop" msgstr "_Кадрувати" #: bin/gscan2pdf:649 msgid "Crop pages" msgstr "Кадрувати сторінки" #: bin/gscan2pdf:653 msgid "_Clean up" msgstr "Очистити" #: bin/gscan2pdf:654 bin/gscan2pdf:4085 msgid "Clean up scanned images with unpaper" msgstr "Очиститискановазі сторінки за допомогою unpaper" #: bin/gscan2pdf:657 msgid "_OCR" msgstr "Розпізнавання тексту" #: bin/gscan2pdf:658 msgid "Optical Character Recognition" msgstr "Оптичне розпізнавання символів тексту" #: bin/gscan2pdf:660 msgid "U_ser-defined" msgstr "Визначені _користувачем" #: bin/gscan2pdf:663 bin/gscan2pdf:665 msgid "_Help" msgstr "_Довідка" #: bin/gscan2pdf:666 msgid "Help" msgstr "Довідка" #: bin/gscan2pdf:668 msgid "_About" msgstr "_Про програму" #: bin/gscan2pdf:674 msgid "_Drag" msgstr "_Пересунути" #: bin/gscan2pdf:675 msgid "Use the hand tool" msgstr "Використати інструмент перетягування" #: bin/gscan2pdf:680 msgid "Use the rectangular selection tool" msgstr "Скористатись прямокутником виділення" #: bin/gscan2pdf:684 msgid "_Paint" msgstr "_Малювати" #: bin/gscan2pdf:685 msgid "Use the painter tool" msgstr "Використати інструмент малювання" #: bin/gscan2pdf:965 lib/Gscan2pdf/Document.pm:2594 #: lib/Gscan2pdf/Document.pm:2595 msgid "Error copying page" msgstr "При копіюванні сторінки виникла помилка" #: bin/gscan2pdf:1082 msgid "Image" msgstr "Зображення" #: bin/gscan2pdf:1117 msgid "OCR Output" msgstr "Результат OCR" #: bin/gscan2pdf:1174 msgid "Mode" msgstr "Режим" #: bin/gscan2pdf:1176 msgid "Lineart" msgstr "Чорно-білий" #: bin/gscan2pdf:1177 msgid "Grayscale" msgstr "Відтінки сірого" #: bin/gscan2pdf:1178 msgid "Gray" msgstr "Сірий" #: bin/gscan2pdf:1179 msgid "Color" msgstr "У кольорі" #: bin/gscan2pdf:1180 msgid "Black & White" msgstr "Чорно-біле" #: bin/gscan2pdf:1181 msgid "True Gray" msgstr "«Поправді» сірий" #: bin/gscan2pdf:1182 msgid "Binary" msgstr "Двійковий" #: bin/gscan2pdf:1183 bin/gscan2pdf:1242 bin/gscan2pdf:1243 msgid "Auto" msgstr "Автоматично" #: bin/gscan2pdf:1184 msgid "Halftone" msgstr "Напівтони" #: bin/gscan2pdf:1185 msgid "24bit Color" msgstr "У кольорі, 24 біт" #: bin/gscan2pdf:1189 bin/gscan2pdf:2547 bin/gscan2pdf:2644 msgid "Compression" msgstr "Компресія" #: bin/gscan2pdf:1191 bin/gscan2pdf:2539 bin/gscan2pdf:2636 msgid "None" msgstr "Жодного" #: bin/gscan2pdf:1192 bin/gscan2pdf:2537 bin/gscan2pdf:2601 bin/gscan2pdf:2622 msgid "JPEG" msgstr "JPEG" #: bin/gscan2pdf:1195 bin/gscan2pdf:8127 msgid "Resolution" msgstr "Роздільна здатність:" #: bin/gscan2pdf:1196 msgid "Brightness" msgstr "Яскравість" #: bin/gscan2pdf:1197 msgid "Gain" msgstr "Підсилення" #: bin/gscan2pdf:1198 msgid "Contrast" msgstr "Контрастність" #: bin/gscan2pdf:1199 bin/gscan2pdf:6406 bin/gscan2pdf:6417 bin/gscan2pdf:6620 msgid "Threshold" msgstr "Постеризація" #: bin/gscan2pdf:1201 msgid "Speed" msgstr "Швидкість" #: bin/gscan2pdf:1203 bin/gscan2pdf:1210 bin/gscan2pdf:1217 bin/gscan2pdf:1224 #: bin/gscan2pdf:1231 msgid "Yes" msgstr "Так" #: bin/gscan2pdf:1204 bin/gscan2pdf:1211 bin/gscan2pdf:1218 bin/gscan2pdf:1225 #: bin/gscan2pdf:1232 msgid "No" msgstr "Ні" #: bin/gscan2pdf:1208 msgid "Batch scan" msgstr "Пакетне сканування" #: bin/gscan2pdf:1215 bin/gscan2pdf:1222 msgid "Wait for button" msgstr "Чекати натискання клавіші" #: bin/gscan2pdf:1229 msgid "Cache calibration" msgstr "Калібрування кешу" #: bin/gscan2pdf:1236 msgid "Source" msgstr "Джерело" #: bin/gscan2pdf:1238 msgid "Normal" msgstr "Звичайний" #: bin/gscan2pdf:1239 msgid "ADF" msgstr "АПД" #: bin/gscan2pdf:1240 msgid "Automatic Document Feeder" msgstr "Автоматична подача документів" #: bin/gscan2pdf:1241 msgid "XPA" msgstr "XPA" #: bin/gscan2pdf:1244 msgid "Flatbed" msgstr "Планшетний" #: bin/gscan2pdf:1245 msgid "Transparency Adapter" msgstr "Адаптер для плівки та слайдів" #: bin/gscan2pdf:1246 msgid "Transparency Unit" msgstr "Одиниця прозорості" #: bin/gscan2pdf:1249 bin/gscan2pdf:1251 msgid "Page Width" msgstr "Ширина сторінки" #: bin/gscan2pdf:1250 bin/gscan2pdf:1252 msgid "Page Height" msgstr "Висота сторінки" #: bin/gscan2pdf:1253 msgid "Top Overscan" msgstr "Надлишково скановано зверху" #: bin/gscan2pdf:1254 msgid "Bottom Overscan" msgstr "Надлишково скановано знизу" #: bin/gscan2pdf:1256 bin/gscan2pdf:1263 msgid "ADF Mode" msgstr "Режим автоподачі" #: bin/gscan2pdf:1258 bin/gscan2pdf:1265 msgid "Simplex" msgstr "Односторонній друк" #: bin/gscan2pdf:1259 bin/gscan2pdf:1266 msgid "Duplex" msgstr "Двосторонній друк" #: bin/gscan2pdf:1301 bin/gscan2pdf:1306 msgid "Pick crashed session to restore" msgstr "Виберіть пошкоджену сесію для відновлення" #: bin/gscan2pdf:1308 bin/gscan2pdf:2609 msgid "Session" msgstr "Сеанс" #: bin/gscan2pdf:1338 #, perl-format msgid "" "Warning: unable to use %s for temporary storage. Defaulting to %s instead." msgstr "" "Попередження: не вдалося використати %s для тимчасового зберігання. За " "умовчанням використовується %s натомість." #: bin/gscan2pdf:1441 msgid "GOCR" msgstr "GOCR" #: bin/gscan2pdf:1441 msgid "Process image with GOCR." msgstr "Опрацювати зображення з допомогою GOCR." #: bin/gscan2pdf:1445 msgid "Tesseract" msgstr "Tesseract" #: bin/gscan2pdf:1446 msgid "Process image with Tesseract." msgstr "Опрацювати зображення з допомогою Tesseract" #: bin/gscan2pdf:1450 msgid "Ocropus" msgstr "Ocropus" #: bin/gscan2pdf:1450 msgid "Process image with Ocropus." msgstr "Обробити зображення з допомогою Ocropus." #: bin/gscan2pdf:1454 msgid "Cuneiform" msgstr "Cuneiform" #: bin/gscan2pdf:1455 msgid "Process image with Cuneiform." msgstr "Обробити зображення з допомогою Cuneiform." #: bin/gscan2pdf:1461 msgid "Save image and Save as PDF both require imagemagick\n" msgstr "" "Для збереження зображень взагалі та у PDF зокрема необхідний ImageMagick\n" #: bin/gscan2pdf:1465 msgid "Save image requires libtiff\n" msgstr "Для збереження зображень потрібна бібліотека libtiff\n" #: bin/gscan2pdf:1469 msgid "Save as DjVu requires djvulibre-bin\n" msgstr "Збереження в DjVu вимагає djvulibre-bin\n" #: bin/gscan2pdf:1473 msgid "Email as PDF requires xdg-email\n" msgstr "Пересилання PDF по пошті вимагає xdg-email\n" #: bin/gscan2pdf:1518 msgid "The rotating options and unpaper support require perlmagick\n" msgstr "" "Для перевертання або очистки сторіки необхідно встановити пакунок " "perlmagick\n" #: bin/gscan2pdf:1524 msgid "unpaper missing\n" msgstr "unpaper відсутній\n" #: bin/gscan2pdf:1534 msgid "OCR requires gocr, tesseract, ocropus, or cuneiform\n" msgstr "" "Для розпізнавання тексту необхідні програми gocr, tesseract, ocropus чи " "cuneiform\n" #: bin/gscan2pdf:1539 msgid "Warning: missing packages" msgstr "Застереження: деякі пакунки відсутні" #: bin/gscan2pdf:1544 msgid "Don't show this message again" msgstr "Більше не показувати це" #: bin/gscan2pdf:1753 msgid "" "Some pages have not been saved.\n" "Do you really want to clear all pages?" msgstr "" "Деякі сторінки ще не були збережені. \n" "Ви дійсно хочете вилучити усі сторінки?" #: bin/gscan2pdf:1828 bin/gscan2pdf:1858 #, perl-format msgid "Process %i of %i (%s)" msgstr "Обробка %i з %i (%s)" #: bin/gscan2pdf:1867 #, perl-format msgid "Process %i of %i" msgstr "Обробка %i з %i" #: bin/gscan2pdf:1895 msgid "Open image" msgstr "Відкрити зображення" #: bin/gscan2pdf:1903 bin/gscan2pdf:2797 bin/gscan2pdf:3113 msgid "Image files" msgstr "Файли зображень" #: bin/gscan2pdf:1940 msgid "Pages to extract" msgstr "Витягувані сторінки" #: bin/gscan2pdf:1943 bin/gscan2pdf:2117 bin/gscan2pdf:2586 bin/gscan2pdf:3353 #: bin/gscan2pdf:3494 bin/gscan2pdf:4104 bin/gscan2pdf:4514 bin/gscan2pdf:5825 #: bin/gscan2pdf:6409 bin/gscan2pdf:6495 bin/gscan2pdf:6565 bin/gscan2pdf:6737 #: bin/gscan2pdf:7011 bin/gscan2pdf:7274 bin/gscan2pdf:7757 bin/gscan2pdf:8123 #: lib/Gscan2pdf/Dialog.pm:56 lib/Gscan2pdf/Dialog/Renumber.pm:80 #: lib/Gscan2pdf/Scanner/Dialog.pm:201 t/05_Dialog.t:28 msgid "vbox" msgstr "" #: bin/gscan2pdf:1946 msgid "First page to extract" msgstr "Перша витягувана сторінка" #: bin/gscan2pdf:1953 msgid "Last page to extract" msgstr "Остання витягнена сторінка" #: bin/gscan2pdf:2042 lib/Gscan2pdf/Dialog/Renumber.pm:83 msgid "Page Range" msgstr "Діапазон сторінок" #: bin/gscan2pdf:2092 msgid "Metadata" msgstr "Метадані" #: bin/gscan2pdf:2101 msgid "Date" msgstr "Дата" #: bin/gscan2pdf:2114 msgid "Select Date" msgstr "Виберіть дату" #: bin/gscan2pdf:2136 msgid "Today" msgstr "Сьогодні" #: bin/gscan2pdf:2150 msgid "Year-Month-Day" msgstr "Рік-Місяць-День" #: bin/gscan2pdf:2156 msgid "Document author" msgstr "Автор документу" #: bin/gscan2pdf:2165 msgid "Title" msgstr "Заголовок" #: bin/gscan2pdf:2174 msgid "Subject" msgstr "Тема" #: bin/gscan2pdf:2183 msgid "Keywords" msgstr "Ключові слова" #: bin/gscan2pdf:2245 msgid "Editing text" msgstr "Редагування тексту" #: bin/gscan2pdf:2252 bin/gscan2pdf:2258 bin/gscan2pdf:2332 msgid "text" msgstr "текстовий" #: bin/gscan2pdf:2352 msgid "PDF filename" msgstr "Ім’я файлу PDF" #: bin/gscan2pdf:2381 msgid "PDF files" msgstr "Файли PDF" #: bin/gscan2pdf:2405 bin/gscan2pdf:2823 bin/gscan2pdf:2880 bin/gscan2pdf:2976 #: bin/gscan2pdf:3035 bin/gscan2pdf:3087 bin/gscan2pdf:3275 #, perl-format msgid "File %s is read-only" msgstr "Файл %s доступний у режимі «лише читання»" #: bin/gscan2pdf:2482 msgid "JPEG Quality" msgstr "Якість JPEG" #: bin/gscan2pdf:2496 msgid "Downsample to" msgstr "Понизити розподілне число до" #: bin/gscan2pdf:2501 msgid "PPI" msgstr "т/дюйм" #: bin/gscan2pdf:2520 msgid "Automatic" msgstr "Автоматично" #: bin/gscan2pdf:2521 msgid "Let gscan2pdf which type of compression to use." msgstr "Нехай програма сама вибере відповідний алгоритм стиснення." #: bin/gscan2pdf:2524 bin/gscan2pdf:2616 msgid "LZW" msgstr "LZW" #: bin/gscan2pdf:2525 bin/gscan2pdf:2617 msgid "Compress output with Lempel-Ziv & Welch encoding." msgstr "Стиснення виведення алгоритмом Лемпеля-Зіва-Велча (LZW)" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Zip" msgstr "Zip" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Compress output with deflate encoding." msgstr "Стиснення виведення алгоритмом пониження порядку (deflate)" #: bin/gscan2pdf:2529 bin/gscan2pdf:2624 msgid "Packbits" msgstr "Packbits" #: bin/gscan2pdf:2530 bin/gscan2pdf:2625 msgid "Compress output with Packbits encoding." msgstr "Стиснення виведення алгоритмом Packbits" #: bin/gscan2pdf:2536 bin/gscan2pdf:2604 msgid "PNG" msgstr "PNG" #: bin/gscan2pdf:2536 msgid "Compress output with PNG encoding." msgstr "Стиснути вивід, використовуючи PNG" #: bin/gscan2pdf:2537 bin/gscan2pdf:2622 msgid "Compress output with JPEG encoding." msgstr "Стиснення виводу алгоритмом JPEG" #: bin/gscan2pdf:2540 bin/gscan2pdf:2637 msgid "Use no compression algorithm on output." msgstr "Не використовувати алгоритм стиснення при виводі" #: bin/gscan2pdf:2594 msgid "Image type" msgstr "Тип зображення" #: bin/gscan2pdf:2598 msgid "PDF" msgstr "PDF" #: bin/gscan2pdf:2598 msgid "Portable Document Format" msgstr "Формат Портативного Документу (PDF)" #: bin/gscan2pdf:2599 msgid "GIF" msgstr "GIF" #: bin/gscan2pdf:2599 msgid "CompuServe graphics interchange format" msgstr "Графічний формат обміну даними CompuServe" #: bin/gscan2pdf:2602 msgid "Joint Photographic Experts Group JFIF format" msgstr "JFIF-формат від Joint Photographic Experts Group JFIF" #: bin/gscan2pdf:2604 msgid "Portable Network Graphics" msgstr "Переносима мережева графіка (PNG)" #: bin/gscan2pdf:2605 msgid "PNM" msgstr "PNM" #: bin/gscan2pdf:2605 msgid "Portable anymap" msgstr "Портативне відображення" #: bin/gscan2pdf:2606 msgid "PS" msgstr "PS" #: bin/gscan2pdf:2606 msgid "Postscript" msgstr "Postscript" #: bin/gscan2pdf:2607 msgid "TIFF" msgstr "TIFF" #: bin/gscan2pdf:2607 msgid "Tagged Image File Format" msgstr "Розмічений формат файлів зображень (TIFF)" #: bin/gscan2pdf:2608 msgid "Text" msgstr "Текст" #: bin/gscan2pdf:2608 msgid "Plain text" msgstr "Простий текст" #: bin/gscan2pdf:2609 msgid "gscan2pdf session file" msgstr "Файл сеансу gscan2pdf" #: bin/gscan2pdf:2611 msgid "DjVu" msgstr "DjVu" #: bin/gscan2pdf:2611 msgid "Deja Vu" msgstr "Deja Vu" #: bin/gscan2pdf:2628 msgid "G3" msgstr "G3" #: bin/gscan2pdf:2629 msgid "Compress output with CCITT Group 3 encoding." msgstr "Стиснення виведення алгоритмом CCITT Group 3" #: bin/gscan2pdf:2632 msgid "G4" msgstr "G4" #: bin/gscan2pdf:2633 msgid "Compress output with CCITT Group 4 encoding." msgstr "Стиснення виводу алгоритмом CCITT Group 4" #: bin/gscan2pdf:2649 msgid "tiff" msgstr "TIFF" #: bin/gscan2pdf:2681 msgid "Font for non-ASCII text" msgstr "Шрифт для не-ASCII тексту" #: bin/gscan2pdf:2790 msgid "TIFF filename" msgstr "Ім'я файлу TIFF" #: bin/gscan2pdf:2848 msgid "Text filename" msgstr "Ім’я текстового файлу" #: bin/gscan2pdf:2856 msgid "Text files" msgstr "Текстові файли" #: bin/gscan2pdf:2944 msgid "PS filename" msgstr "Ім’я файлу PS" #: bin/gscan2pdf:2951 msgid "Postscript files" msgstr "Файли Postscript" #: bin/gscan2pdf:3003 msgid "gscan2pdf session filename" msgstr "Ім’я файлу сеанса gscan2pdf" #: bin/gscan2pdf:3010 msgid "gscan2pdf session files" msgstr "файли сесій gscan2pdf" #: bin/gscan2pdf:3093 #, perl-format msgid "" "File %s exists.\n" "Really overwrite?" msgstr "" "Файл %s вже існує.\n" "Дійсно перезаписати?" #: bin/gscan2pdf:3106 msgid "Image filename" msgstr "Ім’я файлу зображення" #: bin/gscan2pdf:3245 msgid "DjVu filename" msgstr "Ім’я файлу DjVu" #: bin/gscan2pdf:3252 msgid "DjVu files" msgstr "Файли DjVu" #: bin/gscan2pdf:3349 msgid "Email as PDF" msgstr "Відправка по пошті як PDF" #: bin/gscan2pdf:3454 msgid "Error creating email" msgstr "Помилка при створенні Email" #: bin/gscan2pdf:3490 bin/gscan2pdf:4313 msgid "Scan Document" msgstr "Відсканувати документ" #: bin/gscan2pdf:3507 lib/Gscan2pdf/Scanner/Dialog.pm:248 msgid "Page Options" msgstr "Параметри сторінки" #: bin/gscan2pdf:3510 lib/Gscan2pdf/Scanner/Dialog.pm:251 msgid "# Pages" msgstr "# Сторінок" #: bin/gscan2pdf:3519 lib/Gscan2pdf/PageRange.pm:34 #: lib/Gscan2pdf/Scanner/Dialog.pm:261 msgid "All" msgstr "Усі" #: bin/gscan2pdf:3520 lib/Gscan2pdf/Scanner/Dialog.pm:262 msgid "Scan all pages" msgstr "Відсканувати усі сторінки" #: bin/gscan2pdf:3532 bin/gscan2pdf:3537 lib/Gscan2pdf/Scanner/Dialog.pm:274 #: lib/Gscan2pdf/Scanner/Dialog.pm:279 msgid "Set number of pages to scan" msgstr "Вказати число сканованих сторінок" #: bin/gscan2pdf:3550 lib/Gscan2pdf/Scanner/Dialog.pm:308 msgid "Extended page numbering" msgstr "Розширена нумерація сторінок" #: bin/gscan2pdf:3554 lib/Gscan2pdf/Scanner/Dialog.pm:312 msgid "Page number" msgstr "Номер сторінки" #: bin/gscan2pdf:3563 lib/Gscan2pdf/Dialog/Renumber.pm:111 #: lib/Gscan2pdf/Scanner/Dialog.pm:321 msgid "Start" msgstr "Почати" #: bin/gscan2pdf:3572 lib/Gscan2pdf/Dialog/Renumber.pm:132 #: lib/Gscan2pdf/Scanner/Dialog.pm:340 msgid "Increment" msgstr "Крок" #: bin/gscan2pdf:3604 lib/Gscan2pdf/Scanner/Dialog.pm:372 msgid "Source document" msgstr "Вихідний документ" #: bin/gscan2pdf:3611 lib/Gscan2pdf/Scanner/Dialog.pm:379 msgid "Single sided" msgstr "Односторонній" #: bin/gscan2pdf:3612 lib/Gscan2pdf/Scanner/Dialog.pm:380 msgid "Source document is single-sided" msgstr "У вихідному документі односторонній друк" #: bin/gscan2pdf:3622 lib/Gscan2pdf/Scanner/Dialog.pm:390 msgid "Double sided" msgstr "Двосторонній" #: bin/gscan2pdf:3623 lib/Gscan2pdf/Scanner/Dialog.pm:391 msgid "Source document is double-sided" msgstr "У вихідному документі двухсторонняя печать" #: bin/gscan2pdf:3629 lib/Gscan2pdf/Scanner/Dialog.pm:397 msgid "Side to scan" msgstr "Яку сторону сканувати" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Facing" msgstr "Парні сторінки" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Reverse" msgstr "Зворотній порядок" #: bin/gscan2pdf:3655 lib/Gscan2pdf/Scanner/Dialog.pm:418 msgid "Sets which side of a double-sided document is scanned" msgstr "Вказувати, яку сторону документа з двостороннім друком сканувати" #: bin/gscan2pdf:3719 msgid "Scan Options" msgstr "Параметри сканування" #: bin/gscan2pdf:3722 msgid "Device-dependent options" msgstr "Параметри, унікальні для різних пристроїв" #: bin/gscan2pdf:3729 lib/Gscan2pdf/Scanner/Dialog.pm:458 msgid "Scan profiles" msgstr "Профілі сканування" #: bin/gscan2pdf:3778 bin/gscan2pdf:3784 lib/Gscan2pdf/Scanner/Dialog.pm:479 #: lib/Gscan2pdf/Scanner/Dialog.pm:485 msgid "Name of scan profile" msgstr "Найменування профілю сканування" #: bin/gscan2pdf:3828 lib/Gscan2pdf/Scanner/Dialog.pm:518 msgid "Scan" msgstr "Відсканувати" #: bin/gscan2pdf:3866 msgid "Must scan facing pages first" msgstr "Спочатку необхідно відсканувати парні сторінки" #: bin/gscan2pdf:3977 msgid "Post-processing" msgstr "Післяобробка" #: bin/gscan2pdf:3986 bin/gscan2pdf:4008 msgid "Rotate" msgstr "Повернути" #: bin/gscan2pdf:3987 bin/gscan2pdf:4009 msgid "Rotate image after scanning" msgstr "Повернути зображення після сканування" #: bin/gscan2pdf:3990 msgid "Both sides" msgstr "На обох сторонах" #: bin/gscan2pdf:3990 msgid "Both sides." msgstr "На обох сторонах." #: bin/gscan2pdf:3991 msgid "Facing side" msgstr "Лицьова сторона" #: bin/gscan2pdf:3991 msgid "Facing side." msgstr "Лицьова сторона." #: bin/gscan2pdf:3992 msgid "Reverse side" msgstr "Зворотня сторона" #: bin/gscan2pdf:3992 msgid "Reverse side." msgstr "Зворотня сторона." #: bin/gscan2pdf:3995 bin/gscan2pdf:4013 msgid "Select side to rotate" msgstr "Виберіть сторону яку потрібно повернути" #: bin/gscan2pdf:3998 msgid "90" msgstr "90°" #: bin/gscan2pdf:3998 msgid "Rotate image 90 degrees clockwise." msgstr "Повернуть на 90 градусів за годинниковою стрілкою" #: bin/gscan2pdf:3999 msgid "180" msgstr "180°" #: bin/gscan2pdf:3999 msgid "Rotate image 180 degrees clockwise." msgstr "Повернути на 180° градусів за годинниковою стрілкою" #: bin/gscan2pdf:4000 msgid "270" msgstr "270°" #: bin/gscan2pdf:4000 msgid "Rotate image 90 degrees anticlockwise." msgstr "Повернути на 90° градусів проти годинникової стрілки" #: bin/gscan2pdf:4003 bin/gscan2pdf:4016 msgid "Select direction of rotation" msgstr "Виберіть напрямок обертання" #: bin/gscan2pdf:4083 msgid "Clean up images" msgstr "Очищення зображення" #: bin/gscan2pdf:4094 msgid "Options" msgstr "Параметри" #: bin/gscan2pdf:4095 msgid "Set unpaper options" msgstr "Вказати параметри unpaper" #: bin/gscan2pdf:4101 msgid "unpaper options" msgstr "Параметри unpaper" #: bin/gscan2pdf:4136 bin/gscan2pdf:4137 msgid "OCR scanned pages" msgstr "Розпізнати відскановані сторінки" #: bin/gscan2pdf:4151 msgid "Select OCR engine" msgstr "Виберіть рушій розпізнавання тексту" #: bin/gscan2pdf:4210 lib/Gscan2pdf/Scanner/Dialog.pm:634 msgid "Fetching list of devices" msgstr "Отримується список пристроїв" #: bin/gscan2pdf:4225 lib/Gscan2pdf/Scanner/Dialog.pm:654 msgid "No devices found" msgstr "Не знайдено відповідного пристрою" #: bin/gscan2pdf:4367 bin/gscan2pdf:4732 bin/gscan2pdf:4777 bin/gscan2pdf:5214 #: lib/Gscan2pdf/Scanner/Dialog.pm:343 lib/Gscan2pdf/Scanner/Dialog.pm:348 #: t/061_Scanner_Dialog.t:38 t/061_Scanner_Dialog.t:95 msgid "page-number-increment" msgstr "" #: bin/gscan2pdf:4374 bin/gscan2pdf:4729 bin/gscan2pdf:4730 bin/gscan2pdf:4776 #: bin/gscan2pdf:5213 lib/Gscan2pdf/Scanner/Dialog.pm:361 #: t/061_Scanner_Dialog.t:37 msgid "page-number-start" msgstr "" #: bin/gscan2pdf:4663 lib/Gscan2pdf/Scanner/Dialog.pm:210 msgid "Device" msgstr "Пристрій" #: bin/gscan2pdf:4671 lib/Gscan2pdf/Scanner/Dialog.pm:213 msgid "Rescan for devices" msgstr "Шукати обладнання ще раз" #: bin/gscan2pdf:4694 lib/Gscan2pdf/Scanner/Dialog.pm:237 msgid "Sets the device to be used for the scan" msgstr "Вказати пристрій для сканування" #: bin/gscan2pdf:4780 lib/Gscan2pdf/Scanner/Dialog.pm:300 #: t/061_Scanner_Dialog.t:35 msgid "num-pages" msgstr "" #: bin/gscan2pdf:4821 msgid "Scanning" msgstr "Виконується сканування" #: bin/gscan2pdf:4974 msgid "Unable to load image" msgstr "Неможливо завантажити зображення" #: bin/gscan2pdf:5004 msgid "print-pages" msgstr "" #: bin/gscan2pdf:5008 msgid "page-ranges" msgstr "" #: bin/gscan2pdf:5405 msgid "Patches gratefully received from:" msgstr "Патчі з вдячністю прийняті від:" #: bin/gscan2pdf:5407 msgid "To aid the scan-to-PDF process" msgstr "Спрощення процесу сканування в PDF" #: bin/gscan2pdf:5408 msgid "Copyright 2006--2012 Jeffrey Ratcliffe" msgstr "Авторські права 2006-2012 Джеффрі Реткліфф" #: bin/gscan2pdf:5492 bin/gscan2pdf:6028 msgid "The options cache seems to be empty. Reload device-dependent options?" msgstr "" "Кеш параметрів, мабуть, порожній. Перезавантажити апаратно-залежні параметри?" #: bin/gscan2pdf:5519 bin/gscan2pdf:6054 msgid "Updating options" msgstr "Параметри оновлюються" #: bin/gscan2pdf:5571 msgid "Paper size" msgstr "Формат паперу" #: bin/gscan2pdf:5572 bin/gscan2pdf:5672 bin/gscan2pdf:5840 bin/gscan2pdf:6769 msgid "Width" msgstr "Ширина" #: bin/gscan2pdf:5573 bin/gscan2pdf:5678 bin/gscan2pdf:5841 bin/gscan2pdf:6780 msgid "Height" msgstr "Висота" #: bin/gscan2pdf:5574 bin/gscan2pdf:5684 bin/gscan2pdf:5842 #: lib/Gscan2pdf/Unpaper.pm:124 lib/Gscan2pdf/Unpaper.pm:152 msgid "Left" msgstr "Лівий" #: bin/gscan2pdf:5575 bin/gscan2pdf:5690 bin/gscan2pdf:5843 #: lib/Gscan2pdf/Unpaper.pm:129 lib/Gscan2pdf/Unpaper.pm:157 msgid "Top" msgstr "Верхній" #: bin/gscan2pdf:5589 bin/gscan2pdf:5703 bin/gscan2pdf:6232 msgid "Manual" msgstr "Керівництво" #: bin/gscan2pdf:5590 bin/gscan2pdf:5700 msgid "Edit" msgstr "Редагування" #: bin/gscan2pdf:5591 msgid "Selects or edits the paper size" msgstr "Встановлення або зміна розміру сторінки" #: bin/gscan2pdf:5673 msgid "Width of scan area" msgstr "Ширина сканованої області" #: bin/gscan2pdf:5679 msgid "Height of scan area" msgstr "Висота сканованої області" #: bin/gscan2pdf:5685 msgid "Top-left x position of scan area" msgstr "Верхня ліва точка сканованої області по осі X" #: bin/gscan2pdf:5691 msgid "Top-left y position of scan area" msgstr "Верхня ліва точка сканованої області по осі Y" #: bin/gscan2pdf:5822 msgid "Edit paper size" msgstr "Змінити формат сторінки" #: bin/gscan2pdf:5839 msgid "Name" msgstr "Ім’я" #: bin/gscan2pdf:5893 msgid "Cannot delete all paper sizes" msgstr "Неможливо вилучити усі розміри паперу" #: bin/gscan2pdf:5955 msgid "" "The following paper sizes are too big to be scanned by the selected device:" msgstr "Обраний сканер не може сканути сторінки такого розміру" #: bin/gscan2pdf:6419 bin/gscan2pdf:6605 msgid "%" msgstr "%" #: bin/gscan2pdf:6492 msgid "Negate" msgstr "Перетворити в негатив" #: bin/gscan2pdf:6562 msgid "Unsharp mask" msgstr "Нечітка маска" #: bin/gscan2pdf:6573 msgid "Radius" msgstr "Радіус" #: bin/gscan2pdf:6575 bin/gscan2pdf:6592 bin/gscan2pdf:6747 bin/gscan2pdf:6759 #: bin/gscan2pdf:6771 bin/gscan2pdf:6782 msgid "pixels" msgstr "пікселів" #: bin/gscan2pdf:6582 msgid "" "The radius of the Gaussian, in pixels, not counting the center pixel (0 = " "automatic)." msgstr "Не встановлено центральна точка радіусу Gaussian (0 = automatic)." #: bin/gscan2pdf:6590 msgid "Sigma" msgstr "Сіґма" #: bin/gscan2pdf:6597 msgid "The standard deviation of the Gaussian." msgstr "Стандартне гаусівське відхилення." #: bin/gscan2pdf:6603 msgid "Amount" msgstr "Величина" #: bin/gscan2pdf:6612 msgid "" "The percentage of the difference between the original and the blur image " "that is added back into the original." msgstr "" "Процентна різниця між початковим і розмитим зображенням, що додана в " "оригінал." #: bin/gscan2pdf:6627 msgid "" "The threshold, as a fraction of QuantumRange, needed to apply the difference " "amount." msgstr "" "Поріг, як частка QuantumRange, який потрібно додати до величини різниці." #: bin/gscan2pdf:6733 msgid "Crop" msgstr "Обрізати" #: bin/gscan2pdf:6745 msgid "x" msgstr "" #: bin/gscan2pdf:6751 msgid "The x-position of the left hand edge of the crop." msgstr "" #: bin/gscan2pdf:6757 msgid "y" msgstr "" #: bin/gscan2pdf:6763 msgid "The y-position of the top edge of the crop." msgstr "" #: bin/gscan2pdf:6774 msgid "The width of the crop." msgstr "" #: bin/gscan2pdf:6785 msgid "The height of the crop." msgstr "" #: bin/gscan2pdf:6906 msgid "label" msgstr "мітка" #: bin/gscan2pdf:7007 msgid "unpaper" msgstr "unpaper" #: bin/gscan2pdf:7216 bin/gscan2pdf:7244 msgid "Language to recognise" msgstr "Які мови розпізнавати" #: bin/gscan2pdf:7227 msgid "English" msgstr "Англійська" #: bin/gscan2pdf:7270 msgid "OCR" msgstr "OCR" #: bin/gscan2pdf:7279 msgid "OCR Engine" msgstr "Рушій ОРС" #: bin/gscan2pdf:7323 msgid "Start OCR" msgstr "Запустити OCR" #: bin/gscan2pdf:7339 msgid "No page selected" msgstr "Жодна сторінка не вибрана" #: bin/gscan2pdf:7374 msgid "" "Some pages have not been saved.\n" "Do you really want to quit?" msgstr "" "Деякі сторінки ще не збережено.\n" "Впевнені, що бажаєте закрити програму?" #: bin/gscan2pdf:7432 #, perl-format msgid "" "The help viewer requires module Gtk2::Ex::PodViewer\n" "Alternatively, try: %s %s\n" "\n" msgstr "" "Для перегляду довідки необхідний модуль Gtk2::Ex::PodViewer\n" "Як варіант, спробуйте: %s %s\n" "\n" #: bin/gscan2pdf:7698 msgid "This operation cannot be undone. Are you sure?" msgstr "Дана операція не може бути відмінена. Ви впевнені?" #: bin/gscan2pdf:7753 msgid "Preferences" msgstr "Налаштування" #: bin/gscan2pdf:7762 msgid "Frontend" msgstr "Зовнішній інтерфейс" #: bin/gscan2pdf:7766 msgid "libsane-perl" msgstr "libsane-perl" #: bin/gscan2pdf:7767 msgid "Scan using the perl bindings for SANE." msgstr "Сканування за допомогою Perl-прив’язки для SANE." #: bin/gscan2pdf:7770 msgid "scanimage" msgstr "scanimage" #: bin/gscan2pdf:7771 msgid "Scan using the scanimage frontend." msgstr "Сканування за допомогою інтерфейсу scanimage.." #: bin/gscan2pdf:7775 msgid "scanimage-perl" msgstr "scanimage-perl" #: bin/gscan2pdf:7776 msgid "Scan using the scanimage-perl frontend." msgstr "Сканування за допомогою інтерфейсу scanimage-perl." #: bin/gscan2pdf:7779 msgid "scanadf-perl" msgstr "scanadf-perl" #: bin/gscan2pdf:7780 msgid "Scan using the scanadf-perl frontend." msgstr "Сканування з використанням „scanadf-perl“" #: bin/gscan2pdf:7785 msgid "scanadf" msgstr "scanadf" #: bin/gscan2pdf:7786 msgid "Scan using the scanadf frontend." msgstr "Сканування з використанням „scanadf“" #: bin/gscan2pdf:7791 msgid "Cycle SANE handle after scan" msgstr "" #: bin/gscan2pdf:7814 msgid "Default filename for PDFs" msgstr "Назва файлу PDF за умовчанням" #: bin/gscan2pdf:7820 msgid "" "%a\t author\n" "%t\t title\n" "%y\t document's year\n" "%Y\t today's year\n" "%m\t document's month\n" "%M\t today's month\n" "%d\t document's day\n" "%D\t today's day" msgstr "" #: bin/gscan2pdf:7830 msgid "Scan command prefix" msgstr "Префікс команди сканування" #: bin/gscan2pdf:7839 msgid "Restore window settings on startup" msgstr "Відновити налаштування вікна при запуску" #: bin/gscan2pdf:7845 msgid "Cache device-dependent options" msgstr "Тимчасові файли апаратно-залежних параметрів" #: bin/gscan2pdf:7851 msgid "Clear device-dependent options cache" msgstr "Очистити тимчасові файли апаратно-залежних параметрів" #: bin/gscan2pdf:7862 msgid "Temporary directory" msgstr "Тимчасова тека" #: bin/gscan2pdf:7867 msgid "Browse" msgstr "Огляд" #: bin/gscan2pdf:7871 msgid "Select temporary directory" msgstr "Вибрати тимчасову теку" #: bin/gscan2pdf:7888 msgid "Blank threshold" msgstr "Поріг чорного" #: bin/gscan2pdf:7893 msgid "Threshold used for selecting blank pages" msgstr "" "Порогове значення, яке використовується для виявлення порожніх сторінок" #: bin/gscan2pdf:7899 msgid "Dark threshold" msgstr "" #: bin/gscan2pdf:7904 msgid "Threshold used for selecting dark pages" msgstr "" #: bin/gscan2pdf:7910 msgid "OCR output" msgstr "Вивід OCR" #: bin/gscan2pdf:7915 msgid "Replace" msgstr "Замінити" #: bin/gscan2pdf:7917 msgid "" "Replace the contents of the text buffer with that from the OCR output." msgstr "Замінити вміст текстового буфера з виводу OCR." #: bin/gscan2pdf:7920 msgid "Prepend" msgstr "" #: bin/gscan2pdf:7921 msgid "Prepend the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7924 msgid "Append" msgstr "" #: bin/gscan2pdf:7925 msgid "Append the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7933 msgid "User-defined tools" msgstr "Інструменти, визначені користувачем" #: bin/gscan2pdf:7954 msgid "View files on saving" msgstr "" #: bin/gscan2pdf:8000 msgid "" "You will have to restart gscanp2df for changes to the temporary directory to " "take effect." msgstr "" "Вам доведеться перезавантажити gscanp2df для того, щоб зміни щодо тимчасової " "теки, вступили в силу." #: bin/gscan2pdf:8092 msgid "" "Use %i and %o for the input and output filenames respectively, or a single " "%i if the image is to be modified in-place.\n" "\n" "The other variable available is:\n" "\n" "%r resolution" msgstr "" #: bin/gscan2pdf:8119 msgid "Properties" msgstr "Властивості" #: lib/Gscan2pdf/Dialog.pm:63 lib/Gscan2pdf/Dialog.pm:79 t/05_Dialog.t:25 msgid "hide-on-delete" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:78 lib/Gscan2pdf/Dialog/Renumber.pm:162 msgid "Renumber" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:98 lib/Gscan2pdf/Dialog/Renumber.pm:207 #: lib/Gscan2pdf/Dialog/Renumber.pm:244 msgid "range" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:102 msgid "Page numbering" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:105 lib/Gscan2pdf/Scanner/Dialog.pm:254 msgid "border_width" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:126 lib/Gscan2pdf/Dialog/Renumber.pm:192 #: lib/Gscan2pdf/Dialog/Renumber.pm:242 t/07_Dialog_Renumber.t:33 #: t/07_Dialog_Renumber.t:45 t/07_Dialog_Renumber.t:59 #: t/07_Dialog_Renumber.t:66 msgid "start" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:147 lib/Gscan2pdf/Dialog/Renumber.pm:193 #: lib/Gscan2pdf/Dialog/Renumber.pm:243 t/07_Dialog_Renumber.t:34 #: t/07_Dialog_Renumber.t:46 t/07_Dialog_Renumber.t:60 #: t/07_Dialog_Renumber.t:67 msgid "increment" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:205 lib/Gscan2pdf/Dialog/Renumber.pm:241 msgid "document" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:295 msgid "" "The current settings would result in duplicate page numbers. Please select " "new start and increment values." msgstr "" #: lib/Gscan2pdf/Document.pm:83 msgid "Thumbnails" msgstr "" #: lib/Gscan2pdf/Document.pm:1502 msgid "Unknown DjVu file structure. Please contact the author." msgstr "" #: lib/Gscan2pdf/Document.pm:1558 #, perl-format msgid "%s is not a recognised image type" msgstr "" #: lib/Gscan2pdf/Document.pm:1580 lib/Gscan2pdf/Document.pm:1637 #, perl-format msgid "Importing page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:1613 msgid "Error extracting images from PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1692 msgid "Setting up PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1703 #, perl-format msgid "Saving page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:1814 lib/Gscan2pdf/Document.pm:2136 #, perl-format msgid "Error compressing image: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1919 #, perl-format msgid "Error creating PDF image object: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1930 #, perl-format msgid "Error embedding file image in %s format to PDF: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1939 msgid "Closing PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1955 #, perl-format msgid "Writing page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:2006 msgid "Error writing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2025 lib/Gscan2pdf/Document.pm:2227 #, perl-format msgid "Can't open file: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:2050 msgid "Error adding text layer to DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2056 msgid "Closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2063 msgid "Error closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2078 #, perl-format msgid "Converting image %i of %i to TIFF" msgstr "" #: lib/Gscan2pdf/Document.pm:2105 msgid "Error writing TIFF" msgstr "" #: lib/Gscan2pdf/Document.pm:2121 msgid "Concatenating TIFFs" msgstr "" #: lib/Gscan2pdf/Document.pm:2140 msgid "Converting to PS" msgstr "" #: lib/Gscan2pdf/Document.pm:2200 lib/Gscan2pdf/Document.pm:2215 msgid "Error saving image" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:158 #, perl-format msgid "Scanning %i pages..." msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:163 #, perl-format msgid "Scanning page %i..." msgstr "Сканується сторінка %i..." #: lib/Gscan2pdf/Frontend/CLI.pm:188 lib/Gscan2pdf/Frontend/CLI.pm:296 msgid "Scanner warming up" msgstr "Сканер розігрівається" #: lib/Gscan2pdf/Frontend/CLI.pm:195 msgid "Document feeder out of documents" msgstr "Відсутні документи" #: lib/Gscan2pdf/Frontend/CLI.pm:212 lib/Gscan2pdf/Frontend/CLI.pm:325 msgid "Device busy" msgstr "Пристрій занятий" #: lib/Gscan2pdf/Frontend/CLI.pm:218 lib/Gscan2pdf/Frontend/CLI.pm:330 msgid "Operation cancelled" msgstr "Дію скасовано" #: lib/Gscan2pdf/Frontend/CLI.pm:223 lib/Gscan2pdf/Frontend/CLI.pm:336 msgid "Unknown message: " msgstr "Невідоме повідомлення: " #: lib/Gscan2pdf/Page.pm:68 lib/Gscan2pdf/Page.pm:73 #, perl-format msgid "Error importing image %s: %s" msgstr "" #: lib/Gscan2pdf/PageRange.pm:33 msgid "Selected" msgstr "Вибрані" #: lib/Gscan2pdf/PageRange.pm:58 msgid "active" msgstr "активний" #: lib/Gscan2pdf/Scanner/Dialog.pm:218 t/061_Scanner_Dialog.t:33 #: t/061_Scanner_Dialog.t:59 msgid "device-list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:496 t/061_Scanner_Dialog.t:139 #: t/061_Scanner_Dialog.t:174 t/062_Scanner_Dialog.t:50 #: t/062_Scanner_Dialog.t:75 msgid "current-scan-options" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:567 msgid "logger" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:650 t/05_Dialog.t:24 msgid "transient-for" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:716 msgid "device_list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:749 t/061_Scanner_Dialog.t:32 msgid "device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:751 msgid "Opening device" msgstr "Відкриття пристрою" #: lib/Gscan2pdf/Scanner/Dialog.pm:760 msgid "Retrieving options" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:41 msgid "Layout" msgstr "Макет" #: lib/Gscan2pdf/Unpaper.pm:44 msgid "Single" msgstr "Одинарна" #: lib/Gscan2pdf/Unpaper.pm:46 msgid "One page per sheet, oriented upwards without rotation." msgstr "Одна сторінка на аркуші, книжкова орієнтація, без обертання" #: lib/Gscan2pdf/Unpaper.pm:49 msgid "Double" msgstr "Подвійна" #: lib/Gscan2pdf/Unpaper.pm:51 msgid "" "Two pages per sheet, landscape orientation (one page on the left half, one " "page on the right half)." msgstr "" "Дві сторінки на аркуші, альбомна орієнтація (одна сторінка на одній " "половині, друга - на інший)." #: lib/Gscan2pdf/Unpaper.pm:59 msgid "# Output pages" msgstr "Виводимих сторінок: #" #: lib/Gscan2pdf/Unpaper.pm:60 msgid "Number of pages to output." msgstr "Кількість виводимих сторінок." #: lib/Gscan2pdf/Unpaper.pm:68 msgid "No deskew" msgstr "Без вирівнювання" #: lib/Gscan2pdf/Unpaper.pm:69 msgid "Disable deskewing." msgstr "Не використовувати функцію вирівнювання листка" #: lib/Gscan2pdf/Unpaper.pm:74 msgid "No mask scan" msgstr "Не шукати маску" #: lib/Gscan2pdf/Unpaper.pm:75 msgid "Disable mask detection." msgstr "Відключити пошук маски" #: lib/Gscan2pdf/Unpaper.pm:80 msgid "No black filter" msgstr "Без фільтру чорного кольору" #: lib/Gscan2pdf/Unpaper.pm:81 msgid "Disable black area scan." msgstr "Відключити пошук чорних областей" #: lib/Gscan2pdf/Unpaper.pm:86 msgid "No gray filter" msgstr "Без фільтру сірого кольору" #: lib/Gscan2pdf/Unpaper.pm:87 msgid "Disable gray area scan." msgstr "Відключити пошук сірих областей" #: lib/Gscan2pdf/Unpaper.pm:92 msgid "No noise filter" msgstr "Без фільтру шуму" #: lib/Gscan2pdf/Unpaper.pm:93 msgid "Disable noise filter." msgstr "Відключити фільтр шуму" #: lib/Gscan2pdf/Unpaper.pm:98 msgid "No blur filter" msgstr "Без фільтру розмивання" #: lib/Gscan2pdf/Unpaper.pm:99 msgid "Disable blur filter." msgstr "Відключити фільтр розмивання" #: lib/Gscan2pdf/Unpaper.pm:104 msgid "No border scan" msgstr "Без пошуку країв" #: lib/Gscan2pdf/Unpaper.pm:105 msgid "Disable border scanning." msgstr "Відключити пошук країв" #: lib/Gscan2pdf/Unpaper.pm:110 msgid "No border align" msgstr "Не вирівнювати краї" #: lib/Gscan2pdf/Unpaper.pm:112 msgid "Disable aligning of the area detected by border scanning." msgstr "Відключити вирівнювання області, виявленої при пошуку країв." #: lib/Gscan2pdf/Unpaper.pm:117 msgid "Deskew to edge" msgstr "Краї маски" #: lib/Gscan2pdf/Unpaper.pm:119 msgid "" "Edges from which to scan for rotation. Each edge of a mask can be used to " "detect the mask's rotation. If multiple edges are specified, the average " "value will be used, unless the statistical deviation exceeds --deskew-scan-" "deviation." msgstr "" "Краї, від яких шукати обертання. Кожен край маски може бути використаний для " "визначення обертання маски. Якщо вказано кілька країв, буде використано " "середнє значення, якщо статистичне відхилення не перевищує --deskew-scan-" "deviation." #: lib/Gscan2pdf/Unpaper.pm:125 msgid "Use 'left' for scanning from the left edge." msgstr "Для сканування від лівого краю" #: lib/Gscan2pdf/Unpaper.pm:130 msgid "Use 'top' for scanning from the top edge." msgstr "Для сканування від верхнього краю" #: lib/Gscan2pdf/Unpaper.pm:134 lib/Gscan2pdf/Unpaper.pm:162 msgid "Right" msgstr "Правий" #: lib/Gscan2pdf/Unpaper.pm:135 msgid "Use 'right' for scanning from the right edge." msgstr "Для сканування від правого краю" #: lib/Gscan2pdf/Unpaper.pm:139 lib/Gscan2pdf/Unpaper.pm:167 msgid "Bottom" msgstr "Нижній" #: lib/Gscan2pdf/Unpaper.pm:140 msgid "Use 'bottom' for scanning from the bottom." msgstr "Для сканування від нижнього краю" #: lib/Gscan2pdf/Unpaper.pm:147 msgid "Align to edge" msgstr "Вирівнювання по краю" #: lib/Gscan2pdf/Unpaper.pm:148 msgid "Edge to which to align the page." msgstr "По якому краю вирівнювати сторінку" #: lib/Gscan2pdf/Unpaper.pm:153 msgid "Use 'left' to align to the left edge." msgstr "Використовуйте «Лівий» для вирівнювання по лівому краю" #: lib/Gscan2pdf/Unpaper.pm:158 msgid "Use 'top' to align to the top edge." msgstr "Використовуйте «Верхній» для вирівнювання по верхньому краю" #: lib/Gscan2pdf/Unpaper.pm:163 msgid "Use 'right' to align to the right edge." msgstr "Використовуйте «Правий» для вирівнювання по правому краю" #: lib/Gscan2pdf/Unpaper.pm:168 msgid "Use 'bottom' to align to the bottom." msgstr "Використовуйте «Нижній» для вирівнювання по нижньому краю" #: lib/Gscan2pdf/Unpaper.pm:174 msgid "Border margin" msgstr "Полоси країв" #: lib/Gscan2pdf/Unpaper.pm:178 msgid "Vertical margin" msgstr "Вертикальне поле" #: lib/Gscan2pdf/Unpaper.pm:180 msgid "" "Vertical distance to keep from the sheet edge when aligning a border area." msgstr "" "Відстань по вертикалі, яку слід відступити від краю листа при вирівнюванні " "крайової області." #: lib/Gscan2pdf/Unpaper.pm:189 msgid "Horizontal margin" msgstr "Горизонтальне поле" #: lib/Gscan2pdf/Unpaper.pm:191 msgid "" "Horizontal distance to keep from the sheet edge when aligning a border area." msgstr "" "Відстань по горизонталі, яку слід відступити від краю листа при вирівнюванні " "крайової області." #: lib/Gscan2pdf/Unpaper.pm:202 msgid "White threshold" msgstr "Поріг білого" #: lib/Gscan2pdf/Unpaper.pm:204 msgid "Brightness ratio above which a pixel is considered white." msgstr "Співвідношення яскравості, вище якого піксель вважається білим" #: lib/Gscan2pdf/Unpaper.pm:212 msgid "Black threshold" msgstr "Поріг чорного" #: lib/Gscan2pdf/Unpaper.pm:214 msgid "" "Brightness ratio below which a pixel is considered black (non-gray). This is " "used by the gray-filter. This value is also used when converting a grayscale " "image to black-and-white mode." msgstr "" "Значення насиченості кольору, при котрому точка зображення вважатиметься " "чорною, а не сірою. Використовується для \"відсіювання\" сірих елементів, чи " "переведенні зображення з відтінків сірого в чорно-біле." #: lib/Gscan2pdf/Unpaper.pm:250 msgid "Deskew" msgstr "Вирівнювання" #: lib/Gscan2pdf/Unpaper.pm:280 msgid "Border" msgstr "Краї" #: lib/Gscan2pdf/Unpaper.pm:337 msgid "Filters" msgstr "Фільтри" #: t/05_Dialog.t:23 msgid "title" msgstr "" #: t/05_Dialog.t:26 t/05_Dialog.t:31 t/05_Dialog.t:32 t/05_Dialog.t:38 #: t/05_Dialog.t:39 msgid "border-width" msgstr "" #: t/061_Scanner_Dialog.t:34 msgid "dir" msgstr "" #: t/061_Scanner_Dialog.t:36 msgid "max-pages" msgstr "" #: t/061_Scanner_Dialog.t:39 msgid "side-to-scan" msgstr "" #: t/061_Scanner_Dialog.t:40 t/061_Scanner_Dialog.t:185 msgid "available-scan-options" msgstr "" #: t/061_Scanner_Dialog.t:171 t/062_Scanner_Dialog.t:73 msgid "profile" msgstr "" gscan2pdf-1.2.3/po/gscan2pdf-tr.po0000644000175000017500000013660712243440507015260 0ustar jeffjeff# Turkish translation for gscan2pdf # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the gscan2pdf package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: gscan2pdf\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-10-25 08:12+0200\n" "PO-Revision-Date: 2013-07-08 09:30+0000\n" "Last-Translator: Utku BERBEROĞLU \n" "Language-Team: Turkish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-19 09:22+0000\n" "X-Generator: Launchpad (build 16831)\n" #: bin/gscan2pdf:157 msgid "Error displaying help" msgstr "Yardım görüntülemede hata" #: bin/gscan2pdf:201 msgid "" "Error: unable to load settings.\n" "Backing up settings\n" "Reverting to defaults" msgstr "" "Hata: ayarlar yüklenemedi.\n" "Ayarlar yedekleniyor\n" "Öntanımlılara dönülüyor" #: bin/gscan2pdf:244 msgid "A4" msgstr "A4" #: bin/gscan2pdf:250 msgid "US Letter" msgstr "US Letter" #: bin/gscan2pdf:256 msgid "US Legal" msgstr "US Legal" #: bin/gscan2pdf:323 bin/gscan2pdf:344 #, perl-format msgid "Cannot read file: %s" msgstr "Dosya okunamıyor: %s" #: bin/gscan2pdf:451 msgid "_File" msgstr "_Dosya" #: bin/gscan2pdf:454 msgid "_New" msgstr "_Yeni" #: bin/gscan2pdf:455 msgid "Clears all pages" msgstr "Tüm sayfaları temizle" #: bin/gscan2pdf:459 msgid "_Open" msgstr "_Aç" #: bin/gscan2pdf:460 msgid "Open image file(s)" msgstr "Görüntü dosyasını(larını) aç" #: bin/gscan2pdf:465 msgid "S_can" msgstr "_Tara" #: bin/gscan2pdf:467 msgid "Scan document" msgstr "Belge tara" #: bin/gscan2pdf:471 bin/gscan2pdf:472 bin/gscan2pdf:2582 msgid "Save" msgstr "Kaydet" #: bin/gscan2pdf:476 msgid "_Email as PDF" msgstr "Pdf olarak gönder" #: bin/gscan2pdf:477 msgid "Attach as PDF to a new email" msgstr "Yeni bir epostaya pdf olarak ekle" #: bin/gscan2pdf:480 msgid "_Print" msgstr "Ya_zdır" #: bin/gscan2pdf:481 msgid "Print" msgstr "Yazdır" #: bin/gscan2pdf:485 msgid "_Compress temporary files" msgstr "_Geçici dosyaları sıkıştır" #: bin/gscan2pdf:486 msgid "Compress temporary files" msgstr "Geçici dosyaları sıkıştır" #: bin/gscan2pdf:490 msgid "_Quit" msgstr "_Çık" #: bin/gscan2pdf:491 msgid "Quit" msgstr "Çık" #: bin/gscan2pdf:495 msgid "_Edit" msgstr "_Düzenle" #: bin/gscan2pdf:497 msgid "_Undo" msgstr "_Geri Al" #: bin/gscan2pdf:497 msgid "Undo" msgstr "Geri Al" #: bin/gscan2pdf:501 msgid "_Redo" msgstr "_Yinele" #: bin/gscan2pdf:502 msgid "Redo" msgstr "Yinele" #: bin/gscan2pdf:506 msgid "Cu_t" msgstr "_Kes" #: bin/gscan2pdf:507 msgid "Cut selection" msgstr "Seçimi kes" #: bin/gscan2pdf:511 msgid "_Copy" msgstr "_Kopyala" #: bin/gscan2pdf:512 msgid "Copy selection" msgstr "Seçimi kopyala" #: bin/gscan2pdf:516 msgid "_Paste" msgstr "Yapıştır" #: bin/gscan2pdf:517 msgid "Paste selection" msgstr "Seçimi yapıştır" #: bin/gscan2pdf:521 msgid "_Delete" msgstr "_Sil" #: bin/gscan2pdf:522 msgid "Delete selected pages" msgstr "Seçili sayfaları sil" #: bin/gscan2pdf:526 msgid "_Renumber" msgstr "_Yeniden numaralandır" #: bin/gscan2pdf:527 msgid "Renumber pages" msgstr "Sayfaları yeniden numaralandır" #: bin/gscan2pdf:529 bin/gscan2pdf:679 msgid "_Select" msgstr "_Seç" #: bin/gscan2pdf:532 msgid "_All" msgstr "_Tümü" #: bin/gscan2pdf:533 msgid "Select all pages" msgstr "Bütün sayfaları seç" #: bin/gscan2pdf:536 msgid "_Odd" msgstr "_Tekleri" #: bin/gscan2pdf:537 msgid "Select all odd-numbered pages" msgstr "Tüm tek numaralı sayfaları seç." #: bin/gscan2pdf:541 msgid "_Even" msgstr "_Çiftleri" #: bin/gscan2pdf:542 msgid "Select all evenly-numbered pages" msgstr "Tüm çift numaralı sayfaları seç." #: bin/gscan2pdf:547 msgid "_Blank" msgstr "_boşları" #: bin/gscan2pdf:548 msgid "Select pages with low standard deviation" msgstr "Sayfaları düşük standart sapma ile seç" #: bin/gscan2pdf:552 msgid "_Dark" msgstr "_Karanlık" #: bin/gscan2pdf:553 msgid "Select dark pages" msgstr "Karanlık sayfaları seç" #: bin/gscan2pdf:558 msgid "_Modified" msgstr "_Değiştirilmişleri" #: bin/gscan2pdf:560 msgid "Select modified pages since last OCR" msgstr "Son OKT işleminden beri değiştirilen sayfaları seç." #: bin/gscan2pdf:565 msgid "_No OCR" msgstr "OKT yapma." #: bin/gscan2pdf:566 msgid "Select pages with no OCR output" msgstr "OKT çıktısı olmayan sayfaları seç" #: bin/gscan2pdf:570 msgid "_Clear OCR" msgstr "_OKT'yi temizle." #: bin/gscan2pdf:571 msgid "Clear OCR output from selected pages" msgstr "Seçili sayfalardan OKT çıktısını sil" #: bin/gscan2pdf:575 msgid "Propert_ies" msgstr "Özellikler" #: bin/gscan2pdf:576 msgid "Edit image properties" msgstr "Resim özelliklerini değiştir" #: bin/gscan2pdf:580 msgid "Prefere_nces" msgstr "_Seçenekler" #: bin/gscan2pdf:581 msgid "Edit preferences" msgstr "Tercihleri düzenle" #: bin/gscan2pdf:585 msgid "_View" msgstr "Görünüm" #: bin/gscan2pdf:588 msgid "Zoom _100%" msgstr "Tam _Boy Göster (%100)" #: bin/gscan2pdf:589 msgid "Zoom to 100%" msgstr "Tam Boy Göster (100%)" #: bin/gscan2pdf:593 msgid "Zoom to _fit" msgstr "Ekrana sığdır" #: bin/gscan2pdf:594 msgid "Zoom to fit" msgstr "Ekrana sığdır" #: bin/gscan2pdf:598 msgid "Zoom _in" msgstr "Yakı_nlaştır" #: bin/gscan2pdf:599 msgid "Zoom in" msgstr "Yakınlaştır" #: bin/gscan2pdf:603 msgid "Zoom _out" msgstr "Uzaklaştır" #: bin/gscan2pdf:604 msgid "Zoom out" msgstr "Uzaklaştır" #: bin/gscan2pdf:609 bin/gscan2pdf:611 msgid "Rotate 90 clockwise" msgstr "Saat yönünde 90 derece döndür" #: bin/gscan2pdf:617 bin/gscan2pdf:619 msgid "Rotate 180" msgstr "180 derece döndür" #: bin/gscan2pdf:625 bin/gscan2pdf:627 msgid "Rotate 90 anticlockwise" msgstr "Saatin tersi yönünde 90 derece döndür" #: bin/gscan2pdf:632 msgid "_Tools" msgstr "_Araçlar" #: bin/gscan2pdf:634 msgid "_Threshold" msgstr "_Eşik" #: bin/gscan2pdf:635 msgid "Change each pixel above this threshold to black" msgstr "Bu eşiğin üstündeki her pikseli siyaha dönüştür" #: bin/gscan2pdf:639 msgid "_Negate" msgstr "_Negatif" #: bin/gscan2pdf:640 msgid "Converts black to white and vice versa" msgstr "Siyahı beyaza ve beyazı siyaha dönüştür." #: bin/gscan2pdf:644 msgid "_Unsharp Mask" msgstr "_Bulanıklık maskesi" #: bin/gscan2pdf:645 msgid "Apply an unsharp mask" msgstr "Bulanıklık maskesi uygula" #: bin/gscan2pdf:648 msgid "_Crop" msgstr "Kır_p" #: bin/gscan2pdf:649 msgid "Crop pages" msgstr "Sayfaları kırp" #: bin/gscan2pdf:653 msgid "_Clean up" msgstr "_Düzelt" #: bin/gscan2pdf:654 bin/gscan2pdf:4085 msgid "Clean up scanned images with unpaper" msgstr "Taranmış görüntüleri unpaper ile düzelt" #: bin/gscan2pdf:657 msgid "_OCR" msgstr "_OKT" #: bin/gscan2pdf:658 msgid "Optical Character Recognition" msgstr "Optik Karakter Tanıma" #: bin/gscan2pdf:660 msgid "U_ser-defined" msgstr "Ku_llanıcı Tanımlı" #: bin/gscan2pdf:663 bin/gscan2pdf:665 msgid "_Help" msgstr "_Yardım" #: bin/gscan2pdf:666 msgid "Help" msgstr "Yardım" #: bin/gscan2pdf:668 msgid "_About" msgstr "_Hakkında" #: bin/gscan2pdf:674 msgid "_Drag" msgstr "_Sürükle" #: bin/gscan2pdf:675 msgid "Use the hand tool" msgstr "El aracını kullan" #: bin/gscan2pdf:680 msgid "Use the rectangular selection tool" msgstr "Dikdörtgen seçim aracını kullan" #: bin/gscan2pdf:684 msgid "_Paint" msgstr "_Boyama" #: bin/gscan2pdf:685 msgid "Use the painter tool" msgstr "Boyama aracını kullan" #: bin/gscan2pdf:965 lib/Gscan2pdf/Document.pm:2594 #: lib/Gscan2pdf/Document.pm:2595 msgid "Error copying page" msgstr "Sayfa kopyalamada hata" #: bin/gscan2pdf:1082 msgid "Image" msgstr "Görüntü" #: bin/gscan2pdf:1117 msgid "OCR Output" msgstr "OKT çıktısı" #: bin/gscan2pdf:1174 msgid "Mode" msgstr "Mod" #: bin/gscan2pdf:1176 msgid "Lineart" msgstr "Siyah-Beyaz" #: bin/gscan2pdf:1177 msgid "Grayscale" msgstr "Gri tonlama" #: bin/gscan2pdf:1178 msgid "Gray" msgstr "Gri" #: bin/gscan2pdf:1179 msgid "Color" msgstr "Renk" #: bin/gscan2pdf:1180 msgid "Black & White" msgstr "Siyah & Beyaz" #: bin/gscan2pdf:1181 msgid "True Gray" msgstr "Gerçek Gri" #: bin/gscan2pdf:1182 msgid "Binary" msgstr "İkilik" #: bin/gscan2pdf:1183 bin/gscan2pdf:1242 bin/gscan2pdf:1243 msgid "Auto" msgstr "Oto" #: bin/gscan2pdf:1184 msgid "Halftone" msgstr "Yarıton" #: bin/gscan2pdf:1185 msgid "24bit Color" msgstr "24bit Renkli" #: bin/gscan2pdf:1189 bin/gscan2pdf:2547 bin/gscan2pdf:2644 msgid "Compression" msgstr "Sıkıştırma" #: bin/gscan2pdf:1191 bin/gscan2pdf:2539 bin/gscan2pdf:2636 msgid "None" msgstr "Yok" #: bin/gscan2pdf:1192 bin/gscan2pdf:2537 bin/gscan2pdf:2601 bin/gscan2pdf:2622 msgid "JPEG" msgstr "JPEG" #: bin/gscan2pdf:1195 bin/gscan2pdf:8127 msgid "Resolution" msgstr "Çözünürlük" #: bin/gscan2pdf:1196 msgid "Brightness" msgstr "Parlaklık" #: bin/gscan2pdf:1197 msgid "Gain" msgstr "Kazanç" #: bin/gscan2pdf:1198 msgid "Contrast" msgstr "Kontrast" #: bin/gscan2pdf:1199 bin/gscan2pdf:6406 bin/gscan2pdf:6417 bin/gscan2pdf:6620 msgid "Threshold" msgstr "Eşik" #: bin/gscan2pdf:1201 msgid "Speed" msgstr "Hız" #: bin/gscan2pdf:1203 bin/gscan2pdf:1210 bin/gscan2pdf:1217 bin/gscan2pdf:1224 #: bin/gscan2pdf:1231 msgid "Yes" msgstr "Evet" #: bin/gscan2pdf:1204 bin/gscan2pdf:1211 bin/gscan2pdf:1218 bin/gscan2pdf:1225 #: bin/gscan2pdf:1232 msgid "No" msgstr "Hayır" #: bin/gscan2pdf:1208 msgid "Batch scan" msgstr "Toplu tarama" #: bin/gscan2pdf:1215 bin/gscan2pdf:1222 msgid "Wait for button" msgstr "Düğme için bekle" #: bin/gscan2pdf:1229 msgid "Cache calibration" msgstr "Önbellek kalibrasyonu" #: bin/gscan2pdf:1236 msgid "Source" msgstr "Kaynak" #: bin/gscan2pdf:1238 msgid "Normal" msgstr "Normal" #: bin/gscan2pdf:1239 msgid "ADF" msgstr "ADF" #: bin/gscan2pdf:1240 msgid "Automatic Document Feeder" msgstr "ADF (Otomatik Belge Besleme)" #: bin/gscan2pdf:1241 msgid "XPA" msgstr "XPA" #: bin/gscan2pdf:1244 msgid "Flatbed" msgstr "Düz yatak" #: bin/gscan2pdf:1245 msgid "Transparency Adapter" msgstr "Saydamlık Bağdaştırıcısı" #: bin/gscan2pdf:1246 msgid "Transparency Unit" msgstr "Saydamlık Birimi" #: bin/gscan2pdf:1249 bin/gscan2pdf:1251 msgid "Page Width" msgstr "Sayfa Genişliği" #: bin/gscan2pdf:1250 bin/gscan2pdf:1252 msgid "Page Height" msgstr "Sayfa Yüksekliği" #: bin/gscan2pdf:1253 msgid "Top Overscan" msgstr "" #: bin/gscan2pdf:1254 msgid "Bottom Overscan" msgstr "" #: bin/gscan2pdf:1256 bin/gscan2pdf:1263 msgid "ADF Mode" msgstr "ADF Kipi" #: bin/gscan2pdf:1258 bin/gscan2pdf:1265 msgid "Simplex" msgstr "Tek yönlü" #: bin/gscan2pdf:1259 bin/gscan2pdf:1266 msgid "Duplex" msgstr "Çift Yönlü" #: bin/gscan2pdf:1301 bin/gscan2pdf:1306 msgid "Pick crashed session to restore" msgstr "Kurtarmak için çökmüş oturumu seç" #: bin/gscan2pdf:1308 bin/gscan2pdf:2609 msgid "Session" msgstr "Oturum" #: bin/gscan2pdf:1338 #, perl-format msgid "" "Warning: unable to use %s for temporary storage. Defaulting to %s instead." msgstr "" "Uyarı: %s geçici depolama için kullanılamıyor. %s yerine varsayılan " "ayarlanıyor." #: bin/gscan2pdf:1441 msgid "GOCR" msgstr "GOCR" #: bin/gscan2pdf:1441 msgid "Process image with GOCR." msgstr "Görüntüyü GOCR ile işle." #: bin/gscan2pdf:1445 msgid "Tesseract" msgstr "Tesseract" #: bin/gscan2pdf:1446 msgid "Process image with Tesseract." msgstr "Görüntüyü Tesseract ile işle." #: bin/gscan2pdf:1450 msgid "Ocropus" msgstr "Ocropus" #: bin/gscan2pdf:1450 msgid "Process image with Ocropus." msgstr "Görüntüyü Ocropus'la işle" #: bin/gscan2pdf:1454 msgid "Cuneiform" msgstr "Cuneiform" #: bin/gscan2pdf:1455 msgid "Process image with Cuneiform." msgstr "Görüntüyü Cuneiform ile işle" #: bin/gscan2pdf:1461 msgid "Save image and Save as PDF both require imagemagick\n" msgstr "" "Görüntü kaydetme ve PDF olarak kaydetme işlemleri imagemagick'e ihtiyaç " "duyar.\n" #: bin/gscan2pdf:1465 msgid "Save image requires libtiff\n" msgstr "Görüntü kaydetme işlemi libtiff kütüphanesini gerektirir.\n" #: bin/gscan2pdf:1469 msgid "Save as DjVu requires djvulibre-bin\n" msgstr "DjVu olarak kaydetmek için djvulibre-bin gerekir.\n" #: bin/gscan2pdf:1473 msgid "Email as PDF requires xdg-email\n" msgstr "PDF olarak göndermek için xdg-email gerektirir.\n" #: bin/gscan2pdf:1518 msgid "The rotating options and unpaper support require perlmagick\n" msgstr "" "Bu döndürme seçenekleri ve unpaper deşteği perlmagick gerektiriyor.\n" #: bin/gscan2pdf:1524 msgid "unpaper missing\n" msgstr "unpaper eksik\n" #: bin/gscan2pdf:1534 msgid "OCR requires gocr, tesseract, ocropus, or cuneiform\n" msgstr "OKT, gocr, tesseract,ocropus yada cuneiform gerektirir.\n" #: bin/gscan2pdf:1539 msgid "Warning: missing packages" msgstr "Uyarı: eksik paketler" #: bin/gscan2pdf:1544 msgid "Don't show this message again" msgstr "Bu iletiyi bir daha gösterme" #: bin/gscan2pdf:1753 msgid "" "Some pages have not been saved.\n" "Do you really want to clear all pages?" msgstr "" "Bazı sayfalar kaydedilmedi.\n" "Gerçekten tüm sayfaları temizlemeyi istiyor musunuz?" #: bin/gscan2pdf:1828 bin/gscan2pdf:1858 #, perl-format msgid "Process %i of %i (%s)" msgstr "İşleniyor %i/%i (%s)" #: bin/gscan2pdf:1867 #, perl-format msgid "Process %i of %i" msgstr "İşleniyor %i/%i" #: bin/gscan2pdf:1895 msgid "Open image" msgstr "Görüntü Aç" #: bin/gscan2pdf:1903 bin/gscan2pdf:2797 bin/gscan2pdf:3113 msgid "Image files" msgstr "Görüntü dosyaları" #: bin/gscan2pdf:1940 msgid "Pages to extract" msgstr "Ayıklanacak sayfalar" #: bin/gscan2pdf:1943 bin/gscan2pdf:2117 bin/gscan2pdf:2586 bin/gscan2pdf:3353 #: bin/gscan2pdf:3494 bin/gscan2pdf:4104 bin/gscan2pdf:4514 bin/gscan2pdf:5825 #: bin/gscan2pdf:6409 bin/gscan2pdf:6495 bin/gscan2pdf:6565 bin/gscan2pdf:6737 #: bin/gscan2pdf:7011 bin/gscan2pdf:7274 bin/gscan2pdf:7757 bin/gscan2pdf:8123 #: lib/Gscan2pdf/Dialog.pm:56 lib/Gscan2pdf/Dialog/Renumber.pm:80 #: lib/Gscan2pdf/Scanner/Dialog.pm:201 t/05_Dialog.t:28 msgid "vbox" msgstr "" #: bin/gscan2pdf:1946 msgid "First page to extract" msgstr "Ayıklanacak ilk sayfa" #: bin/gscan2pdf:1953 msgid "Last page to extract" msgstr "Ayıklanacak son sayfa" #: bin/gscan2pdf:2042 lib/Gscan2pdf/Dialog/Renumber.pm:83 msgid "Page Range" msgstr "Sayfa Aralığı" #: bin/gscan2pdf:2092 msgid "Metadata" msgstr "Üstveri" #: bin/gscan2pdf:2101 msgid "Date" msgstr "Tarih" #: bin/gscan2pdf:2114 msgid "Select Date" msgstr "Tarihi Seçin" #: bin/gscan2pdf:2136 msgid "Today" msgstr "Bugün" #: bin/gscan2pdf:2150 msgid "Year-Month-Day" msgstr "Yıl-Ay-Gün" #: bin/gscan2pdf:2156 msgid "Document author" msgstr "Belgenin Yazarı" #: bin/gscan2pdf:2165 msgid "Title" msgstr "Başlık" #: bin/gscan2pdf:2174 msgid "Subject" msgstr "Konu" #: bin/gscan2pdf:2183 msgid "Keywords" msgstr "Anahtar kelimeler" #: bin/gscan2pdf:2245 msgid "Editing text" msgstr "Metin düzenleme" #: bin/gscan2pdf:2252 bin/gscan2pdf:2258 bin/gscan2pdf:2332 msgid "text" msgstr "metin" #: bin/gscan2pdf:2352 msgid "PDF filename" msgstr "PDF dosyası adı" #: bin/gscan2pdf:2381 msgid "PDF files" msgstr "PDF dosyaları" #: bin/gscan2pdf:2405 bin/gscan2pdf:2823 bin/gscan2pdf:2880 bin/gscan2pdf:2976 #: bin/gscan2pdf:3035 bin/gscan2pdf:3087 bin/gscan2pdf:3275 #, perl-format msgid "File %s is read-only" msgstr "%s dosyası salt-okunur" #: bin/gscan2pdf:2482 msgid "JPEG Quality" msgstr "JPEG Kalitesi" #: bin/gscan2pdf:2496 msgid "Downsample to" msgstr "Önizlemesi" #: bin/gscan2pdf:2501 msgid "PPI" msgstr "PPI" #: bin/gscan2pdf:2520 msgid "Automatic" msgstr "Otomatik" #: bin/gscan2pdf:2521 msgid "Let gscan2pdf which type of compression to use." msgstr "gscan2pdf'nin hangi sıkıştırma biçimini kullanacağını belirleyin." #: bin/gscan2pdf:2524 bin/gscan2pdf:2616 msgid "LZW" msgstr "LZW" #: bin/gscan2pdf:2525 bin/gscan2pdf:2617 msgid "Compress output with Lempel-Ziv & Welch encoding." msgstr "Çıktıyı Lempel-Ziv & Welch kodlaması ile sıkıştır." #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Zip" msgstr "Zip" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Compress output with deflate encoding." msgstr "Çıktıyı deflate kodlaması ile sıkıştır." #: bin/gscan2pdf:2529 bin/gscan2pdf:2624 msgid "Packbits" msgstr "Packbits" #: bin/gscan2pdf:2530 bin/gscan2pdf:2625 msgid "Compress output with Packbits encoding." msgstr "Çıktıyı Packbits kodlamasıyla sıkıştır." #: bin/gscan2pdf:2536 bin/gscan2pdf:2604 msgid "PNG" msgstr "PNG" #: bin/gscan2pdf:2536 msgid "Compress output with PNG encoding." msgstr "Çıktıyı PNG kodlamasıyla sıkıştır." #: bin/gscan2pdf:2537 bin/gscan2pdf:2622 msgid "Compress output with JPEG encoding." msgstr "Çıktıyı JPEG kodlamasıyla sıkıştır." #: bin/gscan2pdf:2540 bin/gscan2pdf:2637 msgid "Use no compression algorithm on output." msgstr "Çıktıda sıkıştırma algoritması kullanma." #: bin/gscan2pdf:2594 msgid "Image type" msgstr "Görüntü türü" #: bin/gscan2pdf:2598 msgid "PDF" msgstr "PDF" #: bin/gscan2pdf:2598 msgid "Portable Document Format" msgstr "Taşınabilir Belge Biçimi" #: bin/gscan2pdf:2599 msgid "GIF" msgstr "GIF" #: bin/gscan2pdf:2599 msgid "CompuServe graphics interchange format" msgstr "CompuServe görüntü değiştirme biçimi" #: bin/gscan2pdf:2602 msgid "Joint Photographic Experts Group JFIF format" msgstr "Joint Photographic Experts Group JFIF biçimi" #: bin/gscan2pdf:2604 msgid "Portable Network Graphics" msgstr "Taşınabilir Ağ Grafikleri (PNG)" #: bin/gscan2pdf:2605 msgid "PNM" msgstr "PNM" #: bin/gscan2pdf:2605 msgid "Portable anymap" msgstr "Taşınabilir anymap" #: bin/gscan2pdf:2606 msgid "PS" msgstr "PS" #: bin/gscan2pdf:2606 msgid "Postscript" msgstr "Postscript" #: bin/gscan2pdf:2607 msgid "TIFF" msgstr "TIFF" #: bin/gscan2pdf:2607 msgid "Tagged Image File Format" msgstr "Etiketlenmiş Görüntü Dosya Biçimi" #: bin/gscan2pdf:2608 msgid "Text" msgstr "Yazı" #: bin/gscan2pdf:2608 msgid "Plain text" msgstr "Düz metin" #: bin/gscan2pdf:2609 msgid "gscan2pdf session file" msgstr "gscan2pdf oturum doyası" #: bin/gscan2pdf:2611 msgid "DjVu" msgstr "DjVu" #: bin/gscan2pdf:2611 msgid "Deja Vu" msgstr "Deja Vu" #: bin/gscan2pdf:2628 msgid "G3" msgstr "G3" #: bin/gscan2pdf:2629 msgid "Compress output with CCITT Group 3 encoding." msgstr "Çıktıyı CCITT Group 3 kodlamasıyla sıkıştır." #: bin/gscan2pdf:2632 msgid "G4" msgstr "G4" #: bin/gscan2pdf:2633 msgid "Compress output with CCITT Group 4 encoding." msgstr "Çıktıyı CCITT Group 4 kodlamasıyla sıkıştır." #: bin/gscan2pdf:2649 msgid "tiff" msgstr "tiff" #: bin/gscan2pdf:2681 msgid "Font for non-ASCII text" msgstr "non-ASCII metin için yazı tipi" #: bin/gscan2pdf:2790 msgid "TIFF filename" msgstr "TIFF dosyası adı" #: bin/gscan2pdf:2848 msgid "Text filename" msgstr "Metin dosyası adı" #: bin/gscan2pdf:2856 msgid "Text files" msgstr "Metin dosyaları" #: bin/gscan2pdf:2944 msgid "PS filename" msgstr "PS dosyası adı" #: bin/gscan2pdf:2951 msgid "Postscript files" msgstr "Postscript dosyaları" #: bin/gscan2pdf:3003 msgid "gscan2pdf session filename" msgstr "gscan2pdf oturum dosyası adı" #: bin/gscan2pdf:3010 msgid "gscan2pdf session files" msgstr "gscan2pdf oturum dosyaları" #: bin/gscan2pdf:3093 #, perl-format msgid "" "File %s exists.\n" "Really overwrite?" msgstr "" "%s dosyası var.\n" "Gerçekten üzerine yazılsın mı?" #: bin/gscan2pdf:3106 msgid "Image filename" msgstr "Görüntü dosyası adı" #: bin/gscan2pdf:3245 msgid "DjVu filename" msgstr "DjVu dosyası adı" #: bin/gscan2pdf:3252 msgid "DjVu files" msgstr "DjVu dosyaları" #: bin/gscan2pdf:3349 msgid "Email as PDF" msgstr "PDF olarak gönder" #: bin/gscan2pdf:3454 msgid "Error creating email" msgstr "İleti oluşturmada hata" #: bin/gscan2pdf:3490 bin/gscan2pdf:4313 msgid "Scan Document" msgstr "Belge tara" #: bin/gscan2pdf:3507 lib/Gscan2pdf/Scanner/Dialog.pm:248 msgid "Page Options" msgstr "Sayfa Seçenekleri" #: bin/gscan2pdf:3510 lib/Gscan2pdf/Scanner/Dialog.pm:251 msgid "# Pages" msgstr "# Sayfalar" #: bin/gscan2pdf:3519 lib/Gscan2pdf/PageRange.pm:34 #: lib/Gscan2pdf/Scanner/Dialog.pm:261 msgid "All" msgstr "Tümü" #: bin/gscan2pdf:3520 lib/Gscan2pdf/Scanner/Dialog.pm:262 msgid "Scan all pages" msgstr "Bütün sayfaları tara" #: bin/gscan2pdf:3532 bin/gscan2pdf:3537 lib/Gscan2pdf/Scanner/Dialog.pm:274 #: lib/Gscan2pdf/Scanner/Dialog.pm:279 msgid "Set number of pages to scan" msgstr "Taranacak sayfaların sayısını belirle" #: bin/gscan2pdf:3550 lib/Gscan2pdf/Scanner/Dialog.pm:308 msgid "Extended page numbering" msgstr "Genişletilmiş sayfa numaralandırma" #: bin/gscan2pdf:3554 lib/Gscan2pdf/Scanner/Dialog.pm:312 msgid "Page number" msgstr "Sayfa numarası" #: bin/gscan2pdf:3563 lib/Gscan2pdf/Dialog/Renumber.pm:111 #: lib/Gscan2pdf/Scanner/Dialog.pm:321 msgid "Start" msgstr "Başlangıç" #: bin/gscan2pdf:3572 lib/Gscan2pdf/Dialog/Renumber.pm:132 #: lib/Gscan2pdf/Scanner/Dialog.pm:340 msgid "Increment" msgstr "Artış" #: bin/gscan2pdf:3604 lib/Gscan2pdf/Scanner/Dialog.pm:372 msgid "Source document" msgstr "Kaynak belge" #: bin/gscan2pdf:3611 lib/Gscan2pdf/Scanner/Dialog.pm:379 msgid "Single sided" msgstr "Tek taraflı" #: bin/gscan2pdf:3612 lib/Gscan2pdf/Scanner/Dialog.pm:380 msgid "Source document is single-sided" msgstr "Kaynak belge tek taraflı" #: bin/gscan2pdf:3622 lib/Gscan2pdf/Scanner/Dialog.pm:390 msgid "Double sided" msgstr "Çift taraflı" #: bin/gscan2pdf:3623 lib/Gscan2pdf/Scanner/Dialog.pm:391 msgid "Source document is double-sided" msgstr "Kaynak belge çift taraflı" #: bin/gscan2pdf:3629 lib/Gscan2pdf/Scanner/Dialog.pm:397 msgid "Side to scan" msgstr "Taranacak taraf" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Facing" msgstr "Ön" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Reverse" msgstr "Arka" #: bin/gscan2pdf:3655 lib/Gscan2pdf/Scanner/Dialog.pm:418 msgid "Sets which side of a double-sided document is scanned" msgstr "Çift taraflı belgenin hangi yönünün taranacağını seçiniz" #: bin/gscan2pdf:3719 msgid "Scan Options" msgstr "Tarama Seçenekleri" #: bin/gscan2pdf:3722 msgid "Device-dependent options" msgstr "Aygıt-bağımlı seçenekler" #: bin/gscan2pdf:3729 lib/Gscan2pdf/Scanner/Dialog.pm:458 msgid "Scan profiles" msgstr "Tarama Profilleri" #: bin/gscan2pdf:3778 bin/gscan2pdf:3784 lib/Gscan2pdf/Scanner/Dialog.pm:479 #: lib/Gscan2pdf/Scanner/Dialog.pm:485 msgid "Name of scan profile" msgstr "Tarama profilinin adı" #: bin/gscan2pdf:3828 lib/Gscan2pdf/Scanner/Dialog.pm:518 msgid "Scan" msgstr "Tara" #: bin/gscan2pdf:3866 msgid "Must scan facing pages first" msgstr "Karşılıklı sayfalar önce taranmalı" #: bin/gscan2pdf:3977 msgid "Post-processing" msgstr "Tarama Sonrası İşlemler" #: bin/gscan2pdf:3986 bin/gscan2pdf:4008 msgid "Rotate" msgstr "Döndür" #: bin/gscan2pdf:3987 bin/gscan2pdf:4009 msgid "Rotate image after scanning" msgstr "Taramanın ardından görüntüyü döndür." #: bin/gscan2pdf:3990 msgid "Both sides" msgstr "Her iki tarafı" #: bin/gscan2pdf:3990 msgid "Both sides." msgstr "Her iki tarafı" #: bin/gscan2pdf:3991 msgid "Facing side" msgstr "Ön yüz" #: bin/gscan2pdf:3991 msgid "Facing side." msgstr "Ön yüz" #: bin/gscan2pdf:3992 msgid "Reverse side" msgstr "Arka yüz" #: bin/gscan2pdf:3992 msgid "Reverse side." msgstr "Arka yüz" #: bin/gscan2pdf:3995 bin/gscan2pdf:4013 msgid "Select side to rotate" msgstr "Çevirilecek yüzü seçiniz." #: bin/gscan2pdf:3998 msgid "90" msgstr "90" #: bin/gscan2pdf:3998 msgid "Rotate image 90 degrees clockwise." msgstr "Görüntüyü saat yönünde 90 derece döndür." #: bin/gscan2pdf:3999 msgid "180" msgstr "180" #: bin/gscan2pdf:3999 msgid "Rotate image 180 degrees clockwise." msgstr "Görüntüyü saat yönünde 180 derece döndür." #: bin/gscan2pdf:4000 msgid "270" msgstr "270" #: bin/gscan2pdf:4000 msgid "Rotate image 90 degrees anticlockwise." msgstr "Görüntüyü saatin tersi yönünde 90 derece döndür." #: bin/gscan2pdf:4003 bin/gscan2pdf:4016 msgid "Select direction of rotation" msgstr "Çevirme yönünü seçiniz." #: bin/gscan2pdf:4083 msgid "Clean up images" msgstr "Görüntüleri düzelt" #: bin/gscan2pdf:4094 msgid "Options" msgstr "Seçenekler" #: bin/gscan2pdf:4095 msgid "Set unpaper options" msgstr "Unpaper seçeneklerini belirle" #: bin/gscan2pdf:4101 msgid "unpaper options" msgstr "unpaper seçenekleri" #: bin/gscan2pdf:4136 bin/gscan2pdf:4137 msgid "OCR scanned pages" msgstr "Taranmış sayfalara OKT uygula" #: bin/gscan2pdf:4151 msgid "Select OCR engine" msgstr "OKT motorunu seç" #: bin/gscan2pdf:4210 lib/Gscan2pdf/Scanner/Dialog.pm:634 msgid "Fetching list of devices" msgstr "Aygıtların listesi çıkartılıyor" #: bin/gscan2pdf:4225 lib/Gscan2pdf/Scanner/Dialog.pm:654 msgid "No devices found" msgstr "Aygıt bulunamadı." #: bin/gscan2pdf:4367 bin/gscan2pdf:4732 bin/gscan2pdf:4777 bin/gscan2pdf:5214 #: lib/Gscan2pdf/Scanner/Dialog.pm:343 lib/Gscan2pdf/Scanner/Dialog.pm:348 #: t/061_Scanner_Dialog.t:38 t/061_Scanner_Dialog.t:95 msgid "page-number-increment" msgstr "" #: bin/gscan2pdf:4374 bin/gscan2pdf:4729 bin/gscan2pdf:4730 bin/gscan2pdf:4776 #: bin/gscan2pdf:5213 lib/Gscan2pdf/Scanner/Dialog.pm:361 #: t/061_Scanner_Dialog.t:37 msgid "page-number-start" msgstr "" #: bin/gscan2pdf:4663 lib/Gscan2pdf/Scanner/Dialog.pm:210 msgid "Device" msgstr "Aygıt" #: bin/gscan2pdf:4671 lib/Gscan2pdf/Scanner/Dialog.pm:213 msgid "Rescan for devices" msgstr "Aygıtler için yeniden tara" #: bin/gscan2pdf:4694 lib/Gscan2pdf/Scanner/Dialog.pm:237 msgid "Sets the device to be used for the scan" msgstr "Tarama için kullanılacak aygıtı belirle" #: bin/gscan2pdf:4780 lib/Gscan2pdf/Scanner/Dialog.pm:300 #: t/061_Scanner_Dialog.t:35 msgid "num-pages" msgstr "" #: bin/gscan2pdf:4821 msgid "Scanning" msgstr "Taranıyor" #: bin/gscan2pdf:4974 msgid "Unable to load image" msgstr "Resim yüklenemedi" #: bin/gscan2pdf:5004 msgid "print-pages" msgstr "sayfaları-yazdır" #: bin/gscan2pdf:5008 msgid "page-ranges" msgstr "sayfa-aralıkları" #: bin/gscan2pdf:5405 msgid "Patches gratefully received from:" msgstr "Yamalar minnetle alınan:" #: bin/gscan2pdf:5407 msgid "To aid the scan-to-PDF process" msgstr "PDF tarama sürecine yardımcı olmak için" #: bin/gscan2pdf:5408 msgid "Copyright 2006--2012 Jeffrey Ratcliffe" msgstr "Telif Hakkı 2006--2012 Jeffrey Ratcliffe" #: bin/gscan2pdf:5492 bin/gscan2pdf:6028 msgid "The options cache seems to be empty. Reload device-dependent options?" msgstr "" "Seçenekler önbelleği boş görünüyor. Aygıt-bağımlı seçenekler yeniden " "yüklensin mi?" #: bin/gscan2pdf:5519 bin/gscan2pdf:6054 msgid "Updating options" msgstr "Seçenekler güncelleniyor" #: bin/gscan2pdf:5571 msgid "Paper size" msgstr "Kağıt boyutu" #: bin/gscan2pdf:5572 bin/gscan2pdf:5672 bin/gscan2pdf:5840 bin/gscan2pdf:6769 msgid "Width" msgstr "Genişlik" #: bin/gscan2pdf:5573 bin/gscan2pdf:5678 bin/gscan2pdf:5841 bin/gscan2pdf:6780 msgid "Height" msgstr "Yükseklik" #: bin/gscan2pdf:5574 bin/gscan2pdf:5684 bin/gscan2pdf:5842 #: lib/Gscan2pdf/Unpaper.pm:124 lib/Gscan2pdf/Unpaper.pm:152 msgid "Left" msgstr "Sol" #: bin/gscan2pdf:5575 bin/gscan2pdf:5690 bin/gscan2pdf:5843 #: lib/Gscan2pdf/Unpaper.pm:129 lib/Gscan2pdf/Unpaper.pm:157 msgid "Top" msgstr "Üst" #: bin/gscan2pdf:5589 bin/gscan2pdf:5703 bin/gscan2pdf:6232 msgid "Manual" msgstr "Kullanım Klavuzu" #: bin/gscan2pdf:5590 bin/gscan2pdf:5700 msgid "Edit" msgstr "Düzenle" #: bin/gscan2pdf:5591 msgid "Selects or edits the paper size" msgstr "Kağıt boyunu seçin yada düzenleyin" #: bin/gscan2pdf:5673 msgid "Width of scan area" msgstr "Tarama alanınının eni" #: bin/gscan2pdf:5679 msgid "Height of scan area" msgstr "Tarama alanının boyu" #: bin/gscan2pdf:5685 msgid "Top-left x position of scan area" msgstr "Taranan bölgenin sol-üst x pozisyonu" #: bin/gscan2pdf:5691 msgid "Top-left y position of scan area" msgstr "Taranan bölgenin sol-üst y pozisyonu" #: bin/gscan2pdf:5822 msgid "Edit paper size" msgstr "Kağıt boyutunu düzenle" #: bin/gscan2pdf:5839 msgid "Name" msgstr "İsim" #: bin/gscan2pdf:5893 msgid "Cannot delete all paper sizes" msgstr "Tüm kağıt boyutlarını silemezsiniz." #: bin/gscan2pdf:5955 msgid "" "The following paper sizes are too big to be scanned by the selected device:" msgstr "Seçilen kağıt boyutları seçilen cihazla taramak için çok büyük" #: bin/gscan2pdf:6419 bin/gscan2pdf:6605 msgid "%" msgstr "%" #: bin/gscan2pdf:6492 msgid "Negate" msgstr "Negatif" #: bin/gscan2pdf:6562 msgid "Unsharp mask" msgstr "Bulanıklık maskesi" #: bin/gscan2pdf:6573 msgid "Radius" msgstr "Yarıçap" #: bin/gscan2pdf:6575 bin/gscan2pdf:6592 bin/gscan2pdf:6747 bin/gscan2pdf:6759 #: bin/gscan2pdf:6771 bin/gscan2pdf:6782 msgid "pixels" msgstr "benek" #: bin/gscan2pdf:6582 msgid "" "The radius of the Gaussian, in pixels, not counting the center pixel (0 = " "automatic)." msgstr "" "Gauss'un radiusu. pikseller içinde, merkez piksel sayılmaz.(0 = otomatik)" #: bin/gscan2pdf:6590 msgid "Sigma" msgstr "Sigma" #: bin/gscan2pdf:6597 msgid "The standard deviation of the Gaussian." msgstr "Gauss'un standatr sapması" #: bin/gscan2pdf:6603 msgid "Amount" msgstr "Miktar" #: bin/gscan2pdf:6612 msgid "" "The percentage of the difference between the original and the blur image " "that is added back into the original." msgstr "Orjinal resim ile eklenen bulanık arasındaki değişiklik yüzdesi." #: bin/gscan2pdf:6627 msgid "" "The threshold, as a fraction of QuantumRange, needed to apply the difference " "amount." msgstr "" #: bin/gscan2pdf:6733 msgid "Crop" msgstr "Kırp" #: bin/gscan2pdf:6745 msgid "x" msgstr "x" #: bin/gscan2pdf:6751 msgid "The x-position of the left hand edge of the crop." msgstr "" #: bin/gscan2pdf:6757 msgid "y" msgstr "y" #: bin/gscan2pdf:6763 msgid "The y-position of the top edge of the crop." msgstr "" #: bin/gscan2pdf:6774 msgid "The width of the crop." msgstr "Kırpık alanın eni" #: bin/gscan2pdf:6785 msgid "The height of the crop." msgstr "Kırpık alanın yüksekliği" #: bin/gscan2pdf:6906 msgid "label" msgstr "etiket" #: bin/gscan2pdf:7007 msgid "unpaper" msgstr "unpaper" #: bin/gscan2pdf:7216 bin/gscan2pdf:7244 msgid "Language to recognise" msgstr "Tanınacak dil" #: bin/gscan2pdf:7227 msgid "English" msgstr "İngilizce" #: bin/gscan2pdf:7270 msgid "OCR" msgstr "OKT" #: bin/gscan2pdf:7279 msgid "OCR Engine" msgstr "OKT Motoru" #: bin/gscan2pdf:7323 msgid "Start OCR" msgstr "OKTyi başlat" #: bin/gscan2pdf:7339 msgid "No page selected" msgstr "Sayfa seçilmedi" #: bin/gscan2pdf:7374 msgid "" "Some pages have not been saved.\n" "Do you really want to quit?" msgstr "" "Bazı sayfalar kaydedilmedi.\n" "Gerçekten çıkmak istiyor musunuz?" #: bin/gscan2pdf:7432 #, perl-format msgid "" "The help viewer requires module Gtk2::Ex::PodViewer\n" "Alternatively, try: %s %s\n" "\n" msgstr "" "Yardım görüntüleyici modülü Gtk2::Ex::PodViever gerektirir.\n" "Şunu deneyebilirsiniz, %s %s\n" "\n" #: bin/gscan2pdf:7698 msgid "This operation cannot be undone. Are you sure?" msgstr "Bu işlem geri alınamaz. Emimi misiniz?" #: bin/gscan2pdf:7753 msgid "Preferences" msgstr "Tercihler" #: bin/gscan2pdf:7762 msgid "Frontend" msgstr "Önuç" #: bin/gscan2pdf:7766 msgid "libsane-perl" msgstr "libsane-perl" #: bin/gscan2pdf:7767 msgid "Scan using the perl bindings for SANE." msgstr "SANE için perl bağlayıcılarını kullanarak tara" #: bin/gscan2pdf:7770 msgid "scanimage" msgstr "scanimage" #: bin/gscan2pdf:7771 msgid "Scan using the scanimage frontend." msgstr "Scanimage önucu kullanarak tara" #: bin/gscan2pdf:7775 msgid "scanimage-perl" msgstr "scanimage-perl" #: bin/gscan2pdf:7776 msgid "Scan using the scanimage-perl frontend." msgstr "Scanimage-perl önucu ile tara" #: bin/gscan2pdf:7779 msgid "scanadf-perl" msgstr "scanadf-perl" #: bin/gscan2pdf:7780 msgid "Scan using the scanadf-perl frontend." msgstr "Scanadf-perl'i önuç olarak kullanaral tara." #: bin/gscan2pdf:7785 msgid "scanadf" msgstr "scanadf" #: bin/gscan2pdf:7786 msgid "Scan using the scanadf frontend." msgstr "Scanadf'yi ön uç olarak kullanarak tara" #: bin/gscan2pdf:7791 msgid "Cycle SANE handle after scan" msgstr "Taramadan sonra SANE işlemesini yinele." #: bin/gscan2pdf:7814 msgid "Default filename for PDFs" msgstr "PDF'ler için varsayılan dosya adı" #: bin/gscan2pdf:7820 msgid "" "%a\t author\n" "%t\t title\n" "%y\t document's year\n" "%Y\t today's year\n" "%m\t document's month\n" "%M\t today's month\n" "%d\t document's day\n" "%D\t today's day" msgstr "" "%a\t yazar\n" "%t\t başlık\n" "%y\t belgenin yazım yılı\n" "%Y\t şu anki yıl\n" "%m\t belgenin yazım ayı\n" "%M\t şu anki ay\n" "%d\t belgenin yazım günü\n" "%D\t şu anki gün" #: bin/gscan2pdf:7830 msgid "Scan command prefix" msgstr "Tarama komutu öneki" #: bin/gscan2pdf:7839 msgid "Restore window settings on startup" msgstr "Pencere ayarlarını açılışta eskiye döndür" #: bin/gscan2pdf:7845 msgid "Cache device-dependent options" msgstr "Aygıt-bağımlı seçenekleri önbelleğe al" #: bin/gscan2pdf:7851 msgid "Clear device-dependent options cache" msgstr "Aygıt-bağımlı seçenekler önbelleğini boşalt" #: bin/gscan2pdf:7862 msgid "Temporary directory" msgstr "Geçici dizin" #: bin/gscan2pdf:7867 msgid "Browse" msgstr "Gözat" #: bin/gscan2pdf:7871 msgid "Select temporary directory" msgstr "Geçici dizini seç" #: bin/gscan2pdf:7888 msgid "Blank threshold" msgstr "Boş sayfa eşik değeri" #: bin/gscan2pdf:7893 msgid "Threshold used for selecting blank pages" msgstr "Boş sayfaları seçmek için kullanılan eşik değeri" #: bin/gscan2pdf:7899 msgid "Dark threshold" msgstr "Karanlık-Belirsiz eşik değeri" #: bin/gscan2pdf:7904 msgid "Threshold used for selecting dark pages" msgstr "Karanlık-Belirsiz sayfaları seçmek için kullanılan eşik değeri" #: bin/gscan2pdf:7910 msgid "OCR output" msgstr "OKT çıktısı" #: bin/gscan2pdf:7915 msgid "Replace" msgstr "Üzerine Yaz" #: bin/gscan2pdf:7917 msgid "" "Replace the contents of the text buffer with that from the OCR output." msgstr "Metin arabelleğini OCR çıktısıyla değiştir." #: bin/gscan2pdf:7920 msgid "Prepend" msgstr "Başına ekle" #: bin/gscan2pdf:7921 msgid "Prepend the OCR output to the text buffer." msgstr "OKT çıktısını metin arabelleğinin başına ekle" #: bin/gscan2pdf:7924 msgid "Append" msgstr "Ekle" #: bin/gscan2pdf:7925 msgid "Append the OCR output to the text buffer." msgstr "OKT çıktısını metin arabelleğine ekle" #: bin/gscan2pdf:7933 msgid "User-defined tools" msgstr "Kullanıcı tanımlı araçlar" #: bin/gscan2pdf:7954 msgid "View files on saving" msgstr "Kaydederken dosyaları göster." #: bin/gscan2pdf:8000 msgid "" "You will have to restart gscanp2df for changes to the temporary directory to " "take effect." msgstr "" "Geçici dizin değişiminin etkili olabilmesi için gscanp2df'yi yeniden " "başlatmalısınız." #: bin/gscan2pdf:8092 msgid "" "Use %i and %o for the input and output filenames respectively, or a single " "%i if the image is to be modified in-place.\n" "\n" "The other variable available is:\n" "\n" "%r resolution" msgstr "" "Girdi ve çıktı dosya adları için sırasıyla %i ve %o kullanın, görüntüyü o " "yazılımda düzenlemek için bir tek %i kullanın\n" "\n" "Bir diğer değişken:\n" "\n" "%r çözünürlük" #: bin/gscan2pdf:8119 msgid "Properties" msgstr "Özellikler" #: lib/Gscan2pdf/Dialog.pm:63 lib/Gscan2pdf/Dialog.pm:79 t/05_Dialog.t:25 msgid "hide-on-delete" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:78 lib/Gscan2pdf/Dialog/Renumber.pm:162 msgid "Renumber" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:98 lib/Gscan2pdf/Dialog/Renumber.pm:207 #: lib/Gscan2pdf/Dialog/Renumber.pm:244 msgid "range" msgstr "aralık" #: lib/Gscan2pdf/Dialog/Renumber.pm:102 msgid "Page numbering" msgstr "Sayfa numaralandırma" #: lib/Gscan2pdf/Dialog/Renumber.pm:105 lib/Gscan2pdf/Scanner/Dialog.pm:254 msgid "border_width" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:126 lib/Gscan2pdf/Dialog/Renumber.pm:192 #: lib/Gscan2pdf/Dialog/Renumber.pm:242 t/07_Dialog_Renumber.t:33 #: t/07_Dialog_Renumber.t:45 t/07_Dialog_Renumber.t:59 #: t/07_Dialog_Renumber.t:66 msgid "start" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:147 lib/Gscan2pdf/Dialog/Renumber.pm:193 #: lib/Gscan2pdf/Dialog/Renumber.pm:243 t/07_Dialog_Renumber.t:34 #: t/07_Dialog_Renumber.t:46 t/07_Dialog_Renumber.t:60 #: t/07_Dialog_Renumber.t:67 msgid "increment" msgstr "artış" #: lib/Gscan2pdf/Dialog/Renumber.pm:205 lib/Gscan2pdf/Dialog/Renumber.pm:241 msgid "document" msgstr "belge" #: lib/Gscan2pdf/Dialog/Renumber.pm:295 msgid "" "The current settings would result in duplicate page numbers. Please select " "new start and increment values." msgstr "" "Şu anki ayarlar yinelenen sayfa numaraları ile sonuçlanabilir. Lütfen yeni " "başlangıç seçin ve değerleri arttırın." #: lib/Gscan2pdf/Document.pm:83 msgid "Thumbnails" msgstr "Küçük Resimler" #: lib/Gscan2pdf/Document.pm:1502 msgid "Unknown DjVu file structure. Please contact the author." msgstr "Bilinmeyen DjVu dosya yapısı. Lütfen yetkiliyle iletişime geçin." #: lib/Gscan2pdf/Document.pm:1558 #, perl-format msgid "%s is not a recognised image type" msgstr "%s tanınmayan bir görüntü biçimi." #: lib/Gscan2pdf/Document.pm:1580 lib/Gscan2pdf/Document.pm:1637 #, perl-format msgid "Importing page %i of %i" msgstr "Sayfa içe aktarılıyor %i/%i" #: lib/Gscan2pdf/Document.pm:1613 msgid "Error extracting images from PDF" msgstr "PDF'deki görüntüleri ayrıştırmada hata." #: lib/Gscan2pdf/Document.pm:1692 msgid "Setting up PDF" msgstr "PDF'yi Ayarlama" #: lib/Gscan2pdf/Document.pm:1703 #, perl-format msgid "Saving page %i of %i" msgstr "Sayfa kaydediliyor %i/%i" #: lib/Gscan2pdf/Document.pm:1814 lib/Gscan2pdf/Document.pm:2136 #, perl-format msgid "Error compressing image: %s" msgstr "Resmi sıkıştırmada hata: %s" #: lib/Gscan2pdf/Document.pm:1919 #, perl-format msgid "Error creating PDF image object: %s" msgstr "PDF görüntü nesnesi oluşturmada hata: %s" #: lib/Gscan2pdf/Document.pm:1930 #, perl-format msgid "Error embedding file image in %s format to PDF: %s" msgstr "%s biçemli resim dosyası PDF'ye gömülürken hata: %s" #: lib/Gscan2pdf/Document.pm:1939 msgid "Closing PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1955 #, perl-format msgid "Writing page %i of %i" msgstr "Sayfa yazılıyor %i/%i" #: lib/Gscan2pdf/Document.pm:2006 msgid "Error writing DjVu" msgstr "DjVu yazmada hata" #: lib/Gscan2pdf/Document.pm:2025 lib/Gscan2pdf/Document.pm:2227 #, perl-format msgid "Can't open file: %s" msgstr "dosya açılamıyor: %s" #: lib/Gscan2pdf/Document.pm:2050 msgid "Error adding text layer to DjVu" msgstr "DjVu'ya yazı katmanı ekmede hata" #: lib/Gscan2pdf/Document.pm:2056 msgid "Closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2063 msgid "Error closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2078 #, perl-format msgid "Converting image %i of %i to TIFF" msgstr "Resim TIFF'e dönüştürülüyor. %i/%i" #: lib/Gscan2pdf/Document.pm:2105 msgid "Error writing TIFF" msgstr "TIFF yazılırken hata" #: lib/Gscan2pdf/Document.pm:2121 msgid "Concatenating TIFFs" msgstr "TIFF'ler birleştiriliyor." #: lib/Gscan2pdf/Document.pm:2140 msgid "Converting to PS" msgstr "PS'ye çeviriliyor." #: lib/Gscan2pdf/Document.pm:2200 lib/Gscan2pdf/Document.pm:2215 msgid "Error saving image" msgstr "Görüntüyü kaydetmede hata." #: lib/Gscan2pdf/Frontend/CLI.pm:158 #, perl-format msgid "Scanning %i pages..." msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:163 #, perl-format msgid "Scanning page %i..." msgstr "Sayfa taranıyor %i..." #: lib/Gscan2pdf/Frontend/CLI.pm:188 lib/Gscan2pdf/Frontend/CLI.pm:296 msgid "Scanner warming up" msgstr "Tarayıcı ısınıyor" #: lib/Gscan2pdf/Frontend/CLI.pm:195 msgid "Document feeder out of documents" msgstr "Belge besleyicide belge bitti." #: lib/Gscan2pdf/Frontend/CLI.pm:212 lib/Gscan2pdf/Frontend/CLI.pm:325 msgid "Device busy" msgstr "Aygıt meşgul" #: lib/Gscan2pdf/Frontend/CLI.pm:218 lib/Gscan2pdf/Frontend/CLI.pm:330 msgid "Operation cancelled" msgstr "İşlem iptal edildi" #: lib/Gscan2pdf/Frontend/CLI.pm:223 lib/Gscan2pdf/Frontend/CLI.pm:336 msgid "Unknown message: " msgstr "Bilinmeyen ileti: " #: lib/Gscan2pdf/Page.pm:68 lib/Gscan2pdf/Page.pm:73 #, perl-format msgid "Error importing image %s: %s" msgstr "" #: lib/Gscan2pdf/PageRange.pm:33 msgid "Selected" msgstr "Seçildi" #: lib/Gscan2pdf/PageRange.pm:58 msgid "active" msgstr "aktif" #: lib/Gscan2pdf/Scanner/Dialog.pm:218 t/061_Scanner_Dialog.t:33 #: t/061_Scanner_Dialog.t:59 msgid "device-list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:496 t/061_Scanner_Dialog.t:139 #: t/061_Scanner_Dialog.t:174 t/062_Scanner_Dialog.t:50 #: t/062_Scanner_Dialog.t:75 msgid "current-scan-options" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:567 msgid "logger" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:650 t/05_Dialog.t:24 msgid "transient-for" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:716 msgid "device_list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:749 t/061_Scanner_Dialog.t:32 msgid "device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:751 msgid "Opening device" msgstr "Aygıt açılıyor" #: lib/Gscan2pdf/Scanner/Dialog.pm:760 msgid "Retrieving options" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:41 msgid "Layout" msgstr "Yerleşim Düzeni" #: lib/Gscan2pdf/Unpaper.pm:44 msgid "Single" msgstr "Tek" #: lib/Gscan2pdf/Unpaper.pm:46 msgid "One page per sheet, oriented upwards without rotation." msgstr "Her kağıda bir sayfa, döndürmeden yukarı yönde" #: lib/Gscan2pdf/Unpaper.pm:49 msgid "Double" msgstr "Çift" #: lib/Gscan2pdf/Unpaper.pm:51 msgid "" "Two pages per sheet, landscape orientation (one page on the left half, one " "page on the right half)." msgstr "" "Her kağıda iki sayfa, yatay yönlendirmeli (bir sayfa sol yarıda, bir sayfa " "sağ yarıda)" #: lib/Gscan2pdf/Unpaper.pm:59 msgid "# Output pages" msgstr "# Çıktı sayfaları" #: lib/Gscan2pdf/Unpaper.pm:60 msgid "Number of pages to output." msgstr "Çıktıdaki sayfaların sayısı" #: lib/Gscan2pdf/Unpaper.pm:68 msgid "No deskew" msgstr "Doğrultma yapma" #: lib/Gscan2pdf/Unpaper.pm:69 msgid "Disable deskewing." msgstr "Kenarların eğriliğini gidermeyi devre dışı bırak." #: lib/Gscan2pdf/Unpaper.pm:74 msgid "No mask scan" msgstr "Maske taraması uygulama" #: lib/Gscan2pdf/Unpaper.pm:75 msgid "Disable mask detection." msgstr "Maske tespitini devre dışı bırak." #: lib/Gscan2pdf/Unpaper.pm:80 msgid "No black filter" msgstr "Siyah filtresi uygulama" #: lib/Gscan2pdf/Unpaper.pm:81 msgid "Disable black area scan." msgstr "Siyah bölge taramasını etkisizleştir." #: lib/Gscan2pdf/Unpaper.pm:86 msgid "No gray filter" msgstr "Gri filtre uygulama" #: lib/Gscan2pdf/Unpaper.pm:87 msgid "Disable gray area scan." msgstr "Gri bölge taramasını etkisizleştir." #: lib/Gscan2pdf/Unpaper.pm:92 msgid "No noise filter" msgstr "Gürültü filtresi uygulama" #: lib/Gscan2pdf/Unpaper.pm:93 msgid "Disable noise filter." msgstr "Gürültü filtresini devre dışı bırak" #: lib/Gscan2pdf/Unpaper.pm:98 msgid "No blur filter" msgstr "Bulanıklık filtresi uygulama" #: lib/Gscan2pdf/Unpaper.pm:99 msgid "Disable blur filter." msgstr "Bulanıklık veya leke filtresini devre dışı bırak." #: lib/Gscan2pdf/Unpaper.pm:104 msgid "No border scan" msgstr "Kenar taraması yapma" #: lib/Gscan2pdf/Unpaper.pm:105 msgid "Disable border scanning." msgstr "Kenar taramasını devre dışı bırakır." #: lib/Gscan2pdf/Unpaper.pm:110 msgid "No border align" msgstr "Kenar hizalaması uygulama" #: lib/Gscan2pdf/Unpaper.pm:112 msgid "Disable aligning of the area detected by border scanning." msgstr "Kenar taramasında bulunan alan hizalamasını devre dışı bırakır." #: lib/Gscan2pdf/Unpaper.pm:117 msgid "Deskew to edge" msgstr "Doğrultulacak kenarlar." #: lib/Gscan2pdf/Unpaper.pm:119 msgid "" "Edges from which to scan for rotation. Each edge of a mask can be used to " "detect the mask's rotation. If multiple edges are specified, the average " "value will be used, unless the statistical deviation exceeds --deskew-scan-" "deviation." msgstr "" "Döndürme için taranacak kenarlar. Maskenin her bir kenarı maskenin kenarını " "tespit etmek için kullanılabilir. Çoklu kenar belirtilirse ortalama değeri " "kullanılır, istatiksel sapma aşılmadığı sürece -eğrilikgiderme-tarama-sapma." #: lib/Gscan2pdf/Unpaper.pm:125 msgid "Use 'left' for scanning from the left edge." msgstr "Sol kenardan taramak için 'sol' u seçiniz." #: lib/Gscan2pdf/Unpaper.pm:130 msgid "Use 'top' for scanning from the top edge." msgstr "Üst kenardan taramak için 'üst' ü seçiniz" #: lib/Gscan2pdf/Unpaper.pm:134 lib/Gscan2pdf/Unpaper.pm:162 msgid "Right" msgstr "Sağ" #: lib/Gscan2pdf/Unpaper.pm:135 msgid "Use 'right' for scanning from the right edge." msgstr "Sağ kenardan taramak için 'sağ' ı seçiniz." #: lib/Gscan2pdf/Unpaper.pm:139 lib/Gscan2pdf/Unpaper.pm:167 msgid "Bottom" msgstr "Alt" #: lib/Gscan2pdf/Unpaper.pm:140 msgid "Use 'bottom' for scanning from the bottom." msgstr "Alt kenardan taramak için 'alt' ı seçiniz." #: lib/Gscan2pdf/Unpaper.pm:147 msgid "Align to edge" msgstr "Kenara hizala" #: lib/Gscan2pdf/Unpaper.pm:148 msgid "Edge to which to align the page." msgstr "Sayfaya hizalanacak kenar" #: lib/Gscan2pdf/Unpaper.pm:153 msgid "Use 'left' to align to the left edge." msgstr "Sola hizalamak için 'sol' u seçiniz." #: lib/Gscan2pdf/Unpaper.pm:158 msgid "Use 'top' to align to the top edge." msgstr "Üste hizalamak için 'üst' ü seçiniz." #: lib/Gscan2pdf/Unpaper.pm:163 msgid "Use 'right' to align to the right edge." msgstr "Sağa hizlamak için 'sağ' ı seçiniz." #: lib/Gscan2pdf/Unpaper.pm:168 msgid "Use 'bottom' to align to the bottom." msgstr "Alta hizalamak için 'alt' ı seçiniz." #: lib/Gscan2pdf/Unpaper.pm:174 msgid "Border margin" msgstr "Kenar aralığı" #: lib/Gscan2pdf/Unpaper.pm:178 msgid "Vertical margin" msgstr "Dikey aralık" #: lib/Gscan2pdf/Unpaper.pm:180 msgid "" "Vertical distance to keep from the sheet edge when aligning a border area." msgstr "Kenar aralığını hizalarken kenarda korunacak dikey uzaklık" #: lib/Gscan2pdf/Unpaper.pm:189 msgid "Horizontal margin" msgstr "Yatay aralık" #: lib/Gscan2pdf/Unpaper.pm:191 msgid "" "Horizontal distance to keep from the sheet edge when aligning a border area." msgstr "" "Kenar aralığını hizalarken kağıdın kenarında korunacak dikey uzaklık." #: lib/Gscan2pdf/Unpaper.pm:202 msgid "White threshold" msgstr "Beyaz eşik değeri" #: lib/Gscan2pdf/Unpaper.pm:204 msgid "Brightness ratio above which a pixel is considered white." msgstr "Bu parlaklık oranının üzerindeki benek beyaz kabul edilir." #: lib/Gscan2pdf/Unpaper.pm:212 msgid "Black threshold" msgstr "Siyah eşik değeri" #: lib/Gscan2pdf/Unpaper.pm:214 msgid "" "Brightness ratio below which a pixel is considered black (non-gray). This is " "used by the gray-filter. This value is also used when converting a grayscale " "image to black-and-white mode." msgstr "" "Bu parlaklık orarının altındaki piksel siyah kabul edilir (Gri Olmayan) . Bu " "gri-filtresince kullanılır. Aynı zamanda gri tonlamalı bir resmi siyah " "beyaza çevirirken kullanılır." #: lib/Gscan2pdf/Unpaper.pm:250 msgid "Deskew" msgstr "Doğrultma" #: lib/Gscan2pdf/Unpaper.pm:280 msgid "Border" msgstr "Kenar" #: lib/Gscan2pdf/Unpaper.pm:337 msgid "Filters" msgstr "Filtreler" #: t/05_Dialog.t:23 msgid "title" msgstr "başlık" #: t/05_Dialog.t:26 t/05_Dialog.t:31 t/05_Dialog.t:32 t/05_Dialog.t:38 #: t/05_Dialog.t:39 msgid "border-width" msgstr "" #: t/061_Scanner_Dialog.t:34 msgid "dir" msgstr "" #: t/061_Scanner_Dialog.t:36 msgid "max-pages" msgstr "" #: t/061_Scanner_Dialog.t:39 msgid "side-to-scan" msgstr "" #: t/061_Scanner_Dialog.t:40 t/061_Scanner_Dialog.t:185 msgid "available-scan-options" msgstr "" #: t/061_Scanner_Dialog.t:171 t/062_Scanner_Dialog.t:73 msgid "profile" msgstr "" gscan2pdf-1.2.3/po/gscan2pdf-el.po0000644000175000017500000016344712243440507015235 0ustar jeffjeff# Greek translation for gscan2pdf # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the gscan2pdf package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: gscan2pdf\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-10-25 08:12+0200\n" "PO-Revision-Date: 2012-11-02 13:16+0000\n" "Last-Translator: tzem \n" "Language-Team: Greek \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-19 09:22+0000\n" "X-Generator: Launchpad (build 16831)\n" #: bin/gscan2pdf:157 msgid "Error displaying help" msgstr "" #: bin/gscan2pdf:201 msgid "" "Error: unable to load settings.\n" "Backing up settings\n" "Reverting to defaults" msgstr "" "Σφάλμα: ανέφικτη η φόρτωση των ρυθμίσεων.\n" "Γίνεται αποθήκευση των ρυθμίσεων\n" "Επαναφορά των ρυθμίσεων προεπιλογής" #: bin/gscan2pdf:244 msgid "A4" msgstr "A4" #: bin/gscan2pdf:250 msgid "US Letter" msgstr "Επιστολή με Αμερικανικά πρότυπα" #: bin/gscan2pdf:256 msgid "US Legal" msgstr "Νομικής φύσεως (ΗΠΑ)" #: bin/gscan2pdf:323 bin/gscan2pdf:344 #, perl-format msgid "Cannot read file: %s" msgstr "Αδύνατη η ανάγνωση του αρχείου: %s" #: bin/gscan2pdf:451 msgid "_File" msgstr "_Αρχείο" #: bin/gscan2pdf:454 msgid "_New" msgstr "_Νέο" #: bin/gscan2pdf:455 msgid "Clears all pages" msgstr "Καθαρισμός όλων των σελίδων" #: bin/gscan2pdf:459 msgid "_Open" msgstr "_Άνοιγμα" #: bin/gscan2pdf:460 msgid "Open image file(s)" msgstr "Άνοιγμα αρχείου εικόνων" #: bin/gscan2pdf:465 msgid "S_can" msgstr "Σ_άρωση" #: bin/gscan2pdf:467 msgid "Scan document" msgstr "Σάρωση εγγράφου" #: bin/gscan2pdf:471 bin/gscan2pdf:472 bin/gscan2pdf:2582 msgid "Save" msgstr "Αποθήκευση" #: bin/gscan2pdf:476 msgid "_Email as PDF" msgstr "_Email ως PDF" #: bin/gscan2pdf:477 msgid "Attach as PDF to a new email" msgstr "Επισύναψη σαν PDF σε νέο email" #: bin/gscan2pdf:480 msgid "_Print" msgstr "_Εκτύπωση" #: bin/gscan2pdf:481 msgid "Print" msgstr "Εκτύπωση" #: bin/gscan2pdf:485 msgid "_Compress temporary files" msgstr "_Συμπίεση προσωρινών αρχείων" #: bin/gscan2pdf:486 msgid "Compress temporary files" msgstr "Συμπίεση προσωρινών αρχείων" #: bin/gscan2pdf:490 msgid "_Quit" msgstr "_'Εξοδος" #: bin/gscan2pdf:491 msgid "Quit" msgstr "'Εξοδος" #: bin/gscan2pdf:495 msgid "_Edit" msgstr "_Επεξεργασία" #: bin/gscan2pdf:497 msgid "_Undo" msgstr "_Αναίρεση" #: bin/gscan2pdf:497 msgid "Undo" msgstr "Αναίρεση" #: bin/gscan2pdf:501 msgid "_Redo" msgstr "_Ακύρωση Αναίρεσης" #: bin/gscan2pdf:502 msgid "Redo" msgstr "Ακύρωση Αναίρεσης" #: bin/gscan2pdf:506 msgid "Cu_t" msgstr "Απο_κοπή" #: bin/gscan2pdf:507 msgid "Cut selection" msgstr "Αποκοπή επιλογής" #: bin/gscan2pdf:511 msgid "_Copy" msgstr "Αντι_γραφή" #: bin/gscan2pdf:512 msgid "Copy selection" msgstr "Αντιγραφή επιλογής" #: bin/gscan2pdf:516 msgid "_Paste" msgstr "Ε_πικόλληση" #: bin/gscan2pdf:517 msgid "Paste selection" msgstr "Επικόλληση επιλογής" #: bin/gscan2pdf:521 msgid "_Delete" msgstr "_Διαγραφή" #: bin/gscan2pdf:522 msgid "Delete selected pages" msgstr "Διαγραφή επιλεγμένων σελίδων" #: bin/gscan2pdf:526 msgid "_Renumber" msgstr "_Επαναρίθμηση" #: bin/gscan2pdf:527 msgid "Renumber pages" msgstr "Εκ νέου αρίθμηση σελίδων" #: bin/gscan2pdf:529 bin/gscan2pdf:679 msgid "_Select" msgstr "_Επιλογή" #: bin/gscan2pdf:532 msgid "_All" msgstr "_Όλα" #: bin/gscan2pdf:533 msgid "Select all pages" msgstr "Επιλογή όλων των σελίδων" #: bin/gscan2pdf:536 msgid "_Odd" msgstr "_Μονό" #: bin/gscan2pdf:537 msgid "Select all odd-numbered pages" msgstr "Επιλέξτε όλες τις σελίδες με μονή αρίθμηση" #: bin/gscan2pdf:541 msgid "_Even" msgstr "_Ζυγό" #: bin/gscan2pdf:542 msgid "Select all evenly-numbered pages" msgstr "Επιλέξτε όλες τις σελίδες με ζυγή αρίθμηση" #: bin/gscan2pdf:547 msgid "_Blank" msgstr "_Κενό" #: bin/gscan2pdf:548 msgid "Select pages with low standard deviation" msgstr "Επιλογή σελίδων με χαμηλή απόκλιση" #: bin/gscan2pdf:552 msgid "_Dark" msgstr "_Σκοτεινό" #: bin/gscan2pdf:553 msgid "Select dark pages" msgstr "Επιλέξτε τις σκοτεινές σελίιδες" #: bin/gscan2pdf:558 msgid "_Modified" msgstr "_Τροποποιήθηκαν" #: bin/gscan2pdf:560 msgid "Select modified pages since last OCR" msgstr "Επιλέξτε τις τροποποιημένες σελίδες μετά το τελευταίο OCR" #: bin/gscan2pdf:565 msgid "_No OCR" msgstr "_Χωρίς OCR" #: bin/gscan2pdf:566 msgid "Select pages with no OCR output" msgstr "Επιλέξτε τις σελίδες χωρίς έξοδο OCR" #: bin/gscan2pdf:570 msgid "_Clear OCR" msgstr "_Διαγραφή OCR" #: bin/gscan2pdf:571 msgid "Clear OCR output from selected pages" msgstr "Διαγραφή της εξόδου OCR από τις επιλεγμένες σελίδες" #: bin/gscan2pdf:575 msgid "Propert_ies" msgstr "Ιδιό_τητες" #: bin/gscan2pdf:576 msgid "Edit image properties" msgstr "Επεξεργασία ιδιοτήτων εικόνας" #: bin/gscan2pdf:580 msgid "Prefere_nces" msgstr "Προτι_μήσεις" #: bin/gscan2pdf:581 msgid "Edit preferences" msgstr "Επεξεργασία ρυθμίσεων" #: bin/gscan2pdf:585 msgid "_View" msgstr "_Προβολή" #: bin/gscan2pdf:588 msgid "Zoom _100%" msgstr "Μεγέθυνση _100%" #: bin/gscan2pdf:589 msgid "Zoom to 100%" msgstr "Κλίμακα στο 100%" #: bin/gscan2pdf:593 msgid "Zoom to _fit" msgstr "Αλλαγή κλίμακας για _ταίριασμα" #: bin/gscan2pdf:594 msgid "Zoom to fit" msgstr "Αλλαγή κλίμακας για ταίριασμα" #: bin/gscan2pdf:598 msgid "Zoom _in" msgstr "_Μεγέθυνση" #: bin/gscan2pdf:599 msgid "Zoom in" msgstr "Μεγέθυνση" #: bin/gscan2pdf:603 msgid "Zoom _out" msgstr "Σ_μίκρυνση" #: bin/gscan2pdf:604 msgid "Zoom out" msgstr "Σμίκρυνση" #: bin/gscan2pdf:609 bin/gscan2pdf:611 msgid "Rotate 90 clockwise" msgstr "Περιστροφή 90 δεξιόστροφα" #: bin/gscan2pdf:617 bin/gscan2pdf:619 msgid "Rotate 180" msgstr "Περιστροφή 180" #: bin/gscan2pdf:625 bin/gscan2pdf:627 msgid "Rotate 90 anticlockwise" msgstr "Περιστροφή 90 αριστερόστροφα" #: bin/gscan2pdf:632 msgid "_Tools" msgstr "_Εργαλεία" #: bin/gscan2pdf:634 msgid "_Threshold" msgstr "_Ανοχή" #: bin/gscan2pdf:635 msgid "Change each pixel above this threshold to black" msgstr "Αλλαγή σε μσύρο για κάθε εικονοστοιχείο που υπερβαίνει το όριο" #: bin/gscan2pdf:639 msgid "_Negate" msgstr "_Απόρριψη" #: bin/gscan2pdf:640 msgid "Converts black to white and vice versa" msgstr "Μετατρέπει το μαύρο σε λευκό και αντιστρόφως" #: bin/gscan2pdf:644 msgid "_Unsharp Mask" msgstr "_Μάσκα Άμβλυνσης" #: bin/gscan2pdf:645 msgid "Apply an unsharp mask" msgstr "Εφαρμόστε μια μάσκα άμβλυνσης" #: bin/gscan2pdf:648 msgid "_Crop" msgstr "Α_ποκοπή" #: bin/gscan2pdf:649 msgid "Crop pages" msgstr "Αποκοπή σελίδων" #: bin/gscan2pdf:653 msgid "_Clean up" msgstr "_Καθαρισμός" #: bin/gscan2pdf:654 bin/gscan2pdf:4085 msgid "Clean up scanned images with unpaper" msgstr "Καθαρίστε τις σαρωμένες εικόνες με τον αποσελιδοποιητή" #: bin/gscan2pdf:657 msgid "_OCR" msgstr "_OCR" #: bin/gscan2pdf:658 msgid "Optical Character Recognition" msgstr "Οπτική Αναγνώριση Χαρακτήρων" #: bin/gscan2pdf:660 msgid "U_ser-defined" msgstr "Ο_ρίζεται από τον χρήστη" #: bin/gscan2pdf:663 bin/gscan2pdf:665 msgid "_Help" msgstr "_Βοήθεια" #: bin/gscan2pdf:666 msgid "Help" msgstr "Βοήθεια" #: bin/gscan2pdf:668 msgid "_About" msgstr "_Σχετικά" #: bin/gscan2pdf:674 msgid "_Drag" msgstr "_Σύρτε" #: bin/gscan2pdf:675 msgid "Use the hand tool" msgstr "Χρησιμοποιήστε το χειροκίνητο εργαλείο" #: bin/gscan2pdf:680 msgid "Use the rectangular selection tool" msgstr "Χρησιμοποιήστε το ορθογώνιο εργαλείο επιλογής" #: bin/gscan2pdf:684 msgid "_Paint" msgstr "_Σχεδίαση" #: bin/gscan2pdf:685 msgid "Use the painter tool" msgstr "Χρησιμοποιήστε το εργαλείο σχεδίασης/ ζωγραφικής" #: bin/gscan2pdf:965 lib/Gscan2pdf/Document.pm:2594 #: lib/Gscan2pdf/Document.pm:2595 msgid "Error copying page" msgstr "Σφάλμα κατά την αντιγραφή σελίδας" #: bin/gscan2pdf:1082 msgid "Image" msgstr "Εικόνα" #: bin/gscan2pdf:1117 msgid "OCR Output" msgstr "Έξοδος OCR" #: bin/gscan2pdf:1174 msgid "Mode" msgstr "Λειτουργία" #: bin/gscan2pdf:1176 msgid "Lineart" msgstr "Γραμμικό (Lineart)" #: bin/gscan2pdf:1177 msgid "Grayscale" msgstr "Διαβαθμίσεις του γκρι" #: bin/gscan2pdf:1178 msgid "Gray" msgstr "Γκρι" #: bin/gscan2pdf:1179 msgid "Color" msgstr "Έγχρωμο" #: bin/gscan2pdf:1180 msgid "Black & White" msgstr "Άσπρο & Μαύρο" #: bin/gscan2pdf:1181 msgid "True Gray" msgstr "Πραγματικό Γκρί" #: bin/gscan2pdf:1182 msgid "Binary" msgstr "Δυαδικό" #: bin/gscan2pdf:1183 bin/gscan2pdf:1242 bin/gscan2pdf:1243 msgid "Auto" msgstr "Αυτόματο" #: bin/gscan2pdf:1184 msgid "Halftone" msgstr "Ενδιάμεσοι τόνοι" #: bin/gscan2pdf:1185 msgid "24bit Color" msgstr "Χρώμα 24bit" #: bin/gscan2pdf:1189 bin/gscan2pdf:2547 bin/gscan2pdf:2644 msgid "Compression" msgstr "Συμπίεση" #: bin/gscan2pdf:1191 bin/gscan2pdf:2539 bin/gscan2pdf:2636 msgid "None" msgstr "Τίποτα" #: bin/gscan2pdf:1192 bin/gscan2pdf:2537 bin/gscan2pdf:2601 bin/gscan2pdf:2622 msgid "JPEG" msgstr "JPEG" #: bin/gscan2pdf:1195 bin/gscan2pdf:8127 msgid "Resolution" msgstr "Ανάλυση" #: bin/gscan2pdf:1196 msgid "Brightness" msgstr "Φωτεινότητα" #: bin/gscan2pdf:1197 msgid "Gain" msgstr "Προενίσχυση" #: bin/gscan2pdf:1198 msgid "Contrast" msgstr "Αντίθεση" #: bin/gscan2pdf:1199 bin/gscan2pdf:6406 bin/gscan2pdf:6417 bin/gscan2pdf:6620 msgid "Threshold" msgstr "Ανοχή" #: bin/gscan2pdf:1201 msgid "Speed" msgstr "Ταχύτητα" #: bin/gscan2pdf:1203 bin/gscan2pdf:1210 bin/gscan2pdf:1217 bin/gscan2pdf:1224 #: bin/gscan2pdf:1231 msgid "Yes" msgstr "Ναί" #: bin/gscan2pdf:1204 bin/gscan2pdf:1211 bin/gscan2pdf:1218 bin/gscan2pdf:1225 #: bin/gscan2pdf:1232 msgid "No" msgstr "Όχι" #: bin/gscan2pdf:1208 msgid "Batch scan" msgstr "Μαζική σάρωση" #: bin/gscan2pdf:1215 bin/gscan2pdf:1222 msgid "Wait for button" msgstr "Αναμονή για το κουμπί" #: bin/gscan2pdf:1229 msgid "Cache calibration" msgstr "Βαθμονόμηση (calibration) κρυφής μνήμης (cache)" #: bin/gscan2pdf:1236 msgid "Source" msgstr "Προέλευση" #: bin/gscan2pdf:1238 msgid "Normal" msgstr "Κανονικό" #: bin/gscan2pdf:1239 msgid "ADF" msgstr "ADF" #: bin/gscan2pdf:1240 msgid "Automatic Document Feeder" msgstr "Αυτόματος Τροφοδότης Εγγράφων" #: bin/gscan2pdf:1241 msgid "XPA" msgstr "XPA" #: bin/gscan2pdf:1244 msgid "Flatbed" msgstr "Οριζόντιος" #: bin/gscan2pdf:1245 msgid "Transparency Adapter" msgstr "Προσαρμογέας Διαφανειών" #: bin/gscan2pdf:1246 msgid "Transparency Unit" msgstr "Μονάδα Διαφανειών" #: bin/gscan2pdf:1249 bin/gscan2pdf:1251 msgid "Page Width" msgstr "Πλάτος Σελίδας" #: bin/gscan2pdf:1250 bin/gscan2pdf:1252 msgid "Page Height" msgstr "Ύψος Σελίδας" #: bin/gscan2pdf:1253 msgid "Top Overscan" msgstr "Υπερσάρωση Κορυφής" #: bin/gscan2pdf:1254 msgid "Bottom Overscan" msgstr "Υπερσάρωση Τέλους" #: bin/gscan2pdf:1256 bin/gscan2pdf:1263 msgid "ADF Mode" msgstr "Λειτουργία ADF" #: bin/gscan2pdf:1258 bin/gscan2pdf:1265 msgid "Simplex" msgstr "Σύμπλεγμα" #: bin/gscan2pdf:1259 bin/gscan2pdf:1266 msgid "Duplex" msgstr "Αμφίδρομη" #: bin/gscan2pdf:1301 bin/gscan2pdf:1306 msgid "Pick crashed session to restore" msgstr "Επιλέξτε προς ανάκτηση τη συνεδρία που κατέρρευσε" #: bin/gscan2pdf:1308 bin/gscan2pdf:2609 msgid "Session" msgstr "Συνεδρία" #: bin/gscan2pdf:1338 #, perl-format msgid "" "Warning: unable to use %s for temporary storage. Defaulting to %s instead." msgstr "" "Προσοχή: αδύνατη η χρήση του %s για προσωρινή αποθήκευση. Αντί για αυτό, " "γίνεται μετάπτωση στο %s" #: bin/gscan2pdf:1441 msgid "GOCR" msgstr "GOCR" #: bin/gscan2pdf:1441 msgid "Process image with GOCR." msgstr "Επεξεργασία εικόνας με GOCR." #: bin/gscan2pdf:1445 msgid "Tesseract" msgstr "Tesseract" #: bin/gscan2pdf:1446 msgid "Process image with Tesseract." msgstr "Επεξεργασία εικόνας με Υπερκυβισμό (Tesseract)" #: bin/gscan2pdf:1450 msgid "Ocropus" msgstr "Ocropus" #: bin/gscan2pdf:1450 msgid "Process image with Ocropus." msgstr "Επεξεργασία εικόνας με το Ocropus." #: bin/gscan2pdf:1454 msgid "Cuneiform" msgstr "Σφηνοειδής γραφή (Cuneiform)" #: bin/gscan2pdf:1455 msgid "Process image with Cuneiform." msgstr "Επεξεργασία εικόνας με τη σφηνοειδή γραφή (Cuneiform)" #: bin/gscan2pdf:1461 msgid "Save image and Save as PDF both require imagemagick\n" msgstr "" "Η αποθήκευση εικόνας και η αποθήκευση ώς PDF απαιτέι το imagemagick\n" #: bin/gscan2pdf:1465 msgid "Save image requires libtiff\n" msgstr "Η αποθήκευση εικονας απαιτεί το libtiff\n" #: bin/gscan2pdf:1469 msgid "Save as DjVu requires djvulibre-bin\n" msgstr "Η αποθήκευση ως DjVu απαιτεί το djvulibre-bin\n" #: bin/gscan2pdf:1473 msgid "Email as PDF requires xdg-email\n" msgstr "Η αποστολή email ως PDF απαιτεί xdg-email\n" #: bin/gscan2pdf:1518 msgid "The rotating options and unpaper support require perlmagick\n" msgstr "" "Οι επιλογές περιστροφής και αποσελιδοποίησης απαιτούν το perlmagick\n" #: bin/gscan2pdf:1524 msgid "unpaper missing\n" msgstr "Η αποχάρτιση λείπει\n" #: bin/gscan2pdf:1534 msgid "OCR requires gocr, tesseract, ocropus, or cuneiform\n" msgstr "Το OCR απαιτεί τα gocr, tesseract, ocropus ή cuneiform\n" #: bin/gscan2pdf:1539 msgid "Warning: missing packages" msgstr "Προσοχή: πακέτα που λείπουν" #: bin/gscan2pdf:1544 msgid "Don't show this message again" msgstr "Να μην εμφανισθεί ξανά αυτό το μήνυμα" #: bin/gscan2pdf:1753 msgid "" "Some pages have not been saved.\n" "Do you really want to clear all pages?" msgstr "" "Ορισμένες σελίδες δεν αποθηκεύθηκαν.\n" "Θέλετε πραγματικά να καθαρίσετε όλες τις σελίδες;" #: bin/gscan2pdf:1828 bin/gscan2pdf:1858 #, perl-format msgid "Process %i of %i (%s)" msgstr "Λειτουργία %i επί συνόλου %i (%s)" #: bin/gscan2pdf:1867 #, perl-format msgid "Process %i of %i" msgstr "Επεξεργασία %i απο %i" #: bin/gscan2pdf:1895 msgid "Open image" msgstr "Άνοιγμα εικόνας" #: bin/gscan2pdf:1903 bin/gscan2pdf:2797 bin/gscan2pdf:3113 msgid "Image files" msgstr "Αρχεία εικόνων" #: bin/gscan2pdf:1940 msgid "Pages to extract" msgstr "Σελίδες για εξαγωγή" #: bin/gscan2pdf:1943 bin/gscan2pdf:2117 bin/gscan2pdf:2586 bin/gscan2pdf:3353 #: bin/gscan2pdf:3494 bin/gscan2pdf:4104 bin/gscan2pdf:4514 bin/gscan2pdf:5825 #: bin/gscan2pdf:6409 bin/gscan2pdf:6495 bin/gscan2pdf:6565 bin/gscan2pdf:6737 #: bin/gscan2pdf:7011 bin/gscan2pdf:7274 bin/gscan2pdf:7757 bin/gscan2pdf:8123 #: lib/Gscan2pdf/Dialog.pm:56 lib/Gscan2pdf/Dialog/Renumber.pm:80 #: lib/Gscan2pdf/Scanner/Dialog.pm:201 t/05_Dialog.t:28 msgid "vbox" msgstr "vbox" #: bin/gscan2pdf:1946 msgid "First page to extract" msgstr "Πρώτη σελίδα για εξαγωγή" #: bin/gscan2pdf:1953 msgid "Last page to extract" msgstr "Τελευταία σελίδα προς εξαγωγή" #: bin/gscan2pdf:2042 lib/Gscan2pdf/Dialog/Renumber.pm:83 msgid "Page Range" msgstr "Φάσμα σελίδας" #: bin/gscan2pdf:2092 msgid "Metadata" msgstr "Μεταδεδομένα" #: bin/gscan2pdf:2101 msgid "Date" msgstr "Ημερομηνία" #: bin/gscan2pdf:2114 msgid "Select Date" msgstr "Επιλογή Ημερομηνίας" #: bin/gscan2pdf:2136 msgid "Today" msgstr "Σήμερα" #: bin/gscan2pdf:2150 msgid "Year-Month-Day" msgstr "Έτος-Μήνας-Μέρα" #: bin/gscan2pdf:2156 msgid "Document author" msgstr "Συγγραφέας κειμένου" #: bin/gscan2pdf:2165 msgid "Title" msgstr "Τίτλος" #: bin/gscan2pdf:2174 msgid "Subject" msgstr "Θέμα" #: bin/gscan2pdf:2183 msgid "Keywords" msgstr "Λέξεις κλεδιά" #: bin/gscan2pdf:2245 msgid "Editing text" msgstr "Γίνεται επεξεργασία κειμένου" #: bin/gscan2pdf:2252 bin/gscan2pdf:2258 bin/gscan2pdf:2332 msgid "text" msgstr "κείμενο" #: bin/gscan2pdf:2352 msgid "PDF filename" msgstr "Όνομα αρχείου PDF" #: bin/gscan2pdf:2381 msgid "PDF files" msgstr "Αρχεία PDF" #: bin/gscan2pdf:2405 bin/gscan2pdf:2823 bin/gscan2pdf:2880 bin/gscan2pdf:2976 #: bin/gscan2pdf:3035 bin/gscan2pdf:3087 bin/gscan2pdf:3275 #, perl-format msgid "File %s is read-only" msgstr "Το αρχείο %s είναι μόνο για ανάγνωση" #: bin/gscan2pdf:2482 msgid "JPEG Quality" msgstr "Ποιότητα JPEG" #: bin/gscan2pdf:2496 msgid "Downsample to" msgstr "Μείωση ανάλυσης σε" #: bin/gscan2pdf:2501 msgid "PPI" msgstr "PPI" #: bin/gscan2pdf:2520 msgid "Automatic" msgstr "Αυτόματα" #: bin/gscan2pdf:2521 msgid "Let gscan2pdf which type of compression to use." msgstr "" "Αφήστε το gscan2pdf να επιλέξει ποιο είδος συμπίεσης να χρησιμοποιηθεί." #: bin/gscan2pdf:2524 bin/gscan2pdf:2616 msgid "LZW" msgstr "LZW" #: bin/gscan2pdf:2525 bin/gscan2pdf:2617 msgid "Compress output with Lempel-Ziv & Welch encoding." msgstr "Συμπίεση εξαγώγιμου με κωδικοποίηση Lempel-Ziv & Welch" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Zip" msgstr "Zip" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Compress output with deflate encoding." msgstr "Συμπίεση εξαγώγιμου με κωδικοποίηση deflate" #: bin/gscan2pdf:2529 bin/gscan2pdf:2624 msgid "Packbits" msgstr "Ψηφίδες" #: bin/gscan2pdf:2530 bin/gscan2pdf:2625 msgid "Compress output with Packbits encoding." msgstr "Συμπίεση εξαγώγιμου με κωδικοποίηση Packbits" #: bin/gscan2pdf:2536 bin/gscan2pdf:2604 msgid "PNG" msgstr "PNG" #: bin/gscan2pdf:2536 msgid "Compress output with PNG encoding." msgstr "Συμπίεση εξαγώγιμου με κωδικοποίηση PNG" #: bin/gscan2pdf:2537 bin/gscan2pdf:2622 msgid "Compress output with JPEG encoding." msgstr "Συμπίεση εξαγώγιμου με κωδικοποίηση JPEG" #: bin/gscan2pdf:2540 bin/gscan2pdf:2637 msgid "Use no compression algorithm on output." msgstr "Κανένας αλγόριθμος συμπίεσης στο εξαγώγιμο" #: bin/gscan2pdf:2594 msgid "Image type" msgstr "Τύπος εικόνας" #: bin/gscan2pdf:2598 msgid "PDF" msgstr "PDF" #: bin/gscan2pdf:2598 msgid "Portable Document Format" msgstr "Portable Document Format" #: bin/gscan2pdf:2599 msgid "GIF" msgstr "GIF" #: bin/gscan2pdf:2599 msgid "CompuServe graphics interchange format" msgstr "Πρότυπο ανταλλαγής αρχείων CompuServe graphics" #: bin/gscan2pdf:2602 msgid "Joint Photographic Experts Group JFIF format" msgstr "Διαμόρφωση Joint Photographic Experts Group JFIF" #: bin/gscan2pdf:2604 msgid "Portable Network Graphics" msgstr "Φορητά Δικτυακά Γραφικά (PNG)" #: bin/gscan2pdf:2605 msgid "PNM" msgstr "PNM" #: bin/gscan2pdf:2605 msgid "Portable anymap" msgstr "Φορητό anymap" #: bin/gscan2pdf:2606 msgid "PS" msgstr "PS" #: bin/gscan2pdf:2606 msgid "Postscript" msgstr "Postscript" #: bin/gscan2pdf:2607 msgid "TIFF" msgstr "TIFF" #: bin/gscan2pdf:2607 msgid "Tagged Image File Format" msgstr "Μορφή αρχείων εικόνας με ετικέτα (TIFF)" #: bin/gscan2pdf:2608 msgid "Text" msgstr "Κείμενο" #: bin/gscan2pdf:2608 msgid "Plain text" msgstr "Απλό κείμενο" #: bin/gscan2pdf:2609 msgid "gscan2pdf session file" msgstr "Αρχείο συνεδρίας gscan2pdf" #: bin/gscan2pdf:2611 msgid "DjVu" msgstr "DjVu" #: bin/gscan2pdf:2611 msgid "Deja Vu" msgstr "Deja Vu" #: bin/gscan2pdf:2628 msgid "G3" msgstr "G3" #: bin/gscan2pdf:2629 msgid "Compress output with CCITT Group 3 encoding." msgstr "Συμπίεση εξαγώγιμου με κωδικοποίηση CCITT Group 3" #: bin/gscan2pdf:2632 msgid "G4" msgstr "G4" #: bin/gscan2pdf:2633 msgid "Compress output with CCITT Group 4 encoding." msgstr "Συμπίεση εξαγώγιμου με κωδικοποίηση CCITT Group 4" #: bin/gscan2pdf:2649 msgid "tiff" msgstr "tiff" #: bin/gscan2pdf:2681 msgid "Font for non-ASCII text" msgstr "Γραμματοσειρά για κείμενο μη-ASCII" #: bin/gscan2pdf:2790 msgid "TIFF filename" msgstr "Όνομα αρχείου TIFF" #: bin/gscan2pdf:2848 msgid "Text filename" msgstr "Όνομα αρχείου κειμένου" #: bin/gscan2pdf:2856 msgid "Text files" msgstr "Αρχεία κειμένου" #: bin/gscan2pdf:2944 msgid "PS filename" msgstr "Όνομα PS αρχείου" #: bin/gscan2pdf:2951 msgid "Postscript files" msgstr "Αρχεία Postscript" #: bin/gscan2pdf:3003 msgid "gscan2pdf session filename" msgstr "Όνομα αρχείου συνεδρίας του gscan2pdf" #: bin/gscan2pdf:3010 msgid "gscan2pdf session files" msgstr "Αρχεία συνεδρίας του gscan2pdf" #: bin/gscan2pdf:3093 #, perl-format msgid "" "File %s exists.\n" "Really overwrite?" msgstr "" "Το αρχείο %s υπάρχει.\n" "Να γίνει αντικατάσταση;" #: bin/gscan2pdf:3106 msgid "Image filename" msgstr "Όνομα αρχείου εικόνας" #: bin/gscan2pdf:3245 msgid "DjVu filename" msgstr "Όνομα αρχείου DjVu" #: bin/gscan2pdf:3252 msgid "DjVu files" msgstr "Αρχεία DjVu" #: bin/gscan2pdf:3349 msgid "Email as PDF" msgstr "Ηλεκτρονική ταχυδρόμιση ως PDF" #: bin/gscan2pdf:3454 msgid "Error creating email" msgstr "Σφάλμα κατά τη δημιουργία e-mail" #: bin/gscan2pdf:3490 bin/gscan2pdf:4313 msgid "Scan Document" msgstr "Σάρωση εγγράφου" #: bin/gscan2pdf:3507 lib/Gscan2pdf/Scanner/Dialog.pm:248 msgid "Page Options" msgstr "Επιλογές σελίδας" #: bin/gscan2pdf:3510 lib/Gscan2pdf/Scanner/Dialog.pm:251 msgid "# Pages" msgstr "# Σελίδων" #: bin/gscan2pdf:3519 lib/Gscan2pdf/PageRange.pm:34 #: lib/Gscan2pdf/Scanner/Dialog.pm:261 msgid "All" msgstr "Όλα" #: bin/gscan2pdf:3520 lib/Gscan2pdf/Scanner/Dialog.pm:262 msgid "Scan all pages" msgstr "Σάρωση όλων των σελίδων" #: bin/gscan2pdf:3532 bin/gscan2pdf:3537 lib/Gscan2pdf/Scanner/Dialog.pm:274 #: lib/Gscan2pdf/Scanner/Dialog.pm:279 msgid "Set number of pages to scan" msgstr "Αριθμός σελίδων για σάρωση" #: bin/gscan2pdf:3550 lib/Gscan2pdf/Scanner/Dialog.pm:308 msgid "Extended page numbering" msgstr "Εκτεταμένη αρίθμηση σελίδων" #: bin/gscan2pdf:3554 lib/Gscan2pdf/Scanner/Dialog.pm:312 msgid "Page number" msgstr "Αριθμός σελίδας" #: bin/gscan2pdf:3563 lib/Gscan2pdf/Dialog/Renumber.pm:111 #: lib/Gscan2pdf/Scanner/Dialog.pm:321 msgid "Start" msgstr "Έναρξη" #: bin/gscan2pdf:3572 lib/Gscan2pdf/Dialog/Renumber.pm:132 #: lib/Gscan2pdf/Scanner/Dialog.pm:340 msgid "Increment" msgstr "Βήμα" #: bin/gscan2pdf:3604 lib/Gscan2pdf/Scanner/Dialog.pm:372 msgid "Source document" msgstr "Αρχείο προέλευσης" #: bin/gscan2pdf:3611 lib/Gscan2pdf/Scanner/Dialog.pm:379 msgid "Single sided" msgstr "Μονής όψης" #: bin/gscan2pdf:3612 lib/Gscan2pdf/Scanner/Dialog.pm:380 msgid "Source document is single-sided" msgstr "Το αρχείο προέλευσης είναι μονής όψης" #: bin/gscan2pdf:3622 lib/Gscan2pdf/Scanner/Dialog.pm:390 msgid "Double sided" msgstr "Διπλής όψης" #: bin/gscan2pdf:3623 lib/Gscan2pdf/Scanner/Dialog.pm:391 msgid "Source document is double-sided" msgstr "Το αρχείο προέλευσης είναι διπλής όψης" #: bin/gscan2pdf:3629 lib/Gscan2pdf/Scanner/Dialog.pm:397 msgid "Side to scan" msgstr "Πλευρά για σάρωση" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Facing" msgstr "Προσανατολισμός" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Reverse" msgstr "Ανάποδη πλευρά" #: bin/gscan2pdf:3655 lib/Gscan2pdf/Scanner/Dialog.pm:418 msgid "Sets which side of a double-sided document is scanned" msgstr "Ορίζει ποια πλευρά ενός διπλής όψης εγγράφου θα σαρωθεί" #: bin/gscan2pdf:3719 msgid "Scan Options" msgstr "Επιλογές σάρωσης" #: bin/gscan2pdf:3722 msgid "Device-dependent options" msgstr "Επιλογές εξαρτώμενες από το είδος συσκευής" #: bin/gscan2pdf:3729 lib/Gscan2pdf/Scanner/Dialog.pm:458 msgid "Scan profiles" msgstr "Προφίλ σάρωσης" #: bin/gscan2pdf:3778 bin/gscan2pdf:3784 lib/Gscan2pdf/Scanner/Dialog.pm:479 #: lib/Gscan2pdf/Scanner/Dialog.pm:485 msgid "Name of scan profile" msgstr "Όνομα του προφίλ σάρωσης" #: bin/gscan2pdf:3828 lib/Gscan2pdf/Scanner/Dialog.pm:518 msgid "Scan" msgstr "Σάρωση" #: bin/gscan2pdf:3866 msgid "Must scan facing pages first" msgstr "Πρέπει να σαρωθούν πρώτα οι μπροστινές πλευρές" #: bin/gscan2pdf:3977 msgid "Post-processing" msgstr "Μετα-επεξεργασία" #: bin/gscan2pdf:3986 bin/gscan2pdf:4008 msgid "Rotate" msgstr "Περιστροφή" #: bin/gscan2pdf:3987 bin/gscan2pdf:4009 msgid "Rotate image after scanning" msgstr "Περιστροφή της εικόνας μετά την επεξργασία" #: bin/gscan2pdf:3990 msgid "Both sides" msgstr "Και τις δύο πλευρές" #: bin/gscan2pdf:3990 msgid "Both sides." msgstr "Και τις δύο πλευρές." #: bin/gscan2pdf:3991 msgid "Facing side" msgstr "Ίσια πλευρά" #: bin/gscan2pdf:3991 msgid "Facing side." msgstr "Μπροστινή πλευρά" #: bin/gscan2pdf:3992 msgid "Reverse side" msgstr "Ανάποδη πλευρά" #: bin/gscan2pdf:3992 msgid "Reverse side." msgstr "Ανάποδη πλευρά" #: bin/gscan2pdf:3995 bin/gscan2pdf:4013 msgid "Select side to rotate" msgstr "Επιλογή πλευράς προς περιστροφή" #: bin/gscan2pdf:3998 msgid "90" msgstr "90" #: bin/gscan2pdf:3998 msgid "Rotate image 90 degrees clockwise." msgstr "Περιστροφή εικόνας κατά 90 μοίρες δεξιόστροφα." #: bin/gscan2pdf:3999 msgid "180" msgstr "180" #: bin/gscan2pdf:3999 msgid "Rotate image 180 degrees clockwise." msgstr "Περιστροφή εικόνας κατά 180 μοίρες δεξιόστροφα." #: bin/gscan2pdf:4000 msgid "270" msgstr "270" #: bin/gscan2pdf:4000 msgid "Rotate image 90 degrees anticlockwise." msgstr "Περιστροφή εικόνας κατά 90 μοίρες αριστερόστροφα." #: bin/gscan2pdf:4003 bin/gscan2pdf:4016 msgid "Select direction of rotation" msgstr "Επιλογή της φοράς κατά την οποία θα γίνει η περιστροφή" #: bin/gscan2pdf:4083 msgid "Clean up images" msgstr "Καθαρισμός εικόνων" #: bin/gscan2pdf:4094 msgid "Options" msgstr "Επιλογές" #: bin/gscan2pdf:4095 msgid "Set unpaper options" msgstr "Ορισμός επιλογών αποχάρτισης" #: bin/gscan2pdf:4101 msgid "unpaper options" msgstr "Επιλογές αποχάρτισης" #: bin/gscan2pdf:4136 bin/gscan2pdf:4137 msgid "OCR scanned pages" msgstr "Σελίδες που σαρώθηκαν με OCR" #: bin/gscan2pdf:4151 msgid "Select OCR engine" msgstr "Επιλογή μηχανής OCR" #: bin/gscan2pdf:4210 lib/Gscan2pdf/Scanner/Dialog.pm:634 msgid "Fetching list of devices" msgstr "Ανάκτηση καταλόγου συσκευών" #: bin/gscan2pdf:4225 lib/Gscan2pdf/Scanner/Dialog.pm:654 msgid "No devices found" msgstr "Δε βρέθηκαν συσκευές" #: bin/gscan2pdf:4367 bin/gscan2pdf:4732 bin/gscan2pdf:4777 bin/gscan2pdf:5214 #: lib/Gscan2pdf/Scanner/Dialog.pm:343 lib/Gscan2pdf/Scanner/Dialog.pm:348 #: t/061_Scanner_Dialog.t:38 t/061_Scanner_Dialog.t:95 msgid "page-number-increment" msgstr "" #: bin/gscan2pdf:4374 bin/gscan2pdf:4729 bin/gscan2pdf:4730 bin/gscan2pdf:4776 #: bin/gscan2pdf:5213 lib/Gscan2pdf/Scanner/Dialog.pm:361 #: t/061_Scanner_Dialog.t:37 msgid "page-number-start" msgstr "" #: bin/gscan2pdf:4663 lib/Gscan2pdf/Scanner/Dialog.pm:210 msgid "Device" msgstr "Συσκευή" #: bin/gscan2pdf:4671 lib/Gscan2pdf/Scanner/Dialog.pm:213 msgid "Rescan for devices" msgstr "Νέα σάρωση για συσκευές" #: bin/gscan2pdf:4694 lib/Gscan2pdf/Scanner/Dialog.pm:237 msgid "Sets the device to be used for the scan" msgstr "Ορίζεται η συσκευή σάρωσης που θα χρησιμοποιηθεί" #: bin/gscan2pdf:4780 lib/Gscan2pdf/Scanner/Dialog.pm:300 #: t/061_Scanner_Dialog.t:35 msgid "num-pages" msgstr "" #: bin/gscan2pdf:4821 msgid "Scanning" msgstr "Σάρωση" #: bin/gscan2pdf:4974 msgid "Unable to load image" msgstr "Δεν είναι δυνατή η φόρτωση της εικόνας" #: bin/gscan2pdf:5004 msgid "print-pages" msgstr "εκτύπωση-σελίδων" #: bin/gscan2pdf:5008 msgid "page-ranges" msgstr "φάσμα-σελίδων" #: bin/gscan2pdf:5405 msgid "Patches gratefully received from:" msgstr "Ευχαριστίες για την παραλαβή διορθωτικών patches από:" #: bin/gscan2pdf:5407 msgid "To aid the scan-to-PDF process" msgstr "Για βοήθεια στην εξέλιξη του scan-to-PDF" #: bin/gscan2pdf:5408 msgid "Copyright 2006--2012 Jeffrey Ratcliffe" msgstr "Copyright 2006--2012 Jeffrey Ratcliffe" #: bin/gscan2pdf:5492 bin/gscan2pdf:6028 msgid "The options cache seems to be empty. Reload device-dependent options?" msgstr "" "Η προσωρινή μνήμη (cache) μοιάζει να είναι άδεια. Να γίνει επαναφόρτωση των " "επιλογών που εξαρτώνται από το είδος συσκευής;" #: bin/gscan2pdf:5519 bin/gscan2pdf:6054 msgid "Updating options" msgstr "Ενημέρωση επιλογών" #: bin/gscan2pdf:5571 msgid "Paper size" msgstr "Μέγεθος σελίδας" #: bin/gscan2pdf:5572 bin/gscan2pdf:5672 bin/gscan2pdf:5840 bin/gscan2pdf:6769 msgid "Width" msgstr "Πλάτος" #: bin/gscan2pdf:5573 bin/gscan2pdf:5678 bin/gscan2pdf:5841 bin/gscan2pdf:6780 msgid "Height" msgstr "Ύψος" #: bin/gscan2pdf:5574 bin/gscan2pdf:5684 bin/gscan2pdf:5842 #: lib/Gscan2pdf/Unpaper.pm:124 lib/Gscan2pdf/Unpaper.pm:152 msgid "Left" msgstr "Αριστερά" #: bin/gscan2pdf:5575 bin/gscan2pdf:5690 bin/gscan2pdf:5843 #: lib/Gscan2pdf/Unpaper.pm:129 lib/Gscan2pdf/Unpaper.pm:157 msgid "Top" msgstr "Κορυφή" #: bin/gscan2pdf:5589 bin/gscan2pdf:5703 bin/gscan2pdf:6232 msgid "Manual" msgstr "Χειροκίνητα" #: bin/gscan2pdf:5590 bin/gscan2pdf:5700 msgid "Edit" msgstr "Επεξεργασία" #: bin/gscan2pdf:5591 msgid "Selects or edits the paper size" msgstr "Επιλέγει ή επεξεργάζεται το μέγεθος σελίδας" #: bin/gscan2pdf:5673 msgid "Width of scan area" msgstr "Πλάτος περιοχής σάρωσης" #: bin/gscan2pdf:5679 msgid "Height of scan area" msgstr "Ύψος περιοχής σάρωσης" #: bin/gscan2pdf:5685 msgid "Top-left x position of scan area" msgstr "Επάνω-αριστερά σημείο χ περιοχής σάρωσης" #: bin/gscan2pdf:5691 msgid "Top-left y position of scan area" msgstr "Επάνω-αριστερά σημείο ψ περιοχής σάρωσης" #: bin/gscan2pdf:5822 msgid "Edit paper size" msgstr "Επεξεργασία μεγέθους σελίδας" #: bin/gscan2pdf:5839 msgid "Name" msgstr "Όνομα" #: bin/gscan2pdf:5893 msgid "Cannot delete all paper sizes" msgstr "Αδύνατη η διαγραφή όλων των μεγεθών σελίδας" #: bin/gscan2pdf:5955 msgid "" "The following paper sizes are too big to be scanned by the selected device:" msgstr "" "Τα ακόλουθα μεγέθη σελίδας είναι πολύ μεγάλα για σάρωση από την επιλεγμένη " "συσκευή:" #: bin/gscan2pdf:6419 bin/gscan2pdf:6605 msgid "%" msgstr "%" #: bin/gscan2pdf:6492 msgid "Negate" msgstr "Απόρριψη" #: bin/gscan2pdf:6562 msgid "Unsharp mask" msgstr "Μάσκα άμβλυνσης" #: bin/gscan2pdf:6573 msgid "Radius" msgstr "Η ακ" #: bin/gscan2pdf:6575 bin/gscan2pdf:6592 bin/gscan2pdf:6747 bin/gscan2pdf:6759 #: bin/gscan2pdf:6771 bin/gscan2pdf:6782 msgid "pixels" msgstr "εικονοστοιχεία" #: bin/gscan2pdf:6582 msgid "" "The radius of the Gaussian, in pixels, not counting the center pixel (0 = " "automatic)." msgstr "" "Η ακτίνα της Γκαουσσιανής, σε εικονοστοιχεία (pixels), χωρίς να προσμετράται " "το κεντρικό εικονοστοιχείο (0= αυτόματο)." #: bin/gscan2pdf:6590 msgid "Sigma" msgstr "Sigma" #: bin/gscan2pdf:6597 msgid "The standard deviation of the Gaussian." msgstr "Η τυπική απόκλιση (standard deviation) της Γκαουσσιανής." #: bin/gscan2pdf:6603 msgid "Amount" msgstr "Ποσοστό" #: bin/gscan2pdf:6612 msgid "" "The percentage of the difference between the original and the blur image " "that is added back into the original." msgstr "" "Η ποσοστιαία διαφορά ανάμεσα στην αρχική και στη θολωμένη (blur) εικόνα που " "προστέθηκε στο πρωτότυπο." #: bin/gscan2pdf:6627 msgid "" "The threshold, as a fraction of QuantumRange, needed to apply the difference " "amount." msgstr "" #: bin/gscan2pdf:6733 msgid "Crop" msgstr "Αποκοπή" #: bin/gscan2pdf:6745 msgid "x" msgstr "χ" #: bin/gscan2pdf:6751 msgid "The x-position of the left hand edge of the crop." msgstr "H x (οριζόντια) θέση της αριστερής χειρολαβής της περικοπής" #: bin/gscan2pdf:6757 msgid "y" msgstr "ψ" #: bin/gscan2pdf:6763 msgid "The y-position of the top edge of the crop." msgstr "Η θέση-Ψ στο άνω άκρο της περιοχής αποκοπής" #: bin/gscan2pdf:6774 msgid "The width of the crop." msgstr "Το πλάτος της περιοχής αποκοπής (crop)" #: bin/gscan2pdf:6785 msgid "The height of the crop." msgstr "Το ύψος της περιοχής αποκοπής (crop)" #: bin/gscan2pdf:6906 msgid "label" msgstr "ετικέτα" #: bin/gscan2pdf:7007 msgid "unpaper" msgstr "Αποσελιδοποιήση" #: bin/gscan2pdf:7216 bin/gscan2pdf:7244 msgid "Language to recognise" msgstr "Γλώσσα προς αναγνώριση" #: bin/gscan2pdf:7227 msgid "English" msgstr "Αγγλικά" #: bin/gscan2pdf:7270 msgid "OCR" msgstr "Οπτική Αναγνώριση Χαρακτήρων (OCR)" #: bin/gscan2pdf:7279 msgid "OCR Engine" msgstr "Μηχανή OCR" #: bin/gscan2pdf:7323 msgid "Start OCR" msgstr "Εκκίνηση OCR" #: bin/gscan2pdf:7339 msgid "No page selected" msgstr "Δεν επιλέχθηκε σελίδα" #: bin/gscan2pdf:7374 msgid "" "Some pages have not been saved.\n" "Do you really want to quit?" msgstr "" "Κάποιες σελίδες δεν έχουν αποθηκευτεί.\n" "Θέλετε πράγματι να εγκαταλείψετε;" #: bin/gscan2pdf:7432 #, perl-format msgid "" "The help viewer requires module Gtk2::Ex::PodViewer\n" "Alternatively, try: %s %s\n" "\n" msgstr "" "Το σύστημα για την εμφάνιση βοήθειας απαιτεί το άρθρωμα Gtk2::Ex::PodViewer\n" "Εναλλακτικά, δοκιμάστε το: %s %s\n" "\n" #: bin/gscan2pdf:7698 msgid "This operation cannot be undone. Are you sure?" msgstr "Αυτή η ενέργεια δεν μπορεί να αντιστραφεί. Είστε σίγουρος/η;" #: bin/gscan2pdf:7753 msgid "Preferences" msgstr "Προτιμήσεις" #: bin/gscan2pdf:7762 msgid "Frontend" msgstr "Frontend" #: bin/gscan2pdf:7766 msgid "libsane-perl" msgstr "libsane-perl" #: bin/gscan2pdf:7767 msgid "Scan using the perl bindings for SANE." msgstr "Να γίνει σάρωση χρησιμοποιώντας τα perl bindings για το SANE." #: bin/gscan2pdf:7770 msgid "scanimage" msgstr "scanimage" #: bin/gscan2pdf:7771 msgid "Scan using the scanimage frontend." msgstr "Να γίνει σάρωση χρησιμοποιώντας το frontend του scanimage" #: bin/gscan2pdf:7775 msgid "scanimage-perl" msgstr "scanimage-perl" #: bin/gscan2pdf:7776 msgid "Scan using the scanimage-perl frontend." msgstr "Να γίνει σάρωση χρησιμοποιώντας το frontend του scanimage-perl" #: bin/gscan2pdf:7779 msgid "scanadf-perl" msgstr "scanadf-perl" #: bin/gscan2pdf:7780 msgid "Scan using the scanadf-perl frontend." msgstr "Να γίνει σάρωση χρησιμοποιώντας το frontend του scanadf-perl" #: bin/gscan2pdf:7785 msgid "scanadf" msgstr "scanadf" #: bin/gscan2pdf:7786 msgid "Scan using the scanadf frontend." msgstr "Να γίνει σάρωση χρησιμοποιώντας το frontend του scanadf" #: bin/gscan2pdf:7791 msgid "Cycle SANE handle after scan" msgstr "Κύκλωσε την λαβή SANE μετά τη σάρωση" #: bin/gscan2pdf:7814 msgid "Default filename for PDFs" msgstr "Προεπιλεγμένο όνομα αρχείου για τα PDF" #: bin/gscan2pdf:7820 msgid "" "%a\t author\n" "%t\t title\n" "%y\t document's year\n" "%Y\t today's year\n" "%m\t document's month\n" "%M\t today's month\n" "%d\t document's day\n" "%D\t today's day" msgstr "" "%a\t Συγγραφέας\n" "%t\t Τίτλος\n" "%y\t Έτος εγγράφου\n" "%Y\t Έτος τη σημερινή ημέρα\n" "%m\t Μήνας εγγράφου\n" "%M\t Μήνας τη σημερινή ημέρα\n" "%d\t Ημέρα εγγράφου\n" "%D\t Σημερινή ημέρα" #: bin/gscan2pdf:7830 msgid "Scan command prefix" msgstr "" #: bin/gscan2pdf:7839 msgid "Restore window settings on startup" msgstr "Ανάκτηση των ρυθμίσεων παραθύρου κατά την εκκίνηση" #: bin/gscan2pdf:7845 msgid "Cache device-dependent options" msgstr "Επιλογές εξαρτώμενες από το είδος της συσκευής" #: bin/gscan2pdf:7851 msgid "Clear device-dependent options cache" msgstr "" "Να γίνει καθαρισμός των επιλογών που εξαρτώνται από το είδος συσκευής" #: bin/gscan2pdf:7862 msgid "Temporary directory" msgstr "Προσωρινός κατάλογος" #: bin/gscan2pdf:7867 msgid "Browse" msgstr "Εξερεύνηση" #: bin/gscan2pdf:7871 msgid "Select temporary directory" msgstr "Επιλογή προσωρινού φακέλλου" #: bin/gscan2pdf:7888 msgid "Blank threshold" msgstr "Όριο ανοχής λευκού" #: bin/gscan2pdf:7893 msgid "Threshold used for selecting blank pages" msgstr "Το όριο που χρησιμοποιείται για την επιλογή κενών σελίδων" #: bin/gscan2pdf:7899 msgid "Dark threshold" msgstr "Όριο ανοχής σκοτεινού" #: bin/gscan2pdf:7904 msgid "Threshold used for selecting dark pages" msgstr "Το όριο που χρησιμοποιείται για την επιλογή σκοτεινών σελίδων" #: bin/gscan2pdf:7910 msgid "OCR output" msgstr "Έξοδος OCR" #: bin/gscan2pdf:7915 msgid "Replace" msgstr "Αντικατάσταση" #: bin/gscan2pdf:7917 msgid "" "Replace the contents of the text buffer with that from the OCR output." msgstr "" "Να γίνει αντικατάσταση των περιεχομένων του buffer κειμένου, με εκείνα από " "τη έξοδο OCR." #: bin/gscan2pdf:7920 msgid "Prepend" msgstr "" #: bin/gscan2pdf:7921 msgid "Prepend the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7924 msgid "Append" msgstr "Προσάρτηση" #: bin/gscan2pdf:7925 msgid "Append the OCR output to the text buffer." msgstr "Προσάρτηση της εξόδου του OCR στο buffer κειμένου" #: bin/gscan2pdf:7933 msgid "User-defined tools" msgstr "Εργαλεία καθοριζόμενα από τον χρήστη" #: bin/gscan2pdf:7954 msgid "View files on saving" msgstr "Εμφάνιση αρχείων κατά την αποθήκευση" #: bin/gscan2pdf:8000 msgid "" "You will have to restart gscanp2df for changes to the temporary directory to " "take effect." msgstr "" "Για να εφαρμοσθούν οι αλλαγές στον προσωρινό φάκελλο, θα πρέπει να " "επανεκκινήσετε το gscanp2df" #: bin/gscan2pdf:8092 msgid "" "Use %i and %o for the input and output filenames respectively, or a single " "%i if the image is to be modified in-place.\n" "\n" "The other variable available is:\n" "\n" "%r resolution" msgstr "" "Για την Είσοδο και την Έξοδο ονομάτων αρχείων, χρησιμοποιήστε το %i και το " "%o, αντίστοιχα, ή ένα μεμονωμένο %i αν η εικόνα πρέπει να τροποποιηθεί επί " "τόπου.\n" "\n" "The other variable available is:\n" "\n" "%r resolution" #: bin/gscan2pdf:8119 msgid "Properties" msgstr "Ιδιότητες" #: lib/Gscan2pdf/Dialog.pm:63 lib/Gscan2pdf/Dialog.pm:79 t/05_Dialog.t:25 msgid "hide-on-delete" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:78 lib/Gscan2pdf/Dialog/Renumber.pm:162 msgid "Renumber" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:98 lib/Gscan2pdf/Dialog/Renumber.pm:207 #: lib/Gscan2pdf/Dialog/Renumber.pm:244 msgid "range" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:102 msgid "Page numbering" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:105 lib/Gscan2pdf/Scanner/Dialog.pm:254 msgid "border_width" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:126 lib/Gscan2pdf/Dialog/Renumber.pm:192 #: lib/Gscan2pdf/Dialog/Renumber.pm:242 t/07_Dialog_Renumber.t:33 #: t/07_Dialog_Renumber.t:45 t/07_Dialog_Renumber.t:59 #: t/07_Dialog_Renumber.t:66 msgid "start" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:147 lib/Gscan2pdf/Dialog/Renumber.pm:193 #: lib/Gscan2pdf/Dialog/Renumber.pm:243 t/07_Dialog_Renumber.t:34 #: t/07_Dialog_Renumber.t:46 t/07_Dialog_Renumber.t:60 #: t/07_Dialog_Renumber.t:67 msgid "increment" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:205 lib/Gscan2pdf/Dialog/Renumber.pm:241 msgid "document" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:295 msgid "" "The current settings would result in duplicate page numbers. Please select " "new start and increment values." msgstr "" #: lib/Gscan2pdf/Document.pm:83 msgid "Thumbnails" msgstr "Μικρογραφίες" #: lib/Gscan2pdf/Document.pm:1502 msgid "Unknown DjVu file structure. Please contact the author." msgstr "" "Άγνωστη δομή αρχείου DjVu . Παρακαλώ, επικοινωνήστε με τον συγγραφέα." #: lib/Gscan2pdf/Document.pm:1558 #, perl-format msgid "%s is not a recognised image type" msgstr "Το %s δεν είναι ένα αναγνωρισμένο είδος φωτογραφίας" #: lib/Gscan2pdf/Document.pm:1580 lib/Gscan2pdf/Document.pm:1637 #, perl-format msgid "Importing page %i of %i" msgstr "Εισαγωγή σελίδας %i του %i" #: lib/Gscan2pdf/Document.pm:1613 msgid "Error extracting images from PDF" msgstr "Σημειώθηκε σφάλμα κατά την εξαγωγή εικόνων από το PDF" #: lib/Gscan2pdf/Document.pm:1692 msgid "Setting up PDF" msgstr "Ρύθμιση του PDF" #: lib/Gscan2pdf/Document.pm:1703 #, perl-format msgid "Saving page %i of %i" msgstr "Γίνεται αποθήκευση της σελίδας %i (επί συνόλου %i)" #: lib/Gscan2pdf/Document.pm:1814 lib/Gscan2pdf/Document.pm:2136 #, perl-format msgid "Error compressing image: %s" msgstr "Σημειώθηκε σφάλμα κατά τη συμπίεση εικόνας: %s" #: lib/Gscan2pdf/Document.pm:1919 #, perl-format msgid "Error creating PDF image object: %s" msgstr "Σημειώθηκε σφάλμα κατά τη δημιουργία αντικειμένου εικόνας PDF: %s" #: lib/Gscan2pdf/Document.pm:1930 #, perl-format msgid "Error embedding file image in %s format to PDF: %s" msgstr "" "Σημειώθηκε σφάλμα κατά την ενσωμάτωση αρχείου εικόνας σε μορφή %s, μέσα στο " "PDF: %s" #: lib/Gscan2pdf/Document.pm:1939 msgid "Closing PDF" msgstr "Κλείσιμο του PDF" #: lib/Gscan2pdf/Document.pm:1955 #, perl-format msgid "Writing page %i of %i" msgstr "Γίνεται εγγραφη της σελίδας %i (επί συνόλου %i)" #: lib/Gscan2pdf/Document.pm:2006 msgid "Error writing DjVu" msgstr "Σημειώθηκε σφάλμα κατά την εγγραφή του DjVu" #: lib/Gscan2pdf/Document.pm:2025 lib/Gscan2pdf/Document.pm:2227 #, perl-format msgid "Can't open file: %s" msgstr "Αδύνατο το άνοιγμα του αρχείου: %s" #: lib/Gscan2pdf/Document.pm:2050 msgid "Error adding text layer to DjVu" msgstr "" "Σημειώθηκε σφάλμα κατά την προσθήκη στιβάδας κειμένου (text layer) στο DjVu" #: lib/Gscan2pdf/Document.pm:2056 msgid "Closing DjVu" msgstr "Γίνεται κλείσιμο του DjVu" #: lib/Gscan2pdf/Document.pm:2063 msgid "Error closing DjVu" msgstr "Σημειώθηκε σφάλμα κατά το κλείσιμο του DjVu" #: lib/Gscan2pdf/Document.pm:2078 #, perl-format msgid "Converting image %i of %i to TIFF" msgstr "Γίνεται μετατροπή σε TIFF της εικόνας %i (επί συνόλου %i)" #: lib/Gscan2pdf/Document.pm:2105 msgid "Error writing TIFF" msgstr "Σφάλμα κατά την εγγραφή του TIFF" #: lib/Gscan2pdf/Document.pm:2121 msgid "Concatenating TIFFs" msgstr "Γίνεται διασύνδεση (concatenaton) των TIFF" #: lib/Gscan2pdf/Document.pm:2140 msgid "Converting to PS" msgstr "Μετατροπή σε PS" #: lib/Gscan2pdf/Document.pm:2200 lib/Gscan2pdf/Document.pm:2215 msgid "Error saving image" msgstr "Σφάλμα κατά την αποθήκευση εικόνας" #: lib/Gscan2pdf/Frontend/CLI.pm:158 #, perl-format msgid "Scanning %i pages..." msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:163 #, perl-format msgid "Scanning page %i..." msgstr "Σάρωση σελίδας %i..." #: lib/Gscan2pdf/Frontend/CLI.pm:188 lib/Gscan2pdf/Frontend/CLI.pm:296 msgid "Scanner warming up" msgstr "Προθέρμανση σαρωτή" #: lib/Gscan2pdf/Frontend/CLI.pm:195 msgid "Document feeder out of documents" msgstr "Το τροφοδοτικό χαρτιού έμεινε χωρίς έγγραφα" #: lib/Gscan2pdf/Frontend/CLI.pm:212 lib/Gscan2pdf/Frontend/CLI.pm:325 msgid "Device busy" msgstr "Η συσκευέυή είναι απασχολημένη" #: lib/Gscan2pdf/Frontend/CLI.pm:218 lib/Gscan2pdf/Frontend/CLI.pm:330 msgid "Operation cancelled" msgstr "Η λειτουργία ακυρώθηκε" #: lib/Gscan2pdf/Frontend/CLI.pm:223 lib/Gscan2pdf/Frontend/CLI.pm:336 msgid "Unknown message: " msgstr "Άγνωστο μύνημα: " #: lib/Gscan2pdf/Page.pm:68 lib/Gscan2pdf/Page.pm:73 #, perl-format msgid "Error importing image %s: %s" msgstr "" #: lib/Gscan2pdf/PageRange.pm:33 msgid "Selected" msgstr "Επιλεγμένο" #: lib/Gscan2pdf/PageRange.pm:58 msgid "active" msgstr "ενεργό" #: lib/Gscan2pdf/Scanner/Dialog.pm:218 t/061_Scanner_Dialog.t:33 #: t/061_Scanner_Dialog.t:59 msgid "device-list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:496 t/061_Scanner_Dialog.t:139 #: t/061_Scanner_Dialog.t:174 t/062_Scanner_Dialog.t:50 #: t/062_Scanner_Dialog.t:75 msgid "current-scan-options" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:567 msgid "logger" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:650 t/05_Dialog.t:24 msgid "transient-for" msgstr "προσωρινό-για" #: lib/Gscan2pdf/Scanner/Dialog.pm:716 msgid "device_list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:749 t/061_Scanner_Dialog.t:32 msgid "device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:751 msgid "Opening device" msgstr "Γίνεται άνοιγμα συσκευής" #: lib/Gscan2pdf/Scanner/Dialog.pm:760 msgid "Retrieving options" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:41 msgid "Layout" msgstr "Διάταξη" #: lib/Gscan2pdf/Unpaper.pm:44 msgid "Single" msgstr "Μονό" #: lib/Gscan2pdf/Unpaper.pm:46 msgid "One page per sheet, oriented upwards without rotation." msgstr "Μία σελίδα ανά φύλλο, προσανατολισμός προς τα επάνω χωρίς περιστροφή" #: lib/Gscan2pdf/Unpaper.pm:49 msgid "Double" msgstr "Διπλό" #: lib/Gscan2pdf/Unpaper.pm:51 msgid "" "Two pages per sheet, landscape orientation (one page on the left half, one " "page on the right half)." msgstr "" "Δύο σελίδες ανά φύλλο, με οριζόντιο προσανατολισμό (μία σελίδα στο αριστερό " "μισό, μία σελίδα στο δεξί μισό)." #: lib/Gscan2pdf/Unpaper.pm:59 msgid "# Output pages" msgstr "# Αριθμός εξαγώγιμων σελίδων" #: lib/Gscan2pdf/Unpaper.pm:60 msgid "Number of pages to output." msgstr "Αριθμός σελίδων προς εξαγωγή." #: lib/Gscan2pdf/Unpaper.pm:68 msgid "No deskew" msgstr "Χωρίς αντιστρέβλωση" #: lib/Gscan2pdf/Unpaper.pm:69 msgid "Disable deskewing." msgstr "Απενεργοποίηση αντιστρέβλωσης" #: lib/Gscan2pdf/Unpaper.pm:74 msgid "No mask scan" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:75 msgid "Disable mask detection." msgstr "Άρση ανίχνευσης μάσκας" #: lib/Gscan2pdf/Unpaper.pm:80 msgid "No black filter" msgstr "Χωρίς φίλτρο μαύρου" #: lib/Gscan2pdf/Unpaper.pm:81 msgid "Disable black area scan." msgstr "Άρση σάρωσης μαύρων περιοχών" #: lib/Gscan2pdf/Unpaper.pm:86 msgid "No gray filter" msgstr "Χωρίς φίλτρο γρί" #: lib/Gscan2pdf/Unpaper.pm:87 msgid "Disable gray area scan." msgstr "Άρση σάρωσης γκρι περιοχών" #: lib/Gscan2pdf/Unpaper.pm:92 msgid "No noise filter" msgstr "Χωρίς φίλτρο θορύβου" #: lib/Gscan2pdf/Unpaper.pm:93 msgid "Disable noise filter." msgstr "Άρση φίλτρου θορύβου" #: lib/Gscan2pdf/Unpaper.pm:98 msgid "No blur filter" msgstr "Χωρίς φίλτρο θαμπώματος" #: lib/Gscan2pdf/Unpaper.pm:99 msgid "Disable blur filter." msgstr "Άρση φίλτρου θαμπώματος" #: lib/Gscan2pdf/Unpaper.pm:104 msgid "No border scan" msgstr "Χωρίς σάρωση περιθωρίων" #: lib/Gscan2pdf/Unpaper.pm:105 msgid "Disable border scanning." msgstr "Απενεργοποίηση σάρωσης περιθωρίων" #: lib/Gscan2pdf/Unpaper.pm:110 msgid "No border align" msgstr "Χωρίς στοίχιση περιθωρίου" #: lib/Gscan2pdf/Unpaper.pm:112 msgid "Disable aligning of the area detected by border scanning." msgstr "Απενεργοποίηση στοίχισης" #: lib/Gscan2pdf/Unpaper.pm:117 msgid "Deskew to edge" msgstr "Αντιστρέβλωση στο άκρο" #: lib/Gscan2pdf/Unpaper.pm:119 msgid "" "Edges from which to scan for rotation. Each edge of a mask can be used to " "detect the mask's rotation. If multiple edges are specified, the average " "value will be used, unless the statistical deviation exceeds --deskew-scan-" "deviation." msgstr "" "Ακμές από τις οποίες θα γίνει σάρωση για περιστροφή. Κάθε ακμή μάσκας μπορεί " "να χρησιμοποιηθεί για εντοπισμό περιστροφής της μάσκας. Αν οριστούν πολλές " "ακμές, θα χρησιμοποιηθεί ο μέσος όρος, εκτός αν η στατιστική απόκλιση " "υπερβαίνει την απόκλιση --αντιστρέβλωσης-σάρωσης" #: lib/Gscan2pdf/Unpaper.pm:125 msgid "Use 'left' for scanning from the left edge." msgstr "Χρησιμοποίησε το \"αριστερά\" για σάρωση από αριστερά" #: lib/Gscan2pdf/Unpaper.pm:130 msgid "Use 'top' for scanning from the top edge." msgstr "Χρησιμοποίησε το \"κορυφή\" για σάρωση από την κορυφή" #: lib/Gscan2pdf/Unpaper.pm:134 lib/Gscan2pdf/Unpaper.pm:162 msgid "Right" msgstr "Δεξιά" #: lib/Gscan2pdf/Unpaper.pm:135 msgid "Use 'right' for scanning from the right edge." msgstr "Χρησιμοποίησε το \"δεξιά\" για σάρωση από δεξιά" #: lib/Gscan2pdf/Unpaper.pm:139 lib/Gscan2pdf/Unpaper.pm:167 msgid "Bottom" msgstr "Βάση" #: lib/Gscan2pdf/Unpaper.pm:140 msgid "Use 'bottom' for scanning from the bottom." msgstr "Χρησιμοποίησε το \"βάση\" για σάρωση από την βάση" #: lib/Gscan2pdf/Unpaper.pm:147 msgid "Align to edge" msgstr "Στοίχιση στην ακμή" #: lib/Gscan2pdf/Unpaper.pm:148 msgid "Edge to which to align the page." msgstr "Ακμή που θα ευθυγραμιστεί η σελίδα" #: lib/Gscan2pdf/Unpaper.pm:153 msgid "Use 'left' to align to the left edge." msgstr "Χρησιμοποίησε το \"αριστερά\" για στοίχιση αριστερά" #: lib/Gscan2pdf/Unpaper.pm:158 msgid "Use 'top' to align to the top edge." msgstr "Χρήση της επιλογής 'top' για να γίνει στοίχιση στο πάνω μέρος." #: lib/Gscan2pdf/Unpaper.pm:163 msgid "Use 'right' to align to the right edge." msgstr "Χρήση της επιλογής 'right' για να γίνει στοίχιση στο δεξί μέρος." #: lib/Gscan2pdf/Unpaper.pm:168 msgid "Use 'bottom' to align to the bottom." msgstr "Χρήση της επιλογής 'bottom' για να γίνει στοίχιση στο κάτω μέρος." #: lib/Gscan2pdf/Unpaper.pm:174 msgid "Border margin" msgstr "περίγραμμα περιθωρίου" #: lib/Gscan2pdf/Unpaper.pm:178 msgid "Vertical margin" msgstr "Κατακόρυφο περιθώριο" #: lib/Gscan2pdf/Unpaper.pm:180 msgid "" "Vertical distance to keep from the sheet edge when aligning a border area." msgstr "" "Η κάθετη απόσταση από την άκρη του φύλλου, όταν γίνεται στοίχιση των " "περιθωρίων μιας περιοχής" #: lib/Gscan2pdf/Unpaper.pm:189 msgid "Horizontal margin" msgstr "Οριζόντιο περιθώριο" #: lib/Gscan2pdf/Unpaper.pm:191 msgid "" "Horizontal distance to keep from the sheet edge when aligning a border area." msgstr "" "Οριζόντια απόσταση από την ακμή του φύλλου για ευθυγράμμιση στο περιθώριο" #: lib/Gscan2pdf/Unpaper.pm:202 msgid "White threshold" msgstr "Ανοχή λευκού" #: lib/Gscan2pdf/Unpaper.pm:204 msgid "Brightness ratio above which a pixel is considered white." msgstr "" "Τιμή φωτεινότητας πάνω από την οποία ένα εικονοστοιχείο θα θεωρείται ως " "λευκό." #: lib/Gscan2pdf/Unpaper.pm:212 msgid "Black threshold" msgstr "Ανοχή μαύρου" #: lib/Gscan2pdf/Unpaper.pm:214 msgid "" "Brightness ratio below which a pixel is considered black (non-gray). This is " "used by the gray-filter. This value is also used when converting a grayscale " "image to black-and-white mode." msgstr "" "Αναλογία φωτεινότητας κάτω από την οποία ένα εικονοστοιχείο θεωρείται μαύρο " "(όχι γκρι). Αυτό χρησιμοποιείται από το φίλτρο γκρι. Η ποσότητα αυτή επίσης " "χρησιμοποιείται στη μετατροπή μίας εικόνας από τόνους γκρι σε μαυρόασπρη." #: lib/Gscan2pdf/Unpaper.pm:250 msgid "Deskew" msgstr "Αντιστρέβλωση" #: lib/Gscan2pdf/Unpaper.pm:280 msgid "Border" msgstr "Περίγραμμα" #: lib/Gscan2pdf/Unpaper.pm:337 msgid "Filters" msgstr "Φίλτρα" #: t/05_Dialog.t:23 msgid "title" msgstr "τίτλος" #: t/05_Dialog.t:26 t/05_Dialog.t:31 t/05_Dialog.t:32 t/05_Dialog.t:38 #: t/05_Dialog.t:39 msgid "border-width" msgstr "πλάτος-περιθωρίου" #: t/061_Scanner_Dialog.t:34 msgid "dir" msgstr "" #: t/061_Scanner_Dialog.t:36 msgid "max-pages" msgstr "" #: t/061_Scanner_Dialog.t:39 msgid "side-to-scan" msgstr "" #: t/061_Scanner_Dialog.t:40 t/061_Scanner_Dialog.t:185 msgid "available-scan-options" msgstr "" #: t/061_Scanner_Dialog.t:171 t/062_Scanner_Dialog.t:73 msgid "profile" msgstr "" gscan2pdf-1.2.3/po/gscan2pdf-pl.po0000644000175000017500000013346012243440507015240 0ustar jeffjeff# Polish translation for gscan2pdf # Copyright (c) 2006 Wojciech Myrda # This file is distributed under the same license as the gscan2pdf package. # Wojciech Myrda , 2006. # msgid "" msgstr "" "Project-Id-Version: gscan2pdf\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-10-25 08:12+0200\n" "PO-Revision-Date: 2013-03-17 20:02+0000\n" "Last-Translator: Piotr Strębski \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-19 09:22+0000\n" "X-Generator: Launchpad (build 16831)\n" #: bin/gscan2pdf:157 msgid "Error displaying help" msgstr "Wystąpił błąd podczas wyświetlania pomocy" #: bin/gscan2pdf:201 msgid "" "Error: unable to load settings.\n" "Backing up settings\n" "Reverting to defaults" msgstr "" "Błąd: załadowanie ustawień się nie powiodło.\n" "Tworzenie kopii zapasowej ustawień\n" "Przywracanie ustawień domyślnych" #: bin/gscan2pdf:244 msgid "A4" msgstr "A4" #: bin/gscan2pdf:250 msgid "US Letter" msgstr "US Letter" #: bin/gscan2pdf:256 msgid "US Legal" msgstr "US Legal" #: bin/gscan2pdf:323 bin/gscan2pdf:344 #, perl-format msgid "Cannot read file: %s" msgstr "Nie można odczytać pliku: %s" #: bin/gscan2pdf:451 msgid "_File" msgstr "Plik" #: bin/gscan2pdf:454 msgid "_New" msgstr "_Nowy" #: bin/gscan2pdf:455 msgid "Clears all pages" msgstr "Usuń wszystkie strony" #: bin/gscan2pdf:459 msgid "_Open" msgstr "_Otwórz" #: bin/gscan2pdf:460 msgid "Open image file(s)" msgstr "Otwórz plik obrazu" #: bin/gscan2pdf:465 msgid "S_can" msgstr "S_kanuj" #: bin/gscan2pdf:467 msgid "Scan document" msgstr "Skanuj dokument" #: bin/gscan2pdf:471 bin/gscan2pdf:472 bin/gscan2pdf:2582 msgid "Save" msgstr "Zapisz" #: bin/gscan2pdf:476 msgid "_Email as PDF" msgstr "_Wyślij e-mail jako PDF" #: bin/gscan2pdf:477 msgid "Attach as PDF to a new email" msgstr "Załącz jako PDF do nowego e-maila" #: bin/gscan2pdf:480 msgid "_Print" msgstr "_Drukuj" #: bin/gscan2pdf:481 msgid "Print" msgstr "Drukuj" #: bin/gscan2pdf:485 msgid "_Compress temporary files" msgstr "_Kompresuj pliki tymczasowe" #: bin/gscan2pdf:486 msgid "Compress temporary files" msgstr "Kompresuj pliki tymczasowe" #: bin/gscan2pdf:490 msgid "_Quit" msgstr "_Zakończ" #: bin/gscan2pdf:491 msgid "Quit" msgstr "Wyjście" #: bin/gscan2pdf:495 msgid "_Edit" msgstr "_Edytuj" #: bin/gscan2pdf:497 msgid "_Undo" msgstr "_Cofnij" #: bin/gscan2pdf:497 msgid "Undo" msgstr "Cofnij" #: bin/gscan2pdf:501 msgid "_Redo" msgstr "_Przywróć" #: bin/gscan2pdf:502 msgid "Redo" msgstr "Przywróć" #: bin/gscan2pdf:506 msgid "Cu_t" msgstr "_Wytnij" #: bin/gscan2pdf:507 msgid "Cut selection" msgstr "Wycina zaznaczenie" #: bin/gscan2pdf:511 msgid "_Copy" msgstr "_Kopiuj" #: bin/gscan2pdf:512 msgid "Copy selection" msgstr "Kopiuje zaznaczenie" #: bin/gscan2pdf:516 msgid "_Paste" msgstr "Wk_lej" #: bin/gscan2pdf:517 msgid "Paste selection" msgstr "Wkleja zaznaczenie" #: bin/gscan2pdf:521 msgid "_Delete" msgstr "_Skasuj" #: bin/gscan2pdf:522 msgid "Delete selected pages" msgstr "Skasuj wybrane strony" #: bin/gscan2pdf:526 msgid "_Renumber" msgstr "_Przenumeruj" #: bin/gscan2pdf:527 msgid "Renumber pages" msgstr "Zmień numerację stron" #: bin/gscan2pdf:529 bin/gscan2pdf:679 msgid "_Select" msgstr "Z_aznacz" #: bin/gscan2pdf:532 msgid "_All" msgstr "Wszys_tkie" #: bin/gscan2pdf:533 msgid "Select all pages" msgstr "Zaznacz wszystkie strony" #: bin/gscan2pdf:536 msgid "_Odd" msgstr "_Nieparzyste" #: bin/gscan2pdf:537 msgid "Select all odd-numbered pages" msgstr "Wybierz wszystkie nieparzyste strony" #: bin/gscan2pdf:541 msgid "_Even" msgstr "_Parzyste" #: bin/gscan2pdf:542 msgid "Select all evenly-numbered pages" msgstr "Wybierz wszystkie parzyste strony" #: bin/gscan2pdf:547 msgid "_Blank" msgstr "_Czyste strony" #: bin/gscan2pdf:548 msgid "Select pages with low standard deviation" msgstr "Zaznacz strony o niskim odchyleniu standardowym" #: bin/gscan2pdf:552 msgid "_Dark" msgstr "_Ciemne strony" #: bin/gscan2pdf:553 msgid "Select dark pages" msgstr "Zaznacz ciemne strony" #: bin/gscan2pdf:558 msgid "_Modified" msgstr "Z_modyfikowane" #: bin/gscan2pdf:560 msgid "Select modified pages since last OCR" msgstr "Wybranie stron zmodyfikowanych od ostatniego rozpoznawania tekstu" #: bin/gscan2pdf:565 msgid "_No OCR" msgstr "Bez OCR" #: bin/gscan2pdf:566 msgid "Select pages with no OCR output" msgstr "Zaznacza strony, na których nie rozpoznano tekstu" #: bin/gscan2pdf:570 msgid "_Clear OCR" msgstr "Usuwa rozpoznany tekst" #: bin/gscan2pdf:571 msgid "Clear OCR output from selected pages" msgstr "Usuwa rozpoznany tekst z wybranych stron" #: bin/gscan2pdf:575 msgid "Propert_ies" msgstr "_Właściwości" #: bin/gscan2pdf:576 msgid "Edit image properties" msgstr "Edytuj właściwości obrazka" #: bin/gscan2pdf:580 msgid "Prefere_nces" msgstr "P_referencje" #: bin/gscan2pdf:581 msgid "Edit preferences" msgstr "Edytuj ustawienia" #: bin/gscan2pdf:585 msgid "_View" msgstr "_Widok" #: bin/gscan2pdf:588 msgid "Zoom _100%" msgstr "Powiększenie _100%" #: bin/gscan2pdf:589 msgid "Zoom to 100%" msgstr "Ustaw zbliżenie na 100%" #: bin/gscan2pdf:593 msgid "Zoom to _fit" msgstr "_Dopasuj do okna" #: bin/gscan2pdf:594 msgid "Zoom to fit" msgstr "Dopasuj do okna" #: bin/gscan2pdf:598 msgid "Zoom _in" msgstr "Po_większ" #: bin/gscan2pdf:599 msgid "Zoom in" msgstr "Powiększ" #: bin/gscan2pdf:603 msgid "Zoom _out" msgstr "Po_mniejsz" #: bin/gscan2pdf:604 msgid "Zoom out" msgstr "Pomniejsz" #: bin/gscan2pdf:609 bin/gscan2pdf:611 msgid "Rotate 90 clockwise" msgstr "Obróć zgodnie z zegarem" #: bin/gscan2pdf:617 bin/gscan2pdf:619 msgid "Rotate 180" msgstr "Obróć o 180°" #: bin/gscan2pdf:625 bin/gscan2pdf:627 msgid "Rotate 90 anticlockwise" msgstr "Obróć przeciwnie do zegara" #: bin/gscan2pdf:632 msgid "_Tools" msgstr "_Narzędzia" #: bin/gscan2pdf:634 msgid "_Threshold" msgstr "_Próg" #: bin/gscan2pdf:635 msgid "Change each pixel above this threshold to black" msgstr "Zmień każdy piksel powyżej progu na czarny" #: bin/gscan2pdf:639 msgid "_Negate" msgstr "_Negatyw" #: bin/gscan2pdf:640 msgid "Converts black to white and vice versa" msgstr "Konwertuje czarny na biały i vice versa." #: bin/gscan2pdf:644 msgid "_Unsharp Mask" msgstr "_Maska wyostrzająca" #: bin/gscan2pdf:645 msgid "Apply an unsharp mask" msgstr "Zastosuj maskę wyostrzającą" #: bin/gscan2pdf:648 msgid "_Crop" msgstr "Wy_kadruj" #: bin/gscan2pdf:649 msgid "Crop pages" msgstr "Kadruj strony" #: bin/gscan2pdf:653 msgid "_Clean up" msgstr "_Posprzątaj" #: bin/gscan2pdf:654 bin/gscan2pdf:4085 msgid "Clean up scanned images with unpaper" msgstr "Czyści zeskanowane obrazy za pomocą narzędzia unpaper" #: bin/gscan2pdf:657 msgid "_OCR" msgstr "_OCR" #: bin/gscan2pdf:658 msgid "Optical Character Recognition" msgstr "OCR - optyczne rozpoznawanie znaków" #: bin/gscan2pdf:660 msgid "U_ser-defined" msgstr "Zdefiniowane przez użytkownika" #: bin/gscan2pdf:663 bin/gscan2pdf:665 msgid "_Help" msgstr "_Pomoc" #: bin/gscan2pdf:666 msgid "Help" msgstr "Pomoc" #: bin/gscan2pdf:668 msgid "_About" msgstr "_O Programie" #: bin/gscan2pdf:674 msgid "_Drag" msgstr "_Przeciągnij" #: bin/gscan2pdf:675 msgid "Use the hand tool" msgstr "Użyj narzędzia „Rączka”" #: bin/gscan2pdf:680 msgid "Use the rectangular selection tool" msgstr "Zaznaczenie prostokątne" #: bin/gscan2pdf:684 msgid "_Paint" msgstr "_Maluj" #: bin/gscan2pdf:685 msgid "Use the painter tool" msgstr "Użyj narzędzia malarza" #: bin/gscan2pdf:965 lib/Gscan2pdf/Document.pm:2594 #: lib/Gscan2pdf/Document.pm:2595 msgid "Error copying page" msgstr "Błąd kopiowania strony" #: bin/gscan2pdf:1082 msgid "Image" msgstr "Obraz" #: bin/gscan2pdf:1117 msgid "OCR Output" msgstr "Wynik rozpoznawania tekstu" #: bin/gscan2pdf:1174 msgid "Mode" msgstr "Tryb" #: bin/gscan2pdf:1176 msgid "Lineart" msgstr "Tryb kreski" #: bin/gscan2pdf:1177 msgid "Grayscale" msgstr "Skala szarości" #: bin/gscan2pdf:1178 msgid "Gray" msgstr "Szary" #: bin/gscan2pdf:1179 msgid "Color" msgstr "Kolorowy" #: bin/gscan2pdf:1180 msgid "Black & White" msgstr "Czarno-biały" #: bin/gscan2pdf:1181 msgid "True Gray" msgstr "True Grey" #: bin/gscan2pdf:1182 msgid "Binary" msgstr "Binarny" #: bin/gscan2pdf:1183 bin/gscan2pdf:1242 bin/gscan2pdf:1243 msgid "Auto" msgstr "Automatycznie" #: bin/gscan2pdf:1184 msgid "Halftone" msgstr "Pół tonu" #: bin/gscan2pdf:1185 msgid "24bit Color" msgstr "Kolor 24bit" #: bin/gscan2pdf:1189 bin/gscan2pdf:2547 bin/gscan2pdf:2644 msgid "Compression" msgstr "Kompresja" #: bin/gscan2pdf:1191 bin/gscan2pdf:2539 bin/gscan2pdf:2636 msgid "None" msgstr "Żadne" #: bin/gscan2pdf:1192 bin/gscan2pdf:2537 bin/gscan2pdf:2601 bin/gscan2pdf:2622 msgid "JPEG" msgstr "JPEG" #: bin/gscan2pdf:1195 bin/gscan2pdf:8127 msgid "Resolution" msgstr "Rozdzielczość" #: bin/gscan2pdf:1196 msgid "Brightness" msgstr "Jasność:" #: bin/gscan2pdf:1197 msgid "Gain" msgstr "" #: bin/gscan2pdf:1198 msgid "Contrast" msgstr "Kontrast:" #: bin/gscan2pdf:1199 bin/gscan2pdf:6406 bin/gscan2pdf:6417 bin/gscan2pdf:6620 msgid "Threshold" msgstr "Progowanie" #: bin/gscan2pdf:1201 msgid "Speed" msgstr "Szybkość:" #: bin/gscan2pdf:1203 bin/gscan2pdf:1210 bin/gscan2pdf:1217 bin/gscan2pdf:1224 #: bin/gscan2pdf:1231 msgid "Yes" msgstr "Tak" #: bin/gscan2pdf:1204 bin/gscan2pdf:1211 bin/gscan2pdf:1218 bin/gscan2pdf:1225 #: bin/gscan2pdf:1232 msgid "No" msgstr "Nie" #: bin/gscan2pdf:1208 msgid "Batch scan" msgstr "Skanowanie partii" #: bin/gscan2pdf:1215 bin/gscan2pdf:1222 msgid "Wait for button" msgstr "Czekaj na przycisk" #: bin/gscan2pdf:1229 msgid "Cache calibration" msgstr "Kalibracja pamięci tymczasowej" #: bin/gscan2pdf:1236 msgid "Source" msgstr "Żródło" #: bin/gscan2pdf:1238 msgid "Normal" msgstr "Zwykłe" #: bin/gscan2pdf:1239 msgid "ADF" msgstr "ADF" #: bin/gscan2pdf:1240 msgid "Automatic Document Feeder" msgstr "Podajnik Automatyczny" #: bin/gscan2pdf:1241 msgid "XPA" msgstr "XPA" #: bin/gscan2pdf:1244 msgid "Flatbed" msgstr "Płyta skanera" #: bin/gscan2pdf:1245 msgid "Transparency Adapter" msgstr "Moduł do skanowania negatywów" #: bin/gscan2pdf:1246 msgid "Transparency Unit" msgstr "Moduł do skanowania przezroczy" #: bin/gscan2pdf:1249 bin/gscan2pdf:1251 msgid "Page Width" msgstr "Szerokość strony" #: bin/gscan2pdf:1250 bin/gscan2pdf:1252 msgid "Page Height" msgstr "Wysokość strony" #: bin/gscan2pdf:1253 msgid "Top Overscan" msgstr "" #: bin/gscan2pdf:1254 msgid "Bottom Overscan" msgstr "" #: bin/gscan2pdf:1256 bin/gscan2pdf:1263 msgid "ADF Mode" msgstr "Tryb ADF" #: bin/gscan2pdf:1258 bin/gscan2pdf:1265 msgid "Simplex" msgstr "Simpleks" #: bin/gscan2pdf:1259 bin/gscan2pdf:1266 msgid "Duplex" msgstr "Dupleks" #: bin/gscan2pdf:1301 bin/gscan2pdf:1306 msgid "Pick crashed session to restore" msgstr "Wybierz, którą sesję przywrócić po awarii" #: bin/gscan2pdf:1308 bin/gscan2pdf:2609 msgid "Session" msgstr "Sesja" #: bin/gscan2pdf:1338 #, perl-format msgid "" "Warning: unable to use %s for temporary storage. Defaulting to %s instead." msgstr "" "Ostrzeżenie: nie można użyć %s jako miejsca przechowywania danych " "tymczasowych. Zostanie wybrane miejsce domyślne: %s." #: bin/gscan2pdf:1441 msgid "GOCR" msgstr "GOCR" #: bin/gscan2pdf:1441 msgid "Process image with GOCR." msgstr "Przetwarzaj obraz mechanizmem GOCR." #: bin/gscan2pdf:1445 msgid "Tesseract" msgstr "Tesseract" #: bin/gscan2pdf:1446 msgid "Process image with Tesseract." msgstr "Przetwarzaj obraz za pomocą Tesseract." #: bin/gscan2pdf:1450 msgid "Ocropus" msgstr "Ocropus" #: bin/gscan2pdf:1450 msgid "Process image with Ocropus." msgstr "Obrabiaj obraz narzędziem Ocropus." #: bin/gscan2pdf:1454 msgid "Cuneiform" msgstr "CuneiForm" #: bin/gscan2pdf:1455 msgid "Process image with Cuneiform." msgstr "Rozpoznaj za pomocą CuneiForm" #: bin/gscan2pdf:1461 msgid "Save image and Save as PDF both require imagemagick\n" msgstr "Zapisz obraz i Zapisz jako PDF wymagają imagemagick\n" #: bin/gscan2pdf:1465 msgid "Save image requires libtiff\n" msgstr "Zapisz obraz wymaga libtiff\n" #: bin/gscan2pdf:1469 msgid "Save as DjVu requires djvulibre-bin\n" msgstr "Zapisanie jako DjVu wymaga biblioteki djvulibre-bin\n" #: bin/gscan2pdf:1473 msgid "Email as PDF requires xdg-email\n" msgstr "E-mailowanie jako PDF wymaga biblioteki xdg-email\n" #: bin/gscan2pdf:1518 msgid "The rotating options and unpaper support require perlmagick\n" msgstr "" "Opcje obracania i czyszczenia za pomocą narzędzia unpaper wymagają modułu " "Perlmagic\n" #: bin/gscan2pdf:1524 msgid "unpaper missing\n" msgstr "Brak unpaper\n" #: bin/gscan2pdf:1534 msgid "OCR requires gocr, tesseract, ocropus, or cuneiform\n" msgstr "" "Do rozpoznania tekstu potrzeba gocr, tesseract, ocropus lub cuneiform\n" #: bin/gscan2pdf:1539 msgid "Warning: missing packages" msgstr "Uwaga: brakuje pakietów" #: bin/gscan2pdf:1544 msgid "Don't show this message again" msgstr "Nie pokazuj więcej tego komunikatu" #: bin/gscan2pdf:1753 msgid "" "Some pages have not been saved.\n" "Do you really want to clear all pages?" msgstr "" "Niektóre strony nie zostały zapisane.\n" "Czy na pewno chcesz wyczyścić wszystkie strony?" #: bin/gscan2pdf:1828 bin/gscan2pdf:1858 #, perl-format msgid "Process %i of %i (%s)" msgstr "Obrabiaj %i z %i (%s)" #: bin/gscan2pdf:1867 #, perl-format msgid "Process %i of %i" msgstr "Obrabiaj %i z %i" #: bin/gscan2pdf:1895 msgid "Open image" msgstr "Otwórz obraz" #: bin/gscan2pdf:1903 bin/gscan2pdf:2797 bin/gscan2pdf:3113 msgid "Image files" msgstr "Pliki graficzne" #: bin/gscan2pdf:1940 msgid "Pages to extract" msgstr "Strony do wyodrębnienia" #: bin/gscan2pdf:1943 bin/gscan2pdf:2117 bin/gscan2pdf:2586 bin/gscan2pdf:3353 #: bin/gscan2pdf:3494 bin/gscan2pdf:4104 bin/gscan2pdf:4514 bin/gscan2pdf:5825 #: bin/gscan2pdf:6409 bin/gscan2pdf:6495 bin/gscan2pdf:6565 bin/gscan2pdf:6737 #: bin/gscan2pdf:7011 bin/gscan2pdf:7274 bin/gscan2pdf:7757 bin/gscan2pdf:8123 #: lib/Gscan2pdf/Dialog.pm:56 lib/Gscan2pdf/Dialog/Renumber.pm:80 #: lib/Gscan2pdf/Scanner/Dialog.pm:201 t/05_Dialog.t:28 msgid "vbox" msgstr "" #: bin/gscan2pdf:1946 msgid "First page to extract" msgstr "Pierwsza strona do wyodrębnienia" #: bin/gscan2pdf:1953 msgid "Last page to extract" msgstr "Ostatnia strona do wyodrębnienia" #: bin/gscan2pdf:2042 lib/Gscan2pdf/Dialog/Renumber.pm:83 msgid "Page Range" msgstr "Zakres stron" #: bin/gscan2pdf:2092 msgid "Metadata" msgstr "Metadane" #: bin/gscan2pdf:2101 msgid "Date" msgstr "Data" #: bin/gscan2pdf:2114 msgid "Select Date" msgstr "Wybierz Datę" #: bin/gscan2pdf:2136 msgid "Today" msgstr "Dzisiaj" #: bin/gscan2pdf:2150 msgid "Year-Month-Day" msgstr "Rok-Miesiąc-Dzień" #: bin/gscan2pdf:2156 msgid "Document author" msgstr "Autor dokumentu" #: bin/gscan2pdf:2165 msgid "Title" msgstr "Tytuł" #: bin/gscan2pdf:2174 msgid "Subject" msgstr "Temat" #: bin/gscan2pdf:2183 msgid "Keywords" msgstr "Słowa kluczowe" #: bin/gscan2pdf:2245 msgid "Editing text" msgstr "Edycja tekstu" #: bin/gscan2pdf:2252 bin/gscan2pdf:2258 bin/gscan2pdf:2332 msgid "text" msgstr "tekst" #: bin/gscan2pdf:2352 msgid "PDF filename" msgstr "Plik PDF" #: bin/gscan2pdf:2381 msgid "PDF files" msgstr "Pliki PDF" #: bin/gscan2pdf:2405 bin/gscan2pdf:2823 bin/gscan2pdf:2880 bin/gscan2pdf:2976 #: bin/gscan2pdf:3035 bin/gscan2pdf:3087 bin/gscan2pdf:3275 #, perl-format msgid "File %s is read-only" msgstr "Plik %s jest tylko do odczytu" #: bin/gscan2pdf:2482 msgid "JPEG Quality" msgstr "Jakość JPEG" #: bin/gscan2pdf:2496 msgid "Downsample to" msgstr "Zmniejsz rozdzielczość do" #: bin/gscan2pdf:2501 msgid "PPI" msgstr "PPI" #: bin/gscan2pdf:2520 msgid "Automatic" msgstr "Automatyczna" #: bin/gscan2pdf:2521 msgid "Let gscan2pdf which type of compression to use." msgstr "Niech program gscan2pdf sam wybierze rodzaj kompresji." #: bin/gscan2pdf:2524 bin/gscan2pdf:2616 msgid "LZW" msgstr "LZW" #: bin/gscan2pdf:2525 bin/gscan2pdf:2617 msgid "Compress output with Lempel-Ziv & Welch encoding." msgstr "Kompresuj plik wyjściowy algorytmem Lempel-Ziv & Welch" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Zip" msgstr "Zip" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Compress output with deflate encoding." msgstr "Kompresuj plik wyjściowy algorytmem Deflate" #: bin/gscan2pdf:2529 bin/gscan2pdf:2624 msgid "Packbits" msgstr "" #: bin/gscan2pdf:2530 bin/gscan2pdf:2625 msgid "Compress output with Packbits encoding." msgstr "Kompresuj plik wyjściowy algorytmem PackBits" #: bin/gscan2pdf:2536 bin/gscan2pdf:2604 msgid "PNG" msgstr "PNG" #: bin/gscan2pdf:2536 msgid "Compress output with PNG encoding." msgstr "Kompresuj plik wyjściowy algorytmem PNG" #: bin/gscan2pdf:2537 bin/gscan2pdf:2622 msgid "Compress output with JPEG encoding." msgstr "Kompresuj plik wyjściowy algorytmem JPEG" #: bin/gscan2pdf:2540 bin/gscan2pdf:2637 msgid "Use no compression algorithm on output." msgstr "Nie używaj żadnego algorytmu kompresującego na wyjściu." #: bin/gscan2pdf:2594 msgid "Image type" msgstr "Typ obrazu" #: bin/gscan2pdf:2598 msgid "PDF" msgstr "PDF" #: bin/gscan2pdf:2598 msgid "Portable Document Format" msgstr "Portable Document Format (PDF)" #: bin/gscan2pdf:2599 msgid "GIF" msgstr "GIF" #: bin/gscan2pdf:2599 msgid "CompuServe graphics interchange format" msgstr "Format wymiany graficznej CompuServe" #: bin/gscan2pdf:2602 msgid "Joint Photographic Experts Group JFIF format" msgstr "Format JFIF Połączonej Grupy Eksperckiej w dziedzinie Fotografii" #: bin/gscan2pdf:2604 msgid "Portable Network Graphics" msgstr "PNG (Portable Network Graphics)" #: bin/gscan2pdf:2605 msgid "PNM" msgstr "PNM" #: bin/gscan2pdf:2605 msgid "Portable anymap" msgstr "" #: bin/gscan2pdf:2606 msgid "PS" msgstr "PS" #: bin/gscan2pdf:2606 msgid "Postscript" msgstr "Postscript" #: bin/gscan2pdf:2607 msgid "TIFF" msgstr "TIFF" #: bin/gscan2pdf:2607 msgid "Tagged Image File Format" msgstr "Tagged Image File Format (TIFF)" #: bin/gscan2pdf:2608 msgid "Text" msgstr "Tekst" #: bin/gscan2pdf:2608 msgid "Plain text" msgstr "Zwykły tekst" #: bin/gscan2pdf:2609 msgid "gscan2pdf session file" msgstr "plik sesji gscan2pdf" #: bin/gscan2pdf:2611 msgid "DjVu" msgstr "DjVu" #: bin/gscan2pdf:2611 msgid "Deja Vu" msgstr "Deja Vu" #: bin/gscan2pdf:2628 msgid "G3" msgstr "G3" #: bin/gscan2pdf:2629 msgid "Compress output with CCITT Group 3 encoding." msgstr "Skompresuj materiał wyjściowy za pomocą kodowania CCITT Group 3" #: bin/gscan2pdf:2632 msgid "G4" msgstr "G4" #: bin/gscan2pdf:2633 msgid "Compress output with CCITT Group 4 encoding." msgstr "Skompresuj materiały wyjściowe za pomocą kodowania CCITT Group 4" #: bin/gscan2pdf:2649 msgid "tiff" msgstr "tiff" #: bin/gscan2pdf:2681 msgid "Font for non-ASCII text" msgstr "Font dla tekstu spoza zestawu znaków ASCII" #: bin/gscan2pdf:2790 msgid "TIFF filename" msgstr "Nazwa pliku TIFF" #: bin/gscan2pdf:2848 msgid "Text filename" msgstr "Nazwa pliku tekstowego" #: bin/gscan2pdf:2856 msgid "Text files" msgstr "Pliki tekstowe" #: bin/gscan2pdf:2944 msgid "PS filename" msgstr "Nazwa pliku postscript" #: bin/gscan2pdf:2951 msgid "Postscript files" msgstr "Pliki postscript" #: bin/gscan2pdf:3003 msgid "gscan2pdf session filename" msgstr "nazwa pliku sesji gscan2pdf" #: bin/gscan2pdf:3010 msgid "gscan2pdf session files" msgstr "pliki sesji gscan2pdf" #: bin/gscan2pdf:3093 #, perl-format msgid "" "File %s exists.\n" "Really overwrite?" msgstr "" "Plik %s już istnieje.\n" "Czy nadpisać?" #: bin/gscan2pdf:3106 msgid "Image filename" msgstr "Nazwa pliku obrazu" #: bin/gscan2pdf:3245 msgid "DjVu filename" msgstr "Nazwa pliku DjVu" #: bin/gscan2pdf:3252 msgid "DjVu files" msgstr "pliki DjVu" #: bin/gscan2pdf:3349 msgid "Email as PDF" msgstr "Wyślij e-mail jako PDF" #: bin/gscan2pdf:3454 msgid "Error creating email" msgstr "Błąd przy tworzeniu e-maila" #: bin/gscan2pdf:3490 bin/gscan2pdf:4313 msgid "Scan Document" msgstr "Skanuj dokument" #: bin/gscan2pdf:3507 lib/Gscan2pdf/Scanner/Dialog.pm:248 msgid "Page Options" msgstr "Ustawienia strony" #: bin/gscan2pdf:3510 lib/Gscan2pdf/Scanner/Dialog.pm:251 msgid "# Pages" msgstr "# Stron" #: bin/gscan2pdf:3519 lib/Gscan2pdf/PageRange.pm:34 #: lib/Gscan2pdf/Scanner/Dialog.pm:261 msgid "All" msgstr "Wszystkie" #: bin/gscan2pdf:3520 lib/Gscan2pdf/Scanner/Dialog.pm:262 msgid "Scan all pages" msgstr "Skanuj wszystkie strony" #: bin/gscan2pdf:3532 bin/gscan2pdf:3537 lib/Gscan2pdf/Scanner/Dialog.pm:274 #: lib/Gscan2pdf/Scanner/Dialog.pm:279 msgid "Set number of pages to scan" msgstr "Wybierz liczbę stron do skanowania" #: bin/gscan2pdf:3550 lib/Gscan2pdf/Scanner/Dialog.pm:308 msgid "Extended page numbering" msgstr "Więcej opcji numerowania stron" #: bin/gscan2pdf:3554 lib/Gscan2pdf/Scanner/Dialog.pm:312 msgid "Page number" msgstr "Numer strony" #: bin/gscan2pdf:3563 lib/Gscan2pdf/Dialog/Renumber.pm:111 #: lib/Gscan2pdf/Scanner/Dialog.pm:321 msgid "Start" msgstr "Nr pierwszej strony" #: bin/gscan2pdf:3572 lib/Gscan2pdf/Dialog/Renumber.pm:132 #: lib/Gscan2pdf/Scanner/Dialog.pm:340 msgid "Increment" msgstr "Przyrost" #: bin/gscan2pdf:3604 lib/Gscan2pdf/Scanner/Dialog.pm:372 msgid "Source document" msgstr "Źródło dokumentu" #: bin/gscan2pdf:3611 lib/Gscan2pdf/Scanner/Dialog.pm:379 msgid "Single sided" msgstr "Jednostronny" #: bin/gscan2pdf:3612 lib/Gscan2pdf/Scanner/Dialog.pm:380 msgid "Source document is single-sided" msgstr "Dokument źródłowy jest jednostronny" #: bin/gscan2pdf:3622 lib/Gscan2pdf/Scanner/Dialog.pm:390 msgid "Double sided" msgstr "Dwustronny" #: bin/gscan2pdf:3623 lib/Gscan2pdf/Scanner/Dialog.pm:391 msgid "Source document is double-sided" msgstr "Dokument źródłowy jest dwustronny" #: bin/gscan2pdf:3629 lib/Gscan2pdf/Scanner/Dialog.pm:397 msgid "Side to scan" msgstr "Strona do zeskanowania" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Facing" msgstr "Czołowa" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Reverse" msgstr "Rewers" #: bin/gscan2pdf:3655 lib/Gscan2pdf/Scanner/Dialog.pm:418 msgid "Sets which side of a double-sided document is scanned" msgstr "Wybiera, którą stronę dokumentu zeskanować" #: bin/gscan2pdf:3719 msgid "Scan Options" msgstr "Opcje skanowania" #: bin/gscan2pdf:3722 msgid "Device-dependent options" msgstr "Opcje urządzenia" #: bin/gscan2pdf:3729 lib/Gscan2pdf/Scanner/Dialog.pm:458 msgid "Scan profiles" msgstr "Profile skanowania" #: bin/gscan2pdf:3778 bin/gscan2pdf:3784 lib/Gscan2pdf/Scanner/Dialog.pm:479 #: lib/Gscan2pdf/Scanner/Dialog.pm:485 msgid "Name of scan profile" msgstr "Nazwa profilu skanowania" #: bin/gscan2pdf:3828 lib/Gscan2pdf/Scanner/Dialog.pm:518 msgid "Scan" msgstr "Skan" #: bin/gscan2pdf:3866 msgid "Must scan facing pages first" msgstr "Musi skanować strony czołowe jako pierwsze" #: bin/gscan2pdf:3977 msgid "Post-processing" msgstr "Przetwarzanie końcowe" #: bin/gscan2pdf:3986 bin/gscan2pdf:4008 msgid "Rotate" msgstr "Obróć" #: bin/gscan2pdf:3987 bin/gscan2pdf:4009 msgid "Rotate image after scanning" msgstr "Obróć obraz po skanowaniu" #: bin/gscan2pdf:3990 msgid "Both sides" msgstr "Obie strony" #: bin/gscan2pdf:3990 msgid "Both sides." msgstr "Obie strony." #: bin/gscan2pdf:3991 msgid "Facing side" msgstr "" #: bin/gscan2pdf:3991 msgid "Facing side." msgstr "" #: bin/gscan2pdf:3992 msgid "Reverse side" msgstr "" #: bin/gscan2pdf:3992 msgid "Reverse side." msgstr "" #: bin/gscan2pdf:3995 bin/gscan2pdf:4013 msgid "Select side to rotate" msgstr "Wybierz stronę do obrócenia" #: bin/gscan2pdf:3998 msgid "90" msgstr "90" #: bin/gscan2pdf:3998 msgid "Rotate image 90 degrees clockwise." msgstr "Obraca obraz zgodnie z zegarem" #: bin/gscan2pdf:3999 msgid "180" msgstr "180" #: bin/gscan2pdf:3999 msgid "Rotate image 180 degrees clockwise." msgstr "Obraca obraz o 180°" #: bin/gscan2pdf:4000 msgid "270" msgstr "270" #: bin/gscan2pdf:4000 msgid "Rotate image 90 degrees anticlockwise." msgstr "Obraca obraz przeciwnie do zegara" #: bin/gscan2pdf:4003 bin/gscan2pdf:4016 msgid "Select direction of rotation" msgstr "Wybierz kierunek obrotu" #: bin/gscan2pdf:4083 msgid "Clean up images" msgstr "Czyszczenie obrazów" #: bin/gscan2pdf:4094 msgid "Options" msgstr "Opcje" #: bin/gscan2pdf:4095 msgid "Set unpaper options" msgstr "Ustaw opcje narzędzia unpaper" #: bin/gscan2pdf:4101 msgid "unpaper options" msgstr "Opcje narzędzia unpaper" #: bin/gscan2pdf:4136 bin/gscan2pdf:4137 msgid "OCR scanned pages" msgstr "Strony zeskanowane z użyciem OCR" #: bin/gscan2pdf:4151 msgid "Select OCR engine" msgstr "Wybierz silnik OCR" #: bin/gscan2pdf:4210 lib/Gscan2pdf/Scanner/Dialog.pm:634 msgid "Fetching list of devices" msgstr "Pobieram listę urządzeń" #: bin/gscan2pdf:4225 lib/Gscan2pdf/Scanner/Dialog.pm:654 msgid "No devices found" msgstr "Nie znaleziono żadnych urządzeń" #: bin/gscan2pdf:4367 bin/gscan2pdf:4732 bin/gscan2pdf:4777 bin/gscan2pdf:5214 #: lib/Gscan2pdf/Scanner/Dialog.pm:343 lib/Gscan2pdf/Scanner/Dialog.pm:348 #: t/061_Scanner_Dialog.t:38 t/061_Scanner_Dialog.t:95 msgid "page-number-increment" msgstr "" #: bin/gscan2pdf:4374 bin/gscan2pdf:4729 bin/gscan2pdf:4730 bin/gscan2pdf:4776 #: bin/gscan2pdf:5213 lib/Gscan2pdf/Scanner/Dialog.pm:361 #: t/061_Scanner_Dialog.t:37 msgid "page-number-start" msgstr "" #: bin/gscan2pdf:4663 lib/Gscan2pdf/Scanner/Dialog.pm:210 msgid "Device" msgstr "Urządzenie" #: bin/gscan2pdf:4671 lib/Gscan2pdf/Scanner/Dialog.pm:213 msgid "Rescan for devices" msgstr "Jeszcze raz wyszukaj podłączone urządzenia" #: bin/gscan2pdf:4694 lib/Gscan2pdf/Scanner/Dialog.pm:237 msgid "Sets the device to be used for the scan" msgstr "Wybiera urządzenie używane do skanowania" #: bin/gscan2pdf:4780 lib/Gscan2pdf/Scanner/Dialog.pm:300 #: t/061_Scanner_Dialog.t:35 msgid "num-pages" msgstr "" #: bin/gscan2pdf:4821 msgid "Scanning" msgstr "Skanowanie" #: bin/gscan2pdf:4974 msgid "Unable to load image" msgstr "Nie można wczytać obrazka" #: bin/gscan2pdf:5004 msgid "print-pages" msgstr "" #: bin/gscan2pdf:5008 msgid "page-ranges" msgstr "zakresy stron" #: bin/gscan2pdf:5405 msgid "Patches gratefully received from:" msgstr "" #: bin/gscan2pdf:5407 msgid "To aid the scan-to-PDF process" msgstr "By wesprzeć proces skanowania do PDF" #: bin/gscan2pdf:5408 msgid "Copyright 2006--2012 Jeffrey Ratcliffe" msgstr "" #: bin/gscan2pdf:5492 bin/gscan2pdf:6028 msgid "The options cache seems to be empty. Reload device-dependent options?" msgstr "" #: bin/gscan2pdf:5519 bin/gscan2pdf:6054 msgid "Updating options" msgstr "Aktualizauję ustawienia" #: bin/gscan2pdf:5571 msgid "Paper size" msgstr "Rozmiar papieru" #: bin/gscan2pdf:5572 bin/gscan2pdf:5672 bin/gscan2pdf:5840 bin/gscan2pdf:6769 msgid "Width" msgstr "Szerokość" #: bin/gscan2pdf:5573 bin/gscan2pdf:5678 bin/gscan2pdf:5841 bin/gscan2pdf:6780 msgid "Height" msgstr "Wysokość" #: bin/gscan2pdf:5574 bin/gscan2pdf:5684 bin/gscan2pdf:5842 #: lib/Gscan2pdf/Unpaper.pm:124 lib/Gscan2pdf/Unpaper.pm:152 msgid "Left" msgstr "Od lewej" #: bin/gscan2pdf:5575 bin/gscan2pdf:5690 bin/gscan2pdf:5843 #: lib/Gscan2pdf/Unpaper.pm:129 lib/Gscan2pdf/Unpaper.pm:157 msgid "Top" msgstr "Górna granica" #: bin/gscan2pdf:5589 bin/gscan2pdf:5703 bin/gscan2pdf:6232 msgid "Manual" msgstr "Ręcznie" #: bin/gscan2pdf:5590 bin/gscan2pdf:5700 msgid "Edit" msgstr "Edytuj" #: bin/gscan2pdf:5591 msgid "Selects or edits the paper size" msgstr "Wybiera lub edytuje rozmiar papieru" #: bin/gscan2pdf:5673 msgid "Width of scan area" msgstr "Szerokość obszaru skanowania" #: bin/gscan2pdf:5679 msgid "Height of scan area" msgstr "Wysokość obszaru skanowania" #: bin/gscan2pdf:5685 msgid "Top-left x position of scan area" msgstr "Lewo-górna x pozycja obszaru skanowania" #: bin/gscan2pdf:5691 msgid "Top-left y position of scan area" msgstr "Lewo-górna y pozycja obszaru skanowania" #: bin/gscan2pdf:5822 msgid "Edit paper size" msgstr "Edytuj rozmiar papieru" #: bin/gscan2pdf:5839 msgid "Name" msgstr "Nazwa" #: bin/gscan2pdf:5893 msgid "Cannot delete all paper sizes" msgstr "Nie mogę usunąć wszystkich rozmiarów papieru" #: bin/gscan2pdf:5955 msgid "" "The following paper sizes are too big to be scanned by the selected device:" msgstr "" "Wybrane urządzenie nie obsługuje następujących rozmiarów papieru, bo są za " "duże:" #: bin/gscan2pdf:6419 bin/gscan2pdf:6605 msgid "%" msgstr "%" #: bin/gscan2pdf:6492 msgid "Negate" msgstr "" #: bin/gscan2pdf:6562 msgid "Unsharp mask" msgstr "Maska wyostrzania" #: bin/gscan2pdf:6573 msgid "Radius" msgstr "" #: bin/gscan2pdf:6575 bin/gscan2pdf:6592 bin/gscan2pdf:6747 bin/gscan2pdf:6759 #: bin/gscan2pdf:6771 bin/gscan2pdf:6782 msgid "pixels" msgstr "piksele" #: bin/gscan2pdf:6582 msgid "" "The radius of the Gaussian, in pixels, not counting the center pixel (0 = " "automatic)." msgstr "" #: bin/gscan2pdf:6590 msgid "Sigma" msgstr "Sigma" #: bin/gscan2pdf:6597 msgid "The standard deviation of the Gaussian." msgstr "" #: bin/gscan2pdf:6603 msgid "Amount" msgstr "Ilość" #: bin/gscan2pdf:6612 msgid "" "The percentage of the difference between the original and the blur image " "that is added back into the original." msgstr "" #: bin/gscan2pdf:6627 msgid "" "The threshold, as a fraction of QuantumRange, needed to apply the difference " "amount." msgstr "" #: bin/gscan2pdf:6733 msgid "Crop" msgstr "Kadrowanie" #: bin/gscan2pdf:6745 msgid "x" msgstr "x" #: bin/gscan2pdf:6751 msgid "The x-position of the left hand edge of the crop." msgstr "Położenie lewej krawędzi obszaru kadrowania" #: bin/gscan2pdf:6757 msgid "y" msgstr "y" #: bin/gscan2pdf:6763 msgid "The y-position of the top edge of the crop." msgstr "Położenie górnej krawędzi obszaru kadrowania" #: bin/gscan2pdf:6774 msgid "The width of the crop." msgstr "Szerokość obszaru kadrowania" #: bin/gscan2pdf:6785 msgid "The height of the crop." msgstr "Wysokość obszaru kadrowania" #: bin/gscan2pdf:6906 msgid "label" msgstr "etykieta" #: bin/gscan2pdf:7007 msgid "unpaper" msgstr "" #: bin/gscan2pdf:7216 bin/gscan2pdf:7244 msgid "Language to recognise" msgstr "Język do rozpoznania" #: bin/gscan2pdf:7227 msgid "English" msgstr "angielski" #: bin/gscan2pdf:7270 msgid "OCR" msgstr "OCR" #: bin/gscan2pdf:7279 msgid "OCR Engine" msgstr "Silnik OCR" #: bin/gscan2pdf:7323 msgid "Start OCR" msgstr "Uruchom OCR" #: bin/gscan2pdf:7339 msgid "No page selected" msgstr "Nie została wybrana żadna strona." #: bin/gscan2pdf:7374 msgid "" "Some pages have not been saved.\n" "Do you really want to quit?" msgstr "" "Niektóre strony nie zostały zapisane. \n" "Czy na pewno chcesz zamknąć?" #: bin/gscan2pdf:7432 #, perl-format msgid "" "The help viewer requires module Gtk2::Ex::PodViewer\n" "Alternatively, try: %s %s\n" "\n" msgstr "" #: bin/gscan2pdf:7698 msgid "This operation cannot be undone. Are you sure?" msgstr "Tej operacji nie można cofnąć. Chcesz kontynuować?" #: bin/gscan2pdf:7753 msgid "Preferences" msgstr "Preferencje" #: bin/gscan2pdf:7762 msgid "Frontend" msgstr "Interfejs" #: bin/gscan2pdf:7766 msgid "libsane-perl" msgstr "libsane-perl" #: bin/gscan2pdf:7767 msgid "Scan using the perl bindings for SANE." msgstr "" #: bin/gscan2pdf:7770 msgid "scanimage" msgstr "scanimage" #: bin/gscan2pdf:7771 msgid "Scan using the scanimage frontend." msgstr "" #: bin/gscan2pdf:7775 msgid "scanimage-perl" msgstr "scanimage-perl" #: bin/gscan2pdf:7776 msgid "Scan using the scanimage-perl frontend." msgstr "" #: bin/gscan2pdf:7779 msgid "scanadf-perl" msgstr "scanadf-perl" #: bin/gscan2pdf:7780 msgid "Scan using the scanadf-perl frontend." msgstr "" #: bin/gscan2pdf:7785 msgid "scanadf" msgstr "scanadf" #: bin/gscan2pdf:7786 msgid "Scan using the scanadf frontend." msgstr "" #: bin/gscan2pdf:7791 msgid "Cycle SANE handle after scan" msgstr "" #: bin/gscan2pdf:7814 msgid "Default filename for PDFs" msgstr "Domyślna nazwa plików dla PDF-ów" #: bin/gscan2pdf:7820 msgid "" "%a\t author\n" "%t\t title\n" "%y\t document's year\n" "%Y\t today's year\n" "%m\t document's month\n" "%M\t today's month\n" "%d\t document's day\n" "%D\t today's day" msgstr "" "%a\t autor\n" "%t\t tytuł\n" "%y\t rok utworzenia dokumentu\n" "%Y\t bieżący rok\n" "%m\t miesiąc utworzenia dokumentu\n" "%M\t bieżący miesiąc\n" "%d\t dzieć utworzenia dokumentu\n" "%D\t dzisiaj" #: bin/gscan2pdf:7830 msgid "Scan command prefix" msgstr "" #: bin/gscan2pdf:7839 msgid "Restore window settings on startup" msgstr "Zachowaj ustawienia okna przy uruchamianiu" #: bin/gscan2pdf:7845 msgid "Cache device-dependent options" msgstr "" #: bin/gscan2pdf:7851 msgid "Clear device-dependent options cache" msgstr "" #: bin/gscan2pdf:7862 msgid "Temporary directory" msgstr "Katalog tymczasowy" #: bin/gscan2pdf:7867 msgid "Browse" msgstr "Przeglądanie" #: bin/gscan2pdf:7871 msgid "Select temporary directory" msgstr "Wybierz katalog tymczasowy" #: bin/gscan2pdf:7888 msgid "Blank threshold" msgstr "Próg pustych stron" #: bin/gscan2pdf:7893 msgid "Threshold used for selecting blank pages" msgstr "Próg, na podstawie którego zostaną znalezione puste strony" #: bin/gscan2pdf:7899 msgid "Dark threshold" msgstr "Próg ciemnych stron" #: bin/gscan2pdf:7904 msgid "Threshold used for selecting dark pages" msgstr "Próg, na podstawie którego zostaną znalezione ciemne strony" #: bin/gscan2pdf:7910 msgid "OCR output" msgstr "" #: bin/gscan2pdf:7915 msgid "Replace" msgstr "Zastąp" #: bin/gscan2pdf:7917 msgid "" "Replace the contents of the text buffer with that from the OCR output." msgstr "Zastąp zawartość buforu tekstu tekstem rozpoznanym przez OCR" #: bin/gscan2pdf:7920 msgid "Prepend" msgstr "" #: bin/gscan2pdf:7921 msgid "Prepend the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7924 msgid "Append" msgstr "" #: bin/gscan2pdf:7925 msgid "Append the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7933 msgid "User-defined tools" msgstr "Narzędzia użytkownika" #: bin/gscan2pdf:7954 msgid "View files on saving" msgstr "Przejrzyj pliki podczas zapisywania" #: bin/gscan2pdf:8000 msgid "" "You will have to restart gscanp2df for changes to the temporary directory to " "take effect." msgstr "" "Zmiany w ustawieniach katalogu tymczasowego zostaną zastosowane przy " "następnym uruchomieniu programu." #: bin/gscan2pdf:8092 msgid "" "Use %i and %o for the input and output filenames respectively, or a single " "%i if the image is to be modified in-place.\n" "\n" "The other variable available is:\n" "\n" "%r resolution" msgstr "" #: bin/gscan2pdf:8119 msgid "Properties" msgstr "Właściwości" #: lib/Gscan2pdf/Dialog.pm:63 lib/Gscan2pdf/Dialog.pm:79 t/05_Dialog.t:25 msgid "hide-on-delete" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:78 lib/Gscan2pdf/Dialog/Renumber.pm:162 msgid "Renumber" msgstr "Przenumerowanie" #: lib/Gscan2pdf/Dialog/Renumber.pm:98 lib/Gscan2pdf/Dialog/Renumber.pm:207 #: lib/Gscan2pdf/Dialog/Renumber.pm:244 msgid "range" msgstr "zakres" #: lib/Gscan2pdf/Dialog/Renumber.pm:102 msgid "Page numbering" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:105 lib/Gscan2pdf/Scanner/Dialog.pm:254 msgid "border_width" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:126 lib/Gscan2pdf/Dialog/Renumber.pm:192 #: lib/Gscan2pdf/Dialog/Renumber.pm:242 t/07_Dialog_Renumber.t:33 #: t/07_Dialog_Renumber.t:45 t/07_Dialog_Renumber.t:59 #: t/07_Dialog_Renumber.t:66 msgid "start" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:147 lib/Gscan2pdf/Dialog/Renumber.pm:193 #: lib/Gscan2pdf/Dialog/Renumber.pm:243 t/07_Dialog_Renumber.t:34 #: t/07_Dialog_Renumber.t:46 t/07_Dialog_Renumber.t:60 #: t/07_Dialog_Renumber.t:67 msgid "increment" msgstr "przyrost" #: lib/Gscan2pdf/Dialog/Renumber.pm:205 lib/Gscan2pdf/Dialog/Renumber.pm:241 msgid "document" msgstr "dokument" #: lib/Gscan2pdf/Dialog/Renumber.pm:295 msgid "" "The current settings would result in duplicate page numbers. Please select " "new start and increment values." msgstr "" #: lib/Gscan2pdf/Document.pm:83 msgid "Thumbnails" msgstr "Miniatury" #: lib/Gscan2pdf/Document.pm:1502 msgid "Unknown DjVu file structure. Please contact the author." msgstr "Nieznana struktura pliku DjVu. Proszę skontaktować się z twórcą." #: lib/Gscan2pdf/Document.pm:1558 #, perl-format msgid "%s is not a recognised image type" msgstr "Nie znam takiego typu obrazu jak %s" #: lib/Gscan2pdf/Document.pm:1580 lib/Gscan2pdf/Document.pm:1637 #, perl-format msgid "Importing page %i of %i" msgstr "Importuję stronę %i z %i" #: lib/Gscan2pdf/Document.pm:1613 msgid "Error extracting images from PDF" msgstr "Błąd podczas pozyskiwania obrazu z PDF" #: lib/Gscan2pdf/Document.pm:1692 msgid "Setting up PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1703 #, perl-format msgid "Saving page %i of %i" msgstr "Zapisuję stronę %i z %i" #: lib/Gscan2pdf/Document.pm:1814 lib/Gscan2pdf/Document.pm:2136 #, perl-format msgid "Error compressing image: %s" msgstr "Błąd podczas kompresji obrazu: %s" #: lib/Gscan2pdf/Document.pm:1919 #, perl-format msgid "Error creating PDF image object: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1930 #, perl-format msgid "Error embedding file image in %s format to PDF: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1939 msgid "Closing PDF" msgstr "Zamykanie pliku PDF" #: lib/Gscan2pdf/Document.pm:1955 #, perl-format msgid "Writing page %i of %i" msgstr "Zapisywanie strony %i z %i" #: lib/Gscan2pdf/Document.pm:2006 msgid "Error writing DjVu" msgstr "Błąd poczas zapisywania pliku DjVu" #: lib/Gscan2pdf/Document.pm:2025 lib/Gscan2pdf/Document.pm:2227 #, perl-format msgid "Can't open file: %s" msgstr "Nie mogę otworzyć pliku %s" #: lib/Gscan2pdf/Document.pm:2050 msgid "Error adding text layer to DjVu" msgstr "Błąd przy dodawaniu warstwy tekstowej do DjVu" #: lib/Gscan2pdf/Document.pm:2056 msgid "Closing DjVu" msgstr "Zamykanie pliku DjVu" #: lib/Gscan2pdf/Document.pm:2063 msgid "Error closing DjVu" msgstr "Błąd przy zamykaniu pliku DjVu" #: lib/Gscan2pdf/Document.pm:2078 #, perl-format msgid "Converting image %i of %i to TIFF" msgstr "Konwersja obrazu %i z %i do TIFF" #: lib/Gscan2pdf/Document.pm:2105 msgid "Error writing TIFF" msgstr "Błąd przy zapisywaniu TIFF" #: lib/Gscan2pdf/Document.pm:2121 msgid "Concatenating TIFFs" msgstr "" #: lib/Gscan2pdf/Document.pm:2140 msgid "Converting to PS" msgstr "Konwersja do postscript" #: lib/Gscan2pdf/Document.pm:2200 lib/Gscan2pdf/Document.pm:2215 msgid "Error saving image" msgstr "Błąd przy zapisywaniu obrazu" #: lib/Gscan2pdf/Frontend/CLI.pm:158 #, perl-format msgid "Scanning %i pages..." msgstr "Skanowanie %i stron..." #: lib/Gscan2pdf/Frontend/CLI.pm:163 #, perl-format msgid "Scanning page %i..." msgstr "Skanuję %i stronę..." #: lib/Gscan2pdf/Frontend/CLI.pm:188 lib/Gscan2pdf/Frontend/CLI.pm:296 msgid "Scanner warming up" msgstr "Skaner rozgrzewa się" #: lib/Gscan2pdf/Frontend/CLI.pm:195 msgid "Document feeder out of documents" msgstr "Brak dokumentów w podajniku" #: lib/Gscan2pdf/Frontend/CLI.pm:212 lib/Gscan2pdf/Frontend/CLI.pm:325 msgid "Device busy" msgstr "Urządzenie jest zajęte" #: lib/Gscan2pdf/Frontend/CLI.pm:218 lib/Gscan2pdf/Frontend/CLI.pm:330 msgid "Operation cancelled" msgstr "Operacja anulowana" #: lib/Gscan2pdf/Frontend/CLI.pm:223 lib/Gscan2pdf/Frontend/CLI.pm:336 msgid "Unknown message: " msgstr "Nieznany komunikat: " #: lib/Gscan2pdf/Page.pm:68 lib/Gscan2pdf/Page.pm:73 #, perl-format msgid "Error importing image %s: %s" msgstr "Błąd importowania obrazu %s: %s" #: lib/Gscan2pdf/PageRange.pm:33 msgid "Selected" msgstr "Wybrana" #: lib/Gscan2pdf/PageRange.pm:58 msgid "active" msgstr "aktywne" #: lib/Gscan2pdf/Scanner/Dialog.pm:218 t/061_Scanner_Dialog.t:33 #: t/061_Scanner_Dialog.t:59 msgid "device-list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:496 t/061_Scanner_Dialog.t:139 #: t/061_Scanner_Dialog.t:174 t/062_Scanner_Dialog.t:50 #: t/062_Scanner_Dialog.t:75 msgid "current-scan-options" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:567 msgid "logger" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:650 t/05_Dialog.t:24 msgid "transient-for" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:716 msgid "device_list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:749 t/061_Scanner_Dialog.t:32 msgid "device" msgstr "urządzenie" #: lib/Gscan2pdf/Scanner/Dialog.pm:751 msgid "Opening device" msgstr "Uruchamianie urządzenia" #: lib/Gscan2pdf/Scanner/Dialog.pm:760 msgid "Retrieving options" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:41 msgid "Layout" msgstr "Układ strony" #: lib/Gscan2pdf/Unpaper.pm:44 msgid "Single" msgstr "Pojedyncza" #: lib/Gscan2pdf/Unpaper.pm:46 msgid "One page per sheet, oriented upwards without rotation." msgstr "Jedna strona na kartkę, ustawienie do góry bez obracania." #: lib/Gscan2pdf/Unpaper.pm:49 msgid "Double" msgstr "Podwójna" #: lib/Gscan2pdf/Unpaper.pm:51 msgid "" "Two pages per sheet, landscape orientation (one page on the left half, one " "page on the right half)." msgstr "Dwie strony na kartkę, obok siebie." #: lib/Gscan2pdf/Unpaper.pm:59 msgid "# Output pages" msgstr "Liczba stron" #: lib/Gscan2pdf/Unpaper.pm:60 msgid "Number of pages to output." msgstr "Liczba stron na wyjściu." #: lib/Gscan2pdf/Unpaper.pm:68 msgid "No deskew" msgstr "Bez prostowania" #: lib/Gscan2pdf/Unpaper.pm:69 msgid "Disable deskewing." msgstr "Wyłączenie prostowania." #: lib/Gscan2pdf/Unpaper.pm:74 msgid "No mask scan" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:75 msgid "Disable mask detection." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:80 msgid "No black filter" msgstr "Brak filtru czerni" #: lib/Gscan2pdf/Unpaper.pm:81 msgid "Disable black area scan." msgstr "Wyłącz obszar skanowania czerni." #: lib/Gscan2pdf/Unpaper.pm:86 msgid "No gray filter" msgstr "Brak filtru szarości" #: lib/Gscan2pdf/Unpaper.pm:87 msgid "Disable gray area scan." msgstr "Wyłącz obszar skanowania szarości" #: lib/Gscan2pdf/Unpaper.pm:92 msgid "No noise filter" msgstr "Brak filtru szumu" #: lib/Gscan2pdf/Unpaper.pm:93 msgid "Disable noise filter." msgstr "Wyłącz filtr szumu." #: lib/Gscan2pdf/Unpaper.pm:98 msgid "No blur filter" msgstr "Brak filtru zamazania" #: lib/Gscan2pdf/Unpaper.pm:99 msgid "Disable blur filter." msgstr "Wyłącz filtr zamazania." #: lib/Gscan2pdf/Unpaper.pm:104 msgid "No border scan" msgstr "Brak skanowania granic" #: lib/Gscan2pdf/Unpaper.pm:105 msgid "Disable border scanning." msgstr "Wyłącz skanowanie graniczne." #: lib/Gscan2pdf/Unpaper.pm:110 msgid "No border align" msgstr "Brak wyrównania granicy" #: lib/Gscan2pdf/Unpaper.pm:112 msgid "Disable aligning of the area detected by border scanning." msgstr "Wyłącz wyrównanie obszaru wykrytego przy skanowaniu granicznym." #: lib/Gscan2pdf/Unpaper.pm:117 msgid "Deskew to edge" msgstr "Wyprostuj do krawędzi" #: lib/Gscan2pdf/Unpaper.pm:119 msgid "" "Edges from which to scan for rotation. Each edge of a mask can be used to " "detect the mask's rotation. If multiple edges are specified, the average " "value will be used, unless the statistical deviation exceeds --deskew-scan-" "deviation." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:125 msgid "Use 'left' for scanning from the left edge." msgstr "Użyj \"Od lewej\", aby skanować od lewej krawędzi." #: lib/Gscan2pdf/Unpaper.pm:130 msgid "Use 'top' for scanning from the top edge." msgstr "Użyj \"Górna granica\", aby skanować od górnej krawędzi." #: lib/Gscan2pdf/Unpaper.pm:134 lib/Gscan2pdf/Unpaper.pm:162 msgid "Right" msgstr "Od prawej" #: lib/Gscan2pdf/Unpaper.pm:135 msgid "Use 'right' for scanning from the right edge." msgstr "Użyj \"Od prawej\", aby skanować od prawej krawędzi." #: lib/Gscan2pdf/Unpaper.pm:139 lib/Gscan2pdf/Unpaper.pm:167 msgid "Bottom" msgstr "Od dołu" #: lib/Gscan2pdf/Unpaper.pm:140 msgid "Use 'bottom' for scanning from the bottom." msgstr "Użyj \"Od dołu\", aby skanować od dolnej krawędzi." #: lib/Gscan2pdf/Unpaper.pm:147 msgid "Align to edge" msgstr "Wyrównaj do krawędzi" #: lib/Gscan2pdf/Unpaper.pm:148 msgid "Edge to which to align the page." msgstr "Krawędź, do której strona zostanie wyrównana." #: lib/Gscan2pdf/Unpaper.pm:153 msgid "Use 'left' to align to the left edge." msgstr "Użyj \"do lewej\", aby wyrównać do lewej krawędzi." #: lib/Gscan2pdf/Unpaper.pm:158 msgid "Use 'top' to align to the top edge." msgstr "Użyj \"do góry\", aby wyrównać do górnej krawędzi." #: lib/Gscan2pdf/Unpaper.pm:163 msgid "Use 'right' to align to the right edge." msgstr "Użyj \"prawa\", aby wyrównać do prawej krawędzi." #: lib/Gscan2pdf/Unpaper.pm:168 msgid "Use 'bottom' to align to the bottom." msgstr "Użyj \"dół\", aby wyrównać do dolnej krawędzi." #: lib/Gscan2pdf/Unpaper.pm:174 msgid "Border margin" msgstr "Margines krawędzi" #: lib/Gscan2pdf/Unpaper.pm:178 msgid "Vertical margin" msgstr "Margines pionowy" #: lib/Gscan2pdf/Unpaper.pm:180 msgid "" "Vertical distance to keep from the sheet edge when aligning a border area." msgstr "Pionowy odstęp od krawędzi strony przy dostosowywaniu obszaru ramki." #: lib/Gscan2pdf/Unpaper.pm:189 msgid "Horizontal margin" msgstr "Margines poziomy" #: lib/Gscan2pdf/Unpaper.pm:191 msgid "" "Horizontal distance to keep from the sheet edge when aligning a border area." msgstr "Poziomy odstęp od krawędzi strony przy dostosowywaniu obszaru ramki." #: lib/Gscan2pdf/Unpaper.pm:202 msgid "White threshold" msgstr "Próg bieli" #: lib/Gscan2pdf/Unpaper.pm:204 msgid "Brightness ratio above which a pixel is considered white." msgstr "" "Poziom jasności, powyżej którego piksel będzie interpretowany jako biały" #: lib/Gscan2pdf/Unpaper.pm:212 msgid "Black threshold" msgstr "Próg czerni" #: lib/Gscan2pdf/Unpaper.pm:214 msgid "" "Brightness ratio below which a pixel is considered black (non-gray). This is " "used by the gray-filter. This value is also used when converting a grayscale " "image to black-and-white mode." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:250 msgid "Deskew" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:280 msgid "Border" msgstr "Granica" #: lib/Gscan2pdf/Unpaper.pm:337 msgid "Filters" msgstr "Filtry" #: t/05_Dialog.t:23 msgid "title" msgstr "" #: t/05_Dialog.t:26 t/05_Dialog.t:31 t/05_Dialog.t:32 t/05_Dialog.t:38 #: t/05_Dialog.t:39 msgid "border-width" msgstr "" #: t/061_Scanner_Dialog.t:34 msgid "dir" msgstr "" #: t/061_Scanner_Dialog.t:36 msgid "max-pages" msgstr "" #: t/061_Scanner_Dialog.t:39 msgid "side-to-scan" msgstr "" #: t/061_Scanner_Dialog.t:40 t/061_Scanner_Dialog.t:185 msgid "available-scan-options" msgstr "" #: t/061_Scanner_Dialog.t:171 t/062_Scanner_Dialog.t:73 msgid "profile" msgstr "profil" gscan2pdf-1.2.3/po/gscan2pdf-de.po0000644000175000017500000013725312243440507015221 0ustar jeffjeff# messages.pot for gscan2pdf. # Copyright (C) 2006 Jeffrey Ratcliffe # This file is distributed under the same license as the gscan2pdf package. # Jeffrey Ratcliffe , 2006. # msgid "" msgstr "" "Project-Id-Version: gscan2pdf-0.7.10\n" "Report-Msgid-Bugs-To: ra28145@users.sourceforge.net\n" "POT-Creation-Date: 2012-10-25 08:12+0200\n" "PO-Revision-Date: 2012-07-23 08:25+0000\n" "Last-Translator: Jari \n" "Language-Team: Germany \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-19 09:22+0000\n" "X-Generator: Launchpad (build 16831)\n" #: bin/gscan2pdf:1174 msgid "Mode" msgstr "Scanmodus" #: bin/gscan2pdf:157 msgid "Error displaying help" msgstr "" #: bin/gscan2pdf:201 msgid "" "Error: unable to load settings.\n" "Backing up settings\n" "Reverting to defaults" msgstr "" "Fehler: Einstellungen können nicht geladen werden.\n" "Einstellungen werden gesichert und\n" "auf Standard zurückgesetzt" #: bin/gscan2pdf:244 msgid "A4" msgstr "A4" #: bin/gscan2pdf:250 msgid "US Letter" msgstr "US-Letter" #: bin/gscan2pdf:256 msgid "US Legal" msgstr "US-Legal" #: bin/gscan2pdf:323 bin/gscan2pdf:344 #, perl-format msgid "Cannot read file: %s" msgstr "Kann Datei nicht lesen: %s" #: bin/gscan2pdf:451 msgid "_File" msgstr "_Datei" #: bin/gscan2pdf:454 msgid "_New" msgstr "_Neu" #: bin/gscan2pdf:455 msgid "Clears all pages" msgstr "Löscht alle Seiten" #: bin/gscan2pdf:459 msgid "_Open" msgstr "_Öffnen" #: bin/gscan2pdf:460 msgid "Open image file(s)" msgstr "Öffne Bilddatei(en)" #: bin/gscan2pdf:465 msgid "S_can" msgstr "S_cannen" #: bin/gscan2pdf:467 msgid "Scan document" msgstr "Dokument scannen" #: bin/gscan2pdf:471 bin/gscan2pdf:472 bin/gscan2pdf:2582 msgid "Save" msgstr "Speichern" #: bin/gscan2pdf:476 msgid "_Email as PDF" msgstr "Als PDF per _E-Mail versenden" #: bin/gscan2pdf:477 msgid "Attach as PDF to a new email" msgstr "Als PDF an neue E-Mail anhängen" #: bin/gscan2pdf:480 msgid "_Print" msgstr "_Drucken" #: bin/gscan2pdf:481 msgid "Print" msgstr "Drucken" #: bin/gscan2pdf:485 msgid "_Compress temporary files" msgstr "_Komprimiere temporäre Dateien" #: bin/gscan2pdf:486 msgid "Compress temporary files" msgstr "Komprimiere temporäre Dateien" #: bin/gscan2pdf:490 msgid "_Quit" msgstr "_Beenden" #: bin/gscan2pdf:491 msgid "Quit" msgstr "Beenden" #: bin/gscan2pdf:495 msgid "_Edit" msgstr "B_earbeiten" #: bin/gscan2pdf:497 msgid "_Undo" msgstr "_Rückgängig" #: bin/gscan2pdf:497 msgid "Undo" msgstr "Rückgängig" #: bin/gscan2pdf:501 msgid "_Redo" msgstr "_Wiederherstellen" #: bin/gscan2pdf:502 msgid "Redo" msgstr "Wiederherstellen" #: bin/gscan2pdf:506 msgid "Cu_t" msgstr "Aus_schneiden" #: bin/gscan2pdf:507 msgid "Cut selection" msgstr "Auswahl ausschneiden" #: bin/gscan2pdf:511 msgid "_Copy" msgstr "_Kopieren" #: bin/gscan2pdf:512 msgid "Copy selection" msgstr "Auswahl kopieren" #: bin/gscan2pdf:516 msgid "_Paste" msgstr "E_infügen" #: bin/gscan2pdf:517 msgid "Paste selection" msgstr "Auswahl einfügen" #: bin/gscan2pdf:521 msgid "_Delete" msgstr "_Löschen" #: bin/gscan2pdf:522 msgid "Delete selected pages" msgstr "Ausgewählte Seiten löschen" #: bin/gscan2pdf:526 msgid "_Renumber" msgstr "Neu numme_rieren" #: bin/gscan2pdf:527 msgid "Renumber pages" msgstr "Seiten neu nummerieren" #: bin/gscan2pdf:529 bin/gscan2pdf:679 msgid "_Select" msgstr "_Auswählen" #: bin/gscan2pdf:532 msgid "_All" msgstr "_Alle" #: bin/gscan2pdf:533 msgid "Select all pages" msgstr "Alle Seiten auswählen" #: bin/gscan2pdf:536 msgid "_Odd" msgstr "_Ungerade" #: bin/gscan2pdf:537 msgid "Select all odd-numbered pages" msgstr "Alle ungeraden Seiten wählen" #: bin/gscan2pdf:541 msgid "_Even" msgstr "_Gerade" #: bin/gscan2pdf:542 msgid "Select all evenly-numbered pages" msgstr "Alle geraden Seiten wählen" #: bin/gscan2pdf:547 msgid "_Blank" msgstr "_Leere" #: bin/gscan2pdf:548 msgid "Select pages with low standard deviation" msgstr "Seiten mit kleiner Standardabweichung auswählen" #: bin/gscan2pdf:552 msgid "_Dark" msgstr "_Dunkle" #: bin/gscan2pdf:553 msgid "Select dark pages" msgstr "Dunkle Seiten auswählen" #: bin/gscan2pdf:558 msgid "_Modified" msgstr "_Geänderte" #: bin/gscan2pdf:560 msgid "Select modified pages since last OCR" msgstr "Seit letzter OCR geänderte Seiten auswählen" #: bin/gscan2pdf:565 msgid "_No OCR" msgstr "Kei_ne OCR" #: bin/gscan2pdf:566 msgid "Select pages with no OCR output" msgstr "Wähle Seiten ohne OCR-Ausgabe aus" #: bin/gscan2pdf:570 msgid "_Clear OCR" msgstr "_Leere OCR" #: bin/gscan2pdf:571 msgid "Clear OCR output from selected pages" msgstr "Lösche OCR-Ausgabe der ausgewählten Seiten" #: bin/gscan2pdf:575 msgid "Propert_ies" msgstr "E_igenschaften" #: bin/gscan2pdf:576 msgid "Edit image properties" msgstr "Bildeigenschaften bearbeiten" #: bin/gscan2pdf:580 msgid "Prefere_nces" msgstr "_Einstellungen" #: bin/gscan2pdf:581 msgid "Edit preferences" msgstr "Einstellungen bearbeiten" #: bin/gscan2pdf:585 msgid "_View" msgstr "An_sicht" #: bin/gscan2pdf:588 msgid "Zoom _100%" msgstr "Zoom _100%" #: bin/gscan2pdf:589 msgid "Zoom to 100%" msgstr "Originalgröße" #: bin/gscan2pdf:593 msgid "Zoom to _fit" msgstr "An _Fenstergröße anpassen" #: bin/gscan2pdf:594 msgid "Zoom to fit" msgstr "An Fenstergröße anpassen" #: bin/gscan2pdf:598 msgid "Zoom _in" msgstr "Ver_größern" #: bin/gscan2pdf:599 msgid "Zoom in" msgstr "Vergrößern" #: bin/gscan2pdf:603 msgid "Zoom _out" msgstr "Ver_kleinern" #: bin/gscan2pdf:604 msgid "Zoom out" msgstr "Verkleinern" #: bin/gscan2pdf:609 bin/gscan2pdf:611 msgid "Rotate 90 clockwise" msgstr "90° drehen (rechts)" #: bin/gscan2pdf:617 bin/gscan2pdf:619 msgid "Rotate 180" msgstr "180° drehen" #: bin/gscan2pdf:625 bin/gscan2pdf:627 msgid "Rotate 90 anticlockwise" msgstr "90° drehen (links)" #: bin/gscan2pdf:632 msgid "_Tools" msgstr "_Werkzeuge" #: bin/gscan2pdf:634 msgid "_Threshold" msgstr "_Schwellwert" #: bin/gscan2pdf:635 msgid "Change each pixel above this threshold to black" msgstr "Färbe alle Pixel über diesem Schwellwert schwarz" #: bin/gscan2pdf:639 msgid "_Negate" msgstr "_Invertieren" #: bin/gscan2pdf:640 msgid "Converts black to white and vice versa" msgstr "Konvertiert schwarz zu weiß und anders herum." #: bin/gscan2pdf:644 msgid "_Unsharp Mask" msgstr "_Unschärfe-Maske" #: bin/gscan2pdf:645 msgid "Apply an unsharp mask" msgstr "Unschärfe-Maske anwenden" #: bin/gscan2pdf:648 msgid "_Crop" msgstr "_Zuschneiden" #: bin/gscan2pdf:649 msgid "Crop pages" msgstr "Schneide Seite zu" #: bin/gscan2pdf:653 msgid "_Clean up" msgstr "Berei_nigen" #: bin/gscan2pdf:654 bin/gscan2pdf:4085 msgid "Clean up scanned images with unpaper" msgstr "Gescannte Bilder mit unpaper bereinigen" #: bin/gscan2pdf:657 msgid "_OCR" msgstr "_Texterkennung (OCR)" #: bin/gscan2pdf:658 msgid "Optical Character Recognition" msgstr "Texterkennung (OCR)" #: bin/gscan2pdf:660 msgid "U_ser-defined" msgstr "_Benutzerdefiniert" #: bin/gscan2pdf:663 bin/gscan2pdf:665 msgid "_Help" msgstr "_Hilfe" #: bin/gscan2pdf:666 msgid "Help" msgstr "Hilfe" #: bin/gscan2pdf:668 msgid "_About" msgstr "_Über" #: bin/gscan2pdf:674 msgid "_Drag" msgstr "_Nehmen" #: bin/gscan2pdf:675 msgid "Use the hand tool" msgstr "Nutze das Hand Werkzeug" #: bin/gscan2pdf:680 msgid "Use the rectangular selection tool" msgstr "Benutze das Rechteck-Auswahl-Werkzeug" #: bin/gscan2pdf:684 msgid "_Paint" msgstr "_Malen" #: bin/gscan2pdf:685 msgid "Use the painter tool" msgstr "Benutze das Malwerkzeug" #: bin/gscan2pdf:965 lib/Gscan2pdf/Document.pm:2594 #: lib/Gscan2pdf/Document.pm:2595 msgid "Error copying page" msgstr "Fehler beim Kopieren der Seite" #: bin/gscan2pdf:1082 msgid "Image" msgstr "Bild" #: bin/gscan2pdf:1117 msgid "OCR Output" msgstr "Ausgabe der Texterkennung (OCR)" #: bin/gscan2pdf:1176 msgid "Lineart" msgstr "Linienart" #: bin/gscan2pdf:1177 msgid "Grayscale" msgstr "Graustufen" #: bin/gscan2pdf:1178 msgid "Gray" msgstr "Grau" #: bin/gscan2pdf:1179 msgid "Color" msgstr "Farbe" #: bin/gscan2pdf:1180 msgid "Black & White" msgstr "Schwarz/Weiß" #: bin/gscan2pdf:1181 msgid "True Gray" msgstr "Reingrau" #: bin/gscan2pdf:1182 msgid "Binary" msgstr "Binär" #: bin/gscan2pdf:1183 bin/gscan2pdf:1242 bin/gscan2pdf:1243 msgid "Auto" msgstr "Auto" #: bin/gscan2pdf:1184 msgid "Halftone" msgstr "Halbton" #: bin/gscan2pdf:1185 msgid "24bit Color" msgstr "24bit Farbtiefe" #: bin/gscan2pdf:1189 bin/gscan2pdf:2547 bin/gscan2pdf:2644 msgid "Compression" msgstr "Kompression" #: bin/gscan2pdf:1191 bin/gscan2pdf:2539 bin/gscan2pdf:2636 msgid "None" msgstr "Keine" #: bin/gscan2pdf:1192 bin/gscan2pdf:2537 bin/gscan2pdf:2601 bin/gscan2pdf:2622 msgid "JPEG" msgstr "JPEG" #: bin/gscan2pdf:1195 bin/gscan2pdf:8127 msgid "Resolution" msgstr "Auflösung" #: bin/gscan2pdf:1196 msgid "Brightness" msgstr "Helligkeit" #: bin/gscan2pdf:1197 msgid "Gain" msgstr "Verstärkung" #: bin/gscan2pdf:1198 msgid "Contrast" msgstr "Kontrast" #: bin/gscan2pdf:1199 bin/gscan2pdf:6406 bin/gscan2pdf:6417 bin/gscan2pdf:6620 msgid "Threshold" msgstr "Schwellwert" #: bin/gscan2pdf:1201 msgid "Speed" msgstr "Geschwindigkeit" #: bin/gscan2pdf:1203 bin/gscan2pdf:1210 bin/gscan2pdf:1217 bin/gscan2pdf:1224 #: bin/gscan2pdf:1231 msgid "Yes" msgstr "Ja" #: bin/gscan2pdf:1204 bin/gscan2pdf:1211 bin/gscan2pdf:1218 bin/gscan2pdf:1225 #: bin/gscan2pdf:1232 msgid "No" msgstr "Nein" #: bin/gscan2pdf:1208 msgid "Batch scan" msgstr "Stapelbetrieb" #: bin/gscan2pdf:1215 bin/gscan2pdf:1222 msgid "Wait for button" msgstr "Warte auf Knopfdruck" #: bin/gscan2pdf:1229 msgid "Cache calibration" msgstr "Kalibrierung des Puffer-Speichers" #: bin/gscan2pdf:1236 msgid "Source" msgstr "Quelle" #: bin/gscan2pdf:1238 msgid "Normal" msgstr "Normal" #: bin/gscan2pdf:1239 msgid "ADF" msgstr "ADF" #: bin/gscan2pdf:1240 msgid "Automatic Document Feeder" msgstr "Automatischer Seiteneinzug" #: bin/gscan2pdf:1241 msgid "XPA" msgstr "XPA" #: bin/gscan2pdf:1244 msgid "Flatbed" msgstr "Flachbett" #: bin/gscan2pdf:1245 msgid "Transparency Adapter" msgstr "Durchlichteinheit" #: bin/gscan2pdf:1246 msgid "Transparency Unit" msgstr "Durchlichteinheit" #: bin/gscan2pdf:1249 bin/gscan2pdf:1251 msgid "Page Width" msgstr "Seitenbreite" #: bin/gscan2pdf:1250 bin/gscan2pdf:1252 msgid "Page Height" msgstr "Seitenhöhe" #: bin/gscan2pdf:1253 msgid "Top Overscan" msgstr "Overscan oben" #: bin/gscan2pdf:1254 msgid "Bottom Overscan" msgstr "Overscan unten" #: bin/gscan2pdf:1256 bin/gscan2pdf:1263 msgid "ADF Mode" msgstr "ADF-Modus" #: bin/gscan2pdf:1258 bin/gscan2pdf:1265 msgid "Simplex" msgstr "Einfach" #: bin/gscan2pdf:1259 bin/gscan2pdf:1266 msgid "Duplex" msgstr "Duplex" #: bin/gscan2pdf:1301 bin/gscan2pdf:1306 msgid "Pick crashed session to restore" msgstr "Abgestürzte Sitzung zum Wiederherstellen auswählen" #: bin/gscan2pdf:1308 bin/gscan2pdf:2609 msgid "Session" msgstr "Sitzung" #: bin/gscan2pdf:1338 #, perl-format msgid "" "Warning: unable to use %s for temporary storage. Defaulting to %s instead." msgstr "" "Warnung: %s kann nicht zum temporären Speichern verwendet werden. " "Stattdessen wird die Vorgabe %s benutzt." #: bin/gscan2pdf:1441 msgid "GOCR" msgstr "GOCR" #: bin/gscan2pdf:1441 msgid "Process image with GOCR." msgstr "Bild mit GOCR verarbeiten" #: bin/gscan2pdf:1445 msgid "Tesseract" msgstr "Tesseract" #: bin/gscan2pdf:1446 msgid "Process image with Tesseract." msgstr "Bild mit Tesseract verarbeiten" #: bin/gscan2pdf:1450 msgid "Ocropus" msgstr "Ocropus" #: bin/gscan2pdf:1450 msgid "Process image with Ocropus." msgstr "Bild mit Ocropus verarbeiten" #: bin/gscan2pdf:1454 msgid "Cuneiform" msgstr "Cuneiform" #: bin/gscan2pdf:1455 msgid "Process image with Cuneiform." msgstr "Bild mit Cuneiform bearbeiten" #: bin/gscan2pdf:1461 msgid "Save image and Save as PDF both require imagemagick\n" msgstr "Bild speichern und Bild als PDF speichern benötigen imagemagick\n" #: bin/gscan2pdf:1465 msgid "Save image requires libtiff\n" msgstr "Bild speichern benötigt libtiff\n" #: bin/gscan2pdf:1469 msgid "Save as DjVu requires djvulibre-bin\n" msgstr "Speichern als DjVu benötigt djvulibre-bin\n" #: bin/gscan2pdf:1473 msgid "Email as PDF requires xdg-email\n" msgstr "Als PDF verschicken benötigt xdg-email\n" #: bin/gscan2pdf:1518 msgid "The rotating options and unpaper support require perlmagick\n" msgstr "" "Die Drehungsoptionen und unpaper-Unterstützung erfordern perlmagick\n" #: bin/gscan2pdf:1524 msgid "unpaper missing\n" msgstr "unpaper ist nicht installiert\n" #: bin/gscan2pdf:1534 msgid "OCR requires gocr, tesseract, ocropus, or cuneiform\n" msgstr "" "Texterkennung (OCR) benötigt gocr, tesseract, ocropus oder cuneiform\n" #: bin/gscan2pdf:1539 msgid "Warning: missing packages" msgstr "Warnung: Fehlende Pakete" #: bin/gscan2pdf:1544 msgid "Don't show this message again" msgstr "Zeige diese Meldung nicht mehr" #: bin/gscan2pdf:1753 msgid "" "Some pages have not been saved.\n" "Do you really want to clear all pages?" msgstr "" "Einige Seiten wurden nicht gespeichert.\n" "Möchten Sie wirklich alle Seiten entfernen?" #: bin/gscan2pdf:1828 bin/gscan2pdf:1858 #, perl-format msgid "Process %i of %i (%s)" msgstr "%i von %i wird verarbeitet (%s)" #: bin/gscan2pdf:1867 #, perl-format msgid "Process %i of %i" msgstr "%i von %i wird verarbeitet" #: bin/gscan2pdf:1895 msgid "Open image" msgstr "Bild öffnen" #: bin/gscan2pdf:1903 bin/gscan2pdf:2797 bin/gscan2pdf:3113 msgid "Image files" msgstr "Bilddateien" #: bin/gscan2pdf:1940 msgid "Pages to extract" msgstr "Zu extrahierende Seiten" #: bin/gscan2pdf:1943 bin/gscan2pdf:2117 bin/gscan2pdf:2586 bin/gscan2pdf:3353 #: bin/gscan2pdf:3494 bin/gscan2pdf:4104 bin/gscan2pdf:4514 bin/gscan2pdf:5825 #: bin/gscan2pdf:6409 bin/gscan2pdf:6495 bin/gscan2pdf:6565 bin/gscan2pdf:6737 #: bin/gscan2pdf:7011 bin/gscan2pdf:7274 bin/gscan2pdf:7757 bin/gscan2pdf:8123 #: lib/Gscan2pdf/Dialog.pm:56 lib/Gscan2pdf/Dialog/Renumber.pm:80 #: lib/Gscan2pdf/Scanner/Dialog.pm:201 t/05_Dialog.t:28 msgid "vbox" msgstr "" #: bin/gscan2pdf:1946 msgid "First page to extract" msgstr "Erste zu extrahierende Seite" #: bin/gscan2pdf:1953 msgid "Last page to extract" msgstr "Letzte zu extrahierende Seite" #: bin/gscan2pdf:2042 lib/Gscan2pdf/Dialog/Renumber.pm:83 msgid "Page Range" msgstr "Seitenanzahl" #: bin/gscan2pdf:2092 msgid "Metadata" msgstr "Metadaten" #: bin/gscan2pdf:2101 msgid "Date" msgstr "Datum" #: bin/gscan2pdf:2114 msgid "Select Date" msgstr "Datum wählen" #: bin/gscan2pdf:2136 msgid "Today" msgstr "Heute" #: bin/gscan2pdf:2150 msgid "Year-Month-Day" msgstr "Jahr-Monat-Tag" #: bin/gscan2pdf:2156 msgid "Document author" msgstr "Autor" #: bin/gscan2pdf:2165 msgid "Title" msgstr "Titel" #: bin/gscan2pdf:2174 msgid "Subject" msgstr "Thema" #: bin/gscan2pdf:2183 msgid "Keywords" msgstr "Schlüsselwörter" #: bin/gscan2pdf:2245 msgid "Editing text" msgstr "Text bearbeiten" #: bin/gscan2pdf:2252 bin/gscan2pdf:2258 bin/gscan2pdf:2332 msgid "text" msgstr "Text" #: bin/gscan2pdf:2352 msgid "PDF filename" msgstr "PDF Dateiname" #: bin/gscan2pdf:2381 msgid "PDF files" msgstr "PDF-Dateien" #: bin/gscan2pdf:2405 bin/gscan2pdf:2823 bin/gscan2pdf:2880 bin/gscan2pdf:2976 #: bin/gscan2pdf:3035 bin/gscan2pdf:3087 bin/gscan2pdf:3275 #, perl-format msgid "File %s is read-only" msgstr "Die Datei %s ist schreibgeschützt" #: bin/gscan2pdf:2482 msgid "JPEG Quality" msgstr "JPEG-Qualität" #: bin/gscan2pdf:2496 msgid "Downsample to" msgstr "Herunterskalieren auf" #: bin/gscan2pdf:2501 msgid "PPI" msgstr "PPI" #: bin/gscan2pdf:2520 msgid "Automatic" msgstr "Automatisch" #: bin/gscan2pdf:2521 msgid "Let gscan2pdf which type of compression to use." msgstr "Automatische Wahl der Kompression" #: bin/gscan2pdf:2524 bin/gscan2pdf:2616 msgid "LZW" msgstr "LZW" #: bin/gscan2pdf:2525 bin/gscan2pdf:2617 msgid "Compress output with Lempel-Ziv & Welch encoding." msgstr "Komprimiere die Ausgabe mit Lempel-Ziv & Welch Kompression" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Zip" msgstr "Zip" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Compress output with deflate encoding." msgstr "Komprimiere die Ausgabe mit DEFLATE Kompression" #: bin/gscan2pdf:2529 bin/gscan2pdf:2624 msgid "Packbits" msgstr "Packbits" #: bin/gscan2pdf:2530 bin/gscan2pdf:2625 msgid "Compress output with Packbits encoding." msgstr "Komprimiere die Ausgabe mit Packbits Kompression" #: bin/gscan2pdf:2536 bin/gscan2pdf:2604 msgid "PNG" msgstr "PNG" #: bin/gscan2pdf:2536 msgid "Compress output with PNG encoding." msgstr "Ausgabe mit PNG Kodierung komprimieren" #: bin/gscan2pdf:2537 bin/gscan2pdf:2622 msgid "Compress output with JPEG encoding." msgstr "Ausgabe mit JPEG Kodierung komprimieren" #: bin/gscan2pdf:2540 bin/gscan2pdf:2637 msgid "Use no compression algorithm on output." msgstr "Ausgabe nicht komprimieren" #: bin/gscan2pdf:2594 msgid "Image type" msgstr "Bildformat" #: bin/gscan2pdf:2598 msgid "PDF" msgstr "PDF" #: bin/gscan2pdf:2598 msgid "Portable Document Format" msgstr "Portable Document Format" #: bin/gscan2pdf:2599 msgid "GIF" msgstr "GIF" #: bin/gscan2pdf:2599 msgid "CompuServe graphics interchange format" msgstr "CompuServe graphics interchange format" #: bin/gscan2pdf:2602 msgid "Joint Photographic Experts Group JFIF format" msgstr "Joint Photographic Experts Group JFIF format" #: bin/gscan2pdf:2604 msgid "Portable Network Graphics" msgstr "Portable Network Graphics" #: bin/gscan2pdf:2605 msgid "PNM" msgstr "PNM" #: bin/gscan2pdf:2605 msgid "Portable anymap" msgstr "Portable anymap" #: bin/gscan2pdf:2606 msgid "PS" msgstr "PS" #: bin/gscan2pdf:2606 msgid "Postscript" msgstr "Postscript" #: bin/gscan2pdf:2607 msgid "TIFF" msgstr "TIFF" #: bin/gscan2pdf:2607 msgid "Tagged Image File Format" msgstr "Tagged Image File Format" #: bin/gscan2pdf:2608 msgid "Text" msgstr "Text" #: bin/gscan2pdf:2608 msgid "Plain text" msgstr "Einfacher Text" #: bin/gscan2pdf:2609 msgid "gscan2pdf session file" msgstr "gscan2pdf Sitzungsdatei" #: bin/gscan2pdf:2611 msgid "DjVu" msgstr "DjVu" #: bin/gscan2pdf:2611 msgid "Deja Vu" msgstr "Deja Vu" #: bin/gscan2pdf:2628 msgid "G3" msgstr "G3" #: bin/gscan2pdf:2629 msgid "Compress output with CCITT Group 3 encoding." msgstr "Komprimiere die Ausgabe mit CCITT Group 3 Kompression" #: bin/gscan2pdf:2632 msgid "G4" msgstr "G4" #: bin/gscan2pdf:2633 msgid "Compress output with CCITT Group 4 encoding." msgstr "Ausgabe mit CCITT Group 4 Kodierung komprimieren" #: bin/gscan2pdf:2649 msgid "tiff" msgstr "tiff" #: bin/gscan2pdf:2681 msgid "Font for non-ASCII text" msgstr "Schrift für Nicht-ASCII-Text" #: bin/gscan2pdf:2790 msgid "TIFF filename" msgstr "TIFF Dateiname" #: bin/gscan2pdf:2848 msgid "Text filename" msgstr "Textdateiname" #: bin/gscan2pdf:2856 msgid "Text files" msgstr "Textdateien" #: bin/gscan2pdf:2944 msgid "PS filename" msgstr "PS Dateiname" #: bin/gscan2pdf:2951 msgid "Postscript files" msgstr "Postscript-Dateien" #: bin/gscan2pdf:3003 msgid "gscan2pdf session filename" msgstr "gscan2pdf Sitzungsdateiname" #: bin/gscan2pdf:3010 msgid "gscan2pdf session files" msgstr "gscan2pdf-Sitzungsdateien" #: bin/gscan2pdf:3093 #, perl-format msgid "" "File %s exists.\n" "Really overwrite?" msgstr "" "Datei %s existiert bereits.\n" "Wirklich überschreiben?" #: bin/gscan2pdf:3106 msgid "Image filename" msgstr "Bild Dateiname" #: bin/gscan2pdf:3245 msgid "DjVu filename" msgstr "DjVu Dateiname" #: bin/gscan2pdf:3252 msgid "DjVu files" msgstr "DjVu-Dateien" #: bin/gscan2pdf:3349 msgid "Email as PDF" msgstr "Als PDF per E-Mail verschicken" #: bin/gscan2pdf:3454 msgid "Error creating email" msgstr "Fehler beim Erstellen der Mail" #: bin/gscan2pdf:3490 bin/gscan2pdf:4313 msgid "Scan Document" msgstr "Dokument scannen" #: bin/gscan2pdf:3507 lib/Gscan2pdf/Scanner/Dialog.pm:248 msgid "Page Options" msgstr "Seiteneinstellungen" #: bin/gscan2pdf:3510 lib/Gscan2pdf/Scanner/Dialog.pm:251 msgid "# Pages" msgstr "# Seiten" #: bin/gscan2pdf:3519 lib/Gscan2pdf/PageRange.pm:34 #: lib/Gscan2pdf/Scanner/Dialog.pm:261 msgid "All" msgstr "Alle Seiten" #: bin/gscan2pdf:3520 lib/Gscan2pdf/Scanner/Dialog.pm:262 msgid "Scan all pages" msgstr "Scanne alle Seiten" #: bin/gscan2pdf:3532 bin/gscan2pdf:3537 lib/Gscan2pdf/Scanner/Dialog.pm:274 #: lib/Gscan2pdf/Scanner/Dialog.pm:279 msgid "Set number of pages to scan" msgstr "Anzahl der zu scannenden Seiten" #: bin/gscan2pdf:3550 lib/Gscan2pdf/Scanner/Dialog.pm:308 msgid "Extended page numbering" msgstr "Erweiterte Seitennummerierung" #: bin/gscan2pdf:3554 lib/Gscan2pdf/Scanner/Dialog.pm:312 msgid "Page number" msgstr "Seitenzahl" #: bin/gscan2pdf:3563 lib/Gscan2pdf/Dialog/Renumber.pm:111 #: lib/Gscan2pdf/Scanner/Dialog.pm:321 msgid "Start" msgstr "Start" #: bin/gscan2pdf:3572 lib/Gscan2pdf/Dialog/Renumber.pm:132 #: lib/Gscan2pdf/Scanner/Dialog.pm:340 msgid "Increment" msgstr "Erhöhen" #: bin/gscan2pdf:3604 lib/Gscan2pdf/Scanner/Dialog.pm:372 msgid "Source document" msgstr "Dokument" #: bin/gscan2pdf:3611 lib/Gscan2pdf/Scanner/Dialog.pm:379 msgid "Single sided" msgstr "Einseitig" #: bin/gscan2pdf:3612 lib/Gscan2pdf/Scanner/Dialog.pm:380 msgid "Source document is single-sided" msgstr "Einseitiges Dokument" #: bin/gscan2pdf:3622 lib/Gscan2pdf/Scanner/Dialog.pm:390 msgid "Double sided" msgstr "Doppelseitig" #: bin/gscan2pdf:3623 lib/Gscan2pdf/Scanner/Dialog.pm:391 msgid "Source document is double-sided" msgstr "Doppelseitiges Dokument" #: bin/gscan2pdf:3629 lib/Gscan2pdf/Scanner/Dialog.pm:397 msgid "Side to scan" msgstr "Zu scannende Seite" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Facing" msgstr "Vorderseite" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Reverse" msgstr "Rückseite" #: bin/gscan2pdf:3655 lib/Gscan2pdf/Scanner/Dialog.pm:418 msgid "Sets which side of a double-sided document is scanned" msgstr "Welche Seite eines doppelseitigen Dokuments soll gescannt werden" #: bin/gscan2pdf:3719 msgid "Scan Options" msgstr "Scan Optionen" #: bin/gscan2pdf:3722 msgid "Device-dependent options" msgstr "Optionen" #: bin/gscan2pdf:3729 lib/Gscan2pdf/Scanner/Dialog.pm:458 msgid "Scan profiles" msgstr "Scan-Profile" #: bin/gscan2pdf:3778 bin/gscan2pdf:3784 lib/Gscan2pdf/Scanner/Dialog.pm:479 #: lib/Gscan2pdf/Scanner/Dialog.pm:485 msgid "Name of scan profile" msgstr "Name des Profils" #: bin/gscan2pdf:3828 lib/Gscan2pdf/Scanner/Dialog.pm:518 msgid "Scan" msgstr "Scannen" #: bin/gscan2pdf:3866 msgid "Must scan facing pages first" msgstr "Vorderseiten zuerst einscannen" #: bin/gscan2pdf:3977 msgid "Post-processing" msgstr "Nachbearbeitung" #: bin/gscan2pdf:3986 bin/gscan2pdf:4008 msgid "Rotate" msgstr "Drehen" #: bin/gscan2pdf:3987 bin/gscan2pdf:4009 msgid "Rotate image after scanning" msgstr "Bild nach dem Scannen drehen" #: bin/gscan2pdf:3990 msgid "Both sides" msgstr "Beide Seiten" #: bin/gscan2pdf:3990 msgid "Both sides." msgstr "Beide Seiten." #: bin/gscan2pdf:3991 msgid "Facing side" msgstr "Vorderseite" #: bin/gscan2pdf:3991 msgid "Facing side." msgstr "Vorderseite." #: bin/gscan2pdf:3992 msgid "Reverse side" msgstr "Rückseite" #: bin/gscan2pdf:3992 msgid "Reverse side." msgstr "Rückseite." #: bin/gscan2pdf:3995 bin/gscan2pdf:4013 msgid "Select side to rotate" msgstr "Seiten zum Drehen wählen" #: bin/gscan2pdf:3998 msgid "90" msgstr "90" #: bin/gscan2pdf:3998 msgid "Rotate image 90 degrees clockwise." msgstr "Bild um 90° nach rechts drehen." #: bin/gscan2pdf:3999 msgid "180" msgstr "180" #: bin/gscan2pdf:3999 msgid "Rotate image 180 degrees clockwise." msgstr "Bild um 180° nach rechts drehen." #: bin/gscan2pdf:4000 msgid "270" msgstr "270" #: bin/gscan2pdf:4000 msgid "Rotate image 90 degrees anticlockwise." msgstr "Bild um 90° nach links drehen." #: bin/gscan2pdf:4003 bin/gscan2pdf:4016 msgid "Select direction of rotation" msgstr "Richtung der Drehung wählen" #: bin/gscan2pdf:4083 msgid "Clean up images" msgstr "Bilder bereinigen" #: bin/gscan2pdf:4094 msgid "Options" msgstr "Optionen" #: bin/gscan2pdf:4095 msgid "Set unpaper options" msgstr "unpaper Einstellungen ändern" #: bin/gscan2pdf:4101 msgid "unpaper options" msgstr "unpaper Einstellungen" #: bin/gscan2pdf:4136 bin/gscan2pdf:4137 msgid "OCR scanned pages" msgstr "Texterkennung anwenden" #: bin/gscan2pdf:4151 msgid "Select OCR engine" msgstr "OCR engine auswählen" #: bin/gscan2pdf:4210 lib/Gscan2pdf/Scanner/Dialog.pm:634 msgid "Fetching list of devices" msgstr "Lade Geräteliste" #: bin/gscan2pdf:4225 lib/Gscan2pdf/Scanner/Dialog.pm:654 msgid "No devices found" msgstr "Keine Geräte gefunden" #: bin/gscan2pdf:4367 bin/gscan2pdf:4732 bin/gscan2pdf:4777 bin/gscan2pdf:5214 #: lib/Gscan2pdf/Scanner/Dialog.pm:343 lib/Gscan2pdf/Scanner/Dialog.pm:348 #: t/061_Scanner_Dialog.t:38 t/061_Scanner_Dialog.t:95 msgid "page-number-increment" msgstr "" #: bin/gscan2pdf:4374 bin/gscan2pdf:4729 bin/gscan2pdf:4730 bin/gscan2pdf:4776 #: bin/gscan2pdf:5213 lib/Gscan2pdf/Scanner/Dialog.pm:361 #: t/061_Scanner_Dialog.t:37 msgid "page-number-start" msgstr "" #: bin/gscan2pdf:4663 lib/Gscan2pdf/Scanner/Dialog.pm:210 msgid "Device" msgstr "Gerät" #: bin/gscan2pdf:4671 lib/Gscan2pdf/Scanner/Dialog.pm:213 msgid "Rescan for devices" msgstr "Erneut nach Geräten suchen" #: bin/gscan2pdf:4694 lib/Gscan2pdf/Scanner/Dialog.pm:237 msgid "Sets the device to be used for the scan" msgstr "Legt den Scanner fest" #: bin/gscan2pdf:4780 lib/Gscan2pdf/Scanner/Dialog.pm:300 #: t/061_Scanner_Dialog.t:35 msgid "num-pages" msgstr "" #: bin/gscan2pdf:4821 msgid "Scanning" msgstr "Scanne" #: bin/gscan2pdf:4974 msgid "Unable to load image" msgstr "Das Bild kann nicht geladen werden" #: bin/gscan2pdf:5004 msgid "print-pages" msgstr "Drucke-Seiten" #: bin/gscan2pdf:5008 msgid "page-ranges" msgstr "Seiten-Bereiche" #: bin/gscan2pdf:5405 msgid "Patches gratefully received from:" msgstr "Patches dankend empfangen von:" #: bin/gscan2pdf:5407 msgid "To aid the scan-to-PDF process" msgstr "Einfaches Erstellen von PDF Dateien aus Scanvorlagen" #: bin/gscan2pdf:5408 msgid "Copyright 2006--2012 Jeffrey Ratcliffe" msgstr "Copyright 2006--2012 Jeffrey Ratcliffe" #: bin/gscan2pdf:5492 bin/gscan2pdf:6028 msgid "The options cache seems to be empty. Reload device-dependent options?" msgstr "" "Zwischenspeicher für Einstellungen scheint leer zu sein. Sollen Geräte-" "abhängige Einstellungen neu geladen werden?" #: bin/gscan2pdf:5519 bin/gscan2pdf:6054 msgid "Updating options" msgstr "Aktualisiere Einstellungen" #: bin/gscan2pdf:5571 msgid "Paper size" msgstr "Papiergröße" #: bin/gscan2pdf:5572 bin/gscan2pdf:5672 bin/gscan2pdf:5840 bin/gscan2pdf:6769 msgid "Width" msgstr "Breite" #: bin/gscan2pdf:5573 bin/gscan2pdf:5678 bin/gscan2pdf:5841 bin/gscan2pdf:6780 msgid "Height" msgstr "Höhe" #: bin/gscan2pdf:5574 bin/gscan2pdf:5684 bin/gscan2pdf:5842 #: lib/Gscan2pdf/Unpaper.pm:124 lib/Gscan2pdf/Unpaper.pm:152 msgid "Left" msgstr "Links" #: bin/gscan2pdf:5575 bin/gscan2pdf:5690 bin/gscan2pdf:5843 #: lib/Gscan2pdf/Unpaper.pm:129 lib/Gscan2pdf/Unpaper.pm:157 msgid "Top" msgstr "Oben" #: bin/gscan2pdf:5589 bin/gscan2pdf:5703 bin/gscan2pdf:6232 msgid "Manual" msgstr "Anleitung" #: bin/gscan2pdf:5590 bin/gscan2pdf:5700 msgid "Edit" msgstr "Bearbeiten" #: bin/gscan2pdf:5591 msgid "Selects or edits the paper size" msgstr "Wählt oder ändert die Papiergröße" #: bin/gscan2pdf:5673 msgid "Width of scan area" msgstr "Breite des Scanbereichs" #: bin/gscan2pdf:5679 msgid "Height of scan area" msgstr "Höhe des Scanbereichs" #: bin/gscan2pdf:5685 msgid "Top-left x position of scan area" msgstr "X Position der linken, obere Ecke des Scanbereiches" #: bin/gscan2pdf:5691 msgid "Top-left y position of scan area" msgstr "Y-Position der linken, obere Ecke des Scanbereiches" #: bin/gscan2pdf:5822 msgid "Edit paper size" msgstr "Papiergröße ändern" #: bin/gscan2pdf:5839 msgid "Name" msgstr "Name" #: bin/gscan2pdf:5893 msgid "Cannot delete all paper sizes" msgstr "Es können nicht alle Papiergrößen gelöscht werden" #: bin/gscan2pdf:5955 msgid "" "The following paper sizes are too big to be scanned by the selected device:" msgstr "" "Die folgenden Papierformate sind zu groß, um mit dem gewählten Gerät " "gescannt zu werden:" #: bin/gscan2pdf:6419 bin/gscan2pdf:6605 msgid "%" msgstr "%" #: bin/gscan2pdf:6492 msgid "Negate" msgstr "Invertieren" #: bin/gscan2pdf:6562 msgid "Unsharp mask" msgstr "Unschärfe-Maske" #: bin/gscan2pdf:6573 msgid "Radius" msgstr "Radius" #: bin/gscan2pdf:6575 bin/gscan2pdf:6592 bin/gscan2pdf:6747 bin/gscan2pdf:6759 #: bin/gscan2pdf:6771 bin/gscan2pdf:6782 msgid "pixels" msgstr "Pixel" #: bin/gscan2pdf:6582 msgid "" "The radius of the Gaussian, in pixels, not counting the center pixel (0 = " "automatic)." msgstr "" "Der Radius des Gauß-Weichzeichners in Pixel, ohne mittleren Punkt (0 = " "automatisch)." #: bin/gscan2pdf:6590 msgid "Sigma" msgstr "Sigma" #: bin/gscan2pdf:6597 msgid "The standard deviation of the Gaussian." msgstr "Die Standardabweichung des Gauß-Weichzeichners" #: bin/gscan2pdf:6603 msgid "Amount" msgstr "Betrag" #: bin/gscan2pdf:6612 msgid "" "The percentage of the difference between the original and the blur image " "that is added back into the original." msgstr "" "Der prozentuale Unterschied zwischen dem Original und dem gefilterten Bild, " "welches wieder in das Original eingefügt wird." #: bin/gscan2pdf:6627 msgid "" "The threshold, as a fraction of QuantumRange, needed to apply the difference " "amount." msgstr "" "Der Grenzwert, als Bruchteil der QuantumRange, erfordert die Anwendung des " "Differenzbetrages." #: bin/gscan2pdf:6733 msgid "Crop" msgstr "Zuschneiden" #: bin/gscan2pdf:6745 msgid "x" msgstr "x" #: bin/gscan2pdf:6751 msgid "The x-position of the left hand edge of the crop." msgstr "Die x-Position der linken Kante des Ausschnitts." #: bin/gscan2pdf:6757 msgid "y" msgstr "y" #: bin/gscan2pdf:6763 msgid "The y-position of the top edge of the crop." msgstr "Die y-Position der oberen Kante des Ausschnitts." #: bin/gscan2pdf:6774 msgid "The width of the crop." msgstr "Die Breite des Ausschnitts." #: bin/gscan2pdf:6785 msgid "The height of the crop." msgstr "Die Höhe des Ausschnitts." #: bin/gscan2pdf:6906 msgid "label" msgstr "Beschriftung" #: bin/gscan2pdf:7007 msgid "unpaper" msgstr "unpaper" #: bin/gscan2pdf:7216 bin/gscan2pdf:7244 msgid "Language to recognise" msgstr "Zu erkennende Sprache" #: bin/gscan2pdf:7227 msgid "English" msgstr "Englisch" #: bin/gscan2pdf:7270 msgid "OCR" msgstr "Texterkennung (OCR)" #: bin/gscan2pdf:7279 msgid "OCR Engine" msgstr "Texterkennungs-Engine" #: bin/gscan2pdf:7323 msgid "Start OCR" msgstr "Texterkennung (OCR) starten" #: bin/gscan2pdf:7339 msgid "No page selected" msgstr "Keine Seite ausgewählt" #: bin/gscan2pdf:7374 msgid "" "Some pages have not been saved.\n" "Do you really want to quit?" msgstr "" "Einige Seiten wurden nicht gespeichert.\n" "Wirklich beenden?" #: bin/gscan2pdf:7432 #, perl-format msgid "" "The help viewer requires module Gtk2::Ex::PodViewer\n" "Alternatively, try: %s %s\n" "\n" msgstr "" "Der Hilfe-Betrachter benötigt das Modul Gtk2::Ex::PodViewer\n" "alternativ: %s %s\n" "\n" #: bin/gscan2pdf:7698 msgid "This operation cannot be undone. Are you sure?" msgstr "" "Dieser Vorgang kann nicht rückgängig gemacht werden. Sind Sie sicher?" #: bin/gscan2pdf:7753 msgid "Preferences" msgstr "Einstellungen" #: bin/gscan2pdf:7762 msgid "Frontend" msgstr "Oberfläche" #: bin/gscan2pdf:7766 msgid "libsane-perl" msgstr "libsane-perl" #: bin/gscan2pdf:7767 msgid "Scan using the perl bindings for SANE." msgstr "Perl-Bindungen für SANE zum Scannen verwenden." #: bin/gscan2pdf:7770 msgid "scanimage" msgstr "scanimage" #: bin/gscan2pdf:7771 msgid "Scan using the scanimage frontend." msgstr "Oberfläche »scanimage« zum Scannen verwenden." #: bin/gscan2pdf:7775 msgid "scanimage-perl" msgstr "scanimage-perl" #: bin/gscan2pdf:7776 msgid "Scan using the scanimage-perl frontend." msgstr "Oberfläche »scanimage-perl« zum Scannen verwenden." #: bin/gscan2pdf:7779 msgid "scanadf-perl" msgstr "scanadf-perl" #: bin/gscan2pdf:7780 msgid "Scan using the scanadf-perl frontend." msgstr "Oberfläche »scanadf-perl« zum Scannen verwenden." #: bin/gscan2pdf:7785 msgid "scanadf" msgstr "scanadf" #: bin/gscan2pdf:7786 msgid "Scan using the scanadf frontend." msgstr "Oberfläche »scanadf« zum Scannen verwenden." #: bin/gscan2pdf:7791 msgid "Cycle SANE handle after scan" msgstr "SANE-Handle nach dem Scannen tauschen" #: bin/gscan2pdf:7814 msgid "Default filename for PDFs" msgstr "Standarddateiname für PDFs" #: bin/gscan2pdf:7820 msgid "" "%a\t author\n" "%t\t title\n" "%y\t document's year\n" "%Y\t today's year\n" "%m\t document's month\n" "%M\t today's month\n" "%d\t document's day\n" "%D\t today's day" msgstr "" "%a\t Autor\n" "%t\t Titel\n" "%y\t Jahr des Dokuments\n" "%Y\t Aktuelles Jahr\n" "%m\t Monat des Dokuments\n" "%M\t Aktueller Monat\n" "%d\t Tag des Dokuments\n" "%D\t Aktueller Tag" #: bin/gscan2pdf:7830 msgid "Scan command prefix" msgstr "Scan-Befehlspräfix" #: bin/gscan2pdf:7839 msgid "Restore window settings on startup" msgstr "Fenstereinstellungen beim Start wiederherstellen" #: bin/gscan2pdf:7845 msgid "Cache device-dependent options" msgstr "Geräteabhängige Einstellungen zwischenspeichern" #: bin/gscan2pdf:7851 msgid "Clear device-dependent options cache" msgstr "Zwischenspeicher für Geräte-abhängige Einstellungen leeren" #: bin/gscan2pdf:7862 msgid "Temporary directory" msgstr "Arbeitsverzeichnis" #: bin/gscan2pdf:7867 msgid "Browse" msgstr "Durchsuchen" #: bin/gscan2pdf:7871 msgid "Select temporary directory" msgstr "Arbeitsverzeichnis auswählen" #: bin/gscan2pdf:7888 msgid "Blank threshold" msgstr "Leerseiten-Grenzwert" #: bin/gscan2pdf:7893 msgid "Threshold used for selecting blank pages" msgstr "Grenzwert, der zur Erkennung von leeren Seiten verwendet wird" #: bin/gscan2pdf:7899 msgid "Dark threshold" msgstr "Dunkelseiten-Grenzwert" #: bin/gscan2pdf:7904 msgid "Threshold used for selecting dark pages" msgstr "Grenzwert, der zur Erkennung von dunklen Seiten verwendet wird" #: bin/gscan2pdf:7910 msgid "OCR output" msgstr "Ausgabe der Texterkennung (OCR)" #: bin/gscan2pdf:7915 msgid "Replace" msgstr "Ersetzen" #: bin/gscan2pdf:7917 msgid "" "Replace the contents of the text buffer with that from the OCR output." msgstr "Ausgabe des Textpuffers mit Ausgabe der Texterkennung (OCR) ersetzen" #: bin/gscan2pdf:7920 msgid "Prepend" msgstr "Voranstellen" #: bin/gscan2pdf:7921 msgid "Prepend the OCR output to the text buffer." msgstr "Ausgabe der Texterkennung dem Textpuffer voranstellen" #: bin/gscan2pdf:7924 msgid "Append" msgstr "Anhängen" #: bin/gscan2pdf:7925 msgid "Append the OCR output to the text buffer." msgstr "Ausgabe der Texterkennung (OCR) an den Textpuffer anhängen" #: bin/gscan2pdf:7933 msgid "User-defined tools" msgstr "Benutzerdefinierte Werkzeuge" #: bin/gscan2pdf:7954 msgid "View files on saving" msgstr "Dateien beim Speichern betrachten" #: bin/gscan2pdf:8000 msgid "" "You will have to restart gscanp2df for changes to the temporary directory to " "take effect." msgstr "" "gscan2pdf muss neu gestartet werden, um die Änderungen am temp. Verzeichnis " "zu übernehmen." #: bin/gscan2pdf:8092 msgid "" "Use %i and %o for the input and output filenames respectively, or a single " "%i if the image is to be modified in-place.\n" "\n" "The other variable available is:\n" "\n" "%r resolution" msgstr "" "%i und %o als Eingabe- bzw. Ausgabedateinamen verwenden oder ein einzelnes " "%i, falls das Bild direkt vor-Ort bearbeitet werden soll.\n" "\n" "Die andere verfügbare Variable ist:\n" "\n" "%r Auflösung" #: bin/gscan2pdf:8119 msgid "Properties" msgstr "Eigenschaften" #: lib/Gscan2pdf/Dialog.pm:63 lib/Gscan2pdf/Dialog.pm:79 t/05_Dialog.t:25 msgid "hide-on-delete" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:78 lib/Gscan2pdf/Dialog/Renumber.pm:162 msgid "Renumber" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:98 lib/Gscan2pdf/Dialog/Renumber.pm:207 #: lib/Gscan2pdf/Dialog/Renumber.pm:244 msgid "range" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:102 msgid "Page numbering" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:105 lib/Gscan2pdf/Scanner/Dialog.pm:254 msgid "border_width" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:126 lib/Gscan2pdf/Dialog/Renumber.pm:192 #: lib/Gscan2pdf/Dialog/Renumber.pm:242 t/07_Dialog_Renumber.t:33 #: t/07_Dialog_Renumber.t:45 t/07_Dialog_Renumber.t:59 #: t/07_Dialog_Renumber.t:66 msgid "start" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:147 lib/Gscan2pdf/Dialog/Renumber.pm:193 #: lib/Gscan2pdf/Dialog/Renumber.pm:243 t/07_Dialog_Renumber.t:34 #: t/07_Dialog_Renumber.t:46 t/07_Dialog_Renumber.t:60 #: t/07_Dialog_Renumber.t:67 msgid "increment" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:205 lib/Gscan2pdf/Dialog/Renumber.pm:241 msgid "document" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:295 msgid "" "The current settings would result in duplicate page numbers. Please select " "new start and increment values." msgstr "" #: lib/Gscan2pdf/Document.pm:83 msgid "Thumbnails" msgstr "Vorschaubilder" #: lib/Gscan2pdf/Document.pm:1502 msgid "Unknown DjVu file structure. Please contact the author." msgstr "Unbekannte DjVu-Dateistruktur. Kontaktiere bitte den Autor." #: lib/Gscan2pdf/Document.pm:1558 #, perl-format msgid "%s is not a recognised image type" msgstr "%s ist kein erkannter Bildtyp" #: lib/Gscan2pdf/Document.pm:1580 lib/Gscan2pdf/Document.pm:1637 #, perl-format msgid "Importing page %i of %i" msgstr "Importiere Seite %i von %i" #: lib/Gscan2pdf/Document.pm:1613 msgid "Error extracting images from PDF" msgstr "Fehler beim Extrahieren der Bilder aus dem PDF" #: lib/Gscan2pdf/Document.pm:1692 msgid "Setting up PDF" msgstr "PDF einrichten" #: lib/Gscan2pdf/Document.pm:1703 #, perl-format msgid "Saving page %i of %i" msgstr "Speichere Seite %i von %i" #: lib/Gscan2pdf/Document.pm:1814 lib/Gscan2pdf/Document.pm:2136 #, perl-format msgid "Error compressing image: %s" msgstr "Fehler beim Komprimieren des Bildes: %s" #: lib/Gscan2pdf/Document.pm:1919 #, perl-format msgid "Error creating PDF image object: %s" msgstr "Fehler beim Erstellen des PDF-Bildobjekts: %s" #: lib/Gscan2pdf/Document.pm:1930 #, perl-format msgid "Error embedding file image in %s format to PDF: %s" msgstr "Fehler beim Einbetten der Bilddatei im %s-Format in das PDF: %s" #: lib/Gscan2pdf/Document.pm:1939 msgid "Closing PDF" msgstr "Schließe PDF" #: lib/Gscan2pdf/Document.pm:1955 #, perl-format msgid "Writing page %i of %i" msgstr "Schreibe Seite %i von %i" #: lib/Gscan2pdf/Document.pm:2006 msgid "Error writing DjVu" msgstr "Fehler beim Schreiben des DjVu" #: lib/Gscan2pdf/Document.pm:2025 lib/Gscan2pdf/Document.pm:2227 #, perl-format msgid "Can't open file: %s" msgstr "Kann Datei nicht öffnen: %s" #: lib/Gscan2pdf/Document.pm:2050 msgid "Error adding text layer to DjVu" msgstr "Fehler beim Hinzufügen der Textebene zum DjVu" #: lib/Gscan2pdf/Document.pm:2056 msgid "Closing DjVu" msgstr "DjVu wird geschlossen" #: lib/Gscan2pdf/Document.pm:2063 msgid "Error closing DjVu" msgstr "Fehler beim Schließen des DjVu" #: lib/Gscan2pdf/Document.pm:2078 #, perl-format msgid "Converting image %i of %i to TIFF" msgstr "Konvertiere Bild %i von %i nach TIFF" #: lib/Gscan2pdf/Document.pm:2105 msgid "Error writing TIFF" msgstr "Fehler beim Schreiben des TIFF" #: lib/Gscan2pdf/Document.pm:2121 msgid "Concatenating TIFFs" msgstr "TIFFs werden zusammengefügt" #: lib/Gscan2pdf/Document.pm:2140 msgid "Converting to PS" msgstr "Konvertiere zu PS" #: lib/Gscan2pdf/Document.pm:2200 lib/Gscan2pdf/Document.pm:2215 msgid "Error saving image" msgstr "Fehler beim Speichern des Bildes" #: lib/Gscan2pdf/Frontend/CLI.pm:158 #, perl-format msgid "Scanning %i pages..." msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:163 #, perl-format msgid "Scanning page %i..." msgstr "Scanne Seite %i..." #: lib/Gscan2pdf/Frontend/CLI.pm:188 lib/Gscan2pdf/Frontend/CLI.pm:296 msgid "Scanner warming up" msgstr "Scanner in Aufwärmphase" #: lib/Gscan2pdf/Frontend/CLI.pm:195 msgid "Document feeder out of documents" msgstr "Dokumenteneinzug ist leer" #: lib/Gscan2pdf/Frontend/CLI.pm:212 lib/Gscan2pdf/Frontend/CLI.pm:325 msgid "Device busy" msgstr "Gerät in Benutzung" #: lib/Gscan2pdf/Frontend/CLI.pm:218 lib/Gscan2pdf/Frontend/CLI.pm:330 msgid "Operation cancelled" msgstr "Operation abgebrochen" #: lib/Gscan2pdf/Frontend/CLI.pm:223 lib/Gscan2pdf/Frontend/CLI.pm:336 msgid "Unknown message: " msgstr "Unbekannte Nachricht: " #: lib/Gscan2pdf/Page.pm:68 lib/Gscan2pdf/Page.pm:73 #, perl-format msgid "Error importing image %s: %s" msgstr "" #: lib/Gscan2pdf/PageRange.pm:33 msgid "Selected" msgstr "Ausgewählte Seiten" #: lib/Gscan2pdf/PageRange.pm:58 msgid "active" msgstr "aktiv" #: lib/Gscan2pdf/Scanner/Dialog.pm:218 t/061_Scanner_Dialog.t:33 #: t/061_Scanner_Dialog.t:59 msgid "device-list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:496 t/061_Scanner_Dialog.t:139 #: t/061_Scanner_Dialog.t:174 t/062_Scanner_Dialog.t:50 #: t/062_Scanner_Dialog.t:75 msgid "current-scan-options" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:567 msgid "logger" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:650 t/05_Dialog.t:24 msgid "transient-for" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:716 msgid "device_list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:749 t/061_Scanner_Dialog.t:32 msgid "device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:751 msgid "Opening device" msgstr "Öffne Gerät" #: lib/Gscan2pdf/Scanner/Dialog.pm:760 msgid "Retrieving options" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:41 msgid "Layout" msgstr "Seitenlayout" #: lib/Gscan2pdf/Unpaper.pm:44 msgid "Single" msgstr "Einseitig" #: lib/Gscan2pdf/Unpaper.pm:46 msgid "One page per sheet, oriented upwards without rotation." msgstr "Eine Seite pro Blatt, hochkant ausgerichtet ohne Drehung" #: lib/Gscan2pdf/Unpaper.pm:49 msgid "Double" msgstr "Doppelseitig" #: lib/Gscan2pdf/Unpaper.pm:51 msgid "" "Two pages per sheet, landscape orientation (one page on the left half, one " "page on the right half)." msgstr "" "Zwei Seiten pro Blatt, im Querformat ausgerichtet (Eine Seite auf der " "linken, die zweite auf der rechten Seite)" #: lib/Gscan2pdf/Unpaper.pm:59 msgid "# Output pages" msgstr "Seitenanzahl" #: lib/Gscan2pdf/Unpaper.pm:60 msgid "Number of pages to output." msgstr "Anzahl der Ausgabeseiten." #: lib/Gscan2pdf/Unpaper.pm:68 msgid "No deskew" msgstr "Nicht entzerren" #: lib/Gscan2pdf/Unpaper.pm:69 msgid "Disable deskewing." msgstr "Entzerren deaktivieren" #: lib/Gscan2pdf/Unpaper.pm:74 msgid "No mask scan" msgstr "Keine Textebene scannen" #: lib/Gscan2pdf/Unpaper.pm:75 msgid "Disable mask detection." msgstr "Deaktiviere Erkennung von Textebenen" #: lib/Gscan2pdf/Unpaper.pm:80 msgid "No black filter" msgstr "Kein Schwarzfilter" #: lib/Gscan2pdf/Unpaper.pm:81 msgid "Disable black area scan." msgstr "Deaktiviere automatisches Erkennen von schwarzen Bereichen" #: lib/Gscan2pdf/Unpaper.pm:86 msgid "No gray filter" msgstr "Kein Graufilter" #: lib/Gscan2pdf/Unpaper.pm:87 msgid "Disable gray area scan." msgstr "Deaktiviere automatisches Erkennen von grauen Bereichen" #: lib/Gscan2pdf/Unpaper.pm:92 msgid "No noise filter" msgstr "Kein Rauschfilter" #: lib/Gscan2pdf/Unpaper.pm:93 msgid "Disable noise filter." msgstr "Deaktiviere Rauschfilter" #: lib/Gscan2pdf/Unpaper.pm:98 msgid "No blur filter" msgstr "Kein Weichzeichner" #: lib/Gscan2pdf/Unpaper.pm:99 msgid "Disable blur filter." msgstr "Daktiviere Weichzeichner" #: lib/Gscan2pdf/Unpaper.pm:104 msgid "No border scan" msgstr "Keine Ränder erkennen" #: lib/Gscan2pdf/Unpaper.pm:105 msgid "Disable border scanning." msgstr "Automatische Randerkennung deaktivieren" #: lib/Gscan2pdf/Unpaper.pm:110 msgid "No border align" msgstr "Rahmen nicht ausrichten" #: lib/Gscan2pdf/Unpaper.pm:112 msgid "Disable aligning of the area detected by border scanning." msgstr "Ausrichten der automatisch erkannten Rahmen deaktivieren" #: lib/Gscan2pdf/Unpaper.pm:117 msgid "Deskew to edge" msgstr "An Kante ausrichten" #: lib/Gscan2pdf/Unpaper.pm:119 msgid "" "Edges from which to scan for rotation. Each edge of a mask can be used to " "detect the mask's rotation. If multiple edges are specified, the average " "value will be used, unless the statistical deviation exceeds --deskew-scan-" "deviation." msgstr "" "Kanten, die zur Korrektur der Drehung benutzt werden sollen. Jede Kante " "einer Textebene kann benutzt werden, um die Drehung zu bestimmen. Wenn " "mehrere Kanten angegeben werden, wird der Durchschnittswert verwendet, " "solange die statistische Abweichung nicht überschritten wird --deskew-scan-" "deviation." #: lib/Gscan2pdf/Unpaper.pm:125 msgid "Use 'left' for scanning from the left edge." msgstr "Wählen Sie 'Links', um vom linken Rand aus zu scannen" #: lib/Gscan2pdf/Unpaper.pm:130 msgid "Use 'top' for scanning from the top edge." msgstr "Wählen Sie 'Oben', um vom oberen Rand aus zu scannen" #: lib/Gscan2pdf/Unpaper.pm:134 lib/Gscan2pdf/Unpaper.pm:162 msgid "Right" msgstr "Rechts" #: lib/Gscan2pdf/Unpaper.pm:135 msgid "Use 'right' for scanning from the right edge." msgstr "Wählen Sie 'Rechts', um vom rechten Rand aus zu scannen" #: lib/Gscan2pdf/Unpaper.pm:139 lib/Gscan2pdf/Unpaper.pm:167 msgid "Bottom" msgstr "Unten" #: lib/Gscan2pdf/Unpaper.pm:140 msgid "Use 'bottom' for scanning from the bottom." msgstr "Wählen Sie 'Unten', um vom unteren Rand aus zu scannen" #: lib/Gscan2pdf/Unpaper.pm:147 msgid "Align to edge" msgstr "An Kante ausrichten" #: lib/Gscan2pdf/Unpaper.pm:148 msgid "Edge to which to align the page." msgstr "Kante, an der der Scan ausgerichtet werden soll." #: lib/Gscan2pdf/Unpaper.pm:153 msgid "Use 'left' to align to the left edge." msgstr "Wählen Sie 'Links', um an der linken Kante auszurichten." #: lib/Gscan2pdf/Unpaper.pm:158 msgid "Use 'top' to align to the top edge." msgstr "Wählen Sie 'Oben', um an der oberen Kante auszurichten." #: lib/Gscan2pdf/Unpaper.pm:163 msgid "Use 'right' to align to the right edge." msgstr "Wählen Sie 'Rechts', um an der rechten Kante auszurichten." #: lib/Gscan2pdf/Unpaper.pm:168 msgid "Use 'bottom' to align to the bottom." msgstr "Wählen Sie 'Unten', um an der unteren Kante auszurichten." #: lib/Gscan2pdf/Unpaper.pm:174 msgid "Border margin" msgstr "Randabstand" #: lib/Gscan2pdf/Unpaper.pm:178 msgid "Vertical margin" msgstr "Vertikaler Abstand" #: lib/Gscan2pdf/Unpaper.pm:180 msgid "" "Vertical distance to keep from the sheet edge when aligning a border area." msgstr "" "Vertikaler Abstand zwischen Seitenrand und automatisch erkanntem Rand des " "Textbereichs" #: lib/Gscan2pdf/Unpaper.pm:189 msgid "Horizontal margin" msgstr "Horizontaler Abstand" #: lib/Gscan2pdf/Unpaper.pm:191 msgid "" "Horizontal distance to keep from the sheet edge when aligning a border area." msgstr "" "Horizontaler Abstand zwischen Seitenrand und automatisch erkanntem Rand des " "Textbereichs" #: lib/Gscan2pdf/Unpaper.pm:202 msgid "White threshold" msgstr "Schwellwert weiß" #: lib/Gscan2pdf/Unpaper.pm:204 msgid "Brightness ratio above which a pixel is considered white." msgstr "Helligkeitswert, ab dem ein Bildpunkt als weiß gilt" #: lib/Gscan2pdf/Unpaper.pm:212 msgid "Black threshold" msgstr "Schwellwert schwarz" #: lib/Gscan2pdf/Unpaper.pm:214 msgid "" "Brightness ratio below which a pixel is considered black (non-gray). This is " "used by the gray-filter. This value is also used when converting a grayscale " "image to black-and-white mode." msgstr "" "Helligkeitswert, unter dem ein Bildpunkt als schwarz (nicht-grau) gilt. " "Diese Angabe wird vom Graufilter benutzt und wird auch bei der Umwandlung " "eines Grauwert-Bildes in ein Schwarz/Weiß-Bild verwendet." #: lib/Gscan2pdf/Unpaper.pm:250 msgid "Deskew" msgstr "Entzerren" #: lib/Gscan2pdf/Unpaper.pm:280 msgid "Border" msgstr "Rand" #: lib/Gscan2pdf/Unpaper.pm:337 msgid "Filters" msgstr "Filter" #: t/05_Dialog.t:23 msgid "title" msgstr "Titel" #: t/05_Dialog.t:26 t/05_Dialog.t:31 t/05_Dialog.t:32 t/05_Dialog.t:38 #: t/05_Dialog.t:39 msgid "border-width" msgstr "" #: t/061_Scanner_Dialog.t:34 msgid "dir" msgstr "" #: t/061_Scanner_Dialog.t:36 msgid "max-pages" msgstr "" #: t/061_Scanner_Dialog.t:39 msgid "side-to-scan" msgstr "" #: t/061_Scanner_Dialog.t:40 t/061_Scanner_Dialog.t:185 msgid "available-scan-options" msgstr "" #: t/061_Scanner_Dialog.t:171 t/062_Scanner_Dialog.t:73 msgid "profile" msgstr "" gscan2pdf-1.2.3/po/gscan2pdf-nl.po0000644000175000017500000013515212243440507015236 0ustar jeffjeff# Dutch translation for gscan2pdf # Copyright (c) 2006 Rosetta Contributors and Canonical Ltd 2006 # This file is distributed under the same license as the gscan2pdf package. # FIRST AUTHOR , 2006. # msgid "" msgstr "" "Project-Id-Version: gscan2pdf\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-10-25 08:12+0200\n" "PO-Revision-Date: 2011-11-10 17:49+0000\n" "Last-Translator: Tico \n" "Language-Team: Dutch \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-19 09:22+0000\n" "X-Generator: Launchpad (build 16831)\n" #: bin/gscan2pdf:157 msgid "Error displaying help" msgstr "" #: bin/gscan2pdf:201 msgid "" "Error: unable to load settings.\n" "Backing up settings\n" "Reverting to defaults" msgstr "" "Fout: Laden van instellingen mislukt.\n" "Reservekopie van Instellingen wordt gemaakt.\n" "Standaard instellingen worden gebruikt." #: bin/gscan2pdf:244 msgid "A4" msgstr "A4" #: bin/gscan2pdf:250 msgid "US Letter" msgstr "US Letter" #: bin/gscan2pdf:256 msgid "US Legal" msgstr "US Legal" #: bin/gscan2pdf:323 bin/gscan2pdf:344 #, perl-format msgid "Cannot read file: %s" msgstr "Kan bestand %s niet lezen" #: bin/gscan2pdf:451 msgid "_File" msgstr "_Bestand" #: bin/gscan2pdf:454 msgid "_New" msgstr "_Nieuw" #: bin/gscan2pdf:455 msgid "Clears all pages" msgstr "Wist alle paginas" #: bin/gscan2pdf:459 msgid "_Open" msgstr "_Openen" #: bin/gscan2pdf:460 msgid "Open image file(s)" msgstr "Afbeeldingsbestand(en) openen" #: bin/gscan2pdf:465 msgid "S_can" msgstr "S_cannen" #: bin/gscan2pdf:467 msgid "Scan document" msgstr "Document scannen" #: bin/gscan2pdf:471 bin/gscan2pdf:472 bin/gscan2pdf:2582 msgid "Save" msgstr "Opslaan" #: bin/gscan2pdf:476 msgid "_Email as PDF" msgstr "_Email als PDF" #: bin/gscan2pdf:477 msgid "Attach as PDF to a new email" msgstr "Voeg als PDF toe aan email" #: bin/gscan2pdf:480 msgid "_Print" msgstr "_Printen" #: bin/gscan2pdf:481 msgid "Print" msgstr "Printen" #: bin/gscan2pdf:485 msgid "_Compress temporary files" msgstr "_Comprimeer tijdelijke bestanden" #: bin/gscan2pdf:486 msgid "Compress temporary files" msgstr "Comprimeer tijdelijke bestanden" #: bin/gscan2pdf:490 msgid "_Quit" msgstr "_Afsluiten" #: bin/gscan2pdf:491 msgid "Quit" msgstr "Afsluiten" #: bin/gscan2pdf:495 msgid "_Edit" msgstr "_Bewerken" #: bin/gscan2pdf:497 msgid "_Undo" msgstr "_Ongedaan maken" #: bin/gscan2pdf:497 msgid "Undo" msgstr "Ongedaan maken" #: bin/gscan2pdf:501 msgid "_Redo" msgstr "_Opnieuw doen" #: bin/gscan2pdf:502 msgid "Redo" msgstr "Opnieuw doen" #: bin/gscan2pdf:506 msgid "Cu_t" msgstr "K_nippen" #: bin/gscan2pdf:507 msgid "Cut selection" msgstr "Selectie knippen" #: bin/gscan2pdf:511 msgid "_Copy" msgstr "_Kopiëren" #: bin/gscan2pdf:512 msgid "Copy selection" msgstr "Selectie kopiëren" #: bin/gscan2pdf:516 msgid "_Paste" msgstr "_Plakken" #: bin/gscan2pdf:517 msgid "Paste selection" msgstr "Selectie plakken" #: bin/gscan2pdf:521 msgid "_Delete" msgstr "Verwij_deren" #: bin/gscan2pdf:522 msgid "Delete selected pages" msgstr "Geselecteerde paginas verwijderen" #: bin/gscan2pdf:526 msgid "_Renumber" msgstr "_Hernummeren" #: bin/gscan2pdf:527 msgid "Renumber pages" msgstr "Hernummer paginas" #: bin/gscan2pdf:529 bin/gscan2pdf:679 msgid "_Select" msgstr "_Selecteren" #: bin/gscan2pdf:532 msgid "_All" msgstr "_Alle" #: bin/gscan2pdf:533 msgid "Select all pages" msgstr "Alle pagina's selecteren" #: bin/gscan2pdf:536 msgid "_Odd" msgstr "_Oneven" #: bin/gscan2pdf:537 msgid "Select all odd-numbered pages" msgstr "Alle oneven genummerde pagina's selecteren" #: bin/gscan2pdf:541 msgid "_Even" msgstr "_Even" #: bin/gscan2pdf:542 msgid "Select all evenly-numbered pages" msgstr "Alle even genummerde pagina's selecteren" #: bin/gscan2pdf:547 msgid "_Blank" msgstr "_Leeg" #: bin/gscan2pdf:548 msgid "Select pages with low standard deviation" msgstr "Pagina's met lage standaard afwijking selecteren" #: bin/gscan2pdf:552 msgid "_Dark" msgstr "_Donker" #: bin/gscan2pdf:553 msgid "Select dark pages" msgstr "Donkere pagina's selecteren" #: bin/gscan2pdf:558 msgid "_Modified" msgstr "_Aangepast" #: bin/gscan2pdf:560 msgid "Select modified pages since last OCR" msgstr "Kies aangepaste pagina(s) sinds laatste OCR" #: bin/gscan2pdf:565 msgid "_No OCR" msgstr "Gee_n OCR" #: bin/gscan2pdf:566 msgid "Select pages with no OCR output" msgstr "Selecteer pagina's zonder OCR-uitvoer" #: bin/gscan2pdf:570 msgid "_Clear OCR" msgstr "OCR _wissen" #: bin/gscan2pdf:571 msgid "Clear OCR output from selected pages" msgstr "OCR-uitvoer van geselcteerde pagina's wissen" #: bin/gscan2pdf:575 msgid "Propert_ies" msgstr "E_igenschappen" #: bin/gscan2pdf:576 msgid "Edit image properties" msgstr "Afbeeldingseigenschappen bewerken" #: bin/gscan2pdf:580 msgid "Prefere_nces" msgstr "Voorkeure_n" #: bin/gscan2pdf:581 msgid "Edit preferences" msgstr "Voorkeuren aanpassen" #: bin/gscan2pdf:585 msgid "_View" msgstr "_Bekijken" #: bin/gscan2pdf:588 msgid "Zoom _100%" msgstr "_Originele grootte" #: bin/gscan2pdf:589 msgid "Zoom to 100%" msgstr "Zoom naar 100%" #: bin/gscan2pdf:593 msgid "Zoom to _fit" msgstr "Passend _venster" #: bin/gscan2pdf:594 msgid "Zoom to fit" msgstr "Passend venster" #: bin/gscan2pdf:598 msgid "Zoom _in" msgstr "_Inzoomen" #: bin/gscan2pdf:599 msgid "Zoom in" msgstr "Inzoomen" #: bin/gscan2pdf:603 msgid "Zoom _out" msgstr "Uitz_oomen" #: bin/gscan2pdf:604 msgid "Zoom out" msgstr "Uitzoomen" #: bin/gscan2pdf:609 bin/gscan2pdf:611 msgid "Rotate 90 clockwise" msgstr "Roteren 90 klok mee" #: bin/gscan2pdf:617 bin/gscan2pdf:619 msgid "Rotate 180" msgstr "Roteren 180" #: bin/gscan2pdf:625 bin/gscan2pdf:627 msgid "Rotate 90 anticlockwise" msgstr "Roteren 90 tegen klok in" #: bin/gscan2pdf:632 msgid "_Tools" msgstr "Ex_tra" #: bin/gscan2pdf:634 msgid "_Threshold" msgstr "_Grenswaarde" #: bin/gscan2pdf:635 msgid "Change each pixel above this threshold to black" msgstr "Verander elke pixel boven deze grenswaarde naar zwart" #: bin/gscan2pdf:639 msgid "_Negate" msgstr "Negatief" #: bin/gscan2pdf:640 msgid "Converts black to white and vice versa" msgstr "Converteert zwart naar wit en omgekeerd" #: bin/gscan2pdf:644 msgid "_Unsharp Mask" msgstr "_Onscherp masker" #: bin/gscan2pdf:645 msgid "Apply an unsharp mask" msgstr "Onscherp masker toepassen" #: bin/gscan2pdf:648 msgid "_Crop" msgstr "_Bijsnijden" #: bin/gscan2pdf:649 msgid "Crop pages" msgstr "Pagina bijsnijden" #: bin/gscan2pdf:653 msgid "_Clean up" msgstr "Ops_chonen" #: bin/gscan2pdf:654 bin/gscan2pdf:4085 msgid "Clean up scanned images with unpaper" msgstr "Gescande afbeeldingen opschonen met unpaper" #: bin/gscan2pdf:657 msgid "_OCR" msgstr "_OCR" #: bin/gscan2pdf:658 msgid "Optical Character Recognition" msgstr "Optische tekenherkenning" #: bin/gscan2pdf:660 msgid "U_ser-defined" msgstr "Door _gebruiker aangemaakt" #: bin/gscan2pdf:663 bin/gscan2pdf:665 msgid "_Help" msgstr "_Hulp" #: bin/gscan2pdf:666 msgid "Help" msgstr "Hulp" #: bin/gscan2pdf:668 msgid "_About" msgstr "_Over" #: bin/gscan2pdf:674 msgid "_Drag" msgstr "_Slepen" #: bin/gscan2pdf:675 msgid "Use the hand tool" msgstr "Gebruik het handgereedschap" #: bin/gscan2pdf:680 msgid "Use the rectangular selection tool" msgstr "Gebruik het rechthoekig selectiegereedschap" #: bin/gscan2pdf:684 msgid "_Paint" msgstr "_Schilderen" #: bin/gscan2pdf:685 msgid "Use the painter tool" msgstr "Gebruik het schildergereedschap" #: bin/gscan2pdf:965 lib/Gscan2pdf/Document.pm:2594 #: lib/Gscan2pdf/Document.pm:2595 msgid "Error copying page" msgstr "Fout bij kopieren pagina" #: bin/gscan2pdf:1082 msgid "Image" msgstr "Afbeelding" #: bin/gscan2pdf:1117 msgid "OCR Output" msgstr "OCR output" #: bin/gscan2pdf:1174 msgid "Mode" msgstr "Modus" #: bin/gscan2pdf:1176 msgid "Lineart" msgstr "Lijntekening" #: bin/gscan2pdf:1177 msgid "Grayscale" msgstr "Grijswaarden" #: bin/gscan2pdf:1178 msgid "Gray" msgstr "Grijs" #: bin/gscan2pdf:1179 msgid "Color" msgstr "Kleur" #: bin/gscan2pdf:1180 msgid "Black & White" msgstr "Zwart-wit" #: bin/gscan2pdf:1181 msgid "True Gray" msgstr "Echt grijs" #: bin/gscan2pdf:1182 msgid "Binary" msgstr "Binair" #: bin/gscan2pdf:1183 bin/gscan2pdf:1242 bin/gscan2pdf:1243 msgid "Auto" msgstr "Automatisch" #: bin/gscan2pdf:1184 msgid "Halftone" msgstr "Halftoon" #: bin/gscan2pdf:1185 msgid "24bit Color" msgstr "24bit Kleur" #: bin/gscan2pdf:1189 bin/gscan2pdf:2547 bin/gscan2pdf:2644 msgid "Compression" msgstr "Compressie" #: bin/gscan2pdf:1191 bin/gscan2pdf:2539 bin/gscan2pdf:2636 msgid "None" msgstr "Geen" #: bin/gscan2pdf:1192 bin/gscan2pdf:2537 bin/gscan2pdf:2601 bin/gscan2pdf:2622 msgid "JPEG" msgstr "JPEG" #: bin/gscan2pdf:1195 bin/gscan2pdf:8127 msgid "Resolution" msgstr "Resolutie" #: bin/gscan2pdf:1196 msgid "Brightness" msgstr "Helderheid" #: bin/gscan2pdf:1197 msgid "Gain" msgstr "Versterken" #: bin/gscan2pdf:1198 msgid "Contrast" msgstr "Contrast" #: bin/gscan2pdf:1199 bin/gscan2pdf:6406 bin/gscan2pdf:6417 bin/gscan2pdf:6620 msgid "Threshold" msgstr "Drempel" #: bin/gscan2pdf:1201 msgid "Speed" msgstr "Snelheid" #: bin/gscan2pdf:1203 bin/gscan2pdf:1210 bin/gscan2pdf:1217 bin/gscan2pdf:1224 #: bin/gscan2pdf:1231 msgid "Yes" msgstr "Ja" #: bin/gscan2pdf:1204 bin/gscan2pdf:1211 bin/gscan2pdf:1218 bin/gscan2pdf:1225 #: bin/gscan2pdf:1232 msgid "No" msgstr "Nee" #: bin/gscan2pdf:1208 msgid "Batch scan" msgstr "Meervoudig scannen" #: bin/gscan2pdf:1215 bin/gscan2pdf:1222 msgid "Wait for button" msgstr "Wacht op knop" #: bin/gscan2pdf:1229 msgid "Cache calibration" msgstr "Cache calibratie" #: bin/gscan2pdf:1236 msgid "Source" msgstr "Bron" #: bin/gscan2pdf:1238 msgid "Normal" msgstr "Normaal" #: bin/gscan2pdf:1239 msgid "ADF" msgstr "ADF" #: bin/gscan2pdf:1240 msgid "Automatic Document Feeder" msgstr "Automatische documenteninvoer" #: bin/gscan2pdf:1241 msgid "XPA" msgstr "XPA" #: bin/gscan2pdf:1244 msgid "Flatbed" msgstr "Flatbed" #: bin/gscan2pdf:1245 msgid "Transparency Adapter" msgstr "Dia Adapter" #: bin/gscan2pdf:1246 msgid "Transparency Unit" msgstr "Transparantenhulpstuk" #: bin/gscan2pdf:1249 bin/gscan2pdf:1251 msgid "Page Width" msgstr "Paginabreedte" #: bin/gscan2pdf:1250 bin/gscan2pdf:1252 msgid "Page Height" msgstr "Paginahoogte" #: bin/gscan2pdf:1253 msgid "Top Overscan" msgstr "Bovenkant Overscan" #: bin/gscan2pdf:1254 msgid "Bottom Overscan" msgstr "Onderkant Overscan" #: bin/gscan2pdf:1256 bin/gscan2pdf:1263 msgid "ADF Mode" msgstr "ADF modus" #: bin/gscan2pdf:1258 bin/gscan2pdf:1265 msgid "Simplex" msgstr "Enkelzijdig" #: bin/gscan2pdf:1259 bin/gscan2pdf:1266 msgid "Duplex" msgstr "Dubbelzijdig" #: bin/gscan2pdf:1301 bin/gscan2pdf:1306 msgid "Pick crashed session to restore" msgstr "" #: bin/gscan2pdf:1308 bin/gscan2pdf:2609 msgid "Session" msgstr "Sessie" #: bin/gscan2pdf:1338 #, perl-format msgid "" "Warning: unable to use %s for temporary storage. Defaulting to %s instead." msgstr "" "Waarschuwing: Gebruiken van %s als tijdelijke opslag is mislukt. Er wordt " "teruggevallen op standaarwaarde %s." #: bin/gscan2pdf:1441 msgid "GOCR" msgstr "GOCR" #: bin/gscan2pdf:1441 msgid "Process image with GOCR." msgstr "Afbeelding verwerken met GOCR" #: bin/gscan2pdf:1445 msgid "Tesseract" msgstr "Tesseract" #: bin/gscan2pdf:1446 msgid "Process image with Tesseract." msgstr "Afbeelding verwerken met Tesseract." #: bin/gscan2pdf:1450 msgid "Ocropus" msgstr "Ocropus" #: bin/gscan2pdf:1450 msgid "Process image with Ocropus." msgstr "Afbeelding verwerken met Ocropus" #: bin/gscan2pdf:1454 msgid "Cuneiform" msgstr "Spijkerschrift" #: bin/gscan2pdf:1455 msgid "Process image with Cuneiform." msgstr "Afbeelding verwerken met gebruik van spijkerschrift" #: bin/gscan2pdf:1461 msgid "Save image and Save as PDF both require imagemagick\n" msgstr "" "Afbeelding opslaan en Opslaan als PDF hebben beide imagemagick nodig\n" #: bin/gscan2pdf:1465 msgid "Save image requires libtiff\n" msgstr "Afbeelding opslaan heeft libtiff nodig\n" #: bin/gscan2pdf:1469 msgid "Save as DjVu requires djvulibre-bin\n" msgstr "Bewaren als DjVu vereist djvulibre-bin\n" #: bin/gscan2pdf:1473 msgid "Email as PDF requires xdg-email\n" msgstr "Email als PDF vereist xdg-email\n" #: bin/gscan2pdf:1518 msgid "The rotating options and unpaper support require perlmagick\n" msgstr "De roteer en `unpaper` mogelijkheden hebben perlmagick nodig\n" #: bin/gscan2pdf:1524 msgid "unpaper missing\n" msgstr "Kan unpaper niet vinden\n" #: bin/gscan2pdf:1534 msgid "OCR requires gocr, tesseract, ocropus, or cuneiform\n" msgstr "OCR vereist gocr, tesseract, ocropus of cuneiform\n" #: bin/gscan2pdf:1539 msgid "Warning: missing packages" msgstr "Opgelet: missende paketten" #: bin/gscan2pdf:1544 msgid "Don't show this message again" msgstr "Dit bericht niet meer tonen" #: bin/gscan2pdf:1753 msgid "" "Some pages have not been saved.\n" "Do you really want to clear all pages?" msgstr "" "Enkele pagina's zijn niet opgeslagen.Weet u zeker dat u alle pagina's wilt " "verwijderen?" #: bin/gscan2pdf:1828 bin/gscan2pdf:1858 #, perl-format msgid "Process %i of %i (%s)" msgstr "Voortgang %i van %i (%s)" #: bin/gscan2pdf:1867 #, perl-format msgid "Process %i of %i" msgstr "Voortgang %i van %i" #: bin/gscan2pdf:1895 msgid "Open image" msgstr "Afbeelding openen" #: bin/gscan2pdf:1903 bin/gscan2pdf:2797 bin/gscan2pdf:3113 msgid "Image files" msgstr "Afbeeldingsbestanden" #: bin/gscan2pdf:1940 msgid "Pages to extract" msgstr "Pagina's uit te nemen" #: bin/gscan2pdf:1943 bin/gscan2pdf:2117 bin/gscan2pdf:2586 bin/gscan2pdf:3353 #: bin/gscan2pdf:3494 bin/gscan2pdf:4104 bin/gscan2pdf:4514 bin/gscan2pdf:5825 #: bin/gscan2pdf:6409 bin/gscan2pdf:6495 bin/gscan2pdf:6565 bin/gscan2pdf:6737 #: bin/gscan2pdf:7011 bin/gscan2pdf:7274 bin/gscan2pdf:7757 bin/gscan2pdf:8123 #: lib/Gscan2pdf/Dialog.pm:56 lib/Gscan2pdf/Dialog/Renumber.pm:80 #: lib/Gscan2pdf/Scanner/Dialog.pm:201 t/05_Dialog.t:28 msgid "vbox" msgstr "" #: bin/gscan2pdf:1946 msgid "First page to extract" msgstr "Eerste pagina uit te nemen" #: bin/gscan2pdf:1953 msgid "Last page to extract" msgstr "Laatste pagina uit te nemen" #: bin/gscan2pdf:2042 lib/Gscan2pdf/Dialog/Renumber.pm:83 msgid "Page Range" msgstr "Paginabereik" #: bin/gscan2pdf:2092 msgid "Metadata" msgstr "Metagegevens" #: bin/gscan2pdf:2101 msgid "Date" msgstr "Datum" #: bin/gscan2pdf:2114 msgid "Select Date" msgstr "Selecteer datum" #: bin/gscan2pdf:2136 msgid "Today" msgstr "Vandaag" #: bin/gscan2pdf:2150 msgid "Year-Month-Day" msgstr "Jaar-Maand-Dag" #: bin/gscan2pdf:2156 msgid "Document author" msgstr "auteur document" #: bin/gscan2pdf:2165 msgid "Title" msgstr "Titel" #: bin/gscan2pdf:2174 msgid "Subject" msgstr "Onderwerp" #: bin/gscan2pdf:2183 msgid "Keywords" msgstr "Trefwoorden" #: bin/gscan2pdf:2245 msgid "Editing text" msgstr "Tekst bewerken" #: bin/gscan2pdf:2252 bin/gscan2pdf:2258 bin/gscan2pdf:2332 msgid "text" msgstr "tekst" #: bin/gscan2pdf:2352 msgid "PDF filename" msgstr "PDF-bestandsnaam" #: bin/gscan2pdf:2381 msgid "PDF files" msgstr "PDF-bestanden" #: bin/gscan2pdf:2405 bin/gscan2pdf:2823 bin/gscan2pdf:2880 bin/gscan2pdf:2976 #: bin/gscan2pdf:3035 bin/gscan2pdf:3087 bin/gscan2pdf:3275 #, perl-format msgid "File %s is read-only" msgstr "Bestand %s is alleen-lezen" #: bin/gscan2pdf:2482 msgid "JPEG Quality" msgstr "JPEG-kwaliteit" #: bin/gscan2pdf:2496 msgid "Downsample to" msgstr "Verkleinen naar" #: bin/gscan2pdf:2501 msgid "PPI" msgstr "PPI" #: bin/gscan2pdf:2520 msgid "Automatic" msgstr "Automatisch" #: bin/gscan2pdf:2521 msgid "Let gscan2pdf which type of compression to use." msgstr "Laat gscan2pdf bepalen welke compressie er gebruikt wordt." #: bin/gscan2pdf:2524 bin/gscan2pdf:2616 msgid "LZW" msgstr "LZW" #: bin/gscan2pdf:2525 bin/gscan2pdf:2617 msgid "Compress output with Lempel-Ziv & Welch encoding." msgstr "Comprimeer uitvoer met Lempel-Ziv & Welch encoding." #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Zip" msgstr "Zip" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Compress output with deflate encoding." msgstr "Comprimeer uitvoer met deflate encoding." #: bin/gscan2pdf:2529 bin/gscan2pdf:2624 msgid "Packbits" msgstr "Packbits" #: bin/gscan2pdf:2530 bin/gscan2pdf:2625 msgid "Compress output with Packbits encoding." msgstr "Comprimeer uitvoer met Packbits encoding." #: bin/gscan2pdf:2536 bin/gscan2pdf:2604 msgid "PNG" msgstr "PNG" #: bin/gscan2pdf:2536 msgid "Compress output with PNG encoding." msgstr "Comprimeer output met PNG encoding" #: bin/gscan2pdf:2537 bin/gscan2pdf:2622 msgid "Compress output with JPEG encoding." msgstr "Comprimeer output met JPEG encoding." #: bin/gscan2pdf:2540 bin/gscan2pdf:2637 msgid "Use no compression algorithm on output." msgstr "Gebruik geen compressie algoritme op de output." #: bin/gscan2pdf:2594 msgid "Image type" msgstr "Afbeeldingstype" #: bin/gscan2pdf:2598 msgid "PDF" msgstr "PDF" #: bin/gscan2pdf:2598 msgid "Portable Document Format" msgstr "Portable Document Format" #: bin/gscan2pdf:2599 msgid "GIF" msgstr "GIF" #: bin/gscan2pdf:2599 msgid "CompuServe graphics interchange format" msgstr "CompuServe graphics interchange format" #: bin/gscan2pdf:2602 msgid "Joint Photographic Experts Group JFIF format" msgstr "Joint Photographic Experts Group JFIF formaat" #: bin/gscan2pdf:2604 msgid "Portable Network Graphics" msgstr "Portable Network Graphics" #: bin/gscan2pdf:2605 msgid "PNM" msgstr "PNM" #: bin/gscan2pdf:2605 msgid "Portable anymap" msgstr "Portable anymap" #: bin/gscan2pdf:2606 msgid "PS" msgstr "PS" #: bin/gscan2pdf:2606 msgid "Postscript" msgstr "Postscript" #: bin/gscan2pdf:2607 msgid "TIFF" msgstr "TIFF" #: bin/gscan2pdf:2607 msgid "Tagged Image File Format" msgstr "Tagged Image File Format (TIFF)" #: bin/gscan2pdf:2608 msgid "Text" msgstr "Tekst" #: bin/gscan2pdf:2608 msgid "Plain text" msgstr "Platte tekst" #: bin/gscan2pdf:2609 msgid "gscan2pdf session file" msgstr "gscan2pdf sessiebestand" #: bin/gscan2pdf:2611 msgid "DjVu" msgstr "DjVu" #: bin/gscan2pdf:2611 msgid "Deja Vu" msgstr "Deja Vu" #: bin/gscan2pdf:2628 msgid "G3" msgstr "G3" #: bin/gscan2pdf:2629 msgid "Compress output with CCITT Group 3 encoding." msgstr "Comprimeer uitvoer met CCITT Group 3 encoding." #: bin/gscan2pdf:2632 msgid "G4" msgstr "G4" #: bin/gscan2pdf:2633 msgid "Compress output with CCITT Group 4 encoding." msgstr "Comprimeer uitvoer met CCITT Group 4 encoding." #: bin/gscan2pdf:2649 msgid "tiff" msgstr "tiff" #: bin/gscan2pdf:2681 msgid "Font for non-ASCII text" msgstr "Lettertype voor non-ASCII-tekst" #: bin/gscan2pdf:2790 msgid "TIFF filename" msgstr "TIFF bestandsnaam" #: bin/gscan2pdf:2848 msgid "Text filename" msgstr "Tekst bestandsnaam" #: bin/gscan2pdf:2856 msgid "Text files" msgstr "Tekstbestanden" #: bin/gscan2pdf:2944 msgid "PS filename" msgstr "PS bestandsnaam" #: bin/gscan2pdf:2951 msgid "Postscript files" msgstr "Postscriptbestanden" #: bin/gscan2pdf:3003 msgid "gscan2pdf session filename" msgstr "gscan2pdf sessie bestandsnaam" #: bin/gscan2pdf:3010 msgid "gscan2pdf session files" msgstr "gscan2pdf sessiebestanden" #: bin/gscan2pdf:3093 #, perl-format msgid "" "File %s exists.\n" "Really overwrite?" msgstr "" "Bestand %s bestaat.\n" "Wenst U het werkelijk te overschrijven ?" #: bin/gscan2pdf:3106 msgid "Image filename" msgstr "Bestandsnaam van de afbeelding" #: bin/gscan2pdf:3245 msgid "DjVu filename" msgstr "DjVu bestandsnaam" #: bin/gscan2pdf:3252 msgid "DjVu files" msgstr "DjVu-bestanden" #: bin/gscan2pdf:3349 msgid "Email as PDF" msgstr "Email als PDF" #: bin/gscan2pdf:3454 msgid "Error creating email" msgstr "" #: bin/gscan2pdf:3490 bin/gscan2pdf:4313 msgid "Scan Document" msgstr "Scan document" #: bin/gscan2pdf:3507 lib/Gscan2pdf/Scanner/Dialog.pm:248 msgid "Page Options" msgstr "Pagina-opties" #: bin/gscan2pdf:3510 lib/Gscan2pdf/Scanner/Dialog.pm:251 msgid "# Pages" msgstr "# paginas" #: bin/gscan2pdf:3519 lib/Gscan2pdf/PageRange.pm:34 #: lib/Gscan2pdf/Scanner/Dialog.pm:261 msgid "All" msgstr "Alle" #: bin/gscan2pdf:3520 lib/Gscan2pdf/Scanner/Dialog.pm:262 msgid "Scan all pages" msgstr "Scan alle paginas" #: bin/gscan2pdf:3532 bin/gscan2pdf:3537 lib/Gscan2pdf/Scanner/Dialog.pm:274 #: lib/Gscan2pdf/Scanner/Dialog.pm:279 msgid "Set number of pages to scan" msgstr "Bepaal aantal te scannen paginas" #: bin/gscan2pdf:3550 lib/Gscan2pdf/Scanner/Dialog.pm:308 msgid "Extended page numbering" msgstr "Uitgebreide paginanummering" #: bin/gscan2pdf:3554 lib/Gscan2pdf/Scanner/Dialog.pm:312 msgid "Page number" msgstr "Paginanummer" #: bin/gscan2pdf:3563 lib/Gscan2pdf/Dialog/Renumber.pm:111 #: lib/Gscan2pdf/Scanner/Dialog.pm:321 msgid "Start" msgstr "Start" #: bin/gscan2pdf:3572 lib/Gscan2pdf/Dialog/Renumber.pm:132 #: lib/Gscan2pdf/Scanner/Dialog.pm:340 msgid "Increment" msgstr "Ophogen" #: bin/gscan2pdf:3604 lib/Gscan2pdf/Scanner/Dialog.pm:372 msgid "Source document" msgstr "Brondocument" #: bin/gscan2pdf:3611 lib/Gscan2pdf/Scanner/Dialog.pm:379 msgid "Single sided" msgstr "Enkelzijdig" #: bin/gscan2pdf:3612 lib/Gscan2pdf/Scanner/Dialog.pm:380 msgid "Source document is single-sided" msgstr "Brondocument is enkelzijdig" #: bin/gscan2pdf:3622 lib/Gscan2pdf/Scanner/Dialog.pm:390 msgid "Double sided" msgstr "Dubbelzijdig" #: bin/gscan2pdf:3623 lib/Gscan2pdf/Scanner/Dialog.pm:391 msgid "Source document is double-sided" msgstr "Brondocument is dubbelzijdig" #: bin/gscan2pdf:3629 lib/Gscan2pdf/Scanner/Dialog.pm:397 msgid "Side to scan" msgstr "Te scannen zijde" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Facing" msgstr "Voorzijde" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Reverse" msgstr "Achterzijde" #: bin/gscan2pdf:3655 lib/Gscan2pdf/Scanner/Dialog.pm:418 msgid "Sets which side of a double-sided document is scanned" msgstr "Bepaalt welke zijde van een dubbelzijdig document gescand wordt" #: bin/gscan2pdf:3719 msgid "Scan Options" msgstr "Scan Opties" #: bin/gscan2pdf:3722 msgid "Device-dependent options" msgstr "Apparaatafhankelijke opties" #: bin/gscan2pdf:3729 lib/Gscan2pdf/Scanner/Dialog.pm:458 msgid "Scan profiles" msgstr "Scan profielen" #: bin/gscan2pdf:3778 bin/gscan2pdf:3784 lib/Gscan2pdf/Scanner/Dialog.pm:479 #: lib/Gscan2pdf/Scanner/Dialog.pm:485 msgid "Name of scan profile" msgstr "Naam voor scan profiel" #: bin/gscan2pdf:3828 lib/Gscan2pdf/Scanner/Dialog.pm:518 msgid "Scan" msgstr "Scan" #: bin/gscan2pdf:3866 msgid "Must scan facing pages first" msgstr "Moet eerst voorzijden scannen" #: bin/gscan2pdf:3977 msgid "Post-processing" msgstr "Nabewerking" #: bin/gscan2pdf:3986 bin/gscan2pdf:4008 msgid "Rotate" msgstr "Draaien" #: bin/gscan2pdf:3987 bin/gscan2pdf:4009 msgid "Rotate image after scanning" msgstr "Afbeelding draaien na scannen" #: bin/gscan2pdf:3990 msgid "Both sides" msgstr "Beide zijden" #: bin/gscan2pdf:3990 msgid "Both sides." msgstr "Beide zijden." #: bin/gscan2pdf:3991 msgid "Facing side" msgstr "Zichtbare zijde" #: bin/gscan2pdf:3991 msgid "Facing side." msgstr "Zichtbare zijde." #: bin/gscan2pdf:3992 msgid "Reverse side" msgstr "Achterzijde" #: bin/gscan2pdf:3992 msgid "Reverse side." msgstr "Achterzijde." #: bin/gscan2pdf:3995 bin/gscan2pdf:4013 msgid "Select side to rotate" msgstr "Selecteer de zijde om te roteren" #: bin/gscan2pdf:3998 msgid "90" msgstr "90" #: bin/gscan2pdf:3998 msgid "Rotate image 90 degrees clockwise." msgstr "Draai afbeelding 90 graden met de klok mee." #: bin/gscan2pdf:3999 msgid "180" msgstr "180" #: bin/gscan2pdf:3999 msgid "Rotate image 180 degrees clockwise." msgstr "Draai afbeelding 180 graden met de klok mee." #: bin/gscan2pdf:4000 msgid "270" msgstr "270" #: bin/gscan2pdf:4000 msgid "Rotate image 90 degrees anticlockwise." msgstr "Draai afbeelding 90 graden tegen de klok in." #: bin/gscan2pdf:4003 bin/gscan2pdf:4016 msgid "Select direction of rotation" msgstr "Draairichting selecteren" #: bin/gscan2pdf:4083 msgid "Clean up images" msgstr "Afbeelding opschonen" #: bin/gscan2pdf:4094 msgid "Options" msgstr "Opties" #: bin/gscan2pdf:4095 msgid "Set unpaper options" msgstr "Stel unpaper opties in" #: bin/gscan2pdf:4101 msgid "unpaper options" msgstr "unpaper opties" #: bin/gscan2pdf:4136 bin/gscan2pdf:4137 msgid "OCR scanned pages" msgstr "OCR gescande pagina's" #: bin/gscan2pdf:4151 msgid "Select OCR engine" msgstr "Kies OCR engine" #: bin/gscan2pdf:4210 lib/Gscan2pdf/Scanner/Dialog.pm:634 msgid "Fetching list of devices" msgstr "Haalt lijst van toestellen op" #: bin/gscan2pdf:4225 lib/Gscan2pdf/Scanner/Dialog.pm:654 msgid "No devices found" msgstr "Geen apparaten gevonden" #: bin/gscan2pdf:4367 bin/gscan2pdf:4732 bin/gscan2pdf:4777 bin/gscan2pdf:5214 #: lib/Gscan2pdf/Scanner/Dialog.pm:343 lib/Gscan2pdf/Scanner/Dialog.pm:348 #: t/061_Scanner_Dialog.t:38 t/061_Scanner_Dialog.t:95 msgid "page-number-increment" msgstr "" #: bin/gscan2pdf:4374 bin/gscan2pdf:4729 bin/gscan2pdf:4730 bin/gscan2pdf:4776 #: bin/gscan2pdf:5213 lib/Gscan2pdf/Scanner/Dialog.pm:361 #: t/061_Scanner_Dialog.t:37 msgid "page-number-start" msgstr "" #: bin/gscan2pdf:4663 lib/Gscan2pdf/Scanner/Dialog.pm:210 msgid "Device" msgstr "Apparaat" #: bin/gscan2pdf:4671 lib/Gscan2pdf/Scanner/Dialog.pm:213 msgid "Rescan for devices" msgstr "Zoek opnieuw naar apparaten" #: bin/gscan2pdf:4694 lib/Gscan2pdf/Scanner/Dialog.pm:237 msgid "Sets the device to be used for the scan" msgstr "Selecteert het voor de scan te gebruiken apparaat" #: bin/gscan2pdf:4780 lib/Gscan2pdf/Scanner/Dialog.pm:300 #: t/061_Scanner_Dialog.t:35 msgid "num-pages" msgstr "" #: bin/gscan2pdf:4821 msgid "Scanning" msgstr "Bezig met scannen" #: bin/gscan2pdf:4974 msgid "Unable to load image" msgstr "Kan afbeelding niet laden" #: bin/gscan2pdf:5004 msgid "print-pages" msgstr "Afdrukbladen" #: bin/gscan2pdf:5008 msgid "page-ranges" msgstr "Pagina-afmetingen" #: bin/gscan2pdf:5405 msgid "Patches gratefully received from:" msgstr "Patches dankbaar ontvangen van:" #: bin/gscan2pdf:5407 msgid "To aid the scan-to-PDF process" msgstr "Ten behoeve van het scan-naar-PDF proces" #: bin/gscan2pdf:5408 msgid "Copyright 2006--2012 Jeffrey Ratcliffe" msgstr "" #: bin/gscan2pdf:5492 bin/gscan2pdf:6028 msgid "The options cache seems to be empty. Reload device-dependent options?" msgstr "" "De buffer van de opties lijkt leeg te zijn. Wilt u de apparaatafhankelijke " "opties laden?" #: bin/gscan2pdf:5519 bin/gscan2pdf:6054 msgid "Updating options" msgstr "Opties worden geupdated" #: bin/gscan2pdf:5571 msgid "Paper size" msgstr "Papierformaat" #: bin/gscan2pdf:5572 bin/gscan2pdf:5672 bin/gscan2pdf:5840 bin/gscan2pdf:6769 msgid "Width" msgstr "Breedte" #: bin/gscan2pdf:5573 bin/gscan2pdf:5678 bin/gscan2pdf:5841 bin/gscan2pdf:6780 msgid "Height" msgstr "Hoogte" #: bin/gscan2pdf:5574 bin/gscan2pdf:5684 bin/gscan2pdf:5842 #: lib/Gscan2pdf/Unpaper.pm:124 lib/Gscan2pdf/Unpaper.pm:152 msgid "Left" msgstr "links" #: bin/gscan2pdf:5575 bin/gscan2pdf:5690 bin/gscan2pdf:5843 #: lib/Gscan2pdf/Unpaper.pm:129 lib/Gscan2pdf/Unpaper.pm:157 msgid "Top" msgstr "Bovenzijde" #: bin/gscan2pdf:5589 bin/gscan2pdf:5703 bin/gscan2pdf:6232 msgid "Manual" msgstr "Handmatig" #: bin/gscan2pdf:5590 bin/gscan2pdf:5700 msgid "Edit" msgstr "Bewerk" #: bin/gscan2pdf:5591 msgid "Selects or edits the paper size" msgstr "Kies of bewerk de paginagrootte" #: bin/gscan2pdf:5673 msgid "Width of scan area" msgstr "Breedte van scangebied" #: bin/gscan2pdf:5679 msgid "Height of scan area" msgstr "Hoogte van scangebied" #: bin/gscan2pdf:5685 msgid "Top-left x position of scan area" msgstr "Boven-Links X-positie van scangebied" #: bin/gscan2pdf:5691 msgid "Top-left y position of scan area" msgstr "Boven-Links Y-positie van scangebied" #: bin/gscan2pdf:5822 msgid "Edit paper size" msgstr "Bewerk papierformaat" #: bin/gscan2pdf:5839 msgid "Name" msgstr "Naam" #: bin/gscan2pdf:5893 msgid "Cannot delete all paper sizes" msgstr "Kan niet alle papierformaten verwijderen" #: bin/gscan2pdf:5955 msgid "" "The following paper sizes are too big to be scanned by the selected device:" msgstr "De volgende papierformaten zijn te groot voor deze scanner:" #: bin/gscan2pdf:6419 bin/gscan2pdf:6605 msgid "%" msgstr "%" #: bin/gscan2pdf:6492 msgid "Negate" msgstr "Negatief" #: bin/gscan2pdf:6562 msgid "Unsharp mask" msgstr "Onscherp masker" #: bin/gscan2pdf:6573 msgid "Radius" msgstr "Radius" #: bin/gscan2pdf:6575 bin/gscan2pdf:6592 bin/gscan2pdf:6747 bin/gscan2pdf:6759 #: bin/gscan2pdf:6771 bin/gscan2pdf:6782 msgid "pixels" msgstr "beeldpunten" #: bin/gscan2pdf:6582 msgid "" "The radius of the Gaussian, in pixels, not counting the center pixel (0 = " "automatic)." msgstr "" "De radius van Gaussian, in pixels, de middelste pxxel niet meegeteld ( 0 = " "automatisch)" #: bin/gscan2pdf:6590 msgid "Sigma" msgstr "Sigma" #: bin/gscan2pdf:6597 msgid "The standard deviation of the Gaussian." msgstr "De standaarddeviatie van Gaussian" #: bin/gscan2pdf:6603 msgid "Amount" msgstr "Hoeveelheid" #: bin/gscan2pdf:6612 msgid "" "The percentage of the difference between the original and the blur image " "that is added back into the original." msgstr "" "Het percentage van het verschil tussen de originele en de versluierde " "afbeelding die ingevoegd is in het origineel." #: bin/gscan2pdf:6627 msgid "" "The threshold, as a fraction of QuantumRange, needed to apply the difference " "amount." msgstr "" "De benodigde drempelwaarde, als een breuk van Quantumrange, om het verschil " "toe te passen." #: bin/gscan2pdf:6733 msgid "Crop" msgstr "Uitknippen" #: bin/gscan2pdf:6745 msgid "x" msgstr "x" #: bin/gscan2pdf:6751 msgid "The x-position of the left hand edge of the crop." msgstr "De x-positie van de linkerkant van het uitsnijgebied" #: bin/gscan2pdf:6757 msgid "y" msgstr "y" #: bin/gscan2pdf:6763 msgid "The y-position of the top edge of the crop." msgstr "De y-positie van de bovenkant van het uitsnijgebied" #: bin/gscan2pdf:6774 msgid "The width of the crop." msgstr "De breedte van het uitsnijgebied" #: bin/gscan2pdf:6785 msgid "The height of the crop." msgstr "De hoogte van het uitsnijgebied" #: bin/gscan2pdf:6906 msgid "label" msgstr "label" #: bin/gscan2pdf:7007 msgid "unpaper" msgstr "unpaper" #: bin/gscan2pdf:7216 bin/gscan2pdf:7244 msgid "Language to recognise" msgstr "Te herkennen taal" #: bin/gscan2pdf:7227 msgid "English" msgstr "Engels" #: bin/gscan2pdf:7270 msgid "OCR" msgstr "Tekstherkenning (OCR)" #: bin/gscan2pdf:7279 msgid "OCR Engine" msgstr "OCR Engine" #: bin/gscan2pdf:7323 msgid "Start OCR" msgstr "Tekstherkenning starten" #: bin/gscan2pdf:7339 msgid "No page selected" msgstr "Geen pagina's geselecteerd" #: bin/gscan2pdf:7374 msgid "" "Some pages have not been saved.\n" "Do you really want to quit?" msgstr "" "Sommige pagina's zijn niet opgeslagen.\n" "Wilt u werkelijk het programma verlaten?" #: bin/gscan2pdf:7432 #, perl-format msgid "" "The help viewer requires module Gtk2::Ex::PodViewer\n" "Alternatively, try: %s %s\n" "\n" msgstr "" "Het bekijken van de helppagina's vereist modules Gtk2::Ex::PodViewer\n" "Probeer misschien: %s %s\n" "\n" #: bin/gscan2pdf:7698 msgid "This operation cannot be undone. Are you sure?" msgstr "Deze actie kan niet ongedaan gemaakt worden. Bent u zeker?" #: bin/gscan2pdf:7753 msgid "Preferences" msgstr "Voorkeuren" #: bin/gscan2pdf:7762 msgid "Frontend" msgstr "Frontend" #: bin/gscan2pdf:7766 msgid "libsane-perl" msgstr "libsane-perl" #: bin/gscan2pdf:7767 msgid "Scan using the perl bindings for SANE." msgstr "Scannen met gebruik van perl bindings voor Sane" #: bin/gscan2pdf:7770 msgid "scanimage" msgstr "scanimage" #: bin/gscan2pdf:7771 msgid "Scan using the scanimage frontend." msgstr "Scannen met de scanimage frontend" #: bin/gscan2pdf:7775 msgid "scanimage-perl" msgstr "scanimage-perl" #: bin/gscan2pdf:7776 msgid "Scan using the scanimage-perl frontend." msgstr "Scannen met de scanimage-perl frontend." #: bin/gscan2pdf:7779 msgid "scanadf-perl" msgstr "scanadf-perl" #: bin/gscan2pdf:7780 msgid "Scan using the scanadf-perl frontend." msgstr "Scannen met de scanadf-perl frontend." #: bin/gscan2pdf:7785 msgid "scanadf" msgstr "scanadf" #: bin/gscan2pdf:7786 msgid "Scan using the scanadf frontend." msgstr "Scannen met de scanadf frontend." #: bin/gscan2pdf:7791 msgid "Cycle SANE handle after scan" msgstr "" #: bin/gscan2pdf:7814 msgid "Default filename for PDFs" msgstr "Satndaard bestandsnaam voor PDF-bestanden" #: bin/gscan2pdf:7820 msgid "" "%a\t author\n" "%t\t title\n" "%y\t document's year\n" "%Y\t today's year\n" "%m\t document's month\n" "%M\t today's month\n" "%d\t document's day\n" "%D\t today's day" msgstr "" "%a\t auteur\n" "%t\t naam\n" "%y\t jaartal van document\n" "%Y\t jaartal vandaag\n" "%m\t maand van document\n" "%M\t maand vandaag\n" "%d\t dag document\n" "%D\t dag vandaag" #: bin/gscan2pdf:7830 msgid "Scan command prefix" msgstr "Scanopdracht voorvoegsel" #: bin/gscan2pdf:7839 msgid "Restore window settings on startup" msgstr "Laatst bekende instellingen laden bij opstarten" #: bin/gscan2pdf:7845 msgid "Cache device-dependent options" msgstr "Buffer van apparaatafhankelijke instellingen" #: bin/gscan2pdf:7851 msgid "Clear device-dependent options cache" msgstr "Buffer van apparaatafhankelijke instellingen opschonen" #: bin/gscan2pdf:7862 msgid "Temporary directory" msgstr "Tijdelijke map" #: bin/gscan2pdf:7867 msgid "Browse" msgstr "Bladeren" #: bin/gscan2pdf:7871 msgid "Select temporary directory" msgstr "Tijdelijke map selecteren" #: bin/gscan2pdf:7888 msgid "Blank threshold" msgstr "Drempelwaarde voor blanco" #: bin/gscan2pdf:7893 msgid "Threshold used for selecting blank pages" msgstr "Drempelwaarde voor het selecteren van blanco bladzijden" #: bin/gscan2pdf:7899 msgid "Dark threshold" msgstr "Drempelwaarde voor donker" #: bin/gscan2pdf:7904 msgid "Threshold used for selecting dark pages" msgstr "Drempelwaarde voor het selecteren van donkere bladzijden" #: bin/gscan2pdf:7910 msgid "OCR output" msgstr "OCR-uitvoer" #: bin/gscan2pdf:7915 msgid "Replace" msgstr "Vervangen" #: bin/gscan2pdf:7917 msgid "" "Replace the contents of the text buffer with that from the OCR output." msgstr "" "De waarde van de tekstbuffer vervangen door de waarde van de OCR-uitvoer." #: bin/gscan2pdf:7920 msgid "Prepend" msgstr "Vooraan toevoegen" #: bin/gscan2pdf:7921 msgid "Prepend the OCR output to the text buffer." msgstr "De OCR-uitvoer vooraan in de tekstbuffer toevoegen." #: bin/gscan2pdf:7924 msgid "Append" msgstr "Toevoegen" #: bin/gscan2pdf:7925 msgid "Append the OCR output to the text buffer." msgstr "De OCR-uitvoer achteraan in de tekstbuffer toevoegen." #: bin/gscan2pdf:7933 msgid "User-defined tools" msgstr "Door gebruiker aangemaakte hulpmiddelen" #: bin/gscan2pdf:7954 msgid "View files on saving" msgstr "" #: bin/gscan2pdf:8000 msgid "" "You will have to restart gscanp2df for changes to the temporary directory to " "take effect." msgstr "" "U dient gscan2pdf opnieuw op te starten om de aanpassingen aan de tijdelijke " "map effectief te laten worden." #: bin/gscan2pdf:8092 msgid "" "Use %i and %o for the input and output filenames respectively, or a single " "%i if the image is to be modified in-place.\n" "\n" "The other variable available is:\n" "\n" "%r resolution" msgstr "" "Gebruik respectievelijk %i en %o voor de bestandsnamen van de in- en " "uitvoer, of alleen %i als de afbeelding in-place wordt aangepast.\n" "\n" "De andere beschikbare waarde is:\n" "\n" "%r resolutie" #: bin/gscan2pdf:8119 msgid "Properties" msgstr "Eigenschappen" #: lib/Gscan2pdf/Dialog.pm:63 lib/Gscan2pdf/Dialog.pm:79 t/05_Dialog.t:25 msgid "hide-on-delete" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:78 lib/Gscan2pdf/Dialog/Renumber.pm:162 msgid "Renumber" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:98 lib/Gscan2pdf/Dialog/Renumber.pm:207 #: lib/Gscan2pdf/Dialog/Renumber.pm:244 msgid "range" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:102 msgid "Page numbering" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:105 lib/Gscan2pdf/Scanner/Dialog.pm:254 msgid "border_width" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:126 lib/Gscan2pdf/Dialog/Renumber.pm:192 #: lib/Gscan2pdf/Dialog/Renumber.pm:242 t/07_Dialog_Renumber.t:33 #: t/07_Dialog_Renumber.t:45 t/07_Dialog_Renumber.t:59 #: t/07_Dialog_Renumber.t:66 msgid "start" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:147 lib/Gscan2pdf/Dialog/Renumber.pm:193 #: lib/Gscan2pdf/Dialog/Renumber.pm:243 t/07_Dialog_Renumber.t:34 #: t/07_Dialog_Renumber.t:46 t/07_Dialog_Renumber.t:60 #: t/07_Dialog_Renumber.t:67 msgid "increment" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:205 lib/Gscan2pdf/Dialog/Renumber.pm:241 msgid "document" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:295 msgid "" "The current settings would result in duplicate page numbers. Please select " "new start and increment values." msgstr "" #: lib/Gscan2pdf/Document.pm:83 msgid "Thumbnails" msgstr "" #: lib/Gscan2pdf/Document.pm:1502 msgid "Unknown DjVu file structure. Please contact the author." msgstr "" #: lib/Gscan2pdf/Document.pm:1558 #, perl-format msgid "%s is not a recognised image type" msgstr "" #: lib/Gscan2pdf/Document.pm:1580 lib/Gscan2pdf/Document.pm:1637 #, perl-format msgid "Importing page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:1613 msgid "Error extracting images from PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1692 msgid "Setting up PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1703 #, perl-format msgid "Saving page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:1814 lib/Gscan2pdf/Document.pm:2136 #, perl-format msgid "Error compressing image: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1919 #, perl-format msgid "Error creating PDF image object: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1930 #, perl-format msgid "Error embedding file image in %s format to PDF: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1939 msgid "Closing PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1955 #, perl-format msgid "Writing page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:2006 msgid "Error writing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2025 lib/Gscan2pdf/Document.pm:2227 #, perl-format msgid "Can't open file: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:2050 msgid "Error adding text layer to DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2056 msgid "Closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2063 msgid "Error closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2078 #, perl-format msgid "Converting image %i of %i to TIFF" msgstr "" #: lib/Gscan2pdf/Document.pm:2105 msgid "Error writing TIFF" msgstr "" #: lib/Gscan2pdf/Document.pm:2121 msgid "Concatenating TIFFs" msgstr "" #: lib/Gscan2pdf/Document.pm:2140 msgid "Converting to PS" msgstr "" #: lib/Gscan2pdf/Document.pm:2200 lib/Gscan2pdf/Document.pm:2215 msgid "Error saving image" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:158 #, perl-format msgid "Scanning %i pages..." msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:163 #, perl-format msgid "Scanning page %i..." msgstr "Bezig met scannen aan pagina %i..." #: lib/Gscan2pdf/Frontend/CLI.pm:188 lib/Gscan2pdf/Frontend/CLI.pm:296 msgid "Scanner warming up" msgstr "Scanner wordt opgewarmd" #: lib/Gscan2pdf/Frontend/CLI.pm:195 msgid "Document feeder out of documents" msgstr "Geen documenten meer in feeder" #: lib/Gscan2pdf/Frontend/CLI.pm:212 lib/Gscan2pdf/Frontend/CLI.pm:325 msgid "Device busy" msgstr "Apparaat bezig" #: lib/Gscan2pdf/Frontend/CLI.pm:218 lib/Gscan2pdf/Frontend/CLI.pm:330 msgid "Operation cancelled" msgstr "Bewerking geannuleerd" #: lib/Gscan2pdf/Frontend/CLI.pm:223 lib/Gscan2pdf/Frontend/CLI.pm:336 msgid "Unknown message: " msgstr "Onbekende melding: " #: lib/Gscan2pdf/Page.pm:68 lib/Gscan2pdf/Page.pm:73 #, perl-format msgid "Error importing image %s: %s" msgstr "" #: lib/Gscan2pdf/PageRange.pm:33 msgid "Selected" msgstr "Geselecteerde" #: lib/Gscan2pdf/PageRange.pm:58 msgid "active" msgstr "actief" #: lib/Gscan2pdf/Scanner/Dialog.pm:218 t/061_Scanner_Dialog.t:33 #: t/061_Scanner_Dialog.t:59 msgid "device-list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:496 t/061_Scanner_Dialog.t:139 #: t/061_Scanner_Dialog.t:174 t/062_Scanner_Dialog.t:50 #: t/062_Scanner_Dialog.t:75 msgid "current-scan-options" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:567 msgid "logger" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:650 t/05_Dialog.t:24 msgid "transient-for" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:716 msgid "device_list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:749 t/061_Scanner_Dialog.t:32 msgid "device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:751 msgid "Opening device" msgstr "Apparaat benaderen" #: lib/Gscan2pdf/Scanner/Dialog.pm:760 msgid "Retrieving options" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:41 msgid "Layout" msgstr "Vormgeving" #: lib/Gscan2pdf/Unpaper.pm:44 msgid "Single" msgstr "Enkel" #: lib/Gscan2pdf/Unpaper.pm:46 msgid "One page per sheet, oriented upwards without rotation." msgstr "1 Pagina per blad, naar de bovenkant georienteerd zonder rotatie." #: lib/Gscan2pdf/Unpaper.pm:49 msgid "Double" msgstr "Dubbel" #: lib/Gscan2pdf/Unpaper.pm:51 msgid "" "Two pages per sheet, landscape orientation (one page on the left half, one " "page on the right half)." msgstr "" "2 Pagina's per blad, liggend georienteerd (1 Pagina op de linkerkant en 1 " "Pagina op de rechterkant)" #: lib/Gscan2pdf/Unpaper.pm:59 msgid "# Output pages" msgstr "# Aantal pagina's" #: lib/Gscan2pdf/Unpaper.pm:60 msgid "Number of pages to output." msgstr "Aantal te exporteren pagina's" #: lib/Gscan2pdf/Unpaper.pm:68 msgid "No deskew" msgstr "Niet rechtzetten" #: lib/Gscan2pdf/Unpaper.pm:69 msgid "Disable deskewing." msgstr "rechtzetten uitschakelen" #: lib/Gscan2pdf/Unpaper.pm:74 msgid "No mask scan" msgstr "Geen scan masker" #: lib/Gscan2pdf/Unpaper.pm:75 msgid "Disable mask detection." msgstr "Maskerdetectie uitschakelen" #: lib/Gscan2pdf/Unpaper.pm:80 msgid "No black filter" msgstr "Geen zwart filter" #: lib/Gscan2pdf/Unpaper.pm:81 msgid "Disable black area scan." msgstr "Zwartgebied scan uitschakelen" #: lib/Gscan2pdf/Unpaper.pm:86 msgid "No gray filter" msgstr "Geen grijsfilter" #: lib/Gscan2pdf/Unpaper.pm:87 msgid "Disable gray area scan." msgstr "Grijsgebied scan uitschakelen" #: lib/Gscan2pdf/Unpaper.pm:92 msgid "No noise filter" msgstr "Geen ruisfilter" #: lib/Gscan2pdf/Unpaper.pm:93 msgid "Disable noise filter." msgstr "Ruisfilter uitschakelen" #: lib/Gscan2pdf/Unpaper.pm:98 msgid "No blur filter" msgstr "Geen blurfilter" #: lib/Gscan2pdf/Unpaper.pm:99 msgid "Disable blur filter." msgstr "Blurfilter uitschakelen" #: lib/Gscan2pdf/Unpaper.pm:104 msgid "No border scan" msgstr "Scannen zonder kantlijn" #: lib/Gscan2pdf/Unpaper.pm:105 msgid "Disable border scanning." msgstr "Scannen van rand uitschakelen" #: lib/Gscan2pdf/Unpaper.pm:110 msgid "No border align" msgstr "Geen kantlijn uitlijning" #: lib/Gscan2pdf/Unpaper.pm:112 msgid "Disable aligning of the area detected by border scanning." msgstr "" "Uitlijning van het gebied welke door de kantlijnscanning is gedetecteerd " "uitschakelen" #: lib/Gscan2pdf/Unpaper.pm:117 msgid "Deskew to edge" msgstr "Rechtzetten aan rand" #: lib/Gscan2pdf/Unpaper.pm:119 msgid "" "Edges from which to scan for rotation. Each edge of a mask can be used to " "detect the mask's rotation. If multiple edges are specified, the average " "value will be used, unless the statistical deviation exceeds --deskew-scan-" "deviation." msgstr "" "Randen van waaruit gescand wordt voor rotatie. Elke rand van een masker kan " "worden gebruikt om de rotatie van het masker te detecteren. Indien meerdere " "randen zijn aangegeven, zal de gemiddelde waarde gebruikt worden, tenzij de " "statistische deviatie de --deskew-scan-deviation overschrijdt." #: lib/Gscan2pdf/Unpaper.pm:125 msgid "Use 'left' for scanning from the left edge." msgstr "Gebruik 'Links' om te scannen vanaf de linkerzijde" #: lib/Gscan2pdf/Unpaper.pm:130 msgid "Use 'top' for scanning from the top edge." msgstr "Gebruik 'Bovenzijde' om te scannen vanaf de bovenzijde" #: lib/Gscan2pdf/Unpaper.pm:134 lib/Gscan2pdf/Unpaper.pm:162 msgid "Right" msgstr "Rechts" #: lib/Gscan2pdf/Unpaper.pm:135 msgid "Use 'right' for scanning from the right edge." msgstr "Gebruik 'Rechts' om te scannen vanaf de bovenzijde." #: lib/Gscan2pdf/Unpaper.pm:139 lib/Gscan2pdf/Unpaper.pm:167 msgid "Bottom" msgstr "Onderzijde" #: lib/Gscan2pdf/Unpaper.pm:140 msgid "Use 'bottom' for scanning from the bottom." msgstr "Gebruik 'Onderzijde' om te scannen vanaf de bodemzijde." #: lib/Gscan2pdf/Unpaper.pm:147 msgid "Align to edge" msgstr "Lijn uit tot rand" #: lib/Gscan2pdf/Unpaper.pm:148 msgid "Edge to which to align the page." msgstr "Rand om de pagina uit te lijnen" #: lib/Gscan2pdf/Unpaper.pm:153 msgid "Use 'left' to align to the left edge." msgstr "Gebruik 'Links' om vanaf de linkerzijde uit te lijnen." #: lib/Gscan2pdf/Unpaper.pm:158 msgid "Use 'top' to align to the top edge." msgstr "Gebruik 'Bovenzijde' om vanaf de bovenzijde uit te lijnen." #: lib/Gscan2pdf/Unpaper.pm:163 msgid "Use 'right' to align to the right edge." msgstr "Gebruik 'Rechts' om vanaf de rechterzijde uit te lijnen." #: lib/Gscan2pdf/Unpaper.pm:168 msgid "Use 'bottom' to align to the bottom." msgstr "Gebruik 'Onderzijde' om vanaf de onderzijde uit te lijnen." #: lib/Gscan2pdf/Unpaper.pm:174 msgid "Border margin" msgstr "Marge van de rand" #: lib/Gscan2pdf/Unpaper.pm:178 msgid "Vertical margin" msgstr "Verticale marge" #: lib/Gscan2pdf/Unpaper.pm:180 msgid "" "Vertical distance to keep from the sheet edge when aligning a border area." msgstr "" "De te behouden verticale afstand vanaf de bladrand, wanneer een randgebied " "wordt uitgelijnd." #: lib/Gscan2pdf/Unpaper.pm:189 msgid "Horizontal margin" msgstr "Horizontale marge" #: lib/Gscan2pdf/Unpaper.pm:191 msgid "" "Horizontal distance to keep from the sheet edge when aligning a border area." msgstr "" "De te behouden horizontale afstand vanaf de bladrand, wanneer een randgebied " "wordt uitgelijnd." #: lib/Gscan2pdf/Unpaper.pm:202 msgid "White threshold" msgstr "Witdrempel" #: lib/Gscan2pdf/Unpaper.pm:204 msgid "Brightness ratio above which a pixel is considered white." msgstr "Grenswaarde waarboven een beeldpunt als wit gezien zal worden." #: lib/Gscan2pdf/Unpaper.pm:212 msgid "Black threshold" msgstr "Zwartdrempel" #: lib/Gscan2pdf/Unpaper.pm:214 msgid "" "Brightness ratio below which a pixel is considered black (non-gray). This is " "used by the gray-filter. This value is also used when converting a grayscale " "image to black-and-white mode." msgstr "" "Grenswaarde waaronder een beeldpunt als zwart gezien zal worden. Dit wordt " "gebruikt door de grijs filter. Deze waarde wordt ook gebruikt om een grijs " "afbeelding naar zwart-wit om te zetten." #: lib/Gscan2pdf/Unpaper.pm:250 msgid "Deskew" msgstr "Rechtzetten" #: lib/Gscan2pdf/Unpaper.pm:280 msgid "Border" msgstr "Kader" #: lib/Gscan2pdf/Unpaper.pm:337 msgid "Filters" msgstr "Filters" #: t/05_Dialog.t:23 msgid "title" msgstr "" #: t/05_Dialog.t:26 t/05_Dialog.t:31 t/05_Dialog.t:32 t/05_Dialog.t:38 #: t/05_Dialog.t:39 msgid "border-width" msgstr "" #: t/061_Scanner_Dialog.t:34 msgid "dir" msgstr "" #: t/061_Scanner_Dialog.t:36 msgid "max-pages" msgstr "" #: t/061_Scanner_Dialog.t:39 msgid "side-to-scan" msgstr "" #: t/061_Scanner_Dialog.t:40 t/061_Scanner_Dialog.t:185 msgid "available-scan-options" msgstr "" #: t/061_Scanner_Dialog.t:171 t/062_Scanner_Dialog.t:73 msgid "profile" msgstr "" gscan2pdf-1.2.3/po/gscan2pdf-hr.po0000644000175000017500000011510512243440507015232 0ustar jeffjeff# Croatian translation for gscan2pdf # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the gscan2pdf package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: gscan2pdf\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-10-25 08:12+0200\n" "PO-Revision-Date: 2009-01-19 11:00+0000\n" "Last-Translator: DarioSeparovic \n" "Language-Team: Croatian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-19 09:22+0000\n" "X-Generator: Launchpad (build 16831)\n" #: bin/gscan2pdf:157 msgid "Error displaying help" msgstr "" #: bin/gscan2pdf:201 msgid "" "Error: unable to load settings.\n" "Backing up settings\n" "Reverting to defaults" msgstr "Pogreška: nemoguće unos postavaka." #: bin/gscan2pdf:244 msgid "A4" msgstr "A4" #: bin/gscan2pdf:250 msgid "US Letter" msgstr "US Letter" #: bin/gscan2pdf:256 msgid "US Legal" msgstr "US Legal" #: bin/gscan2pdf:323 bin/gscan2pdf:344 #, perl-format msgid "Cannot read file: %s" msgstr "" #: bin/gscan2pdf:451 msgid "_File" msgstr "_Datoteka" #: bin/gscan2pdf:454 msgid "_New" msgstr "_Novi" #: bin/gscan2pdf:455 msgid "Clears all pages" msgstr "Brisanje svi stranica" #: bin/gscan2pdf:459 msgid "_Open" msgstr "_Otvori" #: bin/gscan2pdf:460 msgid "Open image file(s)" msgstr "" #: bin/gscan2pdf:465 msgid "S_can" msgstr "U stanju" #: bin/gscan2pdf:467 msgid "Scan document" msgstr "Učitavanje dokumenta" #: bin/gscan2pdf:471 bin/gscan2pdf:472 bin/gscan2pdf:2582 msgid "Save" msgstr "Spremi" #: bin/gscan2pdf:476 msgid "_Email as PDF" msgstr "e-pošta kao PDF" #: bin/gscan2pdf:477 msgid "Attach as PDF to a new email" msgstr "Pridruži PDF u novi e-mail" #: bin/gscan2pdf:480 msgid "_Print" msgstr "" #: bin/gscan2pdf:481 msgid "Print" msgstr "" #: bin/gscan2pdf:485 msgid "_Compress temporary files" msgstr "_Sažmi privremene datoteke" #: bin/gscan2pdf:486 msgid "Compress temporary files" msgstr "Sažmi privremene datoteke" #: bin/gscan2pdf:490 msgid "_Quit" msgstr "_Izlaz" #: bin/gscan2pdf:491 msgid "Quit" msgstr "Izlaz" #: bin/gscan2pdf:495 msgid "_Edit" msgstr "_Uredi" #: bin/gscan2pdf:497 msgid "_Undo" msgstr "_Vrati" #: bin/gscan2pdf:497 msgid "Undo" msgstr "Vrati" #: bin/gscan2pdf:501 msgid "_Redo" msgstr "_Ponovi" #: bin/gscan2pdf:502 msgid "Redo" msgstr "Ponovi" #: bin/gscan2pdf:506 msgid "Cu_t" msgstr "Iz_reži" #: bin/gscan2pdf:507 msgid "Cut selection" msgstr "Izreži izabrano" #: bin/gscan2pdf:511 msgid "_Copy" msgstr "_Kopiraj" #: bin/gscan2pdf:512 msgid "Copy selection" msgstr "Kopiraj izabrano" #: bin/gscan2pdf:516 msgid "_Paste" msgstr "_Zalijepi" #: bin/gscan2pdf:517 msgid "Paste selection" msgstr "Umetni odabrano" #: bin/gscan2pdf:521 msgid "_Delete" msgstr "_Obriši" #: bin/gscan2pdf:522 msgid "Delete selected pages" msgstr "Obriši slektirane stranice" #: bin/gscan2pdf:526 msgid "_Renumber" msgstr "_Pobroji" #: bin/gscan2pdf:527 msgid "Renumber pages" msgstr "" #: bin/gscan2pdf:529 bin/gscan2pdf:679 msgid "_Select" msgstr "_Odaberi" #: bin/gscan2pdf:532 msgid "_All" msgstr "" #: bin/gscan2pdf:533 msgid "Select all pages" msgstr "Označi sve stranice" #: bin/gscan2pdf:536 msgid "_Odd" msgstr "" #: bin/gscan2pdf:537 msgid "Select all odd-numbered pages" msgstr "" #: bin/gscan2pdf:541 msgid "_Even" msgstr "" #: bin/gscan2pdf:542 msgid "Select all evenly-numbered pages" msgstr "" #: bin/gscan2pdf:547 msgid "_Blank" msgstr "" #: bin/gscan2pdf:548 msgid "Select pages with low standard deviation" msgstr "" #: bin/gscan2pdf:552 msgid "_Dark" msgstr "" #: bin/gscan2pdf:553 msgid "Select dark pages" msgstr "" #: bin/gscan2pdf:558 msgid "_Modified" msgstr "" #: bin/gscan2pdf:560 msgid "Select modified pages since last OCR" msgstr "" #: bin/gscan2pdf:565 msgid "_No OCR" msgstr "" #: bin/gscan2pdf:566 msgid "Select pages with no OCR output" msgstr "" #: bin/gscan2pdf:570 msgid "_Clear OCR" msgstr "" #: bin/gscan2pdf:571 msgid "Clear OCR output from selected pages" msgstr "" #: bin/gscan2pdf:575 msgid "Propert_ies" msgstr "Postavke" #: bin/gscan2pdf:576 msgid "Edit image properties" msgstr "" #: bin/gscan2pdf:580 msgid "Prefere_nces" msgstr "Postavke" #: bin/gscan2pdf:581 msgid "Edit preferences" msgstr "Uredi postavke" #: bin/gscan2pdf:585 msgid "_View" msgstr "_Prikaz" #: bin/gscan2pdf:588 msgid "Zoom _100%" msgstr "Zumiraj _100%" #: bin/gscan2pdf:589 msgid "Zoom to 100%" msgstr "Zumiraj na 100%" #: bin/gscan2pdf:593 msgid "Zoom to _fit" msgstr "Prilagođeno _uvećanje" #: bin/gscan2pdf:594 msgid "Zoom to fit" msgstr "Prilagođeno uvećanje" #: bin/gscan2pdf:598 msgid "Zoom _in" msgstr "Uvećaj_" #: bin/gscan2pdf:599 msgid "Zoom in" msgstr "Uvećaj" #: bin/gscan2pdf:603 msgid "Zoom _out" msgstr "Umanji_" #: bin/gscan2pdf:604 msgid "Zoom out" msgstr "Umanji" #: bin/gscan2pdf:609 bin/gscan2pdf:611 msgid "Rotate 90 clockwise" msgstr "Rotiraj 90 u smjeru kazaljke" #: bin/gscan2pdf:617 bin/gscan2pdf:619 msgid "Rotate 180" msgstr "Rotiraj 180" #: bin/gscan2pdf:625 bin/gscan2pdf:627 msgid "Rotate 90 anticlockwise" msgstr "Rotiraj 90 udesno" #: bin/gscan2pdf:632 msgid "_Tools" msgstr "_Alati" #: bin/gscan2pdf:634 msgid "_Threshold" msgstr "Prag:" #: bin/gscan2pdf:635 msgid "Change each pixel above this threshold to black" msgstr "Promjeni svaki pixel do razine crno" #: bin/gscan2pdf:639 msgid "_Negate" msgstr "_Odricati" #: bin/gscan2pdf:640 msgid "Converts black to white and vice versa" msgstr "" #: bin/gscan2pdf:644 msgid "_Unsharp Mask" msgstr "" #: bin/gscan2pdf:645 msgid "Apply an unsharp mask" msgstr "" #: bin/gscan2pdf:648 msgid "_Crop" msgstr "_Izreži" #: bin/gscan2pdf:649 msgid "Crop pages" msgstr "" #: bin/gscan2pdf:653 msgid "_Clean up" msgstr "_Počisti" #: bin/gscan2pdf:654 bin/gscan2pdf:4085 msgid "Clean up scanned images with unpaper" msgstr "Počisti scaniranu sliku pomoću unpaper" #: bin/gscan2pdf:657 msgid "_OCR" msgstr "_OCR" #: bin/gscan2pdf:658 msgid "Optical Character Recognition" msgstr "Optičko prepoznavanje znakova (OCR)" #: bin/gscan2pdf:660 msgid "U_ser-defined" msgstr "" #: bin/gscan2pdf:663 bin/gscan2pdf:665 msgid "_Help" msgstr "_Pomoć" #: bin/gscan2pdf:666 msgid "Help" msgstr "Pomoć" #: bin/gscan2pdf:668 msgid "_About" msgstr "_O" #: bin/gscan2pdf:674 msgid "_Drag" msgstr "_Dovuci" #: bin/gscan2pdf:675 msgid "Use the hand tool" msgstr "Koristi ručni alat" #: bin/gscan2pdf:680 msgid "Use the rectangular selection tool" msgstr "Koristi pravokutni odabira alata" #: bin/gscan2pdf:684 msgid "_Paint" msgstr "_Bojati" #: bin/gscan2pdf:685 msgid "Use the painter tool" msgstr "Koristi alate bojanja" #: bin/gscan2pdf:965 lib/Gscan2pdf/Document.pm:2594 #: lib/Gscan2pdf/Document.pm:2595 msgid "Error copying page" msgstr "Greška kopiranja stranice" #: bin/gscan2pdf:1082 msgid "Image" msgstr "" #: bin/gscan2pdf:1117 msgid "OCR Output" msgstr "" #: bin/gscan2pdf:1174 msgid "Mode" msgstr "Način" #: bin/gscan2pdf:1176 msgid "Lineart" msgstr "Pravocrtno" #: bin/gscan2pdf:1177 msgid "Grayscale" msgstr "Sivi tonovi" #: bin/gscan2pdf:1178 msgid "Gray" msgstr "Siva" #: bin/gscan2pdf:1179 msgid "Color" msgstr "Boja" #: bin/gscan2pdf:1180 msgid "Black & White" msgstr "Crno/bijelo" #: bin/gscan2pdf:1181 msgid "True Gray" msgstr "Stvarno Sivo" #: bin/gscan2pdf:1182 msgid "Binary" msgstr "Binarno" #: bin/gscan2pdf:1183 bin/gscan2pdf:1242 bin/gscan2pdf:1243 msgid "Auto" msgstr "Auto" #: bin/gscan2pdf:1184 msgid "Halftone" msgstr "Polutonovi" #: bin/gscan2pdf:1185 msgid "24bit Color" msgstr "" #: bin/gscan2pdf:1189 bin/gscan2pdf:2547 bin/gscan2pdf:2644 msgid "Compression" msgstr "Kompresija" #: bin/gscan2pdf:1191 bin/gscan2pdf:2539 bin/gscan2pdf:2636 msgid "None" msgstr "Ništa" #: bin/gscan2pdf:1192 bin/gscan2pdf:2537 bin/gscan2pdf:2601 bin/gscan2pdf:2622 msgid "JPEG" msgstr "JPEG" #: bin/gscan2pdf:1195 bin/gscan2pdf:8127 msgid "Resolution" msgstr "Razlučivost" #: bin/gscan2pdf:1196 msgid "Brightness" msgstr "Svjetlina" #: bin/gscan2pdf:1197 msgid "Gain" msgstr "Pojačanje" #: bin/gscan2pdf:1198 msgid "Contrast" msgstr "Kontrast" #: bin/gscan2pdf:1199 bin/gscan2pdf:6406 bin/gscan2pdf:6417 bin/gscan2pdf:6620 msgid "Threshold" msgstr "Prag" #: bin/gscan2pdf:1201 msgid "Speed" msgstr "Brzina" #: bin/gscan2pdf:1203 bin/gscan2pdf:1210 bin/gscan2pdf:1217 bin/gscan2pdf:1224 #: bin/gscan2pdf:1231 msgid "Yes" msgstr "Da" #: bin/gscan2pdf:1204 bin/gscan2pdf:1211 bin/gscan2pdf:1218 bin/gscan2pdf:1225 #: bin/gscan2pdf:1232 msgid "No" msgstr "Ne" #: bin/gscan2pdf:1208 msgid "Batch scan" msgstr "Scaniraj grupno" #: bin/gscan2pdf:1215 bin/gscan2pdf:1222 msgid "Wait for button" msgstr "Čekaj za gumb" #: bin/gscan2pdf:1229 msgid "Cache calibration" msgstr "Kalibracija priručne memorije" #: bin/gscan2pdf:1236 msgid "Source" msgstr "Izvorni dokument:" #: bin/gscan2pdf:1238 msgid "Normal" msgstr "Uobičajeno" #: bin/gscan2pdf:1239 msgid "ADF" msgstr "ADF" #: bin/gscan2pdf:1240 msgid "Automatic Document Feeder" msgstr "" #: bin/gscan2pdf:1241 msgid "XPA" msgstr "XPA" #: bin/gscan2pdf:1244 msgid "Flatbed" msgstr "" #: bin/gscan2pdf:1245 msgid "Transparency Adapter" msgstr "Transparentnost providnosti" #: bin/gscan2pdf:1246 msgid "Transparency Unit" msgstr "Jedinica Transparentnosti" #: bin/gscan2pdf:1249 bin/gscan2pdf:1251 msgid "Page Width" msgstr "Širina stranice" #: bin/gscan2pdf:1250 bin/gscan2pdf:1252 msgid "Page Height" msgstr "Visina stranice" #: bin/gscan2pdf:1253 msgid "Top Overscan" msgstr "" #: bin/gscan2pdf:1254 msgid "Bottom Overscan" msgstr "" #: bin/gscan2pdf:1256 bin/gscan2pdf:1263 msgid "ADF Mode" msgstr "ADF metoda" #: bin/gscan2pdf:1258 bin/gscan2pdf:1265 msgid "Simplex" msgstr "Jednostrano" #: bin/gscan2pdf:1259 bin/gscan2pdf:1266 msgid "Duplex" msgstr "Dvostrano" #: bin/gscan2pdf:1301 bin/gscan2pdf:1306 msgid "Pick crashed session to restore" msgstr "" #: bin/gscan2pdf:1308 bin/gscan2pdf:2609 msgid "Session" msgstr "Sesija" #: bin/gscan2pdf:1338 #, perl-format msgid "" "Warning: unable to use %s for temporary storage. Defaulting to %s instead." msgstr "" #: bin/gscan2pdf:1441 msgid "GOCR" msgstr "GOCR" #: bin/gscan2pdf:1441 msgid "Process image with GOCR." msgstr "" #: bin/gscan2pdf:1445 msgid "Tesseract" msgstr "" #: bin/gscan2pdf:1446 msgid "Process image with Tesseract." msgstr "" #: bin/gscan2pdf:1450 msgid "Ocropus" msgstr "" #: bin/gscan2pdf:1450 msgid "Process image with Ocropus." msgstr "" #: bin/gscan2pdf:1454 msgid "Cuneiform" msgstr "" #: bin/gscan2pdf:1455 msgid "Process image with Cuneiform." msgstr "" #: bin/gscan2pdf:1461 msgid "Save image and Save as PDF both require imagemagick\n" msgstr "" #: bin/gscan2pdf:1465 msgid "Save image requires libtiff\n" msgstr "" #: bin/gscan2pdf:1469 msgid "Save as DjVu requires djvulibre-bin\n" msgstr "" #: bin/gscan2pdf:1473 msgid "Email as PDF requires xdg-email\n" msgstr "" #: bin/gscan2pdf:1518 msgid "The rotating options and unpaper support require perlmagick\n" msgstr "" #: bin/gscan2pdf:1524 msgid "unpaper missing\n" msgstr "" #: bin/gscan2pdf:1534 msgid "OCR requires gocr, tesseract, ocropus, or cuneiform\n" msgstr "" #: bin/gscan2pdf:1539 msgid "Warning: missing packages" msgstr "" #: bin/gscan2pdf:1544 msgid "Don't show this message again" msgstr "" #: bin/gscan2pdf:1753 msgid "" "Some pages have not been saved.\n" "Do you really want to clear all pages?" msgstr "" #: bin/gscan2pdf:1828 bin/gscan2pdf:1858 #, perl-format msgid "Process %i of %i (%s)" msgstr "" #: bin/gscan2pdf:1867 #, perl-format msgid "Process %i of %i" msgstr "" #: bin/gscan2pdf:1895 msgid "Open image" msgstr "" #: bin/gscan2pdf:1903 bin/gscan2pdf:2797 bin/gscan2pdf:3113 msgid "Image files" msgstr "" #: bin/gscan2pdf:1940 msgid "Pages to extract" msgstr "" #: bin/gscan2pdf:1943 bin/gscan2pdf:2117 bin/gscan2pdf:2586 bin/gscan2pdf:3353 #: bin/gscan2pdf:3494 bin/gscan2pdf:4104 bin/gscan2pdf:4514 bin/gscan2pdf:5825 #: bin/gscan2pdf:6409 bin/gscan2pdf:6495 bin/gscan2pdf:6565 bin/gscan2pdf:6737 #: bin/gscan2pdf:7011 bin/gscan2pdf:7274 bin/gscan2pdf:7757 bin/gscan2pdf:8123 #: lib/Gscan2pdf/Dialog.pm:56 lib/Gscan2pdf/Dialog/Renumber.pm:80 #: lib/Gscan2pdf/Scanner/Dialog.pm:201 t/05_Dialog.t:28 msgid "vbox" msgstr "" #: bin/gscan2pdf:1946 msgid "First page to extract" msgstr "" #: bin/gscan2pdf:1953 msgid "Last page to extract" msgstr "" #: bin/gscan2pdf:2042 lib/Gscan2pdf/Dialog/Renumber.pm:83 msgid "Page Range" msgstr "" #: bin/gscan2pdf:2092 msgid "Metadata" msgstr "Meta podaci" #: bin/gscan2pdf:2101 msgid "Date" msgstr "Datum" #: bin/gscan2pdf:2114 msgid "Select Date" msgstr "Odaberi datum" #: bin/gscan2pdf:2136 msgid "Today" msgstr "Danas" #: bin/gscan2pdf:2150 msgid "Year-Month-Day" msgstr "God-Mjes-Dan" #: bin/gscan2pdf:2156 msgid "Document author" msgstr "Autor dokumenta" #: bin/gscan2pdf:2165 msgid "Title" msgstr "Naslov" #: bin/gscan2pdf:2174 msgid "Subject" msgstr "Predmet" #: bin/gscan2pdf:2183 msgid "Keywords" msgstr "Ključne riječi" #: bin/gscan2pdf:2245 msgid "Editing text" msgstr "" #: bin/gscan2pdf:2252 bin/gscan2pdf:2258 bin/gscan2pdf:2332 msgid "text" msgstr "" #: bin/gscan2pdf:2352 msgid "PDF filename" msgstr "" #: bin/gscan2pdf:2381 msgid "PDF files" msgstr "" #: bin/gscan2pdf:2405 bin/gscan2pdf:2823 bin/gscan2pdf:2880 bin/gscan2pdf:2976 #: bin/gscan2pdf:3035 bin/gscan2pdf:3087 bin/gscan2pdf:3275 #, perl-format msgid "File %s is read-only" msgstr "" #: bin/gscan2pdf:2482 msgid "JPEG Quality" msgstr "Kvaliteta JPEG" #: bin/gscan2pdf:2496 msgid "Downsample to" msgstr "" #: bin/gscan2pdf:2501 msgid "PPI" msgstr "" #: bin/gscan2pdf:2520 msgid "Automatic" msgstr "Automatski" #: bin/gscan2pdf:2521 msgid "Let gscan2pdf which type of compression to use." msgstr "" #: bin/gscan2pdf:2524 bin/gscan2pdf:2616 msgid "LZW" msgstr "" #: bin/gscan2pdf:2525 bin/gscan2pdf:2617 msgid "Compress output with Lempel-Ziv & Welch encoding." msgstr "" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Zip" msgstr "Zip" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Compress output with deflate encoding." msgstr "" #: bin/gscan2pdf:2529 bin/gscan2pdf:2624 msgid "Packbits" msgstr "" #: bin/gscan2pdf:2530 bin/gscan2pdf:2625 msgid "Compress output with Packbits encoding." msgstr "" #: bin/gscan2pdf:2536 bin/gscan2pdf:2604 msgid "PNG" msgstr "PNG" #: bin/gscan2pdf:2536 msgid "Compress output with PNG encoding." msgstr "" #: bin/gscan2pdf:2537 bin/gscan2pdf:2622 msgid "Compress output with JPEG encoding." msgstr "" #: bin/gscan2pdf:2540 bin/gscan2pdf:2637 msgid "Use no compression algorithm on output." msgstr "" #: bin/gscan2pdf:2594 msgid "Image type" msgstr "Tip slike" #: bin/gscan2pdf:2598 msgid "PDF" msgstr "PDF" #: bin/gscan2pdf:2598 msgid "Portable Document Format" msgstr "Portable Document Format" #: bin/gscan2pdf:2599 msgid "GIF" msgstr "GIF" #: bin/gscan2pdf:2599 msgid "CompuServe graphics interchange format" msgstr "" #: bin/gscan2pdf:2602 msgid "Joint Photographic Experts Group JFIF format" msgstr "" #: bin/gscan2pdf:2604 msgid "Portable Network Graphics" msgstr "Portable Network Graphics" #: bin/gscan2pdf:2605 msgid "PNM" msgstr "PNM" #: bin/gscan2pdf:2605 msgid "Portable anymap" msgstr "" #: bin/gscan2pdf:2606 msgid "PS" msgstr "PS" #: bin/gscan2pdf:2606 msgid "Postscript" msgstr "" #: bin/gscan2pdf:2607 msgid "TIFF" msgstr "TIFF" #: bin/gscan2pdf:2607 msgid "Tagged Image File Format" msgstr "Označeni format slike (TIFF)" #: bin/gscan2pdf:2608 msgid "Text" msgstr "Tekst" #: bin/gscan2pdf:2608 msgid "Plain text" msgstr "Čisti (obični) tekst" #: bin/gscan2pdf:2609 msgid "gscan2pdf session file" msgstr "" #: bin/gscan2pdf:2611 msgid "DjVu" msgstr "" #: bin/gscan2pdf:2611 msgid "Deja Vu" msgstr "" #: bin/gscan2pdf:2628 msgid "G3" msgstr "" #: bin/gscan2pdf:2629 msgid "Compress output with CCITT Group 3 encoding." msgstr "" #: bin/gscan2pdf:2632 msgid "G4" msgstr "" #: bin/gscan2pdf:2633 msgid "Compress output with CCITT Group 4 encoding." msgstr "" #: bin/gscan2pdf:2649 msgid "tiff" msgstr "" #: bin/gscan2pdf:2681 msgid "Font for non-ASCII text" msgstr "" #: bin/gscan2pdf:2790 msgid "TIFF filename" msgstr "" #: bin/gscan2pdf:2848 msgid "Text filename" msgstr "" #: bin/gscan2pdf:2856 msgid "Text files" msgstr "" #: bin/gscan2pdf:2944 msgid "PS filename" msgstr "" #: bin/gscan2pdf:2951 msgid "Postscript files" msgstr "" #: bin/gscan2pdf:3003 msgid "gscan2pdf session filename" msgstr "" #: bin/gscan2pdf:3010 msgid "gscan2pdf session files" msgstr "" #: bin/gscan2pdf:3093 #, perl-format msgid "" "File %s exists.\n" "Really overwrite?" msgstr "" #: bin/gscan2pdf:3106 msgid "Image filename" msgstr "" #: bin/gscan2pdf:3245 msgid "DjVu filename" msgstr "" #: bin/gscan2pdf:3252 msgid "DjVu files" msgstr "" #: bin/gscan2pdf:3349 msgid "Email as PDF" msgstr "" #: bin/gscan2pdf:3454 msgid "Error creating email" msgstr "" #: bin/gscan2pdf:3490 bin/gscan2pdf:4313 msgid "Scan Document" msgstr "Skeniraj dokument" #: bin/gscan2pdf:3507 lib/Gscan2pdf/Scanner/Dialog.pm:248 msgid "Page Options" msgstr "Opcije stranice" #: bin/gscan2pdf:3510 lib/Gscan2pdf/Scanner/Dialog.pm:251 msgid "# Pages" msgstr "" #: bin/gscan2pdf:3519 lib/Gscan2pdf/PageRange.pm:34 #: lib/Gscan2pdf/Scanner/Dialog.pm:261 msgid "All" msgstr "Sve" #: bin/gscan2pdf:3520 lib/Gscan2pdf/Scanner/Dialog.pm:262 msgid "Scan all pages" msgstr "" #: bin/gscan2pdf:3532 bin/gscan2pdf:3537 lib/Gscan2pdf/Scanner/Dialog.pm:274 #: lib/Gscan2pdf/Scanner/Dialog.pm:279 msgid "Set number of pages to scan" msgstr "" #: bin/gscan2pdf:3550 lib/Gscan2pdf/Scanner/Dialog.pm:308 msgid "Extended page numbering" msgstr "" #: bin/gscan2pdf:3554 lib/Gscan2pdf/Scanner/Dialog.pm:312 msgid "Page number" msgstr "Broj stranice" #: bin/gscan2pdf:3563 lib/Gscan2pdf/Dialog/Renumber.pm:111 #: lib/Gscan2pdf/Scanner/Dialog.pm:321 msgid "Start" msgstr "Start" #: bin/gscan2pdf:3572 lib/Gscan2pdf/Dialog/Renumber.pm:132 #: lib/Gscan2pdf/Scanner/Dialog.pm:340 msgid "Increment" msgstr "Povećaj" #: bin/gscan2pdf:3604 lib/Gscan2pdf/Scanner/Dialog.pm:372 msgid "Source document" msgstr "Izvorni dokument" #: bin/gscan2pdf:3611 lib/Gscan2pdf/Scanner/Dialog.pm:379 msgid "Single sided" msgstr "" #: bin/gscan2pdf:3612 lib/Gscan2pdf/Scanner/Dialog.pm:380 msgid "Source document is single-sided" msgstr "" #: bin/gscan2pdf:3622 lib/Gscan2pdf/Scanner/Dialog.pm:390 msgid "Double sided" msgstr "" #: bin/gscan2pdf:3623 lib/Gscan2pdf/Scanner/Dialog.pm:391 msgid "Source document is double-sided" msgstr "" #: bin/gscan2pdf:3629 lib/Gscan2pdf/Scanner/Dialog.pm:397 msgid "Side to scan" msgstr "" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Facing" msgstr "" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Reverse" msgstr "Obrnuti redoslijed" #: bin/gscan2pdf:3655 lib/Gscan2pdf/Scanner/Dialog.pm:418 msgid "Sets which side of a double-sided document is scanned" msgstr "" #: bin/gscan2pdf:3719 msgid "Scan Options" msgstr "" #: bin/gscan2pdf:3722 msgid "Device-dependent options" msgstr "" #: bin/gscan2pdf:3729 lib/Gscan2pdf/Scanner/Dialog.pm:458 msgid "Scan profiles" msgstr "Profili skeniranja" #: bin/gscan2pdf:3778 bin/gscan2pdf:3784 lib/Gscan2pdf/Scanner/Dialog.pm:479 #: lib/Gscan2pdf/Scanner/Dialog.pm:485 msgid "Name of scan profile" msgstr "" #: bin/gscan2pdf:3828 lib/Gscan2pdf/Scanner/Dialog.pm:518 msgid "Scan" msgstr "Skeniraj" #: bin/gscan2pdf:3866 msgid "Must scan facing pages first" msgstr "" #: bin/gscan2pdf:3977 msgid "Post-processing" msgstr "" #: bin/gscan2pdf:3986 bin/gscan2pdf:4008 msgid "Rotate" msgstr "Okreni" #: bin/gscan2pdf:3987 bin/gscan2pdf:4009 msgid "Rotate image after scanning" msgstr "" #: bin/gscan2pdf:3990 msgid "Both sides" msgstr "" #: bin/gscan2pdf:3990 msgid "Both sides." msgstr "" #: bin/gscan2pdf:3991 msgid "Facing side" msgstr "" #: bin/gscan2pdf:3991 msgid "Facing side." msgstr "" #: bin/gscan2pdf:3992 msgid "Reverse side" msgstr "" #: bin/gscan2pdf:3992 msgid "Reverse side." msgstr "" #: bin/gscan2pdf:3995 bin/gscan2pdf:4013 msgid "Select side to rotate" msgstr "" #: bin/gscan2pdf:3998 msgid "90" msgstr "90" #: bin/gscan2pdf:3998 msgid "Rotate image 90 degrees clockwise." msgstr "" #: bin/gscan2pdf:3999 msgid "180" msgstr "180" #: bin/gscan2pdf:3999 msgid "Rotate image 180 degrees clockwise." msgstr "" #: bin/gscan2pdf:4000 msgid "270" msgstr "270" #: bin/gscan2pdf:4000 msgid "Rotate image 90 degrees anticlockwise." msgstr "" #: bin/gscan2pdf:4003 bin/gscan2pdf:4016 msgid "Select direction of rotation" msgstr "Odaberi smjer rotacije" #: bin/gscan2pdf:4083 msgid "Clean up images" msgstr "" #: bin/gscan2pdf:4094 msgid "Options" msgstr "Postavke" #: bin/gscan2pdf:4095 msgid "Set unpaper options" msgstr "" #: bin/gscan2pdf:4101 msgid "unpaper options" msgstr "" #: bin/gscan2pdf:4136 bin/gscan2pdf:4137 msgid "OCR scanned pages" msgstr "" #: bin/gscan2pdf:4151 msgid "Select OCR engine" msgstr "" #: bin/gscan2pdf:4210 lib/Gscan2pdf/Scanner/Dialog.pm:634 msgid "Fetching list of devices" msgstr "" #: bin/gscan2pdf:4225 lib/Gscan2pdf/Scanner/Dialog.pm:654 msgid "No devices found" msgstr "" #: bin/gscan2pdf:4367 bin/gscan2pdf:4732 bin/gscan2pdf:4777 bin/gscan2pdf:5214 #: lib/Gscan2pdf/Scanner/Dialog.pm:343 lib/Gscan2pdf/Scanner/Dialog.pm:348 #: t/061_Scanner_Dialog.t:38 t/061_Scanner_Dialog.t:95 msgid "page-number-increment" msgstr "" #: bin/gscan2pdf:4374 bin/gscan2pdf:4729 bin/gscan2pdf:4730 bin/gscan2pdf:4776 #: bin/gscan2pdf:5213 lib/Gscan2pdf/Scanner/Dialog.pm:361 #: t/061_Scanner_Dialog.t:37 msgid "page-number-start" msgstr "" #: bin/gscan2pdf:4663 lib/Gscan2pdf/Scanner/Dialog.pm:210 msgid "Device" msgstr "Uređaj" #: bin/gscan2pdf:4671 lib/Gscan2pdf/Scanner/Dialog.pm:213 msgid "Rescan for devices" msgstr "" #: bin/gscan2pdf:4694 lib/Gscan2pdf/Scanner/Dialog.pm:237 msgid "Sets the device to be used for the scan" msgstr "Odaberi uređaj za skeniranje" #: bin/gscan2pdf:4780 lib/Gscan2pdf/Scanner/Dialog.pm:300 #: t/061_Scanner_Dialog.t:35 msgid "num-pages" msgstr "" #: bin/gscan2pdf:4821 msgid "Scanning" msgstr "Skeniranje" #: bin/gscan2pdf:4974 msgid "Unable to load image" msgstr "Nije moguće učitati sliku" #: bin/gscan2pdf:5004 msgid "print-pages" msgstr "" #: bin/gscan2pdf:5008 msgid "page-ranges" msgstr "" #: bin/gscan2pdf:5405 msgid "Patches gratefully received from:" msgstr "" #: bin/gscan2pdf:5407 msgid "To aid the scan-to-PDF process" msgstr "" #: bin/gscan2pdf:5408 msgid "Copyright 2006--2012 Jeffrey Ratcliffe" msgstr "" #: bin/gscan2pdf:5492 bin/gscan2pdf:6028 msgid "The options cache seems to be empty. Reload device-dependent options?" msgstr "" #: bin/gscan2pdf:5519 bin/gscan2pdf:6054 msgid "Updating options" msgstr "" #: bin/gscan2pdf:5571 msgid "Paper size" msgstr "Veličina papira" #: bin/gscan2pdf:5572 bin/gscan2pdf:5672 bin/gscan2pdf:5840 bin/gscan2pdf:6769 msgid "Width" msgstr "Širina" #: bin/gscan2pdf:5573 bin/gscan2pdf:5678 bin/gscan2pdf:5841 bin/gscan2pdf:6780 msgid "Height" msgstr "Visina" #: bin/gscan2pdf:5574 bin/gscan2pdf:5684 bin/gscan2pdf:5842 #: lib/Gscan2pdf/Unpaper.pm:124 lib/Gscan2pdf/Unpaper.pm:152 msgid "Left" msgstr "Lijevo" #: bin/gscan2pdf:5575 bin/gscan2pdf:5690 bin/gscan2pdf:5843 #: lib/Gscan2pdf/Unpaper.pm:129 lib/Gscan2pdf/Unpaper.pm:157 msgid "Top" msgstr "Vrh" #: bin/gscan2pdf:5589 bin/gscan2pdf:5703 bin/gscan2pdf:6232 msgid "Manual" msgstr "" #: bin/gscan2pdf:5590 bin/gscan2pdf:5700 msgid "Edit" msgstr "Uredi" #: bin/gscan2pdf:5591 msgid "Selects or edits the paper size" msgstr "" #: bin/gscan2pdf:5673 msgid "Width of scan area" msgstr "" #: bin/gscan2pdf:5679 msgid "Height of scan area" msgstr "" #: bin/gscan2pdf:5685 msgid "Top-left x position of scan area" msgstr "" #: bin/gscan2pdf:5691 msgid "Top-left y position of scan area" msgstr "" #: bin/gscan2pdf:5822 msgid "Edit paper size" msgstr "" #: bin/gscan2pdf:5839 msgid "Name" msgstr "Ime" #: bin/gscan2pdf:5893 msgid "Cannot delete all paper sizes" msgstr "" #: bin/gscan2pdf:5955 msgid "" "The following paper sizes are too big to be scanned by the selected device:" msgstr "" #: bin/gscan2pdf:6419 bin/gscan2pdf:6605 msgid "%" msgstr "%" #: bin/gscan2pdf:6492 msgid "Negate" msgstr "" #: bin/gscan2pdf:6562 msgid "Unsharp mask" msgstr "" #: bin/gscan2pdf:6573 msgid "Radius" msgstr "Polumjer" #: bin/gscan2pdf:6575 bin/gscan2pdf:6592 bin/gscan2pdf:6747 bin/gscan2pdf:6759 #: bin/gscan2pdf:6771 bin/gscan2pdf:6782 msgid "pixels" msgstr "pikseli" #: bin/gscan2pdf:6582 msgid "" "The radius of the Gaussian, in pixels, not counting the center pixel (0 = " "automatic)." msgstr "" #: bin/gscan2pdf:6590 msgid "Sigma" msgstr "" #: bin/gscan2pdf:6597 msgid "The standard deviation of the Gaussian." msgstr "" #: bin/gscan2pdf:6603 msgid "Amount" msgstr "Količina" #: bin/gscan2pdf:6612 msgid "" "The percentage of the difference between the original and the blur image " "that is added back into the original." msgstr "" #: bin/gscan2pdf:6627 msgid "" "The threshold, as a fraction of QuantumRange, needed to apply the difference " "amount." msgstr "" #: bin/gscan2pdf:6733 msgid "Crop" msgstr "Izreži" #: bin/gscan2pdf:6745 msgid "x" msgstr "" #: bin/gscan2pdf:6751 msgid "The x-position of the left hand edge of the crop." msgstr "" #: bin/gscan2pdf:6757 msgid "y" msgstr "" #: bin/gscan2pdf:6763 msgid "The y-position of the top edge of the crop." msgstr "" #: bin/gscan2pdf:6774 msgid "The width of the crop." msgstr "" #: bin/gscan2pdf:6785 msgid "The height of the crop." msgstr "" #: bin/gscan2pdf:6906 msgid "label" msgstr "" #: bin/gscan2pdf:7007 msgid "unpaper" msgstr "" #: bin/gscan2pdf:7216 bin/gscan2pdf:7244 msgid "Language to recognise" msgstr "" #: bin/gscan2pdf:7227 msgid "English" msgstr "Engleski" #: bin/gscan2pdf:7270 msgid "OCR" msgstr "OCR" #: bin/gscan2pdf:7279 msgid "OCR Engine" msgstr "" #: bin/gscan2pdf:7323 msgid "Start OCR" msgstr "" #: bin/gscan2pdf:7339 msgid "No page selected" msgstr "" #: bin/gscan2pdf:7374 msgid "" "Some pages have not been saved.\n" "Do you really want to quit?" msgstr "" "Neke stranice nisu sačuvane.\n" "Da li želite izaći iz programa?" #: bin/gscan2pdf:7432 #, perl-format msgid "" "The help viewer requires module Gtk2::Ex::PodViewer\n" "Alternatively, try: %s %s\n" "\n" msgstr "" #: bin/gscan2pdf:7698 msgid "This operation cannot be undone. Are you sure?" msgstr "" #: bin/gscan2pdf:7753 msgid "Preferences" msgstr "" #: bin/gscan2pdf:7762 msgid "Frontend" msgstr "" #: bin/gscan2pdf:7766 msgid "libsane-perl" msgstr "" #: bin/gscan2pdf:7767 msgid "Scan using the perl bindings for SANE." msgstr "" #: bin/gscan2pdf:7770 msgid "scanimage" msgstr "" #: bin/gscan2pdf:7771 msgid "Scan using the scanimage frontend." msgstr "" #: bin/gscan2pdf:7775 msgid "scanimage-perl" msgstr "" #: bin/gscan2pdf:7776 msgid "Scan using the scanimage-perl frontend." msgstr "" #: bin/gscan2pdf:7779 msgid "scanadf-perl" msgstr "" #: bin/gscan2pdf:7780 msgid "Scan using the scanadf-perl frontend." msgstr "" #: bin/gscan2pdf:7785 msgid "scanadf" msgstr "" #: bin/gscan2pdf:7786 msgid "Scan using the scanadf frontend." msgstr "" #: bin/gscan2pdf:7791 msgid "Cycle SANE handle after scan" msgstr "" #: bin/gscan2pdf:7814 msgid "Default filename for PDFs" msgstr "" #: bin/gscan2pdf:7820 msgid "" "%a\t author\n" "%t\t title\n" "%y\t document's year\n" "%Y\t today's year\n" "%m\t document's month\n" "%M\t today's month\n" "%d\t document's day\n" "%D\t today's day" msgstr "" #: bin/gscan2pdf:7830 msgid "Scan command prefix" msgstr "" #: bin/gscan2pdf:7839 msgid "Restore window settings on startup" msgstr "" #: bin/gscan2pdf:7845 msgid "Cache device-dependent options" msgstr "" #: bin/gscan2pdf:7851 msgid "Clear device-dependent options cache" msgstr "" #: bin/gscan2pdf:7862 msgid "Temporary directory" msgstr "" #: bin/gscan2pdf:7867 msgid "Browse" msgstr "" #: bin/gscan2pdf:7871 msgid "Select temporary directory" msgstr "" #: bin/gscan2pdf:7888 msgid "Blank threshold" msgstr "" #: bin/gscan2pdf:7893 msgid "Threshold used for selecting blank pages" msgstr "" #: bin/gscan2pdf:7899 msgid "Dark threshold" msgstr "" #: bin/gscan2pdf:7904 msgid "Threshold used for selecting dark pages" msgstr "" #: bin/gscan2pdf:7910 msgid "OCR output" msgstr "" #: bin/gscan2pdf:7915 msgid "Replace" msgstr "" #: bin/gscan2pdf:7917 msgid "" "Replace the contents of the text buffer with that from the OCR output." msgstr "" #: bin/gscan2pdf:7920 msgid "Prepend" msgstr "" #: bin/gscan2pdf:7921 msgid "Prepend the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7924 msgid "Append" msgstr "" #: bin/gscan2pdf:7925 msgid "Append the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7933 msgid "User-defined tools" msgstr "" #: bin/gscan2pdf:7954 msgid "View files on saving" msgstr "" #: bin/gscan2pdf:8000 msgid "" "You will have to restart gscanp2df for changes to the temporary directory to " "take effect." msgstr "" #: bin/gscan2pdf:8092 msgid "" "Use %i and %o for the input and output filenames respectively, or a single " "%i if the image is to be modified in-place.\n" "\n" "The other variable available is:\n" "\n" "%r resolution" msgstr "" #: bin/gscan2pdf:8119 msgid "Properties" msgstr "Svojstva" #: lib/Gscan2pdf/Dialog.pm:63 lib/Gscan2pdf/Dialog.pm:79 t/05_Dialog.t:25 msgid "hide-on-delete" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:78 lib/Gscan2pdf/Dialog/Renumber.pm:162 msgid "Renumber" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:98 lib/Gscan2pdf/Dialog/Renumber.pm:207 #: lib/Gscan2pdf/Dialog/Renumber.pm:244 msgid "range" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:102 msgid "Page numbering" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:105 lib/Gscan2pdf/Scanner/Dialog.pm:254 msgid "border_width" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:126 lib/Gscan2pdf/Dialog/Renumber.pm:192 #: lib/Gscan2pdf/Dialog/Renumber.pm:242 t/07_Dialog_Renumber.t:33 #: t/07_Dialog_Renumber.t:45 t/07_Dialog_Renumber.t:59 #: t/07_Dialog_Renumber.t:66 msgid "start" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:147 lib/Gscan2pdf/Dialog/Renumber.pm:193 #: lib/Gscan2pdf/Dialog/Renumber.pm:243 t/07_Dialog_Renumber.t:34 #: t/07_Dialog_Renumber.t:46 t/07_Dialog_Renumber.t:60 #: t/07_Dialog_Renumber.t:67 msgid "increment" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:205 lib/Gscan2pdf/Dialog/Renumber.pm:241 msgid "document" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:295 msgid "" "The current settings would result in duplicate page numbers. Please select " "new start and increment values." msgstr "" #: lib/Gscan2pdf/Document.pm:83 msgid "Thumbnails" msgstr "" #: lib/Gscan2pdf/Document.pm:1502 msgid "Unknown DjVu file structure. Please contact the author." msgstr "" #: lib/Gscan2pdf/Document.pm:1558 #, perl-format msgid "%s is not a recognised image type" msgstr "" #: lib/Gscan2pdf/Document.pm:1580 lib/Gscan2pdf/Document.pm:1637 #, perl-format msgid "Importing page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:1613 msgid "Error extracting images from PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1692 msgid "Setting up PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1703 #, perl-format msgid "Saving page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:1814 lib/Gscan2pdf/Document.pm:2136 #, perl-format msgid "Error compressing image: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1919 #, perl-format msgid "Error creating PDF image object: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1930 #, perl-format msgid "Error embedding file image in %s format to PDF: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1939 msgid "Closing PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1955 #, perl-format msgid "Writing page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:2006 msgid "Error writing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2025 lib/Gscan2pdf/Document.pm:2227 #, perl-format msgid "Can't open file: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:2050 msgid "Error adding text layer to DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2056 msgid "Closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2063 msgid "Error closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2078 #, perl-format msgid "Converting image %i of %i to TIFF" msgstr "" #: lib/Gscan2pdf/Document.pm:2105 msgid "Error writing TIFF" msgstr "" #: lib/Gscan2pdf/Document.pm:2121 msgid "Concatenating TIFFs" msgstr "" #: lib/Gscan2pdf/Document.pm:2140 msgid "Converting to PS" msgstr "" #: lib/Gscan2pdf/Document.pm:2200 lib/Gscan2pdf/Document.pm:2215 msgid "Error saving image" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:158 #, perl-format msgid "Scanning %i pages..." msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:163 #, perl-format msgid "Scanning page %i..." msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:188 lib/Gscan2pdf/Frontend/CLI.pm:296 msgid "Scanner warming up" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:195 msgid "Document feeder out of documents" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:212 lib/Gscan2pdf/Frontend/CLI.pm:325 msgid "Device busy" msgstr "Uređaj je zauzet" #: lib/Gscan2pdf/Frontend/CLI.pm:218 lib/Gscan2pdf/Frontend/CLI.pm:330 msgid "Operation cancelled" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:223 lib/Gscan2pdf/Frontend/CLI.pm:336 msgid "Unknown message: " msgstr "" #: lib/Gscan2pdf/Page.pm:68 lib/Gscan2pdf/Page.pm:73 #, perl-format msgid "Error importing image %s: %s" msgstr "" #: lib/Gscan2pdf/PageRange.pm:33 msgid "Selected" msgstr "Odabrano" #: lib/Gscan2pdf/PageRange.pm:58 msgid "active" msgstr "aktivno" #: lib/Gscan2pdf/Scanner/Dialog.pm:218 t/061_Scanner_Dialog.t:33 #: t/061_Scanner_Dialog.t:59 msgid "device-list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:496 t/061_Scanner_Dialog.t:139 #: t/061_Scanner_Dialog.t:174 t/062_Scanner_Dialog.t:50 #: t/062_Scanner_Dialog.t:75 msgid "current-scan-options" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:567 msgid "logger" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:650 t/05_Dialog.t:24 msgid "transient-for" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:716 msgid "device_list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:749 t/061_Scanner_Dialog.t:32 msgid "device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:751 msgid "Opening device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:760 msgid "Retrieving options" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:41 msgid "Layout" msgstr "Prikaz" #: lib/Gscan2pdf/Unpaper.pm:44 msgid "Single" msgstr "Jednostruko" #: lib/Gscan2pdf/Unpaper.pm:46 msgid "One page per sheet, oriented upwards without rotation." msgstr "Jedna stranica po listu, orijentacija naviše bez rotacije" #: lib/Gscan2pdf/Unpaper.pm:49 msgid "Double" msgstr "Dvostruko" #: lib/Gscan2pdf/Unpaper.pm:51 msgid "" "Two pages per sheet, landscape orientation (one page on the left half, one " "page on the right half)." msgstr "" "Dvije stranice po listu , landscape orijentacija(jedna stranica na lijevoj " "polovici, jedna stranica na drugoj polovici)." #: lib/Gscan2pdf/Unpaper.pm:59 msgid "# Output pages" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:60 msgid "Number of pages to output." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:68 msgid "No deskew" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:69 msgid "Disable deskewing." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:74 msgid "No mask scan" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:75 msgid "Disable mask detection." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:80 msgid "No black filter" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:81 msgid "Disable black area scan." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:86 msgid "No gray filter" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:87 msgid "Disable gray area scan." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:92 msgid "No noise filter" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:93 msgid "Disable noise filter." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:98 msgid "No blur filter" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:99 msgid "Disable blur filter." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:104 msgid "No border scan" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:105 msgid "Disable border scanning." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:110 msgid "No border align" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:112 msgid "Disable aligning of the area detected by border scanning." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:117 msgid "Deskew to edge" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:119 msgid "" "Edges from which to scan for rotation. Each edge of a mask can be used to " "detect the mask's rotation. If multiple edges are specified, the average " "value will be used, unless the statistical deviation exceeds --deskew-scan-" "deviation." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:125 msgid "Use 'left' for scanning from the left edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:130 msgid "Use 'top' for scanning from the top edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:134 lib/Gscan2pdf/Unpaper.pm:162 msgid "Right" msgstr "Desno" #: lib/Gscan2pdf/Unpaper.pm:135 msgid "Use 'right' for scanning from the right edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:139 lib/Gscan2pdf/Unpaper.pm:167 msgid "Bottom" msgstr "Dno" #: lib/Gscan2pdf/Unpaper.pm:140 msgid "Use 'bottom' for scanning from the bottom." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:147 msgid "Align to edge" msgstr "Poravnaj sa rubom" #: lib/Gscan2pdf/Unpaper.pm:148 msgid "Edge to which to align the page." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:153 msgid "Use 'left' to align to the left edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:158 msgid "Use 'top' to align to the top edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:163 msgid "Use 'right' to align to the right edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:168 msgid "Use 'bottom' to align to the bottom." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:174 msgid "Border margin" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:178 msgid "Vertical margin" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:180 msgid "" "Vertical distance to keep from the sheet edge when aligning a border area." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:189 msgid "Horizontal margin" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:191 msgid "" "Horizontal distance to keep from the sheet edge when aligning a border area." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:202 msgid "White threshold" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:204 msgid "Brightness ratio above which a pixel is considered white." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:212 msgid "Black threshold" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:214 msgid "" "Brightness ratio below which a pixel is considered black (non-gray). This is " "used by the gray-filter. This value is also used when converting a grayscale " "image to black-and-white mode." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:250 msgid "Deskew" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:280 msgid "Border" msgstr "Rub" #: lib/Gscan2pdf/Unpaper.pm:337 msgid "Filters" msgstr "Filteri" #: t/05_Dialog.t:23 msgid "title" msgstr "" #: t/05_Dialog.t:26 t/05_Dialog.t:31 t/05_Dialog.t:32 t/05_Dialog.t:38 #: t/05_Dialog.t:39 msgid "border-width" msgstr "" #: t/061_Scanner_Dialog.t:34 msgid "dir" msgstr "" #: t/061_Scanner_Dialog.t:36 msgid "max-pages" msgstr "" #: t/061_Scanner_Dialog.t:39 msgid "side-to-scan" msgstr "" #: t/061_Scanner_Dialog.t:40 t/061_Scanner_Dialog.t:185 msgid "available-scan-options" msgstr "" #: t/061_Scanner_Dialog.t:171 t/062_Scanner_Dialog.t:73 msgid "profile" msgstr "" gscan2pdf-1.2.3/po/gscan2pdf-oc.po0000644000175000017500000011157212243440507015226 0ustar jeffjeff# Occitan (post 1500) translation for gscan2pdf # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the gscan2pdf package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: gscan2pdf\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-10-25 08:12+0200\n" "PO-Revision-Date: 2012-08-13 09:03+0000\n" "Last-Translator: Cédric VALMARY (Tot en òc) \n" "Language-Team: Occitan (post 1500) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-19 09:22+0000\n" "X-Generator: Launchpad (build 16831)\n" #: bin/gscan2pdf:157 msgid "Error displaying help" msgstr "" #: bin/gscan2pdf:201 msgid "" "Error: unable to load settings.\n" "Backing up settings\n" "Reverting to defaults" msgstr "" #: bin/gscan2pdf:244 msgid "A4" msgstr "A4" #: bin/gscan2pdf:250 msgid "US Letter" msgstr "Letra US" #: bin/gscan2pdf:256 msgid "US Legal" msgstr "Legal US" #: bin/gscan2pdf:323 bin/gscan2pdf:344 #, perl-format msgid "Cannot read file: %s" msgstr "" #: bin/gscan2pdf:451 msgid "_File" msgstr "_Fichièr" #: bin/gscan2pdf:454 msgid "_New" msgstr "_Novèl" #: bin/gscan2pdf:455 msgid "Clears all pages" msgstr "Escafa totas las paginas" #: bin/gscan2pdf:459 msgid "_Open" msgstr "_Dobrir" #: bin/gscan2pdf:460 msgid "Open image file(s)" msgstr "" #: bin/gscan2pdf:465 msgid "S_can" msgstr "N_umarizar" #: bin/gscan2pdf:467 msgid "Scan document" msgstr "Numerizar lo document" #: bin/gscan2pdf:471 bin/gscan2pdf:472 bin/gscan2pdf:2582 msgid "Save" msgstr "Salvar" #: bin/gscan2pdf:476 msgid "_Email as PDF" msgstr "_Email coma PDF" #: bin/gscan2pdf:477 msgid "Attach as PDF to a new email" msgstr "" #: bin/gscan2pdf:480 msgid "_Print" msgstr "" #: bin/gscan2pdf:481 msgid "Print" msgstr "" #: bin/gscan2pdf:485 msgid "_Compress temporary files" msgstr "_Compressar los fichièrs temporaris" #: bin/gscan2pdf:486 msgid "Compress temporary files" msgstr "Compressar los fichièrs temporaris" #: bin/gscan2pdf:490 msgid "_Quit" msgstr "_Quitar" #: bin/gscan2pdf:491 msgid "Quit" msgstr "Quitar" #: bin/gscan2pdf:495 msgid "_Edit" msgstr "_Editar" #: bin/gscan2pdf:497 msgid "_Undo" msgstr "An_ullar" #: bin/gscan2pdf:497 msgid "Undo" msgstr "Anullar" #: bin/gscan2pdf:501 msgid "_Redo" msgstr "_Restablir" #: bin/gscan2pdf:502 msgid "Redo" msgstr "Restablir" #: bin/gscan2pdf:506 msgid "Cu_t" msgstr "_Talhar" #: bin/gscan2pdf:507 msgid "Cut selection" msgstr "Talha la seleccion" #: bin/gscan2pdf:511 msgid "_Copy" msgstr "_Copiar" #: bin/gscan2pdf:512 msgid "Copy selection" msgstr "Còpia la seleccion" #: bin/gscan2pdf:516 msgid "_Paste" msgstr "Em_pegar" #: bin/gscan2pdf:517 msgid "Paste selection" msgstr "Empegar la seleccion" #: bin/gscan2pdf:521 msgid "_Delete" msgstr "_Suprimir" #: bin/gscan2pdf:522 msgid "Delete selected pages" msgstr "" #: bin/gscan2pdf:526 msgid "_Renumber" msgstr "" #: bin/gscan2pdf:527 msgid "Renumber pages" msgstr "" #: bin/gscan2pdf:529 bin/gscan2pdf:679 msgid "_Select" msgstr "_Seleccionar" #: bin/gscan2pdf:532 msgid "_All" msgstr "_Totas" #: bin/gscan2pdf:533 msgid "Select all pages" msgstr "Seleccionatz totas las paginas" #: bin/gscan2pdf:536 msgid "_Odd" msgstr "" #: bin/gscan2pdf:537 msgid "Select all odd-numbered pages" msgstr "" #: bin/gscan2pdf:541 msgid "_Even" msgstr "" #: bin/gscan2pdf:542 msgid "Select all evenly-numbered pages" msgstr "" #: bin/gscan2pdf:547 msgid "_Blank" msgstr "Void" #: bin/gscan2pdf:548 msgid "Select pages with low standard deviation" msgstr "" #: bin/gscan2pdf:552 msgid "_Dark" msgstr "E_scur" #: bin/gscan2pdf:553 msgid "Select dark pages" msgstr "" #: bin/gscan2pdf:558 msgid "_Modified" msgstr "" #: bin/gscan2pdf:560 msgid "Select modified pages since last OCR" msgstr "" #: bin/gscan2pdf:565 msgid "_No OCR" msgstr "" #: bin/gscan2pdf:566 msgid "Select pages with no OCR output" msgstr "" #: bin/gscan2pdf:570 msgid "_Clear OCR" msgstr "" #: bin/gscan2pdf:571 msgid "Clear OCR output from selected pages" msgstr "" #: bin/gscan2pdf:575 msgid "Propert_ies" msgstr "Propr_ietats" #: bin/gscan2pdf:576 msgid "Edit image properties" msgstr "" #: bin/gscan2pdf:580 msgid "Prefere_nces" msgstr "" #: bin/gscan2pdf:581 msgid "Edit preferences" msgstr "" #: bin/gscan2pdf:585 msgid "_View" msgstr "" #: bin/gscan2pdf:588 msgid "Zoom _100%" msgstr "" #: bin/gscan2pdf:589 msgid "Zoom to 100%" msgstr "" #: bin/gscan2pdf:593 msgid "Zoom to _fit" msgstr "" #: bin/gscan2pdf:594 msgid "Zoom to fit" msgstr "" #: bin/gscan2pdf:598 msgid "Zoom _in" msgstr "" #: bin/gscan2pdf:599 msgid "Zoom in" msgstr "" #: bin/gscan2pdf:603 msgid "Zoom _out" msgstr "" #: bin/gscan2pdf:604 msgid "Zoom out" msgstr "" #: bin/gscan2pdf:609 bin/gscan2pdf:611 msgid "Rotate 90 clockwise" msgstr "" #: bin/gscan2pdf:617 bin/gscan2pdf:619 msgid "Rotate 180" msgstr "" #: bin/gscan2pdf:625 bin/gscan2pdf:627 msgid "Rotate 90 anticlockwise" msgstr "" #: bin/gscan2pdf:632 msgid "_Tools" msgstr "" #: bin/gscan2pdf:634 msgid "_Threshold" msgstr "" #: bin/gscan2pdf:635 msgid "Change each pixel above this threshold to black" msgstr "" #: bin/gscan2pdf:639 msgid "_Negate" msgstr "" #: bin/gscan2pdf:640 msgid "Converts black to white and vice versa" msgstr "" #: bin/gscan2pdf:644 msgid "_Unsharp Mask" msgstr "" #: bin/gscan2pdf:645 msgid "Apply an unsharp mask" msgstr "" #: bin/gscan2pdf:648 msgid "_Crop" msgstr "" #: bin/gscan2pdf:649 msgid "Crop pages" msgstr "" #: bin/gscan2pdf:653 msgid "_Clean up" msgstr "" #: bin/gscan2pdf:654 bin/gscan2pdf:4085 msgid "Clean up scanned images with unpaper" msgstr "" #: bin/gscan2pdf:657 msgid "_OCR" msgstr "" #: bin/gscan2pdf:658 msgid "Optical Character Recognition" msgstr "" #: bin/gscan2pdf:660 msgid "U_ser-defined" msgstr "" #: bin/gscan2pdf:663 bin/gscan2pdf:665 msgid "_Help" msgstr "" #: bin/gscan2pdf:666 msgid "Help" msgstr "" #: bin/gscan2pdf:668 msgid "_About" msgstr "" #: bin/gscan2pdf:674 msgid "_Drag" msgstr "" #: bin/gscan2pdf:675 msgid "Use the hand tool" msgstr "" #: bin/gscan2pdf:680 msgid "Use the rectangular selection tool" msgstr "" #: bin/gscan2pdf:684 msgid "_Paint" msgstr "" #: bin/gscan2pdf:685 msgid "Use the painter tool" msgstr "" #: bin/gscan2pdf:965 lib/Gscan2pdf/Document.pm:2594 #: lib/Gscan2pdf/Document.pm:2595 msgid "Error copying page" msgstr "" #: bin/gscan2pdf:1082 msgid "Image" msgstr "" #: bin/gscan2pdf:1117 msgid "OCR Output" msgstr "" #: bin/gscan2pdf:1174 msgid "Mode" msgstr "" #: bin/gscan2pdf:1176 msgid "Lineart" msgstr "" #: bin/gscan2pdf:1177 msgid "Grayscale" msgstr "" #: bin/gscan2pdf:1178 msgid "Gray" msgstr "" #: bin/gscan2pdf:1179 msgid "Color" msgstr "" #: bin/gscan2pdf:1180 msgid "Black & White" msgstr "" #: bin/gscan2pdf:1181 msgid "True Gray" msgstr "" #: bin/gscan2pdf:1182 msgid "Binary" msgstr "" #: bin/gscan2pdf:1183 bin/gscan2pdf:1242 bin/gscan2pdf:1243 msgid "Auto" msgstr "" #: bin/gscan2pdf:1184 msgid "Halftone" msgstr "" #: bin/gscan2pdf:1185 msgid "24bit Color" msgstr "" #: bin/gscan2pdf:1189 bin/gscan2pdf:2547 bin/gscan2pdf:2644 msgid "Compression" msgstr "" #: bin/gscan2pdf:1191 bin/gscan2pdf:2539 bin/gscan2pdf:2636 msgid "None" msgstr "" #: bin/gscan2pdf:1192 bin/gscan2pdf:2537 bin/gscan2pdf:2601 bin/gscan2pdf:2622 msgid "JPEG" msgstr "" #: bin/gscan2pdf:1195 bin/gscan2pdf:8127 msgid "Resolution" msgstr "" #: bin/gscan2pdf:1196 msgid "Brightness" msgstr "" #: bin/gscan2pdf:1197 msgid "Gain" msgstr "" #: bin/gscan2pdf:1198 msgid "Contrast" msgstr "" #: bin/gscan2pdf:1199 bin/gscan2pdf:6406 bin/gscan2pdf:6417 bin/gscan2pdf:6620 msgid "Threshold" msgstr "" #: bin/gscan2pdf:1201 msgid "Speed" msgstr "" #: bin/gscan2pdf:1203 bin/gscan2pdf:1210 bin/gscan2pdf:1217 bin/gscan2pdf:1224 #: bin/gscan2pdf:1231 msgid "Yes" msgstr "" #: bin/gscan2pdf:1204 bin/gscan2pdf:1211 bin/gscan2pdf:1218 bin/gscan2pdf:1225 #: bin/gscan2pdf:1232 msgid "No" msgstr "" #: bin/gscan2pdf:1208 msgid "Batch scan" msgstr "" #: bin/gscan2pdf:1215 bin/gscan2pdf:1222 msgid "Wait for button" msgstr "" #: bin/gscan2pdf:1229 msgid "Cache calibration" msgstr "" #: bin/gscan2pdf:1236 msgid "Source" msgstr "" #: bin/gscan2pdf:1238 msgid "Normal" msgstr "" #: bin/gscan2pdf:1239 msgid "ADF" msgstr "" #: bin/gscan2pdf:1240 msgid "Automatic Document Feeder" msgstr "" #: bin/gscan2pdf:1241 msgid "XPA" msgstr "" #: bin/gscan2pdf:1244 msgid "Flatbed" msgstr "" #: bin/gscan2pdf:1245 msgid "Transparency Adapter" msgstr "" #: bin/gscan2pdf:1246 msgid "Transparency Unit" msgstr "" #: bin/gscan2pdf:1249 bin/gscan2pdf:1251 msgid "Page Width" msgstr "" #: bin/gscan2pdf:1250 bin/gscan2pdf:1252 msgid "Page Height" msgstr "" #: bin/gscan2pdf:1253 msgid "Top Overscan" msgstr "" #: bin/gscan2pdf:1254 msgid "Bottom Overscan" msgstr "" #: bin/gscan2pdf:1256 bin/gscan2pdf:1263 msgid "ADF Mode" msgstr "" #: bin/gscan2pdf:1258 bin/gscan2pdf:1265 msgid "Simplex" msgstr "" #: bin/gscan2pdf:1259 bin/gscan2pdf:1266 msgid "Duplex" msgstr "" #: bin/gscan2pdf:1301 bin/gscan2pdf:1306 msgid "Pick crashed session to restore" msgstr "" #: bin/gscan2pdf:1308 bin/gscan2pdf:2609 msgid "Session" msgstr "" #: bin/gscan2pdf:1338 #, perl-format msgid "" "Warning: unable to use %s for temporary storage. Defaulting to %s instead." msgstr "" #: bin/gscan2pdf:1441 msgid "GOCR" msgstr "" #: bin/gscan2pdf:1441 msgid "Process image with GOCR." msgstr "" #: bin/gscan2pdf:1445 msgid "Tesseract" msgstr "" #: bin/gscan2pdf:1446 msgid "Process image with Tesseract." msgstr "" #: bin/gscan2pdf:1450 msgid "Ocropus" msgstr "" #: bin/gscan2pdf:1450 msgid "Process image with Ocropus." msgstr "" #: bin/gscan2pdf:1454 msgid "Cuneiform" msgstr "" #: bin/gscan2pdf:1455 msgid "Process image with Cuneiform." msgstr "" #: bin/gscan2pdf:1461 msgid "Save image and Save as PDF both require imagemagick\n" msgstr "" #: bin/gscan2pdf:1465 msgid "Save image requires libtiff\n" msgstr "" #: bin/gscan2pdf:1469 msgid "Save as DjVu requires djvulibre-bin\n" msgstr "" #: bin/gscan2pdf:1473 msgid "Email as PDF requires xdg-email\n" msgstr "" #: bin/gscan2pdf:1518 msgid "The rotating options and unpaper support require perlmagick\n" msgstr "" #: bin/gscan2pdf:1524 msgid "unpaper missing\n" msgstr "" #: bin/gscan2pdf:1534 msgid "OCR requires gocr, tesseract, ocropus, or cuneiform\n" msgstr "" #: bin/gscan2pdf:1539 msgid "Warning: missing packages" msgstr "" #: bin/gscan2pdf:1544 msgid "Don't show this message again" msgstr "" #: bin/gscan2pdf:1753 msgid "" "Some pages have not been saved.\n" "Do you really want to clear all pages?" msgstr "" #: bin/gscan2pdf:1828 bin/gscan2pdf:1858 #, perl-format msgid "Process %i of %i (%s)" msgstr "" #: bin/gscan2pdf:1867 #, perl-format msgid "Process %i of %i" msgstr "" #: bin/gscan2pdf:1895 msgid "Open image" msgstr "" #: bin/gscan2pdf:1903 bin/gscan2pdf:2797 bin/gscan2pdf:3113 msgid "Image files" msgstr "" #: bin/gscan2pdf:1940 msgid "Pages to extract" msgstr "" #: bin/gscan2pdf:1943 bin/gscan2pdf:2117 bin/gscan2pdf:2586 bin/gscan2pdf:3353 #: bin/gscan2pdf:3494 bin/gscan2pdf:4104 bin/gscan2pdf:4514 bin/gscan2pdf:5825 #: bin/gscan2pdf:6409 bin/gscan2pdf:6495 bin/gscan2pdf:6565 bin/gscan2pdf:6737 #: bin/gscan2pdf:7011 bin/gscan2pdf:7274 bin/gscan2pdf:7757 bin/gscan2pdf:8123 #: lib/Gscan2pdf/Dialog.pm:56 lib/Gscan2pdf/Dialog/Renumber.pm:80 #: lib/Gscan2pdf/Scanner/Dialog.pm:201 t/05_Dialog.t:28 msgid "vbox" msgstr "" #: bin/gscan2pdf:1946 msgid "First page to extract" msgstr "" #: bin/gscan2pdf:1953 msgid "Last page to extract" msgstr "" #: bin/gscan2pdf:2042 lib/Gscan2pdf/Dialog/Renumber.pm:83 msgid "Page Range" msgstr "" #: bin/gscan2pdf:2092 msgid "Metadata" msgstr "" #: bin/gscan2pdf:2101 msgid "Date" msgstr "" #: bin/gscan2pdf:2114 msgid "Select Date" msgstr "" #: bin/gscan2pdf:2136 msgid "Today" msgstr "" #: bin/gscan2pdf:2150 msgid "Year-Month-Day" msgstr "" #: bin/gscan2pdf:2156 msgid "Document author" msgstr "" #: bin/gscan2pdf:2165 msgid "Title" msgstr "" #: bin/gscan2pdf:2174 msgid "Subject" msgstr "" #: bin/gscan2pdf:2183 msgid "Keywords" msgstr "" #: bin/gscan2pdf:2245 msgid "Editing text" msgstr "" #: bin/gscan2pdf:2252 bin/gscan2pdf:2258 bin/gscan2pdf:2332 msgid "text" msgstr "" #: bin/gscan2pdf:2352 msgid "PDF filename" msgstr "" #: bin/gscan2pdf:2381 msgid "PDF files" msgstr "" #: bin/gscan2pdf:2405 bin/gscan2pdf:2823 bin/gscan2pdf:2880 bin/gscan2pdf:2976 #: bin/gscan2pdf:3035 bin/gscan2pdf:3087 bin/gscan2pdf:3275 #, perl-format msgid "File %s is read-only" msgstr "" #: bin/gscan2pdf:2482 msgid "JPEG Quality" msgstr "" #: bin/gscan2pdf:2496 msgid "Downsample to" msgstr "" #: bin/gscan2pdf:2501 msgid "PPI" msgstr "" #: bin/gscan2pdf:2520 msgid "Automatic" msgstr "" #: bin/gscan2pdf:2521 msgid "Let gscan2pdf which type of compression to use." msgstr "" #: bin/gscan2pdf:2524 bin/gscan2pdf:2616 msgid "LZW" msgstr "" #: bin/gscan2pdf:2525 bin/gscan2pdf:2617 msgid "Compress output with Lempel-Ziv & Welch encoding." msgstr "" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Zip" msgstr "" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Compress output with deflate encoding." msgstr "" #: bin/gscan2pdf:2529 bin/gscan2pdf:2624 msgid "Packbits" msgstr "" #: bin/gscan2pdf:2530 bin/gscan2pdf:2625 msgid "Compress output with Packbits encoding." msgstr "" #: bin/gscan2pdf:2536 bin/gscan2pdf:2604 msgid "PNG" msgstr "" #: bin/gscan2pdf:2536 msgid "Compress output with PNG encoding." msgstr "" #: bin/gscan2pdf:2537 bin/gscan2pdf:2622 msgid "Compress output with JPEG encoding." msgstr "" #: bin/gscan2pdf:2540 bin/gscan2pdf:2637 msgid "Use no compression algorithm on output." msgstr "" #: bin/gscan2pdf:2594 msgid "Image type" msgstr "" #: bin/gscan2pdf:2598 msgid "PDF" msgstr "" #: bin/gscan2pdf:2598 msgid "Portable Document Format" msgstr "" #: bin/gscan2pdf:2599 msgid "GIF" msgstr "" #: bin/gscan2pdf:2599 msgid "CompuServe graphics interchange format" msgstr "" #: bin/gscan2pdf:2602 msgid "Joint Photographic Experts Group JFIF format" msgstr "" #: bin/gscan2pdf:2604 msgid "Portable Network Graphics" msgstr "" #: bin/gscan2pdf:2605 msgid "PNM" msgstr "" #: bin/gscan2pdf:2605 msgid "Portable anymap" msgstr "" #: bin/gscan2pdf:2606 msgid "PS" msgstr "" #: bin/gscan2pdf:2606 msgid "Postscript" msgstr "" #: bin/gscan2pdf:2607 msgid "TIFF" msgstr "" #: bin/gscan2pdf:2607 msgid "Tagged Image File Format" msgstr "" #: bin/gscan2pdf:2608 msgid "Text" msgstr "" #: bin/gscan2pdf:2608 msgid "Plain text" msgstr "" #: bin/gscan2pdf:2609 msgid "gscan2pdf session file" msgstr "" #: bin/gscan2pdf:2611 msgid "DjVu" msgstr "" #: bin/gscan2pdf:2611 msgid "Deja Vu" msgstr "" #: bin/gscan2pdf:2628 msgid "G3" msgstr "" #: bin/gscan2pdf:2629 msgid "Compress output with CCITT Group 3 encoding." msgstr "" #: bin/gscan2pdf:2632 msgid "G4" msgstr "" #: bin/gscan2pdf:2633 msgid "Compress output with CCITT Group 4 encoding." msgstr "" #: bin/gscan2pdf:2649 msgid "tiff" msgstr "" #: bin/gscan2pdf:2681 msgid "Font for non-ASCII text" msgstr "" #: bin/gscan2pdf:2790 msgid "TIFF filename" msgstr "" #: bin/gscan2pdf:2848 msgid "Text filename" msgstr "" #: bin/gscan2pdf:2856 msgid "Text files" msgstr "" #: bin/gscan2pdf:2944 msgid "PS filename" msgstr "" #: bin/gscan2pdf:2951 msgid "Postscript files" msgstr "" #: bin/gscan2pdf:3003 msgid "gscan2pdf session filename" msgstr "" #: bin/gscan2pdf:3010 msgid "gscan2pdf session files" msgstr "" #: bin/gscan2pdf:3093 #, perl-format msgid "" "File %s exists.\n" "Really overwrite?" msgstr "" #: bin/gscan2pdf:3106 msgid "Image filename" msgstr "" #: bin/gscan2pdf:3245 msgid "DjVu filename" msgstr "" #: bin/gscan2pdf:3252 msgid "DjVu files" msgstr "" #: bin/gscan2pdf:3349 msgid "Email as PDF" msgstr "" #: bin/gscan2pdf:3454 msgid "Error creating email" msgstr "" #: bin/gscan2pdf:3490 bin/gscan2pdf:4313 msgid "Scan Document" msgstr "" #: bin/gscan2pdf:3507 lib/Gscan2pdf/Scanner/Dialog.pm:248 msgid "Page Options" msgstr "" #: bin/gscan2pdf:3510 lib/Gscan2pdf/Scanner/Dialog.pm:251 msgid "# Pages" msgstr "" #: bin/gscan2pdf:3519 lib/Gscan2pdf/PageRange.pm:34 #: lib/Gscan2pdf/Scanner/Dialog.pm:261 msgid "All" msgstr "" #: bin/gscan2pdf:3520 lib/Gscan2pdf/Scanner/Dialog.pm:262 msgid "Scan all pages" msgstr "" #: bin/gscan2pdf:3532 bin/gscan2pdf:3537 lib/Gscan2pdf/Scanner/Dialog.pm:274 #: lib/Gscan2pdf/Scanner/Dialog.pm:279 msgid "Set number of pages to scan" msgstr "" #: bin/gscan2pdf:3550 lib/Gscan2pdf/Scanner/Dialog.pm:308 msgid "Extended page numbering" msgstr "" #: bin/gscan2pdf:3554 lib/Gscan2pdf/Scanner/Dialog.pm:312 msgid "Page number" msgstr "" #: bin/gscan2pdf:3563 lib/Gscan2pdf/Dialog/Renumber.pm:111 #: lib/Gscan2pdf/Scanner/Dialog.pm:321 msgid "Start" msgstr "" #: bin/gscan2pdf:3572 lib/Gscan2pdf/Dialog/Renumber.pm:132 #: lib/Gscan2pdf/Scanner/Dialog.pm:340 msgid "Increment" msgstr "" #: bin/gscan2pdf:3604 lib/Gscan2pdf/Scanner/Dialog.pm:372 msgid "Source document" msgstr "" #: bin/gscan2pdf:3611 lib/Gscan2pdf/Scanner/Dialog.pm:379 msgid "Single sided" msgstr "" #: bin/gscan2pdf:3612 lib/Gscan2pdf/Scanner/Dialog.pm:380 msgid "Source document is single-sided" msgstr "" #: bin/gscan2pdf:3622 lib/Gscan2pdf/Scanner/Dialog.pm:390 msgid "Double sided" msgstr "" #: bin/gscan2pdf:3623 lib/Gscan2pdf/Scanner/Dialog.pm:391 msgid "Source document is double-sided" msgstr "" #: bin/gscan2pdf:3629 lib/Gscan2pdf/Scanner/Dialog.pm:397 msgid "Side to scan" msgstr "" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Facing" msgstr "" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Reverse" msgstr "" #: bin/gscan2pdf:3655 lib/Gscan2pdf/Scanner/Dialog.pm:418 msgid "Sets which side of a double-sided document is scanned" msgstr "" #: bin/gscan2pdf:3719 msgid "Scan Options" msgstr "" #: bin/gscan2pdf:3722 msgid "Device-dependent options" msgstr "" #: bin/gscan2pdf:3729 lib/Gscan2pdf/Scanner/Dialog.pm:458 msgid "Scan profiles" msgstr "" #: bin/gscan2pdf:3778 bin/gscan2pdf:3784 lib/Gscan2pdf/Scanner/Dialog.pm:479 #: lib/Gscan2pdf/Scanner/Dialog.pm:485 msgid "Name of scan profile" msgstr "" #: bin/gscan2pdf:3828 lib/Gscan2pdf/Scanner/Dialog.pm:518 msgid "Scan" msgstr "" #: bin/gscan2pdf:3866 msgid "Must scan facing pages first" msgstr "" #: bin/gscan2pdf:3977 msgid "Post-processing" msgstr "" #: bin/gscan2pdf:3986 bin/gscan2pdf:4008 msgid "Rotate" msgstr "" #: bin/gscan2pdf:3987 bin/gscan2pdf:4009 msgid "Rotate image after scanning" msgstr "" #: bin/gscan2pdf:3990 msgid "Both sides" msgstr "" #: bin/gscan2pdf:3990 msgid "Both sides." msgstr "" #: bin/gscan2pdf:3991 msgid "Facing side" msgstr "" #: bin/gscan2pdf:3991 msgid "Facing side." msgstr "" #: bin/gscan2pdf:3992 msgid "Reverse side" msgstr "" #: bin/gscan2pdf:3992 msgid "Reverse side." msgstr "" #: bin/gscan2pdf:3995 bin/gscan2pdf:4013 msgid "Select side to rotate" msgstr "" #: bin/gscan2pdf:3998 msgid "90" msgstr "" #: bin/gscan2pdf:3998 msgid "Rotate image 90 degrees clockwise." msgstr "" #: bin/gscan2pdf:3999 msgid "180" msgstr "" #: bin/gscan2pdf:3999 msgid "Rotate image 180 degrees clockwise." msgstr "" #: bin/gscan2pdf:4000 msgid "270" msgstr "" #: bin/gscan2pdf:4000 msgid "Rotate image 90 degrees anticlockwise." msgstr "" #: bin/gscan2pdf:4003 bin/gscan2pdf:4016 msgid "Select direction of rotation" msgstr "" #: bin/gscan2pdf:4083 msgid "Clean up images" msgstr "" #: bin/gscan2pdf:4094 msgid "Options" msgstr "" #: bin/gscan2pdf:4095 msgid "Set unpaper options" msgstr "" #: bin/gscan2pdf:4101 msgid "unpaper options" msgstr "" #: bin/gscan2pdf:4136 bin/gscan2pdf:4137 msgid "OCR scanned pages" msgstr "" #: bin/gscan2pdf:4151 msgid "Select OCR engine" msgstr "" #: bin/gscan2pdf:4210 lib/Gscan2pdf/Scanner/Dialog.pm:634 msgid "Fetching list of devices" msgstr "" #: bin/gscan2pdf:4225 lib/Gscan2pdf/Scanner/Dialog.pm:654 msgid "No devices found" msgstr "" #: bin/gscan2pdf:4367 bin/gscan2pdf:4732 bin/gscan2pdf:4777 bin/gscan2pdf:5214 #: lib/Gscan2pdf/Scanner/Dialog.pm:343 lib/Gscan2pdf/Scanner/Dialog.pm:348 #: t/061_Scanner_Dialog.t:38 t/061_Scanner_Dialog.t:95 msgid "page-number-increment" msgstr "" #: bin/gscan2pdf:4374 bin/gscan2pdf:4729 bin/gscan2pdf:4730 bin/gscan2pdf:4776 #: bin/gscan2pdf:5213 lib/Gscan2pdf/Scanner/Dialog.pm:361 #: t/061_Scanner_Dialog.t:37 msgid "page-number-start" msgstr "" #: bin/gscan2pdf:4663 lib/Gscan2pdf/Scanner/Dialog.pm:210 msgid "Device" msgstr "" #: bin/gscan2pdf:4671 lib/Gscan2pdf/Scanner/Dialog.pm:213 msgid "Rescan for devices" msgstr "" #: bin/gscan2pdf:4694 lib/Gscan2pdf/Scanner/Dialog.pm:237 msgid "Sets the device to be used for the scan" msgstr "" #: bin/gscan2pdf:4780 lib/Gscan2pdf/Scanner/Dialog.pm:300 #: t/061_Scanner_Dialog.t:35 msgid "num-pages" msgstr "" #: bin/gscan2pdf:4821 msgid "Scanning" msgstr "" #: bin/gscan2pdf:4974 msgid "Unable to load image" msgstr "" #: bin/gscan2pdf:5004 msgid "print-pages" msgstr "" #: bin/gscan2pdf:5008 msgid "page-ranges" msgstr "" #: bin/gscan2pdf:5405 msgid "Patches gratefully received from:" msgstr "" #: bin/gscan2pdf:5407 msgid "To aid the scan-to-PDF process" msgstr "" #: bin/gscan2pdf:5408 msgid "Copyright 2006--2012 Jeffrey Ratcliffe" msgstr "" #: bin/gscan2pdf:5492 bin/gscan2pdf:6028 msgid "The options cache seems to be empty. Reload device-dependent options?" msgstr "" #: bin/gscan2pdf:5519 bin/gscan2pdf:6054 msgid "Updating options" msgstr "" #: bin/gscan2pdf:5571 msgid "Paper size" msgstr "" #: bin/gscan2pdf:5572 bin/gscan2pdf:5672 bin/gscan2pdf:5840 bin/gscan2pdf:6769 msgid "Width" msgstr "" #: bin/gscan2pdf:5573 bin/gscan2pdf:5678 bin/gscan2pdf:5841 bin/gscan2pdf:6780 msgid "Height" msgstr "" #: bin/gscan2pdf:5574 bin/gscan2pdf:5684 bin/gscan2pdf:5842 #: lib/Gscan2pdf/Unpaper.pm:124 lib/Gscan2pdf/Unpaper.pm:152 msgid "Left" msgstr "" #: bin/gscan2pdf:5575 bin/gscan2pdf:5690 bin/gscan2pdf:5843 #: lib/Gscan2pdf/Unpaper.pm:129 lib/Gscan2pdf/Unpaper.pm:157 msgid "Top" msgstr "" #: bin/gscan2pdf:5589 bin/gscan2pdf:5703 bin/gscan2pdf:6232 msgid "Manual" msgstr "" #: bin/gscan2pdf:5590 bin/gscan2pdf:5700 msgid "Edit" msgstr "" #: bin/gscan2pdf:5591 msgid "Selects or edits the paper size" msgstr "" #: bin/gscan2pdf:5673 msgid "Width of scan area" msgstr "" #: bin/gscan2pdf:5679 msgid "Height of scan area" msgstr "" #: bin/gscan2pdf:5685 msgid "Top-left x position of scan area" msgstr "" #: bin/gscan2pdf:5691 msgid "Top-left y position of scan area" msgstr "" #: bin/gscan2pdf:5822 msgid "Edit paper size" msgstr "" #: bin/gscan2pdf:5839 msgid "Name" msgstr "" #: bin/gscan2pdf:5893 msgid "Cannot delete all paper sizes" msgstr "" #: bin/gscan2pdf:5955 msgid "" "The following paper sizes are too big to be scanned by the selected device:" msgstr "" #: bin/gscan2pdf:6419 bin/gscan2pdf:6605 msgid "%" msgstr "" #: bin/gscan2pdf:6492 msgid "Negate" msgstr "" #: bin/gscan2pdf:6562 msgid "Unsharp mask" msgstr "" #: bin/gscan2pdf:6573 msgid "Radius" msgstr "" #: bin/gscan2pdf:6575 bin/gscan2pdf:6592 bin/gscan2pdf:6747 bin/gscan2pdf:6759 #: bin/gscan2pdf:6771 bin/gscan2pdf:6782 msgid "pixels" msgstr "" #: bin/gscan2pdf:6582 msgid "" "The radius of the Gaussian, in pixels, not counting the center pixel (0 = " "automatic)." msgstr "" #: bin/gscan2pdf:6590 msgid "Sigma" msgstr "" #: bin/gscan2pdf:6597 msgid "The standard deviation of the Gaussian." msgstr "" #: bin/gscan2pdf:6603 msgid "Amount" msgstr "" #: bin/gscan2pdf:6612 msgid "" "The percentage of the difference between the original and the blur image " "that is added back into the original." msgstr "" #: bin/gscan2pdf:6627 msgid "" "The threshold, as a fraction of QuantumRange, needed to apply the difference " "amount." msgstr "" #: bin/gscan2pdf:6733 msgid "Crop" msgstr "" #: bin/gscan2pdf:6745 msgid "x" msgstr "" #: bin/gscan2pdf:6751 msgid "The x-position of the left hand edge of the crop." msgstr "" #: bin/gscan2pdf:6757 msgid "y" msgstr "" #: bin/gscan2pdf:6763 msgid "The y-position of the top edge of the crop." msgstr "" #: bin/gscan2pdf:6774 msgid "The width of the crop." msgstr "" #: bin/gscan2pdf:6785 msgid "The height of the crop." msgstr "" #: bin/gscan2pdf:6906 msgid "label" msgstr "" #: bin/gscan2pdf:7007 msgid "unpaper" msgstr "" #: bin/gscan2pdf:7216 bin/gscan2pdf:7244 msgid "Language to recognise" msgstr "" #: bin/gscan2pdf:7227 msgid "English" msgstr "" #: bin/gscan2pdf:7270 msgid "OCR" msgstr "" #: bin/gscan2pdf:7279 msgid "OCR Engine" msgstr "" #: bin/gscan2pdf:7323 msgid "Start OCR" msgstr "" #: bin/gscan2pdf:7339 msgid "No page selected" msgstr "" #: bin/gscan2pdf:7374 msgid "" "Some pages have not been saved.\n" "Do you really want to quit?" msgstr "" #: bin/gscan2pdf:7432 #, perl-format msgid "" "The help viewer requires module Gtk2::Ex::PodViewer\n" "Alternatively, try: %s %s\n" "\n" msgstr "" #: bin/gscan2pdf:7698 msgid "This operation cannot be undone. Are you sure?" msgstr "" #: bin/gscan2pdf:7753 msgid "Preferences" msgstr "" #: bin/gscan2pdf:7762 msgid "Frontend" msgstr "" #: bin/gscan2pdf:7766 msgid "libsane-perl" msgstr "" #: bin/gscan2pdf:7767 msgid "Scan using the perl bindings for SANE." msgstr "" #: bin/gscan2pdf:7770 msgid "scanimage" msgstr "" #: bin/gscan2pdf:7771 msgid "Scan using the scanimage frontend." msgstr "" #: bin/gscan2pdf:7775 msgid "scanimage-perl" msgstr "" #: bin/gscan2pdf:7776 msgid "Scan using the scanimage-perl frontend." msgstr "" #: bin/gscan2pdf:7779 msgid "scanadf-perl" msgstr "" #: bin/gscan2pdf:7780 msgid "Scan using the scanadf-perl frontend." msgstr "" #: bin/gscan2pdf:7785 msgid "scanadf" msgstr "" #: bin/gscan2pdf:7786 msgid "Scan using the scanadf frontend." msgstr "" #: bin/gscan2pdf:7791 msgid "Cycle SANE handle after scan" msgstr "" #: bin/gscan2pdf:7814 msgid "Default filename for PDFs" msgstr "" #: bin/gscan2pdf:7820 msgid "" "%a\t author\n" "%t\t title\n" "%y\t document's year\n" "%Y\t today's year\n" "%m\t document's month\n" "%M\t today's month\n" "%d\t document's day\n" "%D\t today's day" msgstr "" #: bin/gscan2pdf:7830 msgid "Scan command prefix" msgstr "" #: bin/gscan2pdf:7839 msgid "Restore window settings on startup" msgstr "" #: bin/gscan2pdf:7845 msgid "Cache device-dependent options" msgstr "" #: bin/gscan2pdf:7851 msgid "Clear device-dependent options cache" msgstr "" #: bin/gscan2pdf:7862 msgid "Temporary directory" msgstr "" #: bin/gscan2pdf:7867 msgid "Browse" msgstr "" #: bin/gscan2pdf:7871 msgid "Select temporary directory" msgstr "" #: bin/gscan2pdf:7888 msgid "Blank threshold" msgstr "" #: bin/gscan2pdf:7893 msgid "Threshold used for selecting blank pages" msgstr "" #: bin/gscan2pdf:7899 msgid "Dark threshold" msgstr "" #: bin/gscan2pdf:7904 msgid "Threshold used for selecting dark pages" msgstr "" #: bin/gscan2pdf:7910 msgid "OCR output" msgstr "" #: bin/gscan2pdf:7915 msgid "Replace" msgstr "" #: bin/gscan2pdf:7917 msgid "" "Replace the contents of the text buffer with that from the OCR output." msgstr "" #: bin/gscan2pdf:7920 msgid "Prepend" msgstr "" #: bin/gscan2pdf:7921 msgid "Prepend the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7924 msgid "Append" msgstr "" #: bin/gscan2pdf:7925 msgid "Append the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7933 msgid "User-defined tools" msgstr "" #: bin/gscan2pdf:7954 msgid "View files on saving" msgstr "" #: bin/gscan2pdf:8000 msgid "" "You will have to restart gscanp2df for changes to the temporary directory to " "take effect." msgstr "" #: bin/gscan2pdf:8092 msgid "" "Use %i and %o for the input and output filenames respectively, or a single " "%i if the image is to be modified in-place.\n" "\n" "The other variable available is:\n" "\n" "%r resolution" msgstr "" #: bin/gscan2pdf:8119 msgid "Properties" msgstr "" #: lib/Gscan2pdf/Dialog.pm:63 lib/Gscan2pdf/Dialog.pm:79 t/05_Dialog.t:25 msgid "hide-on-delete" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:78 lib/Gscan2pdf/Dialog/Renumber.pm:162 msgid "Renumber" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:98 lib/Gscan2pdf/Dialog/Renumber.pm:207 #: lib/Gscan2pdf/Dialog/Renumber.pm:244 msgid "range" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:102 msgid "Page numbering" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:105 lib/Gscan2pdf/Scanner/Dialog.pm:254 msgid "border_width" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:126 lib/Gscan2pdf/Dialog/Renumber.pm:192 #: lib/Gscan2pdf/Dialog/Renumber.pm:242 t/07_Dialog_Renumber.t:33 #: t/07_Dialog_Renumber.t:45 t/07_Dialog_Renumber.t:59 #: t/07_Dialog_Renumber.t:66 msgid "start" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:147 lib/Gscan2pdf/Dialog/Renumber.pm:193 #: lib/Gscan2pdf/Dialog/Renumber.pm:243 t/07_Dialog_Renumber.t:34 #: t/07_Dialog_Renumber.t:46 t/07_Dialog_Renumber.t:60 #: t/07_Dialog_Renumber.t:67 msgid "increment" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:205 lib/Gscan2pdf/Dialog/Renumber.pm:241 msgid "document" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:295 msgid "" "The current settings would result in duplicate page numbers. Please select " "new start and increment values." msgstr "" #: lib/Gscan2pdf/Document.pm:83 msgid "Thumbnails" msgstr "" #: lib/Gscan2pdf/Document.pm:1502 msgid "Unknown DjVu file structure. Please contact the author." msgstr "" #: lib/Gscan2pdf/Document.pm:1558 #, perl-format msgid "%s is not a recognised image type" msgstr "" #: lib/Gscan2pdf/Document.pm:1580 lib/Gscan2pdf/Document.pm:1637 #, perl-format msgid "Importing page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:1613 msgid "Error extracting images from PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1692 msgid "Setting up PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1703 #, perl-format msgid "Saving page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:1814 lib/Gscan2pdf/Document.pm:2136 #, perl-format msgid "Error compressing image: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1919 #, perl-format msgid "Error creating PDF image object: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1930 #, perl-format msgid "Error embedding file image in %s format to PDF: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1939 msgid "Closing PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1955 #, perl-format msgid "Writing page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:2006 msgid "Error writing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2025 lib/Gscan2pdf/Document.pm:2227 #, perl-format msgid "Can't open file: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:2050 msgid "Error adding text layer to DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2056 msgid "Closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2063 msgid "Error closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2078 #, perl-format msgid "Converting image %i of %i to TIFF" msgstr "" #: lib/Gscan2pdf/Document.pm:2105 msgid "Error writing TIFF" msgstr "" #: lib/Gscan2pdf/Document.pm:2121 msgid "Concatenating TIFFs" msgstr "" #: lib/Gscan2pdf/Document.pm:2140 msgid "Converting to PS" msgstr "" #: lib/Gscan2pdf/Document.pm:2200 lib/Gscan2pdf/Document.pm:2215 msgid "Error saving image" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:158 #, perl-format msgid "Scanning %i pages..." msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:163 #, perl-format msgid "Scanning page %i..." msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:188 lib/Gscan2pdf/Frontend/CLI.pm:296 msgid "Scanner warming up" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:195 msgid "Document feeder out of documents" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:212 lib/Gscan2pdf/Frontend/CLI.pm:325 msgid "Device busy" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:218 lib/Gscan2pdf/Frontend/CLI.pm:330 msgid "Operation cancelled" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:223 lib/Gscan2pdf/Frontend/CLI.pm:336 msgid "Unknown message: " msgstr "" #: lib/Gscan2pdf/Page.pm:68 lib/Gscan2pdf/Page.pm:73 #, perl-format msgid "Error importing image %s: %s" msgstr "" #: lib/Gscan2pdf/PageRange.pm:33 msgid "Selected" msgstr "" #: lib/Gscan2pdf/PageRange.pm:58 msgid "active" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:218 t/061_Scanner_Dialog.t:33 #: t/061_Scanner_Dialog.t:59 msgid "device-list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:496 t/061_Scanner_Dialog.t:139 #: t/061_Scanner_Dialog.t:174 t/062_Scanner_Dialog.t:50 #: t/062_Scanner_Dialog.t:75 msgid "current-scan-options" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:567 msgid "logger" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:650 t/05_Dialog.t:24 msgid "transient-for" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:716 msgid "device_list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:749 t/061_Scanner_Dialog.t:32 msgid "device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:751 msgid "Opening device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:760 msgid "Retrieving options" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:41 msgid "Layout" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:44 msgid "Single" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:46 msgid "One page per sheet, oriented upwards without rotation." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:49 msgid "Double" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:51 msgid "" "Two pages per sheet, landscape orientation (one page on the left half, one " "page on the right half)." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:59 msgid "# Output pages" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:60 msgid "Number of pages to output." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:68 msgid "No deskew" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:69 msgid "Disable deskewing." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:74 msgid "No mask scan" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:75 msgid "Disable mask detection." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:80 msgid "No black filter" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:81 msgid "Disable black area scan." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:86 msgid "No gray filter" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:87 msgid "Disable gray area scan." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:92 msgid "No noise filter" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:93 msgid "Disable noise filter." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:98 msgid "No blur filter" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:99 msgid "Disable blur filter." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:104 msgid "No border scan" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:105 msgid "Disable border scanning." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:110 msgid "No border align" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:112 msgid "Disable aligning of the area detected by border scanning." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:117 msgid "Deskew to edge" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:119 msgid "" "Edges from which to scan for rotation. Each edge of a mask can be used to " "detect the mask's rotation. If multiple edges are specified, the average " "value will be used, unless the statistical deviation exceeds --deskew-scan-" "deviation." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:125 msgid "Use 'left' for scanning from the left edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:130 msgid "Use 'top' for scanning from the top edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:134 lib/Gscan2pdf/Unpaper.pm:162 msgid "Right" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:135 msgid "Use 'right' for scanning from the right edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:139 lib/Gscan2pdf/Unpaper.pm:167 msgid "Bottom" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:140 msgid "Use 'bottom' for scanning from the bottom." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:147 msgid "Align to edge" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:148 msgid "Edge to which to align the page." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:153 msgid "Use 'left' to align to the left edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:158 msgid "Use 'top' to align to the top edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:163 msgid "Use 'right' to align to the right edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:168 msgid "Use 'bottom' to align to the bottom." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:174 msgid "Border margin" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:178 msgid "Vertical margin" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:180 msgid "" "Vertical distance to keep from the sheet edge when aligning a border area." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:189 msgid "Horizontal margin" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:191 msgid "" "Horizontal distance to keep from the sheet edge when aligning a border area." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:202 msgid "White threshold" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:204 msgid "Brightness ratio above which a pixel is considered white." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:212 msgid "Black threshold" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:214 msgid "" "Brightness ratio below which a pixel is considered black (non-gray). This is " "used by the gray-filter. This value is also used when converting a grayscale " "image to black-and-white mode." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:250 msgid "Deskew" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:280 msgid "Border" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:337 msgid "Filters" msgstr "" #: t/05_Dialog.t:23 msgid "title" msgstr "" #: t/05_Dialog.t:26 t/05_Dialog.t:31 t/05_Dialog.t:32 t/05_Dialog.t:38 #: t/05_Dialog.t:39 msgid "border-width" msgstr "" #: t/061_Scanner_Dialog.t:34 msgid "dir" msgstr "" #: t/061_Scanner_Dialog.t:36 msgid "max-pages" msgstr "" #: t/061_Scanner_Dialog.t:39 msgid "side-to-scan" msgstr "" #: t/061_Scanner_Dialog.t:40 t/061_Scanner_Dialog.t:185 msgid "available-scan-options" msgstr "" #: t/061_Scanner_Dialog.t:171 t/062_Scanner_Dialog.t:73 msgid "profile" msgstr "" gscan2pdf-1.2.3/po/gscan2pdf-es.po0000644000175000017500000013651612243440507015241 0ustar jeffjeffmsgid "" msgstr "" "Project-Id-Version: gscan2pdf-0.8.7\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-10-25 08:12+0200\n" "PO-Revision-Date: 2012-06-12 06:39+0000\n" "Last-Translator: Adolfo Jayme Barrientos \n" "Language-Team: Spanish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-19 09:22+0000\n" "X-Generator: Launchpad (build 16831)\n" #: bin/gscan2pdf:157 msgid "Error displaying help" msgstr "" #: bin/gscan2pdf:201 msgid "" "Error: unable to load settings.\n" "Backing up settings\n" "Reverting to defaults" msgstr "" "Error: Imposible cargar configuración.\n" "Volviendo atrás la configuración\n" "Revirtiendo hacia lo predeterminado" #: bin/gscan2pdf:244 msgid "A4" msgstr "A4" #: bin/gscan2pdf:250 msgid "US Letter" msgstr "Carta de EE.UU." #: bin/gscan2pdf:256 msgid "US Legal" msgstr "Legal de EE.UU." #: bin/gscan2pdf:323 bin/gscan2pdf:344 #, perl-format msgid "Cannot read file: %s" msgstr "No se puede leer el archivo:% s" #: bin/gscan2pdf:451 msgid "_File" msgstr "Archivo" #: bin/gscan2pdf:454 msgid "_New" msgstr "Nuevo" #: bin/gscan2pdf:455 msgid "Clears all pages" msgstr "Elimina todas las paginas" #: bin/gscan2pdf:459 msgid "_Open" msgstr "Abrir" #: bin/gscan2pdf:460 msgid "Open image file(s)" msgstr "Abrir archivo(s) de imagen" #: bin/gscan2pdf:465 msgid "S_can" msgstr "Escanear" #: bin/gscan2pdf:467 msgid "Scan document" msgstr "Escanear documento" #: bin/gscan2pdf:471 bin/gscan2pdf:472 bin/gscan2pdf:2582 msgid "Save" msgstr "Guardar" #: bin/gscan2pdf:476 msgid "_Email as PDF" msgstr "_Enviar en correo como PDF" #: bin/gscan2pdf:477 msgid "Attach as PDF to a new email" msgstr "Adjuntar como PDF en un mail nuevo" #: bin/gscan2pdf:480 msgid "_Print" msgstr "_Imprimir" #: bin/gscan2pdf:481 msgid "Print" msgstr "Imprimir" #: bin/gscan2pdf:485 msgid "_Compress temporary files" msgstr "Comprimir archivos temporales" #: bin/gscan2pdf:486 msgid "Compress temporary files" msgstr "Comprimir archivos temporales" #: bin/gscan2pdf:490 msgid "_Quit" msgstr "_Salir" #: bin/gscan2pdf:491 msgid "Quit" msgstr "Salir" #: bin/gscan2pdf:495 msgid "_Edit" msgstr "_Editar" #: bin/gscan2pdf:497 msgid "_Undo" msgstr "_Deshacer" #: bin/gscan2pdf:497 msgid "Undo" msgstr "Deshacer" #: bin/gscan2pdf:501 msgid "_Redo" msgstr "_Restaurar" #: bin/gscan2pdf:502 msgid "Redo" msgstr "Restaurar" #: bin/gscan2pdf:506 msgid "Cu_t" msgstr "Cor_tar" #: bin/gscan2pdf:507 msgid "Cut selection" msgstr "Cortar selección" #: bin/gscan2pdf:511 msgid "_Copy" msgstr "_Copiar" #: bin/gscan2pdf:512 msgid "Copy selection" msgstr "Copia la selección" #: bin/gscan2pdf:516 msgid "_Paste" msgstr "_Pegar" #: bin/gscan2pdf:517 msgid "Paste selection" msgstr "Pega la selección" #: bin/gscan2pdf:521 msgid "_Delete" msgstr "_Eliminar" #: bin/gscan2pdf:522 msgid "Delete selected pages" msgstr "Eliminar las paginas seleccionadas" #: bin/gscan2pdf:526 msgid "_Renumber" msgstr "_Renumerar" #: bin/gscan2pdf:527 msgid "Renumber pages" msgstr "Renumerar páginas" #: bin/gscan2pdf:529 bin/gscan2pdf:679 msgid "_Select" msgstr "_Seleccionar" #: bin/gscan2pdf:532 msgid "_All" msgstr "_Todas" #: bin/gscan2pdf:533 msgid "Select all pages" msgstr "Seleccionar todas las paginas" #: bin/gscan2pdf:536 msgid "_Odd" msgstr "_Impares" #: bin/gscan2pdf:537 msgid "Select all odd-numbered pages" msgstr "Selecciona todas las páginas impares" #: bin/gscan2pdf:541 msgid "_Even" msgstr "_Pares" #: bin/gscan2pdf:542 msgid "Select all evenly-numbered pages" msgstr "Selecciona todas las páginas pares" #: bin/gscan2pdf:547 msgid "_Blank" msgstr "_Blanco" #: bin/gscan2pdf:548 msgid "Select pages with low standard deviation" msgstr "Selecciona páginas con menor desviación estándar" #: bin/gscan2pdf:552 msgid "_Dark" msgstr "_Oscuro" #: bin/gscan2pdf:553 msgid "Select dark pages" msgstr "Seleccionar páginas oscuras" #: bin/gscan2pdf:558 msgid "_Modified" msgstr "_Modificado" #: bin/gscan2pdf:560 msgid "Select modified pages since last OCR" msgstr "Seleccionar páginas modificadas desde el último OCR" #: bin/gscan2pdf:565 msgid "_No OCR" msgstr "_No OCR" #: bin/gscan2pdf:566 msgid "Select pages with no OCR output" msgstr "Seleccionar páginas sin salida OCR" #: bin/gscan2pdf:570 msgid "_Clear OCR" msgstr "_Limpiar OCR" #: bin/gscan2pdf:571 msgid "Clear OCR output from selected pages" msgstr "Limpiar la salida OCR para las páginas seleccionadas" #: bin/gscan2pdf:575 msgid "Propert_ies" msgstr "Propie_dades" #: bin/gscan2pdf:576 msgid "Edit image properties" msgstr "Editar propiedades de imagen" #: bin/gscan2pdf:580 msgid "Prefere_nces" msgstr "Preferencias" #: bin/gscan2pdf:581 msgid "Edit preferences" msgstr "Editar preferencias" #: bin/gscan2pdf:585 msgid "_View" msgstr "_Vista" #: bin/gscan2pdf:588 msgid "Zoom _100%" msgstr "Zoom _100%" #: bin/gscan2pdf:589 msgid "Zoom to 100%" msgstr "Zoom al 100%" #: bin/gscan2pdf:593 msgid "Zoom to _fit" msgstr "Zoom hasta _ajustar" #: bin/gscan2pdf:594 msgid "Zoom to fit" msgstr "Zoom hasta ajustar" #: bin/gscan2pdf:598 msgid "Zoom _in" msgstr "Zoom acercar" #: bin/gscan2pdf:599 msgid "Zoom in" msgstr "Acercar" #: bin/gscan2pdf:603 msgid "Zoom _out" msgstr "Z_oom alejar" #: bin/gscan2pdf:604 msgid "Zoom out" msgstr "Zoom alejar" #: bin/gscan2pdf:609 bin/gscan2pdf:611 msgid "Rotate 90 clockwise" msgstr "Rotar 90 en sentido del reloj" #: bin/gscan2pdf:617 bin/gscan2pdf:619 msgid "Rotate 180" msgstr "Rotar 180" #: bin/gscan2pdf:625 bin/gscan2pdf:627 msgid "Rotate 90 anticlockwise" msgstr "Rotar 90 grados a la izquierda" #: bin/gscan2pdf:632 msgid "_Tools" msgstr "_Herramientas" #: bin/gscan2pdf:634 msgid "_Threshold" msgstr "U_mbral" #: bin/gscan2pdf:635 msgid "Change each pixel above this threshold to black" msgstr "Cambiar cada pixel debajo de este umbral a negro" #: bin/gscan2pdf:639 msgid "_Negate" msgstr "_Anular" #: bin/gscan2pdf:640 msgid "Converts black to white and vice versa" msgstr "Convertir negro a blanco y viceversa" #: bin/gscan2pdf:644 msgid "_Unsharp Mask" msgstr "Deformar Máscara" #: bin/gscan2pdf:645 msgid "Apply an unsharp mask" msgstr "Aplicar una máscara para deformar" #: bin/gscan2pdf:648 msgid "_Crop" msgstr "_Recortar" #: bin/gscan2pdf:649 msgid "Crop pages" msgstr "Recortar páginas" #: bin/gscan2pdf:653 msgid "_Clean up" msgstr "Limpiar" #: bin/gscan2pdf:654 bin/gscan2pdf:4085 msgid "Clean up scanned images with unpaper" msgstr "Limpiar las imágenes escaneadas con quitapapel" #: bin/gscan2pdf:657 msgid "_OCR" msgstr "_OCR" #: bin/gscan2pdf:658 msgid "Optical Character Recognition" msgstr "Reconocimiento óptico de caracteres" #: bin/gscan2pdf:660 msgid "U_ser-defined" msgstr "Definido por el u_suario" #: bin/gscan2pdf:663 bin/gscan2pdf:665 msgid "_Help" msgstr "_Ayuda" #: bin/gscan2pdf:666 msgid "Help" msgstr "Ayuda" #: bin/gscan2pdf:668 msgid "_About" msgstr "_Acerca de" #: bin/gscan2pdf:674 msgid "_Drag" msgstr "_Arrastrar" #: bin/gscan2pdf:675 msgid "Use the hand tool" msgstr "Usar la herramienta de mano" #: bin/gscan2pdf:680 msgid "Use the rectangular selection tool" msgstr "Usar la herramienta de selección por rectángulo" #: bin/gscan2pdf:684 msgid "_Paint" msgstr "_Pintar" #: bin/gscan2pdf:685 msgid "Use the painter tool" msgstr "Usar la herramienta de pintor" #: bin/gscan2pdf:965 lib/Gscan2pdf/Document.pm:2594 #: lib/Gscan2pdf/Document.pm:2595 msgid "Error copying page" msgstr "Error copiando la página" #: bin/gscan2pdf:1082 msgid "Image" msgstr "Imagen" #: bin/gscan2pdf:1117 msgid "OCR Output" msgstr "Resultado del OCR" #: bin/gscan2pdf:1174 msgid "Mode" msgstr "Modo" #: bin/gscan2pdf:1176 msgid "Lineart" msgstr "Trazos" #: bin/gscan2pdf:1177 msgid "Grayscale" msgstr "Escala de grises" #: bin/gscan2pdf:1178 msgid "Gray" msgstr "Gris" #: bin/gscan2pdf:1179 msgid "Color" msgstr "Color" #: bin/gscan2pdf:1180 msgid "Black & White" msgstr "Blanco y Negro" #: bin/gscan2pdf:1181 msgid "True Gray" msgstr "Gris Verdadero" #: bin/gscan2pdf:1182 msgid "Binary" msgstr "Binario" #: bin/gscan2pdf:1183 bin/gscan2pdf:1242 bin/gscan2pdf:1243 msgid "Auto" msgstr "Automático" #: bin/gscan2pdf:1184 msgid "Halftone" msgstr "Mediotono" #: bin/gscan2pdf:1185 msgid "24bit Color" msgstr "Color 24 bits" #: bin/gscan2pdf:1189 bin/gscan2pdf:2547 bin/gscan2pdf:2644 msgid "Compression" msgstr "Compresión" #: bin/gscan2pdf:1191 bin/gscan2pdf:2539 bin/gscan2pdf:2636 msgid "None" msgstr "Ninguno" #: bin/gscan2pdf:1192 bin/gscan2pdf:2537 bin/gscan2pdf:2601 bin/gscan2pdf:2622 msgid "JPEG" msgstr "JPEG" #: bin/gscan2pdf:1195 bin/gscan2pdf:8127 msgid "Resolution" msgstr "Resolución" #: bin/gscan2pdf:1196 msgid "Brightness" msgstr "Brillo" #: bin/gscan2pdf:1197 msgid "Gain" msgstr "Ganancia" #: bin/gscan2pdf:1198 msgid "Contrast" msgstr "Contraste" #: bin/gscan2pdf:1199 bin/gscan2pdf:6406 bin/gscan2pdf:6417 bin/gscan2pdf:6620 msgid "Threshold" msgstr "Umbral" #: bin/gscan2pdf:1201 msgid "Speed" msgstr "Velocidad" #: bin/gscan2pdf:1203 bin/gscan2pdf:1210 bin/gscan2pdf:1217 bin/gscan2pdf:1224 #: bin/gscan2pdf:1231 msgid "Yes" msgstr "Sí" #: bin/gscan2pdf:1204 bin/gscan2pdf:1211 bin/gscan2pdf:1218 bin/gscan2pdf:1225 #: bin/gscan2pdf:1232 msgid "No" msgstr "No" #: bin/gscan2pdf:1208 msgid "Batch scan" msgstr "Escaneo por lotes" #: bin/gscan2pdf:1215 bin/gscan2pdf:1222 msgid "Wait for button" msgstr "Esperar hasta pulsar el botón" #: bin/gscan2pdf:1229 msgid "Cache calibration" msgstr "Calibración de caché" #: bin/gscan2pdf:1236 msgid "Source" msgstr "Fuente" #: bin/gscan2pdf:1238 msgid "Normal" msgstr "Normal" #: bin/gscan2pdf:1239 msgid "ADF" msgstr "ADF" #: bin/gscan2pdf:1240 msgid "Automatic Document Feeder" msgstr "Alimentador automático de documentos" #: bin/gscan2pdf:1241 msgid "XPA" msgstr "XPA" #: bin/gscan2pdf:1244 msgid "Flatbed" msgstr "Escáner plano" #: bin/gscan2pdf:1245 msgid "Transparency Adapter" msgstr "Adaptador de transparencia" #: bin/gscan2pdf:1246 msgid "Transparency Unit" msgstr "Unidad de transparencia" #: bin/gscan2pdf:1249 bin/gscan2pdf:1251 msgid "Page Width" msgstr "Ancho de página" #: bin/gscan2pdf:1250 bin/gscan2pdf:1252 msgid "Page Height" msgstr "Altura de página" #: bin/gscan2pdf:1253 msgid "Top Overscan" msgstr "Sobreescaneo superior" #: bin/gscan2pdf:1254 msgid "Bottom Overscan" msgstr "Sobreescaneo inferior" #: bin/gscan2pdf:1256 bin/gscan2pdf:1263 msgid "ADF Mode" msgstr "Modo ADF" #: bin/gscan2pdf:1258 bin/gscan2pdf:1265 msgid "Simplex" msgstr "Simple" #: bin/gscan2pdf:1259 bin/gscan2pdf:1266 msgid "Duplex" msgstr "Duplex" #: bin/gscan2pdf:1301 bin/gscan2pdf:1306 msgid "Pick crashed session to restore" msgstr "Escoge la sesión que quieres restaurar" #: bin/gscan2pdf:1308 bin/gscan2pdf:2609 msgid "Session" msgstr "Sesión" #: bin/gscan2pdf:1338 #, perl-format msgid "" "Warning: unable to use %s for temporary storage. Defaulting to %s instead." msgstr "" "Advertencia: No se pudo usar %s para almacenamiento temporal. Utilizando %s " "por defecto." #: bin/gscan2pdf:1441 msgid "GOCR" msgstr "GOCR" #: bin/gscan2pdf:1441 msgid "Process image with GOCR." msgstr "Procesar imagen con GOCR." #: bin/gscan2pdf:1445 msgid "Tesseract" msgstr "Tesseract" #: bin/gscan2pdf:1446 msgid "Process image with Tesseract." msgstr "Procesar imagen con Tessract" #: bin/gscan2pdf:1450 msgid "Ocropus" msgstr "Ocropus" #: bin/gscan2pdf:1450 msgid "Process image with Ocropus." msgstr "Procesar imagen con Ocropus" #: bin/gscan2pdf:1454 msgid "Cuneiform" msgstr "Cuneiform" #: bin/gscan2pdf:1455 msgid "Process image with Cuneiform." msgstr "Procesar imagen con Cuneiform." #: bin/gscan2pdf:1461 msgid "Save image and Save as PDF both require imagemagick\n" msgstr "Guardar imagen y Guardar como PDF ambos requieren imagemagick\n" #: bin/gscan2pdf:1465 msgid "Save image requires libtiff\n" msgstr "Se requiere libtiff para guardar la imagen\n" #: bin/gscan2pdf:1469 msgid "Save as DjVu requires djvulibre-bin\n" msgstr "Se requiere djvulibre-bin para guardar como DjVu\n" #: bin/gscan2pdf:1473 msgid "Email as PDF requires xdg-email\n" msgstr "Email como PDF necesita xdg-email\n" #: bin/gscan2pdf:1518 msgid "The rotating options and unpaper support require perlmagick\n" msgstr "" "Las opciones para rotar y el soporte de unpaper requieren perlmagick\n" #: bin/gscan2pdf:1524 msgid "unpaper missing\n" msgstr "unpaper no encontrado\n" #: bin/gscan2pdf:1534 msgid "OCR requires gocr, tesseract, ocropus, or cuneiform\n" msgstr "OCR requiere gocr, tesseract, ocropus, o cuneiform\n" #: bin/gscan2pdf:1539 msgid "Warning: missing packages" msgstr "Aviso: paquetes perdidos" #: bin/gscan2pdf:1544 msgid "Don't show this message again" msgstr "No mostrar el mensaje otra vez" #: bin/gscan2pdf:1753 msgid "" "Some pages have not been saved.\n" "Do you really want to clear all pages?" msgstr "" "Algunas páginas no han sido guardadas.\n" "¿Seguro que quiere eliminar todas las páginas?" #: bin/gscan2pdf:1828 bin/gscan2pdf:1858 #, perl-format msgid "Process %i of %i (%s)" msgstr "Proceso %i de %i (%s)" #: bin/gscan2pdf:1867 #, perl-format msgid "Process %i of %i" msgstr "Proceso %i de %i" #: bin/gscan2pdf:1895 msgid "Open image" msgstr "Abrir imagen" #: bin/gscan2pdf:1903 bin/gscan2pdf:2797 bin/gscan2pdf:3113 msgid "Image files" msgstr "Archivos de imagen" #: bin/gscan2pdf:1940 msgid "Pages to extract" msgstr "Páginas a extraer" #: bin/gscan2pdf:1943 bin/gscan2pdf:2117 bin/gscan2pdf:2586 bin/gscan2pdf:3353 #: bin/gscan2pdf:3494 bin/gscan2pdf:4104 bin/gscan2pdf:4514 bin/gscan2pdf:5825 #: bin/gscan2pdf:6409 bin/gscan2pdf:6495 bin/gscan2pdf:6565 bin/gscan2pdf:6737 #: bin/gscan2pdf:7011 bin/gscan2pdf:7274 bin/gscan2pdf:7757 bin/gscan2pdf:8123 #: lib/Gscan2pdf/Dialog.pm:56 lib/Gscan2pdf/Dialog/Renumber.pm:80 #: lib/Gscan2pdf/Scanner/Dialog.pm:201 t/05_Dialog.t:28 msgid "vbox" msgstr "" #: bin/gscan2pdf:1946 msgid "First page to extract" msgstr "Primera página a extraer" #: bin/gscan2pdf:1953 msgid "Last page to extract" msgstr "Última página a extraer" #: bin/gscan2pdf:2042 lib/Gscan2pdf/Dialog/Renumber.pm:83 msgid "Page Range" msgstr "Rango de página" #: bin/gscan2pdf:2092 msgid "Metadata" msgstr "Métadatos" #: bin/gscan2pdf:2101 msgid "Date" msgstr "Fecha" #: bin/gscan2pdf:2114 msgid "Select Date" msgstr "Seleccionar una fecha" #: bin/gscan2pdf:2136 msgid "Today" msgstr "Hoy" #: bin/gscan2pdf:2150 msgid "Year-Month-Day" msgstr "Año-Mes-Día" #: bin/gscan2pdf:2156 msgid "Document author" msgstr "Autor del documento" #: bin/gscan2pdf:2165 msgid "Title" msgstr "Titulo" #: bin/gscan2pdf:2174 msgid "Subject" msgstr "Sujeto" #: bin/gscan2pdf:2183 msgid "Keywords" msgstr "Palabras claves" #: bin/gscan2pdf:2245 msgid "Editing text" msgstr "Editando texto" #: bin/gscan2pdf:2252 bin/gscan2pdf:2258 bin/gscan2pdf:2332 msgid "text" msgstr "texto" #: bin/gscan2pdf:2352 msgid "PDF filename" msgstr "Nombre del fichero PDF" #: bin/gscan2pdf:2381 msgid "PDF files" msgstr "Archivos PDF" #: bin/gscan2pdf:2405 bin/gscan2pdf:2823 bin/gscan2pdf:2880 bin/gscan2pdf:2976 #: bin/gscan2pdf:3035 bin/gscan2pdf:3087 bin/gscan2pdf:3275 #, perl-format msgid "File %s is read-only" msgstr "Archivo %s es de solo lectura" #: bin/gscan2pdf:2482 msgid "JPEG Quality" msgstr "Qualidad del JPEG" #: bin/gscan2pdf:2496 msgid "Downsample to" msgstr "Bajar ejemplo a" #: bin/gscan2pdf:2501 msgid "PPI" msgstr "PPP" #: bin/gscan2pdf:2520 msgid "Automatic" msgstr "Automático" #: bin/gscan2pdf:2521 msgid "Let gscan2pdf which type of compression to use." msgstr "Permitir a gscan2pdf elegir el tipo de compresión a usar." #: bin/gscan2pdf:2524 bin/gscan2pdf:2616 msgid "LZW" msgstr "LZW" #: bin/gscan2pdf:2525 bin/gscan2pdf:2617 msgid "Compress output with Lempel-Ziv & Welch encoding." msgstr "Comprimir salida con codificación Lempel-Ziv & Welch." #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Zip" msgstr "Zip" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Compress output with deflate encoding." msgstr "Comprimir salida con codificación deflate" #: bin/gscan2pdf:2529 bin/gscan2pdf:2624 msgid "Packbits" msgstr "Packbits" #: bin/gscan2pdf:2530 bin/gscan2pdf:2625 msgid "Compress output with Packbits encoding." msgstr "Comprimir salida con codificación Packbits" #: bin/gscan2pdf:2536 bin/gscan2pdf:2604 msgid "PNG" msgstr "PNG" #: bin/gscan2pdf:2536 msgid "Compress output with PNG encoding." msgstr "Comprimir salida usando codificación PNG." #: bin/gscan2pdf:2537 bin/gscan2pdf:2622 msgid "Compress output with JPEG encoding." msgstr "Comprimir salida con codificación JPG" #: bin/gscan2pdf:2540 bin/gscan2pdf:2637 msgid "Use no compression algorithm on output." msgstr "No usar algoritmo de compresión para la salida." #: bin/gscan2pdf:2594 msgid "Image type" msgstr "Tipo de imagen" #: bin/gscan2pdf:2598 msgid "PDF" msgstr "PDF" #: bin/gscan2pdf:2598 msgid "Portable Document Format" msgstr "Formato de documento portable" #: bin/gscan2pdf:2599 msgid "GIF" msgstr "GIF" #: bin/gscan2pdf:2599 msgid "CompuServe graphics interchange format" msgstr "CompuServe graphics interchange format" #: bin/gscan2pdf:2602 msgid "Joint Photographic Experts Group JFIF format" msgstr "Joint Photographic Experts Group JFIF format" #: bin/gscan2pdf:2604 msgid "Portable Network Graphics" msgstr "Portable Network Graphics" #: bin/gscan2pdf:2605 msgid "PNM" msgstr "PNM" #: bin/gscan2pdf:2605 msgid "Portable anymap" msgstr "Portable anymap" #: bin/gscan2pdf:2606 msgid "PS" msgstr "PS" #: bin/gscan2pdf:2606 msgid "Postscript" msgstr "Postscript" #: bin/gscan2pdf:2607 msgid "TIFF" msgstr "TIFF" #: bin/gscan2pdf:2607 msgid "Tagged Image File Format" msgstr "Tagged Image File Format" #: bin/gscan2pdf:2608 msgid "Text" msgstr "Texto" #: bin/gscan2pdf:2608 msgid "Plain text" msgstr "Texto plano" #: bin/gscan2pdf:2609 msgid "gscan2pdf session file" msgstr "archivo de sesión gscan2pdf" #: bin/gscan2pdf:2611 msgid "DjVu" msgstr "DjVu" #: bin/gscan2pdf:2611 msgid "Deja Vu" msgstr "" "Copy text \t\r\n" "Deja Vu" #: bin/gscan2pdf:2628 msgid "G3" msgstr "G3" #: bin/gscan2pdf:2629 msgid "Compress output with CCITT Group 3 encoding." msgstr "Comprimir salida con codificación CCITT Group 3" #: bin/gscan2pdf:2632 msgid "G4" msgstr "G4" #: bin/gscan2pdf:2633 msgid "Compress output with CCITT Group 4 encoding." msgstr "Comprimir salida con codificación CCITT Group 4" #: bin/gscan2pdf:2649 msgid "tiff" msgstr "tiff" #: bin/gscan2pdf:2681 msgid "Font for non-ASCII text" msgstr "Tipografía para el texto no-ASCII" #: bin/gscan2pdf:2790 msgid "TIFF filename" msgstr "Nombre del fichero TIFF" #: bin/gscan2pdf:2848 msgid "Text filename" msgstr "Nombre de archivo de texto" #: bin/gscan2pdf:2856 msgid "Text files" msgstr "Archivos de texto" #: bin/gscan2pdf:2944 msgid "PS filename" msgstr "PS nombre de archivo" #: bin/gscan2pdf:2951 msgid "Postscript files" msgstr "Archivos Postscript" #: bin/gscan2pdf:3003 msgid "gscan2pdf session filename" msgstr "nombre de archivo de sesión gscan2pdf" #: bin/gscan2pdf:3010 msgid "gscan2pdf session files" msgstr "Archivos de sesión de gscan2pdf" #: bin/gscan2pdf:3093 #, perl-format msgid "" "File %s exists.\n" "Really overwrite?" msgstr "" "El fichero %s existe\n" "¿Sobreescribirlo?" #: bin/gscan2pdf:3106 msgid "Image filename" msgstr "Nombre de archivo de la imagen" #: bin/gscan2pdf:3245 msgid "DjVu filename" msgstr "DjVu nombre de archivo" #: bin/gscan2pdf:3252 msgid "DjVu files" msgstr "Archivos DjVu" #: bin/gscan2pdf:3349 msgid "Email as PDF" msgstr "Email como PDF" #: bin/gscan2pdf:3454 msgid "Error creating email" msgstr "Error creando el email" #: bin/gscan2pdf:3490 bin/gscan2pdf:4313 msgid "Scan Document" msgstr "Escanear documento" #: bin/gscan2pdf:3507 lib/Gscan2pdf/Scanner/Dialog.pm:248 msgid "Page Options" msgstr "Opciones de página" #: bin/gscan2pdf:3510 lib/Gscan2pdf/Scanner/Dialog.pm:251 msgid "# Pages" msgstr "# Paginas" #: bin/gscan2pdf:3519 lib/Gscan2pdf/PageRange.pm:34 #: lib/Gscan2pdf/Scanner/Dialog.pm:261 msgid "All" msgstr "Todos" #: bin/gscan2pdf:3520 lib/Gscan2pdf/Scanner/Dialog.pm:262 msgid "Scan all pages" msgstr "Escanear todas las paginas" #: bin/gscan2pdf:3532 bin/gscan2pdf:3537 lib/Gscan2pdf/Scanner/Dialog.pm:274 #: lib/Gscan2pdf/Scanner/Dialog.pm:279 msgid "Set number of pages to scan" msgstr "Numero de paginas a escanear" #: bin/gscan2pdf:3550 lib/Gscan2pdf/Scanner/Dialog.pm:308 msgid "Extended page numbering" msgstr "Numeración de página extendido" #: bin/gscan2pdf:3554 lib/Gscan2pdf/Scanner/Dialog.pm:312 msgid "Page number" msgstr "Número de página" #: bin/gscan2pdf:3563 lib/Gscan2pdf/Dialog/Renumber.pm:111 #: lib/Gscan2pdf/Scanner/Dialog.pm:321 msgid "Start" msgstr "Iniciar" #: bin/gscan2pdf:3572 lib/Gscan2pdf/Dialog/Renumber.pm:132 #: lib/Gscan2pdf/Scanner/Dialog.pm:340 msgid "Increment" msgstr "Incremento" #: bin/gscan2pdf:3604 lib/Gscan2pdf/Scanner/Dialog.pm:372 msgid "Source document" msgstr "Fuente del documento" #: bin/gscan2pdf:3611 lib/Gscan2pdf/Scanner/Dialog.pm:379 msgid "Single sided" msgstr "Una cara" #: bin/gscan2pdf:3612 lib/Gscan2pdf/Scanner/Dialog.pm:380 msgid "Source document is single-sided" msgstr "El documento es a una cara" #: bin/gscan2pdf:3622 lib/Gscan2pdf/Scanner/Dialog.pm:390 msgid "Double sided" msgstr "Doble cara" #: bin/gscan2pdf:3623 lib/Gscan2pdf/Scanner/Dialog.pm:391 msgid "Source document is double-sided" msgstr "El documento esta a doble cara" #: bin/gscan2pdf:3629 lib/Gscan2pdf/Scanner/Dialog.pm:397 msgid "Side to scan" msgstr "Cara a escanear" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Facing" msgstr "Anverso" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Reverse" msgstr "Reverso" #: bin/gscan2pdf:3655 lib/Gscan2pdf/Scanner/Dialog.pm:418 msgid "Sets which side of a double-sided document is scanned" msgstr "Determina la cara que esta escaneada" #: bin/gscan2pdf:3719 msgid "Scan Options" msgstr "Opciones de Escaneo" #: bin/gscan2pdf:3722 msgid "Device-dependent options" msgstr "Opciones del dispositivo" #: bin/gscan2pdf:3729 lib/Gscan2pdf/Scanner/Dialog.pm:458 msgid "Scan profiles" msgstr "Perfiles de escaneo" #: bin/gscan2pdf:3778 bin/gscan2pdf:3784 lib/Gscan2pdf/Scanner/Dialog.pm:479 #: lib/Gscan2pdf/Scanner/Dialog.pm:485 msgid "Name of scan profile" msgstr "Nombre del pefil" #: bin/gscan2pdf:3828 lib/Gscan2pdf/Scanner/Dialog.pm:518 msgid "Scan" msgstr "Escanear" #: bin/gscan2pdf:3866 msgid "Must scan facing pages first" msgstr "Escanear las paginas primero" #: bin/gscan2pdf:3977 msgid "Post-processing" msgstr "Pos-procesando" #: bin/gscan2pdf:3986 bin/gscan2pdf:4008 msgid "Rotate" msgstr "Rotar" #: bin/gscan2pdf:3987 bin/gscan2pdf:4009 msgid "Rotate image after scanning" msgstr "Rotar imagen luego de scanear" #: bin/gscan2pdf:3990 msgid "Both sides" msgstr "Ambos lados" #: bin/gscan2pdf:3990 msgid "Both sides." msgstr "Ambos lados." #: bin/gscan2pdf:3991 msgid "Facing side" msgstr "Orientando lado" #: bin/gscan2pdf:3991 msgid "Facing side." msgstr "Orientando lado." #: bin/gscan2pdf:3992 msgid "Reverse side" msgstr "Lado reverso" #: bin/gscan2pdf:3992 msgid "Reverse side." msgstr "Lado reverso." #: bin/gscan2pdf:3995 bin/gscan2pdf:4013 msgid "Select side to rotate" msgstr "Selecciona lado a rotar" #: bin/gscan2pdf:3998 msgid "90" msgstr "90" #: bin/gscan2pdf:3998 msgid "Rotate image 90 degrees clockwise." msgstr "Rotar imagen 90 grados en sentido del reloj." #: bin/gscan2pdf:3999 msgid "180" msgstr "180" #: bin/gscan2pdf:3999 msgid "Rotate image 180 degrees clockwise." msgstr "Rotar imagen 180 grados en sentido del reloj." #: bin/gscan2pdf:4000 msgid "270" msgstr "270" #: bin/gscan2pdf:4000 msgid "Rotate image 90 degrees anticlockwise." msgstr "Rotar imagen 90 grados en sentido contrario al reloj." #: bin/gscan2pdf:4003 bin/gscan2pdf:4016 msgid "Select direction of rotation" msgstr "Seleccione direccion de la rotación" #: bin/gscan2pdf:4083 msgid "Clean up images" msgstr "Limpiar imágenes" #: bin/gscan2pdf:4094 msgid "Options" msgstr "Opciones" #: bin/gscan2pdf:4095 msgid "Set unpaper options" msgstr "Configurar opciones unpaper" #: bin/gscan2pdf:4101 msgid "unpaper options" msgstr "opciones unpaper" #: bin/gscan2pdf:4136 bin/gscan2pdf:4137 msgid "OCR scanned pages" msgstr "páginas escanadas OCR" #: bin/gscan2pdf:4151 msgid "Select OCR engine" msgstr "Selecciona motor OCR" #: bin/gscan2pdf:4210 lib/Gscan2pdf/Scanner/Dialog.pm:634 msgid "Fetching list of devices" msgstr "Consiguiendo lista de dispositivos" #: bin/gscan2pdf:4225 lib/Gscan2pdf/Scanner/Dialog.pm:654 msgid "No devices found" msgstr "No se encontraron dispositivos" #: bin/gscan2pdf:4367 bin/gscan2pdf:4732 bin/gscan2pdf:4777 bin/gscan2pdf:5214 #: lib/Gscan2pdf/Scanner/Dialog.pm:343 lib/Gscan2pdf/Scanner/Dialog.pm:348 #: t/061_Scanner_Dialog.t:38 t/061_Scanner_Dialog.t:95 msgid "page-number-increment" msgstr "" #: bin/gscan2pdf:4374 bin/gscan2pdf:4729 bin/gscan2pdf:4730 bin/gscan2pdf:4776 #: bin/gscan2pdf:5213 lib/Gscan2pdf/Scanner/Dialog.pm:361 #: t/061_Scanner_Dialog.t:37 msgid "page-number-start" msgstr "" #: bin/gscan2pdf:4663 lib/Gscan2pdf/Scanner/Dialog.pm:210 msgid "Device" msgstr "Dispositivo" #: bin/gscan2pdf:4671 lib/Gscan2pdf/Scanner/Dialog.pm:213 msgid "Rescan for devices" msgstr "Buscar dispositivos nuevamente" #: bin/gscan2pdf:4694 lib/Gscan2pdf/Scanner/Dialog.pm:237 msgid "Sets the device to be used for the scan" msgstr "Determina el dispositivo a utilizar para el escaneo" #: bin/gscan2pdf:4780 lib/Gscan2pdf/Scanner/Dialog.pm:300 #: t/061_Scanner_Dialog.t:35 msgid "num-pages" msgstr "" #: bin/gscan2pdf:4821 msgid "Scanning" msgstr "Escaneando" #: bin/gscan2pdf:4974 msgid "Unable to load image" msgstr "No es posible cargar la imagen" #: bin/gscan2pdf:5004 msgid "print-pages" msgstr "print-pages" #: bin/gscan2pdf:5008 msgid "page-ranges" msgstr "page-ranges" #: bin/gscan2pdf:5405 msgid "Patches gratefully received from:" msgstr "Parches de cortesia recibidos desde:" #: bin/gscan2pdf:5407 msgid "To aid the scan-to-PDF process" msgstr "Para ayudar en el escaneo a PDF" #: bin/gscan2pdf:5408 msgid "Copyright 2006--2012 Jeffrey Ratcliffe" msgstr "Copyright 2006–2012 Jeffrey Ratcliffe" #: bin/gscan2pdf:5492 bin/gscan2pdf:6028 msgid "The options cache seems to be empty. Reload device-dependent options?" msgstr "" "La caché de opciones parece estar vacía. ¿Recargar opciones dependientes del " "dispositivo?" #: bin/gscan2pdf:5519 bin/gscan2pdf:6054 msgid "Updating options" msgstr "Actualizando opciones" #: bin/gscan2pdf:5571 msgid "Paper size" msgstr "Tamaño del papel" #: bin/gscan2pdf:5572 bin/gscan2pdf:5672 bin/gscan2pdf:5840 bin/gscan2pdf:6769 msgid "Width" msgstr "Anchura" #: bin/gscan2pdf:5573 bin/gscan2pdf:5678 bin/gscan2pdf:5841 bin/gscan2pdf:6780 msgid "Height" msgstr "Altura" #: bin/gscan2pdf:5574 bin/gscan2pdf:5684 bin/gscan2pdf:5842 #: lib/Gscan2pdf/Unpaper.pm:124 lib/Gscan2pdf/Unpaper.pm:152 msgid "Left" msgstr "Izquierda" #: bin/gscan2pdf:5575 bin/gscan2pdf:5690 bin/gscan2pdf:5843 #: lib/Gscan2pdf/Unpaper.pm:129 lib/Gscan2pdf/Unpaper.pm:157 msgid "Top" msgstr "Superior" #: bin/gscan2pdf:5589 bin/gscan2pdf:5703 bin/gscan2pdf:6232 msgid "Manual" msgstr "Manual" #: bin/gscan2pdf:5590 bin/gscan2pdf:5700 msgid "Edit" msgstr "Editar" #: bin/gscan2pdf:5591 msgid "Selects or edits the paper size" msgstr "Selecciona o edita el tamaño del papel" #: bin/gscan2pdf:5673 msgid "Width of scan area" msgstr "Ancho del área de escaneo" #: bin/gscan2pdf:5679 msgid "Height of scan area" msgstr "Alto del área de escaneo" #: bin/gscan2pdf:5685 msgid "Top-left x position of scan area" msgstr "Superior-Izquierda posición x del área de escaneo" #: bin/gscan2pdf:5691 msgid "Top-left y position of scan area" msgstr "Superior-Izquierda posición y del área de escaneo" #: bin/gscan2pdf:5822 msgid "Edit paper size" msgstr "Editar tamaño de papel" #: bin/gscan2pdf:5839 msgid "Name" msgstr "Nombre" #: bin/gscan2pdf:5893 msgid "Cannot delete all paper sizes" msgstr "No es posible borrar todos los tamaños de papel" #: bin/gscan2pdf:5955 msgid "" "The following paper sizes are too big to be scanned by the selected device:" msgstr "" "Los siguientes tamaños de papel son demasiado grandes para ser escaneados " "por el dispositivo selecionado:" #: bin/gscan2pdf:6419 bin/gscan2pdf:6605 msgid "%" msgstr "%" #: bin/gscan2pdf:6492 msgid "Negate" msgstr "Negativo" #: bin/gscan2pdf:6562 msgid "Unsharp mask" msgstr "Máscara de Unsharp" #: bin/gscan2pdf:6573 msgid "Radius" msgstr "Radio" #: bin/gscan2pdf:6575 bin/gscan2pdf:6592 bin/gscan2pdf:6747 bin/gscan2pdf:6759 #: bin/gscan2pdf:6771 bin/gscan2pdf:6782 msgid "pixels" msgstr "píxeles" #: bin/gscan2pdf:6582 msgid "" "The radius of the Gaussian, in pixels, not counting the center pixel (0 = " "automatic)." msgstr "" "El radio de Gaussian, en píxeles, no contando el pixel central (0 = " "automático)" #: bin/gscan2pdf:6590 msgid "Sigma" msgstr "Sigma" #: bin/gscan2pdf:6597 msgid "The standard deviation of the Gaussian." msgstr "La desviación estandar del Gaussian." #: bin/gscan2pdf:6603 msgid "Amount" msgstr "Cantidad" #: bin/gscan2pdf:6612 msgid "" "The percentage of the difference between the original and the blur image " "that is added back into the original." msgstr "" "El porcentaje de la diferencia entre el orginal y la imagen blur que es " "agregado nuevamente dentro del original." #: bin/gscan2pdf:6627 msgid "" "The threshold, as a fraction of QuantumRange, needed to apply the difference " "amount." msgstr "" "El umbral, como una fracción de QuantumRange, necesaria para aplicar la suma " "diferente." #: bin/gscan2pdf:6733 msgid "Crop" msgstr "Recortar" #: bin/gscan2pdf:6745 msgid "x" msgstr "x" #: bin/gscan2pdf:6751 msgid "The x-position of the left hand edge of the crop." msgstr "La posición-x a la izquierda del borde del recorte." #: bin/gscan2pdf:6757 msgid "y" msgstr "y" #: bin/gscan2pdf:6763 msgid "The y-position of the top edge of the crop." msgstr "La posición-y a hacia arriba del borde del recorte." #: bin/gscan2pdf:6774 msgid "The width of the crop." msgstr "La anchura del recorte." #: bin/gscan2pdf:6785 msgid "The height of the crop." msgstr "La altura del recorte." #: bin/gscan2pdf:6906 msgid "label" msgstr "etiqueta" #: bin/gscan2pdf:7007 msgid "unpaper" msgstr "unpaper" #: bin/gscan2pdf:7216 bin/gscan2pdf:7244 msgid "Language to recognise" msgstr "Lenguaje a reconocer" #: bin/gscan2pdf:7227 msgid "English" msgstr "Inglés" #: bin/gscan2pdf:7270 msgid "OCR" msgstr "OCR" #: bin/gscan2pdf:7279 msgid "OCR Engine" msgstr "Motor OCR" #: bin/gscan2pdf:7323 msgid "Start OCR" msgstr "Iniciar OCR" #: bin/gscan2pdf:7339 msgid "No page selected" msgstr "No hay pagina seleccionada" #: bin/gscan2pdf:7374 msgid "" "Some pages have not been saved.\n" "Do you really want to quit?" msgstr "" "Algunas páginas no han sido salvadas.\n" "Realmente desea salir?" #: bin/gscan2pdf:7432 #, perl-format msgid "" "The help viewer requires module Gtk2::Ex::PodViewer\n" "Alternatively, try: %s %s\n" "\n" msgstr "" "El visor de ayuda necesita el modulo Gtk2::Ex::PodViewer\n" "Prueba con: %s%s\n" "\n" #: bin/gscan2pdf:7698 msgid "This operation cannot be undone. Are you sure?" msgstr "Esta operación no puede ser deshecha. Esta Ud. seguro?" #: bin/gscan2pdf:7753 msgid "Preferences" msgstr "Preferencias" #: bin/gscan2pdf:7762 msgid "Frontend" msgstr "Interfaz" #: bin/gscan2pdf:7766 msgid "libsane-perl" msgstr "libsane-perl" #: bin/gscan2pdf:7767 msgid "Scan using the perl bindings for SANE." msgstr "Escanee usando la conexiones Perl para SANE." #: bin/gscan2pdf:7770 msgid "scanimage" msgstr "scanimage" #: bin/gscan2pdf:7771 msgid "Scan using the scanimage frontend." msgstr "Escanee usando la interfaz scanimage." #: bin/gscan2pdf:7775 msgid "scanimage-perl" msgstr "scanimage-perl" #: bin/gscan2pdf:7776 msgid "Scan using the scanimage-perl frontend." msgstr "Escanee usando la interfaz scanimage-perl." #: bin/gscan2pdf:7779 msgid "scanadf-perl" msgstr "scanadf-perl" #: bin/gscan2pdf:7780 msgid "Scan using the scanadf-perl frontend." msgstr "Escanee usando la interfaz scanadf-perl." #: bin/gscan2pdf:7785 msgid "scanadf" msgstr "scanadf" #: bin/gscan2pdf:7786 msgid "Scan using the scanadf frontend." msgstr "Escanee usando la interfaz scanadf." #: bin/gscan2pdf:7791 msgid "Cycle SANE handle after scan" msgstr "" #: bin/gscan2pdf:7814 msgid "Default filename for PDFs" msgstr "Nombre predeterminado para PDFs" #: bin/gscan2pdf:7820 msgid "" "%a\t author\n" "%t\t title\n" "%y\t document's year\n" "%Y\t today's year\n" "%m\t document's month\n" "%M\t today's month\n" "%d\t document's day\n" "%D\t today's day" msgstr "" "%a\t autor\n" "%t\t título\n" "%y\t año del documento\n" "%Y\t año actual\n" "%m\t mes del documento\n" "%M\t mes actual\n" "%d\t día del documento\n" "%D\t día actual" #: bin/gscan2pdf:7830 msgid "Scan command prefix" msgstr "Prefijo de orden de escaneo" #: bin/gscan2pdf:7839 msgid "Restore window settings on startup" msgstr "Restaurar configuraciones de ventana al iniciar" #: bin/gscan2pdf:7845 msgid "Cache device-dependent options" msgstr "Opciones dependientes de dispositivo de la caché" #: bin/gscan2pdf:7851 msgid "Clear device-dependent options cache" msgstr "Limpiar las opciones dependientes de dispositivo de la caché" #: bin/gscan2pdf:7862 msgid "Temporary directory" msgstr "Directorio temporal" #: bin/gscan2pdf:7867 msgid "Browse" msgstr "Explorar" #: bin/gscan2pdf:7871 msgid "Select temporary directory" msgstr "Seleccionar directorio temporal" #: bin/gscan2pdf:7888 msgid "Blank threshold" msgstr "Umbral de vacío" #: bin/gscan2pdf:7893 msgid "Threshold used for selecting blank pages" msgstr "Umbral utilizado para seleccionar páginas vacías" #: bin/gscan2pdf:7899 msgid "Dark threshold" msgstr "Umbral oscuro" #: bin/gscan2pdf:7904 msgid "Threshold used for selecting dark pages" msgstr "Umbral utilizado para seleccionar páginas oscuras" #: bin/gscan2pdf:7910 msgid "OCR output" msgstr "Salida de OCR" #: bin/gscan2pdf:7915 msgid "Replace" msgstr "Reemplazar" #: bin/gscan2pdf:7917 msgid "" "Replace the contents of the text buffer with that from the OCR output." msgstr "" "Reemplazar el contenido del búfer de texto con aquel de la salida de OCR." #: bin/gscan2pdf:7920 msgid "Prepend" msgstr "Anteponer" #: bin/gscan2pdf:7921 msgid "Prepend the OCR output to the text buffer." msgstr "Añadir la salida del OCR al principio del buffer de texto." #: bin/gscan2pdf:7924 msgid "Append" msgstr "Anexar" #: bin/gscan2pdf:7925 msgid "Append the OCR output to the text buffer." msgstr "Añadir la salida del OCR al buffer de texto." #: bin/gscan2pdf:7933 msgid "User-defined tools" msgstr "Herramientas definidas por el usuario" #: bin/gscan2pdf:7954 msgid "View files on saving" msgstr "Ver archivos al guardar" #: bin/gscan2pdf:8000 msgid "" "You will have to restart gscanp2df for changes to the temporary directory to " "take effect." msgstr "" "Tiene que reiniciar gscanp2df para que se apliquen los cambios en el " "directorio temporal." #: bin/gscan2pdf:8092 msgid "" "Use %i and %o for the input and output filenames respectively, or a single " "%i if the image is to be modified in-place.\n" "\n" "The other variable available is:\n" "\n" "%r resolution" msgstr "" "Use %i y %o para los nombres de los ficheros de entrada y salida " "respectivamente, o unicamente %i si va a modificar directamente la imagen.\n" "\n" "La otra variable es:\n" "\n" "%r resolución" #: bin/gscan2pdf:8119 msgid "Properties" msgstr "Propiedades" #: lib/Gscan2pdf/Dialog.pm:63 lib/Gscan2pdf/Dialog.pm:79 t/05_Dialog.t:25 msgid "hide-on-delete" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:78 lib/Gscan2pdf/Dialog/Renumber.pm:162 msgid "Renumber" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:98 lib/Gscan2pdf/Dialog/Renumber.pm:207 #: lib/Gscan2pdf/Dialog/Renumber.pm:244 msgid "range" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:102 msgid "Page numbering" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:105 lib/Gscan2pdf/Scanner/Dialog.pm:254 msgid "border_width" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:126 lib/Gscan2pdf/Dialog/Renumber.pm:192 #: lib/Gscan2pdf/Dialog/Renumber.pm:242 t/07_Dialog_Renumber.t:33 #: t/07_Dialog_Renumber.t:45 t/07_Dialog_Renumber.t:59 #: t/07_Dialog_Renumber.t:66 msgid "start" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:147 lib/Gscan2pdf/Dialog/Renumber.pm:193 #: lib/Gscan2pdf/Dialog/Renumber.pm:243 t/07_Dialog_Renumber.t:34 #: t/07_Dialog_Renumber.t:46 t/07_Dialog_Renumber.t:60 #: t/07_Dialog_Renumber.t:67 msgid "increment" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:205 lib/Gscan2pdf/Dialog/Renumber.pm:241 msgid "document" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:295 msgid "" "The current settings would result in duplicate page numbers. Please select " "new start and increment values." msgstr "" #: lib/Gscan2pdf/Document.pm:83 msgid "Thumbnails" msgstr "Miniaturas" #: lib/Gscan2pdf/Document.pm:1502 msgid "Unknown DjVu file structure. Please contact the author." msgstr "Archivo Djvu sin estructura conocida. Por favor, contacte al autor." #: lib/Gscan2pdf/Document.pm:1558 #, perl-format msgid "%s is not a recognised image type" msgstr "%s no es un tipo de imagen reconocido" #: lib/Gscan2pdf/Document.pm:1580 lib/Gscan2pdf/Document.pm:1637 #, perl-format msgid "Importing page %i of %i" msgstr "Importando página %i de %i" #: lib/Gscan2pdf/Document.pm:1613 msgid "Error extracting images from PDF" msgstr "Error al extraer las imágenes del PDF" #: lib/Gscan2pdf/Document.pm:1692 msgid "Setting up PDF" msgstr "Configurando PDF" #: lib/Gscan2pdf/Document.pm:1703 #, perl-format msgid "Saving page %i of %i" msgstr "Guardando página %i de %i" #: lib/Gscan2pdf/Document.pm:1814 lib/Gscan2pdf/Document.pm:2136 #, perl-format msgid "Error compressing image: %s" msgstr "Error al comprimir la imagen: %s" #: lib/Gscan2pdf/Document.pm:1919 #, perl-format msgid "Error creating PDF image object: %s" msgstr "Error al crear el objeto de imagen PDF: %s" #: lib/Gscan2pdf/Document.pm:1930 #, perl-format msgid "Error embedding file image in %s format to PDF: %s" msgstr "Error al incrustar el archivo de imagen en formato %s al PDF: %s" #: lib/Gscan2pdf/Document.pm:1939 msgid "Closing PDF" msgstr "Cerrando el PDF" #: lib/Gscan2pdf/Document.pm:1955 #, perl-format msgid "Writing page %i of %i" msgstr "Escribiendo página %i de %i" #: lib/Gscan2pdf/Document.pm:2006 msgid "Error writing DjVu" msgstr "Error al escribir DjVu" #: lib/Gscan2pdf/Document.pm:2025 lib/Gscan2pdf/Document.pm:2227 #, perl-format msgid "Can't open file: %s" msgstr "No se puede abrir el archivo: %s" #: lib/Gscan2pdf/Document.pm:2050 msgid "Error adding text layer to DjVu" msgstr "Error al añadir la capa de texto al DjVu" #: lib/Gscan2pdf/Document.pm:2056 msgid "Closing DjVu" msgstr "Cerrando el DjVu" #: lib/Gscan2pdf/Document.pm:2063 msgid "Error closing DjVu" msgstr "Error al cerrar el DjVu" #: lib/Gscan2pdf/Document.pm:2078 #, perl-format msgid "Converting image %i of %i to TIFF" msgstr "Convirtiendo imagen %i de %i a TIFF" #: lib/Gscan2pdf/Document.pm:2105 msgid "Error writing TIFF" msgstr "Error escribiendo TIFF" #: lib/Gscan2pdf/Document.pm:2121 msgid "Concatenating TIFFs" msgstr "Concatenando TIFFs" #: lib/Gscan2pdf/Document.pm:2140 msgid "Converting to PS" msgstr "Convirtiendo a PS" #: lib/Gscan2pdf/Document.pm:2200 lib/Gscan2pdf/Document.pm:2215 msgid "Error saving image" msgstr "Error guardando la imágen" #: lib/Gscan2pdf/Frontend/CLI.pm:158 #, perl-format msgid "Scanning %i pages..." msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:163 #, perl-format msgid "Scanning page %i..." msgstr "Escaneado página %i..." #: lib/Gscan2pdf/Frontend/CLI.pm:188 lib/Gscan2pdf/Frontend/CLI.pm:296 msgid "Scanner warming up" msgstr "Calentando el Escaner" #: lib/Gscan2pdf/Frontend/CLI.pm:195 msgid "Document feeder out of documents" msgstr "Alimentador de documentos sin documentos" #: lib/Gscan2pdf/Frontend/CLI.pm:212 lib/Gscan2pdf/Frontend/CLI.pm:325 msgid "Device busy" msgstr "Dispositivo ocupado" #: lib/Gscan2pdf/Frontend/CLI.pm:218 lib/Gscan2pdf/Frontend/CLI.pm:330 msgid "Operation cancelled" msgstr "Operación cancelada" #: lib/Gscan2pdf/Frontend/CLI.pm:223 lib/Gscan2pdf/Frontend/CLI.pm:336 msgid "Unknown message: " msgstr "Mensaje desconocido : " #: lib/Gscan2pdf/Page.pm:68 lib/Gscan2pdf/Page.pm:73 #, perl-format msgid "Error importing image %s: %s" msgstr "" #: lib/Gscan2pdf/PageRange.pm:33 msgid "Selected" msgstr "Seleccionado" #: lib/Gscan2pdf/PageRange.pm:58 msgid "active" msgstr "activo" #: lib/Gscan2pdf/Scanner/Dialog.pm:218 t/061_Scanner_Dialog.t:33 #: t/061_Scanner_Dialog.t:59 msgid "device-list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:496 t/061_Scanner_Dialog.t:139 #: t/061_Scanner_Dialog.t:174 t/062_Scanner_Dialog.t:50 #: t/062_Scanner_Dialog.t:75 msgid "current-scan-options" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:567 msgid "logger" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:650 t/05_Dialog.t:24 msgid "transient-for" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:716 msgid "device_list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:749 t/061_Scanner_Dialog.t:32 msgid "device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:751 msgid "Opening device" msgstr "Abriendo dispositivo" #: lib/Gscan2pdf/Scanner/Dialog.pm:760 msgid "Retrieving options" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:41 msgid "Layout" msgstr "Diseño" #: lib/Gscan2pdf/Unpaper.pm:44 msgid "Single" msgstr "Sencillo" #: lib/Gscan2pdf/Unpaper.pm:46 msgid "One page per sheet, oriented upwards without rotation." msgstr "Una página por hoja, orientada hacia arriba sin rotación" #: lib/Gscan2pdf/Unpaper.pm:49 msgid "Double" msgstr "Doble" #: lib/Gscan2pdf/Unpaper.pm:51 msgid "" "Two pages per sheet, landscape orientation (one page on the left half, one " "page on the right half)." msgstr "" "Dos páginas por hoja, orientación apaisada (una hoja en la parte izquierda, " "una hoja en la parte derecha)" #: lib/Gscan2pdf/Unpaper.pm:59 msgid "# Output pages" msgstr "Nº de páginas de salida" #: lib/Gscan2pdf/Unpaper.pm:60 msgid "Number of pages to output." msgstr "Número de páginas a generar." #: lib/Gscan2pdf/Unpaper.pm:68 msgid "No deskew" msgstr "No restablecer" #: lib/Gscan2pdf/Unpaper.pm:69 msgid "Disable deskewing." msgstr "Desactivar restablecimiento" #: lib/Gscan2pdf/Unpaper.pm:74 msgid "No mask scan" msgstr "Sin máscara de escaneo" #: lib/Gscan2pdf/Unpaper.pm:75 msgid "Disable mask detection." msgstr "Deshabilitar detección de máscara." #: lib/Gscan2pdf/Unpaper.pm:80 msgid "No black filter" msgstr "Sin filtro negro" #: lib/Gscan2pdf/Unpaper.pm:81 msgid "Disable black area scan." msgstr "Desactivar el escaneado de la zona negra" #: lib/Gscan2pdf/Unpaper.pm:86 msgid "No gray filter" msgstr "Sin filtro gris" #: lib/Gscan2pdf/Unpaper.pm:87 msgid "Disable gray area scan." msgstr "Desactivar el escaneado de la zona gris" #: lib/Gscan2pdf/Unpaper.pm:92 msgid "No noise filter" msgstr "Sin filtro de ruido" #: lib/Gscan2pdf/Unpaper.pm:93 msgid "Disable noise filter." msgstr "Desactivar el filtro de ruido" #: lib/Gscan2pdf/Unpaper.pm:98 msgid "No blur filter" msgstr "Sin filtro blur" #: lib/Gscan2pdf/Unpaper.pm:99 msgid "Disable blur filter." msgstr "Desactivar filtro blur" #: lib/Gscan2pdf/Unpaper.pm:104 msgid "No border scan" msgstr "No escanear el borde" #: lib/Gscan2pdf/Unpaper.pm:105 msgid "Disable border scanning." msgstr "Desactivar el escaneado el borde" #: lib/Gscan2pdf/Unpaper.pm:110 msgid "No border align" msgstr "No alinear al borde" #: lib/Gscan2pdf/Unpaper.pm:112 msgid "Disable aligning of the area detected by border scanning." msgstr "Deshabilitar alineado al area detectada por el escaneo de bordes" #: lib/Gscan2pdf/Unpaper.pm:117 msgid "Deskew to edge" msgstr "Deskew hasta el borde" #: lib/Gscan2pdf/Unpaper.pm:119 msgid "" "Edges from which to scan for rotation. Each edge of a mask can be used to " "detect the mask's rotation. If multiple edges are specified, the average " "value will be used, unless the statistical deviation exceeds --deskew-scan-" "deviation." msgstr "" "Bordes desde el cual escanear para rotación. Cada borde de máscara puede ser " "usado para detectar la rotación de la máscara. Si múltiples bordes son " "especificados, la posibilidad promedio será utilizada, salvo que la " "estadística exceda la desviación --deskew-scan-deviation." #: lib/Gscan2pdf/Unpaper.pm:125 msgid "Use 'left' for scanning from the left edge." msgstr "Usa 'Izquierda' para escanear desde el borde izquierdo" #: lib/Gscan2pdf/Unpaper.pm:130 msgid "Use 'top' for scanning from the top edge." msgstr "Usa 'Arriba' para escanear desde el borde superior" #: lib/Gscan2pdf/Unpaper.pm:134 lib/Gscan2pdf/Unpaper.pm:162 msgid "Right" msgstr "A la derecha" #: lib/Gscan2pdf/Unpaper.pm:135 msgid "Use 'right' for scanning from the right edge." msgstr "Usa 'Derecho' para escanear desde el borde derecho" #: lib/Gscan2pdf/Unpaper.pm:139 lib/Gscan2pdf/Unpaper.pm:167 msgid "Bottom" msgstr "Abajo" #: lib/Gscan2pdf/Unpaper.pm:140 msgid "Use 'bottom' for scanning from the bottom." msgstr "Usa 'Abajo' para escanear desde el borde inferior" #: lib/Gscan2pdf/Unpaper.pm:147 msgid "Align to edge" msgstr "Alinear al margen" #: lib/Gscan2pdf/Unpaper.pm:148 msgid "Edge to which to align the page." msgstr "Borde hacia el cual para alinear la página" #: lib/Gscan2pdf/Unpaper.pm:153 msgid "Use 'left' to align to the left edge." msgstr "Use \"izquierda\" para alinear a la izquierda" #: lib/Gscan2pdf/Unpaper.pm:158 msgid "Use 'top' to align to the top edge." msgstr "Use \"arriba\" para alinear arriba" #: lib/Gscan2pdf/Unpaper.pm:163 msgid "Use 'right' to align to the right edge." msgstr "Use \"derecha\" para alinear a la derecha" #: lib/Gscan2pdf/Unpaper.pm:168 msgid "Use 'bottom' to align to the bottom." msgstr "Usa 'Abajo' para escanear desde el borde inferior" #: lib/Gscan2pdf/Unpaper.pm:174 msgid "Border margin" msgstr "Borde marginal" #: lib/Gscan2pdf/Unpaper.pm:178 msgid "Vertical margin" msgstr "Margen vertical" #: lib/Gscan2pdf/Unpaper.pm:180 msgid "" "Vertical distance to keep from the sheet edge when aligning a border area." msgstr "" "Distancia vertical para mantener desde el borde de la hoja cuando se alinea " "un borde de área." #: lib/Gscan2pdf/Unpaper.pm:189 msgid "Horizontal margin" msgstr "Margen horizontal" #: lib/Gscan2pdf/Unpaper.pm:191 msgid "" "Horizontal distance to keep from the sheet edge when aligning a border area." msgstr "" "Distancia horizontal para mantener desde el borde de la hoja cuando se " "alinea el borde del área." #: lib/Gscan2pdf/Unpaper.pm:202 msgid "White threshold" msgstr "Umbral blanco" #: lib/Gscan2pdf/Unpaper.pm:204 msgid "Brightness ratio above which a pixel is considered white." msgstr "Proporcion de brillo debajo del cual un pixel es considerado blanco" #: lib/Gscan2pdf/Unpaper.pm:212 msgid "Black threshold" msgstr "Umbral negro" #: lib/Gscan2pdf/Unpaper.pm:214 msgid "" "Brightness ratio below which a pixel is considered black (non-gray). This is " "used by the gray-filter. This value is also used when converting a grayscale " "image to black-and-white mode." msgstr "" "Proporcion de brillo debajo del cual un pixel es considerado negro (no " "gris). Esto es usado por el filtro de grises. Este valor es usado cuando se " "convierte una imagen en escala de gris a modo blanco y negro." #: lib/Gscan2pdf/Unpaper.pm:250 msgid "Deskew" msgstr "Deskew" #: lib/Gscan2pdf/Unpaper.pm:280 msgid "Border" msgstr "Borde" #: lib/Gscan2pdf/Unpaper.pm:337 msgid "Filters" msgstr "Filtros" #: t/05_Dialog.t:23 msgid "title" msgstr "" #: t/05_Dialog.t:26 t/05_Dialog.t:31 t/05_Dialog.t:32 t/05_Dialog.t:38 #: t/05_Dialog.t:39 msgid "border-width" msgstr "" #: t/061_Scanner_Dialog.t:34 msgid "dir" msgstr "" #: t/061_Scanner_Dialog.t:36 msgid "max-pages" msgstr "" #: t/061_Scanner_Dialog.t:39 msgid "side-to-scan" msgstr "" #: t/061_Scanner_Dialog.t:40 t/061_Scanner_Dialog.t:185 msgid "available-scan-options" msgstr "" #: t/061_Scanner_Dialog.t:171 t/062_Scanner_Dialog.t:73 msgid "profile" msgstr "" gscan2pdf-1.2.3/po/gscan2pdf-pt_BR.po0000644000175000017500000013431612243440507015634 0ustar jeffjeff# Brazilian Portuguese translation for gscan2pdf # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the gscan2pdf package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: gscan2pdf\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-10-25 08:12+0200\n" "PO-Revision-Date: 2013-10-30 17:07+0000\n" "Last-Translator: Rodrigo Zimmermann \n" "Language-Team: Brazilian Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-19 09:22+0000\n" "X-Generator: Launchpad (build 16831)\n" #: bin/gscan2pdf:157 msgid "Error displaying help" msgstr "Ocorreu um erro ao exibir a ajuda" #: bin/gscan2pdf:201 msgid "" "Error: unable to load settings.\n" "Backing up settings\n" "Reverting to defaults" msgstr "" "Erro: não foi possível carregar as configurações.\n" "Gravando cópia de segurança das configurações\n" "Revertendo as configurações para os padrões" #: bin/gscan2pdf:244 msgid "A4" msgstr "A4" #: bin/gscan2pdf:250 msgid "US Letter" msgstr "Carta (US)" #: bin/gscan2pdf:256 msgid "US Legal" msgstr "US Legal" #: bin/gscan2pdf:323 bin/gscan2pdf:344 #, perl-format msgid "Cannot read file: %s" msgstr "Não é possível ler o arquivo: %s" #: bin/gscan2pdf:451 msgid "_File" msgstr "_Arquivo" #: bin/gscan2pdf:454 msgid "_New" msgstr "_Novo" #: bin/gscan2pdf:455 msgid "Clears all pages" msgstr "Limpar todas as páginas" #: bin/gscan2pdf:459 msgid "_Open" msgstr "_Abrir" #: bin/gscan2pdf:460 msgid "Open image file(s)" msgstr "Abrir arquivo(s) de imagem:" #: bin/gscan2pdf:465 msgid "S_can" msgstr "D_igitalizar" #: bin/gscan2pdf:467 msgid "Scan document" msgstr "Digitalizar documento" #: bin/gscan2pdf:471 bin/gscan2pdf:472 bin/gscan2pdf:2582 msgid "Save" msgstr "Salvar" #: bin/gscan2pdf:476 msgid "_Email as PDF" msgstr "_Email como PDF" #: bin/gscan2pdf:477 msgid "Attach as PDF to a new email" msgstr "Anexar como PDF em um novo email" #: bin/gscan2pdf:480 msgid "_Print" msgstr "_Imprimir" #: bin/gscan2pdf:481 msgid "Print" msgstr "Imprimir" #: bin/gscan2pdf:485 msgid "_Compress temporary files" msgstr "_Comprimir arquivos temporários" #: bin/gscan2pdf:486 msgid "Compress temporary files" msgstr "Comprimir arquivos temporários" #: bin/gscan2pdf:490 msgid "_Quit" msgstr "Sai_r" #: bin/gscan2pdf:491 msgid "Quit" msgstr "Sair" #: bin/gscan2pdf:495 msgid "_Edit" msgstr "_Editar" #: bin/gscan2pdf:497 msgid "_Undo" msgstr "Desfa_zer" #: bin/gscan2pdf:497 msgid "Undo" msgstr "Desfazer" #: bin/gscan2pdf:501 msgid "_Redo" msgstr "_Refazer" #: bin/gscan2pdf:502 msgid "Redo" msgstr "Refazer" #: bin/gscan2pdf:506 msgid "Cu_t" msgstr "Recortar_x" #: bin/gscan2pdf:507 msgid "Cut selection" msgstr "Recorta a seleção" #: bin/gscan2pdf:511 msgid "_Copy" msgstr "_Copiar" #: bin/gscan2pdf:512 msgid "Copy selection" msgstr "Copia a seleção" #: bin/gscan2pdf:516 msgid "_Paste" msgstr "Colar_v" #: bin/gscan2pdf:517 msgid "Paste selection" msgstr "Cola a seleção" #: bin/gscan2pdf:521 msgid "_Delete" msgstr "Excluir" #: bin/gscan2pdf:522 msgid "Delete selected pages" msgstr "Excluir páginas selecionadas" #: bin/gscan2pdf:526 msgid "_Renumber" msgstr "_Re-numerar" #: bin/gscan2pdf:527 msgid "Renumber pages" msgstr "Renumerar páginas" #: bin/gscan2pdf:529 bin/gscan2pdf:679 msgid "_Select" msgstr "_Selecionar" #: bin/gscan2pdf:532 msgid "_All" msgstr "_Tudo" #: bin/gscan2pdf:533 msgid "Select all pages" msgstr "Selecionar todas as páginas" #: bin/gscan2pdf:536 msgid "_Odd" msgstr "Í_mpar" #: bin/gscan2pdf:537 msgid "Select all odd-numbered pages" msgstr "Selecionar todas as páginas ímpares" #: bin/gscan2pdf:541 msgid "_Even" msgstr "_Par" #: bin/gscan2pdf:542 msgid "Select all evenly-numbered pages" msgstr "Selecionar todas as páginas pares" #: bin/gscan2pdf:547 msgid "_Blank" msgstr "Em _branco" #: bin/gscan2pdf:548 msgid "Select pages with low standard deviation" msgstr "Selecionar páginas com baixa diferença padrão" #: bin/gscan2pdf:552 msgid "_Dark" msgstr "_Escuro" #: bin/gscan2pdf:553 msgid "Select dark pages" msgstr "Selecione páginas escuras" #: bin/gscan2pdf:558 msgid "_Modified" msgstr "_Modificado" #: bin/gscan2pdf:560 msgid "Select modified pages since last OCR" msgstr "Selecione as páginas OCR modificadas pela última vez" #: bin/gscan2pdf:565 msgid "_No OCR" msgstr "_Nenhum OCR" #: bin/gscan2pdf:566 msgid "Select pages with no OCR output" msgstr "Selecionar páginas sem saída OCR" #: bin/gscan2pdf:570 msgid "_Clear OCR" msgstr "Limpar O_CR" #: bin/gscan2pdf:571 msgid "Clear OCR output from selected pages" msgstr "Limpar saída OCR das páginas selecionadas" #: bin/gscan2pdf:575 msgid "Propert_ies" msgstr "Propr_iedades" #: bin/gscan2pdf:576 msgid "Edit image properties" msgstr "Editar propriedades da imagem" #: bin/gscan2pdf:580 msgid "Prefere_nces" msgstr "Preferê_ncias" #: bin/gscan2pdf:581 msgid "Edit preferences" msgstr "Editar preferências" #: bin/gscan2pdf:585 msgid "_View" msgstr "_Visualizar" #: bin/gscan2pdf:588 msgid "Zoom _100%" msgstr "Zoom _100%" #: bin/gscan2pdf:589 msgid "Zoom to 100%" msgstr "Zoom em 100%" #: bin/gscan2pdf:593 msgid "Zoom to _fit" msgstr "_Caber na tela" #: bin/gscan2pdf:594 msgid "Zoom to fit" msgstr "Ajustar para caber" #: bin/gscan2pdf:598 msgid "Zoom _in" msgstr "A_proximar" #: bin/gscan2pdf:599 msgid "Zoom in" msgstr "Aproximar" #: bin/gscan2pdf:603 msgid "Zoom _out" msgstr "A_fastar" #: bin/gscan2pdf:604 msgid "Zoom out" msgstr "Afastar" #: bin/gscan2pdf:609 bin/gscan2pdf:611 msgid "Rotate 90 clockwise" msgstr "Girar 90° horários" #: bin/gscan2pdf:617 bin/gscan2pdf:619 msgid "Rotate 180" msgstr "Girar 180°" #: bin/gscan2pdf:625 bin/gscan2pdf:627 msgid "Rotate 90 anticlockwise" msgstr "Girar 90° anti-horários" #: bin/gscan2pdf:632 msgid "_Tools" msgstr "Ferramen_tas" #: bin/gscan2pdf:634 msgid "_Threshold" msgstr "_Limite" #: bin/gscan2pdf:635 msgid "Change each pixel above this threshold to black" msgstr "Alterar cada pixel acima deste limiar para preto" #: bin/gscan2pdf:639 msgid "_Negate" msgstr "_Negativo" #: bin/gscan2pdf:640 msgid "Converts black to white and vice versa" msgstr "Converte para preto-e-branco e vice-versa" #: bin/gscan2pdf:644 msgid "_Unsharp Mask" msgstr "Máscara de ni_tidez" #: bin/gscan2pdf:645 msgid "Apply an unsharp mask" msgstr "Aplicar uma máscara de nitidez" #: bin/gscan2pdf:648 msgid "_Crop" msgstr "_Cortar" #: bin/gscan2pdf:649 msgid "Crop pages" msgstr "Cortar imagens" #: bin/gscan2pdf:653 msgid "_Clean up" msgstr "_Limpar" #: bin/gscan2pdf:654 bin/gscan2pdf:4085 msgid "Clean up scanned images with unpaper" msgstr "Limpar imagens com o recurso \"unpaper\"" #: bin/gscan2pdf:657 msgid "_OCR" msgstr "_OCR" #: bin/gscan2pdf:658 msgid "Optical Character Recognition" msgstr "Reconhecimento Óptico de Caractere" #: bin/gscan2pdf:660 msgid "U_ser-defined" msgstr "U_suário-definido" #: bin/gscan2pdf:663 bin/gscan2pdf:665 msgid "_Help" msgstr "_Ajuda" #: bin/gscan2pdf:666 msgid "Help" msgstr "Ajuda" #: bin/gscan2pdf:668 msgid "_About" msgstr "_Sobre" #: bin/gscan2pdf:674 msgid "_Drag" msgstr "_Arrastar" #: bin/gscan2pdf:675 msgid "Use the hand tool" msgstr "Usar a ferramenta de mão" #: bin/gscan2pdf:680 msgid "Use the rectangular selection tool" msgstr "Usar a ferramenta de seleção retangular" #: bin/gscan2pdf:684 msgid "_Paint" msgstr "_Pintura" #: bin/gscan2pdf:685 msgid "Use the painter tool" msgstr "Usar ferramenta de pintura" #: bin/gscan2pdf:965 lib/Gscan2pdf/Document.pm:2594 #: lib/Gscan2pdf/Document.pm:2595 msgid "Error copying page" msgstr "Erro ao copiar página" #: bin/gscan2pdf:1082 msgid "Image" msgstr "Imagem" #: bin/gscan2pdf:1117 msgid "OCR Output" msgstr "Saída OCR" #: bin/gscan2pdf:1174 msgid "Mode" msgstr "Modo" #: bin/gscan2pdf:1176 msgid "Lineart" msgstr "Linhas" #: bin/gscan2pdf:1177 msgid "Grayscale" msgstr "Escala de Cinza" #: bin/gscan2pdf:1178 msgid "Gray" msgstr "Cinza" #: bin/gscan2pdf:1179 msgid "Color" msgstr "Cor" #: bin/gscan2pdf:1180 msgid "Black & White" msgstr "Preto & Branco" #: bin/gscan2pdf:1181 msgid "True Gray" msgstr "Tons de cinza genuínos" #: bin/gscan2pdf:1182 msgid "Binary" msgstr "Binário" #: bin/gscan2pdf:1183 bin/gscan2pdf:1242 bin/gscan2pdf:1243 msgid "Auto" msgstr "Auto" #: bin/gscan2pdf:1184 msgid "Halftone" msgstr "Meio tom" #: bin/gscan2pdf:1185 msgid "24bit Color" msgstr "24bit Cor" #: bin/gscan2pdf:1189 bin/gscan2pdf:2547 bin/gscan2pdf:2644 msgid "Compression" msgstr "Compressão" #: bin/gscan2pdf:1191 bin/gscan2pdf:2539 bin/gscan2pdf:2636 msgid "None" msgstr "Nenhum" #: bin/gscan2pdf:1192 bin/gscan2pdf:2537 bin/gscan2pdf:2601 bin/gscan2pdf:2622 msgid "JPEG" msgstr "JPEG" #: bin/gscan2pdf:1195 bin/gscan2pdf:8127 msgid "Resolution" msgstr "Resolução" #: bin/gscan2pdf:1196 msgid "Brightness" msgstr "Brilho" #: bin/gscan2pdf:1197 msgid "Gain" msgstr "Ganho" #: bin/gscan2pdf:1198 msgid "Contrast" msgstr "Contraste" #: bin/gscan2pdf:1199 bin/gscan2pdf:6406 bin/gscan2pdf:6417 bin/gscan2pdf:6620 msgid "Threshold" msgstr "Princípio" #: bin/gscan2pdf:1201 msgid "Speed" msgstr "Velocidade" #: bin/gscan2pdf:1203 bin/gscan2pdf:1210 bin/gscan2pdf:1217 bin/gscan2pdf:1224 #: bin/gscan2pdf:1231 msgid "Yes" msgstr "Sim" #: bin/gscan2pdf:1204 bin/gscan2pdf:1211 bin/gscan2pdf:1218 bin/gscan2pdf:1225 #: bin/gscan2pdf:1232 msgid "No" msgstr "Não" #: bin/gscan2pdf:1208 msgid "Batch scan" msgstr "Digitalização em lotes" #: bin/gscan2pdf:1215 bin/gscan2pdf:1222 msgid "Wait for button" msgstr "Esperar botão" #: bin/gscan2pdf:1229 msgid "Cache calibration" msgstr "Calibração de cache" #: bin/gscan2pdf:1236 msgid "Source" msgstr "Fonte" #: bin/gscan2pdf:1238 msgid "Normal" msgstr "Normal" #: bin/gscan2pdf:1239 msgid "ADF" msgstr "ADF" #: bin/gscan2pdf:1240 msgid "Automatic Document Feeder" msgstr "Alimentador de Documento Automático" #: bin/gscan2pdf:1241 msgid "XPA" msgstr "XPA" #: bin/gscan2pdf:1244 msgid "Flatbed" msgstr "Fundo Plano" #: bin/gscan2pdf:1245 msgid "Transparency Adapter" msgstr "Adaptador de Transparência" #: bin/gscan2pdf:1246 msgid "Transparency Unit" msgstr "Unidade de Transparência" #: bin/gscan2pdf:1249 bin/gscan2pdf:1251 msgid "Page Width" msgstr "Largura da página" #: bin/gscan2pdf:1250 bin/gscan2pdf:1252 msgid "Page Height" msgstr "Altura da página" #: bin/gscan2pdf:1253 msgid "Top Overscan" msgstr "Cortar no topo" #: bin/gscan2pdf:1254 msgid "Bottom Overscan" msgstr "Cortar no fundo" #: bin/gscan2pdf:1256 bin/gscan2pdf:1263 msgid "ADF Mode" msgstr "Modo ADF" #: bin/gscan2pdf:1258 bin/gscan2pdf:1265 msgid "Simplex" msgstr "Simplex" #: bin/gscan2pdf:1259 bin/gscan2pdf:1266 msgid "Duplex" msgstr "Duplex" #: bin/gscan2pdf:1301 bin/gscan2pdf:1306 msgid "Pick crashed session to restore" msgstr "Escolher sessão problemática a restaurar" #: bin/gscan2pdf:1308 bin/gscan2pdf:2609 msgid "Session" msgstr "Sessão" #: bin/gscan2pdf:1338 #, perl-format msgid "" "Warning: unable to use %s for temporary storage. Defaulting to %s instead." msgstr "" "Aviso: Não foi possível usar %s para armazenamento temporário. Escolhendo %s " "por padrão." #: bin/gscan2pdf:1441 msgid "GOCR" msgstr "GOCR" #: bin/gscan2pdf:1441 msgid "Process image with GOCR." msgstr "Processar imagem com GOCR." #: bin/gscan2pdf:1445 msgid "Tesseract" msgstr "Tesseract" #: bin/gscan2pdf:1446 msgid "Process image with Tesseract." msgstr "Processar imagem com Tesseract." #: bin/gscan2pdf:1450 msgid "Ocropus" msgstr "Ocropus" #: bin/gscan2pdf:1450 msgid "Process image with Ocropus." msgstr "Processamento de imagem com Ocropus." #: bin/gscan2pdf:1454 msgid "Cuneiform" msgstr "Cuneiforme" #: bin/gscan2pdf:1455 msgid "Process image with Cuneiform." msgstr "Processar imagem com Cuneiformes." #: bin/gscan2pdf:1461 msgid "Save image and Save as PDF both require imagemagick\n" msgstr "" "Para salvar como imagem e como PDF é necessário a dependência imagemagick\n" #: bin/gscan2pdf:1465 msgid "Save image requires libtiff\n" msgstr "Para salvar como imagem é necessário a dependência libtiff\n" #: bin/gscan2pdf:1469 msgid "Save as DjVu requires djvulibre-bin\n" msgstr "Para salvar como Djvu é necessário a dependência djvulibre-bin\n" #: bin/gscan2pdf:1473 msgid "Email as PDF requires xdg-email\n" msgstr "" "Para enviar via e-mail como PDF é necessário a dependência xdg-email\n" #: bin/gscan2pdf:1518 msgid "The rotating options and unpaper support require perlmagick\n" msgstr "" "Para ter acesso às opções de rotação e ao suporte à \"unpaper\" é necessário " "a dependência perlmagick\n" #: bin/gscan2pdf:1524 msgid "unpaper missing\n" msgstr "unpaper não encontrado\n" #: bin/gscan2pdf:1534 msgid "OCR requires gocr, tesseract, ocropus, or cuneiform\n" msgstr "OCR necessita dos pacotes gocr, tesseract, ocropus, ou cuneiform\n" #: bin/gscan2pdf:1539 msgid "Warning: missing packages" msgstr "Aviso: faltam pacotes" #: bin/gscan2pdf:1544 msgid "Don't show this message again" msgstr "Não exibir esta mensagem novamente" #: bin/gscan2pdf:1753 msgid "" "Some pages have not been saved.\n" "Do you really want to clear all pages?" msgstr "" "Algumas páginas não foram salvas.\n" "Você realmente deseja limpar todas as páginas?" #: bin/gscan2pdf:1828 bin/gscan2pdf:1858 #, perl-format msgid "Process %i of %i (%s)" msgstr "Processo %i de %i (%s)" #: bin/gscan2pdf:1867 #, perl-format msgid "Process %i of %i" msgstr "Processo %i de %i" #: bin/gscan2pdf:1895 msgid "Open image" msgstr "Abrir imagem" #: bin/gscan2pdf:1903 bin/gscan2pdf:2797 bin/gscan2pdf:3113 msgid "Image files" msgstr "Arquivos de imagem" #: bin/gscan2pdf:1940 msgid "Pages to extract" msgstr "Páginas a serem extraídas" #: bin/gscan2pdf:1943 bin/gscan2pdf:2117 bin/gscan2pdf:2586 bin/gscan2pdf:3353 #: bin/gscan2pdf:3494 bin/gscan2pdf:4104 bin/gscan2pdf:4514 bin/gscan2pdf:5825 #: bin/gscan2pdf:6409 bin/gscan2pdf:6495 bin/gscan2pdf:6565 bin/gscan2pdf:6737 #: bin/gscan2pdf:7011 bin/gscan2pdf:7274 bin/gscan2pdf:7757 bin/gscan2pdf:8123 #: lib/Gscan2pdf/Dialog.pm:56 lib/Gscan2pdf/Dialog/Renumber.pm:80 #: lib/Gscan2pdf/Scanner/Dialog.pm:201 t/05_Dialog.t:28 msgid "vbox" msgstr "vbox" #: bin/gscan2pdf:1946 msgid "First page to extract" msgstr "Primeira página a ser extraída" #: bin/gscan2pdf:1953 msgid "Last page to extract" msgstr "Última página a ser extraída" #: bin/gscan2pdf:2042 lib/Gscan2pdf/Dialog/Renumber.pm:83 msgid "Page Range" msgstr "Seleção de páginas" #: bin/gscan2pdf:2092 msgid "Metadata" msgstr "Metadados" #: bin/gscan2pdf:2101 msgid "Date" msgstr "Data" #: bin/gscan2pdf:2114 msgid "Select Date" msgstr "Selecionar Data" #: bin/gscan2pdf:2136 msgid "Today" msgstr "Hoje" #: bin/gscan2pdf:2150 msgid "Year-Month-Day" msgstr "Ano-Mês-Dia" #: bin/gscan2pdf:2156 msgid "Document author" msgstr "Autor do documento" #: bin/gscan2pdf:2165 msgid "Title" msgstr "Título" #: bin/gscan2pdf:2174 msgid "Subject" msgstr "Assunto" #: bin/gscan2pdf:2183 msgid "Keywords" msgstr "Palavras-Chave" #: bin/gscan2pdf:2245 msgid "Editing text" msgstr "Editanto texto" #: bin/gscan2pdf:2252 bin/gscan2pdf:2258 bin/gscan2pdf:2332 msgid "text" msgstr "texto" #: bin/gscan2pdf:2352 msgid "PDF filename" msgstr "Nome de arquivo do PDF" #: bin/gscan2pdf:2381 msgid "PDF files" msgstr "Arquivos PDF" #: bin/gscan2pdf:2405 bin/gscan2pdf:2823 bin/gscan2pdf:2880 bin/gscan2pdf:2976 #: bin/gscan2pdf:3035 bin/gscan2pdf:3087 bin/gscan2pdf:3275 #, perl-format msgid "File %s is read-only" msgstr "Arquivo %s é somente leitura" #: bin/gscan2pdf:2482 msgid "JPEG Quality" msgstr "Qualidade JPEG" #: bin/gscan2pdf:2496 msgid "Downsample to" msgstr "Reduzir para" #: bin/gscan2pdf:2501 msgid "PPI" msgstr "PPI" #: bin/gscan2pdf:2520 msgid "Automatic" msgstr "Automático" #: bin/gscan2pdf:2521 msgid "Let gscan2pdf which type of compression to use." msgstr "Deixar que o gscan2pdf defina o tipo de compressão a ser usado" #: bin/gscan2pdf:2524 bin/gscan2pdf:2616 msgid "LZW" msgstr "LZW" #: bin/gscan2pdf:2525 bin/gscan2pdf:2617 msgid "Compress output with Lempel-Ziv & Welch encoding." msgstr "Comprimir saída com codificação Lempel-Ziv & Welch" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Zip" msgstr "Zip" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Compress output with deflate encoding." msgstr "Comprimir saída com codificação deflate" #: bin/gscan2pdf:2529 bin/gscan2pdf:2624 msgid "Packbits" msgstr "Packbits" #: bin/gscan2pdf:2530 bin/gscan2pdf:2625 msgid "Compress output with Packbits encoding." msgstr "Comprimir saída com codificação Packbits." #: bin/gscan2pdf:2536 bin/gscan2pdf:2604 msgid "PNG" msgstr "PNG" #: bin/gscan2pdf:2536 msgid "Compress output with PNG encoding." msgstr "Comprimir saída com codificação PNG." #: bin/gscan2pdf:2537 bin/gscan2pdf:2622 msgid "Compress output with JPEG encoding." msgstr "Comprimir saída com codificação JPEG." #: bin/gscan2pdf:2540 bin/gscan2pdf:2637 msgid "Use no compression algorithm on output." msgstr "Não utilizar algoritmo de compressão na saída." #: bin/gscan2pdf:2594 msgid "Image type" msgstr "Tipo de imagem" #: bin/gscan2pdf:2598 msgid "PDF" msgstr "PDF" #: bin/gscan2pdf:2598 msgid "Portable Document Format" msgstr "Portable Document Format" #: bin/gscan2pdf:2599 msgid "GIF" msgstr "GIF" #: bin/gscan2pdf:2599 msgid "CompuServe graphics interchange format" msgstr "CompuServe graphics interchange format" #: bin/gscan2pdf:2602 msgid "Joint Photographic Experts Group JFIF format" msgstr "Joint Photographic Experts Group JFIF format" #: bin/gscan2pdf:2604 msgid "Portable Network Graphics" msgstr "Portable Network Graphics" #: bin/gscan2pdf:2605 msgid "PNM" msgstr "PNM" #: bin/gscan2pdf:2605 msgid "Portable anymap" msgstr "Portable anymap" #: bin/gscan2pdf:2606 msgid "PS" msgstr "PS" #: bin/gscan2pdf:2606 msgid "Postscript" msgstr "Postscript" #: bin/gscan2pdf:2607 msgid "TIFF" msgstr "TIFF" #: bin/gscan2pdf:2607 msgid "Tagged Image File Format" msgstr "Tagged Image File Format" #: bin/gscan2pdf:2608 msgid "Text" msgstr "Texto" #: bin/gscan2pdf:2608 msgid "Plain text" msgstr "Texto simples" #: bin/gscan2pdf:2609 msgid "gscan2pdf session file" msgstr "Arquivo de sessão gscan2pdf" #: bin/gscan2pdf:2611 msgid "DjVu" msgstr "DjVu" #: bin/gscan2pdf:2611 msgid "Deja Vu" msgstr "Deja Vu" #: bin/gscan2pdf:2628 msgid "G3" msgstr "G3" #: bin/gscan2pdf:2629 msgid "Compress output with CCITT Group 3 encoding." msgstr "Comprimir saída com codificação CCIITT Group 3" #: bin/gscan2pdf:2632 msgid "G4" msgstr "G4" #: bin/gscan2pdf:2633 msgid "Compress output with CCITT Group 4 encoding." msgstr "Comprimir saída com codificação CCIITT Group 4" #: bin/gscan2pdf:2649 msgid "tiff" msgstr "tiff" #: bin/gscan2pdf:2681 msgid "Font for non-ASCII text" msgstr "Fonte para texto não-ASCII" #: bin/gscan2pdf:2790 msgid "TIFF filename" msgstr "Nome de arquivo TIFF" #: bin/gscan2pdf:2848 msgid "Text filename" msgstr "Nome de arquivo de texto" #: bin/gscan2pdf:2856 msgid "Text files" msgstr "Arquivos de texto" #: bin/gscan2pdf:2944 msgid "PS filename" msgstr "Nome de arquivo PS" #: bin/gscan2pdf:2951 msgid "Postscript files" msgstr "Arquivos PostScript" #: bin/gscan2pdf:3003 msgid "gscan2pdf session filename" msgstr "Nome de arquivo da sessão gscan2pdf" #: bin/gscan2pdf:3010 msgid "gscan2pdf session files" msgstr "Arquivos de sessão do gscan2pdf" #: bin/gscan2pdf:3093 #, perl-format msgid "" "File %s exists.\n" "Really overwrite?" msgstr "" "O arquivo %s já existe.\n" "Deseja sobrescrevê-lo?" #: bin/gscan2pdf:3106 msgid "Image filename" msgstr "Nome de arquivo de imagem" #: bin/gscan2pdf:3245 msgid "DjVu filename" msgstr "Nome de arquivo DjVu" #: bin/gscan2pdf:3252 msgid "DjVu files" msgstr "Arquivos DjVu" #: bin/gscan2pdf:3349 msgid "Email as PDF" msgstr "Enviar por e-mail como PDF" #: bin/gscan2pdf:3454 msgid "Error creating email" msgstr "Erro ao criar email" #: bin/gscan2pdf:3490 bin/gscan2pdf:4313 msgid "Scan Document" msgstr "Digitalizar documento" #: bin/gscan2pdf:3507 lib/Gscan2pdf/Scanner/Dialog.pm:248 msgid "Page Options" msgstr "Opções de Página" #: bin/gscan2pdf:3510 lib/Gscan2pdf/Scanner/Dialog.pm:251 msgid "# Pages" msgstr "# páginas" #: bin/gscan2pdf:3519 lib/Gscan2pdf/PageRange.pm:34 #: lib/Gscan2pdf/Scanner/Dialog.pm:261 msgid "All" msgstr "Todos" #: bin/gscan2pdf:3520 lib/Gscan2pdf/Scanner/Dialog.pm:262 msgid "Scan all pages" msgstr "Digitalizar todas as páginas" #: bin/gscan2pdf:3532 bin/gscan2pdf:3537 lib/Gscan2pdf/Scanner/Dialog.pm:274 #: lib/Gscan2pdf/Scanner/Dialog.pm:279 msgid "Set number of pages to scan" msgstr "Definir o número de páginas a ser digitalizado" #: bin/gscan2pdf:3550 lib/Gscan2pdf/Scanner/Dialog.pm:308 msgid "Extended page numbering" msgstr "Numeração de página extendida" #: bin/gscan2pdf:3554 lib/Gscan2pdf/Scanner/Dialog.pm:312 msgid "Page number" msgstr "Número da página" #: bin/gscan2pdf:3563 lib/Gscan2pdf/Dialog/Renumber.pm:111 #: lib/Gscan2pdf/Scanner/Dialog.pm:321 msgid "Start" msgstr "Iniciar" #: bin/gscan2pdf:3572 lib/Gscan2pdf/Dialog/Renumber.pm:132 #: lib/Gscan2pdf/Scanner/Dialog.pm:340 msgid "Increment" msgstr "Incrementar" #: bin/gscan2pdf:3604 lib/Gscan2pdf/Scanner/Dialog.pm:372 msgid "Source document" msgstr "Documento-origem" #: bin/gscan2pdf:3611 lib/Gscan2pdf/Scanner/Dialog.pm:379 msgid "Single sided" msgstr "Apenas uma face" #: bin/gscan2pdf:3612 lib/Gscan2pdf/Scanner/Dialog.pm:380 msgid "Source document is single-sided" msgstr "Documento-origem possui apenas uma face" #: bin/gscan2pdf:3622 lib/Gscan2pdf/Scanner/Dialog.pm:390 msgid "Double sided" msgstr "Dupla-face" #: bin/gscan2pdf:3623 lib/Gscan2pdf/Scanner/Dialog.pm:391 msgid "Source document is double-sided" msgstr "Documento-origem é de dupla-face" #: bin/gscan2pdf:3629 lib/Gscan2pdf/Scanner/Dialog.pm:397 msgid "Side to scan" msgstr "Lado a ser digitalizado" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Facing" msgstr "Frente" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Reverse" msgstr "Inverso" #: bin/gscan2pdf:3655 lib/Gscan2pdf/Scanner/Dialog.pm:418 msgid "Sets which side of a double-sided document is scanned" msgstr "" "Selecione qual a face/lado a digitalizar num documento com duas faces" #: bin/gscan2pdf:3719 msgid "Scan Options" msgstr "Opções de digitalização" #: bin/gscan2pdf:3722 msgid "Device-dependent options" msgstr "Opções específicas do dispositivo" #: bin/gscan2pdf:3729 lib/Gscan2pdf/Scanner/Dialog.pm:458 msgid "Scan profiles" msgstr "Perfis de digitalização" #: bin/gscan2pdf:3778 bin/gscan2pdf:3784 lib/Gscan2pdf/Scanner/Dialog.pm:479 #: lib/Gscan2pdf/Scanner/Dialog.pm:485 msgid "Name of scan profile" msgstr "Nome do perfil de digitalização" #: bin/gscan2pdf:3828 lib/Gscan2pdf/Scanner/Dialog.pm:518 msgid "Scan" msgstr "Digitalizar" #: bin/gscan2pdf:3866 msgid "Must scan facing pages first" msgstr "Digitalize primeiramente as páginas da frente" #: bin/gscan2pdf:3977 msgid "Post-processing" msgstr "Pós-processamento" #: bin/gscan2pdf:3986 bin/gscan2pdf:4008 msgid "Rotate" msgstr "Girar" #: bin/gscan2pdf:3987 bin/gscan2pdf:4009 msgid "Rotate image after scanning" msgstr "Girar imagem após digitalização" #: bin/gscan2pdf:3990 msgid "Both sides" msgstr "Ambos os lados" #: bin/gscan2pdf:3990 msgid "Both sides." msgstr "Ambos os lados." #: bin/gscan2pdf:3991 msgid "Facing side" msgstr "Frente do papel" #: bin/gscan2pdf:3991 msgid "Facing side." msgstr "Frente do papel." #: bin/gscan2pdf:3992 msgid "Reverse side" msgstr "Lado inverso" #: bin/gscan2pdf:3992 msgid "Reverse side." msgstr "Lado inverso." #: bin/gscan2pdf:3995 bin/gscan2pdf:4013 msgid "Select side to rotate" msgstr "Selecionar lado a ser girado" #: bin/gscan2pdf:3998 msgid "90" msgstr "90" #: bin/gscan2pdf:3998 msgid "Rotate image 90 degrees clockwise." msgstr "Girar imagem em 90 graus em sentido horário." #: bin/gscan2pdf:3999 msgid "180" msgstr "180" #: bin/gscan2pdf:3999 msgid "Rotate image 180 degrees clockwise." msgstr "Girar imagem a 180 graus em sentido horário." #: bin/gscan2pdf:4000 msgid "270" msgstr "270" #: bin/gscan2pdf:4000 msgid "Rotate image 90 degrees anticlockwise." msgstr "Girar imagem a 90 graus em sentido anti-horário." #: bin/gscan2pdf:4003 bin/gscan2pdf:4016 msgid "Select direction of rotation" msgstr "Selecionar direção da rotação" #: bin/gscan2pdf:4083 msgid "Clean up images" msgstr "Limpar imagens" #: bin/gscan2pdf:4094 msgid "Options" msgstr "Opções" #: bin/gscan2pdf:4095 msgid "Set unpaper options" msgstr "Configurar opções de unpaper" #: bin/gscan2pdf:4101 msgid "unpaper options" msgstr "opções de unpaper" #: bin/gscan2pdf:4136 bin/gscan2pdf:4137 msgid "OCR scanned pages" msgstr "Imagens digitalizadas com OCR" #: bin/gscan2pdf:4151 msgid "Select OCR engine" msgstr "Selecionar motor de OCR" #: bin/gscan2pdf:4210 lib/Gscan2pdf/Scanner/Dialog.pm:634 msgid "Fetching list of devices" msgstr "Obtendo lista de dispositivos" #: bin/gscan2pdf:4225 lib/Gscan2pdf/Scanner/Dialog.pm:654 msgid "No devices found" msgstr "Nenhum dispositivo encontrado" #: bin/gscan2pdf:4367 bin/gscan2pdf:4732 bin/gscan2pdf:4777 bin/gscan2pdf:5214 #: lib/Gscan2pdf/Scanner/Dialog.pm:343 lib/Gscan2pdf/Scanner/Dialog.pm:348 #: t/061_Scanner_Dialog.t:38 t/061_Scanner_Dialog.t:95 msgid "page-number-increment" msgstr "" #: bin/gscan2pdf:4374 bin/gscan2pdf:4729 bin/gscan2pdf:4730 bin/gscan2pdf:4776 #: bin/gscan2pdf:5213 lib/Gscan2pdf/Scanner/Dialog.pm:361 #: t/061_Scanner_Dialog.t:37 msgid "page-number-start" msgstr "" #: bin/gscan2pdf:4663 lib/Gscan2pdf/Scanner/Dialog.pm:210 msgid "Device" msgstr "Dispositivo" #: bin/gscan2pdf:4671 lib/Gscan2pdf/Scanner/Dialog.pm:213 msgid "Rescan for devices" msgstr "Verificar dispositivos novamente" #: bin/gscan2pdf:4694 lib/Gscan2pdf/Scanner/Dialog.pm:237 msgid "Sets the device to be used for the scan" msgstr "Define o dispositivo a ser utilizado para digitalização" #: bin/gscan2pdf:4780 lib/Gscan2pdf/Scanner/Dialog.pm:300 #: t/061_Scanner_Dialog.t:35 msgid "num-pages" msgstr "" #: bin/gscan2pdf:4821 msgid "Scanning" msgstr "Examinando" #: bin/gscan2pdf:4974 msgid "Unable to load image" msgstr "Incapaz de carregar imagem" #: bin/gscan2pdf:5004 msgid "print-pages" msgstr "" #: bin/gscan2pdf:5008 msgid "page-ranges" msgstr "" #: bin/gscan2pdf:5405 msgid "Patches gratefully received from:" msgstr "Patches recebidos com gratidão de:" #: bin/gscan2pdf:5407 msgid "To aid the scan-to-PDF process" msgstr "Auxiliar no processo de digitalização em PDF" #: bin/gscan2pdf:5408 msgid "Copyright 2006--2012 Jeffrey Ratcliffe" msgstr "Copyright 2006--2012 Jeffrey Ratcliffe" #: bin/gscan2pdf:5492 bin/gscan2pdf:6028 msgid "The options cache seems to be empty. Reload device-dependent options?" msgstr "" #: bin/gscan2pdf:5519 bin/gscan2pdf:6054 msgid "Updating options" msgstr "Atualizando opções" #: bin/gscan2pdf:5571 msgid "Paper size" msgstr "Tamanho do papel" #: bin/gscan2pdf:5572 bin/gscan2pdf:5672 bin/gscan2pdf:5840 bin/gscan2pdf:6769 msgid "Width" msgstr "Largura" #: bin/gscan2pdf:5573 bin/gscan2pdf:5678 bin/gscan2pdf:5841 bin/gscan2pdf:6780 msgid "Height" msgstr "Altura" #: bin/gscan2pdf:5574 bin/gscan2pdf:5684 bin/gscan2pdf:5842 #: lib/Gscan2pdf/Unpaper.pm:124 lib/Gscan2pdf/Unpaper.pm:152 msgid "Left" msgstr "Esquerda" #: bin/gscan2pdf:5575 bin/gscan2pdf:5690 bin/gscan2pdf:5843 #: lib/Gscan2pdf/Unpaper.pm:129 lib/Gscan2pdf/Unpaper.pm:157 msgid "Top" msgstr "Superior" #: bin/gscan2pdf:5589 bin/gscan2pdf:5703 bin/gscan2pdf:6232 msgid "Manual" msgstr "Manual" #: bin/gscan2pdf:5590 bin/gscan2pdf:5700 msgid "Edit" msgstr "Editar" #: bin/gscan2pdf:5591 msgid "Selects or edits the paper size" msgstr "Seleciona ou edita o tamanho do papel" #: bin/gscan2pdf:5673 msgid "Width of scan area" msgstr "Largura da área a ser digitalizada" #: bin/gscan2pdf:5679 msgid "Height of scan area" msgstr "Altura da área a ser digitalizada" #: bin/gscan2pdf:5685 msgid "Top-left x position of scan area" msgstr "Posição esquerda superior x área de digitalização" #: bin/gscan2pdf:5691 msgid "Top-left y position of scan area" msgstr "Posição superior esquerda e posição de área de digitalização" #: bin/gscan2pdf:5822 msgid "Edit paper size" msgstr "Editar tamanho do papel:" #: bin/gscan2pdf:5839 msgid "Name" msgstr "Nome" #: bin/gscan2pdf:5893 msgid "Cannot delete all paper sizes" msgstr "Não é possível remover todos os tamanhos de papel" #: bin/gscan2pdf:5955 msgid "" "The following paper sizes are too big to be scanned by the selected device:" msgstr "" "Os seguintes tamanhos de papéis são grandes demais para serem digitalizados " "pelo seguinte dispositivo:" #: bin/gscan2pdf:6419 bin/gscan2pdf:6605 msgid "%" msgstr "%" #: bin/gscan2pdf:6492 msgid "Negate" msgstr "Negativo" #: bin/gscan2pdf:6562 msgid "Unsharp mask" msgstr "Máscara de nitidez" #: bin/gscan2pdf:6573 msgid "Radius" msgstr "Raio" #: bin/gscan2pdf:6575 bin/gscan2pdf:6592 bin/gscan2pdf:6747 bin/gscan2pdf:6759 #: bin/gscan2pdf:6771 bin/gscan2pdf:6782 msgid "pixels" msgstr "pixels" #: bin/gscan2pdf:6582 msgid "" "The radius of the Gaussian, in pixels, not counting the center pixel (0 = " "automatic)." msgstr "" "O raio Gaussiano, em pixels, sem contar o pixel do centro (0 = automático)." #: bin/gscan2pdf:6590 msgid "Sigma" msgstr "Sigma" #: bin/gscan2pdf:6597 msgid "The standard deviation of the Gaussian." msgstr "A diferença padrão do Gaussiano." #: bin/gscan2pdf:6603 msgid "Amount" msgstr "Quantidade" #: bin/gscan2pdf:6612 msgid "" "The percentage of the difference between the original and the blur image " "that is added back into the original." msgstr "" "A porcentagem da diferença entre a imagem original e a imagem desfocada que " "é aplicada novamente à imagem original." #: bin/gscan2pdf:6627 msgid "" "The threshold, as a fraction of QuantumRange, needed to apply the difference " "amount." msgstr "" "O limiar, como uma fração de QuantumRange necessária para aplicar a soma " "diferente." #: bin/gscan2pdf:6733 msgid "Crop" msgstr "Cortar" #: bin/gscan2pdf:6745 msgid "x" msgstr "x" #: bin/gscan2pdf:6751 msgid "The x-position of the left hand edge of the crop." msgstr "" #: bin/gscan2pdf:6757 msgid "y" msgstr "y" #: bin/gscan2pdf:6763 msgid "The y-position of the top edge of the crop." msgstr "" #: bin/gscan2pdf:6774 msgid "The width of the crop." msgstr "" #: bin/gscan2pdf:6785 msgid "The height of the crop." msgstr "" #: bin/gscan2pdf:6906 msgid "label" msgstr "" #: bin/gscan2pdf:7007 msgid "unpaper" msgstr "unpaper" #: bin/gscan2pdf:7216 bin/gscan2pdf:7244 msgid "Language to recognise" msgstr "Idioma para reconhecimento" #: bin/gscan2pdf:7227 msgid "English" msgstr "Inglês" #: bin/gscan2pdf:7270 msgid "OCR" msgstr "OCR" #: bin/gscan2pdf:7279 msgid "OCR Engine" msgstr "Motor de OCR" #: bin/gscan2pdf:7323 msgid "Start OCR" msgstr "Iniciar OCR" #: bin/gscan2pdf:7339 msgid "No page selected" msgstr "Nenhuma página selecionada" #: bin/gscan2pdf:7374 msgid "" "Some pages have not been saved.\n" "Do you really want to quit?" msgstr "" "Algumas páginas não foram salvas.\n" "Deseja mesmo sair?" #: bin/gscan2pdf:7432 #, perl-format msgid "" "The help viewer requires module Gtk2::Ex::PodViewer\n" "Alternatively, try: %s %s\n" "\n" msgstr "" "O visualizador de ajuda requer o módulo Gtk2::Ex::PodViewer\n" "Alternativamente, tente. %s %s\n" "\n" #: bin/gscan2pdf:7698 msgid "This operation cannot be undone. Are you sure?" msgstr "Esta operação não pode ser desfeita. Tem certeza?" #: bin/gscan2pdf:7753 msgid "Preferences" msgstr "Preferências" #: bin/gscan2pdf:7762 msgid "Frontend" msgstr "" #: bin/gscan2pdf:7766 msgid "libsane-perl" msgstr "libsane-perl" #: bin/gscan2pdf:7767 msgid "Scan using the perl bindings for SANE." msgstr "" #: bin/gscan2pdf:7770 msgid "scanimage" msgstr "scanimage" #: bin/gscan2pdf:7771 msgid "Scan using the scanimage frontend." msgstr "" #: bin/gscan2pdf:7775 msgid "scanimage-perl" msgstr "scanimage-perl" #: bin/gscan2pdf:7776 msgid "Scan using the scanimage-perl frontend." msgstr "" #: bin/gscan2pdf:7779 msgid "scanadf-perl" msgstr "scanadf-perl" #: bin/gscan2pdf:7780 msgid "Scan using the scanadf-perl frontend." msgstr "" #: bin/gscan2pdf:7785 msgid "scanadf" msgstr "scanadf" #: bin/gscan2pdf:7786 msgid "Scan using the scanadf frontend." msgstr "" #: bin/gscan2pdf:7791 msgid "Cycle SANE handle after scan" msgstr "" #: bin/gscan2pdf:7814 msgid "Default filename for PDFs" msgstr "Nome de arquivo padrão para PDFs." #: bin/gscan2pdf:7820 msgid "" "%a\t author\n" "%t\t title\n" "%y\t document's year\n" "%Y\t today's year\n" "%m\t document's month\n" "%M\t today's month\n" "%d\t document's day\n" "%D\t today's day" msgstr "" #: bin/gscan2pdf:7830 msgid "Scan command prefix" msgstr "" #: bin/gscan2pdf:7839 msgid "Restore window settings on startup" msgstr "" #: bin/gscan2pdf:7845 msgid "Cache device-dependent options" msgstr "" #: bin/gscan2pdf:7851 msgid "Clear device-dependent options cache" msgstr "" #: bin/gscan2pdf:7862 msgid "Temporary directory" msgstr "Diretório temporário" #: bin/gscan2pdf:7867 msgid "Browse" msgstr "" #: bin/gscan2pdf:7871 msgid "Select temporary directory" msgstr "Selecionar diretório temporário" #: bin/gscan2pdf:7888 msgid "Blank threshold" msgstr "" #: bin/gscan2pdf:7893 msgid "Threshold used for selecting blank pages" msgstr "" #: bin/gscan2pdf:7899 msgid "Dark threshold" msgstr "" #: bin/gscan2pdf:7904 msgid "Threshold used for selecting dark pages" msgstr "" #: bin/gscan2pdf:7910 msgid "OCR output" msgstr "" #: bin/gscan2pdf:7915 msgid "Replace" msgstr "Substituir" #: bin/gscan2pdf:7917 msgid "" "Replace the contents of the text buffer with that from the OCR output." msgstr "" #: bin/gscan2pdf:7920 msgid "Prepend" msgstr "" #: bin/gscan2pdf:7921 msgid "Prepend the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7924 msgid "Append" msgstr "Anexar" #: bin/gscan2pdf:7925 msgid "Append the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7933 msgid "User-defined tools" msgstr "" #: bin/gscan2pdf:7954 msgid "View files on saving" msgstr "" #: bin/gscan2pdf:8000 msgid "" "You will have to restart gscanp2df for changes to the temporary directory to " "take effect." msgstr "" "Você terá que reiniciar o gscan2pdf para que as mudanças ao diretório " "temporário surtam efeito." #: bin/gscan2pdf:8092 msgid "" "Use %i and %o for the input and output filenames respectively, or a single " "%i if the image is to be modified in-place.\n" "\n" "The other variable available is:\n" "\n" "%r resolution" msgstr "" #: bin/gscan2pdf:8119 msgid "Properties" msgstr "Propriedades" #: lib/Gscan2pdf/Dialog.pm:63 lib/Gscan2pdf/Dialog.pm:79 t/05_Dialog.t:25 msgid "hide-on-delete" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:78 lib/Gscan2pdf/Dialog/Renumber.pm:162 msgid "Renumber" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:98 lib/Gscan2pdf/Dialog/Renumber.pm:207 #: lib/Gscan2pdf/Dialog/Renumber.pm:244 msgid "range" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:102 msgid "Page numbering" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:105 lib/Gscan2pdf/Scanner/Dialog.pm:254 msgid "border_width" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:126 lib/Gscan2pdf/Dialog/Renumber.pm:192 #: lib/Gscan2pdf/Dialog/Renumber.pm:242 t/07_Dialog_Renumber.t:33 #: t/07_Dialog_Renumber.t:45 t/07_Dialog_Renumber.t:59 #: t/07_Dialog_Renumber.t:66 msgid "start" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:147 lib/Gscan2pdf/Dialog/Renumber.pm:193 #: lib/Gscan2pdf/Dialog/Renumber.pm:243 t/07_Dialog_Renumber.t:34 #: t/07_Dialog_Renumber.t:46 t/07_Dialog_Renumber.t:60 #: t/07_Dialog_Renumber.t:67 msgid "increment" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:205 lib/Gscan2pdf/Dialog/Renumber.pm:241 msgid "document" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:295 msgid "" "The current settings would result in duplicate page numbers. Please select " "new start and increment values." msgstr "" #: lib/Gscan2pdf/Document.pm:83 msgid "Thumbnails" msgstr "Miniaturas" #: lib/Gscan2pdf/Document.pm:1502 msgid "Unknown DjVu file structure. Please contact the author." msgstr "" #: lib/Gscan2pdf/Document.pm:1558 #, perl-format msgid "%s is not a recognised image type" msgstr "%s não é um tipo de imagem reconhecido" #: lib/Gscan2pdf/Document.pm:1580 lib/Gscan2pdf/Document.pm:1637 #, perl-format msgid "Importing page %i of %i" msgstr "Importando página %i de %i" #: lib/Gscan2pdf/Document.pm:1613 msgid "Error extracting images from PDF" msgstr "Erro ao extrair imagens do PDF" #: lib/Gscan2pdf/Document.pm:1692 msgid "Setting up PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1703 #, perl-format msgid "Saving page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:1814 lib/Gscan2pdf/Document.pm:2136 #, perl-format msgid "Error compressing image: %s" msgstr "Erro ao comprimir imagem: %s" #: lib/Gscan2pdf/Document.pm:1919 #, perl-format msgid "Error creating PDF image object: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1930 #, perl-format msgid "Error embedding file image in %s format to PDF: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1939 msgid "Closing PDF" msgstr "Fechando PDF" #: lib/Gscan2pdf/Document.pm:1955 #, perl-format msgid "Writing page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:2006 msgid "Error writing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2025 lib/Gscan2pdf/Document.pm:2227 #, perl-format msgid "Can't open file: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:2050 msgid "Error adding text layer to DjVu" msgstr "Erro ao adicionar camada de texto ao DjVu" #: lib/Gscan2pdf/Document.pm:2056 msgid "Closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2063 msgid "Error closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2078 #, perl-format msgid "Converting image %i of %i to TIFF" msgstr "Convertendo imagem %i de %i para TIFF" #: lib/Gscan2pdf/Document.pm:2105 msgid "Error writing TIFF" msgstr "" #: lib/Gscan2pdf/Document.pm:2121 msgid "Concatenating TIFFs" msgstr "Concatenando TIFFs" #: lib/Gscan2pdf/Document.pm:2140 msgid "Converting to PS" msgstr "Convertendo para PS" #: lib/Gscan2pdf/Document.pm:2200 lib/Gscan2pdf/Document.pm:2215 msgid "Error saving image" msgstr "Erro ao salvar imagem" #: lib/Gscan2pdf/Frontend/CLI.pm:158 #, perl-format msgid "Scanning %i pages..." msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:163 #, perl-format msgid "Scanning page %i..." msgstr "Digitalizando página %i..." #: lib/Gscan2pdf/Frontend/CLI.pm:188 lib/Gscan2pdf/Frontend/CLI.pm:296 msgid "Scanner warming up" msgstr "Aquecendo a scanner" #: lib/Gscan2pdf/Frontend/CLI.pm:195 msgid "Document feeder out of documents" msgstr "Não há documentos no alimentador do dispositivo" #: lib/Gscan2pdf/Frontend/CLI.pm:212 lib/Gscan2pdf/Frontend/CLI.pm:325 msgid "Device busy" msgstr "Dispositivo ocupado" #: lib/Gscan2pdf/Frontend/CLI.pm:218 lib/Gscan2pdf/Frontend/CLI.pm:330 msgid "Operation cancelled" msgstr "Operação cancelada" #: lib/Gscan2pdf/Frontend/CLI.pm:223 lib/Gscan2pdf/Frontend/CLI.pm:336 msgid "Unknown message: " msgstr "Mensagem desconhecida: " #: lib/Gscan2pdf/Page.pm:68 lib/Gscan2pdf/Page.pm:73 #, perl-format msgid "Error importing image %s: %s" msgstr "" #: lib/Gscan2pdf/PageRange.pm:33 msgid "Selected" msgstr "Selecionado" #: lib/Gscan2pdf/PageRange.pm:58 msgid "active" msgstr "ativo" #: lib/Gscan2pdf/Scanner/Dialog.pm:218 t/061_Scanner_Dialog.t:33 #: t/061_Scanner_Dialog.t:59 msgid "device-list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:496 t/061_Scanner_Dialog.t:139 #: t/061_Scanner_Dialog.t:174 t/062_Scanner_Dialog.t:50 #: t/062_Scanner_Dialog.t:75 msgid "current-scan-options" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:567 msgid "logger" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:650 t/05_Dialog.t:24 msgid "transient-for" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:716 msgid "device_list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:749 t/061_Scanner_Dialog.t:32 msgid "device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:751 msgid "Opening device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:760 msgid "Retrieving options" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:41 msgid "Layout" msgstr "Disposição" #: lib/Gscan2pdf/Unpaper.pm:44 msgid "Single" msgstr "Única" #: lib/Gscan2pdf/Unpaper.pm:46 msgid "One page per sheet, oriented upwards without rotation." msgstr "Uma página por folha, orientada para cima e sem giro" #: lib/Gscan2pdf/Unpaper.pm:49 msgid "Double" msgstr "Duplo" #: lib/Gscan2pdf/Unpaper.pm:51 msgid "" "Two pages per sheet, landscape orientation (one page on the left half, one " "page on the right half)." msgstr "" "Duas páginas por folha em modo paisagem (uma página na metade esquerda, uma " "página na metade direita)." #: lib/Gscan2pdf/Unpaper.pm:59 msgid "# Output pages" msgstr "# Páginas de saída" #: lib/Gscan2pdf/Unpaper.pm:60 msgid "Number of pages to output." msgstr "Número de páginas para sair." #: lib/Gscan2pdf/Unpaper.pm:68 msgid "No deskew" msgstr "Sem alinhamento de imagem" #: lib/Gscan2pdf/Unpaper.pm:69 msgid "Disable deskewing." msgstr "Desativar alinhamento de imagem." #: lib/Gscan2pdf/Unpaper.pm:74 msgid "No mask scan" msgstr "Sem digitalização por máscara" #: lib/Gscan2pdf/Unpaper.pm:75 msgid "Disable mask detection." msgstr "Desativar digitalização por máscara" #: lib/Gscan2pdf/Unpaper.pm:80 msgid "No black filter" msgstr "Sem filtro preto" #: lib/Gscan2pdf/Unpaper.pm:81 msgid "Disable black area scan." msgstr "Desativar áera preta" #: lib/Gscan2pdf/Unpaper.pm:86 msgid "No gray filter" msgstr "Sem filtro cinza" #: lib/Gscan2pdf/Unpaper.pm:87 msgid "Disable gray area scan." msgstr "Desativar áera cinza de digitalização" #: lib/Gscan2pdf/Unpaper.pm:92 msgid "No noise filter" msgstr "Sem filtro para ruídos" #: lib/Gscan2pdf/Unpaper.pm:93 msgid "Disable noise filter." msgstr "Desativar filtro para ruídos" #: lib/Gscan2pdf/Unpaper.pm:98 msgid "No blur filter" msgstr "Sem filtro de desfoque" #: lib/Gscan2pdf/Unpaper.pm:99 msgid "Disable blur filter." msgstr "Desativar filtro de desfoque." #: lib/Gscan2pdf/Unpaper.pm:104 msgid "No border scan" msgstr "Sem digitalização de borda" #: lib/Gscan2pdf/Unpaper.pm:105 msgid "Disable border scanning." msgstr "Desativar digitalização de borda." #: lib/Gscan2pdf/Unpaper.pm:110 msgid "No border align" msgstr "Sem alinhamento de borda" #: lib/Gscan2pdf/Unpaper.pm:112 msgid "Disable aligning of the area detected by border scanning." msgstr "" "Desativar alinhamento da área detectada pela digitalização de bordas." #: lib/Gscan2pdf/Unpaper.pm:117 msgid "Deskew to edge" msgstr "Deskew até a borda" #: lib/Gscan2pdf/Unpaper.pm:119 msgid "" "Edges from which to scan for rotation. Each edge of a mask can be used to " "detect the mask's rotation. If multiple edges are specified, the average " "value will be used, unless the statistical deviation exceeds --deskew-scan-" "deviation." msgstr "" "Bordas a serem examinadas para rotação. Cada borda de uma máscara pode ser " "usada para detectar a rotação da máscara. Se múltiplas bordas forem " "especificadas, o valor médio será utilizado ao menos que o desvio " "estatístico exceda --deskew-scan-deviation." #: lib/Gscan2pdf/Unpaper.pm:125 msgid "Use 'left' for scanning from the left edge." msgstr "Use \"esquerda\" para digitalizar pela borda esquerda." #: lib/Gscan2pdf/Unpaper.pm:130 msgid "Use 'top' for scanning from the top edge." msgstr "Use \"topo\" para digitalizar pela borda do topo." #: lib/Gscan2pdf/Unpaper.pm:134 lib/Gscan2pdf/Unpaper.pm:162 msgid "Right" msgstr "Direita" #: lib/Gscan2pdf/Unpaper.pm:135 msgid "Use 'right' for scanning from the right edge." msgstr "Use \"direita\" para digitalizar pela borda da direita." #: lib/Gscan2pdf/Unpaper.pm:139 lib/Gscan2pdf/Unpaper.pm:167 msgid "Bottom" msgstr "Inferior" #: lib/Gscan2pdf/Unpaper.pm:140 msgid "Use 'bottom' for scanning from the bottom." msgstr "Use \"fundo\" para digitalizar pela borda do fundo." #: lib/Gscan2pdf/Unpaper.pm:147 msgid "Align to edge" msgstr "Alinhar com a borda" #: lib/Gscan2pdf/Unpaper.pm:148 msgid "Edge to which to align the page." msgstr "Borda para qual alinhar a página" #: lib/Gscan2pdf/Unpaper.pm:153 msgid "Use 'left' to align to the left edge." msgstr "Use \"esquerda\" para alinhar à borda esquerda." #: lib/Gscan2pdf/Unpaper.pm:158 msgid "Use 'top' to align to the top edge." msgstr "Use \"acima\" para alinhar a borda superior." #: lib/Gscan2pdf/Unpaper.pm:163 msgid "Use 'right' to align to the right edge." msgstr "Use \"direita\" para alinhar à borda direita." #: lib/Gscan2pdf/Unpaper.pm:168 msgid "Use 'bottom' to align to the bottom." msgstr "Use \"abaixo\" para digitalizar a borda inferior." #: lib/Gscan2pdf/Unpaper.pm:174 msgid "Border margin" msgstr "Margem da borda" #: lib/Gscan2pdf/Unpaper.pm:178 msgid "Vertical margin" msgstr "Margem vertical" #: lib/Gscan2pdf/Unpaper.pm:180 msgid "" "Vertical distance to keep from the sheet edge when aligning a border area." msgstr "" "Distância vertical a ser mantida da borda da folha ao alinhar uma área de " "borda." #: lib/Gscan2pdf/Unpaper.pm:189 msgid "Horizontal margin" msgstr "Margem horizontal" #: lib/Gscan2pdf/Unpaper.pm:191 msgid "" "Horizontal distance to keep from the sheet edge when aligning a border area." msgstr "" "Distância horizontal a ser mantida da borda da folha ao alinhar uma área de " "borda." #: lib/Gscan2pdf/Unpaper.pm:202 msgid "White threshold" msgstr "Limiar branco" #: lib/Gscan2pdf/Unpaper.pm:204 msgid "Brightness ratio above which a pixel is considered white." msgstr "Proporção de brilho acima do qual um pixel é considerado branco." #: lib/Gscan2pdf/Unpaper.pm:212 msgid "Black threshold" msgstr "Limiar preto" #: lib/Gscan2pdf/Unpaper.pm:214 msgid "" "Brightness ratio below which a pixel is considered black (non-gray). This is " "used by the gray-filter. This value is also used when converting a grayscale " "image to black-and-white mode." msgstr "" "Proporção de brilho abaixo do qual um pixel é considerado preto (sem tons de " "cinza). Isto é usado para filtro de cinza. Este valor é usado quando se " "converte uma imagem em escala de cinza para preto e branco." #: lib/Gscan2pdf/Unpaper.pm:250 msgid "Deskew" msgstr "Alinhamento" #: lib/Gscan2pdf/Unpaper.pm:280 msgid "Border" msgstr "Borda" #: lib/Gscan2pdf/Unpaper.pm:337 msgid "Filters" msgstr "Filtros" #: t/05_Dialog.t:23 msgid "title" msgstr "" #: t/05_Dialog.t:26 t/05_Dialog.t:31 t/05_Dialog.t:32 t/05_Dialog.t:38 #: t/05_Dialog.t:39 msgid "border-width" msgstr "" #: t/061_Scanner_Dialog.t:34 msgid "dir" msgstr "" #: t/061_Scanner_Dialog.t:36 msgid "max-pages" msgstr "" #: t/061_Scanner_Dialog.t:39 msgid "side-to-scan" msgstr "" #: t/061_Scanner_Dialog.t:40 t/061_Scanner_Dialog.t:185 msgid "available-scan-options" msgstr "" #: t/061_Scanner_Dialog.t:171 t/062_Scanner_Dialog.t:73 msgid "profile" msgstr "" gscan2pdf-1.2.3/po/gscan2pdf-fr.po0000644000175000017500000013302412243440507015230 0ustar jeffjeff# French translation for gscan2pdf # Copyright (c) 2006 Rosetta Contributors and Canonical Ltd 2006 # This file is distributed under the same license as the gscan2pdf package. # FIRST AUTHOR , 2006. # msgid "" msgstr "" "Project-Id-Version: gscan2pdf\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-10-25 08:12+0200\n" "PO-Revision-Date: 2013-05-24 14:43+0000\n" "Last-Translator: mavosaure \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-19 09:22+0000\n" "X-Generator: Launchpad (build 16831)\n" #: bin/gscan2pdf:157 msgid "Error displaying help" msgstr "" #: bin/gscan2pdf:201 msgid "" "Error: unable to load settings.\n" "Backing up settings\n" "Reverting to defaults" msgstr "" "Erreur: impossible de charger les paramètres.\n" "Sauvegarde des paramètres\n" "Retour aux paramètres par défaut" #: bin/gscan2pdf:244 msgid "A4" msgstr "A4" #: bin/gscan2pdf:250 msgid "US Letter" msgstr "Lettre US" #: bin/gscan2pdf:256 msgid "US Legal" msgstr "Légal US" #: bin/gscan2pdf:323 bin/gscan2pdf:344 #, perl-format msgid "Cannot read file: %s" msgstr "Impossible de lire le fichier : %s" #: bin/gscan2pdf:451 msgid "_File" msgstr "_Fichier" #: bin/gscan2pdf:454 msgid "_New" msgstr "_Nouveau" #: bin/gscan2pdf:455 msgid "Clears all pages" msgstr "Efface toutes les pages" #: bin/gscan2pdf:459 msgid "_Open" msgstr "_Ouvrir" #: bin/gscan2pdf:460 msgid "Open image file(s)" msgstr "" #: bin/gscan2pdf:465 msgid "S_can" msgstr "S_canner" #: bin/gscan2pdf:467 msgid "Scan document" msgstr "Numériser le document" #: bin/gscan2pdf:471 bin/gscan2pdf:472 bin/gscan2pdf:2582 msgid "Save" msgstr "Sauvegarder" #: bin/gscan2pdf:476 msgid "_Email as PDF" msgstr "_Email comme PDF" #: bin/gscan2pdf:477 msgid "Attach as PDF to a new email" msgstr "Attacher comme PDF dans un nouvel e-mail" #: bin/gscan2pdf:480 msgid "_Print" msgstr "_Imprimer" #: bin/gscan2pdf:481 msgid "Print" msgstr "Imprimer" #: bin/gscan2pdf:485 msgid "_Compress temporary files" msgstr "_Compresser les fichiers temporaires" #: bin/gscan2pdf:486 msgid "Compress temporary files" msgstr "Compresser les fichiers temporaires" #: bin/gscan2pdf:490 msgid "_Quit" msgstr "_Quitter" #: bin/gscan2pdf:491 msgid "Quit" msgstr "Quitter" #: bin/gscan2pdf:495 msgid "_Edit" msgstr "É_dition" #: bin/gscan2pdf:497 msgid "_Undo" msgstr "Annuler" #: bin/gscan2pdf:497 msgid "Undo" msgstr "Annuler" #: bin/gscan2pdf:501 msgid "_Redo" msgstr "Restaurer" #: bin/gscan2pdf:502 msgid "Redo" msgstr "Restaurer" #: bin/gscan2pdf:506 msgid "Cu_t" msgstr "C_ouper" #: bin/gscan2pdf:507 msgid "Cut selection" msgstr "Coupe la sélection" #: bin/gscan2pdf:511 msgid "_Copy" msgstr "_Copier" #: bin/gscan2pdf:512 msgid "Copy selection" msgstr "Copie la sélection" #: bin/gscan2pdf:516 msgid "_Paste" msgstr "_Coller" #: bin/gscan2pdf:517 msgid "Paste selection" msgstr "Colle la sélection" #: bin/gscan2pdf:521 msgid "_Delete" msgstr "_Supprimer" #: bin/gscan2pdf:522 msgid "Delete selected pages" msgstr "Supprimer les pages sélectionnées" #: bin/gscan2pdf:526 msgid "_Renumber" msgstr "_Renuméroter" #: bin/gscan2pdf:527 msgid "Renumber pages" msgstr "Renuméroter les pages" #: bin/gscan2pdf:529 bin/gscan2pdf:679 msgid "_Select" msgstr "_Sélectionner" #: bin/gscan2pdf:532 msgid "_All" msgstr "_Tout" #: bin/gscan2pdf:533 msgid "Select all pages" msgstr "Sélectionnez toutes les pages" #: bin/gscan2pdf:536 msgid "_Odd" msgstr "Paire" #: bin/gscan2pdf:537 msgid "Select all odd-numbered pages" msgstr "Sélectionner toutes les pages impaires" #: bin/gscan2pdf:541 msgid "_Even" msgstr "_Paire" #: bin/gscan2pdf:542 msgid "Select all evenly-numbered pages" msgstr "Sélectionner toutes les pages paires" #: bin/gscan2pdf:547 msgid "_Blank" msgstr "_Blanc" #: bin/gscan2pdf:548 msgid "Select pages with low standard deviation" msgstr "" #: bin/gscan2pdf:552 msgid "_Dark" msgstr "_Sombre" #: bin/gscan2pdf:553 msgid "Select dark pages" msgstr "Sélectionnez les pages sombres" #: bin/gscan2pdf:558 msgid "_Modified" msgstr "_Modifié" #: bin/gscan2pdf:560 msgid "Select modified pages since last OCR" msgstr "Sélectionner les pages modifiées depuis la dernière ROC" #: bin/gscan2pdf:565 msgid "_No OCR" msgstr "" #: bin/gscan2pdf:566 msgid "Select pages with no OCR output" msgstr "" #: bin/gscan2pdf:570 msgid "_Clear OCR" msgstr "" #: bin/gscan2pdf:571 msgid "Clear OCR output from selected pages" msgstr "Effacer la ROC des pages sélectionnées" #: bin/gscan2pdf:575 msgid "Propert_ies" msgstr "Propr_iétés" #: bin/gscan2pdf:576 msgid "Edit image properties" msgstr "Modifier les propriétés de l'image" #: bin/gscan2pdf:580 msgid "Prefere_nces" msgstr "Préfére_nces" #: bin/gscan2pdf:581 msgid "Edit preferences" msgstr "Modifier les préférences" #: bin/gscan2pdf:585 msgid "_View" msgstr "_Affichage" #: bin/gscan2pdf:588 msgid "Zoom _100%" msgstr "Zoom _100%" #: bin/gscan2pdf:589 msgid "Zoom to 100%" msgstr "Zoomer à 100 %" #: bin/gscan2pdf:593 msgid "Zoom to _fit" msgstr "_Adapter le zoom à la taille de la fenètre" #: bin/gscan2pdf:594 msgid "Zoom to fit" msgstr "Zoom ajusté" #: bin/gscan2pdf:598 msgid "Zoom _in" msgstr "Zoom a_vant" #: bin/gscan2pdf:599 msgid "Zoom in" msgstr "Zoom avant" #: bin/gscan2pdf:603 msgid "Zoom _out" msgstr "Zoom a_rrière" #: bin/gscan2pdf:604 msgid "Zoom out" msgstr "Zoom arrière" #: bin/gscan2pdf:609 bin/gscan2pdf:611 msgid "Rotate 90 clockwise" msgstr "Rotation de 90° dans le sens horaire" #: bin/gscan2pdf:617 bin/gscan2pdf:619 msgid "Rotate 180" msgstr "Rotation de 180°" #: bin/gscan2pdf:625 bin/gscan2pdf:627 msgid "Rotate 90 anticlockwise" msgstr "Rotation de 90° dans le sens antihoraire" #: bin/gscan2pdf:632 msgid "_Tools" msgstr "Outils" #: bin/gscan2pdf:634 msgid "_Threshold" msgstr "_Seuil" #: bin/gscan2pdf:635 msgid "Change each pixel above this threshold to black" msgstr "Echange chaque pixel en dessous de ce seuil par du noir." #: bin/gscan2pdf:639 msgid "_Negate" msgstr "_Inverser" #: bin/gscan2pdf:640 msgid "Converts black to white and vice versa" msgstr "Convertir en Noir et Blanc et vice versa" #: bin/gscan2pdf:644 msgid "_Unsharp Mask" msgstr "_Masque Flou" #: bin/gscan2pdf:645 msgid "Apply an unsharp mask" msgstr "Appliquer un masque flou" #: bin/gscan2pdf:648 msgid "_Crop" msgstr "Dé_coupage" #: bin/gscan2pdf:649 msgid "Crop pages" msgstr "Recadrer les pages" #: bin/gscan2pdf:653 msgid "_Clean up" msgstr "_Nettoyer" #: bin/gscan2pdf:654 bin/gscan2pdf:4085 msgid "Clean up scanned images with unpaper" msgstr "Nettoyer les images scannées avec unpaper" #: bin/gscan2pdf:657 msgid "_OCR" msgstr "R_OC" #: bin/gscan2pdf:658 msgid "Optical Character Recognition" msgstr "Reconnaissance optique de caractères" #: bin/gscan2pdf:660 msgid "U_ser-defined" msgstr "" #: bin/gscan2pdf:663 bin/gscan2pdf:665 msgid "_Help" msgstr "_Aide" #: bin/gscan2pdf:666 msgid "Help" msgstr "Aide" #: bin/gscan2pdf:668 msgid "_About" msgstr "_À propos" #: bin/gscan2pdf:674 msgid "_Drag" msgstr "_Glisser" #: bin/gscan2pdf:675 msgid "Use the hand tool" msgstr "Utilisez l'outil main" #: bin/gscan2pdf:680 msgid "Use the rectangular selection tool" msgstr "Utiliser l'outil de sélection rectangulaire" #: bin/gscan2pdf:684 msgid "_Paint" msgstr "_Dessiner" #: bin/gscan2pdf:685 msgid "Use the painter tool" msgstr "Utiliser l'outil de peinture" #: bin/gscan2pdf:965 lib/Gscan2pdf/Document.pm:2594 #: lib/Gscan2pdf/Document.pm:2595 msgid "Error copying page" msgstr "Erreur de copie de page" #: bin/gscan2pdf:1082 msgid "Image" msgstr "Image" #: bin/gscan2pdf:1117 msgid "OCR Output" msgstr "" #: bin/gscan2pdf:1174 msgid "Mode" msgstr "Mode" #: bin/gscan2pdf:1176 msgid "Lineart" msgstr "Traits" #: bin/gscan2pdf:1177 msgid "Grayscale" msgstr "Nuances de gris" #: bin/gscan2pdf:1178 msgid "Gray" msgstr "Gris" #: bin/gscan2pdf:1179 msgid "Color" msgstr "Couleur" #: bin/gscan2pdf:1180 msgid "Black & White" msgstr "Noir et blanc" #: bin/gscan2pdf:1181 msgid "True Gray" msgstr "Vrai Gris" #: bin/gscan2pdf:1182 msgid "Binary" msgstr "Noir et blanc" #: bin/gscan2pdf:1183 bin/gscan2pdf:1242 bin/gscan2pdf:1243 msgid "Auto" msgstr "Auto" #: bin/gscan2pdf:1184 msgid "Halftone" msgstr "Demi-teintes" #: bin/gscan2pdf:1185 msgid "24bit Color" msgstr "Couleur 24 bits" #: bin/gscan2pdf:1189 bin/gscan2pdf:2547 bin/gscan2pdf:2644 msgid "Compression" msgstr "Compression" #: bin/gscan2pdf:1191 bin/gscan2pdf:2539 bin/gscan2pdf:2636 msgid "None" msgstr "Aucun" #: bin/gscan2pdf:1192 bin/gscan2pdf:2537 bin/gscan2pdf:2601 bin/gscan2pdf:2622 msgid "JPEG" msgstr "JPEG" #: bin/gscan2pdf:1195 bin/gscan2pdf:8127 msgid "Resolution" msgstr "Résolution" #: bin/gscan2pdf:1196 msgid "Brightness" msgstr "Luminosité" #: bin/gscan2pdf:1197 msgid "Gain" msgstr "Gain" #: bin/gscan2pdf:1198 msgid "Contrast" msgstr "Contraste" #: bin/gscan2pdf:1199 bin/gscan2pdf:6406 bin/gscan2pdf:6417 bin/gscan2pdf:6620 msgid "Threshold" msgstr "Seuil" #: bin/gscan2pdf:1201 msgid "Speed" msgstr "Vitesse" #: bin/gscan2pdf:1203 bin/gscan2pdf:1210 bin/gscan2pdf:1217 bin/gscan2pdf:1224 #: bin/gscan2pdf:1231 msgid "Yes" msgstr "Oui" #: bin/gscan2pdf:1204 bin/gscan2pdf:1211 bin/gscan2pdf:1218 bin/gscan2pdf:1225 #: bin/gscan2pdf:1232 msgid "No" msgstr "Non" #: bin/gscan2pdf:1208 msgid "Batch scan" msgstr "Scan par lot" #: bin/gscan2pdf:1215 bin/gscan2pdf:1222 msgid "Wait for button" msgstr "Attente du bouton" #: bin/gscan2pdf:1229 msgid "Cache calibration" msgstr "Calibration du cache" #: bin/gscan2pdf:1236 msgid "Source" msgstr "Source" #: bin/gscan2pdf:1238 msgid "Normal" msgstr "Normal" #: bin/gscan2pdf:1239 msgid "ADF" msgstr "Chargeur automatique de documents (ADF)" #: bin/gscan2pdf:1240 msgid "Automatic Document Feeder" msgstr "Chargeur automatique de document" #: bin/gscan2pdf:1241 msgid "XPA" msgstr "Parallaxe X" #: bin/gscan2pdf:1244 msgid "Flatbed" msgstr "À plat" #: bin/gscan2pdf:1245 msgid "Transparency Adapter" msgstr "Adaptateur pour transparents" #: bin/gscan2pdf:1246 msgid "Transparency Unit" msgstr "Adaptateur pour transparents" #: bin/gscan2pdf:1249 bin/gscan2pdf:1251 msgid "Page Width" msgstr "Largeur de page" #: bin/gscan2pdf:1250 bin/gscan2pdf:1252 msgid "Page Height" msgstr "Hauteur de la page" #: bin/gscan2pdf:1253 msgid "Top Overscan" msgstr "" #: bin/gscan2pdf:1254 msgid "Bottom Overscan" msgstr "" #: bin/gscan2pdf:1256 bin/gscan2pdf:1263 msgid "ADF Mode" msgstr "Mode Chargeur automatique de documents (ADF)" #: bin/gscan2pdf:1258 bin/gscan2pdf:1265 msgid "Simplex" msgstr "Recto" #: bin/gscan2pdf:1259 bin/gscan2pdf:1266 msgid "Duplex" msgstr "Recto-verso" #: bin/gscan2pdf:1301 bin/gscan2pdf:1306 msgid "Pick crashed session to restore" msgstr "" #: bin/gscan2pdf:1308 bin/gscan2pdf:2609 msgid "Session" msgstr "Session" #: bin/gscan2pdf:1338 #, perl-format msgid "" "Warning: unable to use %s for temporary storage. Defaulting to %s instead." msgstr "" #: bin/gscan2pdf:1441 msgid "GOCR" msgstr "GOCR" #: bin/gscan2pdf:1441 msgid "Process image with GOCR." msgstr "Analyser l'image avec GOCR" #: bin/gscan2pdf:1445 msgid "Tesseract" msgstr "Tesseract" #: bin/gscan2pdf:1446 msgid "Process image with Tesseract." msgstr "Analyser l'image avec Tesseract" #: bin/gscan2pdf:1450 msgid "Ocropus" msgstr "Ocropus" #: bin/gscan2pdf:1450 msgid "Process image with Ocropus." msgstr "" #: bin/gscan2pdf:1454 msgid "Cuneiform" msgstr "Cunéiforme" #: bin/gscan2pdf:1455 msgid "Process image with Cuneiform." msgstr "Traiter l'image avec Cuneiform" #: bin/gscan2pdf:1461 msgid "Save image and Save as PDF both require imagemagick\n" msgstr "" "La sauvegarde d'une image et la sauvegarde au format PDF nécessitent toutes " "deux imagemagick\n" #: bin/gscan2pdf:1465 msgid "Save image requires libtiff\n" msgstr "La sauvegarde d'une image nécessite libtiff\n" #: bin/gscan2pdf:1469 msgid "Save as DjVu requires djvulibre-bin\n" msgstr "L'enregistrement au format DjVu requiert djvulibre-bin\n" #: bin/gscan2pdf:1473 msgid "Email as PDF requires xdg-email\n" msgstr "L'envoi par e-mail au format PDF requiert xdg-email\n" #: bin/gscan2pdf:1518 msgid "The rotating options and unpaper support require perlmagick\n" msgstr "" "Les options de rotation et le support d'unpaper requiert perlmagick\n" #: bin/gscan2pdf:1524 msgid "unpaper missing\n" msgstr "l'outil unpaper est manquant\n" #: bin/gscan2pdf:1534 msgid "OCR requires gocr, tesseract, ocropus, or cuneiform\n" msgstr "" "La ROC nécessite l'un des programmes suivants: gocr, tesseract, ocropus ou " "cuneiform\n" #: bin/gscan2pdf:1539 msgid "Warning: missing packages" msgstr "Attention : Il manque des packages" #: bin/gscan2pdf:1544 msgid "Don't show this message again" msgstr "Ne pas réafficher ce message" #: bin/gscan2pdf:1753 msgid "" "Some pages have not been saved.\n" "Do you really want to clear all pages?" msgstr "" "Des pages n'ont pas été enregistrées.\n" "Voulez-vous vraiment effacer toutes les pages ?" #: bin/gscan2pdf:1828 bin/gscan2pdf:1858 #, perl-format msgid "Process %i of %i (%s)" msgstr "" #: bin/gscan2pdf:1867 #, perl-format msgid "Process %i of %i" msgstr "" #: bin/gscan2pdf:1895 msgid "Open image" msgstr "" #: bin/gscan2pdf:1903 bin/gscan2pdf:2797 bin/gscan2pdf:3113 msgid "Image files" msgstr "Fichiers images" #: bin/gscan2pdf:1940 msgid "Pages to extract" msgstr "Pages à extraire" #: bin/gscan2pdf:1943 bin/gscan2pdf:2117 bin/gscan2pdf:2586 bin/gscan2pdf:3353 #: bin/gscan2pdf:3494 bin/gscan2pdf:4104 bin/gscan2pdf:4514 bin/gscan2pdf:5825 #: bin/gscan2pdf:6409 bin/gscan2pdf:6495 bin/gscan2pdf:6565 bin/gscan2pdf:6737 #: bin/gscan2pdf:7011 bin/gscan2pdf:7274 bin/gscan2pdf:7757 bin/gscan2pdf:8123 #: lib/Gscan2pdf/Dialog.pm:56 lib/Gscan2pdf/Dialog/Renumber.pm:80 #: lib/Gscan2pdf/Scanner/Dialog.pm:201 t/05_Dialog.t:28 msgid "vbox" msgstr "" #: bin/gscan2pdf:1946 msgid "First page to extract" msgstr "Première page à extraire" #: bin/gscan2pdf:1953 msgid "Last page to extract" msgstr "Dernière page à extraire" #: bin/gscan2pdf:2042 lib/Gscan2pdf/Dialog/Renumber.pm:83 msgid "Page Range" msgstr "" #: bin/gscan2pdf:2092 msgid "Metadata" msgstr "Métadonnées" #: bin/gscan2pdf:2101 msgid "Date" msgstr "Date" #: bin/gscan2pdf:2114 msgid "Select Date" msgstr "Sélectionnez une date" #: bin/gscan2pdf:2136 msgid "Today" msgstr "Aujourdhui" #: bin/gscan2pdf:2150 msgid "Year-Month-Day" msgstr "Année-Mois-Jour" #: bin/gscan2pdf:2156 msgid "Document author" msgstr "Auteur du document" #: bin/gscan2pdf:2165 msgid "Title" msgstr "Titre" #: bin/gscan2pdf:2174 msgid "Subject" msgstr "Sujet" #: bin/gscan2pdf:2183 msgid "Keywords" msgstr "Mots clés" #: bin/gscan2pdf:2245 msgid "Editing text" msgstr "" #: bin/gscan2pdf:2252 bin/gscan2pdf:2258 bin/gscan2pdf:2332 msgid "text" msgstr "texte" #: bin/gscan2pdf:2352 msgid "PDF filename" msgstr "Nom du fichier PDF" #: bin/gscan2pdf:2381 msgid "PDF files" msgstr "Fichiers PDF" #: bin/gscan2pdf:2405 bin/gscan2pdf:2823 bin/gscan2pdf:2880 bin/gscan2pdf:2976 #: bin/gscan2pdf:3035 bin/gscan2pdf:3087 bin/gscan2pdf:3275 #, perl-format msgid "File %s is read-only" msgstr "Le fichier %s est en lecture seul" #: bin/gscan2pdf:2482 msgid "JPEG Quality" msgstr "Qualité du JPEG" #: bin/gscan2pdf:2496 msgid "Downsample to" msgstr "Rééchantillonner à" #: bin/gscan2pdf:2501 msgid "PPI" msgstr "PPI" #: bin/gscan2pdf:2520 msgid "Automatic" msgstr "Automatique" #: bin/gscan2pdf:2521 msgid "Let gscan2pdf which type of compression to use." msgstr "Laisser gscan2pdf choisir le type de compression à utiliser" #: bin/gscan2pdf:2524 bin/gscan2pdf:2616 msgid "LZW" msgstr "LZW" #: bin/gscan2pdf:2525 bin/gscan2pdf:2617 msgid "Compress output with Lempel-Ziv & Welch encoding." msgstr "Compresse la sortie avec l'encodage de Lempel-Ziv & Welch." #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Zip" msgstr "Zip" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Compress output with deflate encoding." msgstr "Compresser la sortie avec l'encodage Zip." #: bin/gscan2pdf:2529 bin/gscan2pdf:2624 msgid "Packbits" msgstr "Packbits" #: bin/gscan2pdf:2530 bin/gscan2pdf:2625 msgid "Compress output with Packbits encoding." msgstr "Compresser la sortie avec l'encodage Packbits." #: bin/gscan2pdf:2536 bin/gscan2pdf:2604 msgid "PNG" msgstr "PNG" #: bin/gscan2pdf:2536 msgid "Compress output with PNG encoding." msgstr "Compresser l'image en PNG" #: bin/gscan2pdf:2537 bin/gscan2pdf:2622 msgid "Compress output with JPEG encoding." msgstr "Compresse la sortie avec l'encodage JPEG." #: bin/gscan2pdf:2540 bin/gscan2pdf:2637 msgid "Use no compression algorithm on output." msgstr "Ne pas utiliser d'algorithme de compression sur la sortie." #: bin/gscan2pdf:2594 msgid "Image type" msgstr "Type d'image" #: bin/gscan2pdf:2598 msgid "PDF" msgstr "PDF" #: bin/gscan2pdf:2598 msgid "Portable Document Format" msgstr "PDF (Portable Document Format)" #: bin/gscan2pdf:2599 msgid "GIF" msgstr "GIF" #: bin/gscan2pdf:2599 msgid "CompuServe graphics interchange format" msgstr "CompuServe graphics interchange format (GIF)" #: bin/gscan2pdf:2602 msgid "Joint Photographic Experts Group JFIF format" msgstr "JPEG" #: bin/gscan2pdf:2604 msgid "Portable Network Graphics" msgstr "PNG" #: bin/gscan2pdf:2605 msgid "PNM" msgstr "PNM" #: bin/gscan2pdf:2605 msgid "Portable anymap" msgstr "Portable anymap (PNM)" #: bin/gscan2pdf:2606 msgid "PS" msgstr "PS" #: bin/gscan2pdf:2606 msgid "Postscript" msgstr "Postscript" #: bin/gscan2pdf:2607 msgid "TIFF" msgstr "TIFF" #: bin/gscan2pdf:2607 msgid "Tagged Image File Format" msgstr "TIFF" #: bin/gscan2pdf:2608 msgid "Text" msgstr "Texte" #: bin/gscan2pdf:2608 msgid "Plain text" msgstr "Texte brut" #: bin/gscan2pdf:2609 msgid "gscan2pdf session file" msgstr "fichier de session gscan2pdf" #: bin/gscan2pdf:2611 msgid "DjVu" msgstr "DjVu" #: bin/gscan2pdf:2611 msgid "Deja Vu" msgstr "Deja Vu" #: bin/gscan2pdf:2628 msgid "G3" msgstr "G3" #: bin/gscan2pdf:2629 msgid "Compress output with CCITT Group 3 encoding." msgstr "Compresser la sortie avec l'encodage CCITT Groupe 3." #: bin/gscan2pdf:2632 msgid "G4" msgstr "G4" #: bin/gscan2pdf:2633 msgid "Compress output with CCITT Group 4 encoding." msgstr "Compresser la sortie avec l'encodage CCITT Groupe 4." #: bin/gscan2pdf:2649 msgid "tiff" msgstr "tiff" #: bin/gscan2pdf:2681 msgid "Font for non-ASCII text" msgstr "" #: bin/gscan2pdf:2790 msgid "TIFF filename" msgstr "Nom du ficher TIFF" #: bin/gscan2pdf:2848 msgid "Text filename" msgstr "Nom du fichier texte" #: bin/gscan2pdf:2856 msgid "Text files" msgstr "Fichiers texte" #: bin/gscan2pdf:2944 msgid "PS filename" msgstr "nom du fichier PS" #: bin/gscan2pdf:2951 msgid "Postscript files" msgstr "Fichiers Postscript" #: bin/gscan2pdf:3003 msgid "gscan2pdf session filename" msgstr "nom du fichier de session gscan2pdf" #: bin/gscan2pdf:3010 msgid "gscan2pdf session files" msgstr "Fichiers de sessions gscan2pdf" #: bin/gscan2pdf:3093 #, perl-format msgid "" "File %s exists.\n" "Really overwrite?" msgstr "" "Le fichier %s existe.\n" "Voulez-vous l'écraser ?" #: bin/gscan2pdf:3106 msgid "Image filename" msgstr "Nom du fichier" #: bin/gscan2pdf:3245 msgid "DjVu filename" msgstr "Nom de fichier DjVu" #: bin/gscan2pdf:3252 msgid "DjVu files" msgstr "Fichiers DjVu" #: bin/gscan2pdf:3349 msgid "Email as PDF" msgstr "Envoyer par e-mail comme PDF" #: bin/gscan2pdf:3454 msgid "Error creating email" msgstr "" #: bin/gscan2pdf:3490 bin/gscan2pdf:4313 msgid "Scan Document" msgstr "Scanner le document" #: bin/gscan2pdf:3507 lib/Gscan2pdf/Scanner/Dialog.pm:248 msgid "Page Options" msgstr "Options de la page" #: bin/gscan2pdf:3510 lib/Gscan2pdf/Scanner/Dialog.pm:251 msgid "# Pages" msgstr "# Pages" #: bin/gscan2pdf:3519 lib/Gscan2pdf/PageRange.pm:34 #: lib/Gscan2pdf/Scanner/Dialog.pm:261 msgid "All" msgstr "Tous" #: bin/gscan2pdf:3520 lib/Gscan2pdf/Scanner/Dialog.pm:262 msgid "Scan all pages" msgstr "Numériser toutes les pages" #: bin/gscan2pdf:3532 bin/gscan2pdf:3537 lib/Gscan2pdf/Scanner/Dialog.pm:274 #: lib/Gscan2pdf/Scanner/Dialog.pm:279 msgid "Set number of pages to scan" msgstr "Indiquer le nombre de page à numériser" #: bin/gscan2pdf:3550 lib/Gscan2pdf/Scanner/Dialog.pm:308 msgid "Extended page numbering" msgstr "Numérotation de pages étendue" #: bin/gscan2pdf:3554 lib/Gscan2pdf/Scanner/Dialog.pm:312 msgid "Page number" msgstr "Numéro de page" #: bin/gscan2pdf:3563 lib/Gscan2pdf/Dialog/Renumber.pm:111 #: lib/Gscan2pdf/Scanner/Dialog.pm:321 msgid "Start" msgstr "Démarrer" #: bin/gscan2pdf:3572 lib/Gscan2pdf/Dialog/Renumber.pm:132 #: lib/Gscan2pdf/Scanner/Dialog.pm:340 msgid "Increment" msgstr "Incrémenter" #: bin/gscan2pdf:3604 lib/Gscan2pdf/Scanner/Dialog.pm:372 msgid "Source document" msgstr "Document source" #: bin/gscan2pdf:3611 lib/Gscan2pdf/Scanner/Dialog.pm:379 msgid "Single sided" msgstr "Simple face" #: bin/gscan2pdf:3612 lib/Gscan2pdf/Scanner/Dialog.pm:380 msgid "Source document is single-sided" msgstr "Le document source est à simple face" #: bin/gscan2pdf:3622 lib/Gscan2pdf/Scanner/Dialog.pm:390 msgid "Double sided" msgstr "Double face" #: bin/gscan2pdf:3623 lib/Gscan2pdf/Scanner/Dialog.pm:391 msgid "Source document is double-sided" msgstr "Le document source est à double face" #: bin/gscan2pdf:3629 lib/Gscan2pdf/Scanner/Dialog.pm:397 msgid "Side to scan" msgstr "Face à numériser" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Facing" msgstr "Pages en vis-à-vis" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Reverse" msgstr "Inverser" #: bin/gscan2pdf:3655 lib/Gscan2pdf/Scanner/Dialog.pm:418 msgid "Sets which side of a double-sided document is scanned" msgstr "Indiquez quel face du document à double face est numérisé" #: bin/gscan2pdf:3719 msgid "Scan Options" msgstr "Options des scans" #: bin/gscan2pdf:3722 msgid "Device-dependent options" msgstr "Options du périphérique" #: bin/gscan2pdf:3729 lib/Gscan2pdf/Scanner/Dialog.pm:458 msgid "Scan profiles" msgstr "Profil de scan" #: bin/gscan2pdf:3778 bin/gscan2pdf:3784 lib/Gscan2pdf/Scanner/Dialog.pm:479 #: lib/Gscan2pdf/Scanner/Dialog.pm:485 msgid "Name of scan profile" msgstr "Nom du profil de scan" #: bin/gscan2pdf:3828 lib/Gscan2pdf/Scanner/Dialog.pm:518 msgid "Scan" msgstr "Scanner" #: bin/gscan2pdf:3866 msgid "Must scan facing pages first" msgstr "Le côté Recto doit être scanné en premier" #: bin/gscan2pdf:3977 msgid "Post-processing" msgstr "Post-traitement" #: bin/gscan2pdf:3986 bin/gscan2pdf:4008 msgid "Rotate" msgstr "Pivoter" #: bin/gscan2pdf:3987 bin/gscan2pdf:4009 msgid "Rotate image after scanning" msgstr "Faire pivoter l'imager après la numérisation" #: bin/gscan2pdf:3990 msgid "Both sides" msgstr "Chaque côté" #: bin/gscan2pdf:3990 msgid "Both sides." msgstr "Chaque côté" #: bin/gscan2pdf:3991 msgid "Facing side" msgstr "Recto" #: bin/gscan2pdf:3991 msgid "Facing side." msgstr "Recto." #: bin/gscan2pdf:3992 msgid "Reverse side" msgstr "Verso" #: bin/gscan2pdf:3992 msgid "Reverse side." msgstr "Verso." #: bin/gscan2pdf:3995 bin/gscan2pdf:4013 msgid "Select side to rotate" msgstr "Sélectionner la face à faire pivoter" #: bin/gscan2pdf:3998 msgid "90" msgstr "90" #: bin/gscan2pdf:3998 msgid "Rotate image 90 degrees clockwise." msgstr "" "Faire pivoter l'image de 90 degrés dans le sens des aiguilles d'une montre" #: bin/gscan2pdf:3999 msgid "180" msgstr "180" #: bin/gscan2pdf:3999 msgid "Rotate image 180 degrees clockwise." msgstr "Faire pivoter l'image de 180 degrés" #: bin/gscan2pdf:4000 msgid "270" msgstr "270" #: bin/gscan2pdf:4000 msgid "Rotate image 90 degrees anticlockwise." msgstr "" "Faire pivoter l'image de 90 degrés dans le sens inverse des aiguilles d'une " "montre" #: bin/gscan2pdf:4003 bin/gscan2pdf:4016 msgid "Select direction of rotation" msgstr "Sélectionner le sens de la rotation" #: bin/gscan2pdf:4083 msgid "Clean up images" msgstr "Nettoyer les images" #: bin/gscan2pdf:4094 msgid "Options" msgstr "Options" #: bin/gscan2pdf:4095 msgid "Set unpaper options" msgstr "Choisir les options de Unpaper" #: bin/gscan2pdf:4101 msgid "unpaper options" msgstr "options de unpaper" #: bin/gscan2pdf:4136 bin/gscan2pdf:4137 msgid "OCR scanned pages" msgstr "" "Effectuer la reconnaissance optique de caractères sur les pages scannées" #: bin/gscan2pdf:4151 msgid "Select OCR engine" msgstr "Choisir le moteur de reconnaissance de caractères" #: bin/gscan2pdf:4210 lib/Gscan2pdf/Scanner/Dialog.pm:634 msgid "Fetching list of devices" msgstr "Récupération de la liste des périphériques" #: bin/gscan2pdf:4225 lib/Gscan2pdf/Scanner/Dialog.pm:654 msgid "No devices found" msgstr "Aucun périphérique trouvé" #: bin/gscan2pdf:4367 bin/gscan2pdf:4732 bin/gscan2pdf:4777 bin/gscan2pdf:5214 #: lib/Gscan2pdf/Scanner/Dialog.pm:343 lib/Gscan2pdf/Scanner/Dialog.pm:348 #: t/061_Scanner_Dialog.t:38 t/061_Scanner_Dialog.t:95 msgid "page-number-increment" msgstr "" #: bin/gscan2pdf:4374 bin/gscan2pdf:4729 bin/gscan2pdf:4730 bin/gscan2pdf:4776 #: bin/gscan2pdf:5213 lib/Gscan2pdf/Scanner/Dialog.pm:361 #: t/061_Scanner_Dialog.t:37 msgid "page-number-start" msgstr "" #: bin/gscan2pdf:4663 lib/Gscan2pdf/Scanner/Dialog.pm:210 msgid "Device" msgstr "Périphérique" #: bin/gscan2pdf:4671 lib/Gscan2pdf/Scanner/Dialog.pm:213 msgid "Rescan for devices" msgstr "Chercher à nouveau des périphériques de numérisation" #: bin/gscan2pdf:4694 lib/Gscan2pdf/Scanner/Dialog.pm:237 msgid "Sets the device to be used for the scan" msgstr "Indiquer le périphérique utilisé pour la numérisation" #: bin/gscan2pdf:4780 lib/Gscan2pdf/Scanner/Dialog.pm:300 #: t/061_Scanner_Dialog.t:35 msgid "num-pages" msgstr "" #: bin/gscan2pdf:4821 msgid "Scanning" msgstr "Numérisation" #: bin/gscan2pdf:4974 msgid "Unable to load image" msgstr "Impossible de charger l'image" #: bin/gscan2pdf:5004 msgid "print-pages" msgstr "" #: bin/gscan2pdf:5008 msgid "page-ranges" msgstr "" #: bin/gscan2pdf:5405 msgid "Patches gratefully received from:" msgstr "Patches aimablement transmis par :" #: bin/gscan2pdf:5407 msgid "To aid the scan-to-PDF process" msgstr "Pour simplifier le processus numérisation-vers-PDF" #: bin/gscan2pdf:5408 msgid "Copyright 2006--2012 Jeffrey Ratcliffe" msgstr "" #: bin/gscan2pdf:5492 bin/gscan2pdf:6028 msgid "The options cache seems to be empty. Reload device-dependent options?" msgstr "" #: bin/gscan2pdf:5519 bin/gscan2pdf:6054 msgid "Updating options" msgstr "Mise à jour des options" #: bin/gscan2pdf:5571 msgid "Paper size" msgstr "Taille du papier" #: bin/gscan2pdf:5572 bin/gscan2pdf:5672 bin/gscan2pdf:5840 bin/gscan2pdf:6769 msgid "Width" msgstr "Largeur" #: bin/gscan2pdf:5573 bin/gscan2pdf:5678 bin/gscan2pdf:5841 bin/gscan2pdf:6780 msgid "Height" msgstr "Hauteur" #: bin/gscan2pdf:5574 bin/gscan2pdf:5684 bin/gscan2pdf:5842 #: lib/Gscan2pdf/Unpaper.pm:124 lib/Gscan2pdf/Unpaper.pm:152 msgid "Left" msgstr "Gauche" #: bin/gscan2pdf:5575 bin/gscan2pdf:5690 bin/gscan2pdf:5843 #: lib/Gscan2pdf/Unpaper.pm:129 lib/Gscan2pdf/Unpaper.pm:157 msgid "Top" msgstr "Haut" #: bin/gscan2pdf:5589 bin/gscan2pdf:5703 bin/gscan2pdf:6232 msgid "Manual" msgstr "Manuelle" #: bin/gscan2pdf:5590 bin/gscan2pdf:5700 msgid "Edit" msgstr "Édition" #: bin/gscan2pdf:5591 msgid "Selects or edits the paper size" msgstr "Sélectionne ou modifie la taille du papier" #: bin/gscan2pdf:5673 msgid "Width of scan area" msgstr "Largeur de la surface à scanner" #: bin/gscan2pdf:5679 msgid "Height of scan area" msgstr "Hauteur de la surface à scanner" #: bin/gscan2pdf:5685 msgid "Top-left x position of scan area" msgstr "Position en x de l'aire à scanner" #: bin/gscan2pdf:5691 msgid "Top-left y position of scan area" msgstr "Position initiale en y de l'aire à scanner" #: bin/gscan2pdf:5822 msgid "Edit paper size" msgstr "Choisir la taille du papier" #: bin/gscan2pdf:5839 msgid "Name" msgstr "Nom" #: bin/gscan2pdf:5893 msgid "Cannot delete all paper sizes" msgstr "Impossible de supprimer toutes les tailles de papier" #: bin/gscan2pdf:5955 msgid "" "The following paper sizes are too big to be scanned by the selected device:" msgstr "" "Les formats de papier suivants sont trop grands pour être scannés par le " "périphérique sélectionné." #: bin/gscan2pdf:6419 bin/gscan2pdf:6605 msgid "%" msgstr "%" #: bin/gscan2pdf:6492 msgid "Negate" msgstr "Inverser" #: bin/gscan2pdf:6562 msgid "Unsharp mask" msgstr "Renforcer la netteté (Unsharp mask)" #: bin/gscan2pdf:6573 msgid "Radius" msgstr "Rayon" #: bin/gscan2pdf:6575 bin/gscan2pdf:6592 bin/gscan2pdf:6747 bin/gscan2pdf:6759 #: bin/gscan2pdf:6771 bin/gscan2pdf:6782 msgid "pixels" msgstr "pixels" #: bin/gscan2pdf:6582 msgid "" "The radius of the Gaussian, in pixels, not counting the center pixel (0 = " "automatic)." msgstr "" "Le rayon de la Gaussienne, en pixels, sans compter le pixel central (0 = " "automatique)" #: bin/gscan2pdf:6590 msgid "Sigma" msgstr "Sigma" #: bin/gscan2pdf:6597 msgid "The standard deviation of the Gaussian." msgstr "La déviation standard de la Gaussienne" #: bin/gscan2pdf:6603 msgid "Amount" msgstr "Valeur" #: bin/gscan2pdf:6612 msgid "" "The percentage of the difference between the original and the blur image " "that is added back into the original." msgstr "" #: bin/gscan2pdf:6627 msgid "" "The threshold, as a fraction of QuantumRange, needed to apply the difference " "amount." msgstr "" #: bin/gscan2pdf:6733 msgid "Crop" msgstr "Découper" #: bin/gscan2pdf:6745 msgid "x" msgstr "" #: bin/gscan2pdf:6751 msgid "The x-position of the left hand edge of the crop." msgstr "" #: bin/gscan2pdf:6757 msgid "y" msgstr "" #: bin/gscan2pdf:6763 msgid "The y-position of the top edge of the crop." msgstr "" #: bin/gscan2pdf:6774 msgid "The width of the crop." msgstr "" #: bin/gscan2pdf:6785 msgid "The height of the crop." msgstr "" #: bin/gscan2pdf:6906 msgid "label" msgstr "" #: bin/gscan2pdf:7007 msgid "unpaper" msgstr "unpaper" #: bin/gscan2pdf:7216 bin/gscan2pdf:7244 msgid "Language to recognise" msgstr "Langue à reconnaître" #: bin/gscan2pdf:7227 msgid "English" msgstr "Anglais" #: bin/gscan2pdf:7270 msgid "OCR" msgstr "ROC" #: bin/gscan2pdf:7279 msgid "OCR Engine" msgstr "Outil de Reconnaissance Optique de Caractères" #: bin/gscan2pdf:7323 msgid "Start OCR" msgstr "Démarrer la reconnaissance optique de caractères" #: bin/gscan2pdf:7339 msgid "No page selected" msgstr "Aucune page séléctionée" #: bin/gscan2pdf:7374 msgid "" "Some pages have not been saved.\n" "Do you really want to quit?" msgstr "Voulez vous vraiment quitter ?" #: bin/gscan2pdf:7432 #, perl-format msgid "" "The help viewer requires module Gtk2::Ex::PodViewer\n" "Alternatively, try: %s %s\n" "\n" msgstr "" "Le visionneur d'aide requiert le module Gtk2::Ex::PodViewer\n" "Alternativement, essayez: %s %s\n" "\n" #: bin/gscan2pdf:7698 msgid "This operation cannot be undone. Are you sure?" msgstr "Cette opération ne pourra pas être annulée. Voulez vous continuer ?" #: bin/gscan2pdf:7753 msgid "Preferences" msgstr "Préférences" #: bin/gscan2pdf:7762 msgid "Frontend" msgstr "" #: bin/gscan2pdf:7766 msgid "libsane-perl" msgstr "libsane-perl" #: bin/gscan2pdf:7767 msgid "Scan using the perl bindings for SANE." msgstr "" #: bin/gscan2pdf:7770 msgid "scanimage" msgstr "scanimage" #: bin/gscan2pdf:7771 msgid "Scan using the scanimage frontend." msgstr "" #: bin/gscan2pdf:7775 msgid "scanimage-perl" msgstr "scanimage-perl" #: bin/gscan2pdf:7776 msgid "Scan using the scanimage-perl frontend." msgstr "" #: bin/gscan2pdf:7779 msgid "scanadf-perl" msgstr "scanadf-perl" #: bin/gscan2pdf:7780 msgid "Scan using the scanadf-perl frontend." msgstr "" #: bin/gscan2pdf:7785 msgid "scanadf" msgstr "scanadf" #: bin/gscan2pdf:7786 msgid "Scan using the scanadf frontend." msgstr "Numériser en utilisant l'interface scanadf." #: bin/gscan2pdf:7791 msgid "Cycle SANE handle after scan" msgstr "" #: bin/gscan2pdf:7814 msgid "Default filename for PDFs" msgstr "Nom de fichier PDF par défaut" #: bin/gscan2pdf:7820 msgid "" "%a\t author\n" "%t\t title\n" "%y\t document's year\n" "%Y\t today's year\n" "%m\t document's month\n" "%M\t today's month\n" "%d\t document's day\n" "%D\t today's day" msgstr "" #: bin/gscan2pdf:7830 msgid "Scan command prefix" msgstr "" #: bin/gscan2pdf:7839 msgid "Restore window settings on startup" msgstr "Restaurer les paramètres de fenètre au démarrage" #: bin/gscan2pdf:7845 msgid "Cache device-dependent options" msgstr "" #: bin/gscan2pdf:7851 msgid "Clear device-dependent options cache" msgstr "" #: bin/gscan2pdf:7862 msgid "Temporary directory" msgstr "Répertoire temporaire" #: bin/gscan2pdf:7867 msgid "Browse" msgstr "Parcourir" #: bin/gscan2pdf:7871 msgid "Select temporary directory" msgstr "Sélectionner le dossier temporaire" #: bin/gscan2pdf:7888 msgid "Blank threshold" msgstr "" #: bin/gscan2pdf:7893 msgid "Threshold used for selecting blank pages" msgstr "" #: bin/gscan2pdf:7899 msgid "Dark threshold" msgstr "" #: bin/gscan2pdf:7904 msgid "Threshold used for selecting dark pages" msgstr "" #: bin/gscan2pdf:7910 msgid "OCR output" msgstr "Résultat ROC" #: bin/gscan2pdf:7915 msgid "Replace" msgstr "" #: bin/gscan2pdf:7917 msgid "" "Replace the contents of the text buffer with that from the OCR output." msgstr "" #: bin/gscan2pdf:7920 msgid "Prepend" msgstr "" #: bin/gscan2pdf:7921 msgid "Prepend the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7924 msgid "Append" msgstr "" #: bin/gscan2pdf:7925 msgid "Append the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7933 msgid "User-defined tools" msgstr "" #: bin/gscan2pdf:7954 msgid "View files on saving" msgstr "" #: bin/gscan2pdf:8000 msgid "" "You will have to restart gscanp2df for changes to the temporary directory to " "take effect." msgstr "" "Vous devez redémarrer gscan2pdf pour que le changement de répertoire " "temporaire prenne effet." #: bin/gscan2pdf:8092 msgid "" "Use %i and %o for the input and output filenames respectively, or a single " "%i if the image is to be modified in-place.\n" "\n" "The other variable available is:\n" "\n" "%r resolution" msgstr "" #: bin/gscan2pdf:8119 msgid "Properties" msgstr "Propriétés" #: lib/Gscan2pdf/Dialog.pm:63 lib/Gscan2pdf/Dialog.pm:79 t/05_Dialog.t:25 msgid "hide-on-delete" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:78 lib/Gscan2pdf/Dialog/Renumber.pm:162 msgid "Renumber" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:98 lib/Gscan2pdf/Dialog/Renumber.pm:207 #: lib/Gscan2pdf/Dialog/Renumber.pm:244 msgid "range" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:102 msgid "Page numbering" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:105 lib/Gscan2pdf/Scanner/Dialog.pm:254 msgid "border_width" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:126 lib/Gscan2pdf/Dialog/Renumber.pm:192 #: lib/Gscan2pdf/Dialog/Renumber.pm:242 t/07_Dialog_Renumber.t:33 #: t/07_Dialog_Renumber.t:45 t/07_Dialog_Renumber.t:59 #: t/07_Dialog_Renumber.t:66 msgid "start" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:147 lib/Gscan2pdf/Dialog/Renumber.pm:193 #: lib/Gscan2pdf/Dialog/Renumber.pm:243 t/07_Dialog_Renumber.t:34 #: t/07_Dialog_Renumber.t:46 t/07_Dialog_Renumber.t:60 #: t/07_Dialog_Renumber.t:67 msgid "increment" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:205 lib/Gscan2pdf/Dialog/Renumber.pm:241 msgid "document" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:295 msgid "" "The current settings would result in duplicate page numbers. Please select " "new start and increment values." msgstr "" #: lib/Gscan2pdf/Document.pm:83 msgid "Thumbnails" msgstr "" #: lib/Gscan2pdf/Document.pm:1502 msgid "Unknown DjVu file structure. Please contact the author." msgstr "" #: lib/Gscan2pdf/Document.pm:1558 #, perl-format msgid "%s is not a recognised image type" msgstr "" #: lib/Gscan2pdf/Document.pm:1580 lib/Gscan2pdf/Document.pm:1637 #, perl-format msgid "Importing page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:1613 msgid "Error extracting images from PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1692 msgid "Setting up PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1703 #, perl-format msgid "Saving page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:1814 lib/Gscan2pdf/Document.pm:2136 #, perl-format msgid "Error compressing image: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1919 #, perl-format msgid "Error creating PDF image object: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1930 #, perl-format msgid "Error embedding file image in %s format to PDF: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1939 msgid "Closing PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1955 #, perl-format msgid "Writing page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:2006 msgid "Error writing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2025 lib/Gscan2pdf/Document.pm:2227 #, perl-format msgid "Can't open file: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:2050 msgid "Error adding text layer to DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2056 msgid "Closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2063 msgid "Error closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2078 #, perl-format msgid "Converting image %i of %i to TIFF" msgstr "" #: lib/Gscan2pdf/Document.pm:2105 msgid "Error writing TIFF" msgstr "" #: lib/Gscan2pdf/Document.pm:2121 msgid "Concatenating TIFFs" msgstr "" #: lib/Gscan2pdf/Document.pm:2140 msgid "Converting to PS" msgstr "" #: lib/Gscan2pdf/Document.pm:2200 lib/Gscan2pdf/Document.pm:2215 msgid "Error saving image" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:158 #, perl-format msgid "Scanning %i pages..." msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:163 #, perl-format msgid "Scanning page %i..." msgstr "Scan de la page %i..." #: lib/Gscan2pdf/Frontend/CLI.pm:188 lib/Gscan2pdf/Frontend/CLI.pm:296 msgid "Scanner warming up" msgstr "Scanner en préchauffage" #: lib/Gscan2pdf/Frontend/CLI.pm:195 msgid "Document feeder out of documents" msgstr "Chargeur de documents vide" #: lib/Gscan2pdf/Frontend/CLI.pm:212 lib/Gscan2pdf/Frontend/CLI.pm:325 msgid "Device busy" msgstr "Périphérique occupé" #: lib/Gscan2pdf/Frontend/CLI.pm:218 lib/Gscan2pdf/Frontend/CLI.pm:330 msgid "Operation cancelled" msgstr "Opération annulée" #: lib/Gscan2pdf/Frontend/CLI.pm:223 lib/Gscan2pdf/Frontend/CLI.pm:336 msgid "Unknown message: " msgstr "Message inconnu : " #: lib/Gscan2pdf/Page.pm:68 lib/Gscan2pdf/Page.pm:73 #, perl-format msgid "Error importing image %s: %s" msgstr "" #: lib/Gscan2pdf/PageRange.pm:33 msgid "Selected" msgstr "Sélectionné" #: lib/Gscan2pdf/PageRange.pm:58 msgid "active" msgstr "activé" #: lib/Gscan2pdf/Scanner/Dialog.pm:218 t/061_Scanner_Dialog.t:33 #: t/061_Scanner_Dialog.t:59 msgid "device-list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:496 t/061_Scanner_Dialog.t:139 #: t/061_Scanner_Dialog.t:174 t/062_Scanner_Dialog.t:50 #: t/062_Scanner_Dialog.t:75 msgid "current-scan-options" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:567 msgid "logger" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:650 t/05_Dialog.t:24 msgid "transient-for" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:716 msgid "device_list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:749 t/061_Scanner_Dialog.t:32 msgid "device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:751 msgid "Opening device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:760 msgid "Retrieving options" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:41 msgid "Layout" msgstr "Disposition" #: lib/Gscan2pdf/Unpaper.pm:44 msgid "Single" msgstr "simple" #: lib/Gscan2pdf/Unpaper.pm:46 msgid "One page per sheet, oriented upwards without rotation." msgstr "Une page par feuille, orienté verticalement sans rotation." #: lib/Gscan2pdf/Unpaper.pm:49 msgid "Double" msgstr "Double" #: lib/Gscan2pdf/Unpaper.pm:51 msgid "" "Two pages per sheet, landscape orientation (one page on the left half, one " "page on the right half)." msgstr "" "Deux pages par feuille, orientation paysage (une page sur la moitié gauche, " "une page sur la moitié droite)." #: lib/Gscan2pdf/Unpaper.pm:59 msgid "# Output pages" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:60 msgid "Number of pages to output." msgstr "Nombre de pages en sortie" #: lib/Gscan2pdf/Unpaper.pm:68 msgid "No deskew" msgstr "Pas de réalignement" #: lib/Gscan2pdf/Unpaper.pm:69 msgid "Disable deskewing." msgstr "" "Supprime la rotation automatique de l'image pour réaligner le texte " "horizontalement" #: lib/Gscan2pdf/Unpaper.pm:74 msgid "No mask scan" msgstr "Pas de masque" #: lib/Gscan2pdf/Unpaper.pm:75 msgid "Disable mask detection." msgstr "Ne pas tenir compte du masque" #: lib/Gscan2pdf/Unpaper.pm:80 msgid "No black filter" msgstr "Pas de filtre noir" #: lib/Gscan2pdf/Unpaper.pm:81 msgid "Disable black area scan." msgstr "Ne pas détecter les aires noires" #: lib/Gscan2pdf/Unpaper.pm:86 msgid "No gray filter" msgstr "Pas de filtre gris" #: lib/Gscan2pdf/Unpaper.pm:87 msgid "Disable gray area scan." msgstr "Ne pas détecter les aires grises" #: lib/Gscan2pdf/Unpaper.pm:92 msgid "No noise filter" msgstr "Pas de filtre du bruit" #: lib/Gscan2pdf/Unpaper.pm:93 msgid "Disable noise filter." msgstr "Supprime le filtre pour diminuer le bruit" #: lib/Gscan2pdf/Unpaper.pm:98 msgid "No blur filter" msgstr "Pas de détection des pixels isolés" #: lib/Gscan2pdf/Unpaper.pm:99 msgid "Disable blur filter." msgstr "Désactive le filtre de suppression des pixels isolés" #: lib/Gscan2pdf/Unpaper.pm:104 msgid "No border scan" msgstr "Pas de détection des bords" #: lib/Gscan2pdf/Unpaper.pm:105 msgid "Disable border scanning." msgstr "Désactive la détection automatique des bords" #: lib/Gscan2pdf/Unpaper.pm:110 msgid "No border align" msgstr "Pas d'alignement des bords" #: lib/Gscan2pdf/Unpaper.pm:112 msgid "Disable aligning of the area detected by border scanning." msgstr "" "Désactive l'alignement automatique de l'aire scannée par détection des bords" #: lib/Gscan2pdf/Unpaper.pm:117 msgid "Deskew to edge" msgstr "Auto-rotation de l'image" #: lib/Gscan2pdf/Unpaper.pm:119 msgid "" "Edges from which to scan for rotation. Each edge of a mask can be used to " "detect the mask's rotation. If multiple edges are specified, the average " "value will be used, unless the statistical deviation exceeds --deskew-scan-" "deviation." msgstr "" "Bords de l'image d'où partir pour chercher à effectuer une rotation " "permettant d'aligner automatiquement le texte à l'horizontale. Chaque bord " "peut être utilisé pour déterminer la rotation à appliquer au masque, et une " "valeur moyenne sera utilisée. (option --deskew-scan-direction de unpaper)" #: lib/Gscan2pdf/Unpaper.pm:125 msgid "Use 'left' for scanning from the left edge." msgstr "Utilisez 'gauche' pour scanner depuis le bord gauche." #: lib/Gscan2pdf/Unpaper.pm:130 msgid "Use 'top' for scanning from the top edge." msgstr "Utilisez 'haut' pour scanner depuis le bord supérieur." #: lib/Gscan2pdf/Unpaper.pm:134 lib/Gscan2pdf/Unpaper.pm:162 msgid "Right" msgstr "Droite" #: lib/Gscan2pdf/Unpaper.pm:135 msgid "Use 'right' for scanning from the right edge." msgstr "Utiliser \"droite\" pour scanner à partir du bord droit" #: lib/Gscan2pdf/Unpaper.pm:139 lib/Gscan2pdf/Unpaper.pm:167 msgid "Bottom" msgstr "Bas" #: lib/Gscan2pdf/Unpaper.pm:140 msgid "Use 'bottom' for scanning from the bottom." msgstr "Utiliser \"bas\" pour scanner à partir du bas" #: lib/Gscan2pdf/Unpaper.pm:147 msgid "Align to edge" msgstr "Aligner au bord" #: lib/Gscan2pdf/Unpaper.pm:148 msgid "Edge to which to align the page." msgstr "Bord sur lequel aligner la page" #: lib/Gscan2pdf/Unpaper.pm:153 msgid "Use 'left' to align to the left edge." msgstr "Utiliser \"gauche\" pour aligner sur le bord gauche" #: lib/Gscan2pdf/Unpaper.pm:158 msgid "Use 'top' to align to the top edge." msgstr "Utilisez 'haut' pour aligner sur le bord supérieur." #: lib/Gscan2pdf/Unpaper.pm:163 msgid "Use 'right' to align to the right edge." msgstr "Utilisez 'droite' pour aligner sur le bord droit." #: lib/Gscan2pdf/Unpaper.pm:168 msgid "Use 'bottom' to align to the bottom." msgstr "Utilisez 'bas' pour aligner sur le bas de l'image." #: lib/Gscan2pdf/Unpaper.pm:174 msgid "Border margin" msgstr "Taille des bordures" #: lib/Gscan2pdf/Unpaper.pm:178 msgid "Vertical margin" msgstr "Marges verticales" #: lib/Gscan2pdf/Unpaper.pm:180 msgid "" "Vertical distance to keep from the sheet edge when aligning a border area." msgstr "" "Taille verticale de la bordure à aligner avec les côtés de la feuille" #: lib/Gscan2pdf/Unpaper.pm:189 msgid "Horizontal margin" msgstr "Marges horizontales" #: lib/Gscan2pdf/Unpaper.pm:191 msgid "" "Horizontal distance to keep from the sheet edge when aligning a border area." msgstr "" "Taille horizontale de la bordure à aligner avec les côtés de la feuille" #: lib/Gscan2pdf/Unpaper.pm:202 msgid "White threshold" msgstr "Seuil pour les blancs" #: lib/Gscan2pdf/Unpaper.pm:204 msgid "Brightness ratio above which a pixel is considered white." msgstr "" "Rapport de luminosité au dessus duquel un pixel est considéré comme blanc." #: lib/Gscan2pdf/Unpaper.pm:212 msgid "Black threshold" msgstr "Seuil pour les noirs" #: lib/Gscan2pdf/Unpaper.pm:214 msgid "" "Brightness ratio below which a pixel is considered black (non-gray). This is " "used by the gray-filter. This value is also used when converting a grayscale " "image to black-and-white mode." msgstr "" "Rapport de luminosité en dessous duquel un pixel est considéré comme noir " "(non gris). Cette valeur est utilisée par le filtre des gris et pour " "convertir une image en niveaux de gris en une image noire et blanc." #: lib/Gscan2pdf/Unpaper.pm:250 msgid "Deskew" msgstr "Rotation" #: lib/Gscan2pdf/Unpaper.pm:280 msgid "Border" msgstr "Bords" #: lib/Gscan2pdf/Unpaper.pm:337 msgid "Filters" msgstr "Filtres" #: t/05_Dialog.t:23 msgid "title" msgstr "" #: t/05_Dialog.t:26 t/05_Dialog.t:31 t/05_Dialog.t:32 t/05_Dialog.t:38 #: t/05_Dialog.t:39 msgid "border-width" msgstr "" #: t/061_Scanner_Dialog.t:34 msgid "dir" msgstr "" #: t/061_Scanner_Dialog.t:36 msgid "max-pages" msgstr "" #: t/061_Scanner_Dialog.t:39 msgid "side-to-scan" msgstr "" #: t/061_Scanner_Dialog.t:40 t/061_Scanner_Dialog.t:185 msgid "available-scan-options" msgstr "" #: t/061_Scanner_Dialog.t:171 t/062_Scanner_Dialog.t:73 msgid "profile" msgstr "" gscan2pdf-1.2.3/po/gscan2pdf-ja.po0000644000175000017500000013375112243440507015222 0ustar jeffjeff# Japanese translation for gscan2pdf # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the gscan2pdf package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: gscan2pdf\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-10-25 08:12+0200\n" "PO-Revision-Date: 2012-06-02 12:15+0000\n" "Last-Translator: Shushi Kurose \n" "Language-Team: Japanese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-19 09:22+0000\n" "X-Generator: Launchpad (build 16831)\n" #: bin/gscan2pdf:157 msgid "Error displaying help" msgstr "" #: bin/gscan2pdf:201 msgid "" "Error: unable to load settings.\n" "Backing up settings\n" "Reverting to defaults" msgstr "" "エラー: 設定を読み込めません。\n" "設定をバックアップします\n" "デフォルトに戻します" #: bin/gscan2pdf:244 msgid "A4" msgstr "A4" #: bin/gscan2pdf:250 msgid "US Letter" msgstr "US レター" #: bin/gscan2pdf:256 msgid "US Legal" msgstr "US リーガル" #: bin/gscan2pdf:323 bin/gscan2pdf:344 #, perl-format msgid "Cannot read file: %s" msgstr "ファイルを読み込めません: %s" #: bin/gscan2pdf:451 msgid "_File" msgstr "ファイル(_F)" #: bin/gscan2pdf:454 msgid "_New" msgstr "新規(_N)" #: bin/gscan2pdf:455 msgid "Clears all pages" msgstr "すべてのページをクリア" #: bin/gscan2pdf:459 msgid "_Open" msgstr "開く(_O)" #: bin/gscan2pdf:460 msgid "Open image file(s)" msgstr "画像ファイルを開く" #: bin/gscan2pdf:465 msgid "S_can" msgstr "スキャン(_C)" #: bin/gscan2pdf:467 msgid "Scan document" msgstr "書類をスキャン" #: bin/gscan2pdf:471 bin/gscan2pdf:472 bin/gscan2pdf:2582 msgid "Save" msgstr "保存" #: bin/gscan2pdf:476 msgid "_Email as PDF" msgstr "PDFとしてメール送信(_E)" #: bin/gscan2pdf:477 msgid "Attach as PDF to a new email" msgstr "新規メールにPDFとして添付する" #: bin/gscan2pdf:480 msgid "_Print" msgstr "印刷(_P)" #: bin/gscan2pdf:481 msgid "Print" msgstr "印刷" #: bin/gscan2pdf:485 msgid "_Compress temporary files" msgstr "一時ファイルを圧縮する(_C)" #: bin/gscan2pdf:486 msgid "Compress temporary files" msgstr "一時ファイルを圧縮する" #: bin/gscan2pdf:490 msgid "_Quit" msgstr "終了(_Q)" #: bin/gscan2pdf:491 msgid "Quit" msgstr "終了" #: bin/gscan2pdf:495 msgid "_Edit" msgstr "編集(_E)" #: bin/gscan2pdf:497 msgid "_Undo" msgstr "元に戻す(_U)" #: bin/gscan2pdf:497 msgid "Undo" msgstr "元に戻す" #: bin/gscan2pdf:501 msgid "_Redo" msgstr "やり直し(_R)" #: bin/gscan2pdf:502 msgid "Redo" msgstr "やり直し" #: bin/gscan2pdf:506 msgid "Cu_t" msgstr "切り取り(_T)" #: bin/gscan2pdf:507 msgid "Cut selection" msgstr "選択範囲を切り取り" #: bin/gscan2pdf:511 msgid "_Copy" msgstr "コピー(_C)" #: bin/gscan2pdf:512 msgid "Copy selection" msgstr "選択範囲をコピー" #: bin/gscan2pdf:516 msgid "_Paste" msgstr "貼り付け(_P)" #: bin/gscan2pdf:517 msgid "Paste selection" msgstr "選択範囲を貼り付け" #: bin/gscan2pdf:521 msgid "_Delete" msgstr "削除(_D)" #: bin/gscan2pdf:522 msgid "Delete selected pages" msgstr "選択したページを削除" #: bin/gscan2pdf:526 msgid "_Renumber" msgstr "ページ番号の付け直し(_R)" #: bin/gscan2pdf:527 msgid "Renumber pages" msgstr "ページ番号を付け直す" #: bin/gscan2pdf:529 bin/gscan2pdf:679 msgid "_Select" msgstr "選択(_S)" #: bin/gscan2pdf:532 msgid "_All" msgstr "すべて(_A)" #: bin/gscan2pdf:533 msgid "Select all pages" msgstr "すべてのページを選択" #: bin/gscan2pdf:536 msgid "_Odd" msgstr "奇数ページ(_O)" #: bin/gscan2pdf:537 msgid "Select all odd-numbered pages" msgstr "奇数ページを選択" #: bin/gscan2pdf:541 msgid "_Even" msgstr "偶数ページ(_E)" #: bin/gscan2pdf:542 msgid "Select all evenly-numbered pages" msgstr "偶数ページを選択" #: bin/gscan2pdf:547 msgid "_Blank" msgstr "空白ページ(_B)" #: bin/gscan2pdf:548 msgid "Select pages with low standard deviation" msgstr "標準偏差の内側に収まるページを選択" #: bin/gscan2pdf:552 msgid "_Dark" msgstr "黒ページ(_D)" #: bin/gscan2pdf:553 msgid "Select dark pages" msgstr "黒ページを選択" #: bin/gscan2pdf:558 msgid "_Modified" msgstr "変更されたページ(_M)" #: bin/gscan2pdf:560 msgid "Select modified pages since last OCR" msgstr "最後にOCRしてから変更されたページを選択" #: bin/gscan2pdf:565 msgid "_No OCR" msgstr "OCRなし(_N)" #: bin/gscan2pdf:566 msgid "Select pages with no OCR output" msgstr "OCR出力のないページを選択" #: bin/gscan2pdf:570 msgid "_Clear OCR" msgstr "OCRをクリア(_C)" #: bin/gscan2pdf:571 msgid "Clear OCR output from selected pages" msgstr "選択したページのOCR出力をクリア" #: bin/gscan2pdf:575 msgid "Propert_ies" msgstr "プロパティ(_I)" #: bin/gscan2pdf:576 msgid "Edit image properties" msgstr "画像のプロパティを編集" #: bin/gscan2pdf:580 msgid "Prefere_nces" msgstr "設定(_N)" #: bin/gscan2pdf:581 msgid "Edit preferences" msgstr "設定の編集" #: bin/gscan2pdf:585 msgid "_View" msgstr "表示(_V)" #: bin/gscan2pdf:588 msgid "Zoom _100%" msgstr "100% に拡大(_1)" #: bin/gscan2pdf:589 msgid "Zoom to 100%" msgstr "100% に拡大" #: bin/gscan2pdf:593 msgid "Zoom to _fit" msgstr "画面に合わせて拡大(_F)" #: bin/gscan2pdf:594 msgid "Zoom to fit" msgstr "画面に合わせて拡大" #: bin/gscan2pdf:598 msgid "Zoom _in" msgstr "拡大(_I)" #: bin/gscan2pdf:599 msgid "Zoom in" msgstr "拡大" #: bin/gscan2pdf:603 msgid "Zoom _out" msgstr "縮小(_O)" #: bin/gscan2pdf:604 msgid "Zoom out" msgstr "縮小" #: bin/gscan2pdf:609 bin/gscan2pdf:611 msgid "Rotate 90 clockwise" msgstr "時計回りに90度回転" #: bin/gscan2pdf:617 bin/gscan2pdf:619 msgid "Rotate 180" msgstr "180度回転" #: bin/gscan2pdf:625 bin/gscan2pdf:627 msgid "Rotate 90 anticlockwise" msgstr "反時計回りに90度回転" #: bin/gscan2pdf:632 msgid "_Tools" msgstr "ツール(_T)" #: bin/gscan2pdf:634 msgid "_Threshold" msgstr "しきい値(_T)" #: bin/gscan2pdf:635 msgid "Change each pixel above this threshold to black" msgstr "このしきい値以上のピクセルを黒に変更します" #: bin/gscan2pdf:639 msgid "_Negate" msgstr "" #: bin/gscan2pdf:640 msgid "Converts black to white and vice versa" msgstr "白黒反転する" #: bin/gscan2pdf:644 msgid "_Unsharp Mask" msgstr "アンシャープマスク(_U)" #: bin/gscan2pdf:645 msgid "Apply an unsharp mask" msgstr "アンシャープマスクを適用" #: bin/gscan2pdf:648 msgid "_Crop" msgstr "切り抜き(_C)" #: bin/gscan2pdf:649 msgid "Crop pages" msgstr "ページの切り抜き" #: bin/gscan2pdf:653 msgid "_Clean up" msgstr "ゴミ取り(_C)" #: bin/gscan2pdf:654 bin/gscan2pdf:4085 msgid "Clean up scanned images with unpaper" msgstr "unpaperでスキャン済みの画像のゴミ取りをします" #: bin/gscan2pdf:657 msgid "_OCR" msgstr "OCR(_O)" #: bin/gscan2pdf:658 msgid "Optical Character Recognition" msgstr "光学的文字認識 (OCR)" #: bin/gscan2pdf:660 msgid "U_ser-defined" msgstr "ユーザー定義(_S)" #: bin/gscan2pdf:663 bin/gscan2pdf:665 msgid "_Help" msgstr "ヘルプ(_H)" #: bin/gscan2pdf:666 msgid "Help" msgstr "ヘルプ" #: bin/gscan2pdf:668 msgid "_About" msgstr "情報(_A)" #: bin/gscan2pdf:674 msgid "_Drag" msgstr "ドラッグ(_D)" #: bin/gscan2pdf:675 msgid "Use the hand tool" msgstr "" #: bin/gscan2pdf:680 msgid "Use the rectangular selection tool" msgstr "矩形選択ツールを使用する" #: bin/gscan2pdf:684 msgid "_Paint" msgstr "ペイント(_P)" #: bin/gscan2pdf:685 msgid "Use the painter tool" msgstr "ペインターツールを使用する" #: bin/gscan2pdf:965 lib/Gscan2pdf/Document.pm:2594 #: lib/Gscan2pdf/Document.pm:2595 msgid "Error copying page" msgstr "ページのコピー中にエラー" #: bin/gscan2pdf:1082 msgid "Image" msgstr "画像" #: bin/gscan2pdf:1117 msgid "OCR Output" msgstr "OCR 出力" #: bin/gscan2pdf:1174 msgid "Mode" msgstr "モード" #: bin/gscan2pdf:1176 msgid "Lineart" msgstr "線画" #: bin/gscan2pdf:1177 msgid "Grayscale" msgstr "グレースケール" #: bin/gscan2pdf:1178 msgid "Gray" msgstr "グレー" #: bin/gscan2pdf:1179 msgid "Color" msgstr "カラー" #: bin/gscan2pdf:1180 msgid "Black & White" msgstr "モノクロ" #: bin/gscan2pdf:1181 msgid "True Gray" msgstr "" #: bin/gscan2pdf:1182 msgid "Binary" msgstr "バイナリー" #: bin/gscan2pdf:1183 bin/gscan2pdf:1242 bin/gscan2pdf:1243 msgid "Auto" msgstr "自動" #: bin/gscan2pdf:1184 msgid "Halftone" msgstr "ハーフトーン" #: bin/gscan2pdf:1185 msgid "24bit Color" msgstr "24ビット色" #: bin/gscan2pdf:1189 bin/gscan2pdf:2547 bin/gscan2pdf:2644 msgid "Compression" msgstr "圧縮" #: bin/gscan2pdf:1191 bin/gscan2pdf:2539 bin/gscan2pdf:2636 msgid "None" msgstr "なし" #: bin/gscan2pdf:1192 bin/gscan2pdf:2537 bin/gscan2pdf:2601 bin/gscan2pdf:2622 msgid "JPEG" msgstr "JPEG" #: bin/gscan2pdf:1195 bin/gscan2pdf:8127 msgid "Resolution" msgstr "解像度" #: bin/gscan2pdf:1196 msgid "Brightness" msgstr "明るさ" #: bin/gscan2pdf:1197 msgid "Gain" msgstr "ゲイン" #: bin/gscan2pdf:1198 msgid "Contrast" msgstr "コントラスト" #: bin/gscan2pdf:1199 bin/gscan2pdf:6406 bin/gscan2pdf:6417 bin/gscan2pdf:6620 msgid "Threshold" msgstr "しきい値" #: bin/gscan2pdf:1201 msgid "Speed" msgstr "速度" #: bin/gscan2pdf:1203 bin/gscan2pdf:1210 bin/gscan2pdf:1217 bin/gscan2pdf:1224 #: bin/gscan2pdf:1231 msgid "Yes" msgstr "はい" #: bin/gscan2pdf:1204 bin/gscan2pdf:1211 bin/gscan2pdf:1218 bin/gscan2pdf:1225 #: bin/gscan2pdf:1232 msgid "No" msgstr "いいえ" #: bin/gscan2pdf:1208 msgid "Batch scan" msgstr "連続スキャン" #: bin/gscan2pdf:1215 bin/gscan2pdf:1222 msgid "Wait for button" msgstr "ボタン操作待ち" #: bin/gscan2pdf:1229 msgid "Cache calibration" msgstr "" #: bin/gscan2pdf:1236 msgid "Source" msgstr "ソース" #: bin/gscan2pdf:1238 msgid "Normal" msgstr "通常" #: bin/gscan2pdf:1239 msgid "ADF" msgstr "ADF" #: bin/gscan2pdf:1240 msgid "Automatic Document Feeder" msgstr "自動給紙装置(ADF)" #: bin/gscan2pdf:1241 msgid "XPA" msgstr "XPA" #: bin/gscan2pdf:1244 msgid "Flatbed" msgstr "フラットベッド" #: bin/gscan2pdf:1245 msgid "Transparency Adapter" msgstr "透過原稿アダプター" #: bin/gscan2pdf:1246 msgid "Transparency Unit" msgstr "透過原稿ユニット" #: bin/gscan2pdf:1249 bin/gscan2pdf:1251 msgid "Page Width" msgstr "ページ幅" #: bin/gscan2pdf:1250 bin/gscan2pdf:1252 msgid "Page Height" msgstr "ページ高さ" #: bin/gscan2pdf:1253 msgid "Top Overscan" msgstr "" #: bin/gscan2pdf:1254 msgid "Bottom Overscan" msgstr "" #: bin/gscan2pdf:1256 bin/gscan2pdf:1263 msgid "ADF Mode" msgstr "ADFモード" #: bin/gscan2pdf:1258 bin/gscan2pdf:1265 msgid "Simplex" msgstr "片面" #: bin/gscan2pdf:1259 bin/gscan2pdf:1266 msgid "Duplex" msgstr "両面" #: bin/gscan2pdf:1301 bin/gscan2pdf:1306 msgid "Pick crashed session to restore" msgstr "クラッシュしたセッションを復元する" #: bin/gscan2pdf:1308 bin/gscan2pdf:2609 msgid "Session" msgstr "セッション" #: bin/gscan2pdf:1338 #, perl-format msgid "" "Warning: unable to use %s for temporary storage. Defaulting to %s instead." msgstr "警告: %s を一時ストレージとして使用できません。代わりに %s をデフォルトにします。" #: bin/gscan2pdf:1441 msgid "GOCR" msgstr "GOCR" #: bin/gscan2pdf:1441 msgid "Process image with GOCR." msgstr "GOCRで画像を処理" #: bin/gscan2pdf:1445 msgid "Tesseract" msgstr "Tesseract" #: bin/gscan2pdf:1446 msgid "Process image with Tesseract." msgstr "Tesseractで画像を処理" #: bin/gscan2pdf:1450 msgid "Ocropus" msgstr "Ocropus" #: bin/gscan2pdf:1450 msgid "Process image with Ocropus." msgstr "Ocropusで画像を処理" #: bin/gscan2pdf:1454 msgid "Cuneiform" msgstr "Cuneiform" #: bin/gscan2pdf:1455 msgid "Process image with Cuneiform." msgstr "Cuneiformで画像を処理" #: bin/gscan2pdf:1461 msgid "Save image and Save as PDF both require imagemagick\n" msgstr "画像を保存したりPDFとして保存するにはimagemagickが必要です\n" #: bin/gscan2pdf:1465 msgid "Save image requires libtiff\n" msgstr "画像を保存するにはlibtiffが必要です\n" #: bin/gscan2pdf:1469 msgid "Save as DjVu requires djvulibre-bin\n" msgstr "Djvuとして保存するにはdjvulibre-binが必要です\n" #: bin/gscan2pdf:1473 msgid "Email as PDF requires xdg-email\n" msgstr "PDFとしてメール送信を行うには、xdg-mailが必要です\n" #: bin/gscan2pdf:1518 msgid "The rotating options and unpaper support require perlmagick\n" msgstr "回転オプションとunpaperを使用するにはperlmagickが必要です\n" #: bin/gscan2pdf:1524 msgid "unpaper missing\n" msgstr "unpaperが見つかりません\n" #: bin/gscan2pdf:1534 msgid "OCR requires gocr, tesseract, ocropus, or cuneiform\n" msgstr "OCRを行うには、gocr、 tesseract、 ocropus、 cuneiformのいずれかが必要です\n" #: bin/gscan2pdf:1539 msgid "Warning: missing packages" msgstr "警告: パッケージが見つかりません" #: bin/gscan2pdf:1544 msgid "Don't show this message again" msgstr "次回からこのメッセージを表示しない" #: bin/gscan2pdf:1753 msgid "" "Some pages have not been saved.\n" "Do you really want to clear all pages?" msgstr "" "一部のページは保存されていません。\n" "本当にすべてのページをクリアしますか?" #: bin/gscan2pdf:1828 bin/gscan2pdf:1858 #, perl-format msgid "Process %i of %i (%s)" msgstr "処理中 %i/%i (%s)" #: bin/gscan2pdf:1867 #, perl-format msgid "Process %i of %i" msgstr "処理中 %i/%i" #: bin/gscan2pdf:1895 msgid "Open image" msgstr "画像を開く" #: bin/gscan2pdf:1903 bin/gscan2pdf:2797 bin/gscan2pdf:3113 msgid "Image files" msgstr "画像ファイル" #: bin/gscan2pdf:1940 msgid "Pages to extract" msgstr "抽出するページ" #: bin/gscan2pdf:1943 bin/gscan2pdf:2117 bin/gscan2pdf:2586 bin/gscan2pdf:3353 #: bin/gscan2pdf:3494 bin/gscan2pdf:4104 bin/gscan2pdf:4514 bin/gscan2pdf:5825 #: bin/gscan2pdf:6409 bin/gscan2pdf:6495 bin/gscan2pdf:6565 bin/gscan2pdf:6737 #: bin/gscan2pdf:7011 bin/gscan2pdf:7274 bin/gscan2pdf:7757 bin/gscan2pdf:8123 #: lib/Gscan2pdf/Dialog.pm:56 lib/Gscan2pdf/Dialog/Renumber.pm:80 #: lib/Gscan2pdf/Scanner/Dialog.pm:201 t/05_Dialog.t:28 msgid "vbox" msgstr "" #: bin/gscan2pdf:1946 msgid "First page to extract" msgstr "抽出する最初のページ" #: bin/gscan2pdf:1953 msgid "Last page to extract" msgstr "抽出する最後のページ" #: bin/gscan2pdf:2042 lib/Gscan2pdf/Dialog/Renumber.pm:83 msgid "Page Range" msgstr "ページ範囲" #: bin/gscan2pdf:2092 msgid "Metadata" msgstr "メタデータ" #: bin/gscan2pdf:2101 msgid "Date" msgstr "日付" #: bin/gscan2pdf:2114 msgid "Select Date" msgstr "日付の選択" #: bin/gscan2pdf:2136 msgid "Today" msgstr "今日" #: bin/gscan2pdf:2150 msgid "Year-Month-Day" msgstr "年-月-日" #: bin/gscan2pdf:2156 msgid "Document author" msgstr "ドキュメントの作者" #: bin/gscan2pdf:2165 msgid "Title" msgstr "タイトル" #: bin/gscan2pdf:2174 msgid "Subject" msgstr "" #: bin/gscan2pdf:2183 msgid "Keywords" msgstr "キーワード" #: bin/gscan2pdf:2245 msgid "Editing text" msgstr "テキストを編集" #: bin/gscan2pdf:2252 bin/gscan2pdf:2258 bin/gscan2pdf:2332 msgid "text" msgstr "テキスト" #: bin/gscan2pdf:2352 msgid "PDF filename" msgstr "PDFファイル名" #: bin/gscan2pdf:2381 msgid "PDF files" msgstr "PDFファイル" #: bin/gscan2pdf:2405 bin/gscan2pdf:2823 bin/gscan2pdf:2880 bin/gscan2pdf:2976 #: bin/gscan2pdf:3035 bin/gscan2pdf:3087 bin/gscan2pdf:3275 #, perl-format msgid "File %s is read-only" msgstr "ファイル %s は読み込み専用です" #: bin/gscan2pdf:2482 msgid "JPEG Quality" msgstr "JPEG 画質" #: bin/gscan2pdf:2496 msgid "Downsample to" msgstr "" #: bin/gscan2pdf:2501 msgid "PPI" msgstr "PPI" #: bin/gscan2pdf:2520 msgid "Automatic" msgstr "自動" #: bin/gscan2pdf:2521 msgid "Let gscan2pdf which type of compression to use." msgstr "" #: bin/gscan2pdf:2524 bin/gscan2pdf:2616 msgid "LZW" msgstr "LZW" #: bin/gscan2pdf:2525 bin/gscan2pdf:2617 msgid "Compress output with Lempel-Ziv & Welch encoding." msgstr "Lempel-Ziv & Welch (LZW)エンコーディングで出力を圧縮します。" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Zip" msgstr "Zip" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Compress output with deflate encoding." msgstr "deflateエンコーディングで出力を圧縮します。" #: bin/gscan2pdf:2529 bin/gscan2pdf:2624 msgid "Packbits" msgstr "Packbits" #: bin/gscan2pdf:2530 bin/gscan2pdf:2625 msgid "Compress output with Packbits encoding." msgstr "Packbitsエンコーディングで出力を圧縮します。" #: bin/gscan2pdf:2536 bin/gscan2pdf:2604 msgid "PNG" msgstr "PNG" #: bin/gscan2pdf:2536 msgid "Compress output with PNG encoding." msgstr "PNGエンコーディングで出力を圧縮します。" #: bin/gscan2pdf:2537 bin/gscan2pdf:2622 msgid "Compress output with JPEG encoding." msgstr "JPEGエンコーディングで出力を圧縮します。" #: bin/gscan2pdf:2540 bin/gscan2pdf:2637 msgid "Use no compression algorithm on output." msgstr "出力する際に圧縮アルゴリズムを使用しません。" #: bin/gscan2pdf:2594 msgid "Image type" msgstr "画像の種類" #: bin/gscan2pdf:2598 msgid "PDF" msgstr "PDF" #: bin/gscan2pdf:2598 msgid "Portable Document Format" msgstr "Portable Document Format(PDF)" #: bin/gscan2pdf:2599 msgid "GIF" msgstr "GIF" #: bin/gscan2pdf:2599 msgid "CompuServe graphics interchange format" msgstr "CompuServe graphics interchange (GIF)フォーマット" #: bin/gscan2pdf:2602 msgid "Joint Photographic Experts Group JFIF format" msgstr "Joint Photographic Experts Group JFIF (JPEG)フォーマット" #: bin/gscan2pdf:2604 msgid "Portable Network Graphics" msgstr "Portable Network Graphics(PNG)" #: bin/gscan2pdf:2605 msgid "PNM" msgstr "PNM" #: bin/gscan2pdf:2605 msgid "Portable anymap" msgstr "" #: bin/gscan2pdf:2606 msgid "PS" msgstr "PS" #: bin/gscan2pdf:2606 msgid "Postscript" msgstr "Postscript" #: bin/gscan2pdf:2607 msgid "TIFF" msgstr "TIFF" #: bin/gscan2pdf:2607 msgid "Tagged Image File Format" msgstr "Tagged Image File Format(TIFF)" #: bin/gscan2pdf:2608 msgid "Text" msgstr "テキスト" #: bin/gscan2pdf:2608 msgid "Plain text" msgstr "プレーンテキスト" #: bin/gscan2pdf:2609 msgid "gscan2pdf session file" msgstr "gscan2pdf セッションファイル" #: bin/gscan2pdf:2611 msgid "DjVu" msgstr "DjVu" #: bin/gscan2pdf:2611 msgid "Deja Vu" msgstr "Deja Vu" #: bin/gscan2pdf:2628 msgid "G3" msgstr "G3" #: bin/gscan2pdf:2629 msgid "Compress output with CCITT Group 3 encoding." msgstr "CCITT Group 3 (G3)エンコーディングで出力を圧縮します。" #: bin/gscan2pdf:2632 msgid "G4" msgstr "G4" #: bin/gscan2pdf:2633 msgid "Compress output with CCITT Group 4 encoding." msgstr "CCITT Group 4 (G4)エンコーディングで出力を圧縮します。" #: bin/gscan2pdf:2649 msgid "tiff" msgstr "tiff" #: bin/gscan2pdf:2681 msgid "Font for non-ASCII text" msgstr "非ASCIIテキスト用のフォント" #: bin/gscan2pdf:2790 msgid "TIFF filename" msgstr "TIFFファイル名" #: bin/gscan2pdf:2848 msgid "Text filename" msgstr "テキストファイル名" #: bin/gscan2pdf:2856 msgid "Text files" msgstr "テキストファイル" #: bin/gscan2pdf:2944 msgid "PS filename" msgstr "PSファイル名" #: bin/gscan2pdf:2951 msgid "Postscript files" msgstr "Postscriptファイル" #: bin/gscan2pdf:3003 msgid "gscan2pdf session filename" msgstr "gscan2pdfセッションファイル名" #: bin/gscan2pdf:3010 msgid "gscan2pdf session files" msgstr "gscan2pdfセッションファイル" #: bin/gscan2pdf:3093 #, perl-format msgid "" "File %s exists.\n" "Really overwrite?" msgstr "" "ファイル %s は存在しています。\n" "本当に上書きしますか?" #: bin/gscan2pdf:3106 msgid "Image filename" msgstr "画像ファイル名" #: bin/gscan2pdf:3245 msgid "DjVu filename" msgstr "DjVuファイル名" #: bin/gscan2pdf:3252 msgid "DjVu files" msgstr "DjVuファイル" #: bin/gscan2pdf:3349 msgid "Email as PDF" msgstr "PDFとしてメール送信" #: bin/gscan2pdf:3454 msgid "Error creating email" msgstr "メールの作成中にエラー" #: bin/gscan2pdf:3490 bin/gscan2pdf:4313 msgid "Scan Document" msgstr "ドキュメントをスキャン" #: bin/gscan2pdf:3507 lib/Gscan2pdf/Scanner/Dialog.pm:248 msgid "Page Options" msgstr "ページオプション" #: bin/gscan2pdf:3510 lib/Gscan2pdf/Scanner/Dialog.pm:251 msgid "# Pages" msgstr "ページ数" #: bin/gscan2pdf:3519 lib/Gscan2pdf/PageRange.pm:34 #: lib/Gscan2pdf/Scanner/Dialog.pm:261 msgid "All" msgstr "すべて" #: bin/gscan2pdf:3520 lib/Gscan2pdf/Scanner/Dialog.pm:262 msgid "Scan all pages" msgstr "すべてのページをスキャン" #: bin/gscan2pdf:3532 bin/gscan2pdf:3537 lib/Gscan2pdf/Scanner/Dialog.pm:274 #: lib/Gscan2pdf/Scanner/Dialog.pm:279 msgid "Set number of pages to scan" msgstr "スキャンするページ番号を設定" #: bin/gscan2pdf:3550 lib/Gscan2pdf/Scanner/Dialog.pm:308 msgid "Extended page numbering" msgstr "拡張ページ番号付け" #: bin/gscan2pdf:3554 lib/Gscan2pdf/Scanner/Dialog.pm:312 msgid "Page number" msgstr "ページ番号" #: bin/gscan2pdf:3563 lib/Gscan2pdf/Dialog/Renumber.pm:111 #: lib/Gscan2pdf/Scanner/Dialog.pm:321 msgid "Start" msgstr "開始" #: bin/gscan2pdf:3572 lib/Gscan2pdf/Dialog/Renumber.pm:132 #: lib/Gscan2pdf/Scanner/Dialog.pm:340 msgid "Increment" msgstr "増分" #: bin/gscan2pdf:3604 lib/Gscan2pdf/Scanner/Dialog.pm:372 msgid "Source document" msgstr "ソースドキュメント" #: bin/gscan2pdf:3611 lib/Gscan2pdf/Scanner/Dialog.pm:379 msgid "Single sided" msgstr "片面" #: bin/gscan2pdf:3612 lib/Gscan2pdf/Scanner/Dialog.pm:380 msgid "Source document is single-sided" msgstr "ソースドキュメントは片面です" #: bin/gscan2pdf:3622 lib/Gscan2pdf/Scanner/Dialog.pm:390 msgid "Double sided" msgstr "両面" #: bin/gscan2pdf:3623 lib/Gscan2pdf/Scanner/Dialog.pm:391 msgid "Source document is double-sided" msgstr "ソースドキュメントは両面です" #: bin/gscan2pdf:3629 lib/Gscan2pdf/Scanner/Dialog.pm:397 msgid "Side to scan" msgstr "スキャン面" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Facing" msgstr "表面" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Reverse" msgstr "裏面" #: bin/gscan2pdf:3655 lib/Gscan2pdf/Scanner/Dialog.pm:418 msgid "Sets which side of a double-sided document is scanned" msgstr "" #: bin/gscan2pdf:3719 msgid "Scan Options" msgstr "スキャンオプション" #: bin/gscan2pdf:3722 msgid "Device-dependent options" msgstr "デバイス独自のオプション" #: bin/gscan2pdf:3729 lib/Gscan2pdf/Scanner/Dialog.pm:458 msgid "Scan profiles" msgstr "スキャンプロファイル" #: bin/gscan2pdf:3778 bin/gscan2pdf:3784 lib/Gscan2pdf/Scanner/Dialog.pm:479 #: lib/Gscan2pdf/Scanner/Dialog.pm:485 msgid "Name of scan profile" msgstr "スキャンプロファイル名" #: bin/gscan2pdf:3828 lib/Gscan2pdf/Scanner/Dialog.pm:518 msgid "Scan" msgstr "スキャン" #: bin/gscan2pdf:3866 msgid "Must scan facing pages first" msgstr "表面を最初にスキャンする必要あり" #: bin/gscan2pdf:3977 msgid "Post-processing" msgstr "" #: bin/gscan2pdf:3986 bin/gscan2pdf:4008 msgid "Rotate" msgstr "回転" #: bin/gscan2pdf:3987 bin/gscan2pdf:4009 msgid "Rotate image after scanning" msgstr "スキャン後に画像を回転" #: bin/gscan2pdf:3990 msgid "Both sides" msgstr "両面" #: bin/gscan2pdf:3990 msgid "Both sides." msgstr "両面" #: bin/gscan2pdf:3991 msgid "Facing side" msgstr "表面" #: bin/gscan2pdf:3991 msgid "Facing side." msgstr "表面" #: bin/gscan2pdf:3992 msgid "Reverse side" msgstr "裏面" #: bin/gscan2pdf:3992 msgid "Reverse side." msgstr "裏面" #: bin/gscan2pdf:3995 bin/gscan2pdf:4013 msgid "Select side to rotate" msgstr "回転する面を選択" #: bin/gscan2pdf:3998 msgid "90" msgstr "90" #: bin/gscan2pdf:3998 msgid "Rotate image 90 degrees clockwise." msgstr "" #: bin/gscan2pdf:3999 msgid "180" msgstr "180" #: bin/gscan2pdf:3999 msgid "Rotate image 180 degrees clockwise." msgstr "" #: bin/gscan2pdf:4000 msgid "270" msgstr "270" #: bin/gscan2pdf:4000 msgid "Rotate image 90 degrees anticlockwise." msgstr "" #: bin/gscan2pdf:4003 bin/gscan2pdf:4016 msgid "Select direction of rotation" msgstr "回転の方向を選択" #: bin/gscan2pdf:4083 msgid "Clean up images" msgstr "" #: bin/gscan2pdf:4094 msgid "Options" msgstr "オプション" #: bin/gscan2pdf:4095 msgid "Set unpaper options" msgstr "" #: bin/gscan2pdf:4101 msgid "unpaper options" msgstr "unpaperのオプション" #: bin/gscan2pdf:4136 bin/gscan2pdf:4137 msgid "OCR scanned pages" msgstr "" #: bin/gscan2pdf:4151 msgid "Select OCR engine" msgstr "OCRエンジンを選択" #: bin/gscan2pdf:4210 lib/Gscan2pdf/Scanner/Dialog.pm:634 msgid "Fetching list of devices" msgstr "デバイスのリストを取得中" #: bin/gscan2pdf:4225 lib/Gscan2pdf/Scanner/Dialog.pm:654 msgid "No devices found" msgstr "デバイスが見つかりません" #: bin/gscan2pdf:4367 bin/gscan2pdf:4732 bin/gscan2pdf:4777 bin/gscan2pdf:5214 #: lib/Gscan2pdf/Scanner/Dialog.pm:343 lib/Gscan2pdf/Scanner/Dialog.pm:348 #: t/061_Scanner_Dialog.t:38 t/061_Scanner_Dialog.t:95 msgid "page-number-increment" msgstr "" #: bin/gscan2pdf:4374 bin/gscan2pdf:4729 bin/gscan2pdf:4730 bin/gscan2pdf:4776 #: bin/gscan2pdf:5213 lib/Gscan2pdf/Scanner/Dialog.pm:361 #: t/061_Scanner_Dialog.t:37 msgid "page-number-start" msgstr "" #: bin/gscan2pdf:4663 lib/Gscan2pdf/Scanner/Dialog.pm:210 msgid "Device" msgstr "デバイス" #: bin/gscan2pdf:4671 lib/Gscan2pdf/Scanner/Dialog.pm:213 msgid "Rescan for devices" msgstr "デバイスの再検索" #: bin/gscan2pdf:4694 lib/Gscan2pdf/Scanner/Dialog.pm:237 msgid "Sets the device to be used for the scan" msgstr "スキャンに使用するデバイスを設定" #: bin/gscan2pdf:4780 lib/Gscan2pdf/Scanner/Dialog.pm:300 #: t/061_Scanner_Dialog.t:35 msgid "num-pages" msgstr "" #: bin/gscan2pdf:4821 msgid "Scanning" msgstr "スキャン中" #: bin/gscan2pdf:4974 msgid "Unable to load image" msgstr "画像を読み込めません" #: bin/gscan2pdf:5004 msgid "print-pages" msgstr "" #: bin/gscan2pdf:5008 msgid "page-ranges" msgstr "" #: bin/gscan2pdf:5405 msgid "Patches gratefully received from:" msgstr "" #: bin/gscan2pdf:5407 msgid "To aid the scan-to-PDF process" msgstr "" #: bin/gscan2pdf:5408 msgid "Copyright 2006--2012 Jeffrey Ratcliffe" msgstr "Copyright 2006--2012 Jeffrey Ratcliffe" #: bin/gscan2pdf:5492 bin/gscan2pdf:6028 msgid "The options cache seems to be empty. Reload device-dependent options?" msgstr "オプションキャッシュが空です。デバイス独自のオプションを再読み込みしますか?" #: bin/gscan2pdf:5519 bin/gscan2pdf:6054 msgid "Updating options" msgstr "" #: bin/gscan2pdf:5571 msgid "Paper size" msgstr "用紙サイズ" #: bin/gscan2pdf:5572 bin/gscan2pdf:5672 bin/gscan2pdf:5840 bin/gscan2pdf:6769 msgid "Width" msgstr "幅" #: bin/gscan2pdf:5573 bin/gscan2pdf:5678 bin/gscan2pdf:5841 bin/gscan2pdf:6780 msgid "Height" msgstr "高さ" #: bin/gscan2pdf:5574 bin/gscan2pdf:5684 bin/gscan2pdf:5842 #: lib/Gscan2pdf/Unpaper.pm:124 lib/Gscan2pdf/Unpaper.pm:152 msgid "Left" msgstr "" #: bin/gscan2pdf:5575 bin/gscan2pdf:5690 bin/gscan2pdf:5843 #: lib/Gscan2pdf/Unpaper.pm:129 lib/Gscan2pdf/Unpaper.pm:157 msgid "Top" msgstr "" #: bin/gscan2pdf:5589 bin/gscan2pdf:5703 bin/gscan2pdf:6232 msgid "Manual" msgstr "マニュアル" #: bin/gscan2pdf:5590 bin/gscan2pdf:5700 msgid "Edit" msgstr "編集" #: bin/gscan2pdf:5591 msgid "Selects or edits the paper size" msgstr "用紙サイズを選択するか編集してください" #: bin/gscan2pdf:5673 msgid "Width of scan area" msgstr "" #: bin/gscan2pdf:5679 msgid "Height of scan area" msgstr "" #: bin/gscan2pdf:5685 msgid "Top-left x position of scan area" msgstr "" #: bin/gscan2pdf:5691 msgid "Top-left y position of scan area" msgstr "" #: bin/gscan2pdf:5822 msgid "Edit paper size" msgstr "" #: bin/gscan2pdf:5839 msgid "Name" msgstr "名前" #: bin/gscan2pdf:5893 msgid "Cannot delete all paper sizes" msgstr "すべての用紙サイズは削除できません" #: bin/gscan2pdf:5955 msgid "" "The following paper sizes are too big to be scanned by the selected device:" msgstr "選択されたデバイスでスキャンするには、以下のページサイズは大きすぎます:" #: bin/gscan2pdf:6419 bin/gscan2pdf:6605 msgid "%" msgstr "%" #: bin/gscan2pdf:6492 msgid "Negate" msgstr "" #: bin/gscan2pdf:6562 msgid "Unsharp mask" msgstr "アンシャープマスク" #: bin/gscan2pdf:6573 msgid "Radius" msgstr "" #: bin/gscan2pdf:6575 bin/gscan2pdf:6592 bin/gscan2pdf:6747 bin/gscan2pdf:6759 #: bin/gscan2pdf:6771 bin/gscan2pdf:6782 msgid "pixels" msgstr "ピクセル" #: bin/gscan2pdf:6582 msgid "" "The radius of the Gaussian, in pixels, not counting the center pixel (0 = " "automatic)." msgstr "" #: bin/gscan2pdf:6590 msgid "Sigma" msgstr "" #: bin/gscan2pdf:6597 msgid "The standard deviation of the Gaussian." msgstr "" #: bin/gscan2pdf:6603 msgid "Amount" msgstr "" #: bin/gscan2pdf:6612 msgid "" "The percentage of the difference between the original and the blur image " "that is added back into the original." msgstr "" #: bin/gscan2pdf:6627 msgid "" "The threshold, as a fraction of QuantumRange, needed to apply the difference " "amount." msgstr "" #: bin/gscan2pdf:6733 msgid "Crop" msgstr "切り取り" #: bin/gscan2pdf:6745 msgid "x" msgstr "" #: bin/gscan2pdf:6751 msgid "The x-position of the left hand edge of the crop." msgstr "" #: bin/gscan2pdf:6757 msgid "y" msgstr "" #: bin/gscan2pdf:6763 msgid "The y-position of the top edge of the crop." msgstr "" #: bin/gscan2pdf:6774 msgid "The width of the crop." msgstr "" #: bin/gscan2pdf:6785 msgid "The height of the crop." msgstr "" #: bin/gscan2pdf:6906 msgid "label" msgstr "ラベル" #: bin/gscan2pdf:7007 msgid "unpaper" msgstr "" #: bin/gscan2pdf:7216 bin/gscan2pdf:7244 msgid "Language to recognise" msgstr "認識する言語" #: bin/gscan2pdf:7227 msgid "English" msgstr "英語" #: bin/gscan2pdf:7270 msgid "OCR" msgstr "OCR" #: bin/gscan2pdf:7279 msgid "OCR Engine" msgstr "OCRエンジン" #: bin/gscan2pdf:7323 msgid "Start OCR" msgstr "OCRを開始" #: bin/gscan2pdf:7339 msgid "No page selected" msgstr "ページが選択されていません" #: bin/gscan2pdf:7374 msgid "" "Some pages have not been saved.\n" "Do you really want to quit?" msgstr "" "一部のページはまだ保存されていません。\n" "本当に終了しますか?" #: bin/gscan2pdf:7432 #, perl-format msgid "" "The help viewer requires module Gtk2::Ex::PodViewer\n" "Alternatively, try: %s %s\n" "\n" msgstr "" #: bin/gscan2pdf:7698 msgid "This operation cannot be undone. Are you sure?" msgstr "この操作は元に戻せません。本当に実行しますか?" #: bin/gscan2pdf:7753 msgid "Preferences" msgstr "設定" #: bin/gscan2pdf:7762 msgid "Frontend" msgstr "フロントエンド" #: bin/gscan2pdf:7766 msgid "libsane-perl" msgstr "libsane-perl" #: bin/gscan2pdf:7767 msgid "Scan using the perl bindings for SANE." msgstr "SANE向けのperlバインディングを使用してスキャンします。" #: bin/gscan2pdf:7770 msgid "scanimage" msgstr "scanimage" #: bin/gscan2pdf:7771 msgid "Scan using the scanimage frontend." msgstr "scanimageフロントエンドを使用してスキャンします。" #: bin/gscan2pdf:7775 msgid "scanimage-perl" msgstr "scanimage-perl" #: bin/gscan2pdf:7776 msgid "Scan using the scanimage-perl frontend." msgstr "scanimage-perlフロントエンドを使用してスキャンします。" #: bin/gscan2pdf:7779 msgid "scanadf-perl" msgstr "scanadf-perl" #: bin/gscan2pdf:7780 msgid "Scan using the scanadf-perl frontend." msgstr "scanadf-perlフロントエンドを使用してスキャンします。" #: bin/gscan2pdf:7785 msgid "scanadf" msgstr "scanadf" #: bin/gscan2pdf:7786 msgid "Scan using the scanadf frontend." msgstr "scanadfフロントエンドを使用してスキャンします。" #: bin/gscan2pdf:7791 msgid "Cycle SANE handle after scan" msgstr "" #: bin/gscan2pdf:7814 msgid "Default filename for PDFs" msgstr "PDFのデフォルトファイル名" #: bin/gscan2pdf:7820 msgid "" "%a\t author\n" "%t\t title\n" "%y\t document's year\n" "%Y\t today's year\n" "%m\t document's month\n" "%M\t today's month\n" "%d\t document's day\n" "%D\t today's day" msgstr "" "%a\t 作者\n" "%t\t タイトル\n" "%y\t ドキュメントの年\n" "%Y\t 今日の年\n" "%m\t ドキュメントの月\n" "%M\t 今日の月\n" "%d\t ドキュメントの日\n" "%D\t 今日の日" #: bin/gscan2pdf:7830 msgid "Scan command prefix" msgstr "スキャンコマンドのプレフィックス" #: bin/gscan2pdf:7839 msgid "Restore window settings on startup" msgstr "起動時にウィンドウ設定を復元する" #: bin/gscan2pdf:7845 msgid "Cache device-dependent options" msgstr "デバイス独自のオプションをキャッシュする" #: bin/gscan2pdf:7851 msgid "Clear device-dependent options cache" msgstr "デバイス独自のオプションキャッシュをクリア" #: bin/gscan2pdf:7862 msgid "Temporary directory" msgstr "一時ディレクトリ" #: bin/gscan2pdf:7867 msgid "Browse" msgstr "参照" #: bin/gscan2pdf:7871 msgid "Select temporary directory" msgstr "一時ディレクトリを選択してください" #: bin/gscan2pdf:7888 msgid "Blank threshold" msgstr "空白のしきい値" #: bin/gscan2pdf:7893 msgid "Threshold used for selecting blank pages" msgstr "空白ページを選択する際に使用するしきい値" #: bin/gscan2pdf:7899 msgid "Dark threshold" msgstr "黒のしきい値" #: bin/gscan2pdf:7904 msgid "Threshold used for selecting dark pages" msgstr "黒ページを選択する際に使用するしきい値" #: bin/gscan2pdf:7910 msgid "OCR output" msgstr "OCR出力" #: bin/gscan2pdf:7915 msgid "Replace" msgstr "置き換え" #: bin/gscan2pdf:7917 msgid "" "Replace the contents of the text buffer with that from the OCR output." msgstr "OCR出力でテキストバッファーの内容を置き換えます。" #: bin/gscan2pdf:7920 msgid "Prepend" msgstr "先頭に追加" #: bin/gscan2pdf:7921 msgid "Prepend the OCR output to the text buffer." msgstr "OCR出力をテキストバッファーの先頭に追加します。" #: bin/gscan2pdf:7924 msgid "Append" msgstr "末尾に追加" #: bin/gscan2pdf:7925 msgid "Append the OCR output to the text buffer." msgstr "OCR出力をテキストバッファーの末尾に追加します。" #: bin/gscan2pdf:7933 msgid "User-defined tools" msgstr "ユーザー定義ツール" #: bin/gscan2pdf:7954 msgid "View files on saving" msgstr "保存中にファイルを表示" #: bin/gscan2pdf:8000 msgid "" "You will have to restart gscanp2df for changes to the temporary directory to " "take effect." msgstr "一時ディレクトリの変更を有効にするため、gscanp2dfを再起動してください。" #: bin/gscan2pdf:8092 msgid "" "Use %i and %o for the input and output filenames respectively, or a single " "%i if the image is to be modified in-place.\n" "\n" "The other variable available is:\n" "\n" "%r resolution" msgstr "" "入力ファイル名と出力ファイル名には、それぞれ「%i」と「%o」を使用してください。または、画像をその場で変更する場合は「%i」のみにしてください。\n" "\n" "利用可能な他の変数:\n" "\n" "%r 解像度" #: bin/gscan2pdf:8119 msgid "Properties" msgstr "プロパティ" #: lib/Gscan2pdf/Dialog.pm:63 lib/Gscan2pdf/Dialog.pm:79 t/05_Dialog.t:25 msgid "hide-on-delete" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:78 lib/Gscan2pdf/Dialog/Renumber.pm:162 msgid "Renumber" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:98 lib/Gscan2pdf/Dialog/Renumber.pm:207 #: lib/Gscan2pdf/Dialog/Renumber.pm:244 msgid "range" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:102 msgid "Page numbering" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:105 lib/Gscan2pdf/Scanner/Dialog.pm:254 msgid "border_width" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:126 lib/Gscan2pdf/Dialog/Renumber.pm:192 #: lib/Gscan2pdf/Dialog/Renumber.pm:242 t/07_Dialog_Renumber.t:33 #: t/07_Dialog_Renumber.t:45 t/07_Dialog_Renumber.t:59 #: t/07_Dialog_Renumber.t:66 msgid "start" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:147 lib/Gscan2pdf/Dialog/Renumber.pm:193 #: lib/Gscan2pdf/Dialog/Renumber.pm:243 t/07_Dialog_Renumber.t:34 #: t/07_Dialog_Renumber.t:46 t/07_Dialog_Renumber.t:60 #: t/07_Dialog_Renumber.t:67 msgid "increment" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:205 lib/Gscan2pdf/Dialog/Renumber.pm:241 msgid "document" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:295 msgid "" "The current settings would result in duplicate page numbers. Please select " "new start and increment values." msgstr "" #: lib/Gscan2pdf/Document.pm:83 msgid "Thumbnails" msgstr "サムネイル" #: lib/Gscan2pdf/Document.pm:1502 msgid "Unknown DjVu file structure. Please contact the author." msgstr "不明なDjVuファイル構造です。作者に連絡してください。" #: lib/Gscan2pdf/Document.pm:1558 #, perl-format msgid "%s is not a recognised image type" msgstr "%s は画像として認識されていません" #: lib/Gscan2pdf/Document.pm:1580 lib/Gscan2pdf/Document.pm:1637 #, perl-format msgid "Importing page %i of %i" msgstr "ページをインポート中 %i/%i" #: lib/Gscan2pdf/Document.pm:1613 msgid "Error extracting images from PDF" msgstr "PDFから画像の抽出中にエラー" #: lib/Gscan2pdf/Document.pm:1692 msgid "Setting up PDF" msgstr "PDFの設定" #: lib/Gscan2pdf/Document.pm:1703 #, perl-format msgid "Saving page %i of %i" msgstr "ページの保存中 %i/%i" #: lib/Gscan2pdf/Document.pm:1814 lib/Gscan2pdf/Document.pm:2136 #, perl-format msgid "Error compressing image: %s" msgstr "画像の圧縮中にエラー: %s" #: lib/Gscan2pdf/Document.pm:1919 #, perl-format msgid "Error creating PDF image object: %s" msgstr "PDF画像オブジェクトの作成中にエラー: %s" #: lib/Gscan2pdf/Document.pm:1930 #, perl-format msgid "Error embedding file image in %s format to PDF: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1939 msgid "Closing PDF" msgstr "PDFを閉じています" #: lib/Gscan2pdf/Document.pm:1955 #, perl-format msgid "Writing page %i of %i" msgstr "ページの書き込み中 %i/%i" #: lib/Gscan2pdf/Document.pm:2006 msgid "Error writing DjVu" msgstr "DjVuの書き込み中にエラー" #: lib/Gscan2pdf/Document.pm:2025 lib/Gscan2pdf/Document.pm:2227 #, perl-format msgid "Can't open file: %s" msgstr "ファイルを開けません: %s" #: lib/Gscan2pdf/Document.pm:2050 msgid "Error adding text layer to DjVu" msgstr "DjVuにテキストレイヤーの追加中にエラー" #: lib/Gscan2pdf/Document.pm:2056 msgid "Closing DjVu" msgstr "DjVuを閉じています" #: lib/Gscan2pdf/Document.pm:2063 msgid "Error closing DjVu" msgstr "DjVuを閉じる際にエラー" #: lib/Gscan2pdf/Document.pm:2078 #, perl-format msgid "Converting image %i of %i to TIFF" msgstr "" #: lib/Gscan2pdf/Document.pm:2105 msgid "Error writing TIFF" msgstr "TIFFの書き込み中にエラー" #: lib/Gscan2pdf/Document.pm:2121 msgid "Concatenating TIFFs" msgstr "" #: lib/Gscan2pdf/Document.pm:2140 msgid "Converting to PS" msgstr "PSに変換中" #: lib/Gscan2pdf/Document.pm:2200 lib/Gscan2pdf/Document.pm:2215 msgid "Error saving image" msgstr "画像の保存中にエラー" #: lib/Gscan2pdf/Frontend/CLI.pm:158 #, perl-format msgid "Scanning %i pages..." msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:163 #, perl-format msgid "Scanning page %i..." msgstr "ページ %i をスキャン中..." #: lib/Gscan2pdf/Frontend/CLI.pm:188 lib/Gscan2pdf/Frontend/CLI.pm:296 msgid "Scanner warming up" msgstr "スキャナーのウォームアップ中" #: lib/Gscan2pdf/Frontend/CLI.pm:195 msgid "Document feeder out of documents" msgstr "給紙装置にドキュメントがありません" #: lib/Gscan2pdf/Frontend/CLI.pm:212 lib/Gscan2pdf/Frontend/CLI.pm:325 msgid "Device busy" msgstr "デバイスがビジーです" #: lib/Gscan2pdf/Frontend/CLI.pm:218 lib/Gscan2pdf/Frontend/CLI.pm:330 msgid "Operation cancelled" msgstr "操作をキャンセルしました" #: lib/Gscan2pdf/Frontend/CLI.pm:223 lib/Gscan2pdf/Frontend/CLI.pm:336 msgid "Unknown message: " msgstr "不明なメッセージ: " #: lib/Gscan2pdf/Page.pm:68 lib/Gscan2pdf/Page.pm:73 #, perl-format msgid "Error importing image %s: %s" msgstr "" #: lib/Gscan2pdf/PageRange.pm:33 msgid "Selected" msgstr "選択した範囲" #: lib/Gscan2pdf/PageRange.pm:58 msgid "active" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:218 t/061_Scanner_Dialog.t:33 #: t/061_Scanner_Dialog.t:59 msgid "device-list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:496 t/061_Scanner_Dialog.t:139 #: t/061_Scanner_Dialog.t:174 t/062_Scanner_Dialog.t:50 #: t/062_Scanner_Dialog.t:75 msgid "current-scan-options" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:567 msgid "logger" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:650 t/05_Dialog.t:24 msgid "transient-for" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:716 msgid "device_list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:749 t/061_Scanner_Dialog.t:32 msgid "device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:751 msgid "Opening device" msgstr "デバイスを開いています" #: lib/Gscan2pdf/Scanner/Dialog.pm:760 msgid "Retrieving options" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:41 msgid "Layout" msgstr "レイアウト" #: lib/Gscan2pdf/Unpaper.pm:44 msgid "Single" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:46 msgid "One page per sheet, oriented upwards without rotation." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:49 msgid "Double" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:51 msgid "" "Two pages per sheet, landscape orientation (one page on the left half, one " "page on the right half)." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:59 msgid "# Output pages" msgstr "出力ページ数" #: lib/Gscan2pdf/Unpaper.pm:60 msgid "Number of pages to output." msgstr "出力するページ数です。" #: lib/Gscan2pdf/Unpaper.pm:68 msgid "No deskew" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:69 msgid "Disable deskewing." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:74 msgid "No mask scan" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:75 msgid "Disable mask detection." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:80 msgid "No black filter" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:81 msgid "Disable black area scan." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:86 msgid "No gray filter" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:87 msgid "Disable gray area scan." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:92 msgid "No noise filter" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:93 msgid "Disable noise filter." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:98 msgid "No blur filter" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:99 msgid "Disable blur filter." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:104 msgid "No border scan" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:105 msgid "Disable border scanning." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:110 msgid "No border align" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:112 msgid "Disable aligning of the area detected by border scanning." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:117 msgid "Deskew to edge" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:119 msgid "" "Edges from which to scan for rotation. Each edge of a mask can be used to " "detect the mask's rotation. If multiple edges are specified, the average " "value will be used, unless the statistical deviation exceeds --deskew-scan-" "deviation." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:125 msgid "Use 'left' for scanning from the left edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:130 msgid "Use 'top' for scanning from the top edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:134 lib/Gscan2pdf/Unpaper.pm:162 msgid "Right" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:135 msgid "Use 'right' for scanning from the right edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:139 lib/Gscan2pdf/Unpaper.pm:167 msgid "Bottom" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:140 msgid "Use 'bottom' for scanning from the bottom." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:147 msgid "Align to edge" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:148 msgid "Edge to which to align the page." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:153 msgid "Use 'left' to align to the left edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:158 msgid "Use 'top' to align to the top edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:163 msgid "Use 'right' to align to the right edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:168 msgid "Use 'bottom' to align to the bottom." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:174 msgid "Border margin" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:178 msgid "Vertical margin" msgstr "垂直マージン" #: lib/Gscan2pdf/Unpaper.pm:180 msgid "" "Vertical distance to keep from the sheet edge when aligning a border area." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:189 msgid "Horizontal margin" msgstr "水平マージン" #: lib/Gscan2pdf/Unpaper.pm:191 msgid "" "Horizontal distance to keep from the sheet edge when aligning a border area." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:202 msgid "White threshold" msgstr "白のしきい値" #: lib/Gscan2pdf/Unpaper.pm:204 msgid "Brightness ratio above which a pixel is considered white." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:212 msgid "Black threshold" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:214 msgid "" "Brightness ratio below which a pixel is considered black (non-gray). This is " "used by the gray-filter. This value is also used when converting a grayscale " "image to black-and-white mode." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:250 msgid "Deskew" msgstr "Deskew" #: lib/Gscan2pdf/Unpaper.pm:280 msgid "Border" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:337 msgid "Filters" msgstr "フィルター" #: t/05_Dialog.t:23 msgid "title" msgstr "" #: t/05_Dialog.t:26 t/05_Dialog.t:31 t/05_Dialog.t:32 t/05_Dialog.t:38 #: t/05_Dialog.t:39 msgid "border-width" msgstr "" #: t/061_Scanner_Dialog.t:34 msgid "dir" msgstr "" #: t/061_Scanner_Dialog.t:36 msgid "max-pages" msgstr "" #: t/061_Scanner_Dialog.t:39 msgid "side-to-scan" msgstr "" #: t/061_Scanner_Dialog.t:40 t/061_Scanner_Dialog.t:185 msgid "available-scan-options" msgstr "" #: t/061_Scanner_Dialog.t:171 t/062_Scanner_Dialog.t:73 msgid "profile" msgstr "" gscan2pdf-1.2.3/po/gscan2pdf-sl.po0000644000175000017500000012705712243440507015250 0ustar jeffjeff# Slovenian translation for gscan2pdf # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the gscan2pdf package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: gscan2pdf\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-10-25 08:12+0200\n" "PO-Revision-Date: 2013-02-16 06:43+0000\n" "Last-Translator: Andrej Znidarsic \n" "Language-Team: Slovenian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-19 09:22+0000\n" "X-Generator: Launchpad (build 16831)\n" "X-Poedit-Country: SLOVENIA\n" "X-Poedit-Language: Slovenian\n" "X-Poedit-SourceCharset: utf-8\n" #: bin/gscan2pdf:157 msgid "Error displaying help" msgstr "" #: bin/gscan2pdf:201 msgid "" "Error: unable to load settings.\n" "Backing up settings\n" "Reverting to defaults" msgstr "" #: bin/gscan2pdf:244 msgid "A4" msgstr "A4" #: bin/gscan2pdf:250 msgid "US Letter" msgstr "US Letter" #: bin/gscan2pdf:256 msgid "US Legal" msgstr "US Legal" #: bin/gscan2pdf:323 bin/gscan2pdf:344 #, perl-format msgid "Cannot read file: %s" msgstr "" #: bin/gscan2pdf:451 msgid "_File" msgstr "_Datoteka" #: bin/gscan2pdf:454 msgid "_New" msgstr "_Nov" #: bin/gscan2pdf:455 msgid "Clears all pages" msgstr "Počisti vse strani" #: bin/gscan2pdf:459 msgid "_Open" msgstr "_Odpri" #: bin/gscan2pdf:460 msgid "Open image file(s)" msgstr "" #: bin/gscan2pdf:465 msgid "S_can" msgstr "S_keniraj" #: bin/gscan2pdf:467 msgid "Scan document" msgstr "Skeniraj dokument" #: bin/gscan2pdf:471 bin/gscan2pdf:472 bin/gscan2pdf:2582 msgid "Save" msgstr "Shrani" #: bin/gscan2pdf:476 msgid "_Email as PDF" msgstr "_Pošlji PDF po e-pošti" #: bin/gscan2pdf:477 msgid "Attach as PDF to a new email" msgstr "Pripni kot PDF novemu sporočilu" #: bin/gscan2pdf:480 msgid "_Print" msgstr "" #: bin/gscan2pdf:481 msgid "Print" msgstr "" #: bin/gscan2pdf:485 msgid "_Compress temporary files" msgstr "_Stisni začasne datoteke" #: bin/gscan2pdf:486 msgid "Compress temporary files" msgstr "Stisne začasne datoteke" #: bin/gscan2pdf:490 msgid "_Quit" msgstr "_Izhod" #: bin/gscan2pdf:491 msgid "Quit" msgstr "Končaj" #: bin/gscan2pdf:495 msgid "_Edit" msgstr "_Uredi" #: bin/gscan2pdf:497 msgid "_Undo" msgstr "_Razveljavi" #: bin/gscan2pdf:497 msgid "Undo" msgstr "Razveljavi" #: bin/gscan2pdf:501 msgid "_Redo" msgstr "_Ponovi" #: bin/gscan2pdf:502 msgid "Redo" msgstr "Ponovi" #: bin/gscan2pdf:506 msgid "Cu_t" msgstr "I_zreži" #: bin/gscan2pdf:507 msgid "Cut selection" msgstr "Izreži izbrano" #: bin/gscan2pdf:511 msgid "_Copy" msgstr "_Kopiraj" #: bin/gscan2pdf:512 msgid "Copy selection" msgstr "Kopiraj izbor" #: bin/gscan2pdf:516 msgid "_Paste" msgstr "_Prilepi" #: bin/gscan2pdf:517 msgid "Paste selection" msgstr "Prilepi izbor" #: bin/gscan2pdf:521 msgid "_Delete" msgstr "_Izbriši" #: bin/gscan2pdf:522 msgid "Delete selected pages" msgstr "Izbriši izbrane strani" #: bin/gscan2pdf:526 msgid "_Renumber" msgstr "_Preštevilči" #: bin/gscan2pdf:527 msgid "Renumber pages" msgstr "Preštevilči strani" #: bin/gscan2pdf:529 bin/gscan2pdf:679 msgid "_Select" msgstr "_Izberi" #: bin/gscan2pdf:532 msgid "_All" msgstr "_Vse" #: bin/gscan2pdf:533 msgid "Select all pages" msgstr "Izberi vse strani" #: bin/gscan2pdf:536 msgid "_Odd" msgstr "_Liho" #: bin/gscan2pdf:537 msgid "Select all odd-numbered pages" msgstr "Izberi vse liho oštevilčene strani" #: bin/gscan2pdf:541 msgid "_Even" msgstr "_Sodo" #: bin/gscan2pdf:542 msgid "Select all evenly-numbered pages" msgstr "Izberi vse sodo oštevilčene strani" #: bin/gscan2pdf:547 msgid "_Blank" msgstr "_Prazna" #: bin/gscan2pdf:548 msgid "Select pages with low standard deviation" msgstr "Izberi vse strani z nizko standardno deviacijo" #: bin/gscan2pdf:552 msgid "_Dark" msgstr "_Temno" #: bin/gscan2pdf:553 msgid "Select dark pages" msgstr "Izberi temne strani" #: bin/gscan2pdf:558 msgid "_Modified" msgstr "" #: bin/gscan2pdf:560 msgid "Select modified pages since last OCR" msgstr "" #: bin/gscan2pdf:565 msgid "_No OCR" msgstr "" #: bin/gscan2pdf:566 msgid "Select pages with no OCR output" msgstr "" #: bin/gscan2pdf:570 msgid "_Clear OCR" msgstr "" #: bin/gscan2pdf:571 msgid "Clear OCR output from selected pages" msgstr "" #: bin/gscan2pdf:575 msgid "Propert_ies" msgstr "_Lastnosti" #: bin/gscan2pdf:576 msgid "Edit image properties" msgstr "Uredi lastnosti slike" #: bin/gscan2pdf:580 msgid "Prefere_nces" msgstr "_Nastavitve" #: bin/gscan2pdf:581 msgid "Edit preferences" msgstr "Uredi nastavitve" #: bin/gscan2pdf:585 msgid "_View" msgstr "_Pogled" #: bin/gscan2pdf:588 msgid "Zoom _100%" msgstr "Povečava _100%" #: bin/gscan2pdf:589 msgid "Zoom to 100%" msgstr "Povečaj na 100 %" #: bin/gscan2pdf:593 msgid "Zoom to _fit" msgstr "Povečaj na velikost stran" #: bin/gscan2pdf:594 msgid "Zoom to fit" msgstr "Prilagodi velikosti, da ustreza" #: bin/gscan2pdf:598 msgid "Zoom _in" msgstr "P_ovečaj" #: bin/gscan2pdf:599 msgid "Zoom in" msgstr "Povečaj" #: bin/gscan2pdf:603 msgid "Zoom _out" msgstr "Po_manjšaj" #: bin/gscan2pdf:604 msgid "Zoom out" msgstr "Pomanjšaj" #: bin/gscan2pdf:609 bin/gscan2pdf:611 msgid "Rotate 90 clockwise" msgstr "Obrni za 90˚ v smeri urinega kazalca" #: bin/gscan2pdf:617 bin/gscan2pdf:619 msgid "Rotate 180" msgstr "Obrni za 180˚" #: bin/gscan2pdf:625 bin/gscan2pdf:627 msgid "Rotate 90 anticlockwise" msgstr "Obrni za 90˚ v nasprotni smeri urinega kazalca" #: bin/gscan2pdf:632 msgid "_Tools" msgstr "_Orodja" #: bin/gscan2pdf:634 msgid "_Threshold" msgstr "Pra_g" #: bin/gscan2pdf:635 msgid "Change each pixel above this threshold to black" msgstr "Spremeni vsak piksel nad vrednost tega praga v črno" #: bin/gscan2pdf:639 msgid "_Negate" msgstr "" #: bin/gscan2pdf:640 msgid "Converts black to white and vice versa" msgstr "Pretvori črno v belo in obratno" #: bin/gscan2pdf:644 msgid "_Unsharp Mask" msgstr "_Maska ostrine" #: bin/gscan2pdf:645 msgid "Apply an unsharp mask" msgstr "Določam masko ostrine" #: bin/gscan2pdf:648 msgid "_Crop" msgstr "_Obreži" #: bin/gscan2pdf:649 msgid "Crop pages" msgstr "Obreži strani" #: bin/gscan2pdf:653 msgid "_Clean up" msgstr "_Počisti" #: bin/gscan2pdf:654 bin/gscan2pdf:4085 msgid "Clean up scanned images with unpaper" msgstr "Počisti skeniranje strani s programom unpaper" #: bin/gscan2pdf:657 msgid "_OCR" msgstr "_OCR" #: bin/gscan2pdf:658 msgid "Optical Character Recognition" msgstr "optično prepoznavanje znakov" #: bin/gscan2pdf:660 msgid "U_ser-defined" msgstr "" #: bin/gscan2pdf:663 bin/gscan2pdf:665 msgid "_Help" msgstr "_Pomoč" #: bin/gscan2pdf:666 msgid "Help" msgstr "Pomoč" #: bin/gscan2pdf:668 msgid "_About" msgstr "_O Programu" #: bin/gscan2pdf:674 msgid "_Drag" msgstr "_Povleci" #: bin/gscan2pdf:675 msgid "Use the hand tool" msgstr "" #: bin/gscan2pdf:680 msgid "Use the rectangular selection tool" msgstr "" #: bin/gscan2pdf:684 msgid "_Paint" msgstr "" #: bin/gscan2pdf:685 msgid "Use the painter tool" msgstr "" #: bin/gscan2pdf:965 lib/Gscan2pdf/Document.pm:2594 #: lib/Gscan2pdf/Document.pm:2595 msgid "Error copying page" msgstr "Napaka pri kopiranju strani" #: bin/gscan2pdf:1082 msgid "Image" msgstr "" #: bin/gscan2pdf:1117 msgid "OCR Output" msgstr "" #: bin/gscan2pdf:1174 msgid "Mode" msgstr "Način" #: bin/gscan2pdf:1176 msgid "Lineart" msgstr "S črtami" #: bin/gscan2pdf:1177 msgid "Grayscale" msgstr "Sivine" #: bin/gscan2pdf:1178 msgid "Gray" msgstr "Sivinsko" #: bin/gscan2pdf:1179 msgid "Color" msgstr "Barvno" #: bin/gscan2pdf:1180 msgid "Black & White" msgstr "Črno belo" #: bin/gscan2pdf:1181 msgid "True Gray" msgstr "Prave sivine" #: bin/gscan2pdf:1182 msgid "Binary" msgstr "Dvojiško" #: bin/gscan2pdf:1183 bin/gscan2pdf:1242 bin/gscan2pdf:1243 msgid "Auto" msgstr "Samodejno" #: bin/gscan2pdf:1184 msgid "Halftone" msgstr "Polton" #: bin/gscan2pdf:1185 msgid "24bit Color" msgstr "24 bitne barve" #: bin/gscan2pdf:1189 bin/gscan2pdf:2547 bin/gscan2pdf:2644 msgid "Compression" msgstr "Stiskanje" #: bin/gscan2pdf:1191 bin/gscan2pdf:2539 bin/gscan2pdf:2636 msgid "None" msgstr "Noben" #: bin/gscan2pdf:1192 bin/gscan2pdf:2537 bin/gscan2pdf:2601 bin/gscan2pdf:2622 msgid "JPEG" msgstr "JPEG" #: bin/gscan2pdf:1195 bin/gscan2pdf:8127 msgid "Resolution" msgstr "Ločljivost" #: bin/gscan2pdf:1196 msgid "Brightness" msgstr "Svetlost" #: bin/gscan2pdf:1197 msgid "Gain" msgstr "" #: bin/gscan2pdf:1198 msgid "Contrast" msgstr "Kontrast" #: bin/gscan2pdf:1199 bin/gscan2pdf:6406 bin/gscan2pdf:6417 bin/gscan2pdf:6620 msgid "Threshold" msgstr "Prag" #: bin/gscan2pdf:1201 msgid "Speed" msgstr "Hitrost" #: bin/gscan2pdf:1203 bin/gscan2pdf:1210 bin/gscan2pdf:1217 bin/gscan2pdf:1224 #: bin/gscan2pdf:1231 msgid "Yes" msgstr "Da" #: bin/gscan2pdf:1204 bin/gscan2pdf:1211 bin/gscan2pdf:1218 bin/gscan2pdf:1225 #: bin/gscan2pdf:1232 msgid "No" msgstr "Ne" #: bin/gscan2pdf:1208 msgid "Batch scan" msgstr "Paketno skeniranje" #: bin/gscan2pdf:1215 bin/gscan2pdf:1222 msgid "Wait for button" msgstr "Počakaj na gumb" #: bin/gscan2pdf:1229 msgid "Cache calibration" msgstr "Predpomni kalibracijo" #: bin/gscan2pdf:1236 msgid "Source" msgstr "Vir" #: bin/gscan2pdf:1238 msgid "Normal" msgstr "Običajno" #: bin/gscan2pdf:1239 msgid "ADF" msgstr "ADF" #: bin/gscan2pdf:1240 msgid "Automatic Document Feeder" msgstr "Samodejni podajalec dokumentov" #: bin/gscan2pdf:1241 msgid "XPA" msgstr "XPA" #: bin/gscan2pdf:1244 msgid "Flatbed" msgstr "Ploski" #: bin/gscan2pdf:1245 msgid "Transparency Adapter" msgstr "Prilagojevalnik za prosojnost" #: bin/gscan2pdf:1246 msgid "Transparency Unit" msgstr "Enota prosojnosti" #: bin/gscan2pdf:1249 bin/gscan2pdf:1251 msgid "Page Width" msgstr "Širina strani" #: bin/gscan2pdf:1250 bin/gscan2pdf:1252 msgid "Page Height" msgstr "Višina strani" #: bin/gscan2pdf:1253 msgid "Top Overscan" msgstr "" #: bin/gscan2pdf:1254 msgid "Bottom Overscan" msgstr "" #: bin/gscan2pdf:1256 bin/gscan2pdf:1263 msgid "ADF Mode" msgstr "Način z avtomatskim podajalcem strani" #: bin/gscan2pdf:1258 bin/gscan2pdf:1265 msgid "Simplex" msgstr "Enostransko" #: bin/gscan2pdf:1259 bin/gscan2pdf:1266 msgid "Duplex" msgstr "Dvostransko" #: bin/gscan2pdf:1301 bin/gscan2pdf:1306 msgid "Pick crashed session to restore" msgstr "" #: bin/gscan2pdf:1308 bin/gscan2pdf:2609 msgid "Session" msgstr "Seja" #: bin/gscan2pdf:1338 #, perl-format msgid "" "Warning: unable to use %s for temporary storage. Defaulting to %s instead." msgstr "" #: bin/gscan2pdf:1441 msgid "GOCR" msgstr "GOCR" #: bin/gscan2pdf:1441 msgid "Process image with GOCR." msgstr "Procesiraj sliko z GOCR" #: bin/gscan2pdf:1445 msgid "Tesseract" msgstr "" #: bin/gscan2pdf:1446 msgid "Process image with Tesseract." msgstr "Obdelovanje slike s programom Tesseract" #: bin/gscan2pdf:1450 msgid "Ocropus" msgstr "" #: bin/gscan2pdf:1450 msgid "Process image with Ocropus." msgstr "" #: bin/gscan2pdf:1454 msgid "Cuneiform" msgstr "" #: bin/gscan2pdf:1455 msgid "Process image with Cuneiform." msgstr "" #: bin/gscan2pdf:1461 msgid "Save image and Save as PDF both require imagemagick\n" msgstr "Shranjevanje slike in PDF formata zahteva nameščen imagemagick\n" #: bin/gscan2pdf:1465 msgid "Save image requires libtiff\n" msgstr "Shranjevanje slike zahteva nameščen libtiff\n" #: bin/gscan2pdf:1469 msgid "Save as DjVu requires djvulibre-bin\n" msgstr "Shranjevanje kot DjVu zahteva nameščen djvulibre-bin\n" #: bin/gscan2pdf:1473 msgid "Email as PDF requires xdg-email\n" msgstr "Pošiljanje PDF po elektronski pošti zahteva nameščen xdg-email\n" #: bin/gscan2pdf:1518 msgid "The rotating options and unpaper support require perlmagick\n" msgstr "" #: bin/gscan2pdf:1524 msgid "unpaper missing\n" msgstr "manjkajoči program unpaper\n" #: bin/gscan2pdf:1534 msgid "OCR requires gocr, tesseract, ocropus, or cuneiform\n" msgstr "" #: bin/gscan2pdf:1539 msgid "Warning: missing packages" msgstr "Pozor: manjkajoči paketi" #: bin/gscan2pdf:1544 msgid "Don't show this message again" msgstr "Tega sporočila ne prikaži več" #: bin/gscan2pdf:1753 msgid "" "Some pages have not been saved.\n" "Do you really want to clear all pages?" msgstr "" #: bin/gscan2pdf:1828 bin/gscan2pdf:1858 #, perl-format msgid "Process %i of %i (%s)" msgstr "" #: bin/gscan2pdf:1867 #, perl-format msgid "Process %i of %i" msgstr "" #: bin/gscan2pdf:1895 msgid "Open image" msgstr "" #: bin/gscan2pdf:1903 bin/gscan2pdf:2797 bin/gscan2pdf:3113 msgid "Image files" msgstr "" #: bin/gscan2pdf:1940 msgid "Pages to extract" msgstr "Strani za izvleko" #: bin/gscan2pdf:1943 bin/gscan2pdf:2117 bin/gscan2pdf:2586 bin/gscan2pdf:3353 #: bin/gscan2pdf:3494 bin/gscan2pdf:4104 bin/gscan2pdf:4514 bin/gscan2pdf:5825 #: bin/gscan2pdf:6409 bin/gscan2pdf:6495 bin/gscan2pdf:6565 bin/gscan2pdf:6737 #: bin/gscan2pdf:7011 bin/gscan2pdf:7274 bin/gscan2pdf:7757 bin/gscan2pdf:8123 #: lib/Gscan2pdf/Dialog.pm:56 lib/Gscan2pdf/Dialog/Renumber.pm:80 #: lib/Gscan2pdf/Scanner/Dialog.pm:201 t/05_Dialog.t:28 msgid "vbox" msgstr "" #: bin/gscan2pdf:1946 msgid "First page to extract" msgstr "Prva stran za izvleko" #: bin/gscan2pdf:1953 msgid "Last page to extract" msgstr "Zadnja stran za izvleko" #: bin/gscan2pdf:2042 lib/Gscan2pdf/Dialog/Renumber.pm:83 msgid "Page Range" msgstr "Niz strani" #: bin/gscan2pdf:2092 msgid "Metadata" msgstr "Metapodatki" #: bin/gscan2pdf:2101 msgid "Date" msgstr "Datum" #: bin/gscan2pdf:2114 msgid "Select Date" msgstr "Izberi datum" #: bin/gscan2pdf:2136 msgid "Today" msgstr "Danes" #: bin/gscan2pdf:2150 msgid "Year-Month-Day" msgstr "Leto-mesec-dan" #: bin/gscan2pdf:2156 msgid "Document author" msgstr "Avtor dokumenta" #: bin/gscan2pdf:2165 msgid "Title" msgstr "Naslov" #: bin/gscan2pdf:2174 msgid "Subject" msgstr "Zadeva" #: bin/gscan2pdf:2183 msgid "Keywords" msgstr "Ključne besede" #: bin/gscan2pdf:2245 msgid "Editing text" msgstr "" #: bin/gscan2pdf:2252 bin/gscan2pdf:2258 bin/gscan2pdf:2332 msgid "text" msgstr "" #: bin/gscan2pdf:2352 msgid "PDF filename" msgstr "Ime PDF datoteke" #: bin/gscan2pdf:2381 msgid "PDF files" msgstr "" #: bin/gscan2pdf:2405 bin/gscan2pdf:2823 bin/gscan2pdf:2880 bin/gscan2pdf:2976 #: bin/gscan2pdf:3035 bin/gscan2pdf:3087 bin/gscan2pdf:3275 #, perl-format msgid "File %s is read-only" msgstr "Datoteka %s je samo za branje" #: bin/gscan2pdf:2482 msgid "JPEG Quality" msgstr "Kakovost JPEG" #: bin/gscan2pdf:2496 msgid "Downsample to" msgstr "" #: bin/gscan2pdf:2501 msgid "PPI" msgstr "" #: bin/gscan2pdf:2520 msgid "Automatic" msgstr "Samodejno" #: bin/gscan2pdf:2521 msgid "Let gscan2pdf which type of compression to use." msgstr "Naj se gscan2pdf sam odloči o načinu stiskanja." #: bin/gscan2pdf:2524 bin/gscan2pdf:2616 msgid "LZW" msgstr "LZW" #: bin/gscan2pdf:2525 bin/gscan2pdf:2617 msgid "Compress output with Lempel-Ziv & Welch encoding." msgstr "Stisni izhodne podatke z Lempel-Ziv & Welch kodiranjem." #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Zip" msgstr "Zip" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Compress output with deflate encoding." msgstr "Stisni izhodne podatke s spuščenim kodiranjem." #: bin/gscan2pdf:2529 bin/gscan2pdf:2624 msgid "Packbits" msgstr "Paketni biti" #: bin/gscan2pdf:2530 bin/gscan2pdf:2625 msgid "Compress output with Packbits encoding." msgstr "Stisni izhodne podatke s kodiranjem s paketnimi biti." #: bin/gscan2pdf:2536 bin/gscan2pdf:2604 msgid "PNG" msgstr "PNG" #: bin/gscan2pdf:2536 msgid "Compress output with PNG encoding." msgstr "Stisni izhodne podatke s PNG kodiranjem." #: bin/gscan2pdf:2537 bin/gscan2pdf:2622 msgid "Compress output with JPEG encoding." msgstr "Stisni izhodne podatke z JPEG kodiranjem." #: bin/gscan2pdf:2540 bin/gscan2pdf:2637 msgid "Use no compression algorithm on output." msgstr "Pri izhodnih podatkih ne uporabi algoritma za stiskanje." #: bin/gscan2pdf:2594 msgid "Image type" msgstr "Vrsta slike" #: bin/gscan2pdf:2598 msgid "PDF" msgstr "PDF" #: bin/gscan2pdf:2598 msgid "Portable Document Format" msgstr "PDF (Portable Document Format)" #: bin/gscan2pdf:2599 msgid "GIF" msgstr "GIF" #: bin/gscan2pdf:2599 msgid "CompuServe graphics interchange format" msgstr "CompuServe grafična oblika" #: bin/gscan2pdf:2602 msgid "Joint Photographic Experts Group JFIF format" msgstr "Joint Photographic Experts Group JFIF oblika" #: bin/gscan2pdf:2604 msgid "Portable Network Graphics" msgstr "Portable Network Graphics oblika" #: bin/gscan2pdf:2605 msgid "PNM" msgstr "PNM" #: bin/gscan2pdf:2605 msgid "Portable anymap" msgstr "" #: bin/gscan2pdf:2606 msgid "PS" msgstr "PS" #: bin/gscan2pdf:2606 msgid "Postscript" msgstr "Postscript" #: bin/gscan2pdf:2607 msgid "TIFF" msgstr "TIFF" #: bin/gscan2pdf:2607 msgid "Tagged Image File Format" msgstr "Tagged Image File oblika" #: bin/gscan2pdf:2608 msgid "Text" msgstr "Besedilo" #: bin/gscan2pdf:2608 msgid "Plain text" msgstr "Navadno besedilo" #: bin/gscan2pdf:2609 msgid "gscan2pdf session file" msgstr "datoteka seje gscan2pdf" #: bin/gscan2pdf:2611 msgid "DjVu" msgstr "DjVu" #: bin/gscan2pdf:2611 msgid "Deja Vu" msgstr "Deja Vu" #: bin/gscan2pdf:2628 msgid "G3" msgstr "G3" #: bin/gscan2pdf:2629 msgid "Compress output with CCITT Group 3 encoding." msgstr "Stisni izhodne podatke s CCITT skupine 3 kodiranjem." #: bin/gscan2pdf:2632 msgid "G4" msgstr "G4" #: bin/gscan2pdf:2633 msgid "Compress output with CCITT Group 4 encoding." msgstr "Stisni izhodne podatke s CCITT skupine 4 kodiranjem." #: bin/gscan2pdf:2649 msgid "tiff" msgstr "tiff" #: bin/gscan2pdf:2681 msgid "Font for non-ASCII text" msgstr "" #: bin/gscan2pdf:2790 msgid "TIFF filename" msgstr "Ime datoteke TIFF" #: bin/gscan2pdf:2848 msgid "Text filename" msgstr "" #: bin/gscan2pdf:2856 msgid "Text files" msgstr "" #: bin/gscan2pdf:2944 msgid "PS filename" msgstr "Ime datoteke PS" #: bin/gscan2pdf:2951 msgid "Postscript files" msgstr "" #: bin/gscan2pdf:3003 msgid "gscan2pdf session filename" msgstr "ime datoteke seje gscan2pdf" #: bin/gscan2pdf:3010 msgid "gscan2pdf session files" msgstr "" #: bin/gscan2pdf:3093 #, perl-format msgid "" "File %s exists.\n" "Really overwrite?" msgstr "" "Datoteka %s že obstaja.\n" "Jo želite prepisati?" #: bin/gscan2pdf:3106 msgid "Image filename" msgstr "Ime datoteke slike" #: bin/gscan2pdf:3245 msgid "DjVu filename" msgstr "Ime DjVu datoteke" #: bin/gscan2pdf:3252 msgid "DjVu files" msgstr "" #: bin/gscan2pdf:3349 msgid "Email as PDF" msgstr "Pošlji po e-pošti kot PDF" #: bin/gscan2pdf:3454 msgid "Error creating email" msgstr "" #: bin/gscan2pdf:3490 bin/gscan2pdf:4313 msgid "Scan Document" msgstr "Skaniraj dokument" #: bin/gscan2pdf:3507 lib/Gscan2pdf/Scanner/Dialog.pm:248 msgid "Page Options" msgstr "Možnosti strani" #: bin/gscan2pdf:3510 lib/Gscan2pdf/Scanner/Dialog.pm:251 msgid "# Pages" msgstr "# strani" #: bin/gscan2pdf:3519 lib/Gscan2pdf/PageRange.pm:34 #: lib/Gscan2pdf/Scanner/Dialog.pm:261 msgid "All" msgstr "Vse" #: bin/gscan2pdf:3520 lib/Gscan2pdf/Scanner/Dialog.pm:262 msgid "Scan all pages" msgstr "Skaniraj vse strani" #: bin/gscan2pdf:3532 bin/gscan2pdf:3537 lib/Gscan2pdf/Scanner/Dialog.pm:274 #: lib/Gscan2pdf/Scanner/Dialog.pm:279 msgid "Set number of pages to scan" msgstr "Določi število strani za skeniranje" #: bin/gscan2pdf:3550 lib/Gscan2pdf/Scanner/Dialog.pm:308 msgid "Extended page numbering" msgstr "Razširjeno številčenje strani" #: bin/gscan2pdf:3554 lib/Gscan2pdf/Scanner/Dialog.pm:312 msgid "Page number" msgstr "Številka strani" #: bin/gscan2pdf:3563 lib/Gscan2pdf/Dialog/Renumber.pm:111 #: lib/Gscan2pdf/Scanner/Dialog.pm:321 msgid "Start" msgstr "Začetek" #: bin/gscan2pdf:3572 lib/Gscan2pdf/Dialog/Renumber.pm:132 #: lib/Gscan2pdf/Scanner/Dialog.pm:340 msgid "Increment" msgstr "Prirastek" #: bin/gscan2pdf:3604 lib/Gscan2pdf/Scanner/Dialog.pm:372 msgid "Source document" msgstr "Izvirni dokument" #: bin/gscan2pdf:3611 lib/Gscan2pdf/Scanner/Dialog.pm:379 msgid "Single sided" msgstr "Enostransko" #: bin/gscan2pdf:3612 lib/Gscan2pdf/Scanner/Dialog.pm:380 msgid "Source document is single-sided" msgstr "Izvirni dokument je enostranski" #: bin/gscan2pdf:3622 lib/Gscan2pdf/Scanner/Dialog.pm:390 msgid "Double sided" msgstr "Obojestranski" #: bin/gscan2pdf:3623 lib/Gscan2pdf/Scanner/Dialog.pm:391 msgid "Source document is double-sided" msgstr "Izvirni dokument je obojestranski" #: bin/gscan2pdf:3629 lib/Gscan2pdf/Scanner/Dialog.pm:397 msgid "Side to scan" msgstr "Stran za skeniranje" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Facing" msgstr "Sprednja" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Reverse" msgstr "Obrnjena" #: bin/gscan2pdf:3655 lib/Gscan2pdf/Scanner/Dialog.pm:418 msgid "Sets which side of a double-sided document is scanned" msgstr "Določi katero stran obojestranskega dokumenta skeniramo" #: bin/gscan2pdf:3719 msgid "Scan Options" msgstr "Možnosti skaniranja" #: bin/gscan2pdf:3722 msgid "Device-dependent options" msgstr "Možnosti, ki so odvisne od naprave" #: bin/gscan2pdf:3729 lib/Gscan2pdf/Scanner/Dialog.pm:458 msgid "Scan profiles" msgstr "" #: bin/gscan2pdf:3778 bin/gscan2pdf:3784 lib/Gscan2pdf/Scanner/Dialog.pm:479 #: lib/Gscan2pdf/Scanner/Dialog.pm:485 msgid "Name of scan profile" msgstr "" #: bin/gscan2pdf:3828 lib/Gscan2pdf/Scanner/Dialog.pm:518 msgid "Scan" msgstr "Skeniraj" #: bin/gscan2pdf:3866 msgid "Must scan facing pages first" msgstr "Najprej moramo skenirati sprednje strani" #: bin/gscan2pdf:3977 msgid "Post-processing" msgstr "" #: bin/gscan2pdf:3986 bin/gscan2pdf:4008 msgid "Rotate" msgstr "Zasukaj" #: bin/gscan2pdf:3987 bin/gscan2pdf:4009 msgid "Rotate image after scanning" msgstr "Zasukaj sliko po skeniranju" #: bin/gscan2pdf:3990 msgid "Both sides" msgstr "Obe strani" #: bin/gscan2pdf:3990 msgid "Both sides." msgstr "Obe strani." #: bin/gscan2pdf:3991 msgid "Facing side" msgstr "Sprednjo stran" #: bin/gscan2pdf:3991 msgid "Facing side." msgstr "Sprednjo stran." #: bin/gscan2pdf:3992 msgid "Reverse side" msgstr "Zadnjo stran" #: bin/gscan2pdf:3992 msgid "Reverse side." msgstr "Zadnjo stran." #: bin/gscan2pdf:3995 bin/gscan2pdf:4013 msgid "Select side to rotate" msgstr "Izberi stran za zasuk" #: bin/gscan2pdf:3998 msgid "90" msgstr "90" #: bin/gscan2pdf:3998 msgid "Rotate image 90 degrees clockwise." msgstr "Zasukaj sliko za 90 stopinj v smeri urinega kazalca" #: bin/gscan2pdf:3999 msgid "180" msgstr "180" #: bin/gscan2pdf:3999 msgid "Rotate image 180 degrees clockwise." msgstr "Zasukaj sliko za 180 stopinj v smeri urinega kazalca" #: bin/gscan2pdf:4000 msgid "270" msgstr "270" #: bin/gscan2pdf:4000 msgid "Rotate image 90 degrees anticlockwise." msgstr "Zasukaj sliko za 90 stopinj v nasprotni smeri urinega kazalca" #: bin/gscan2pdf:4003 bin/gscan2pdf:4016 msgid "Select direction of rotation" msgstr "Izberi smer zasuka" #: bin/gscan2pdf:4083 msgid "Clean up images" msgstr "Počisti slike" #: bin/gscan2pdf:4094 msgid "Options" msgstr "Možnosti" #: bin/gscan2pdf:4095 msgid "Set unpaper options" msgstr "Nastavi možnosti programa unpaper" #: bin/gscan2pdf:4101 msgid "unpaper options" msgstr "možnosti programa unpaper" #: bin/gscan2pdf:4136 bin/gscan2pdf:4137 msgid "OCR scanned pages" msgstr "Skerirane strani pošlji skozi OCR" #: bin/gscan2pdf:4151 msgid "Select OCR engine" msgstr "Izberi OCR program" #: bin/gscan2pdf:4210 lib/Gscan2pdf/Scanner/Dialog.pm:634 msgid "Fetching list of devices" msgstr "Iščem naprave" #: bin/gscan2pdf:4225 lib/Gscan2pdf/Scanner/Dialog.pm:654 msgid "No devices found" msgstr "" #: bin/gscan2pdf:4367 bin/gscan2pdf:4732 bin/gscan2pdf:4777 bin/gscan2pdf:5214 #: lib/Gscan2pdf/Scanner/Dialog.pm:343 lib/Gscan2pdf/Scanner/Dialog.pm:348 #: t/061_Scanner_Dialog.t:38 t/061_Scanner_Dialog.t:95 msgid "page-number-increment" msgstr "" #: bin/gscan2pdf:4374 bin/gscan2pdf:4729 bin/gscan2pdf:4730 bin/gscan2pdf:4776 #: bin/gscan2pdf:5213 lib/Gscan2pdf/Scanner/Dialog.pm:361 #: t/061_Scanner_Dialog.t:37 msgid "page-number-start" msgstr "" #: bin/gscan2pdf:4663 lib/Gscan2pdf/Scanner/Dialog.pm:210 msgid "Device" msgstr "Naprava" #: bin/gscan2pdf:4671 lib/Gscan2pdf/Scanner/Dialog.pm:213 msgid "Rescan for devices" msgstr "" #: bin/gscan2pdf:4694 lib/Gscan2pdf/Scanner/Dialog.pm:237 msgid "Sets the device to be used for the scan" msgstr "Določi napravo, ki jo bomo uporabljali za skeniranje" #: bin/gscan2pdf:4780 lib/Gscan2pdf/Scanner/Dialog.pm:300 #: t/061_Scanner_Dialog.t:35 msgid "num-pages" msgstr "" #: bin/gscan2pdf:4821 msgid "Scanning" msgstr "Skeniranje" #: bin/gscan2pdf:4974 msgid "Unable to load image" msgstr "Ne morem naložiti slike" #: bin/gscan2pdf:5004 msgid "print-pages" msgstr "" #: bin/gscan2pdf:5008 msgid "page-ranges" msgstr "" #: bin/gscan2pdf:5405 msgid "Patches gratefully received from:" msgstr "Popravki velikodušno sprejeti od:" #: bin/gscan2pdf:5407 msgid "To aid the scan-to-PDF process" msgstr "" #: bin/gscan2pdf:5408 msgid "Copyright 2006--2012 Jeffrey Ratcliffe" msgstr "" #: bin/gscan2pdf:5492 bin/gscan2pdf:6028 msgid "The options cache seems to be empty. Reload device-dependent options?" msgstr "" #: bin/gscan2pdf:5519 bin/gscan2pdf:6054 msgid "Updating options" msgstr "Možnosti posodabljanja" #: bin/gscan2pdf:5571 msgid "Paper size" msgstr "Velikost papirja" #: bin/gscan2pdf:5572 bin/gscan2pdf:5672 bin/gscan2pdf:5840 bin/gscan2pdf:6769 msgid "Width" msgstr "Širina" #: bin/gscan2pdf:5573 bin/gscan2pdf:5678 bin/gscan2pdf:5841 bin/gscan2pdf:6780 msgid "Height" msgstr "Višina" #: bin/gscan2pdf:5574 bin/gscan2pdf:5684 bin/gscan2pdf:5842 #: lib/Gscan2pdf/Unpaper.pm:124 lib/Gscan2pdf/Unpaper.pm:152 msgid "Left" msgstr "Levo" #: bin/gscan2pdf:5575 bin/gscan2pdf:5690 bin/gscan2pdf:5843 #: lib/Gscan2pdf/Unpaper.pm:129 lib/Gscan2pdf/Unpaper.pm:157 msgid "Top" msgstr "Vrh" #: bin/gscan2pdf:5589 bin/gscan2pdf:5703 bin/gscan2pdf:6232 msgid "Manual" msgstr "Ročno" #: bin/gscan2pdf:5590 bin/gscan2pdf:5700 msgid "Edit" msgstr "Uredi" #: bin/gscan2pdf:5591 msgid "Selects or edits the paper size" msgstr "Izbere ali uredi velikost papirja" #: bin/gscan2pdf:5673 msgid "Width of scan area" msgstr "Širina skeniranega območja" #: bin/gscan2pdf:5679 msgid "Height of scan area" msgstr "Višina skeniranega območja" #: bin/gscan2pdf:5685 msgid "Top-left x position of scan area" msgstr "Zgornja leva X pozicija skeniranega območja" #: bin/gscan2pdf:5691 msgid "Top-left y position of scan area" msgstr "Zgornja leva Y pozicija skeniranega območja" #: bin/gscan2pdf:5822 msgid "Edit paper size" msgstr "Uredi velikost papirja" #: bin/gscan2pdf:5839 msgid "Name" msgstr "Ime" #: bin/gscan2pdf:5893 msgid "Cannot delete all paper sizes" msgstr "Ne morem izbrisate vseh velikosti papirja" #: bin/gscan2pdf:5955 msgid "" "The following paper sizes are too big to be scanned by the selected device:" msgstr "" "Naslednje velikosti papirja so prevelike za skeniranje z izbrano napravo:" #: bin/gscan2pdf:6419 bin/gscan2pdf:6605 msgid "%" msgstr "%" #: bin/gscan2pdf:6492 msgid "Negate" msgstr "Negativ" #: bin/gscan2pdf:6562 msgid "Unsharp mask" msgstr "Maska ostrine" #: bin/gscan2pdf:6573 msgid "Radius" msgstr "Radij" #: bin/gscan2pdf:6575 bin/gscan2pdf:6592 bin/gscan2pdf:6747 bin/gscan2pdf:6759 #: bin/gscan2pdf:6771 bin/gscan2pdf:6782 msgid "pixels" msgstr "točk" #: bin/gscan2pdf:6582 msgid "" "The radius of the Gaussian, in pixels, not counting the center pixel (0 = " "automatic)." msgstr "" "Radij po Gaussu v točkah brez upoštevanja sredinske točke (0 = samodejno)" #: bin/gscan2pdf:6590 msgid "Sigma" msgstr "Sigma" #: bin/gscan2pdf:6597 msgid "The standard deviation of the Gaussian." msgstr "Standardni odklon po Gaussu" #: bin/gscan2pdf:6603 msgid "Amount" msgstr "Količina" #: bin/gscan2pdf:6612 msgid "" "The percentage of the difference between the original and the blur image " "that is added back into the original." msgstr "" "Odstotek razlike med izvirno in zamegljeno sliko, ki je dodana nazaj na " "izvirno sliko." #: bin/gscan2pdf:6627 msgid "" "The threshold, as a fraction of QuantumRange, needed to apply the difference " "amount." msgstr "" "Prag, kot delec kvantnega območja, potreben za določanje velikosti razlike." #: bin/gscan2pdf:6733 msgid "Crop" msgstr "Obreži" #: bin/gscan2pdf:6745 msgid "x" msgstr "" #: bin/gscan2pdf:6751 msgid "The x-position of the left hand edge of the crop." msgstr "" #: bin/gscan2pdf:6757 msgid "y" msgstr "" #: bin/gscan2pdf:6763 msgid "The y-position of the top edge of the crop." msgstr "" #: bin/gscan2pdf:6774 msgid "The width of the crop." msgstr "" #: bin/gscan2pdf:6785 msgid "The height of the crop." msgstr "" #: bin/gscan2pdf:6906 msgid "label" msgstr "" #: bin/gscan2pdf:7007 msgid "unpaper" msgstr "unpaper" #: bin/gscan2pdf:7216 bin/gscan2pdf:7244 msgid "Language to recognise" msgstr "Jezik za prepoznavanje" #: bin/gscan2pdf:7227 msgid "English" msgstr "Angleški" #: bin/gscan2pdf:7270 msgid "OCR" msgstr "OCR" #: bin/gscan2pdf:7279 msgid "OCR Engine" msgstr "OCR program" #: bin/gscan2pdf:7323 msgid "Start OCR" msgstr "Zaženii OCR" #: bin/gscan2pdf:7339 msgid "No page selected" msgstr "Ni izbranih strani" #: bin/gscan2pdf:7374 msgid "" "Some pages have not been saved.\n" "Do you really want to quit?" msgstr "" "Nekatere strani niso bile shranjene.\n" "Res želite zapreti program?" #: bin/gscan2pdf:7432 #, perl-format msgid "" "The help viewer requires module Gtk2::Ex::PodViewer\n" "Alternatively, try: %s %s\n" "\n" msgstr "" "Pregledovalnik pomoči zahteva modul Gtk2::Ex::PodViewer\n" "Kot alternativo poskusite: %s %s\n" "\n" #: bin/gscan2pdf:7698 msgid "This operation cannot be undone. Are you sure?" msgstr "Te operacije ni mogoče razveljaviti. Ste prepričani?" #: bin/gscan2pdf:7753 msgid "Preferences" msgstr "" #: bin/gscan2pdf:7762 msgid "Frontend" msgstr "" #: bin/gscan2pdf:7766 msgid "libsane-perl" msgstr "" #: bin/gscan2pdf:7767 msgid "Scan using the perl bindings for SANE." msgstr "" #: bin/gscan2pdf:7770 msgid "scanimage" msgstr "" #: bin/gscan2pdf:7771 msgid "Scan using the scanimage frontend." msgstr "" #: bin/gscan2pdf:7775 msgid "scanimage-perl" msgstr "" #: bin/gscan2pdf:7776 msgid "Scan using the scanimage-perl frontend." msgstr "" #: bin/gscan2pdf:7779 msgid "scanadf-perl" msgstr "" #: bin/gscan2pdf:7780 msgid "Scan using the scanadf-perl frontend." msgstr "" #: bin/gscan2pdf:7785 msgid "scanadf" msgstr "" #: bin/gscan2pdf:7786 msgid "Scan using the scanadf frontend." msgstr "" #: bin/gscan2pdf:7791 msgid "Cycle SANE handle after scan" msgstr "" #: bin/gscan2pdf:7814 msgid "Default filename for PDFs" msgstr "" #: bin/gscan2pdf:7820 msgid "" "%a\t author\n" "%t\t title\n" "%y\t document's year\n" "%Y\t today's year\n" "%m\t document's month\n" "%M\t today's month\n" "%d\t document's day\n" "%D\t today's day" msgstr "" #: bin/gscan2pdf:7830 msgid "Scan command prefix" msgstr "" #: bin/gscan2pdf:7839 msgid "Restore window settings on startup" msgstr "" #: bin/gscan2pdf:7845 msgid "Cache device-dependent options" msgstr "" #: bin/gscan2pdf:7851 msgid "Clear device-dependent options cache" msgstr "" #: bin/gscan2pdf:7862 msgid "Temporary directory" msgstr "" #: bin/gscan2pdf:7867 msgid "Browse" msgstr "" #: bin/gscan2pdf:7871 msgid "Select temporary directory" msgstr "" #: bin/gscan2pdf:7888 msgid "Blank threshold" msgstr "" #: bin/gscan2pdf:7893 msgid "Threshold used for selecting blank pages" msgstr "" #: bin/gscan2pdf:7899 msgid "Dark threshold" msgstr "" #: bin/gscan2pdf:7904 msgid "Threshold used for selecting dark pages" msgstr "" #: bin/gscan2pdf:7910 msgid "OCR output" msgstr "" #: bin/gscan2pdf:7915 msgid "Replace" msgstr "" #: bin/gscan2pdf:7917 msgid "" "Replace the contents of the text buffer with that from the OCR output." msgstr "" #: bin/gscan2pdf:7920 msgid "Prepend" msgstr "" #: bin/gscan2pdf:7921 msgid "Prepend the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7924 msgid "Append" msgstr "" #: bin/gscan2pdf:7925 msgid "Append the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7933 msgid "User-defined tools" msgstr "" #: bin/gscan2pdf:7954 msgid "View files on saving" msgstr "" #: bin/gscan2pdf:8000 msgid "" "You will have to restart gscanp2df for changes to the temporary directory to " "take effect." msgstr "" "Za uveljavitev sprememb začasne mape bo potrebno ponovno zagnati gscan2pdf." #: bin/gscan2pdf:8092 msgid "" "Use %i and %o for the input and output filenames respectively, or a single " "%i if the image is to be modified in-place.\n" "\n" "The other variable available is:\n" "\n" "%r resolution" msgstr "" #: bin/gscan2pdf:8119 msgid "Properties" msgstr "Lastnosti" #: lib/Gscan2pdf/Dialog.pm:63 lib/Gscan2pdf/Dialog.pm:79 t/05_Dialog.t:25 msgid "hide-on-delete" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:78 lib/Gscan2pdf/Dialog/Renumber.pm:162 msgid "Renumber" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:98 lib/Gscan2pdf/Dialog/Renumber.pm:207 #: lib/Gscan2pdf/Dialog/Renumber.pm:244 msgid "range" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:102 msgid "Page numbering" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:105 lib/Gscan2pdf/Scanner/Dialog.pm:254 msgid "border_width" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:126 lib/Gscan2pdf/Dialog/Renumber.pm:192 #: lib/Gscan2pdf/Dialog/Renumber.pm:242 t/07_Dialog_Renumber.t:33 #: t/07_Dialog_Renumber.t:45 t/07_Dialog_Renumber.t:59 #: t/07_Dialog_Renumber.t:66 msgid "start" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:147 lib/Gscan2pdf/Dialog/Renumber.pm:193 #: lib/Gscan2pdf/Dialog/Renumber.pm:243 t/07_Dialog_Renumber.t:34 #: t/07_Dialog_Renumber.t:46 t/07_Dialog_Renumber.t:60 #: t/07_Dialog_Renumber.t:67 msgid "increment" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:205 lib/Gscan2pdf/Dialog/Renumber.pm:241 msgid "document" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:295 msgid "" "The current settings would result in duplicate page numbers. Please select " "new start and increment values." msgstr "" #: lib/Gscan2pdf/Document.pm:83 msgid "Thumbnails" msgstr "" #: lib/Gscan2pdf/Document.pm:1502 msgid "Unknown DjVu file structure. Please contact the author." msgstr "" #: lib/Gscan2pdf/Document.pm:1558 #, perl-format msgid "%s is not a recognised image type" msgstr "" #: lib/Gscan2pdf/Document.pm:1580 lib/Gscan2pdf/Document.pm:1637 #, perl-format msgid "Importing page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:1613 msgid "Error extracting images from PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1692 msgid "Setting up PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1703 #, perl-format msgid "Saving page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:1814 lib/Gscan2pdf/Document.pm:2136 #, perl-format msgid "Error compressing image: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1919 #, perl-format msgid "Error creating PDF image object: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1930 #, perl-format msgid "Error embedding file image in %s format to PDF: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1939 msgid "Closing PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1955 #, perl-format msgid "Writing page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:2006 msgid "Error writing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2025 lib/Gscan2pdf/Document.pm:2227 #, perl-format msgid "Can't open file: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:2050 msgid "Error adding text layer to DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2056 msgid "Closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2063 msgid "Error closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2078 #, perl-format msgid "Converting image %i of %i to TIFF" msgstr "" #: lib/Gscan2pdf/Document.pm:2105 msgid "Error writing TIFF" msgstr "" #: lib/Gscan2pdf/Document.pm:2121 msgid "Concatenating TIFFs" msgstr "" #: lib/Gscan2pdf/Document.pm:2140 msgid "Converting to PS" msgstr "" #: lib/Gscan2pdf/Document.pm:2200 lib/Gscan2pdf/Document.pm:2215 msgid "Error saving image" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:158 #, perl-format msgid "Scanning %i pages..." msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:163 #, perl-format msgid "Scanning page %i..." msgstr "Skeniram stran %i..." #: lib/Gscan2pdf/Frontend/CLI.pm:188 lib/Gscan2pdf/Frontend/CLI.pm:296 msgid "Scanner warming up" msgstr "Ogrevanje skenerja" #: lib/Gscan2pdf/Frontend/CLI.pm:195 msgid "Document feeder out of documents" msgstr "Podajalnik dokumentov je prazen" #: lib/Gscan2pdf/Frontend/CLI.pm:212 lib/Gscan2pdf/Frontend/CLI.pm:325 msgid "Device busy" msgstr "Naprava je zasedena" #: lib/Gscan2pdf/Frontend/CLI.pm:218 lib/Gscan2pdf/Frontend/CLI.pm:330 msgid "Operation cancelled" msgstr "Dejanje preklicano" #: lib/Gscan2pdf/Frontend/CLI.pm:223 lib/Gscan2pdf/Frontend/CLI.pm:336 msgid "Unknown message: " msgstr "Neznano sporočilo: " #: lib/Gscan2pdf/Page.pm:68 lib/Gscan2pdf/Page.pm:73 #, perl-format msgid "Error importing image %s: %s" msgstr "" #: lib/Gscan2pdf/PageRange.pm:33 msgid "Selected" msgstr "Izbrano" #: lib/Gscan2pdf/PageRange.pm:58 msgid "active" msgstr "dejaven" #: lib/Gscan2pdf/Scanner/Dialog.pm:218 t/061_Scanner_Dialog.t:33 #: t/061_Scanner_Dialog.t:59 msgid "device-list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:496 t/061_Scanner_Dialog.t:139 #: t/061_Scanner_Dialog.t:174 t/062_Scanner_Dialog.t:50 #: t/062_Scanner_Dialog.t:75 msgid "current-scan-options" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:567 msgid "logger" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:650 t/05_Dialog.t:24 msgid "transient-for" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:716 msgid "device_list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:749 t/061_Scanner_Dialog.t:32 msgid "device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:751 msgid "Opening device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:760 msgid "Retrieving options" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:41 msgid "Layout" msgstr "Postavitev" #: lib/Gscan2pdf/Unpaper.pm:44 msgid "Single" msgstr "Enojno" #: lib/Gscan2pdf/Unpaper.pm:46 msgid "One page per sheet, oriented upwards without rotation." msgstr "Ena stran na list, pokončna brez rotacije" #: lib/Gscan2pdf/Unpaper.pm:49 msgid "Double" msgstr "Dvojno" #: lib/Gscan2pdf/Unpaper.pm:51 msgid "" "Two pages per sheet, landscape orientation (one page on the left half, one " "page on the right half)." msgstr "" "Dve strani na stran, ležeče (ena stran na levi polovici, druga na desni)" #: lib/Gscan2pdf/Unpaper.pm:59 msgid "# Output pages" msgstr "# izhodnih strani" #: lib/Gscan2pdf/Unpaper.pm:60 msgid "Number of pages to output." msgstr "Število izhodnih strani." #: lib/Gscan2pdf/Unpaper.pm:68 msgid "No deskew" msgstr "Brez odstranjevanja nagiba" #: lib/Gscan2pdf/Unpaper.pm:69 msgid "Disable deskewing." msgstr "Onemogoči odstranjevanje nagiba" #: lib/Gscan2pdf/Unpaper.pm:74 msgid "No mask scan" msgstr "Brez maske skeniranja" #: lib/Gscan2pdf/Unpaper.pm:75 msgid "Disable mask detection." msgstr "Onemogoči zaznavanje maske." #: lib/Gscan2pdf/Unpaper.pm:80 msgid "No black filter" msgstr "Brez črnega filtra" #: lib/Gscan2pdf/Unpaper.pm:81 msgid "Disable black area scan." msgstr "Onemogoči skeniranje črne površine." #: lib/Gscan2pdf/Unpaper.pm:86 msgid "No gray filter" msgstr "Brez sivinskega filtra" #: lib/Gscan2pdf/Unpaper.pm:87 msgid "Disable gray area scan." msgstr "Onemogoči skerniranje sive površine." #: lib/Gscan2pdf/Unpaper.pm:92 msgid "No noise filter" msgstr "Brez filtra za šum" #: lib/Gscan2pdf/Unpaper.pm:93 msgid "Disable noise filter." msgstr "Onemogoči filter za šum." #: lib/Gscan2pdf/Unpaper.pm:98 msgid "No blur filter" msgstr "Brez filtra zamegljenosti" #: lib/Gscan2pdf/Unpaper.pm:99 msgid "Disable blur filter." msgstr "Onemogoči filter zamegljenosti" #: lib/Gscan2pdf/Unpaper.pm:104 msgid "No border scan" msgstr "Brez skeniranja robov" #: lib/Gscan2pdf/Unpaper.pm:105 msgid "Disable border scanning." msgstr "Onemogoči skeniranje robov." #: lib/Gscan2pdf/Unpaper.pm:110 msgid "No border align" msgstr "Brez poravnave robov" #: lib/Gscan2pdf/Unpaper.pm:112 msgid "Disable aligning of the area detected by border scanning." msgstr "Onemogoči poravnavo površine, ki jo zazna skeniranje robov." #: lib/Gscan2pdf/Unpaper.pm:117 msgid "Deskew to edge" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:119 msgid "" "Edges from which to scan for rotation. Each edge of a mask can be used to " "detect the mask's rotation. If multiple edges are specified, the average " "value will be used, unless the statistical deviation exceeds --deskew-scan-" "deviation." msgstr "" "Robovi od katerih skeniramo za zasuk. Vsak rob maske se lahko uporablja za " "zaznavanje zasuka. Če je določenih več robov, bo uporabljena povprečna " "vrednost, razen če bo statistični odklon prekoračil --deskew-scan-deviation." #: lib/Gscan2pdf/Unpaper.pm:125 msgid "Use 'left' for scanning from the left edge." msgstr "Uporabi 'levo' za skeniranje z levega robu." #: lib/Gscan2pdf/Unpaper.pm:130 msgid "Use 'top' for scanning from the top edge." msgstr "Uporabi 'vrh' za skeniranje z zgornjega robu." #: lib/Gscan2pdf/Unpaper.pm:134 lib/Gscan2pdf/Unpaper.pm:162 msgid "Right" msgstr "Desno" #: lib/Gscan2pdf/Unpaper.pm:135 msgid "Use 'right' for scanning from the right edge." msgstr "Uporabi 'desno' za skeniranje z desnega robu." #: lib/Gscan2pdf/Unpaper.pm:139 lib/Gscan2pdf/Unpaper.pm:167 msgid "Bottom" msgstr "Dno" #: lib/Gscan2pdf/Unpaper.pm:140 msgid "Use 'bottom' for scanning from the bottom." msgstr "Uporabi 'dno' za skeniranje s spodnjega robu." #: lib/Gscan2pdf/Unpaper.pm:147 msgid "Align to edge" msgstr "Poravnaj to roba" #: lib/Gscan2pdf/Unpaper.pm:148 msgid "Edge to which to align the page." msgstr "Rob do katerega bo stran poravnana." #: lib/Gscan2pdf/Unpaper.pm:153 msgid "Use 'left' to align to the left edge." msgstr "Uporabi 'levo' za poravnavo ob desnem robu." #: lib/Gscan2pdf/Unpaper.pm:158 msgid "Use 'top' to align to the top edge." msgstr "Uporabi 'vrh' za poravnavno ob zgornjem robu" #: lib/Gscan2pdf/Unpaper.pm:163 msgid "Use 'right' to align to the right edge." msgstr "Uporabi 'desno' za poravnavo ob desne robu." #: lib/Gscan2pdf/Unpaper.pm:168 msgid "Use 'bottom' to align to the bottom." msgstr "Uporabi 'dno' za poravnavo ob spodnjem robu." #: lib/Gscan2pdf/Unpaper.pm:174 msgid "Border margin" msgstr "Odmik roba" #: lib/Gscan2pdf/Unpaper.pm:178 msgid "Vertical margin" msgstr "Navpični odmik" #: lib/Gscan2pdf/Unpaper.pm:180 msgid "" "Vertical distance to keep from the sheet edge when aligning a border area." msgstr "Navpična razdalja, ki naj ohrani rob lista ob poravnavi površine." #: lib/Gscan2pdf/Unpaper.pm:189 msgid "Horizontal margin" msgstr "Horizontalni odmik" #: lib/Gscan2pdf/Unpaper.pm:191 msgid "" "Horizontal distance to keep from the sheet edge when aligning a border area." msgstr "Horizontalna razdalja, ki ohrani rob lista ob poravnavi površine." #: lib/Gscan2pdf/Unpaper.pm:202 msgid "White threshold" msgstr "Prag beline" #: lib/Gscan2pdf/Unpaper.pm:204 msgid "Brightness ratio above which a pixel is considered white." msgstr "Razmerje svetlosti nad katerim se točka smatra za belega." #: lib/Gscan2pdf/Unpaper.pm:212 msgid "Black threshold" msgstr "Prag črnine" #: lib/Gscan2pdf/Unpaper.pm:214 msgid "" "Brightness ratio below which a pixel is considered black (non-gray). This is " "used by the gray-filter. This value is also used when converting a grayscale " "image to black-and-white mode." msgstr "" "Razmerje svetlosti nad katero se točka smatra za črno (ne sivo). Uporablja " "se za sivinski filter. Ta vrednost se uporablja tudi ob pretvorbi sivinske " "slike v črno-beli način." #: lib/Gscan2pdf/Unpaper.pm:250 msgid "Deskew" msgstr "Odstranjevanje poševnosti" #: lib/Gscan2pdf/Unpaper.pm:280 msgid "Border" msgstr "Rob" #: lib/Gscan2pdf/Unpaper.pm:337 msgid "Filters" msgstr "Filtri" #: t/05_Dialog.t:23 msgid "title" msgstr "" #: t/05_Dialog.t:26 t/05_Dialog.t:31 t/05_Dialog.t:32 t/05_Dialog.t:38 #: t/05_Dialog.t:39 msgid "border-width" msgstr "" #: t/061_Scanner_Dialog.t:34 msgid "dir" msgstr "" #: t/061_Scanner_Dialog.t:36 msgid "max-pages" msgstr "" #: t/061_Scanner_Dialog.t:39 msgid "side-to-scan" msgstr "" #: t/061_Scanner_Dialog.t:40 t/061_Scanner_Dialog.t:185 msgid "available-scan-options" msgstr "" #: t/061_Scanner_Dialog.t:171 t/062_Scanner_Dialog.t:73 msgid "profile" msgstr "" gscan2pdf-1.2.3/po/gscan2pdf-he.po0000644000175000017500000012224512243440507015220 0ustar jeffjeff# Hebrew translation for gscan2pdf # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the gscan2pdf package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: gscan2pdf\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-10-25 08:12+0200\n" "PO-Revision-Date: 2009-12-22 14:45+0000\n" "Last-Translator: Ddorda \n" "Language-Team: Hebrew \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-19 09:22+0000\n" "X-Generator: Launchpad (build 16831)\n" #: bin/gscan2pdf:157 msgid "Error displaying help" msgstr "" #: bin/gscan2pdf:201 msgid "" "Error: unable to load settings.\n" "Backing up settings\n" "Reverting to defaults" msgstr "" "שגיאה: לא ניתן לטעון הגדרות.\n" "יוצר גיבוי להגדרות\n" "חוזר להגדרות ברירת המחדל" #: bin/gscan2pdf:244 msgid "A4" msgstr "A4" #: bin/gscan2pdf:250 msgid "US Letter" msgstr "US Letter" #: bin/gscan2pdf:256 msgid "US Legal" msgstr "US Legal" #: bin/gscan2pdf:323 bin/gscan2pdf:344 #, perl-format msgid "Cannot read file: %s" msgstr "" #: bin/gscan2pdf:451 msgid "_File" msgstr "_קובץ" #: bin/gscan2pdf:454 msgid "_New" msgstr "_חדש" #: bin/gscan2pdf:455 msgid "Clears all pages" msgstr "מוחק כל העמודים" #: bin/gscan2pdf:459 msgid "_Open" msgstr "_פתח" #: bin/gscan2pdf:460 msgid "Open image file(s)" msgstr "" #: bin/gscan2pdf:465 msgid "S_can" msgstr "_סרוק" #: bin/gscan2pdf:467 msgid "Scan document" msgstr "סרוק מסמך" #: bin/gscan2pdf:471 bin/gscan2pdf:472 bin/gscan2pdf:2582 msgid "Save" msgstr "שמור" #: bin/gscan2pdf:476 msgid "_Email as PDF" msgstr "_שלח כקובץ PDF" #: bin/gscan2pdf:477 msgid "Attach as PDF to a new email" msgstr "צרף כמסמך PDF להודעת דואל חדשה" #: bin/gscan2pdf:480 msgid "_Print" msgstr "" #: bin/gscan2pdf:481 msgid "Print" msgstr "" #: bin/gscan2pdf:485 msgid "_Compress temporary files" msgstr "_דחס קבצים זמניים" #: bin/gscan2pdf:486 msgid "Compress temporary files" msgstr "דחס קבצים זמניים" #: bin/gscan2pdf:490 msgid "_Quit" msgstr "_יציאה" #: bin/gscan2pdf:491 msgid "Quit" msgstr "יציאה" #: bin/gscan2pdf:495 msgid "_Edit" msgstr "_ערוך" #: bin/gscan2pdf:497 msgid "_Undo" msgstr "_בטל" #: bin/gscan2pdf:497 msgid "Undo" msgstr "בטל את הפעולה האחרונה" #: bin/gscan2pdf:501 msgid "_Redo" msgstr "ב_צע שוב" #: bin/gscan2pdf:502 msgid "Redo" msgstr "בצע שוב" #: bin/gscan2pdf:506 msgid "Cu_t" msgstr "גזו_ר" #: bin/gscan2pdf:507 msgid "Cut selection" msgstr "גזור בחירה" #: bin/gscan2pdf:511 msgid "_Copy" msgstr "הע_תק" #: bin/gscan2pdf:512 msgid "Copy selection" msgstr "העתק בחירה" #: bin/gscan2pdf:516 msgid "_Paste" msgstr "ה_דבק" #: bin/gscan2pdf:517 msgid "Paste selection" msgstr "הדבק בחירה" #: bin/gscan2pdf:521 msgid "_Delete" msgstr "_מחק" #: bin/gscan2pdf:522 msgid "Delete selected pages" msgstr "מחק דפים מסומנים" #: bin/gscan2pdf:526 msgid "_Renumber" msgstr "_מספר מחדש" #: bin/gscan2pdf:527 msgid "Renumber pages" msgstr "מספר עמודים מחדש" #: bin/gscan2pdf:529 bin/gscan2pdf:679 msgid "_Select" msgstr "_בחר" #: bin/gscan2pdf:532 msgid "_All" msgstr "_הכל" #: bin/gscan2pdf:533 msgid "Select all pages" msgstr "בחר את כל הדפים" #: bin/gscan2pdf:536 msgid "_Odd" msgstr "אי-זוגי_ים" #: bin/gscan2pdf:537 msgid "Select all odd-numbered pages" msgstr "בחר בכל העמודים האי-זוגיים" #: bin/gscan2pdf:541 msgid "_Even" msgstr "_זוגיים" #: bin/gscan2pdf:542 msgid "Select all evenly-numbered pages" msgstr "בחר בכל העמודים הזוגיים" #: bin/gscan2pdf:547 msgid "_Blank" msgstr "רי_ק" #: bin/gscan2pdf:548 msgid "Select pages with low standard deviation" msgstr "בחר דפים עם סטיית תקן נמוכה" #: bin/gscan2pdf:552 msgid "_Dark" msgstr "כה_ה" #: bin/gscan2pdf:553 msgid "Select dark pages" msgstr "בחר דפים כהים" #: bin/gscan2pdf:558 msgid "_Modified" msgstr "" #: bin/gscan2pdf:560 msgid "Select modified pages since last OCR" msgstr "" #: bin/gscan2pdf:565 msgid "_No OCR" msgstr "" #: bin/gscan2pdf:566 msgid "Select pages with no OCR output" msgstr "" #: bin/gscan2pdf:570 msgid "_Clear OCR" msgstr "" #: bin/gscan2pdf:571 msgid "Clear OCR output from selected pages" msgstr "" #: bin/gscan2pdf:575 msgid "Propert_ies" msgstr "מאפיי_נים" #: bin/gscan2pdf:576 msgid "Edit image properties" msgstr "ערוך מאפייני תמונה" #: bin/gscan2pdf:580 msgid "Prefere_nces" msgstr "העד_פות" #: bin/gscan2pdf:581 msgid "Edit preferences" msgstr "שנה העדפות" #: bin/gscan2pdf:585 msgid "_View" msgstr "_תצוגה" #: bin/gscan2pdf:588 msgid "Zoom _100%" msgstr "ז_ום 100%" #: bin/gscan2pdf:589 msgid "Zoom to 100%" msgstr "קבע זום ל- 100%" #: bin/gscan2pdf:593 msgid "Zoom to _fit" msgstr "קבע זום או_טומטי" #: bin/gscan2pdf:594 msgid "Zoom to fit" msgstr "קבע זום אוטומטי" #: bin/gscan2pdf:598 msgid "Zoom _in" msgstr "הת_קרב" #: bin/gscan2pdf:599 msgid "Zoom in" msgstr "התקרב" #: bin/gscan2pdf:603 msgid "Zoom _out" msgstr "התרח_ק" #: bin/gscan2pdf:604 msgid "Zoom out" msgstr "התרחק" #: bin/gscan2pdf:609 bin/gscan2pdf:611 msgid "Rotate 90 clockwise" msgstr "סובב 90° עם כיוון השעון" #: bin/gscan2pdf:617 bin/gscan2pdf:619 msgid "Rotate 180" msgstr "סובב 180°" #: bin/gscan2pdf:625 bin/gscan2pdf:627 msgid "Rotate 90 anticlockwise" msgstr "סובב 90° נגד כיוון השעון" #: bin/gscan2pdf:632 msgid "_Tools" msgstr "כ_לים" #: bin/gscan2pdf:634 msgid "_Threshold" msgstr "רמת _סף" #: bin/gscan2pdf:635 msgid "Change each pixel above this threshold to black" msgstr "בצע כל פיקסל שערכו מעבר לרמת הסף הזו בשחור" #: bin/gscan2pdf:639 msgid "_Negate" msgstr "הפוך _ערכים" #: bin/gscan2pdf:640 msgid "Converts black to white and vice versa" msgstr "החלף שחור עם לבן ולהיפך" #: bin/gscan2pdf:644 msgid "_Unsharp Mask" msgstr "מסיכת ט_שטוש" #: bin/gscan2pdf:645 msgid "Apply an unsharp mask" msgstr "בצע טשטוש" #: bin/gscan2pdf:648 msgid "_Crop" msgstr "_חיתוך" #: bin/gscan2pdf:649 msgid "Crop pages" msgstr "חיתוך דפים" #: bin/gscan2pdf:653 msgid "_Clean up" msgstr "נק_ה" #: bin/gscan2pdf:654 bin/gscan2pdf:4085 msgid "Clean up scanned images with unpaper" msgstr "נקה את התמונות הסרוקות עם unpaper" #: bin/gscan2pdf:657 msgid "_OCR" msgstr "זיה_וי טקסט" #: bin/gscan2pdf:658 msgid "Optical Character Recognition" msgstr "Optical Character Recognition" #: bin/gscan2pdf:660 msgid "U_ser-defined" msgstr "" #: bin/gscan2pdf:663 bin/gscan2pdf:665 msgid "_Help" msgstr "ע_זרה" #: bin/gscan2pdf:666 msgid "Help" msgstr "עזרה" #: bin/gscan2pdf:668 msgid "_About" msgstr "על או_דות" #: bin/gscan2pdf:674 msgid "_Drag" msgstr "גרו_ר" #: bin/gscan2pdf:675 msgid "Use the hand tool" msgstr "השתמש בכלי היד" #: bin/gscan2pdf:680 msgid "Use the rectangular selection tool" msgstr "השתמש בכלי הבחירה המרובעת" #: bin/gscan2pdf:684 msgid "_Paint" msgstr "הדפ_ס" #: bin/gscan2pdf:685 msgid "Use the painter tool" msgstr "השתמש בכלי המדפסת" #: bin/gscan2pdf:965 lib/Gscan2pdf/Document.pm:2594 #: lib/Gscan2pdf/Document.pm:2595 msgid "Error copying page" msgstr "שגיאה בהעתקת תמונה" #: bin/gscan2pdf:1082 msgid "Image" msgstr "" #: bin/gscan2pdf:1117 msgid "OCR Output" msgstr "" #: bin/gscan2pdf:1174 msgid "Mode" msgstr "מצב" #: bin/gscan2pdf:1176 msgid "Lineart" msgstr "ליינארט" #: bin/gscan2pdf:1177 msgid "Grayscale" msgstr "גווני אפור" #: bin/gscan2pdf:1178 msgid "Gray" msgstr "אפור" #: bin/gscan2pdf:1179 msgid "Color" msgstr "צבע" #: bin/gscan2pdf:1180 msgid "Black & White" msgstr "שחור ולבן" #: bin/gscan2pdf:1181 msgid "True Gray" msgstr "אפור אמיתי" #: bin/gscan2pdf:1182 msgid "Binary" msgstr "בינארי" #: bin/gscan2pdf:1183 bin/gscan2pdf:1242 bin/gscan2pdf:1243 msgid "Auto" msgstr "אוטומטי" #: bin/gscan2pdf:1184 msgid "Halftone" msgstr "Halftonr" #: bin/gscan2pdf:1185 msgid "24bit Color" msgstr "צבע 24 ביט" #: bin/gscan2pdf:1189 bin/gscan2pdf:2547 bin/gscan2pdf:2644 msgid "Compression" msgstr "דחיסה" #: bin/gscan2pdf:1191 bin/gscan2pdf:2539 bin/gscan2pdf:2636 msgid "None" msgstr "ללא" #: bin/gscan2pdf:1192 bin/gscan2pdf:2537 bin/gscan2pdf:2601 bin/gscan2pdf:2622 msgid "JPEG" msgstr "JPEG" #: bin/gscan2pdf:1195 bin/gscan2pdf:8127 msgid "Resolution" msgstr "רזולוציה" #: bin/gscan2pdf:1196 msgid "Brightness" msgstr "בהירות" #: bin/gscan2pdf:1197 msgid "Gain" msgstr "Gain" #: bin/gscan2pdf:1198 msgid "Contrast" msgstr "ניגודיות" #: bin/gscan2pdf:1199 bin/gscan2pdf:6406 bin/gscan2pdf:6417 bin/gscan2pdf:6620 msgid "Threshold" msgstr "רמת סף" #: bin/gscan2pdf:1201 msgid "Speed" msgstr "מהירות" #: bin/gscan2pdf:1203 bin/gscan2pdf:1210 bin/gscan2pdf:1217 bin/gscan2pdf:1224 #: bin/gscan2pdf:1231 msgid "Yes" msgstr "כן" #: bin/gscan2pdf:1204 bin/gscan2pdf:1211 bin/gscan2pdf:1218 bin/gscan2pdf:1225 #: bin/gscan2pdf:1232 msgid "No" msgstr "לא" #: bin/gscan2pdf:1208 msgid "Batch scan" msgstr "קבוצת סריקות" #: bin/gscan2pdf:1215 bin/gscan2pdf:1222 msgid "Wait for button" msgstr "המתן לכפתור" #: bin/gscan2pdf:1229 msgid "Cache calibration" msgstr "כיול מטמון" #: bin/gscan2pdf:1236 msgid "Source" msgstr "מקור" #: bin/gscan2pdf:1238 msgid "Normal" msgstr "רגיל" #: bin/gscan2pdf:1239 msgid "ADF" msgstr "ADF" #: bin/gscan2pdf:1240 msgid "Automatic Document Feeder" msgstr "Automatic Document Feeder" #: bin/gscan2pdf:1241 msgid "XPA" msgstr "XPA" #: bin/gscan2pdf:1244 msgid "Flatbed" msgstr "Flatbed" #: bin/gscan2pdf:1245 msgid "Transparency Adapter" msgstr "מתאם שקיפות" #: bin/gscan2pdf:1246 msgid "Transparency Unit" msgstr "יחידת שקיפות" #: bin/gscan2pdf:1249 bin/gscan2pdf:1251 msgid "Page Width" msgstr "רוחב עמוד" #: bin/gscan2pdf:1250 bin/gscan2pdf:1252 msgid "Page Height" msgstr "גובה עמוד" #: bin/gscan2pdf:1253 msgid "Top Overscan" msgstr "" #: bin/gscan2pdf:1254 msgid "Bottom Overscan" msgstr "" #: bin/gscan2pdf:1256 bin/gscan2pdf:1263 msgid "ADF Mode" msgstr "מצב ADF" #: bin/gscan2pdf:1258 bin/gscan2pdf:1265 msgid "Simplex" msgstr "סימפלקס" #: bin/gscan2pdf:1259 bin/gscan2pdf:1266 msgid "Duplex" msgstr "דופלקס" #: bin/gscan2pdf:1301 bin/gscan2pdf:1306 msgid "Pick crashed session to restore" msgstr "" #: bin/gscan2pdf:1308 bin/gscan2pdf:2609 msgid "Session" msgstr "" #: bin/gscan2pdf:1338 #, perl-format msgid "" "Warning: unable to use %s for temporary storage. Defaulting to %s instead." msgstr "" #: bin/gscan2pdf:1441 msgid "GOCR" msgstr "GOCR" #: bin/gscan2pdf:1441 msgid "Process image with GOCR." msgstr "עבד תמונה עם GOCR." #: bin/gscan2pdf:1445 msgid "Tesseract" msgstr "" #: bin/gscan2pdf:1446 msgid "Process image with Tesseract." msgstr "" #: bin/gscan2pdf:1450 msgid "Ocropus" msgstr "" #: bin/gscan2pdf:1450 msgid "Process image with Ocropus." msgstr "" #: bin/gscan2pdf:1454 msgid "Cuneiform" msgstr "" #: bin/gscan2pdf:1455 msgid "Process image with Cuneiform." msgstr "" #: bin/gscan2pdf:1461 msgid "Save image and Save as PDF both require imagemagick\n" msgstr "" #: bin/gscan2pdf:1465 msgid "Save image requires libtiff\n" msgstr "" #: bin/gscan2pdf:1469 msgid "Save as DjVu requires djvulibre-bin\n" msgstr "" #: bin/gscan2pdf:1473 msgid "Email as PDF requires xdg-email\n" msgstr "" #: bin/gscan2pdf:1518 msgid "The rotating options and unpaper support require perlmagick\n" msgstr "" #: bin/gscan2pdf:1524 msgid "unpaper missing\n" msgstr "" #: bin/gscan2pdf:1534 msgid "OCR requires gocr, tesseract, ocropus, or cuneiform\n" msgstr "" #: bin/gscan2pdf:1539 msgid "Warning: missing packages" msgstr "" #: bin/gscan2pdf:1544 msgid "Don't show this message again" msgstr "אל תציג הודעה זו שוב" #: bin/gscan2pdf:1753 msgid "" "Some pages have not been saved.\n" "Do you really want to clear all pages?" msgstr "" #: bin/gscan2pdf:1828 bin/gscan2pdf:1858 #, perl-format msgid "Process %i of %i (%s)" msgstr "" #: bin/gscan2pdf:1867 #, perl-format msgid "Process %i of %i" msgstr "" #: bin/gscan2pdf:1895 msgid "Open image" msgstr "" #: bin/gscan2pdf:1903 bin/gscan2pdf:2797 bin/gscan2pdf:3113 msgid "Image files" msgstr "" #: bin/gscan2pdf:1940 msgid "Pages to extract" msgstr "" #: bin/gscan2pdf:1943 bin/gscan2pdf:2117 bin/gscan2pdf:2586 bin/gscan2pdf:3353 #: bin/gscan2pdf:3494 bin/gscan2pdf:4104 bin/gscan2pdf:4514 bin/gscan2pdf:5825 #: bin/gscan2pdf:6409 bin/gscan2pdf:6495 bin/gscan2pdf:6565 bin/gscan2pdf:6737 #: bin/gscan2pdf:7011 bin/gscan2pdf:7274 bin/gscan2pdf:7757 bin/gscan2pdf:8123 #: lib/Gscan2pdf/Dialog.pm:56 lib/Gscan2pdf/Dialog/Renumber.pm:80 #: lib/Gscan2pdf/Scanner/Dialog.pm:201 t/05_Dialog.t:28 msgid "vbox" msgstr "" #: bin/gscan2pdf:1946 msgid "First page to extract" msgstr "" #: bin/gscan2pdf:1953 msgid "Last page to extract" msgstr "" #: bin/gscan2pdf:2042 lib/Gscan2pdf/Dialog/Renumber.pm:83 msgid "Page Range" msgstr "" #: bin/gscan2pdf:2092 msgid "Metadata" msgstr "" #: bin/gscan2pdf:2101 msgid "Date" msgstr "תאריך" #: bin/gscan2pdf:2114 msgid "Select Date" msgstr "בחר תאריך" #: bin/gscan2pdf:2136 msgid "Today" msgstr "היום" #: bin/gscan2pdf:2150 msgid "Year-Month-Day" msgstr "" #: bin/gscan2pdf:2156 msgid "Document author" msgstr "" #: bin/gscan2pdf:2165 msgid "Title" msgstr "כותרת" #: bin/gscan2pdf:2174 msgid "Subject" msgstr "נושא" #: bin/gscan2pdf:2183 msgid "Keywords" msgstr "מילות מפתח" #: bin/gscan2pdf:2245 msgid "Editing text" msgstr "" #: bin/gscan2pdf:2252 bin/gscan2pdf:2258 bin/gscan2pdf:2332 msgid "text" msgstr "" #: bin/gscan2pdf:2352 msgid "PDF filename" msgstr "שם קובץ PDF" #: bin/gscan2pdf:2381 msgid "PDF files" msgstr "" #: bin/gscan2pdf:2405 bin/gscan2pdf:2823 bin/gscan2pdf:2880 bin/gscan2pdf:2976 #: bin/gscan2pdf:3035 bin/gscan2pdf:3087 bin/gscan2pdf:3275 #, perl-format msgid "File %s is read-only" msgstr "" #: bin/gscan2pdf:2482 msgid "JPEG Quality" msgstr "איכות JPEG" #: bin/gscan2pdf:2496 msgid "Downsample to" msgstr "" #: bin/gscan2pdf:2501 msgid "PPI" msgstr "" #: bin/gscan2pdf:2520 msgid "Automatic" msgstr "אוטומטי" #: bin/gscan2pdf:2521 msgid "Let gscan2pdf which type of compression to use." msgstr "" #: bin/gscan2pdf:2524 bin/gscan2pdf:2616 msgid "LZW" msgstr "LZW" #: bin/gscan2pdf:2525 bin/gscan2pdf:2617 msgid "Compress output with Lempel-Ziv & Welch encoding." msgstr "דחס פלט באמצעות קידוד Lempel-Ziv & Welch" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Zip" msgstr "Zip" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Compress output with deflate encoding." msgstr "" #: bin/gscan2pdf:2529 bin/gscan2pdf:2624 msgid "Packbits" msgstr "" #: bin/gscan2pdf:2530 bin/gscan2pdf:2625 msgid "Compress output with Packbits encoding." msgstr "" #: bin/gscan2pdf:2536 bin/gscan2pdf:2604 msgid "PNG" msgstr "PNG" #: bin/gscan2pdf:2536 msgid "Compress output with PNG encoding." msgstr "" #: bin/gscan2pdf:2537 bin/gscan2pdf:2622 msgid "Compress output with JPEG encoding." msgstr "" #: bin/gscan2pdf:2540 bin/gscan2pdf:2637 msgid "Use no compression algorithm on output." msgstr "" #: bin/gscan2pdf:2594 msgid "Image type" msgstr "" #: bin/gscan2pdf:2598 msgid "PDF" msgstr "PDF" #: bin/gscan2pdf:2598 msgid "Portable Document Format" msgstr "" #: bin/gscan2pdf:2599 msgid "GIF" msgstr "GIF" #: bin/gscan2pdf:2599 msgid "CompuServe graphics interchange format" msgstr "" #: bin/gscan2pdf:2602 msgid "Joint Photographic Experts Group JFIF format" msgstr "" #: bin/gscan2pdf:2604 msgid "Portable Network Graphics" msgstr "" #: bin/gscan2pdf:2605 msgid "PNM" msgstr "" #: bin/gscan2pdf:2605 msgid "Portable anymap" msgstr "" #: bin/gscan2pdf:2606 msgid "PS" msgstr "PS" #: bin/gscan2pdf:2606 msgid "Postscript" msgstr "Postscript" #: bin/gscan2pdf:2607 msgid "TIFF" msgstr "TIFF" #: bin/gscan2pdf:2607 msgid "Tagged Image File Format" msgstr "" #: bin/gscan2pdf:2608 msgid "Text" msgstr "טקסט" #: bin/gscan2pdf:2608 msgid "Plain text" msgstr "" #: bin/gscan2pdf:2609 msgid "gscan2pdf session file" msgstr "" #: bin/gscan2pdf:2611 msgid "DjVu" msgstr "" #: bin/gscan2pdf:2611 msgid "Deja Vu" msgstr "" #: bin/gscan2pdf:2628 msgid "G3" msgstr "G3" #: bin/gscan2pdf:2629 msgid "Compress output with CCITT Group 3 encoding." msgstr "" #: bin/gscan2pdf:2632 msgid "G4" msgstr "G4" #: bin/gscan2pdf:2633 msgid "Compress output with CCITT Group 4 encoding." msgstr "" #: bin/gscan2pdf:2649 msgid "tiff" msgstr "" #: bin/gscan2pdf:2681 msgid "Font for non-ASCII text" msgstr "" #: bin/gscan2pdf:2790 msgid "TIFF filename" msgstr "" #: bin/gscan2pdf:2848 msgid "Text filename" msgstr "" #: bin/gscan2pdf:2856 msgid "Text files" msgstr "" #: bin/gscan2pdf:2944 msgid "PS filename" msgstr "" #: bin/gscan2pdf:2951 msgid "Postscript files" msgstr "" #: bin/gscan2pdf:3003 msgid "gscan2pdf session filename" msgstr "" #: bin/gscan2pdf:3010 msgid "gscan2pdf session files" msgstr "" #: bin/gscan2pdf:3093 #, perl-format msgid "" "File %s exists.\n" "Really overwrite?" msgstr "" #: bin/gscan2pdf:3106 msgid "Image filename" msgstr "שם קובץ תמונה" #: bin/gscan2pdf:3245 msgid "DjVu filename" msgstr "" #: bin/gscan2pdf:3252 msgid "DjVu files" msgstr "" #: bin/gscan2pdf:3349 msgid "Email as PDF" msgstr "שלח באימייל כ- PDF" #: bin/gscan2pdf:3454 msgid "Error creating email" msgstr "" #: bin/gscan2pdf:3490 bin/gscan2pdf:4313 msgid "Scan Document" msgstr "" #: bin/gscan2pdf:3507 lib/Gscan2pdf/Scanner/Dialog.pm:248 msgid "Page Options" msgstr "אפשרויות עמוד" #: bin/gscan2pdf:3510 lib/Gscan2pdf/Scanner/Dialog.pm:251 msgid "# Pages" msgstr "מספר עמודים" #: bin/gscan2pdf:3519 lib/Gscan2pdf/PageRange.pm:34 #: lib/Gscan2pdf/Scanner/Dialog.pm:261 msgid "All" msgstr "הכל" #: bin/gscan2pdf:3520 lib/Gscan2pdf/Scanner/Dialog.pm:262 msgid "Scan all pages" msgstr "סרוק את כל העמודים" #: bin/gscan2pdf:3532 bin/gscan2pdf:3537 lib/Gscan2pdf/Scanner/Dialog.pm:274 #: lib/Gscan2pdf/Scanner/Dialog.pm:279 msgid "Set number of pages to scan" msgstr "" #: bin/gscan2pdf:3550 lib/Gscan2pdf/Scanner/Dialog.pm:308 msgid "Extended page numbering" msgstr "" #: bin/gscan2pdf:3554 lib/Gscan2pdf/Scanner/Dialog.pm:312 msgid "Page number" msgstr "" #: bin/gscan2pdf:3563 lib/Gscan2pdf/Dialog/Renumber.pm:111 #: lib/Gscan2pdf/Scanner/Dialog.pm:321 msgid "Start" msgstr "" #: bin/gscan2pdf:3572 lib/Gscan2pdf/Dialog/Renumber.pm:132 #: lib/Gscan2pdf/Scanner/Dialog.pm:340 msgid "Increment" msgstr "" #: bin/gscan2pdf:3604 lib/Gscan2pdf/Scanner/Dialog.pm:372 msgid "Source document" msgstr "" #: bin/gscan2pdf:3611 lib/Gscan2pdf/Scanner/Dialog.pm:379 msgid "Single sided" msgstr "" #: bin/gscan2pdf:3612 lib/Gscan2pdf/Scanner/Dialog.pm:380 msgid "Source document is single-sided" msgstr "" #: bin/gscan2pdf:3622 lib/Gscan2pdf/Scanner/Dialog.pm:390 msgid "Double sided" msgstr "" #: bin/gscan2pdf:3623 lib/Gscan2pdf/Scanner/Dialog.pm:391 msgid "Source document is double-sided" msgstr "" #: bin/gscan2pdf:3629 lib/Gscan2pdf/Scanner/Dialog.pm:397 msgid "Side to scan" msgstr "" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Facing" msgstr "" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Reverse" msgstr "" #: bin/gscan2pdf:3655 lib/Gscan2pdf/Scanner/Dialog.pm:418 msgid "Sets which side of a double-sided document is scanned" msgstr "" #: bin/gscan2pdf:3719 msgid "Scan Options" msgstr "אפשרויות סריקה" #: bin/gscan2pdf:3722 msgid "Device-dependent options" msgstr "" #: bin/gscan2pdf:3729 lib/Gscan2pdf/Scanner/Dialog.pm:458 msgid "Scan profiles" msgstr "" #: bin/gscan2pdf:3778 bin/gscan2pdf:3784 lib/Gscan2pdf/Scanner/Dialog.pm:479 #: lib/Gscan2pdf/Scanner/Dialog.pm:485 msgid "Name of scan profile" msgstr "" #: bin/gscan2pdf:3828 lib/Gscan2pdf/Scanner/Dialog.pm:518 msgid "Scan" msgstr "" #: bin/gscan2pdf:3866 msgid "Must scan facing pages first" msgstr "" #: bin/gscan2pdf:3977 msgid "Post-processing" msgstr "" #: bin/gscan2pdf:3986 bin/gscan2pdf:4008 msgid "Rotate" msgstr "" #: bin/gscan2pdf:3987 bin/gscan2pdf:4009 msgid "Rotate image after scanning" msgstr "" #: bin/gscan2pdf:3990 msgid "Both sides" msgstr "" #: bin/gscan2pdf:3990 msgid "Both sides." msgstr "" #: bin/gscan2pdf:3991 msgid "Facing side" msgstr "" #: bin/gscan2pdf:3991 msgid "Facing side." msgstr "" #: bin/gscan2pdf:3992 msgid "Reverse side" msgstr "" #: bin/gscan2pdf:3992 msgid "Reverse side." msgstr "" #: bin/gscan2pdf:3995 bin/gscan2pdf:4013 msgid "Select side to rotate" msgstr "" #: bin/gscan2pdf:3998 msgid "90" msgstr "" #: bin/gscan2pdf:3998 msgid "Rotate image 90 degrees clockwise." msgstr "" #: bin/gscan2pdf:3999 msgid "180" msgstr "" #: bin/gscan2pdf:3999 msgid "Rotate image 180 degrees clockwise." msgstr "" #: bin/gscan2pdf:4000 msgid "270" msgstr "" #: bin/gscan2pdf:4000 msgid "Rotate image 90 degrees anticlockwise." msgstr "" #: bin/gscan2pdf:4003 bin/gscan2pdf:4016 msgid "Select direction of rotation" msgstr "" #: bin/gscan2pdf:4083 msgid "Clean up images" msgstr "" #: bin/gscan2pdf:4094 msgid "Options" msgstr "" #: bin/gscan2pdf:4095 msgid "Set unpaper options" msgstr "" #: bin/gscan2pdf:4101 msgid "unpaper options" msgstr "" #: bin/gscan2pdf:4136 bin/gscan2pdf:4137 msgid "OCR scanned pages" msgstr "" #: bin/gscan2pdf:4151 msgid "Select OCR engine" msgstr "" #: bin/gscan2pdf:4210 lib/Gscan2pdf/Scanner/Dialog.pm:634 msgid "Fetching list of devices" msgstr "" #: bin/gscan2pdf:4225 lib/Gscan2pdf/Scanner/Dialog.pm:654 msgid "No devices found" msgstr "" #: bin/gscan2pdf:4367 bin/gscan2pdf:4732 bin/gscan2pdf:4777 bin/gscan2pdf:5214 #: lib/Gscan2pdf/Scanner/Dialog.pm:343 lib/Gscan2pdf/Scanner/Dialog.pm:348 #: t/061_Scanner_Dialog.t:38 t/061_Scanner_Dialog.t:95 msgid "page-number-increment" msgstr "" #: bin/gscan2pdf:4374 bin/gscan2pdf:4729 bin/gscan2pdf:4730 bin/gscan2pdf:4776 #: bin/gscan2pdf:5213 lib/Gscan2pdf/Scanner/Dialog.pm:361 #: t/061_Scanner_Dialog.t:37 msgid "page-number-start" msgstr "" #: bin/gscan2pdf:4663 lib/Gscan2pdf/Scanner/Dialog.pm:210 msgid "Device" msgstr "" #: bin/gscan2pdf:4671 lib/Gscan2pdf/Scanner/Dialog.pm:213 msgid "Rescan for devices" msgstr "" #: bin/gscan2pdf:4694 lib/Gscan2pdf/Scanner/Dialog.pm:237 msgid "Sets the device to be used for the scan" msgstr "" #: bin/gscan2pdf:4780 lib/Gscan2pdf/Scanner/Dialog.pm:300 #: t/061_Scanner_Dialog.t:35 msgid "num-pages" msgstr "" #: bin/gscan2pdf:4821 msgid "Scanning" msgstr "" #: bin/gscan2pdf:4974 msgid "Unable to load image" msgstr "" #: bin/gscan2pdf:5004 msgid "print-pages" msgstr "" #: bin/gscan2pdf:5008 msgid "page-ranges" msgstr "" #: bin/gscan2pdf:5405 msgid "Patches gratefully received from:" msgstr "" #: bin/gscan2pdf:5407 msgid "To aid the scan-to-PDF process" msgstr "" #: bin/gscan2pdf:5408 msgid "Copyright 2006--2012 Jeffrey Ratcliffe" msgstr "" #: bin/gscan2pdf:5492 bin/gscan2pdf:6028 msgid "The options cache seems to be empty. Reload device-dependent options?" msgstr "" #: bin/gscan2pdf:5519 bin/gscan2pdf:6054 msgid "Updating options" msgstr "" #: bin/gscan2pdf:5571 msgid "Paper size" msgstr "" #: bin/gscan2pdf:5572 bin/gscan2pdf:5672 bin/gscan2pdf:5840 bin/gscan2pdf:6769 msgid "Width" msgstr "" #: bin/gscan2pdf:5573 bin/gscan2pdf:5678 bin/gscan2pdf:5841 bin/gscan2pdf:6780 msgid "Height" msgstr "" #: bin/gscan2pdf:5574 bin/gscan2pdf:5684 bin/gscan2pdf:5842 #: lib/Gscan2pdf/Unpaper.pm:124 lib/Gscan2pdf/Unpaper.pm:152 msgid "Left" msgstr "שמאלה" #: bin/gscan2pdf:5575 bin/gscan2pdf:5690 bin/gscan2pdf:5843 #: lib/Gscan2pdf/Unpaper.pm:129 lib/Gscan2pdf/Unpaper.pm:157 msgid "Top" msgstr "למעלה" #: bin/gscan2pdf:5589 bin/gscan2pdf:5703 bin/gscan2pdf:6232 msgid "Manual" msgstr "" #: bin/gscan2pdf:5590 bin/gscan2pdf:5700 msgid "Edit" msgstr "" #: bin/gscan2pdf:5591 msgid "Selects or edits the paper size" msgstr "" #: bin/gscan2pdf:5673 msgid "Width of scan area" msgstr "" #: bin/gscan2pdf:5679 msgid "Height of scan area" msgstr "" #: bin/gscan2pdf:5685 msgid "Top-left x position of scan area" msgstr "" #: bin/gscan2pdf:5691 msgid "Top-left y position of scan area" msgstr "" #: bin/gscan2pdf:5822 msgid "Edit paper size" msgstr "" #: bin/gscan2pdf:5839 msgid "Name" msgstr "" #: bin/gscan2pdf:5893 msgid "Cannot delete all paper sizes" msgstr "" #: bin/gscan2pdf:5955 msgid "" "The following paper sizes are too big to be scanned by the selected device:" msgstr "" #: bin/gscan2pdf:6419 bin/gscan2pdf:6605 msgid "%" msgstr "" #: bin/gscan2pdf:6492 msgid "Negate" msgstr "" #: bin/gscan2pdf:6562 msgid "Unsharp mask" msgstr "" #: bin/gscan2pdf:6573 msgid "Radius" msgstr "" #: bin/gscan2pdf:6575 bin/gscan2pdf:6592 bin/gscan2pdf:6747 bin/gscan2pdf:6759 #: bin/gscan2pdf:6771 bin/gscan2pdf:6782 msgid "pixels" msgstr "" #: bin/gscan2pdf:6582 msgid "" "The radius of the Gaussian, in pixels, not counting the center pixel (0 = " "automatic)." msgstr "" #: bin/gscan2pdf:6590 msgid "Sigma" msgstr "" #: bin/gscan2pdf:6597 msgid "The standard deviation of the Gaussian." msgstr "" #: bin/gscan2pdf:6603 msgid "Amount" msgstr "" #: bin/gscan2pdf:6612 msgid "" "The percentage of the difference between the original and the blur image " "that is added back into the original." msgstr "" #: bin/gscan2pdf:6627 msgid "" "The threshold, as a fraction of QuantumRange, needed to apply the difference " "amount." msgstr "" #: bin/gscan2pdf:6733 msgid "Crop" msgstr "" #: bin/gscan2pdf:6745 msgid "x" msgstr "" #: bin/gscan2pdf:6751 msgid "The x-position of the left hand edge of the crop." msgstr "" #: bin/gscan2pdf:6757 msgid "y" msgstr "" #: bin/gscan2pdf:6763 msgid "The y-position of the top edge of the crop." msgstr "" #: bin/gscan2pdf:6774 msgid "The width of the crop." msgstr "" #: bin/gscan2pdf:6785 msgid "The height of the crop." msgstr "" #: bin/gscan2pdf:6906 msgid "label" msgstr "" #: bin/gscan2pdf:7007 msgid "unpaper" msgstr "" #: bin/gscan2pdf:7216 bin/gscan2pdf:7244 msgid "Language to recognise" msgstr "" #: bin/gscan2pdf:7227 msgid "English" msgstr "" #: bin/gscan2pdf:7270 msgid "OCR" msgstr "" #: bin/gscan2pdf:7279 msgid "OCR Engine" msgstr "" #: bin/gscan2pdf:7323 msgid "Start OCR" msgstr "" #: bin/gscan2pdf:7339 msgid "No page selected" msgstr "" #: bin/gscan2pdf:7374 msgid "" "Some pages have not been saved.\n" "Do you really want to quit?" msgstr "" #: bin/gscan2pdf:7432 #, perl-format msgid "" "The help viewer requires module Gtk2::Ex::PodViewer\n" "Alternatively, try: %s %s\n" "\n" msgstr "" #: bin/gscan2pdf:7698 msgid "This operation cannot be undone. Are you sure?" msgstr "" #: bin/gscan2pdf:7753 msgid "Preferences" msgstr "" #: bin/gscan2pdf:7762 msgid "Frontend" msgstr "" #: bin/gscan2pdf:7766 msgid "libsane-perl" msgstr "" #: bin/gscan2pdf:7767 msgid "Scan using the perl bindings for SANE." msgstr "" #: bin/gscan2pdf:7770 msgid "scanimage" msgstr "" #: bin/gscan2pdf:7771 msgid "Scan using the scanimage frontend." msgstr "" #: bin/gscan2pdf:7775 msgid "scanimage-perl" msgstr "" #: bin/gscan2pdf:7776 msgid "Scan using the scanimage-perl frontend." msgstr "" #: bin/gscan2pdf:7779 msgid "scanadf-perl" msgstr "" #: bin/gscan2pdf:7780 msgid "Scan using the scanadf-perl frontend." msgstr "" #: bin/gscan2pdf:7785 msgid "scanadf" msgstr "" #: bin/gscan2pdf:7786 msgid "Scan using the scanadf frontend." msgstr "" #: bin/gscan2pdf:7791 msgid "Cycle SANE handle after scan" msgstr "" #: bin/gscan2pdf:7814 msgid "Default filename for PDFs" msgstr "" #: bin/gscan2pdf:7820 msgid "" "%a\t author\n" "%t\t title\n" "%y\t document's year\n" "%Y\t today's year\n" "%m\t document's month\n" "%M\t today's month\n" "%d\t document's day\n" "%D\t today's day" msgstr "" #: bin/gscan2pdf:7830 msgid "Scan command prefix" msgstr "" #: bin/gscan2pdf:7839 msgid "Restore window settings on startup" msgstr "" #: bin/gscan2pdf:7845 msgid "Cache device-dependent options" msgstr "" #: bin/gscan2pdf:7851 msgid "Clear device-dependent options cache" msgstr "" #: bin/gscan2pdf:7862 msgid "Temporary directory" msgstr "" #: bin/gscan2pdf:7867 msgid "Browse" msgstr "" #: bin/gscan2pdf:7871 msgid "Select temporary directory" msgstr "" #: bin/gscan2pdf:7888 msgid "Blank threshold" msgstr "" #: bin/gscan2pdf:7893 msgid "Threshold used for selecting blank pages" msgstr "" #: bin/gscan2pdf:7899 msgid "Dark threshold" msgstr "" #: bin/gscan2pdf:7904 msgid "Threshold used for selecting dark pages" msgstr "" #: bin/gscan2pdf:7910 msgid "OCR output" msgstr "" #: bin/gscan2pdf:7915 msgid "Replace" msgstr "" #: bin/gscan2pdf:7917 msgid "" "Replace the contents of the text buffer with that from the OCR output." msgstr "" #: bin/gscan2pdf:7920 msgid "Prepend" msgstr "" #: bin/gscan2pdf:7921 msgid "Prepend the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7924 msgid "Append" msgstr "" #: bin/gscan2pdf:7925 msgid "Append the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7933 msgid "User-defined tools" msgstr "" #: bin/gscan2pdf:7954 msgid "View files on saving" msgstr "" #: bin/gscan2pdf:8000 msgid "" "You will have to restart gscanp2df for changes to the temporary directory to " "take effect." msgstr "" #: bin/gscan2pdf:8092 msgid "" "Use %i and %o for the input and output filenames respectively, or a single " "%i if the image is to be modified in-place.\n" "\n" "The other variable available is:\n" "\n" "%r resolution" msgstr "" #: bin/gscan2pdf:8119 msgid "Properties" msgstr "" #: lib/Gscan2pdf/Dialog.pm:63 lib/Gscan2pdf/Dialog.pm:79 t/05_Dialog.t:25 msgid "hide-on-delete" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:78 lib/Gscan2pdf/Dialog/Renumber.pm:162 msgid "Renumber" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:98 lib/Gscan2pdf/Dialog/Renumber.pm:207 #: lib/Gscan2pdf/Dialog/Renumber.pm:244 msgid "range" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:102 msgid "Page numbering" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:105 lib/Gscan2pdf/Scanner/Dialog.pm:254 msgid "border_width" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:126 lib/Gscan2pdf/Dialog/Renumber.pm:192 #: lib/Gscan2pdf/Dialog/Renumber.pm:242 t/07_Dialog_Renumber.t:33 #: t/07_Dialog_Renumber.t:45 t/07_Dialog_Renumber.t:59 #: t/07_Dialog_Renumber.t:66 msgid "start" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:147 lib/Gscan2pdf/Dialog/Renumber.pm:193 #: lib/Gscan2pdf/Dialog/Renumber.pm:243 t/07_Dialog_Renumber.t:34 #: t/07_Dialog_Renumber.t:46 t/07_Dialog_Renumber.t:60 #: t/07_Dialog_Renumber.t:67 msgid "increment" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:205 lib/Gscan2pdf/Dialog/Renumber.pm:241 msgid "document" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:295 msgid "" "The current settings would result in duplicate page numbers. Please select " "new start and increment values." msgstr "" #: lib/Gscan2pdf/Document.pm:83 msgid "Thumbnails" msgstr "" #: lib/Gscan2pdf/Document.pm:1502 msgid "Unknown DjVu file structure. Please contact the author." msgstr "" #: lib/Gscan2pdf/Document.pm:1558 #, perl-format msgid "%s is not a recognised image type" msgstr "" #: lib/Gscan2pdf/Document.pm:1580 lib/Gscan2pdf/Document.pm:1637 #, perl-format msgid "Importing page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:1613 msgid "Error extracting images from PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1692 msgid "Setting up PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1703 #, perl-format msgid "Saving page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:1814 lib/Gscan2pdf/Document.pm:2136 #, perl-format msgid "Error compressing image: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1919 #, perl-format msgid "Error creating PDF image object: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1930 #, perl-format msgid "Error embedding file image in %s format to PDF: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1939 msgid "Closing PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1955 #, perl-format msgid "Writing page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:2006 msgid "Error writing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2025 lib/Gscan2pdf/Document.pm:2227 #, perl-format msgid "Can't open file: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:2050 msgid "Error adding text layer to DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2056 msgid "Closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2063 msgid "Error closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2078 #, perl-format msgid "Converting image %i of %i to TIFF" msgstr "" #: lib/Gscan2pdf/Document.pm:2105 msgid "Error writing TIFF" msgstr "" #: lib/Gscan2pdf/Document.pm:2121 msgid "Concatenating TIFFs" msgstr "" #: lib/Gscan2pdf/Document.pm:2140 msgid "Converting to PS" msgstr "" #: lib/Gscan2pdf/Document.pm:2200 lib/Gscan2pdf/Document.pm:2215 msgid "Error saving image" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:158 #, perl-format msgid "Scanning %i pages..." msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:163 #, perl-format msgid "Scanning page %i..." msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:188 lib/Gscan2pdf/Frontend/CLI.pm:296 msgid "Scanner warming up" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:195 msgid "Document feeder out of documents" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:212 lib/Gscan2pdf/Frontend/CLI.pm:325 msgid "Device busy" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:218 lib/Gscan2pdf/Frontend/CLI.pm:330 msgid "Operation cancelled" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:223 lib/Gscan2pdf/Frontend/CLI.pm:336 msgid "Unknown message: " msgstr "" #: lib/Gscan2pdf/Page.pm:68 lib/Gscan2pdf/Page.pm:73 #, perl-format msgid "Error importing image %s: %s" msgstr "" #: lib/Gscan2pdf/PageRange.pm:33 msgid "Selected" msgstr "" #: lib/Gscan2pdf/PageRange.pm:58 msgid "active" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:218 t/061_Scanner_Dialog.t:33 #: t/061_Scanner_Dialog.t:59 msgid "device-list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:496 t/061_Scanner_Dialog.t:139 #: t/061_Scanner_Dialog.t:174 t/062_Scanner_Dialog.t:50 #: t/062_Scanner_Dialog.t:75 msgid "current-scan-options" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:567 msgid "logger" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:650 t/05_Dialog.t:24 msgid "transient-for" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:716 msgid "device_list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:749 t/061_Scanner_Dialog.t:32 msgid "device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:751 msgid "Opening device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:760 msgid "Retrieving options" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:41 msgid "Layout" msgstr "עימוד" #: lib/Gscan2pdf/Unpaper.pm:44 msgid "Single" msgstr "יחיד" #: lib/Gscan2pdf/Unpaper.pm:46 msgid "One page per sheet, oriented upwards without rotation." msgstr "דף אחד לגליון, מכוון מעלה ללא סיבוב" #: lib/Gscan2pdf/Unpaper.pm:49 msgid "Double" msgstr "כפול" #: lib/Gscan2pdf/Unpaper.pm:51 msgid "" "Two pages per sheet, landscape orientation (one page on the left half, one " "page on the right half)." msgstr "" "שני דפים לגליון, הגליון לרוחב (דף אחד בחצי הימני, דף שני בחצי השמאלי)" #: lib/Gscan2pdf/Unpaper.pm:59 msgid "# Output pages" msgstr "מספר עמודי פלט" #: lib/Gscan2pdf/Unpaper.pm:60 msgid "Number of pages to output." msgstr "מספר העמודים לייצר" #: lib/Gscan2pdf/Unpaper.pm:68 msgid "No deskew" msgstr "ללא deskew" #: lib/Gscan2pdf/Unpaper.pm:69 msgid "Disable deskewing." msgstr "ביטול deskewing" #: lib/Gscan2pdf/Unpaper.pm:74 msgid "No mask scan" msgstr "ללא סריקת מסכה" #: lib/Gscan2pdf/Unpaper.pm:75 msgid "Disable mask detection." msgstr "בטל את זיהוי המסכה" #: lib/Gscan2pdf/Unpaper.pm:80 msgid "No black filter" msgstr "ללא פילטר שחור" #: lib/Gscan2pdf/Unpaper.pm:81 msgid "Disable black area scan." msgstr "בטל סריקת איזור שחור" #: lib/Gscan2pdf/Unpaper.pm:86 msgid "No gray filter" msgstr "ללא פילטר אפור" #: lib/Gscan2pdf/Unpaper.pm:87 msgid "Disable gray area scan." msgstr "בטל סריקת איזור אפור" #: lib/Gscan2pdf/Unpaper.pm:92 msgid "No noise filter" msgstr "ללא פילטר רעש" #: lib/Gscan2pdf/Unpaper.pm:93 msgid "Disable noise filter." msgstr "בטל פילטר רעש" #: lib/Gscan2pdf/Unpaper.pm:98 msgid "No blur filter" msgstr "ללא פילטר טשטוש" #: lib/Gscan2pdf/Unpaper.pm:99 msgid "Disable blur filter." msgstr "בטל פילטר טשטוש (blur)" #: lib/Gscan2pdf/Unpaper.pm:104 msgid "No border scan" msgstr "ללא סריקת מסגרת" #: lib/Gscan2pdf/Unpaper.pm:105 msgid "Disable border scanning." msgstr "בטל סריקת מסגרת" #: lib/Gscan2pdf/Unpaper.pm:110 msgid "No border align" msgstr "ללא יישור מסגרת" #: lib/Gscan2pdf/Unpaper.pm:112 msgid "Disable aligning of the area detected by border scanning." msgstr "בטל את יישור האיזור שזוהה בסריקת המסגרת" #: lib/Gscan2pdf/Unpaper.pm:117 msgid "Deskew to edge" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:119 msgid "" "Edges from which to scan for rotation. Each edge of a mask can be used to " "detect the mask's rotation. If multiple edges are specified, the average " "value will be used, unless the statistical deviation exceeds --deskew-scan-" "deviation." msgstr "" "קצוות על פיהם יתבצע סיבוב. כל קצה במסכה יוכל לעזור בזיהוי הסיבוב. אם נבחרו " "מספר קצוות הממוצע ילקח, אלא אם סטיית התקן עוברת את הערך שצוין על ידי האפשרות " "--deskew-scan-deviation." #: lib/Gscan2pdf/Unpaper.pm:125 msgid "Use 'left' for scanning from the left edge." msgstr "בחר 'שמאלה' לסריקה מן הקצה השמאלי" #: lib/Gscan2pdf/Unpaper.pm:130 msgid "Use 'top' for scanning from the top edge." msgstr "בחר 'למעלה' לסריקה מן הקצה העליון" #: lib/Gscan2pdf/Unpaper.pm:134 lib/Gscan2pdf/Unpaper.pm:162 msgid "Right" msgstr "ימינה" #: lib/Gscan2pdf/Unpaper.pm:135 msgid "Use 'right' for scanning from the right edge." msgstr "בחר 'ימינה' לסריקה מן הקצה הימני" #: lib/Gscan2pdf/Unpaper.pm:139 lib/Gscan2pdf/Unpaper.pm:167 msgid "Bottom" msgstr "למטה" #: lib/Gscan2pdf/Unpaper.pm:140 msgid "Use 'bottom' for scanning from the bottom." msgstr "בחר 'למטה' לסריקה מן הקצה התחתון" #: lib/Gscan2pdf/Unpaper.pm:147 msgid "Align to edge" msgstr "ישר לקצה" #: lib/Gscan2pdf/Unpaper.pm:148 msgid "Edge to which to align the page." msgstr "קצה על פיו ייושר העמוד" #: lib/Gscan2pdf/Unpaper.pm:153 msgid "Use 'left' to align to the left edge." msgstr "בחר 'שמאלה' לישור לקצה השמאלי" #: lib/Gscan2pdf/Unpaper.pm:158 msgid "Use 'top' to align to the top edge." msgstr "בחר 'למעלה' לישור לקצה העליון" #: lib/Gscan2pdf/Unpaper.pm:163 msgid "Use 'right' to align to the right edge." msgstr "בחר 'ימינה' לישור לקצה הימני" #: lib/Gscan2pdf/Unpaper.pm:168 msgid "Use 'bottom' to align to the bottom." msgstr "בחר 'למטה' לישור לקצה התחתון" #: lib/Gscan2pdf/Unpaper.pm:174 msgid "Border margin" msgstr "שולי גבול" #: lib/Gscan2pdf/Unpaper.pm:178 msgid "Vertical margin" msgstr "שוליים אנכיים" #: lib/Gscan2pdf/Unpaper.pm:180 msgid "" "Vertical distance to keep from the sheet edge when aligning a border area." msgstr "מרחק בטחון אנכי מקצה הדף בעת סיבוב שטח הגבול" #: lib/Gscan2pdf/Unpaper.pm:189 msgid "Horizontal margin" msgstr "שוליים אופקיים" #: lib/Gscan2pdf/Unpaper.pm:191 msgid "" "Horizontal distance to keep from the sheet edge when aligning a border area." msgstr "מרחק בטחון אופקי מקצה הדף בעת סיבוב שטח הגבול" #: lib/Gscan2pdf/Unpaper.pm:202 msgid "White threshold" msgstr "רמת סף לבן" #: lib/Gscan2pdf/Unpaper.pm:204 msgid "Brightness ratio above which a pixel is considered white." msgstr "מעל יחס בהירות זה הפיקסל יחשב לבן" #: lib/Gscan2pdf/Unpaper.pm:212 msgid "Black threshold" msgstr "רמת סף שחור" #: lib/Gscan2pdf/Unpaper.pm:214 msgid "" "Brightness ratio below which a pixel is considered black (non-gray). This is " "used by the gray-filter. This value is also used when converting a grayscale " "image to black-and-white mode." msgstr "" "מתחת יחס בהירות זה הפיקסל יחשב שחור (לא-אפור). פרמטר זה בשימוש על ידי פילטר-" "אפור, וכאשר מתבצעת המרה בין תמונת גווני-אפור למצב שחור-לבן." #: lib/Gscan2pdf/Unpaper.pm:250 msgid "Deskew" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:280 msgid "Border" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:337 msgid "Filters" msgstr "" #: t/05_Dialog.t:23 msgid "title" msgstr "" #: t/05_Dialog.t:26 t/05_Dialog.t:31 t/05_Dialog.t:32 t/05_Dialog.t:38 #: t/05_Dialog.t:39 msgid "border-width" msgstr "" #: t/061_Scanner_Dialog.t:34 msgid "dir" msgstr "" #: t/061_Scanner_Dialog.t:36 msgid "max-pages" msgstr "" #: t/061_Scanner_Dialog.t:39 msgid "side-to-scan" msgstr "" #: t/061_Scanner_Dialog.t:40 t/061_Scanner_Dialog.t:185 msgid "available-scan-options" msgstr "" #: t/061_Scanner_Dialog.t:171 t/062_Scanner_Dialog.t:73 msgid "profile" msgstr "" gscan2pdf-1.2.3/po/gscan2pdf-zh_CN.po0000644000175000017500000012560212243440507015625 0ustar jeffjeff# Simplified Chinese translation for gscan2pdf # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the gscan2pdf package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: gscan2pdf\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-10-25 08:12+0200\n" "PO-Revision-Date: 2012-05-21 06:46+0000\n" "Last-Translator: Wang Dianjin \n" "Language-Team: Simplified Chinese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-19 09:22+0000\n" "X-Generator: Launchpad (build 16831)\n" #: bin/gscan2pdf:157 msgid "Error displaying help" msgstr "" #: bin/gscan2pdf:201 msgid "" "Error: unable to load settings.\n" "Backing up settings\n" "Reverting to defaults" msgstr "" "错误:无法载入设置。\n" "备份设置\n" "还原默认值" #: bin/gscan2pdf:244 msgid "A4" msgstr "A4" #: bin/gscan2pdf:250 msgid "US Letter" msgstr "美式信纸" #: bin/gscan2pdf:256 msgid "US Legal" msgstr "美国国标" #: bin/gscan2pdf:323 bin/gscan2pdf:344 #, perl-format msgid "Cannot read file: %s" msgstr "无法读取文件:%s" #: bin/gscan2pdf:451 msgid "_File" msgstr "文件(_F)" #: bin/gscan2pdf:454 msgid "_New" msgstr "新建(_N)" #: bin/gscan2pdf:455 msgid "Clears all pages" msgstr "清理所有页面" #: bin/gscan2pdf:459 msgid "_Open" msgstr "打开(_O)" #: bin/gscan2pdf:460 msgid "Open image file(s)" msgstr "打开图像文件" #: bin/gscan2pdf:465 msgid "S_can" msgstr "扫描(_C)" #: bin/gscan2pdf:467 msgid "Scan document" msgstr "扫描文档" #: bin/gscan2pdf:471 bin/gscan2pdf:472 bin/gscan2pdf:2582 msgid "Save" msgstr "保存" #: bin/gscan2pdf:476 msgid "_Email as PDF" msgstr "保存为PDF文件并发送到电子邮件(_E)" #: bin/gscan2pdf:477 msgid "Attach as PDF to a new email" msgstr "添加PDF文件作为新的电子邮件的附件" #: bin/gscan2pdf:480 msgid "_Print" msgstr "打印(_P)" #: bin/gscan2pdf:481 msgid "Print" msgstr "打印" #: bin/gscan2pdf:485 msgid "_Compress temporary files" msgstr "压缩临时文件(_C)" #: bin/gscan2pdf:486 msgid "Compress temporary files" msgstr "压缩临时文件" #: bin/gscan2pdf:490 msgid "_Quit" msgstr "退出(_Q)" #: bin/gscan2pdf:491 msgid "Quit" msgstr "退出" #: bin/gscan2pdf:495 msgid "_Edit" msgstr "编辑(_E)" #: bin/gscan2pdf:497 msgid "_Undo" msgstr "撤消(_U)" #: bin/gscan2pdf:497 msgid "Undo" msgstr "撤销" #: bin/gscan2pdf:501 msgid "_Redo" msgstr "重做(_R)" #: bin/gscan2pdf:502 msgid "Redo" msgstr "重做" #: bin/gscan2pdf:506 msgid "Cu_t" msgstr "剪切(_T)" #: bin/gscan2pdf:507 msgid "Cut selection" msgstr "剪切选中内容" #: bin/gscan2pdf:511 msgid "_Copy" msgstr "复制(_C)" #: bin/gscan2pdf:512 msgid "Copy selection" msgstr "复制选中内容" #: bin/gscan2pdf:516 msgid "_Paste" msgstr "粘贴(_P)" #: bin/gscan2pdf:517 msgid "Paste selection" msgstr "粘贴选中内容" #: bin/gscan2pdf:521 msgid "_Delete" msgstr "删除(_D)" #: bin/gscan2pdf:522 msgid "Delete selected pages" msgstr "删除选中的页面" #: bin/gscan2pdf:526 msgid "_Renumber" msgstr "重新编号(_R)" #: bin/gscan2pdf:527 msgid "Renumber pages" msgstr "页面重新编号" #: bin/gscan2pdf:529 bin/gscan2pdf:679 msgid "_Select" msgstr "选择(_S)" #: bin/gscan2pdf:532 msgid "_All" msgstr "全部(_A)" #: bin/gscan2pdf:533 msgid "Select all pages" msgstr "选择全部页面" #: bin/gscan2pdf:536 msgid "_Odd" msgstr "单数(_O)" #: bin/gscan2pdf:537 msgid "Select all odd-numbered pages" msgstr "选择全部单数页" #: bin/gscan2pdf:541 msgid "_Even" msgstr "双数(_E)" #: bin/gscan2pdf:542 msgid "Select all evenly-numbered pages" msgstr "选择全部双数页" #: bin/gscan2pdf:547 msgid "_Blank" msgstr "清空(_B)" #: bin/gscan2pdf:548 msgid "Select pages with low standard deviation" msgstr "选择偏离较低的页面" #: bin/gscan2pdf:552 msgid "_Dark" msgstr "" #: bin/gscan2pdf:553 msgid "Select dark pages" msgstr "" #: bin/gscan2pdf:558 msgid "_Modified" msgstr "" #: bin/gscan2pdf:560 msgid "Select modified pages since last OCR" msgstr "" #: bin/gscan2pdf:565 msgid "_No OCR" msgstr "非 OCR(_N)" #: bin/gscan2pdf:566 msgid "Select pages with no OCR output" msgstr "" #: bin/gscan2pdf:570 msgid "_Clear OCR" msgstr "清除 OCR(_C)" #: bin/gscan2pdf:571 msgid "Clear OCR output from selected pages" msgstr "从已选页面中清除 OCR" #: bin/gscan2pdf:575 msgid "Propert_ies" msgstr "属性(_I)" #: bin/gscan2pdf:576 msgid "Edit image properties" msgstr "编辑图像属性" #: bin/gscan2pdf:580 msgid "Prefere_nces" msgstr "首选项(_N)" #: bin/gscan2pdf:581 msgid "Edit preferences" msgstr "编辑首选项" #: bin/gscan2pdf:585 msgid "_View" msgstr "查看(_V)" #: bin/gscan2pdf:588 msgid "Zoom _100%" msgstr "缩放 _100%" #: bin/gscan2pdf:589 msgid "Zoom to 100%" msgstr "缩放到 100%" #: bin/gscan2pdf:593 msgid "Zoom to _fit" msgstr "最佳比例(_F)" #: bin/gscan2pdf:594 msgid "Zoom to fit" msgstr "最佳比例" #: bin/gscan2pdf:598 msgid "Zoom _in" msgstr "放大(_I)" #: bin/gscan2pdf:599 msgid "Zoom in" msgstr "放大" #: bin/gscan2pdf:603 msgid "Zoom _out" msgstr "缩小(_O)" #: bin/gscan2pdf:604 msgid "Zoom out" msgstr "缩小" #: bin/gscan2pdf:609 bin/gscan2pdf:611 msgid "Rotate 90 clockwise" msgstr "顺时针旋转 90 度" #: bin/gscan2pdf:617 bin/gscan2pdf:619 msgid "Rotate 180" msgstr "旋转 180 度" #: bin/gscan2pdf:625 bin/gscan2pdf:627 msgid "Rotate 90 anticlockwise" msgstr "逆时针旋转 90 度" #: bin/gscan2pdf:632 msgid "_Tools" msgstr "工具(_T)" #: bin/gscan2pdf:634 msgid "_Threshold" msgstr "阈值(_T)" #: bin/gscan2pdf:635 msgid "Change each pixel above this threshold to black" msgstr "将大于此阈值的像素置成黑色" #: bin/gscan2pdf:639 msgid "_Negate" msgstr "反转(_N)" #: bin/gscan2pdf:640 msgid "Converts black to white and vice versa" msgstr "把黑色变成白色,并 vice versa" #: bin/gscan2pdf:644 msgid "_Unsharp Mask" msgstr "" #: bin/gscan2pdf:645 msgid "Apply an unsharp mask" msgstr "" #: bin/gscan2pdf:648 msgid "_Crop" msgstr "裁剪(_C)" #: bin/gscan2pdf:649 msgid "Crop pages" msgstr "裁剪页面" #: bin/gscan2pdf:653 msgid "_Clean up" msgstr "清理(_C)" #: bin/gscan2pdf:654 bin/gscan2pdf:4085 msgid "Clean up scanned images with unpaper" msgstr "" #: bin/gscan2pdf:657 msgid "_OCR" msgstr "光学字符识别(_OCR)" #: bin/gscan2pdf:658 msgid "Optical Character Recognition" msgstr "光学字符识别(OCR)" #: bin/gscan2pdf:660 msgid "U_ser-defined" msgstr "用户自定义(_S)" #: bin/gscan2pdf:663 bin/gscan2pdf:665 msgid "_Help" msgstr "帮助(_H)" #: bin/gscan2pdf:666 msgid "Help" msgstr "帮助" #: bin/gscan2pdf:668 msgid "_About" msgstr "关于(_A)" #: bin/gscan2pdf:674 msgid "_Drag" msgstr "拖动(_D)" #: bin/gscan2pdf:675 msgid "Use the hand tool" msgstr "使用手工工具" #: bin/gscan2pdf:680 msgid "Use the rectangular selection tool" msgstr "使用矩形选择工具" #: bin/gscan2pdf:684 msgid "_Paint" msgstr "绘图(_P)" #: bin/gscan2pdf:685 msgid "Use the painter tool" msgstr "使用画笔工具" #: bin/gscan2pdf:965 lib/Gscan2pdf/Document.pm:2594 #: lib/Gscan2pdf/Document.pm:2595 msgid "Error copying page" msgstr "复制页面出错" #: bin/gscan2pdf:1082 msgid "Image" msgstr "图像" #: bin/gscan2pdf:1117 msgid "OCR Output" msgstr "OCR 输出" #: bin/gscan2pdf:1174 msgid "Mode" msgstr "模式" #: bin/gscan2pdf:1176 msgid "Lineart" msgstr "艺术线条" #: bin/gscan2pdf:1177 msgid "Grayscale" msgstr "灰度" #: bin/gscan2pdf:1178 msgid "Gray" msgstr "灰色" #: bin/gscan2pdf:1179 msgid "Color" msgstr "颜色" #: bin/gscan2pdf:1180 msgid "Black & White" msgstr "黑白" #: bin/gscan2pdf:1181 msgid "True Gray" msgstr "真彩灰度" #: bin/gscan2pdf:1182 msgid "Binary" msgstr "二进制" #: bin/gscan2pdf:1183 bin/gscan2pdf:1242 bin/gscan2pdf:1243 msgid "Auto" msgstr "自动" #: bin/gscan2pdf:1184 msgid "Halftone" msgstr "半色调" #: bin/gscan2pdf:1185 msgid "24bit Color" msgstr "24 位真彩色" #: bin/gscan2pdf:1189 bin/gscan2pdf:2547 bin/gscan2pdf:2644 msgid "Compression" msgstr "压缩" #: bin/gscan2pdf:1191 bin/gscan2pdf:2539 bin/gscan2pdf:2636 msgid "None" msgstr "无" #: bin/gscan2pdf:1192 bin/gscan2pdf:2537 bin/gscan2pdf:2601 bin/gscan2pdf:2622 msgid "JPEG" msgstr "JPEG" #: bin/gscan2pdf:1195 bin/gscan2pdf:8127 msgid "Resolution" msgstr "分辨率" #: bin/gscan2pdf:1196 msgid "Brightness" msgstr "亮度" #: bin/gscan2pdf:1197 msgid "Gain" msgstr "增益" #: bin/gscan2pdf:1198 msgid "Contrast" msgstr "对比度" #: bin/gscan2pdf:1199 bin/gscan2pdf:6406 bin/gscan2pdf:6417 bin/gscan2pdf:6620 msgid "Threshold" msgstr "阈值" #: bin/gscan2pdf:1201 msgid "Speed" msgstr "速度" #: bin/gscan2pdf:1203 bin/gscan2pdf:1210 bin/gscan2pdf:1217 bin/gscan2pdf:1224 #: bin/gscan2pdf:1231 msgid "Yes" msgstr "是" #: bin/gscan2pdf:1204 bin/gscan2pdf:1211 bin/gscan2pdf:1218 bin/gscan2pdf:1225 #: bin/gscan2pdf:1232 msgid "No" msgstr "否" #: bin/gscan2pdf:1208 msgid "Batch scan" msgstr "批量扫描" #: bin/gscan2pdf:1215 bin/gscan2pdf:1222 msgid "Wait for button" msgstr "等待按钮" #: bin/gscan2pdf:1229 msgid "Cache calibration" msgstr "缓存校正" #: bin/gscan2pdf:1236 msgid "Source" msgstr "来源" #: bin/gscan2pdf:1238 msgid "Normal" msgstr "常规" #: bin/gscan2pdf:1239 msgid "ADF" msgstr "ADF(自动进纸器)" #: bin/gscan2pdf:1240 msgid "Automatic Document Feeder" msgstr "自动进纸器" #: bin/gscan2pdf:1241 msgid "XPA" msgstr "XPA" #: bin/gscan2pdf:1244 msgid "Flatbed" msgstr "平台" #: bin/gscan2pdf:1245 msgid "Transparency Adapter" msgstr "透明度适配器" #: bin/gscan2pdf:1246 msgid "Transparency Unit" msgstr "透明度单位" #: bin/gscan2pdf:1249 bin/gscan2pdf:1251 msgid "Page Width" msgstr "页宽" #: bin/gscan2pdf:1250 bin/gscan2pdf:1252 msgid "Page Height" msgstr "页高" #: bin/gscan2pdf:1253 msgid "Top Overscan" msgstr "顶部过扫" #: bin/gscan2pdf:1254 msgid "Bottom Overscan" msgstr "底部过扫" #: bin/gscan2pdf:1256 bin/gscan2pdf:1263 msgid "ADF Mode" msgstr "自动进纸模式" #: bin/gscan2pdf:1258 bin/gscan2pdf:1265 msgid "Simplex" msgstr "单面" #: bin/gscan2pdf:1259 bin/gscan2pdf:1266 msgid "Duplex" msgstr "双面" #: bin/gscan2pdf:1301 bin/gscan2pdf:1306 msgid "Pick crashed session to restore" msgstr "选择要恢复的崩溃会话" #: bin/gscan2pdf:1308 bin/gscan2pdf:2609 msgid "Session" msgstr "会话" #: bin/gscan2pdf:1338 #, perl-format msgid "" "Warning: unable to use %s for temporary storage. Defaulting to %s instead." msgstr "警告:无法将 %s 用作临时存储。默认替换为 %s。" #: bin/gscan2pdf:1441 msgid "GOCR" msgstr "GOCR" #: bin/gscan2pdf:1441 msgid "Process image with GOCR." msgstr "使用 GOCR 处理图像。" #: bin/gscan2pdf:1445 msgid "Tesseract" msgstr "" #: bin/gscan2pdf:1446 msgid "Process image with Tesseract." msgstr "用 Tesseract 处理图像。" #: bin/gscan2pdf:1450 msgid "Ocropus" msgstr "" #: bin/gscan2pdf:1450 msgid "Process image with Ocropus." msgstr "" #: bin/gscan2pdf:1454 msgid "Cuneiform" msgstr "" #: bin/gscan2pdf:1455 msgid "Process image with Cuneiform." msgstr "" #: bin/gscan2pdf:1461 msgid "Save image and Save as PDF both require imagemagick\n" msgstr "保存图像/另存为PDF格式都需要 imagemagick\n" #: bin/gscan2pdf:1465 msgid "Save image requires libtiff\n" msgstr "保存图像需要 libtiff\n" #: bin/gscan2pdf:1469 msgid "Save as DjVu requires djvulibre-bin\n" msgstr "另存为 DjVu 需要 djvulibre-bin\n" #: bin/gscan2pdf:1473 msgid "Email as PDF requires xdg-email\n" msgstr "以电子邮件发送 PDF 需要 xdg-email\n" #: bin/gscan2pdf:1518 msgid "The rotating options and unpaper support require perlmagick\n" msgstr "旋转选项和 unpaper 支持需要 perlmagick\n" #: bin/gscan2pdf:1524 msgid "unpaper missing\n" msgstr "" #: bin/gscan2pdf:1534 msgid "OCR requires gocr, tesseract, ocropus, or cuneiform\n" msgstr "" #: bin/gscan2pdf:1539 msgid "Warning: missing packages" msgstr "警告:软件包不齐" #: bin/gscan2pdf:1544 msgid "Don't show this message again" msgstr "不再显示此信息" #: bin/gscan2pdf:1753 msgid "" "Some pages have not been saved.\n" "Do you really want to clear all pages?" msgstr "" "部分页面还没有保存。\n" "您真要清除所有页面吗?" #: bin/gscan2pdf:1828 bin/gscan2pdf:1858 #, perl-format msgid "Process %i of %i (%s)" msgstr "进程 %i/%i(%s)" #: bin/gscan2pdf:1867 #, perl-format msgid "Process %i of %i" msgstr "进程 %i/%i" #: bin/gscan2pdf:1895 msgid "Open image" msgstr "打开图像" #: bin/gscan2pdf:1903 bin/gscan2pdf:2797 bin/gscan2pdf:3113 msgid "Image files" msgstr "图像文件" #: bin/gscan2pdf:1940 msgid "Pages to extract" msgstr "要展开的页面" #: bin/gscan2pdf:1943 bin/gscan2pdf:2117 bin/gscan2pdf:2586 bin/gscan2pdf:3353 #: bin/gscan2pdf:3494 bin/gscan2pdf:4104 bin/gscan2pdf:4514 bin/gscan2pdf:5825 #: bin/gscan2pdf:6409 bin/gscan2pdf:6495 bin/gscan2pdf:6565 bin/gscan2pdf:6737 #: bin/gscan2pdf:7011 bin/gscan2pdf:7274 bin/gscan2pdf:7757 bin/gscan2pdf:8123 #: lib/Gscan2pdf/Dialog.pm:56 lib/Gscan2pdf/Dialog/Renumber.pm:80 #: lib/Gscan2pdf/Scanner/Dialog.pm:201 t/05_Dialog.t:28 msgid "vbox" msgstr "" #: bin/gscan2pdf:1946 msgid "First page to extract" msgstr "要展开的第一页" #: bin/gscan2pdf:1953 msgid "Last page to extract" msgstr "" #: bin/gscan2pdf:2042 lib/Gscan2pdf/Dialog/Renumber.pm:83 msgid "Page Range" msgstr "页面范围" #: bin/gscan2pdf:2092 msgid "Metadata" msgstr "元数据" #: bin/gscan2pdf:2101 msgid "Date" msgstr "日期" #: bin/gscan2pdf:2114 msgid "Select Date" msgstr "选择日期" #: bin/gscan2pdf:2136 msgid "Today" msgstr "今天" #: bin/gscan2pdf:2150 msgid "Year-Month-Day" msgstr "年 - 月 - 日" #: bin/gscan2pdf:2156 msgid "Document author" msgstr "文档作者" #: bin/gscan2pdf:2165 msgid "Title" msgstr "标题" #: bin/gscan2pdf:2174 msgid "Subject" msgstr "主题" #: bin/gscan2pdf:2183 msgid "Keywords" msgstr "关键字" #: bin/gscan2pdf:2245 msgid "Editing text" msgstr "编辑文本" #: bin/gscan2pdf:2252 bin/gscan2pdf:2258 bin/gscan2pdf:2332 msgid "text" msgstr "文本" #: bin/gscan2pdf:2352 msgid "PDF filename" msgstr "PDF 文件名" #: bin/gscan2pdf:2381 msgid "PDF files" msgstr "PDF 文件" #: bin/gscan2pdf:2405 bin/gscan2pdf:2823 bin/gscan2pdf:2880 bin/gscan2pdf:2976 #: bin/gscan2pdf:3035 bin/gscan2pdf:3087 bin/gscan2pdf:3275 #, perl-format msgid "File %s is read-only" msgstr "文件 %s 是只读的" #: bin/gscan2pdf:2482 msgid "JPEG Quality" msgstr "JPEG 质量" #: bin/gscan2pdf:2496 msgid "Downsample to" msgstr "" #: bin/gscan2pdf:2501 msgid "PPI" msgstr "PPI" #: bin/gscan2pdf:2520 msgid "Automatic" msgstr "自动" #: bin/gscan2pdf:2521 msgid "Let gscan2pdf which type of compression to use." msgstr "" #: bin/gscan2pdf:2524 bin/gscan2pdf:2616 msgid "LZW" msgstr "LZW" #: bin/gscan2pdf:2525 bin/gscan2pdf:2617 msgid "Compress output with Lempel-Ziv & Welch encoding." msgstr "使用 Lempel-Ziv 和 Welch 编码" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Zip" msgstr "邮政编码" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Compress output with deflate encoding." msgstr "" #: bin/gscan2pdf:2529 bin/gscan2pdf:2624 msgid "Packbits" msgstr "" #: bin/gscan2pdf:2530 bin/gscan2pdf:2625 msgid "Compress output with Packbits encoding." msgstr "" #: bin/gscan2pdf:2536 bin/gscan2pdf:2604 msgid "PNG" msgstr "PNG" #: bin/gscan2pdf:2536 msgid "Compress output with PNG encoding." msgstr "用 PNG 编码压缩输出。" #: bin/gscan2pdf:2537 bin/gscan2pdf:2622 msgid "Compress output with JPEG encoding." msgstr "用 JPEG 编码压缩输出。" #: bin/gscan2pdf:2540 bin/gscan2pdf:2637 msgid "Use no compression algorithm on output." msgstr "" #: bin/gscan2pdf:2594 msgid "Image type" msgstr "图像类型" #: bin/gscan2pdf:2598 msgid "PDF" msgstr "PDF" #: bin/gscan2pdf:2598 msgid "Portable Document Format" msgstr "便携式文档格式" #: bin/gscan2pdf:2599 msgid "GIF" msgstr "GIF" #: bin/gscan2pdf:2599 msgid "CompuServe graphics interchange format" msgstr "" #: bin/gscan2pdf:2602 msgid "Joint Photographic Experts Group JFIF format" msgstr "" #: bin/gscan2pdf:2604 msgid "Portable Network Graphics" msgstr "便携式网络图形(PNG)" #: bin/gscan2pdf:2605 msgid "PNM" msgstr "PNM" #: bin/gscan2pdf:2605 msgid "Portable anymap" msgstr "" #: bin/gscan2pdf:2606 msgid "PS" msgstr "PS" #: bin/gscan2pdf:2606 msgid "Postscript" msgstr "Postscript" #: bin/gscan2pdf:2607 msgid "TIFF" msgstr "TIFF" #: bin/gscan2pdf:2607 msgid "Tagged Image File Format" msgstr "标记图像文件格式(TIFF)" #: bin/gscan2pdf:2608 msgid "Text" msgstr "文字" #: bin/gscan2pdf:2608 msgid "Plain text" msgstr "普通文本" #: bin/gscan2pdf:2609 msgid "gscan2pdf session file" msgstr "gscan2pdf 会话文件" #: bin/gscan2pdf:2611 msgid "DjVu" msgstr "DjVu" #: bin/gscan2pdf:2611 msgid "Deja Vu" msgstr "" #: bin/gscan2pdf:2628 msgid "G3" msgstr "G3" #: bin/gscan2pdf:2629 msgid "Compress output with CCITT Group 3 encoding." msgstr "" #: bin/gscan2pdf:2632 msgid "G4" msgstr "G4" #: bin/gscan2pdf:2633 msgid "Compress output with CCITT Group 4 encoding." msgstr "" #: bin/gscan2pdf:2649 msgid "tiff" msgstr "tiff" #: bin/gscan2pdf:2681 msgid "Font for non-ASCII text" msgstr "非 ASCII 文本字体" #: bin/gscan2pdf:2790 msgid "TIFF filename" msgstr "TIFF 文件名" #: bin/gscan2pdf:2848 msgid "Text filename" msgstr "文本文件名" #: bin/gscan2pdf:2856 msgid "Text files" msgstr "文本文件" #: bin/gscan2pdf:2944 msgid "PS filename" msgstr "PS 文件名" #: bin/gscan2pdf:2951 msgid "Postscript files" msgstr "Postscript 文件" #: bin/gscan2pdf:3003 msgid "gscan2pdf session filename" msgstr "gscan2pdf 会话文件" #: bin/gscan2pdf:3010 msgid "gscan2pdf session files" msgstr "gscan2pdf 会话文件" #: bin/gscan2pdf:3093 #, perl-format msgid "" "File %s exists.\n" "Really overwrite?" msgstr "" "文件 %s 已存在。\n" "要覆盖文件吗?" #: bin/gscan2pdf:3106 msgid "Image filename" msgstr "图像文件名" #: bin/gscan2pdf:3245 msgid "DjVu filename" msgstr "DjVu 文件名" #: bin/gscan2pdf:3252 msgid "DjVu files" msgstr "DjVu 文件" #: bin/gscan2pdf:3349 msgid "Email as PDF" msgstr "发送 PDF 到电子邮件" #: bin/gscan2pdf:3454 msgid "Error creating email" msgstr "创建邮件时出错" #: bin/gscan2pdf:3490 bin/gscan2pdf:4313 msgid "Scan Document" msgstr "扫描文档" #: bin/gscan2pdf:3507 lib/Gscan2pdf/Scanner/Dialog.pm:248 msgid "Page Options" msgstr "页面选项" #: bin/gscan2pdf:3510 lib/Gscan2pdf/Scanner/Dialog.pm:251 msgid "# Pages" msgstr "# 页码" #: bin/gscan2pdf:3519 lib/Gscan2pdf/PageRange.pm:34 #: lib/Gscan2pdf/Scanner/Dialog.pm:261 msgid "All" msgstr "全部" #: bin/gscan2pdf:3520 lib/Gscan2pdf/Scanner/Dialog.pm:262 msgid "Scan all pages" msgstr "扫描全部页面" #: bin/gscan2pdf:3532 bin/gscan2pdf:3537 lib/Gscan2pdf/Scanner/Dialog.pm:274 #: lib/Gscan2pdf/Scanner/Dialog.pm:279 msgid "Set number of pages to scan" msgstr "设置要扫描的页码" #: bin/gscan2pdf:3550 lib/Gscan2pdf/Scanner/Dialog.pm:308 msgid "Extended page numbering" msgstr "" #: bin/gscan2pdf:3554 lib/Gscan2pdf/Scanner/Dialog.pm:312 msgid "Page number" msgstr "页码" #: bin/gscan2pdf:3563 lib/Gscan2pdf/Dialog/Renumber.pm:111 #: lib/Gscan2pdf/Scanner/Dialog.pm:321 msgid "Start" msgstr "开始" #: bin/gscan2pdf:3572 lib/Gscan2pdf/Dialog/Renumber.pm:132 #: lib/Gscan2pdf/Scanner/Dialog.pm:340 msgid "Increment" msgstr "递增" #: bin/gscan2pdf:3604 lib/Gscan2pdf/Scanner/Dialog.pm:372 msgid "Source document" msgstr "源文档" #: bin/gscan2pdf:3611 lib/Gscan2pdf/Scanner/Dialog.pm:379 msgid "Single sided" msgstr "单面" #: bin/gscan2pdf:3612 lib/Gscan2pdf/Scanner/Dialog.pm:380 msgid "Source document is single-sided" msgstr "源文档是单面的" #: bin/gscan2pdf:3622 lib/Gscan2pdf/Scanner/Dialog.pm:390 msgid "Double sided" msgstr "双面" #: bin/gscan2pdf:3623 lib/Gscan2pdf/Scanner/Dialog.pm:391 msgid "Source document is double-sided" msgstr "源文档是双面的" #: bin/gscan2pdf:3629 lib/Gscan2pdf/Scanner/Dialog.pm:397 msgid "Side to scan" msgstr "扫描面" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Facing" msgstr "封面" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Reverse" msgstr "反向" #: bin/gscan2pdf:3655 lib/Gscan2pdf/Scanner/Dialog.pm:418 msgid "Sets which side of a double-sided document is scanned" msgstr "" #: bin/gscan2pdf:3719 msgid "Scan Options" msgstr "扫描选项" #: bin/gscan2pdf:3722 msgid "Device-dependent options" msgstr "设备附加选项" #: bin/gscan2pdf:3729 lib/Gscan2pdf/Scanner/Dialog.pm:458 msgid "Scan profiles" msgstr "扫描配置" #: bin/gscan2pdf:3778 bin/gscan2pdf:3784 lib/Gscan2pdf/Scanner/Dialog.pm:479 #: lib/Gscan2pdf/Scanner/Dialog.pm:485 msgid "Name of scan profile" msgstr "扫描配置的名称" #: bin/gscan2pdf:3828 lib/Gscan2pdf/Scanner/Dialog.pm:518 msgid "Scan" msgstr "扫描" #: bin/gscan2pdf:3866 msgid "Must scan facing pages first" msgstr "必须先扫描正面" #: bin/gscan2pdf:3977 msgid "Post-processing" msgstr "后处理" #: bin/gscan2pdf:3986 bin/gscan2pdf:4008 msgid "Rotate" msgstr "旋转" #: bin/gscan2pdf:3987 bin/gscan2pdf:4009 msgid "Rotate image after scanning" msgstr "扫描后旋转图像" #: bin/gscan2pdf:3990 msgid "Both sides" msgstr "两面都是" #: bin/gscan2pdf:3990 msgid "Both sides." msgstr "两面都是" #: bin/gscan2pdf:3991 msgid "Facing side" msgstr "正面" #: bin/gscan2pdf:3991 msgid "Facing side." msgstr "正面。" #: bin/gscan2pdf:3992 msgid "Reverse side" msgstr "反面" #: bin/gscan2pdf:3992 msgid "Reverse side." msgstr "反面。" #: bin/gscan2pdf:3995 bin/gscan2pdf:4013 msgid "Select side to rotate" msgstr "选择要旋转的那一面" #: bin/gscan2pdf:3998 msgid "90" msgstr "90" #: bin/gscan2pdf:3998 msgid "Rotate image 90 degrees clockwise." msgstr "顺时针旋转 90 度" #: bin/gscan2pdf:3999 msgid "180" msgstr "180" #: bin/gscan2pdf:3999 msgid "Rotate image 180 degrees clockwise." msgstr "顺时针旋转 180 度" #: bin/gscan2pdf:4000 msgid "270" msgstr "270" #: bin/gscan2pdf:4000 msgid "Rotate image 90 degrees anticlockwise." msgstr "逆时针旋转 90 度" #: bin/gscan2pdf:4003 bin/gscan2pdf:4016 msgid "Select direction of rotation" msgstr "选择旋转方向" #: bin/gscan2pdf:4083 msgid "Clean up images" msgstr "清理图像" #: bin/gscan2pdf:4094 msgid "Options" msgstr "选项" #: bin/gscan2pdf:4095 msgid "Set unpaper options" msgstr "设置 unpaper 选项" #: bin/gscan2pdf:4101 msgid "unpaper options" msgstr "unpaper 选项" #: bin/gscan2pdf:4136 bin/gscan2pdf:4137 msgid "OCR scanned pages" msgstr "OCR 扫描页面" #: bin/gscan2pdf:4151 msgid "Select OCR engine" msgstr "选择 OCR 引擎" #: bin/gscan2pdf:4210 lib/Gscan2pdf/Scanner/Dialog.pm:634 msgid "Fetching list of devices" msgstr "获取设备列表" #: bin/gscan2pdf:4225 lib/Gscan2pdf/Scanner/Dialog.pm:654 msgid "No devices found" msgstr "没有找到设备" #: bin/gscan2pdf:4367 bin/gscan2pdf:4732 bin/gscan2pdf:4777 bin/gscan2pdf:5214 #: lib/Gscan2pdf/Scanner/Dialog.pm:343 lib/Gscan2pdf/Scanner/Dialog.pm:348 #: t/061_Scanner_Dialog.t:38 t/061_Scanner_Dialog.t:95 msgid "page-number-increment" msgstr "" #: bin/gscan2pdf:4374 bin/gscan2pdf:4729 bin/gscan2pdf:4730 bin/gscan2pdf:4776 #: bin/gscan2pdf:5213 lib/Gscan2pdf/Scanner/Dialog.pm:361 #: t/061_Scanner_Dialog.t:37 msgid "page-number-start" msgstr "" #: bin/gscan2pdf:4663 lib/Gscan2pdf/Scanner/Dialog.pm:210 msgid "Device" msgstr "设备" #: bin/gscan2pdf:4671 lib/Gscan2pdf/Scanner/Dialog.pm:213 msgid "Rescan for devices" msgstr "重新扫描设备" #: bin/gscan2pdf:4694 lib/Gscan2pdf/Scanner/Dialog.pm:237 msgid "Sets the device to be used for the scan" msgstr "设置用来扫描的设备" #: bin/gscan2pdf:4780 lib/Gscan2pdf/Scanner/Dialog.pm:300 #: t/061_Scanner_Dialog.t:35 msgid "num-pages" msgstr "" #: bin/gscan2pdf:4821 msgid "Scanning" msgstr "正在扫描" #: bin/gscan2pdf:4974 msgid "Unable to load image" msgstr "无法载入图片" #: bin/gscan2pdf:5004 msgid "print-pages" msgstr "打印页面" #: bin/gscan2pdf:5008 msgid "page-ranges" msgstr "" #: bin/gscan2pdf:5405 msgid "Patches gratefully received from:" msgstr "" #: bin/gscan2pdf:5407 msgid "To aid the scan-to-PDF process" msgstr "跟踪 scan-to-PDF 进程" #: bin/gscan2pdf:5408 msgid "Copyright 2006--2012 Jeffrey Ratcliffe" msgstr "版权所有 2006--2012 Jeffrey Ratcliffe" #: bin/gscan2pdf:5492 bin/gscan2pdf:6028 msgid "The options cache seems to be empty. Reload device-dependent options?" msgstr "" #: bin/gscan2pdf:5519 bin/gscan2pdf:6054 msgid "Updating options" msgstr "更新选项" #: bin/gscan2pdf:5571 msgid "Paper size" msgstr "纸张尺寸" #: bin/gscan2pdf:5572 bin/gscan2pdf:5672 bin/gscan2pdf:5840 bin/gscan2pdf:6769 msgid "Width" msgstr "宽度" #: bin/gscan2pdf:5573 bin/gscan2pdf:5678 bin/gscan2pdf:5841 bin/gscan2pdf:6780 msgid "Height" msgstr "高度" #: bin/gscan2pdf:5574 bin/gscan2pdf:5684 bin/gscan2pdf:5842 #: lib/Gscan2pdf/Unpaper.pm:124 lib/Gscan2pdf/Unpaper.pm:152 msgid "Left" msgstr "左侧" #: bin/gscan2pdf:5575 bin/gscan2pdf:5690 bin/gscan2pdf:5843 #: lib/Gscan2pdf/Unpaper.pm:129 lib/Gscan2pdf/Unpaper.pm:157 msgid "Top" msgstr "顶部" #: bin/gscan2pdf:5589 bin/gscan2pdf:5703 bin/gscan2pdf:6232 msgid "Manual" msgstr "使用说明" #: bin/gscan2pdf:5590 bin/gscan2pdf:5700 msgid "Edit" msgstr "编辑" #: bin/gscan2pdf:5591 msgid "Selects or edits the paper size" msgstr "选择或编辑纸张尺寸" #: bin/gscan2pdf:5673 msgid "Width of scan area" msgstr "扫描区域宽度" #: bin/gscan2pdf:5679 msgid "Height of scan area" msgstr "扫描区域高度" #: bin/gscan2pdf:5685 msgid "Top-left x position of scan area" msgstr "扫描区域左上角 X 座标" #: bin/gscan2pdf:5691 msgid "Top-left y position of scan area" msgstr "扫描区域左上角 Y 座标" #: bin/gscan2pdf:5822 msgid "Edit paper size" msgstr "编辑纸张尺寸" #: bin/gscan2pdf:5839 msgid "Name" msgstr "名称" #: bin/gscan2pdf:5893 msgid "Cannot delete all paper sizes" msgstr "无法删除全部纸张尺寸" #: bin/gscan2pdf:5955 msgid "" "The following paper sizes are too big to be scanned by the selected device:" msgstr "" #: bin/gscan2pdf:6419 bin/gscan2pdf:6605 msgid "%" msgstr "%" #: bin/gscan2pdf:6492 msgid "Negate" msgstr "底片" #: bin/gscan2pdf:6562 msgid "Unsharp mask" msgstr "蒙版" #: bin/gscan2pdf:6573 msgid "Radius" msgstr "半径" #: bin/gscan2pdf:6575 bin/gscan2pdf:6592 bin/gscan2pdf:6747 bin/gscan2pdf:6759 #: bin/gscan2pdf:6771 bin/gscan2pdf:6782 msgid "pixels" msgstr "像素" #: bin/gscan2pdf:6582 msgid "" "The radius of the Gaussian, in pixels, not counting the center pixel (0 = " "automatic)." msgstr "" #: bin/gscan2pdf:6590 msgid "Sigma" msgstr "Sigma" #: bin/gscan2pdf:6597 msgid "The standard deviation of the Gaussian." msgstr "高斯线的标准偏差" #: bin/gscan2pdf:6603 msgid "Amount" msgstr "总量" #: bin/gscan2pdf:6612 msgid "" "The percentage of the difference between the original and the blur image " "that is added back into the original." msgstr "" #: bin/gscan2pdf:6627 msgid "" "The threshold, as a fraction of QuantumRange, needed to apply the difference " "amount." msgstr "" #: bin/gscan2pdf:6733 msgid "Crop" msgstr "裁剪" #: bin/gscan2pdf:6745 msgid "x" msgstr "x" #: bin/gscan2pdf:6751 msgid "The x-position of the left hand edge of the crop." msgstr "剪裁左侧边缘的横坐标。" #: bin/gscan2pdf:6757 msgid "y" msgstr "y" #: bin/gscan2pdf:6763 msgid "The y-position of the top edge of the crop." msgstr "剪裁顶部边缘的纵坐标。" #: bin/gscan2pdf:6774 msgid "The width of the crop." msgstr "剪裁宽度。" #: bin/gscan2pdf:6785 msgid "The height of the crop." msgstr "剪裁高度。" #: bin/gscan2pdf:6906 msgid "label" msgstr "标签" #: bin/gscan2pdf:7007 msgid "unpaper" msgstr "" #: bin/gscan2pdf:7216 bin/gscan2pdf:7244 msgid "Language to recognise" msgstr "重新识别语种" #: bin/gscan2pdf:7227 msgid "English" msgstr "英语" #: bin/gscan2pdf:7270 msgid "OCR" msgstr "OCR(光学文字识别)" #: bin/gscan2pdf:7279 msgid "OCR Engine" msgstr "OCR(光学文字识别)引擎" #: bin/gscan2pdf:7323 msgid "Start OCR" msgstr "启动 OCR(光学文字识别)" #: bin/gscan2pdf:7339 msgid "No page selected" msgstr "没有选择页面" #: bin/gscan2pdf:7374 msgid "" "Some pages have not been saved.\n" "Do you really want to quit?" msgstr "" "某些页面没有保存。\n" "确定要退出?" #: bin/gscan2pdf:7432 #, perl-format msgid "" "The help viewer requires module Gtk2::Ex::PodViewer\n" "Alternatively, try: %s %s\n" "\n" msgstr "" "帮助查看器需要模块 Gtk2::Ex::PodViewer\n" "或者尝试:%s %s\n" "\n" #: bin/gscan2pdf:7698 msgid "This operation cannot be undone. Are you sure?" msgstr "本次操作不能撤消。确定要继续吗?" #: bin/gscan2pdf:7753 msgid "Preferences" msgstr "首选项" #: bin/gscan2pdf:7762 msgid "Frontend" msgstr "前端" #: bin/gscan2pdf:7766 msgid "libsane-perl" msgstr "libsane-perl" #: bin/gscan2pdf:7767 msgid "Scan using the perl bindings for SANE." msgstr "使用 SANE 的 perl 绑定扫描。" #: bin/gscan2pdf:7770 msgid "scanimage" msgstr "扫描图像" #: bin/gscan2pdf:7771 msgid "Scan using the scanimage frontend." msgstr "使用扫描图像前端扫描。" #: bin/gscan2pdf:7775 msgid "scanimage-perl" msgstr "scanimage-perl" #: bin/gscan2pdf:7776 msgid "Scan using the scanimage-perl frontend." msgstr "使用 scanimage-perl 前端扫描。" #: bin/gscan2pdf:7779 msgid "scanadf-perl" msgstr "scanadf-perl" #: bin/gscan2pdf:7780 msgid "Scan using the scanadf-perl frontend." msgstr "使用 scanadf-perl 前端扫描。" #: bin/gscan2pdf:7785 msgid "scanadf" msgstr "scanadf" #: bin/gscan2pdf:7786 msgid "Scan using the scanadf frontend." msgstr "使用 scanadf 前端扫描。" #: bin/gscan2pdf:7791 msgid "Cycle SANE handle after scan" msgstr "" #: bin/gscan2pdf:7814 msgid "Default filename for PDFs" msgstr "PDF 默认文件名" #: bin/gscan2pdf:7820 msgid "" "%a\t author\n" "%t\t title\n" "%y\t document's year\n" "%Y\t today's year\n" "%m\t document's month\n" "%M\t today's month\n" "%d\t document's day\n" "%D\t today's day" msgstr "" "%a\t 作者\n" "%t\t 标题\n" "%y\t 文档年份\n" "%Y\t 今年\n" "%m\t 文档月份\n" "%M\t 本月\n" "%d\t 文档日子\n" "%D\t 今天" #: bin/gscan2pdf:7830 msgid "Scan command prefix" msgstr "" #: bin/gscan2pdf:7839 msgid "Restore window settings on startup" msgstr "启动时恢复窗口设置" #: bin/gscan2pdf:7845 msgid "Cache device-dependent options" msgstr "缓存设备依赖选项" #: bin/gscan2pdf:7851 msgid "Clear device-dependent options cache" msgstr "清理设备依赖选项缓存" #: bin/gscan2pdf:7862 msgid "Temporary directory" msgstr "临时目录" #: bin/gscan2pdf:7867 msgid "Browse" msgstr "浏览" #: bin/gscan2pdf:7871 msgid "Select temporary directory" msgstr "选择临时目录" #: bin/gscan2pdf:7888 msgid "Blank threshold" msgstr "空白阈值" #: bin/gscan2pdf:7893 msgid "Threshold used for selecting blank pages" msgstr "" #: bin/gscan2pdf:7899 msgid "Dark threshold" msgstr "" #: bin/gscan2pdf:7904 msgid "Threshold used for selecting dark pages" msgstr "" #: bin/gscan2pdf:7910 msgid "OCR output" msgstr "OCR 输出" #: bin/gscan2pdf:7915 msgid "Replace" msgstr "替换" #: bin/gscan2pdf:7917 msgid "" "Replace the contents of the text buffer with that from the OCR output." msgstr "使用 OCR 输出替换文本缓存内容。" #: bin/gscan2pdf:7920 msgid "Prepend" msgstr "" #: bin/gscan2pdf:7921 msgid "Prepend the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7924 msgid "Append" msgstr "" #: bin/gscan2pdf:7925 msgid "Append the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7933 msgid "User-defined tools" msgstr "用户自定义工具" #: bin/gscan2pdf:7954 msgid "View files on saving" msgstr "" #: bin/gscan2pdf:8000 msgid "" "You will have to restart gscanp2df for changes to the temporary directory to " "take effect." msgstr "你需要重新启动 gscanp2df 来使临时目录的变更生效。" #: bin/gscan2pdf:8092 msgid "" "Use %i and %o for the input and output filenames respectively, or a single " "%i if the image is to be modified in-place.\n" "\n" "The other variable available is:\n" "\n" "%r resolution" msgstr "" #: bin/gscan2pdf:8119 msgid "Properties" msgstr "属性" #: lib/Gscan2pdf/Dialog.pm:63 lib/Gscan2pdf/Dialog.pm:79 t/05_Dialog.t:25 msgid "hide-on-delete" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:78 lib/Gscan2pdf/Dialog/Renumber.pm:162 msgid "Renumber" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:98 lib/Gscan2pdf/Dialog/Renumber.pm:207 #: lib/Gscan2pdf/Dialog/Renumber.pm:244 msgid "range" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:102 msgid "Page numbering" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:105 lib/Gscan2pdf/Scanner/Dialog.pm:254 msgid "border_width" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:126 lib/Gscan2pdf/Dialog/Renumber.pm:192 #: lib/Gscan2pdf/Dialog/Renumber.pm:242 t/07_Dialog_Renumber.t:33 #: t/07_Dialog_Renumber.t:45 t/07_Dialog_Renumber.t:59 #: t/07_Dialog_Renumber.t:66 msgid "start" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:147 lib/Gscan2pdf/Dialog/Renumber.pm:193 #: lib/Gscan2pdf/Dialog/Renumber.pm:243 t/07_Dialog_Renumber.t:34 #: t/07_Dialog_Renumber.t:46 t/07_Dialog_Renumber.t:60 #: t/07_Dialog_Renumber.t:67 msgid "increment" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:205 lib/Gscan2pdf/Dialog/Renumber.pm:241 msgid "document" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:295 msgid "" "The current settings would result in duplicate page numbers. Please select " "new start and increment values." msgstr "" #: lib/Gscan2pdf/Document.pm:83 msgid "Thumbnails" msgstr "缩略图" #: lib/Gscan2pdf/Document.pm:1502 msgid "Unknown DjVu file structure. Please contact the author." msgstr "未知 DjVu 文件结构。请联系作者。" #: lib/Gscan2pdf/Document.pm:1558 #, perl-format msgid "%s is not a recognised image type" msgstr "%s 是一个不可识别的图像类型" #: lib/Gscan2pdf/Document.pm:1580 lib/Gscan2pdf/Document.pm:1637 #, perl-format msgid "Importing page %i of %i" msgstr "正在导入页面 %i/%i" #: lib/Gscan2pdf/Document.pm:1613 msgid "Error extracting images from PDF" msgstr "从 PDF 提取图像时出错" #: lib/Gscan2pdf/Document.pm:1692 msgid "Setting up PDF" msgstr "正在设置 PDF" #: lib/Gscan2pdf/Document.pm:1703 #, perl-format msgid "Saving page %i of %i" msgstr "正在保存 %i/%i" #: lib/Gscan2pdf/Document.pm:1814 lib/Gscan2pdf/Document.pm:2136 #, perl-format msgid "Error compressing image: %s" msgstr "压缩图像出错:%s" #: lib/Gscan2pdf/Document.pm:1919 #, perl-format msgid "Error creating PDF image object: %s" msgstr "创建 PDF 图像目标时出错:%s" #: lib/Gscan2pdf/Document.pm:1930 #, perl-format msgid "Error embedding file image in %s format to PDF: %s" msgstr "以 %s 格式将文件图像嵌入 PDF 时出错:%s" #: lib/Gscan2pdf/Document.pm:1939 msgid "Closing PDF" msgstr "正在关闭 PDF" #: lib/Gscan2pdf/Document.pm:1955 #, perl-format msgid "Writing page %i of %i" msgstr "正在写入页面 %i/%i" #: lib/Gscan2pdf/Document.pm:2006 msgid "Error writing DjVu" msgstr "写 DjVu 时出错" #: lib/Gscan2pdf/Document.pm:2025 lib/Gscan2pdf/Document.pm:2227 #, perl-format msgid "Can't open file: %s" msgstr "无法打开文件:%s" #: lib/Gscan2pdf/Document.pm:2050 msgid "Error adding text layer to DjVu" msgstr "添加文本图层到 DjVu 时出错" #: lib/Gscan2pdf/Document.pm:2056 msgid "Closing DjVu" msgstr "正在关闭 DjVu" #: lib/Gscan2pdf/Document.pm:2063 msgid "Error closing DjVu" msgstr "关闭 DjVu 时出错" #: lib/Gscan2pdf/Document.pm:2078 #, perl-format msgid "Converting image %i of %i to TIFF" msgstr "正在转换图像 %i/%i 至 TIFF" #: lib/Gscan2pdf/Document.pm:2105 msgid "Error writing TIFF" msgstr "写 TIFF 时出错" #: lib/Gscan2pdf/Document.pm:2121 msgid "Concatenating TIFFs" msgstr "" #: lib/Gscan2pdf/Document.pm:2140 msgid "Converting to PS" msgstr "正在转换为 PS" #: lib/Gscan2pdf/Document.pm:2200 lib/Gscan2pdf/Document.pm:2215 msgid "Error saving image" msgstr "保存图像时出错" #: lib/Gscan2pdf/Frontend/CLI.pm:158 #, perl-format msgid "Scanning %i pages..." msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:163 #, perl-format msgid "Scanning page %i..." msgstr "正在扫描第 %i 页..." #: lib/Gscan2pdf/Frontend/CLI.pm:188 lib/Gscan2pdf/Frontend/CLI.pm:296 msgid "Scanner warming up" msgstr "扫描仪预热" #: lib/Gscan2pdf/Frontend/CLI.pm:195 msgid "Document feeder out of documents" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:212 lib/Gscan2pdf/Frontend/CLI.pm:325 msgid "Device busy" msgstr "设备忙" #: lib/Gscan2pdf/Frontend/CLI.pm:218 lib/Gscan2pdf/Frontend/CLI.pm:330 msgid "Operation cancelled" msgstr "操作被取消" #: lib/Gscan2pdf/Frontend/CLI.pm:223 lib/Gscan2pdf/Frontend/CLI.pm:336 msgid "Unknown message: " msgstr "未知的信息: " #: lib/Gscan2pdf/Page.pm:68 lib/Gscan2pdf/Page.pm:73 #, perl-format msgid "Error importing image %s: %s" msgstr "" #: lib/Gscan2pdf/PageRange.pm:33 msgid "Selected" msgstr "选中的" #: lib/Gscan2pdf/PageRange.pm:58 msgid "active" msgstr "有效" #: lib/Gscan2pdf/Scanner/Dialog.pm:218 t/061_Scanner_Dialog.t:33 #: t/061_Scanner_Dialog.t:59 msgid "device-list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:496 t/061_Scanner_Dialog.t:139 #: t/061_Scanner_Dialog.t:174 t/062_Scanner_Dialog.t:50 #: t/062_Scanner_Dialog.t:75 msgid "current-scan-options" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:567 msgid "logger" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:650 t/05_Dialog.t:24 msgid "transient-for" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:716 msgid "device_list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:749 t/061_Scanner_Dialog.t:32 msgid "device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:751 msgid "Opening device" msgstr "正在打开设备" #: lib/Gscan2pdf/Scanner/Dialog.pm:760 msgid "Retrieving options" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:41 msgid "Layout" msgstr "布局" #: lib/Gscan2pdf/Unpaper.pm:44 msgid "Single" msgstr "单" #: lib/Gscan2pdf/Unpaper.pm:46 msgid "One page per sheet, oriented upwards without rotation." msgstr "每页一张,向上排列,不旋转。" #: lib/Gscan2pdf/Unpaper.pm:49 msgid "Double" msgstr "双" #: lib/Gscan2pdf/Unpaper.pm:51 msgid "" "Two pages per sheet, landscape orientation (one page on the left half, one " "page on the right half)." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:59 msgid "# Output pages" msgstr "# 输出页面" #: lib/Gscan2pdf/Unpaper.pm:60 msgid "Number of pages to output." msgstr "输出页面的页码。" #: lib/Gscan2pdf/Unpaper.pm:68 msgid "No deskew" msgstr "不使用抗扭曲" #: lib/Gscan2pdf/Unpaper.pm:69 msgid "Disable deskewing." msgstr "禁用抗扭曲功能。" #: lib/Gscan2pdf/Unpaper.pm:74 msgid "No mask scan" msgstr "无遮盖扫描" #: lib/Gscan2pdf/Unpaper.pm:75 msgid "Disable mask detection." msgstr "禁用档板检测。" #: lib/Gscan2pdf/Unpaper.pm:80 msgid "No black filter" msgstr "无黑色过滤" #: lib/Gscan2pdf/Unpaper.pm:81 msgid "Disable black area scan." msgstr "禁用黑色区域扫描。" #: lib/Gscan2pdf/Unpaper.pm:86 msgid "No gray filter" msgstr "无灰色过滤" #: lib/Gscan2pdf/Unpaper.pm:87 msgid "Disable gray area scan." msgstr "禁用灰色区域扫描。" #: lib/Gscan2pdf/Unpaper.pm:92 msgid "No noise filter" msgstr "无杂点过滤" #: lib/Gscan2pdf/Unpaper.pm:93 msgid "Disable noise filter." msgstr "禁用杂点过滤。" #: lib/Gscan2pdf/Unpaper.pm:98 msgid "No blur filter" msgstr "无模糊过滤" #: lib/Gscan2pdf/Unpaper.pm:99 msgid "Disable blur filter." msgstr "禁用模糊过滤。" #: lib/Gscan2pdf/Unpaper.pm:104 msgid "No border scan" msgstr "无边界扫描" #: lib/Gscan2pdf/Unpaper.pm:105 msgid "Disable border scanning." msgstr "禁用边界扫描。" #: lib/Gscan2pdf/Unpaper.pm:110 msgid "No border align" msgstr "无边界对齐" #: lib/Gscan2pdf/Unpaper.pm:112 msgid "Disable aligning of the area detected by border scanning." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:117 msgid "Deskew to edge" msgstr "边界抗扭曲" #: lib/Gscan2pdf/Unpaper.pm:119 msgid "" "Edges from which to scan for rotation. Each edge of a mask can be used to " "detect the mask's rotation. If multiple edges are specified, the average " "value will be used, unless the statistical deviation exceeds --deskew-scan-" "deviation." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:125 msgid "Use 'left' for scanning from the left edge." msgstr "左侧:从左侧开始扫描。" #: lib/Gscan2pdf/Unpaper.pm:130 msgid "Use 'top' for scanning from the top edge." msgstr "顶部:从顶部开始扫描。" #: lib/Gscan2pdf/Unpaper.pm:134 lib/Gscan2pdf/Unpaper.pm:162 msgid "Right" msgstr "右侧" #: lib/Gscan2pdf/Unpaper.pm:135 msgid "Use 'right' for scanning from the right edge." msgstr "右侧:从右侧开始扫描。" #: lib/Gscan2pdf/Unpaper.pm:139 lib/Gscan2pdf/Unpaper.pm:167 msgid "Bottom" msgstr "底部" #: lib/Gscan2pdf/Unpaper.pm:140 msgid "Use 'bottom' for scanning from the bottom." msgstr "底部::从底部开始扫描。" #: lib/Gscan2pdf/Unpaper.pm:147 msgid "Align to edge" msgstr "对齐到边界" #: lib/Gscan2pdf/Unpaper.pm:148 msgid "Edge to which to align the page." msgstr "页面对齐的边界" #: lib/Gscan2pdf/Unpaper.pm:153 msgid "Use 'left' to align to the left edge." msgstr "左侧:对齐到左边界。" #: lib/Gscan2pdf/Unpaper.pm:158 msgid "Use 'top' to align to the top edge." msgstr "顶部:对齐到上边界。" #: lib/Gscan2pdf/Unpaper.pm:163 msgid "Use 'right' to align to the right edge." msgstr "右侧:对齐到右边界。" #: lib/Gscan2pdf/Unpaper.pm:168 msgid "Use 'bottom' to align to the bottom." msgstr "底部:对齐到下边界。" #: lib/Gscan2pdf/Unpaper.pm:174 msgid "Border margin" msgstr "边界余量" #: lib/Gscan2pdf/Unpaper.pm:178 msgid "Vertical margin" msgstr "垂直余量" #: lib/Gscan2pdf/Unpaper.pm:180 msgid "" "Vertical distance to keep from the sheet edge when aligning a border area." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:189 msgid "Horizontal margin" msgstr "水平余量" #: lib/Gscan2pdf/Unpaper.pm:191 msgid "" "Horizontal distance to keep from the sheet edge when aligning a border area." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:202 msgid "White threshold" msgstr "白色临界值" #: lib/Gscan2pdf/Unpaper.pm:204 msgid "Brightness ratio above which a pixel is considered white." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:212 msgid "Black threshold" msgstr "黑色临界值" #: lib/Gscan2pdf/Unpaper.pm:214 msgid "" "Brightness ratio below which a pixel is considered black (non-gray). This is " "used by the gray-filter. This value is also used when converting a grayscale " "image to black-and-white mode." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:250 msgid "Deskew" msgstr "抗扭曲" #: lib/Gscan2pdf/Unpaper.pm:280 msgid "Border" msgstr "边框" #: lib/Gscan2pdf/Unpaper.pm:337 msgid "Filters" msgstr "过滤" #: t/05_Dialog.t:23 msgid "title" msgstr "" #: t/05_Dialog.t:26 t/05_Dialog.t:31 t/05_Dialog.t:32 t/05_Dialog.t:38 #: t/05_Dialog.t:39 msgid "border-width" msgstr "" #: t/061_Scanner_Dialog.t:34 msgid "dir" msgstr "" #: t/061_Scanner_Dialog.t:36 msgid "max-pages" msgstr "" #: t/061_Scanner_Dialog.t:39 msgid "side-to-scan" msgstr "" #: t/061_Scanner_Dialog.t:40 t/061_Scanner_Dialog.t:185 msgid "available-scan-options" msgstr "" #: t/061_Scanner_Dialog.t:171 t/062_Scanner_Dialog.t:73 msgid "profile" msgstr "" gscan2pdf-1.2.3/po/gscan2pdf-ca.po0000644000175000017500000012014212243440507015201 0ustar jeffjeff# Catalan translation for gscan2pdf # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the gscan2pdf package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: gscan2pdf\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-10-25 08:12+0200\n" "PO-Revision-Date: 2011-05-11 18:16+0000\n" "Last-Translator: Norbux \n" "Language-Team: Catalan \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-19 09:22+0000\n" "X-Generator: Launchpad (build 16831)\n" #: bin/gscan2pdf:157 msgid "Error displaying help" msgstr "" #: bin/gscan2pdf:201 msgid "" "Error: unable to load settings.\n" "Backing up settings\n" "Reverting to defaults" msgstr "" "Error: impossible carregar les preferències.\n" "Restaurant les preferències\n" "Opcions per defecte" #: bin/gscan2pdf:244 msgid "A4" msgstr "A4" #: bin/gscan2pdf:250 msgid "US Letter" msgstr "Carta americana" #: bin/gscan2pdf:256 msgid "US Legal" msgstr "Legal americà" #: bin/gscan2pdf:323 bin/gscan2pdf:344 #, perl-format msgid "Cannot read file: %s" msgstr "No es pot llegir el fitxer: %s" #: bin/gscan2pdf:451 msgid "_File" msgstr "_Fitxer" #: bin/gscan2pdf:454 msgid "_New" msgstr "_Nou" #: bin/gscan2pdf:455 msgid "Clears all pages" msgstr "Neteja totes les pàgines" #: bin/gscan2pdf:459 msgid "_Open" msgstr "_Obre" #: bin/gscan2pdf:460 msgid "Open image file(s)" msgstr "" #: bin/gscan2pdf:465 msgid "S_can" msgstr "E_scaneja" #: bin/gscan2pdf:467 msgid "Scan document" msgstr "Escaneja un document" #: bin/gscan2pdf:471 bin/gscan2pdf:472 bin/gscan2pdf:2582 msgid "Save" msgstr "Desa" #: bin/gscan2pdf:476 msgid "_Email as PDF" msgstr "_Envia per correu electrònic en PDF" #: bin/gscan2pdf:477 msgid "Attach as PDF to a new email" msgstr "Adjunta com a PDF a un nou email" #: bin/gscan2pdf:480 msgid "_Print" msgstr "_Imprimeix" #: bin/gscan2pdf:481 msgid "Print" msgstr "Imprimeix" #: bin/gscan2pdf:485 msgid "_Compress temporary files" msgstr "_Comprimeix els fitxers temporals" #: bin/gscan2pdf:486 msgid "Compress temporary files" msgstr "Comprimeix els fitxers temporals" #: bin/gscan2pdf:490 msgid "_Quit" msgstr "_Surt" #: bin/gscan2pdf:491 msgid "Quit" msgstr "Surt" #: bin/gscan2pdf:495 msgid "_Edit" msgstr "_Edita" #: bin/gscan2pdf:497 msgid "_Undo" msgstr "_Desfés" #: bin/gscan2pdf:497 msgid "Undo" msgstr "Desfés" #: bin/gscan2pdf:501 msgid "_Redo" msgstr "_Torna a fer" #: bin/gscan2pdf:502 msgid "Redo" msgstr "Torna a fer" #: bin/gscan2pdf:506 msgid "Cu_t" msgstr "_Talla" #: bin/gscan2pdf:507 msgid "Cut selection" msgstr "Retalla la selecció" #: bin/gscan2pdf:511 msgid "_Copy" msgstr "_Copia" #: bin/gscan2pdf:512 msgid "Copy selection" msgstr "Copia la selecció" #: bin/gscan2pdf:516 msgid "_Paste" msgstr "_Enganxa" #: bin/gscan2pdf:517 msgid "Paste selection" msgstr "Enganxa la selecció" #: bin/gscan2pdf:521 msgid "_Delete" msgstr "_Suprimeix" #: bin/gscan2pdf:522 msgid "Delete selected pages" msgstr "Suprimeix les pàgines seleccionades" #: bin/gscan2pdf:526 msgid "_Renumber" msgstr "To_rna a numerar" #: bin/gscan2pdf:527 msgid "Renumber pages" msgstr "Torna a numerar" #: bin/gscan2pdf:529 bin/gscan2pdf:679 msgid "_Select" msgstr "_Selecciona" #: bin/gscan2pdf:532 msgid "_All" msgstr "_Tot" #: bin/gscan2pdf:533 msgid "Select all pages" msgstr "Selecciona totes les pàgines" #: bin/gscan2pdf:536 msgid "_Odd" msgstr "_Senar" #: bin/gscan2pdf:537 msgid "Select all odd-numbered pages" msgstr "Selecciona totes les pàgines senars" #: bin/gscan2pdf:541 msgid "_Even" msgstr "_Parell" #: bin/gscan2pdf:542 msgid "Select all evenly-numbered pages" msgstr "Selecciona totes les pàgines parells" #: bin/gscan2pdf:547 msgid "_Blank" msgstr "_En blanc" #: bin/gscan2pdf:548 msgid "Select pages with low standard deviation" msgstr "" #: bin/gscan2pdf:552 msgid "_Dark" msgstr "_Fosc" #: bin/gscan2pdf:553 msgid "Select dark pages" msgstr "Selecciona pàgines fosques" #: bin/gscan2pdf:558 msgid "_Modified" msgstr "_Modificat" #: bin/gscan2pdf:560 msgid "Select modified pages since last OCR" msgstr "Selecciona les pàgines modificades de l'últim OCR" #: bin/gscan2pdf:565 msgid "_No OCR" msgstr "" #: bin/gscan2pdf:566 msgid "Select pages with no OCR output" msgstr "" #: bin/gscan2pdf:570 msgid "_Clear OCR" msgstr "" #: bin/gscan2pdf:571 msgid "Clear OCR output from selected pages" msgstr "" #: bin/gscan2pdf:575 msgid "Propert_ies" msgstr "Propiet_ats" #: bin/gscan2pdf:576 msgid "Edit image properties" msgstr "Edita les propietats de la imatge" #: bin/gscan2pdf:580 msgid "Prefere_nces" msgstr "Preferè_ncies" #: bin/gscan2pdf:581 msgid "Edit preferences" msgstr "Edita les preferències" #: bin/gscan2pdf:585 msgid "_View" msgstr "_Visualitza" #: bin/gscan2pdf:588 msgid "Zoom _100%" msgstr "Ampliació _100%" #: bin/gscan2pdf:589 msgid "Zoom to 100%" msgstr "Amplia al 100%" #: bin/gscan2pdf:593 msgid "Zoom to _fit" msgstr "Amplia per _encabir" #: bin/gscan2pdf:594 msgid "Zoom to fit" msgstr "Escala per encabir" #: bin/gscan2pdf:598 msgid "Zoom _in" msgstr "_Amplia" #: bin/gscan2pdf:599 msgid "Zoom in" msgstr "Apropa" #: bin/gscan2pdf:603 msgid "Zoom _out" msgstr "Allunya" #: bin/gscan2pdf:604 msgid "Zoom out" msgstr "Allunya" #: bin/gscan2pdf:609 bin/gscan2pdf:611 msgid "Rotate 90 clockwise" msgstr "Gira 90º en sentit horari" #: bin/gscan2pdf:617 bin/gscan2pdf:619 msgid "Rotate 180" msgstr "Gira 180º" #: bin/gscan2pdf:625 bin/gscan2pdf:627 msgid "Rotate 90 anticlockwise" msgstr "Gira 90º en sentit antihorari" #: bin/gscan2pdf:632 msgid "_Tools" msgstr "_Eines" #: bin/gscan2pdf:634 msgid "_Threshold" msgstr "_Llindar" #: bin/gscan2pdf:635 msgid "Change each pixel above this threshold to black" msgstr "" #: bin/gscan2pdf:639 msgid "_Negate" msgstr "_Negatiu" #: bin/gscan2pdf:640 msgid "Converts black to white and vice versa" msgstr "Converteix negre a blanc i viceversa" #: bin/gscan2pdf:644 msgid "_Unsharp Mask" msgstr "_Màscara de perfilar" #: bin/gscan2pdf:645 msgid "Apply an unsharp mask" msgstr "Aplica la màscara de perfilar" #: bin/gscan2pdf:648 msgid "_Crop" msgstr "_Escapça" #: bin/gscan2pdf:649 msgid "Crop pages" msgstr "Escapça pàgines" #: bin/gscan2pdf:653 msgid "_Clean up" msgstr "_Neteja" #: bin/gscan2pdf:654 bin/gscan2pdf:4085 msgid "Clean up scanned images with unpaper" msgstr "Neteja les imatges escanejades amb unpaper" #: bin/gscan2pdf:657 msgid "_OCR" msgstr "_OCR" #: bin/gscan2pdf:658 msgid "Optical Character Recognition" msgstr "Reconeixement Òptic de Caràcters (OCR)" #: bin/gscan2pdf:660 msgid "U_ser-defined" msgstr "" #: bin/gscan2pdf:663 bin/gscan2pdf:665 msgid "_Help" msgstr "_Ajuda" #: bin/gscan2pdf:666 msgid "Help" msgstr "Ajuda" #: bin/gscan2pdf:668 msgid "_About" msgstr "_Quant a" #: bin/gscan2pdf:674 msgid "_Drag" msgstr "_Arrossega" #: bin/gscan2pdf:675 msgid "Use the hand tool" msgstr "" #: bin/gscan2pdf:680 msgid "Use the rectangular selection tool" msgstr "Usar l'eina de sel·lección rectangular" #: bin/gscan2pdf:684 msgid "_Paint" msgstr "_Pinta" #: bin/gscan2pdf:685 msgid "Use the painter tool" msgstr "Usar l'eina de pintar" #: bin/gscan2pdf:965 lib/Gscan2pdf/Document.pm:2594 #: lib/Gscan2pdf/Document.pm:2595 msgid "Error copying page" msgstr "Error copiant la pàgina" #: bin/gscan2pdf:1082 msgid "Image" msgstr "Imatge" #: bin/gscan2pdf:1117 msgid "OCR Output" msgstr "Sortida OCR" #: bin/gscan2pdf:1174 msgid "Mode" msgstr "Mode" #: bin/gscan2pdf:1176 msgid "Lineart" msgstr "Línies" #: bin/gscan2pdf:1177 msgid "Grayscale" msgstr "Escala de grisos" #: bin/gscan2pdf:1178 msgid "Gray" msgstr "Grisos" #: bin/gscan2pdf:1179 msgid "Color" msgstr "Color" #: bin/gscan2pdf:1180 msgid "Black & White" msgstr "Blanc i negre" #: bin/gscan2pdf:1181 msgid "True Gray" msgstr "Gris vertader" #: bin/gscan2pdf:1182 msgid "Binary" msgstr "Binari" #: bin/gscan2pdf:1183 bin/gscan2pdf:1242 bin/gscan2pdf:1243 msgid "Auto" msgstr "Automàtic" #: bin/gscan2pdf:1184 msgid "Halftone" msgstr "Tons mitjos" #: bin/gscan2pdf:1185 msgid "24bit Color" msgstr "Color de 24 bits" #: bin/gscan2pdf:1189 bin/gscan2pdf:2547 bin/gscan2pdf:2644 msgid "Compression" msgstr "Compressió" #: bin/gscan2pdf:1191 bin/gscan2pdf:2539 bin/gscan2pdf:2636 msgid "None" msgstr "Cap" #: bin/gscan2pdf:1192 bin/gscan2pdf:2537 bin/gscan2pdf:2601 bin/gscan2pdf:2622 msgid "JPEG" msgstr "JPEG" #: bin/gscan2pdf:1195 bin/gscan2pdf:8127 msgid "Resolution" msgstr "Resolució" #: bin/gscan2pdf:1196 msgid "Brightness" msgstr "Brillantor" #: bin/gscan2pdf:1197 msgid "Gain" msgstr "Guany" #: bin/gscan2pdf:1198 msgid "Contrast" msgstr "Contrast" #: bin/gscan2pdf:1199 bin/gscan2pdf:6406 bin/gscan2pdf:6417 bin/gscan2pdf:6620 msgid "Threshold" msgstr "Llindar" #: bin/gscan2pdf:1201 msgid "Speed" msgstr "Velocitat" #: bin/gscan2pdf:1203 bin/gscan2pdf:1210 bin/gscan2pdf:1217 bin/gscan2pdf:1224 #: bin/gscan2pdf:1231 msgid "Yes" msgstr "Sí" #: bin/gscan2pdf:1204 bin/gscan2pdf:1211 bin/gscan2pdf:1218 bin/gscan2pdf:1225 #: bin/gscan2pdf:1232 msgid "No" msgstr "No" #: bin/gscan2pdf:1208 msgid "Batch scan" msgstr "Escaneig per lots" #: bin/gscan2pdf:1215 bin/gscan2pdf:1222 msgid "Wait for button" msgstr "" #: bin/gscan2pdf:1229 msgid "Cache calibration" msgstr "" #: bin/gscan2pdf:1236 msgid "Source" msgstr "Origen" #: bin/gscan2pdf:1238 msgid "Normal" msgstr "Normal" #: bin/gscan2pdf:1239 msgid "ADF" msgstr "ADF" #: bin/gscan2pdf:1240 msgid "Automatic Document Feeder" msgstr "" #: bin/gscan2pdf:1241 msgid "XPA" msgstr "" #: bin/gscan2pdf:1244 msgid "Flatbed" msgstr "D'escriptori" #: bin/gscan2pdf:1245 msgid "Transparency Adapter" msgstr "" #: bin/gscan2pdf:1246 msgid "Transparency Unit" msgstr "" #: bin/gscan2pdf:1249 bin/gscan2pdf:1251 msgid "Page Width" msgstr "Amplada de la pàgina" #: bin/gscan2pdf:1250 bin/gscan2pdf:1252 msgid "Page Height" msgstr "" #: bin/gscan2pdf:1253 msgid "Top Overscan" msgstr "" #: bin/gscan2pdf:1254 msgid "Bottom Overscan" msgstr "" #: bin/gscan2pdf:1256 bin/gscan2pdf:1263 msgid "ADF Mode" msgstr "" #: bin/gscan2pdf:1258 bin/gscan2pdf:1265 msgid "Simplex" msgstr "Simple" #: bin/gscan2pdf:1259 bin/gscan2pdf:1266 msgid "Duplex" msgstr "Doble" #: bin/gscan2pdf:1301 bin/gscan2pdf:1306 msgid "Pick crashed session to restore" msgstr "" #: bin/gscan2pdf:1308 bin/gscan2pdf:2609 msgid "Session" msgstr "Sessió" #: bin/gscan2pdf:1338 #, perl-format msgid "" "Warning: unable to use %s for temporary storage. Defaulting to %s instead." msgstr "" #: bin/gscan2pdf:1441 msgid "GOCR" msgstr "GOCR" #: bin/gscan2pdf:1441 msgid "Process image with GOCR." msgstr "" #: bin/gscan2pdf:1445 msgid "Tesseract" msgstr "Tesseract" #: bin/gscan2pdf:1446 msgid "Process image with Tesseract." msgstr "" #: bin/gscan2pdf:1450 msgid "Ocropus" msgstr "Ocropus" #: bin/gscan2pdf:1450 msgid "Process image with Ocropus." msgstr "" #: bin/gscan2pdf:1454 msgid "Cuneiform" msgstr "Cuneiform" #: bin/gscan2pdf:1455 msgid "Process image with Cuneiform." msgstr "" #: bin/gscan2pdf:1461 msgid "Save image and Save as PDF both require imagemagick\n" msgstr "" #: bin/gscan2pdf:1465 msgid "Save image requires libtiff\n" msgstr "" #: bin/gscan2pdf:1469 msgid "Save as DjVu requires djvulibre-bin\n" msgstr "" #: bin/gscan2pdf:1473 msgid "Email as PDF requires xdg-email\n" msgstr "" #: bin/gscan2pdf:1518 msgid "The rotating options and unpaper support require perlmagick\n" msgstr "" #: bin/gscan2pdf:1524 msgid "unpaper missing\n" msgstr "" #: bin/gscan2pdf:1534 msgid "OCR requires gocr, tesseract, ocropus, or cuneiform\n" msgstr "" #: bin/gscan2pdf:1539 msgid "Warning: missing packages" msgstr "" #: bin/gscan2pdf:1544 msgid "Don't show this message again" msgstr "No tornis a mostrar aquest missatge" #: bin/gscan2pdf:1753 msgid "" "Some pages have not been saved.\n" "Do you really want to clear all pages?" msgstr "" #: bin/gscan2pdf:1828 bin/gscan2pdf:1858 #, perl-format msgid "Process %i of %i (%s)" msgstr "" #: bin/gscan2pdf:1867 #, perl-format msgid "Process %i of %i" msgstr "" #: bin/gscan2pdf:1895 msgid "Open image" msgstr "" #: bin/gscan2pdf:1903 bin/gscan2pdf:2797 bin/gscan2pdf:3113 msgid "Image files" msgstr "" #: bin/gscan2pdf:1940 msgid "Pages to extract" msgstr "" #: bin/gscan2pdf:1943 bin/gscan2pdf:2117 bin/gscan2pdf:2586 bin/gscan2pdf:3353 #: bin/gscan2pdf:3494 bin/gscan2pdf:4104 bin/gscan2pdf:4514 bin/gscan2pdf:5825 #: bin/gscan2pdf:6409 bin/gscan2pdf:6495 bin/gscan2pdf:6565 bin/gscan2pdf:6737 #: bin/gscan2pdf:7011 bin/gscan2pdf:7274 bin/gscan2pdf:7757 bin/gscan2pdf:8123 #: lib/Gscan2pdf/Dialog.pm:56 lib/Gscan2pdf/Dialog/Renumber.pm:80 #: lib/Gscan2pdf/Scanner/Dialog.pm:201 t/05_Dialog.t:28 msgid "vbox" msgstr "" #: bin/gscan2pdf:1946 msgid "First page to extract" msgstr "" #: bin/gscan2pdf:1953 msgid "Last page to extract" msgstr "" #: bin/gscan2pdf:2042 lib/Gscan2pdf/Dialog/Renumber.pm:83 msgid "Page Range" msgstr "" #: bin/gscan2pdf:2092 msgid "Metadata" msgstr "" #: bin/gscan2pdf:2101 msgid "Date" msgstr "Data" #: bin/gscan2pdf:2114 msgid "Select Date" msgstr "Seleccioneu la data" #: bin/gscan2pdf:2136 msgid "Today" msgstr "Avui" #: bin/gscan2pdf:2150 msgid "Year-Month-Day" msgstr "Any-Mes-Dia" #: bin/gscan2pdf:2156 msgid "Document author" msgstr "Autor del document" #: bin/gscan2pdf:2165 msgid "Title" msgstr "Títol" #: bin/gscan2pdf:2174 msgid "Subject" msgstr "Assumpte" #: bin/gscan2pdf:2183 msgid "Keywords" msgstr "Paraules clau" #: bin/gscan2pdf:2245 msgid "Editing text" msgstr "Editant text" #: bin/gscan2pdf:2252 bin/gscan2pdf:2258 bin/gscan2pdf:2332 msgid "text" msgstr "text" #: bin/gscan2pdf:2352 msgid "PDF filename" msgstr "Nom del fitxer PDF" #: bin/gscan2pdf:2381 msgid "PDF files" msgstr "Fitxers PDF" #: bin/gscan2pdf:2405 bin/gscan2pdf:2823 bin/gscan2pdf:2880 bin/gscan2pdf:2976 #: bin/gscan2pdf:3035 bin/gscan2pdf:3087 bin/gscan2pdf:3275 #, perl-format msgid "File %s is read-only" msgstr "Fitxer %s és només de lectura" #: bin/gscan2pdf:2482 msgid "JPEG Quality" msgstr "Qualitat JPEG" #: bin/gscan2pdf:2496 msgid "Downsample to" msgstr "" #: bin/gscan2pdf:2501 msgid "PPI" msgstr "PPP" #: bin/gscan2pdf:2520 msgid "Automatic" msgstr "Automàtic" #: bin/gscan2pdf:2521 msgid "Let gscan2pdf which type of compression to use." msgstr "" #: bin/gscan2pdf:2524 bin/gscan2pdf:2616 msgid "LZW" msgstr "LZW" #: bin/gscan2pdf:2525 bin/gscan2pdf:2617 msgid "Compress output with Lempel-Ziv & Welch encoding." msgstr "" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Zip" msgstr "Codi Postal" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Compress output with deflate encoding." msgstr "" #: bin/gscan2pdf:2529 bin/gscan2pdf:2624 msgid "Packbits" msgstr "Paquet de bits" #: bin/gscan2pdf:2530 bin/gscan2pdf:2625 msgid "Compress output with Packbits encoding." msgstr "" #: bin/gscan2pdf:2536 bin/gscan2pdf:2604 msgid "PNG" msgstr "PNG" #: bin/gscan2pdf:2536 msgid "Compress output with PNG encoding." msgstr "" #: bin/gscan2pdf:2537 bin/gscan2pdf:2622 msgid "Compress output with JPEG encoding." msgstr "" #: bin/gscan2pdf:2540 bin/gscan2pdf:2637 msgid "Use no compression algorithm on output." msgstr "" #: bin/gscan2pdf:2594 msgid "Image type" msgstr "Tipus d'imatge" #: bin/gscan2pdf:2598 msgid "PDF" msgstr "PDF" #: bin/gscan2pdf:2598 msgid "Portable Document Format" msgstr "Format de Document Portable" #: bin/gscan2pdf:2599 msgid "GIF" msgstr "GIF" #: bin/gscan2pdf:2599 msgid "CompuServe graphics interchange format" msgstr "" #: bin/gscan2pdf:2602 msgid "Joint Photographic Experts Group JFIF format" msgstr "" #: bin/gscan2pdf:2604 msgid "Portable Network Graphics" msgstr "Format d'imatge PNG" #: bin/gscan2pdf:2605 msgid "PNM" msgstr "PNM" #: bin/gscan2pdf:2605 msgid "Portable anymap" msgstr "" #: bin/gscan2pdf:2606 msgid "PS" msgstr "PS" #: bin/gscan2pdf:2606 msgid "Postscript" msgstr "Postscript" #: bin/gscan2pdf:2607 msgid "TIFF" msgstr "TIFF" #: bin/gscan2pdf:2607 msgid "Tagged Image File Format" msgstr "TIFF" #: bin/gscan2pdf:2608 msgid "Text" msgstr "Text" #: bin/gscan2pdf:2608 msgid "Plain text" msgstr "Text net" #: bin/gscan2pdf:2609 msgid "gscan2pdf session file" msgstr "Fitxer de sessió de gscan2pdf" #: bin/gscan2pdf:2611 msgid "DjVu" msgstr "DjVu" #: bin/gscan2pdf:2611 msgid "Deja Vu" msgstr "Deja Vu" #: bin/gscan2pdf:2628 msgid "G3" msgstr "G3" #: bin/gscan2pdf:2629 msgid "Compress output with CCITT Group 3 encoding." msgstr "" #: bin/gscan2pdf:2632 msgid "G4" msgstr "G4" #: bin/gscan2pdf:2633 msgid "Compress output with CCITT Group 4 encoding." msgstr "" #: bin/gscan2pdf:2649 msgid "tiff" msgstr "tiff" #: bin/gscan2pdf:2681 msgid "Font for non-ASCII text" msgstr "" #: bin/gscan2pdf:2790 msgid "TIFF filename" msgstr "Nom de fitxer TIFF" #: bin/gscan2pdf:2848 msgid "Text filename" msgstr "Nom de fitxer de Text" #: bin/gscan2pdf:2856 msgid "Text files" msgstr "" #: bin/gscan2pdf:2944 msgid "PS filename" msgstr "Nom de fitxer PS" #: bin/gscan2pdf:2951 msgid "Postscript files" msgstr "Fitxers Postscript" #: bin/gscan2pdf:3003 msgid "gscan2pdf session filename" msgstr "Nom de fitxer de la sessió gscan2pdf" #: bin/gscan2pdf:3010 msgid "gscan2pdf session files" msgstr "" #: bin/gscan2pdf:3093 #, perl-format msgid "" "File %s exists.\n" "Really overwrite?" msgstr "" "El fitxer %s existeix.\n" "Vols substituir-ho?" #: bin/gscan2pdf:3106 msgid "Image filename" msgstr "Nom de fitxer Imatge" #: bin/gscan2pdf:3245 msgid "DjVu filename" msgstr "Nom de fitxer DjVu" #: bin/gscan2pdf:3252 msgid "DjVu files" msgstr "Fitxers DjVu" #: bin/gscan2pdf:3349 msgid "Email as PDF" msgstr "" #: bin/gscan2pdf:3454 msgid "Error creating email" msgstr "" #: bin/gscan2pdf:3490 bin/gscan2pdf:4313 msgid "Scan Document" msgstr "Escaneja Document" #: bin/gscan2pdf:3507 lib/Gscan2pdf/Scanner/Dialog.pm:248 msgid "Page Options" msgstr "Opcions de pàgina" #: bin/gscan2pdf:3510 lib/Gscan2pdf/Scanner/Dialog.pm:251 msgid "# Pages" msgstr "# Pàgines" #: bin/gscan2pdf:3519 lib/Gscan2pdf/PageRange.pm:34 #: lib/Gscan2pdf/Scanner/Dialog.pm:261 msgid "All" msgstr "Tot" #: bin/gscan2pdf:3520 lib/Gscan2pdf/Scanner/Dialog.pm:262 msgid "Scan all pages" msgstr "Escaneja totes les pàgines" #: bin/gscan2pdf:3532 bin/gscan2pdf:3537 lib/Gscan2pdf/Scanner/Dialog.pm:274 #: lib/Gscan2pdf/Scanner/Dialog.pm:279 msgid "Set number of pages to scan" msgstr "" #: bin/gscan2pdf:3550 lib/Gscan2pdf/Scanner/Dialog.pm:308 msgid "Extended page numbering" msgstr "" #: bin/gscan2pdf:3554 lib/Gscan2pdf/Scanner/Dialog.pm:312 msgid "Page number" msgstr "" #: bin/gscan2pdf:3563 lib/Gscan2pdf/Dialog/Renumber.pm:111 #: lib/Gscan2pdf/Scanner/Dialog.pm:321 msgid "Start" msgstr "Comença" #: bin/gscan2pdf:3572 lib/Gscan2pdf/Dialog/Renumber.pm:132 #: lib/Gscan2pdf/Scanner/Dialog.pm:340 msgid "Increment" msgstr "" #: bin/gscan2pdf:3604 lib/Gscan2pdf/Scanner/Dialog.pm:372 msgid "Source document" msgstr "" #: bin/gscan2pdf:3611 lib/Gscan2pdf/Scanner/Dialog.pm:379 msgid "Single sided" msgstr "" #: bin/gscan2pdf:3612 lib/Gscan2pdf/Scanner/Dialog.pm:380 msgid "Source document is single-sided" msgstr "" #: bin/gscan2pdf:3622 lib/Gscan2pdf/Scanner/Dialog.pm:390 msgid "Double sided" msgstr "" #: bin/gscan2pdf:3623 lib/Gscan2pdf/Scanner/Dialog.pm:391 msgid "Source document is double-sided" msgstr "" #: bin/gscan2pdf:3629 lib/Gscan2pdf/Scanner/Dialog.pm:397 msgid "Side to scan" msgstr "" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Facing" msgstr "" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Reverse" msgstr "Inverteix" #: bin/gscan2pdf:3655 lib/Gscan2pdf/Scanner/Dialog.pm:418 msgid "Sets which side of a double-sided document is scanned" msgstr "" #: bin/gscan2pdf:3719 msgid "Scan Options" msgstr "Opcions d'escaneig" #: bin/gscan2pdf:3722 msgid "Device-dependent options" msgstr "" #: bin/gscan2pdf:3729 lib/Gscan2pdf/Scanner/Dialog.pm:458 msgid "Scan profiles" msgstr "" #: bin/gscan2pdf:3778 bin/gscan2pdf:3784 lib/Gscan2pdf/Scanner/Dialog.pm:479 #: lib/Gscan2pdf/Scanner/Dialog.pm:485 msgid "Name of scan profile" msgstr "" #: bin/gscan2pdf:3828 lib/Gscan2pdf/Scanner/Dialog.pm:518 msgid "Scan" msgstr "Escaneja" #: bin/gscan2pdf:3866 msgid "Must scan facing pages first" msgstr "" #: bin/gscan2pdf:3977 msgid "Post-processing" msgstr "" #: bin/gscan2pdf:3986 bin/gscan2pdf:4008 msgid "Rotate" msgstr "Gira" #: bin/gscan2pdf:3987 bin/gscan2pdf:4009 msgid "Rotate image after scanning" msgstr "" #: bin/gscan2pdf:3990 msgid "Both sides" msgstr "Ambdós costats" #: bin/gscan2pdf:3990 msgid "Both sides." msgstr "Ambdós costats" #: bin/gscan2pdf:3991 msgid "Facing side" msgstr "" #: bin/gscan2pdf:3991 msgid "Facing side." msgstr "" #: bin/gscan2pdf:3992 msgid "Reverse side" msgstr "" #: bin/gscan2pdf:3992 msgid "Reverse side." msgstr "" #: bin/gscan2pdf:3995 bin/gscan2pdf:4013 msgid "Select side to rotate" msgstr "" #: bin/gscan2pdf:3998 msgid "90" msgstr "90" #: bin/gscan2pdf:3998 msgid "Rotate image 90 degrees clockwise." msgstr "Rota la imatge 90º en sentit horari" #: bin/gscan2pdf:3999 msgid "180" msgstr "180" #: bin/gscan2pdf:3999 msgid "Rotate image 180 degrees clockwise." msgstr "Rota la imatge 180º en sentit horari" #: bin/gscan2pdf:4000 msgid "270" msgstr "270" #: bin/gscan2pdf:4000 msgid "Rotate image 90 degrees anticlockwise." msgstr "Rota la imatge 90º en sentit antihorari" #: bin/gscan2pdf:4003 bin/gscan2pdf:4016 msgid "Select direction of rotation" msgstr "" #: bin/gscan2pdf:4083 msgid "Clean up images" msgstr "" #: bin/gscan2pdf:4094 msgid "Options" msgstr "Opcions" #: bin/gscan2pdf:4095 msgid "Set unpaper options" msgstr "" #: bin/gscan2pdf:4101 msgid "unpaper options" msgstr "" #: bin/gscan2pdf:4136 bin/gscan2pdf:4137 msgid "OCR scanned pages" msgstr "" #: bin/gscan2pdf:4151 msgid "Select OCR engine" msgstr "Selecciona motor OCR" #: bin/gscan2pdf:4210 lib/Gscan2pdf/Scanner/Dialog.pm:634 msgid "Fetching list of devices" msgstr "" #: bin/gscan2pdf:4225 lib/Gscan2pdf/Scanner/Dialog.pm:654 msgid "No devices found" msgstr "Cap dispositiu trobat" #: bin/gscan2pdf:4367 bin/gscan2pdf:4732 bin/gscan2pdf:4777 bin/gscan2pdf:5214 #: lib/Gscan2pdf/Scanner/Dialog.pm:343 lib/Gscan2pdf/Scanner/Dialog.pm:348 #: t/061_Scanner_Dialog.t:38 t/061_Scanner_Dialog.t:95 msgid "page-number-increment" msgstr "" #: bin/gscan2pdf:4374 bin/gscan2pdf:4729 bin/gscan2pdf:4730 bin/gscan2pdf:4776 #: bin/gscan2pdf:5213 lib/Gscan2pdf/Scanner/Dialog.pm:361 #: t/061_Scanner_Dialog.t:37 msgid "page-number-start" msgstr "" #: bin/gscan2pdf:4663 lib/Gscan2pdf/Scanner/Dialog.pm:210 msgid "Device" msgstr "Dispositiu" #: bin/gscan2pdf:4671 lib/Gscan2pdf/Scanner/Dialog.pm:213 msgid "Rescan for devices" msgstr "Torna a cercar dispositius" #: bin/gscan2pdf:4694 lib/Gscan2pdf/Scanner/Dialog.pm:237 msgid "Sets the device to be used for the scan" msgstr "" #: bin/gscan2pdf:4780 lib/Gscan2pdf/Scanner/Dialog.pm:300 #: t/061_Scanner_Dialog.t:35 msgid "num-pages" msgstr "" #: bin/gscan2pdf:4821 msgid "Scanning" msgstr "Escanejant" #: bin/gscan2pdf:4974 msgid "Unable to load image" msgstr "No es pot carregar la imatge" #: bin/gscan2pdf:5004 msgid "print-pages" msgstr "" #: bin/gscan2pdf:5008 msgid "page-ranges" msgstr "" #: bin/gscan2pdf:5405 msgid "Patches gratefully received from:" msgstr "" #: bin/gscan2pdf:5407 msgid "To aid the scan-to-PDF process" msgstr "" #: bin/gscan2pdf:5408 msgid "Copyright 2006--2012 Jeffrey Ratcliffe" msgstr "" #: bin/gscan2pdf:5492 bin/gscan2pdf:6028 msgid "The options cache seems to be empty. Reload device-dependent options?" msgstr "" #: bin/gscan2pdf:5519 bin/gscan2pdf:6054 msgid "Updating options" msgstr "" #: bin/gscan2pdf:5571 msgid "Paper size" msgstr "Mida del paper" #: bin/gscan2pdf:5572 bin/gscan2pdf:5672 bin/gscan2pdf:5840 bin/gscan2pdf:6769 msgid "Width" msgstr "Amplada" #: bin/gscan2pdf:5573 bin/gscan2pdf:5678 bin/gscan2pdf:5841 bin/gscan2pdf:6780 msgid "Height" msgstr "Alçada" #: bin/gscan2pdf:5574 bin/gscan2pdf:5684 bin/gscan2pdf:5842 #: lib/Gscan2pdf/Unpaper.pm:124 lib/Gscan2pdf/Unpaper.pm:152 msgid "Left" msgstr "Esquerra" #: bin/gscan2pdf:5575 bin/gscan2pdf:5690 bin/gscan2pdf:5843 #: lib/Gscan2pdf/Unpaper.pm:129 lib/Gscan2pdf/Unpaper.pm:157 msgid "Top" msgstr "Superior" #: bin/gscan2pdf:5589 bin/gscan2pdf:5703 bin/gscan2pdf:6232 msgid "Manual" msgstr "Manual" #: bin/gscan2pdf:5590 bin/gscan2pdf:5700 msgid "Edit" msgstr "Edita" #: bin/gscan2pdf:5591 msgid "Selects or edits the paper size" msgstr "" #: bin/gscan2pdf:5673 msgid "Width of scan area" msgstr "" #: bin/gscan2pdf:5679 msgid "Height of scan area" msgstr "" #: bin/gscan2pdf:5685 msgid "Top-left x position of scan area" msgstr "" #: bin/gscan2pdf:5691 msgid "Top-left y position of scan area" msgstr "" #: bin/gscan2pdf:5822 msgid "Edit paper size" msgstr "" #: bin/gscan2pdf:5839 msgid "Name" msgstr "Nom" #: bin/gscan2pdf:5893 msgid "Cannot delete all paper sizes" msgstr "" #: bin/gscan2pdf:5955 msgid "" "The following paper sizes are too big to be scanned by the selected device:" msgstr "" #: bin/gscan2pdf:6419 bin/gscan2pdf:6605 msgid "%" msgstr "%" #: bin/gscan2pdf:6492 msgid "Negate" msgstr "Negatiu" #: bin/gscan2pdf:6562 msgid "Unsharp mask" msgstr "Màscara de suavitzat" #: bin/gscan2pdf:6573 msgid "Radius" msgstr "Radi" #: bin/gscan2pdf:6575 bin/gscan2pdf:6592 bin/gscan2pdf:6747 bin/gscan2pdf:6759 #: bin/gscan2pdf:6771 bin/gscan2pdf:6782 msgid "pixels" msgstr "píxels" #: bin/gscan2pdf:6582 msgid "" "The radius of the Gaussian, in pixels, not counting the center pixel (0 = " "automatic)." msgstr "" #: bin/gscan2pdf:6590 msgid "Sigma" msgstr "Sigma" #: bin/gscan2pdf:6597 msgid "The standard deviation of the Gaussian." msgstr "" #: bin/gscan2pdf:6603 msgid "Amount" msgstr "" #: bin/gscan2pdf:6612 msgid "" "The percentage of the difference between the original and the blur image " "that is added back into the original." msgstr "" #: bin/gscan2pdf:6627 msgid "" "The threshold, as a fraction of QuantumRange, needed to apply the difference " "amount." msgstr "" #: bin/gscan2pdf:6733 msgid "Crop" msgstr "Escapça" #: bin/gscan2pdf:6745 msgid "x" msgstr "" #: bin/gscan2pdf:6751 msgid "The x-position of the left hand edge of the crop." msgstr "" #: bin/gscan2pdf:6757 msgid "y" msgstr "" #: bin/gscan2pdf:6763 msgid "The y-position of the top edge of the crop." msgstr "" #: bin/gscan2pdf:6774 msgid "The width of the crop." msgstr "" #: bin/gscan2pdf:6785 msgid "The height of the crop." msgstr "" #: bin/gscan2pdf:6906 msgid "label" msgstr "etiqueta" #: bin/gscan2pdf:7007 msgid "unpaper" msgstr "" #: bin/gscan2pdf:7216 bin/gscan2pdf:7244 msgid "Language to recognise" msgstr "Llengua a reconèixer" #: bin/gscan2pdf:7227 msgid "English" msgstr "Anglès" #: bin/gscan2pdf:7270 msgid "OCR" msgstr "Reconeixement de text (OCR)" #: bin/gscan2pdf:7279 msgid "OCR Engine" msgstr "Motor d'OCR" #: bin/gscan2pdf:7323 msgid "Start OCR" msgstr "Engega OCR" #: bin/gscan2pdf:7339 msgid "No page selected" msgstr "Cap pàgina seleccionada" #: bin/gscan2pdf:7374 msgid "" "Some pages have not been saved.\n" "Do you really want to quit?" msgstr "" "Algunes pàgines no han estat desades.\n" "Vols sortir de totes formes?" #: bin/gscan2pdf:7432 #, perl-format msgid "" "The help viewer requires module Gtk2::Ex::PodViewer\n" "Alternatively, try: %s %s\n" "\n" msgstr "" #: bin/gscan2pdf:7698 msgid "This operation cannot be undone. Are you sure?" msgstr "" #: bin/gscan2pdf:7753 msgid "Preferences" msgstr "Preferències" #: bin/gscan2pdf:7762 msgid "Frontend" msgstr "" #: bin/gscan2pdf:7766 msgid "libsane-perl" msgstr "libsane-perl" #: bin/gscan2pdf:7767 msgid "Scan using the perl bindings for SANE." msgstr "" #: bin/gscan2pdf:7770 msgid "scanimage" msgstr "scanimage" #: bin/gscan2pdf:7771 msgid "Scan using the scanimage frontend." msgstr "" #: bin/gscan2pdf:7775 msgid "scanimage-perl" msgstr "scanimage-perl" #: bin/gscan2pdf:7776 msgid "Scan using the scanimage-perl frontend." msgstr "" #: bin/gscan2pdf:7779 msgid "scanadf-perl" msgstr "scanadf-perl" #: bin/gscan2pdf:7780 msgid "Scan using the scanadf-perl frontend." msgstr "" #: bin/gscan2pdf:7785 msgid "scanadf" msgstr "scanadf" #: bin/gscan2pdf:7786 msgid "Scan using the scanadf frontend." msgstr "" #: bin/gscan2pdf:7791 msgid "Cycle SANE handle after scan" msgstr "" #: bin/gscan2pdf:7814 msgid "Default filename for PDFs" msgstr "" #: bin/gscan2pdf:7820 msgid "" "%a\t author\n" "%t\t title\n" "%y\t document's year\n" "%Y\t today's year\n" "%m\t document's month\n" "%M\t today's month\n" "%d\t document's day\n" "%D\t today's day" msgstr "" "%a\t autor\n" "%t\t títol\n" "%y\t any del document\n" "%Y\t any actual\n" "%m\t mes del document\n" "%M\t mes actual\n" "%d\t dia del document\n" "%D\t dia actual" #: bin/gscan2pdf:7830 msgid "Scan command prefix" msgstr "" #: bin/gscan2pdf:7839 msgid "Restore window settings on startup" msgstr "" #: bin/gscan2pdf:7845 msgid "Cache device-dependent options" msgstr "" #: bin/gscan2pdf:7851 msgid "Clear device-dependent options cache" msgstr "" #: bin/gscan2pdf:7862 msgid "Temporary directory" msgstr "Directori temporal" #: bin/gscan2pdf:7867 msgid "Browse" msgstr "Navega…" #: bin/gscan2pdf:7871 msgid "Select temporary directory" msgstr "" #: bin/gscan2pdf:7888 msgid "Blank threshold" msgstr "" #: bin/gscan2pdf:7893 msgid "Threshold used for selecting blank pages" msgstr "" #: bin/gscan2pdf:7899 msgid "Dark threshold" msgstr "" #: bin/gscan2pdf:7904 msgid "Threshold used for selecting dark pages" msgstr "" #: bin/gscan2pdf:7910 msgid "OCR output" msgstr "Sortida OCR" #: bin/gscan2pdf:7915 msgid "Replace" msgstr "Substitueix" #: bin/gscan2pdf:7917 msgid "" "Replace the contents of the text buffer with that from the OCR output." msgstr "" #: bin/gscan2pdf:7920 msgid "Prepend" msgstr "Avantposa" #: bin/gscan2pdf:7921 msgid "Prepend the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7924 msgid "Append" msgstr "Afegeix" #: bin/gscan2pdf:7925 msgid "Append the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7933 msgid "User-defined tools" msgstr "" #: bin/gscan2pdf:7954 msgid "View files on saving" msgstr "" #: bin/gscan2pdf:8000 msgid "" "You will have to restart gscanp2df for changes to the temporary directory to " "take effect." msgstr "" #: bin/gscan2pdf:8092 msgid "" "Use %i and %o for the input and output filenames respectively, or a single " "%i if the image is to be modified in-place.\n" "\n" "The other variable available is:\n" "\n" "%r resolution" msgstr "" #: bin/gscan2pdf:8119 msgid "Properties" msgstr "Propietats" #: lib/Gscan2pdf/Dialog.pm:63 lib/Gscan2pdf/Dialog.pm:79 t/05_Dialog.t:25 msgid "hide-on-delete" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:78 lib/Gscan2pdf/Dialog/Renumber.pm:162 msgid "Renumber" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:98 lib/Gscan2pdf/Dialog/Renumber.pm:207 #: lib/Gscan2pdf/Dialog/Renumber.pm:244 msgid "range" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:102 msgid "Page numbering" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:105 lib/Gscan2pdf/Scanner/Dialog.pm:254 msgid "border_width" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:126 lib/Gscan2pdf/Dialog/Renumber.pm:192 #: lib/Gscan2pdf/Dialog/Renumber.pm:242 t/07_Dialog_Renumber.t:33 #: t/07_Dialog_Renumber.t:45 t/07_Dialog_Renumber.t:59 #: t/07_Dialog_Renumber.t:66 msgid "start" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:147 lib/Gscan2pdf/Dialog/Renumber.pm:193 #: lib/Gscan2pdf/Dialog/Renumber.pm:243 t/07_Dialog_Renumber.t:34 #: t/07_Dialog_Renumber.t:46 t/07_Dialog_Renumber.t:60 #: t/07_Dialog_Renumber.t:67 msgid "increment" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:205 lib/Gscan2pdf/Dialog/Renumber.pm:241 msgid "document" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:295 msgid "" "The current settings would result in duplicate page numbers. Please select " "new start and increment values." msgstr "" #: lib/Gscan2pdf/Document.pm:83 msgid "Thumbnails" msgstr "" #: lib/Gscan2pdf/Document.pm:1502 msgid "Unknown DjVu file structure. Please contact the author." msgstr "" #: lib/Gscan2pdf/Document.pm:1558 #, perl-format msgid "%s is not a recognised image type" msgstr "" #: lib/Gscan2pdf/Document.pm:1580 lib/Gscan2pdf/Document.pm:1637 #, perl-format msgid "Importing page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:1613 msgid "Error extracting images from PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1692 msgid "Setting up PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1703 #, perl-format msgid "Saving page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:1814 lib/Gscan2pdf/Document.pm:2136 #, perl-format msgid "Error compressing image: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1919 #, perl-format msgid "Error creating PDF image object: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1930 #, perl-format msgid "Error embedding file image in %s format to PDF: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1939 msgid "Closing PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1955 #, perl-format msgid "Writing page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:2006 msgid "Error writing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2025 lib/Gscan2pdf/Document.pm:2227 #, perl-format msgid "Can't open file: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:2050 msgid "Error adding text layer to DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2056 msgid "Closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2063 msgid "Error closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2078 #, perl-format msgid "Converting image %i of %i to TIFF" msgstr "" #: lib/Gscan2pdf/Document.pm:2105 msgid "Error writing TIFF" msgstr "" #: lib/Gscan2pdf/Document.pm:2121 msgid "Concatenating TIFFs" msgstr "" #: lib/Gscan2pdf/Document.pm:2140 msgid "Converting to PS" msgstr "" #: lib/Gscan2pdf/Document.pm:2200 lib/Gscan2pdf/Document.pm:2215 msgid "Error saving image" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:158 #, perl-format msgid "Scanning %i pages..." msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:163 #, perl-format msgid "Scanning page %i..." msgstr "Escanejant pàgina %i..." #: lib/Gscan2pdf/Frontend/CLI.pm:188 lib/Gscan2pdf/Frontend/CLI.pm:296 msgid "Scanner warming up" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:195 msgid "Document feeder out of documents" msgstr "L'alimentador de documents és buit" #: lib/Gscan2pdf/Frontend/CLI.pm:212 lib/Gscan2pdf/Frontend/CLI.pm:325 msgid "Device busy" msgstr "Dispositiu ocupat" #: lib/Gscan2pdf/Frontend/CLI.pm:218 lib/Gscan2pdf/Frontend/CLI.pm:330 msgid "Operation cancelled" msgstr "S'ha cancel·lat l'operació" #: lib/Gscan2pdf/Frontend/CLI.pm:223 lib/Gscan2pdf/Frontend/CLI.pm:336 msgid "Unknown message: " msgstr "Missatge desconegut: " #: lib/Gscan2pdf/Page.pm:68 lib/Gscan2pdf/Page.pm:73 #, perl-format msgid "Error importing image %s: %s" msgstr "" #: lib/Gscan2pdf/PageRange.pm:33 msgid "Selected" msgstr "Seleccionat" #: lib/Gscan2pdf/PageRange.pm:58 msgid "active" msgstr "Activa" #: lib/Gscan2pdf/Scanner/Dialog.pm:218 t/061_Scanner_Dialog.t:33 #: t/061_Scanner_Dialog.t:59 msgid "device-list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:496 t/061_Scanner_Dialog.t:139 #: t/061_Scanner_Dialog.t:174 t/062_Scanner_Dialog.t:50 #: t/062_Scanner_Dialog.t:75 msgid "current-scan-options" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:567 msgid "logger" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:650 t/05_Dialog.t:24 msgid "transient-for" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:716 msgid "device_list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:749 t/061_Scanner_Dialog.t:32 msgid "device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:751 msgid "Opening device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:760 msgid "Retrieving options" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:41 msgid "Layout" msgstr "Plantilla" #: lib/Gscan2pdf/Unpaper.pm:44 msgid "Single" msgstr "Senzill" #: lib/Gscan2pdf/Unpaper.pm:46 msgid "One page per sheet, oriented upwards without rotation." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:49 msgid "Double" msgstr "Doble" #: lib/Gscan2pdf/Unpaper.pm:51 msgid "" "Two pages per sheet, landscape orientation (one page on the left half, one " "page on the right half)." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:59 msgid "# Output pages" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:60 msgid "Number of pages to output." msgstr "Número de pàgines de sortida" #: lib/Gscan2pdf/Unpaper.pm:68 msgid "No deskew" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:69 msgid "Disable deskewing." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:74 msgid "No mask scan" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:75 msgid "Disable mask detection." msgstr "Desactiva la màscara de detecció" #: lib/Gscan2pdf/Unpaper.pm:80 msgid "No black filter" msgstr "Cap filtre de negre" #: lib/Gscan2pdf/Unpaper.pm:81 msgid "Disable black area scan." msgstr "Desactiva escaneig d'àrea de negre" #: lib/Gscan2pdf/Unpaper.pm:86 msgid "No gray filter" msgstr "Cap filtre de grisos" #: lib/Gscan2pdf/Unpaper.pm:87 msgid "Disable gray area scan." msgstr "Desactiva escaneig d'àrea de grisos" #: lib/Gscan2pdf/Unpaper.pm:92 msgid "No noise filter" msgstr "Cap filtre de soroll" #: lib/Gscan2pdf/Unpaper.pm:93 msgid "Disable noise filter." msgstr "DEsactiva el filtre de soroll" #: lib/Gscan2pdf/Unpaper.pm:98 msgid "No blur filter" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:99 msgid "Disable blur filter." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:104 msgid "No border scan" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:105 msgid "Disable border scanning." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:110 msgid "No border align" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:112 msgid "Disable aligning of the area detected by border scanning." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:117 msgid "Deskew to edge" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:119 msgid "" "Edges from which to scan for rotation. Each edge of a mask can be used to " "detect the mask's rotation. If multiple edges are specified, the average " "value will be used, unless the statistical deviation exceeds --deskew-scan-" "deviation." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:125 msgid "Use 'left' for scanning from the left edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:130 msgid "Use 'top' for scanning from the top edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:134 lib/Gscan2pdf/Unpaper.pm:162 msgid "Right" msgstr "Dreta" #: lib/Gscan2pdf/Unpaper.pm:135 msgid "Use 'right' for scanning from the right edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:139 lib/Gscan2pdf/Unpaper.pm:167 msgid "Bottom" msgstr "Inferior" #: lib/Gscan2pdf/Unpaper.pm:140 msgid "Use 'bottom' for scanning from the bottom." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:147 msgid "Align to edge" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:148 msgid "Edge to which to align the page." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:153 msgid "Use 'left' to align to the left edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:158 msgid "Use 'top' to align to the top edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:163 msgid "Use 'right' to align to the right edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:168 msgid "Use 'bottom' to align to the bottom." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:174 msgid "Border margin" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:178 msgid "Vertical margin" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:180 msgid "" "Vertical distance to keep from the sheet edge when aligning a border area." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:189 msgid "Horizontal margin" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:191 msgid "" "Horizontal distance to keep from the sheet edge when aligning a border area." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:202 msgid "White threshold" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:204 msgid "Brightness ratio above which a pixel is considered white." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:212 msgid "Black threshold" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:214 msgid "" "Brightness ratio below which a pixel is considered black (non-gray). This is " "used by the gray-filter. This value is also used when converting a grayscale " "image to black-and-white mode." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:250 msgid "Deskew" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:280 msgid "Border" msgstr "Contorn" #: lib/Gscan2pdf/Unpaper.pm:337 msgid "Filters" msgstr "Filtres" #: t/05_Dialog.t:23 msgid "title" msgstr "" #: t/05_Dialog.t:26 t/05_Dialog.t:31 t/05_Dialog.t:32 t/05_Dialog.t:38 #: t/05_Dialog.t:39 msgid "border-width" msgstr "" #: t/061_Scanner_Dialog.t:34 msgid "dir" msgstr "" #: t/061_Scanner_Dialog.t:36 msgid "max-pages" msgstr "" #: t/061_Scanner_Dialog.t:39 msgid "side-to-scan" msgstr "" #: t/061_Scanner_Dialog.t:40 t/061_Scanner_Dialog.t:185 msgid "available-scan-options" msgstr "" #: t/061_Scanner_Dialog.t:171 t/062_Scanner_Dialog.t:73 msgid "profile" msgstr "" gscan2pdf-1.2.3/po/gscan2pdf-fa.po0000644000175000017500000011136012243440507015206 0ustar jeffjeff# Persian translation for gscan2pdf # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the gscan2pdf package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: gscan2pdf\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-10-25 08:12+0200\n" "PO-Revision-Date: 2008-03-29 07:21+0000\n" "Last-Translator: Artin \n" "Language-Team: Persian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-19 09:22+0000\n" "X-Generator: Launchpad (build 16831)\n" #: bin/gscan2pdf:157 msgid "Error displaying help" msgstr "" #: bin/gscan2pdf:201 msgid "" "Error: unable to load settings.\n" "Backing up settings\n" "Reverting to defaults" msgstr "" #: bin/gscan2pdf:244 msgid "A4" msgstr "A4" #: bin/gscan2pdf:250 msgid "US Letter" msgstr "" #: bin/gscan2pdf:256 msgid "US Legal" msgstr "" #: bin/gscan2pdf:323 bin/gscan2pdf:344 #, perl-format msgid "Cannot read file: %s" msgstr "" #: bin/gscan2pdf:451 msgid "_File" msgstr "_پرونده" #: bin/gscan2pdf:454 msgid "_New" msgstr "_جدید" #: bin/gscan2pdf:455 msgid "Clears all pages" msgstr "" #: bin/gscan2pdf:459 msgid "_Open" msgstr "" #: bin/gscan2pdf:460 msgid "Open image file(s)" msgstr "" #: bin/gscan2pdf:465 msgid "S_can" msgstr "" #: bin/gscan2pdf:467 msgid "Scan document" msgstr "" #: bin/gscan2pdf:471 bin/gscan2pdf:472 bin/gscan2pdf:2582 msgid "Save" msgstr "ذخیره" #: bin/gscan2pdf:476 msgid "_Email as PDF" msgstr "" #: bin/gscan2pdf:477 msgid "Attach as PDF to a new email" msgstr "" #: bin/gscan2pdf:480 msgid "_Print" msgstr "" #: bin/gscan2pdf:481 msgid "Print" msgstr "" #: bin/gscan2pdf:485 msgid "_Compress temporary files" msgstr "" #: bin/gscan2pdf:486 msgid "Compress temporary files" msgstr "" #: bin/gscan2pdf:490 msgid "_Quit" msgstr "_خروج" #: bin/gscan2pdf:491 msgid "Quit" msgstr "خروج" #: bin/gscan2pdf:495 msgid "_Edit" msgstr "_ویرایش" #: bin/gscan2pdf:497 msgid "_Undo" msgstr "_برگردان" #: bin/gscan2pdf:497 msgid "Undo" msgstr "برگردان" #: bin/gscan2pdf:501 msgid "_Redo" msgstr "_دوباره" #: bin/gscan2pdf:502 msgid "Redo" msgstr "دوباره" #: bin/gscan2pdf:506 msgid "Cu_t" msgstr "برش" #: bin/gscan2pdf:507 msgid "Cut selection" msgstr "" #: bin/gscan2pdf:511 msgid "_Copy" msgstr "" #: bin/gscan2pdf:512 msgid "Copy selection" msgstr "" #: bin/gscan2pdf:516 msgid "_Paste" msgstr "" #: bin/gscan2pdf:517 msgid "Paste selection" msgstr "" #: bin/gscan2pdf:521 msgid "_Delete" msgstr "_حذف" #: bin/gscan2pdf:522 msgid "Delete selected pages" msgstr "" #: bin/gscan2pdf:526 msgid "_Renumber" msgstr "" #: bin/gscan2pdf:527 msgid "Renumber pages" msgstr "" #: bin/gscan2pdf:529 bin/gscan2pdf:679 msgid "_Select" msgstr "" #: bin/gscan2pdf:532 msgid "_All" msgstr "" #: bin/gscan2pdf:533 msgid "Select all pages" msgstr "" #: bin/gscan2pdf:536 msgid "_Odd" msgstr "" #: bin/gscan2pdf:537 msgid "Select all odd-numbered pages" msgstr "" #: bin/gscan2pdf:541 msgid "_Even" msgstr "" #: bin/gscan2pdf:542 msgid "Select all evenly-numbered pages" msgstr "" #: bin/gscan2pdf:547 msgid "_Blank" msgstr "" #: bin/gscan2pdf:548 msgid "Select pages with low standard deviation" msgstr "" #: bin/gscan2pdf:552 msgid "_Dark" msgstr "" #: bin/gscan2pdf:553 msgid "Select dark pages" msgstr "" #: bin/gscan2pdf:558 msgid "_Modified" msgstr "" #: bin/gscan2pdf:560 msgid "Select modified pages since last OCR" msgstr "" #: bin/gscan2pdf:565 msgid "_No OCR" msgstr "" #: bin/gscan2pdf:566 msgid "Select pages with no OCR output" msgstr "" #: bin/gscan2pdf:570 msgid "_Clear OCR" msgstr "" #: bin/gscan2pdf:571 msgid "Clear OCR output from selected pages" msgstr "" #: bin/gscan2pdf:575 msgid "Propert_ies" msgstr "" #: bin/gscan2pdf:576 msgid "Edit image properties" msgstr "" #: bin/gscan2pdf:580 msgid "Prefere_nces" msgstr "" #: bin/gscan2pdf:581 msgid "Edit preferences" msgstr "" #: bin/gscan2pdf:585 msgid "_View" msgstr "_نما" #: bin/gscan2pdf:588 msgid "Zoom _100%" msgstr "" #: bin/gscan2pdf:589 msgid "Zoom to 100%" msgstr "بزرگ‌نمایی به ۱۰۰٪" #: bin/gscan2pdf:593 msgid "Zoom to _fit" msgstr "" #: bin/gscan2pdf:594 msgid "Zoom to fit" msgstr "" #: bin/gscan2pdf:598 msgid "Zoom _in" msgstr "" #: bin/gscan2pdf:599 msgid "Zoom in" msgstr "" #: bin/gscan2pdf:603 msgid "Zoom _out" msgstr "" #: bin/gscan2pdf:604 msgid "Zoom out" msgstr "" #: bin/gscan2pdf:609 bin/gscan2pdf:611 msgid "Rotate 90 clockwise" msgstr "" #: bin/gscan2pdf:617 bin/gscan2pdf:619 msgid "Rotate 180" msgstr "" #: bin/gscan2pdf:625 bin/gscan2pdf:627 msgid "Rotate 90 anticlockwise" msgstr "" #: bin/gscan2pdf:632 msgid "_Tools" msgstr "_ابزارها" #: bin/gscan2pdf:634 msgid "_Threshold" msgstr "" #: bin/gscan2pdf:635 msgid "Change each pixel above this threshold to black" msgstr "" #: bin/gscan2pdf:639 msgid "_Negate" msgstr "" #: bin/gscan2pdf:640 msgid "Converts black to white and vice versa" msgstr "" #: bin/gscan2pdf:644 msgid "_Unsharp Mask" msgstr "" #: bin/gscan2pdf:645 msgid "Apply an unsharp mask" msgstr "" #: bin/gscan2pdf:648 msgid "_Crop" msgstr "" #: bin/gscan2pdf:649 msgid "Crop pages" msgstr "" #: bin/gscan2pdf:653 msgid "_Clean up" msgstr "" #: bin/gscan2pdf:654 bin/gscan2pdf:4085 msgid "Clean up scanned images with unpaper" msgstr "" #: bin/gscan2pdf:657 msgid "_OCR" msgstr "" #: bin/gscan2pdf:658 msgid "Optical Character Recognition" msgstr "" #: bin/gscan2pdf:660 msgid "U_ser-defined" msgstr "" #: bin/gscan2pdf:663 bin/gscan2pdf:665 msgid "_Help" msgstr "_راهنما" #: bin/gscan2pdf:666 msgid "Help" msgstr "راهنما" #: bin/gscan2pdf:668 msgid "_About" msgstr "_درباره" #: bin/gscan2pdf:674 msgid "_Drag" msgstr "" #: bin/gscan2pdf:675 msgid "Use the hand tool" msgstr "" #: bin/gscan2pdf:680 msgid "Use the rectangular selection tool" msgstr "" #: bin/gscan2pdf:684 msgid "_Paint" msgstr "" #: bin/gscan2pdf:685 msgid "Use the painter tool" msgstr "" #: bin/gscan2pdf:965 lib/Gscan2pdf/Document.pm:2594 #: lib/Gscan2pdf/Document.pm:2595 msgid "Error copying page" msgstr "" #: bin/gscan2pdf:1082 msgid "Image" msgstr "" #: bin/gscan2pdf:1117 msgid "OCR Output" msgstr "" #: bin/gscan2pdf:1174 msgid "Mode" msgstr "حالت" #: bin/gscan2pdf:1176 msgid "Lineart" msgstr "" #: bin/gscan2pdf:1177 msgid "Grayscale" msgstr "" #: bin/gscan2pdf:1178 msgid "Gray" msgstr "خاکستری" #: bin/gscan2pdf:1179 msgid "Color" msgstr "" #: bin/gscan2pdf:1180 msgid "Black & White" msgstr "سیاه و سفید" #: bin/gscan2pdf:1181 msgid "True Gray" msgstr "" #: bin/gscan2pdf:1182 msgid "Binary" msgstr "" #: bin/gscan2pdf:1183 bin/gscan2pdf:1242 bin/gscan2pdf:1243 msgid "Auto" msgstr "خودکار" #: bin/gscan2pdf:1184 msgid "Halftone" msgstr "" #: bin/gscan2pdf:1185 msgid "24bit Color" msgstr "" #: bin/gscan2pdf:1189 bin/gscan2pdf:2547 bin/gscan2pdf:2644 msgid "Compression" msgstr "فشرده سازی‌" #: bin/gscan2pdf:1191 bin/gscan2pdf:2539 bin/gscan2pdf:2636 msgid "None" msgstr "هیچ‌کدام" #: bin/gscan2pdf:1192 bin/gscan2pdf:2537 bin/gscan2pdf:2601 bin/gscan2pdf:2622 msgid "JPEG" msgstr "" #: bin/gscan2pdf:1195 bin/gscan2pdf:8127 msgid "Resolution" msgstr "" #: bin/gscan2pdf:1196 msgid "Brightness" msgstr "" #: bin/gscan2pdf:1197 msgid "Gain" msgstr "" #: bin/gscan2pdf:1198 msgid "Contrast" msgstr "" #: bin/gscan2pdf:1199 bin/gscan2pdf:6406 bin/gscan2pdf:6417 bin/gscan2pdf:6620 msgid "Threshold" msgstr "" #: bin/gscan2pdf:1201 msgid "Speed" msgstr "" #: bin/gscan2pdf:1203 bin/gscan2pdf:1210 bin/gscan2pdf:1217 bin/gscan2pdf:1224 #: bin/gscan2pdf:1231 msgid "Yes" msgstr "" #: bin/gscan2pdf:1204 bin/gscan2pdf:1211 bin/gscan2pdf:1218 bin/gscan2pdf:1225 #: bin/gscan2pdf:1232 msgid "No" msgstr "" #: bin/gscan2pdf:1208 msgid "Batch scan" msgstr "" #: bin/gscan2pdf:1215 bin/gscan2pdf:1222 msgid "Wait for button" msgstr "" #: bin/gscan2pdf:1229 msgid "Cache calibration" msgstr "" #: bin/gscan2pdf:1236 msgid "Source" msgstr "" #: bin/gscan2pdf:1238 msgid "Normal" msgstr "" #: bin/gscan2pdf:1239 msgid "ADF" msgstr "" #: bin/gscan2pdf:1240 msgid "Automatic Document Feeder" msgstr "" #: bin/gscan2pdf:1241 msgid "XPA" msgstr "" #: bin/gscan2pdf:1244 msgid "Flatbed" msgstr "" #: bin/gscan2pdf:1245 msgid "Transparency Adapter" msgstr "" #: bin/gscan2pdf:1246 msgid "Transparency Unit" msgstr "" #: bin/gscan2pdf:1249 bin/gscan2pdf:1251 msgid "Page Width" msgstr "" #: bin/gscan2pdf:1250 bin/gscan2pdf:1252 msgid "Page Height" msgstr "" #: bin/gscan2pdf:1253 msgid "Top Overscan" msgstr "" #: bin/gscan2pdf:1254 msgid "Bottom Overscan" msgstr "" #: bin/gscan2pdf:1256 bin/gscan2pdf:1263 msgid "ADF Mode" msgstr "" #: bin/gscan2pdf:1258 bin/gscan2pdf:1265 msgid "Simplex" msgstr "" #: bin/gscan2pdf:1259 bin/gscan2pdf:1266 msgid "Duplex" msgstr "" #: bin/gscan2pdf:1301 bin/gscan2pdf:1306 msgid "Pick crashed session to restore" msgstr "" #: bin/gscan2pdf:1308 bin/gscan2pdf:2609 msgid "Session" msgstr "" #: bin/gscan2pdf:1338 #, perl-format msgid "" "Warning: unable to use %s for temporary storage. Defaulting to %s instead." msgstr "" #: bin/gscan2pdf:1441 msgid "GOCR" msgstr "" #: bin/gscan2pdf:1441 msgid "Process image with GOCR." msgstr "" #: bin/gscan2pdf:1445 msgid "Tesseract" msgstr "" #: bin/gscan2pdf:1446 msgid "Process image with Tesseract." msgstr "" #: bin/gscan2pdf:1450 msgid "Ocropus" msgstr "" #: bin/gscan2pdf:1450 msgid "Process image with Ocropus." msgstr "" #: bin/gscan2pdf:1454 msgid "Cuneiform" msgstr "" #: bin/gscan2pdf:1455 msgid "Process image with Cuneiform." msgstr "" #: bin/gscan2pdf:1461 msgid "Save image and Save as PDF both require imagemagick\n" msgstr "" #: bin/gscan2pdf:1465 msgid "Save image requires libtiff\n" msgstr "" #: bin/gscan2pdf:1469 msgid "Save as DjVu requires djvulibre-bin\n" msgstr "" #: bin/gscan2pdf:1473 msgid "Email as PDF requires xdg-email\n" msgstr "" #: bin/gscan2pdf:1518 msgid "The rotating options and unpaper support require perlmagick\n" msgstr "" #: bin/gscan2pdf:1524 msgid "unpaper missing\n" msgstr "" #: bin/gscan2pdf:1534 msgid "OCR requires gocr, tesseract, ocropus, or cuneiform\n" msgstr "" #: bin/gscan2pdf:1539 msgid "Warning: missing packages" msgstr "" #: bin/gscan2pdf:1544 msgid "Don't show this message again" msgstr "" #: bin/gscan2pdf:1753 msgid "" "Some pages have not been saved.\n" "Do you really want to clear all pages?" msgstr "" #: bin/gscan2pdf:1828 bin/gscan2pdf:1858 #, perl-format msgid "Process %i of %i (%s)" msgstr "" #: bin/gscan2pdf:1867 #, perl-format msgid "Process %i of %i" msgstr "" #: bin/gscan2pdf:1895 msgid "Open image" msgstr "" #: bin/gscan2pdf:1903 bin/gscan2pdf:2797 bin/gscan2pdf:3113 msgid "Image files" msgstr "" #: bin/gscan2pdf:1940 msgid "Pages to extract" msgstr "" #: bin/gscan2pdf:1943 bin/gscan2pdf:2117 bin/gscan2pdf:2586 bin/gscan2pdf:3353 #: bin/gscan2pdf:3494 bin/gscan2pdf:4104 bin/gscan2pdf:4514 bin/gscan2pdf:5825 #: bin/gscan2pdf:6409 bin/gscan2pdf:6495 bin/gscan2pdf:6565 bin/gscan2pdf:6737 #: bin/gscan2pdf:7011 bin/gscan2pdf:7274 bin/gscan2pdf:7757 bin/gscan2pdf:8123 #: lib/Gscan2pdf/Dialog.pm:56 lib/Gscan2pdf/Dialog/Renumber.pm:80 #: lib/Gscan2pdf/Scanner/Dialog.pm:201 t/05_Dialog.t:28 msgid "vbox" msgstr "" #: bin/gscan2pdf:1946 msgid "First page to extract" msgstr "" #: bin/gscan2pdf:1953 msgid "Last page to extract" msgstr "" #: bin/gscan2pdf:2042 lib/Gscan2pdf/Dialog/Renumber.pm:83 msgid "Page Range" msgstr "" #: bin/gscan2pdf:2092 msgid "Metadata" msgstr "" #: bin/gscan2pdf:2101 msgid "Date" msgstr "" #: bin/gscan2pdf:2114 msgid "Select Date" msgstr "" #: bin/gscan2pdf:2136 msgid "Today" msgstr "" #: bin/gscan2pdf:2150 msgid "Year-Month-Day" msgstr "" #: bin/gscan2pdf:2156 msgid "Document author" msgstr "" #: bin/gscan2pdf:2165 msgid "Title" msgstr "" #: bin/gscan2pdf:2174 msgid "Subject" msgstr "" #: bin/gscan2pdf:2183 msgid "Keywords" msgstr "" #: bin/gscan2pdf:2245 msgid "Editing text" msgstr "" #: bin/gscan2pdf:2252 bin/gscan2pdf:2258 bin/gscan2pdf:2332 msgid "text" msgstr "" #: bin/gscan2pdf:2352 msgid "PDF filename" msgstr "" #: bin/gscan2pdf:2381 msgid "PDF files" msgstr "" #: bin/gscan2pdf:2405 bin/gscan2pdf:2823 bin/gscan2pdf:2880 bin/gscan2pdf:2976 #: bin/gscan2pdf:3035 bin/gscan2pdf:3087 bin/gscan2pdf:3275 #, perl-format msgid "File %s is read-only" msgstr "" #: bin/gscan2pdf:2482 msgid "JPEG Quality" msgstr "" #: bin/gscan2pdf:2496 msgid "Downsample to" msgstr "" #: bin/gscan2pdf:2501 msgid "PPI" msgstr "" #: bin/gscan2pdf:2520 msgid "Automatic" msgstr "" #: bin/gscan2pdf:2521 msgid "Let gscan2pdf which type of compression to use." msgstr "" #: bin/gscan2pdf:2524 bin/gscan2pdf:2616 msgid "LZW" msgstr "" #: bin/gscan2pdf:2525 bin/gscan2pdf:2617 msgid "Compress output with Lempel-Ziv & Welch encoding." msgstr "" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Zip" msgstr "" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Compress output with deflate encoding." msgstr "" #: bin/gscan2pdf:2529 bin/gscan2pdf:2624 msgid "Packbits" msgstr "" #: bin/gscan2pdf:2530 bin/gscan2pdf:2625 msgid "Compress output with Packbits encoding." msgstr "" #: bin/gscan2pdf:2536 bin/gscan2pdf:2604 msgid "PNG" msgstr "" #: bin/gscan2pdf:2536 msgid "Compress output with PNG encoding." msgstr "" #: bin/gscan2pdf:2537 bin/gscan2pdf:2622 msgid "Compress output with JPEG encoding." msgstr "" #: bin/gscan2pdf:2540 bin/gscan2pdf:2637 msgid "Use no compression algorithm on output." msgstr "" #: bin/gscan2pdf:2594 msgid "Image type" msgstr "" #: bin/gscan2pdf:2598 msgid "PDF" msgstr "" #: bin/gscan2pdf:2598 msgid "Portable Document Format" msgstr "" #: bin/gscan2pdf:2599 msgid "GIF" msgstr "" #: bin/gscan2pdf:2599 msgid "CompuServe graphics interchange format" msgstr "" #: bin/gscan2pdf:2602 msgid "Joint Photographic Experts Group JFIF format" msgstr "" #: bin/gscan2pdf:2604 msgid "Portable Network Graphics" msgstr "" #: bin/gscan2pdf:2605 msgid "PNM" msgstr "" #: bin/gscan2pdf:2605 msgid "Portable anymap" msgstr "" #: bin/gscan2pdf:2606 msgid "PS" msgstr "" #: bin/gscan2pdf:2606 msgid "Postscript" msgstr "" #: bin/gscan2pdf:2607 msgid "TIFF" msgstr "" #: bin/gscan2pdf:2607 msgid "Tagged Image File Format" msgstr "" #: bin/gscan2pdf:2608 msgid "Text" msgstr "" #: bin/gscan2pdf:2608 msgid "Plain text" msgstr "" #: bin/gscan2pdf:2609 msgid "gscan2pdf session file" msgstr "" #: bin/gscan2pdf:2611 msgid "DjVu" msgstr "" #: bin/gscan2pdf:2611 msgid "Deja Vu" msgstr "" #: bin/gscan2pdf:2628 msgid "G3" msgstr "" #: bin/gscan2pdf:2629 msgid "Compress output with CCITT Group 3 encoding." msgstr "" #: bin/gscan2pdf:2632 msgid "G4" msgstr "" #: bin/gscan2pdf:2633 msgid "Compress output with CCITT Group 4 encoding." msgstr "" #: bin/gscan2pdf:2649 msgid "tiff" msgstr "" #: bin/gscan2pdf:2681 msgid "Font for non-ASCII text" msgstr "" #: bin/gscan2pdf:2790 msgid "TIFF filename" msgstr "" #: bin/gscan2pdf:2848 msgid "Text filename" msgstr "" #: bin/gscan2pdf:2856 msgid "Text files" msgstr "" #: bin/gscan2pdf:2944 msgid "PS filename" msgstr "" #: bin/gscan2pdf:2951 msgid "Postscript files" msgstr "" #: bin/gscan2pdf:3003 msgid "gscan2pdf session filename" msgstr "" #: bin/gscan2pdf:3010 msgid "gscan2pdf session files" msgstr "" #: bin/gscan2pdf:3093 #, perl-format msgid "" "File %s exists.\n" "Really overwrite?" msgstr "" #: bin/gscan2pdf:3106 msgid "Image filename" msgstr "" #: bin/gscan2pdf:3245 msgid "DjVu filename" msgstr "" #: bin/gscan2pdf:3252 msgid "DjVu files" msgstr "" #: bin/gscan2pdf:3349 msgid "Email as PDF" msgstr "" #: bin/gscan2pdf:3454 msgid "Error creating email" msgstr "" #: bin/gscan2pdf:3490 bin/gscan2pdf:4313 msgid "Scan Document" msgstr "" #: bin/gscan2pdf:3507 lib/Gscan2pdf/Scanner/Dialog.pm:248 msgid "Page Options" msgstr "" #: bin/gscan2pdf:3510 lib/Gscan2pdf/Scanner/Dialog.pm:251 msgid "# Pages" msgstr "" #: bin/gscan2pdf:3519 lib/Gscan2pdf/PageRange.pm:34 #: lib/Gscan2pdf/Scanner/Dialog.pm:261 msgid "All" msgstr "" #: bin/gscan2pdf:3520 lib/Gscan2pdf/Scanner/Dialog.pm:262 msgid "Scan all pages" msgstr "" #: bin/gscan2pdf:3532 bin/gscan2pdf:3537 lib/Gscan2pdf/Scanner/Dialog.pm:274 #: lib/Gscan2pdf/Scanner/Dialog.pm:279 msgid "Set number of pages to scan" msgstr "" #: bin/gscan2pdf:3550 lib/Gscan2pdf/Scanner/Dialog.pm:308 msgid "Extended page numbering" msgstr "" #: bin/gscan2pdf:3554 lib/Gscan2pdf/Scanner/Dialog.pm:312 msgid "Page number" msgstr "" #: bin/gscan2pdf:3563 lib/Gscan2pdf/Dialog/Renumber.pm:111 #: lib/Gscan2pdf/Scanner/Dialog.pm:321 msgid "Start" msgstr "" #: bin/gscan2pdf:3572 lib/Gscan2pdf/Dialog/Renumber.pm:132 #: lib/Gscan2pdf/Scanner/Dialog.pm:340 msgid "Increment" msgstr "" #: bin/gscan2pdf:3604 lib/Gscan2pdf/Scanner/Dialog.pm:372 msgid "Source document" msgstr "" #: bin/gscan2pdf:3611 lib/Gscan2pdf/Scanner/Dialog.pm:379 msgid "Single sided" msgstr "" #: bin/gscan2pdf:3612 lib/Gscan2pdf/Scanner/Dialog.pm:380 msgid "Source document is single-sided" msgstr "" #: bin/gscan2pdf:3622 lib/Gscan2pdf/Scanner/Dialog.pm:390 msgid "Double sided" msgstr "" #: bin/gscan2pdf:3623 lib/Gscan2pdf/Scanner/Dialog.pm:391 msgid "Source document is double-sided" msgstr "" #: bin/gscan2pdf:3629 lib/Gscan2pdf/Scanner/Dialog.pm:397 msgid "Side to scan" msgstr "" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Facing" msgstr "" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Reverse" msgstr "" #: bin/gscan2pdf:3655 lib/Gscan2pdf/Scanner/Dialog.pm:418 msgid "Sets which side of a double-sided document is scanned" msgstr "" #: bin/gscan2pdf:3719 msgid "Scan Options" msgstr "" #: bin/gscan2pdf:3722 msgid "Device-dependent options" msgstr "" #: bin/gscan2pdf:3729 lib/Gscan2pdf/Scanner/Dialog.pm:458 msgid "Scan profiles" msgstr "" #: bin/gscan2pdf:3778 bin/gscan2pdf:3784 lib/Gscan2pdf/Scanner/Dialog.pm:479 #: lib/Gscan2pdf/Scanner/Dialog.pm:485 msgid "Name of scan profile" msgstr "" #: bin/gscan2pdf:3828 lib/Gscan2pdf/Scanner/Dialog.pm:518 msgid "Scan" msgstr "" #: bin/gscan2pdf:3866 msgid "Must scan facing pages first" msgstr "" #: bin/gscan2pdf:3977 msgid "Post-processing" msgstr "" #: bin/gscan2pdf:3986 bin/gscan2pdf:4008 msgid "Rotate" msgstr "" #: bin/gscan2pdf:3987 bin/gscan2pdf:4009 msgid "Rotate image after scanning" msgstr "" #: bin/gscan2pdf:3990 msgid "Both sides" msgstr "" #: bin/gscan2pdf:3990 msgid "Both sides." msgstr "" #: bin/gscan2pdf:3991 msgid "Facing side" msgstr "" #: bin/gscan2pdf:3991 msgid "Facing side." msgstr "" #: bin/gscan2pdf:3992 msgid "Reverse side" msgstr "" #: bin/gscan2pdf:3992 msgid "Reverse side." msgstr "" #: bin/gscan2pdf:3995 bin/gscan2pdf:4013 msgid "Select side to rotate" msgstr "" #: bin/gscan2pdf:3998 msgid "90" msgstr "" #: bin/gscan2pdf:3998 msgid "Rotate image 90 degrees clockwise." msgstr "" #: bin/gscan2pdf:3999 msgid "180" msgstr "" #: bin/gscan2pdf:3999 msgid "Rotate image 180 degrees clockwise." msgstr "" #: bin/gscan2pdf:4000 msgid "270" msgstr "" #: bin/gscan2pdf:4000 msgid "Rotate image 90 degrees anticlockwise." msgstr "" #: bin/gscan2pdf:4003 bin/gscan2pdf:4016 msgid "Select direction of rotation" msgstr "" #: bin/gscan2pdf:4083 msgid "Clean up images" msgstr "" #: bin/gscan2pdf:4094 msgid "Options" msgstr "" #: bin/gscan2pdf:4095 msgid "Set unpaper options" msgstr "" #: bin/gscan2pdf:4101 msgid "unpaper options" msgstr "" #: bin/gscan2pdf:4136 bin/gscan2pdf:4137 msgid "OCR scanned pages" msgstr "" #: bin/gscan2pdf:4151 msgid "Select OCR engine" msgstr "" #: bin/gscan2pdf:4210 lib/Gscan2pdf/Scanner/Dialog.pm:634 msgid "Fetching list of devices" msgstr "" #: bin/gscan2pdf:4225 lib/Gscan2pdf/Scanner/Dialog.pm:654 msgid "No devices found" msgstr "" #: bin/gscan2pdf:4367 bin/gscan2pdf:4732 bin/gscan2pdf:4777 bin/gscan2pdf:5214 #: lib/Gscan2pdf/Scanner/Dialog.pm:343 lib/Gscan2pdf/Scanner/Dialog.pm:348 #: t/061_Scanner_Dialog.t:38 t/061_Scanner_Dialog.t:95 msgid "page-number-increment" msgstr "" #: bin/gscan2pdf:4374 bin/gscan2pdf:4729 bin/gscan2pdf:4730 bin/gscan2pdf:4776 #: bin/gscan2pdf:5213 lib/Gscan2pdf/Scanner/Dialog.pm:361 #: t/061_Scanner_Dialog.t:37 msgid "page-number-start" msgstr "" #: bin/gscan2pdf:4663 lib/Gscan2pdf/Scanner/Dialog.pm:210 msgid "Device" msgstr "" #: bin/gscan2pdf:4671 lib/Gscan2pdf/Scanner/Dialog.pm:213 msgid "Rescan for devices" msgstr "" #: bin/gscan2pdf:4694 lib/Gscan2pdf/Scanner/Dialog.pm:237 msgid "Sets the device to be used for the scan" msgstr "" #: bin/gscan2pdf:4780 lib/Gscan2pdf/Scanner/Dialog.pm:300 #: t/061_Scanner_Dialog.t:35 msgid "num-pages" msgstr "" #: bin/gscan2pdf:4821 msgid "Scanning" msgstr "" #: bin/gscan2pdf:4974 msgid "Unable to load image" msgstr "" #: bin/gscan2pdf:5004 msgid "print-pages" msgstr "" #: bin/gscan2pdf:5008 msgid "page-ranges" msgstr "" #: bin/gscan2pdf:5405 msgid "Patches gratefully received from:" msgstr "" #: bin/gscan2pdf:5407 msgid "To aid the scan-to-PDF process" msgstr "" #: bin/gscan2pdf:5408 msgid "Copyright 2006--2012 Jeffrey Ratcliffe" msgstr "" #: bin/gscan2pdf:5492 bin/gscan2pdf:6028 msgid "The options cache seems to be empty. Reload device-dependent options?" msgstr "" #: bin/gscan2pdf:5519 bin/gscan2pdf:6054 msgid "Updating options" msgstr "" #: bin/gscan2pdf:5571 msgid "Paper size" msgstr "" #: bin/gscan2pdf:5572 bin/gscan2pdf:5672 bin/gscan2pdf:5840 bin/gscan2pdf:6769 msgid "Width" msgstr "" #: bin/gscan2pdf:5573 bin/gscan2pdf:5678 bin/gscan2pdf:5841 bin/gscan2pdf:6780 msgid "Height" msgstr "" #: bin/gscan2pdf:5574 bin/gscan2pdf:5684 bin/gscan2pdf:5842 #: lib/Gscan2pdf/Unpaper.pm:124 lib/Gscan2pdf/Unpaper.pm:152 msgid "Left" msgstr "" #: bin/gscan2pdf:5575 bin/gscan2pdf:5690 bin/gscan2pdf:5843 #: lib/Gscan2pdf/Unpaper.pm:129 lib/Gscan2pdf/Unpaper.pm:157 msgid "Top" msgstr "" #: bin/gscan2pdf:5589 bin/gscan2pdf:5703 bin/gscan2pdf:6232 msgid "Manual" msgstr "" #: bin/gscan2pdf:5590 bin/gscan2pdf:5700 msgid "Edit" msgstr "" #: bin/gscan2pdf:5591 msgid "Selects or edits the paper size" msgstr "" #: bin/gscan2pdf:5673 msgid "Width of scan area" msgstr "" #: bin/gscan2pdf:5679 msgid "Height of scan area" msgstr "" #: bin/gscan2pdf:5685 msgid "Top-left x position of scan area" msgstr "" #: bin/gscan2pdf:5691 msgid "Top-left y position of scan area" msgstr "" #: bin/gscan2pdf:5822 msgid "Edit paper size" msgstr "" #: bin/gscan2pdf:5839 msgid "Name" msgstr "" #: bin/gscan2pdf:5893 msgid "Cannot delete all paper sizes" msgstr "" #: bin/gscan2pdf:5955 msgid "" "The following paper sizes are too big to be scanned by the selected device:" msgstr "" #: bin/gscan2pdf:6419 bin/gscan2pdf:6605 msgid "%" msgstr "" #: bin/gscan2pdf:6492 msgid "Negate" msgstr "" #: bin/gscan2pdf:6562 msgid "Unsharp mask" msgstr "" #: bin/gscan2pdf:6573 msgid "Radius" msgstr "" #: bin/gscan2pdf:6575 bin/gscan2pdf:6592 bin/gscan2pdf:6747 bin/gscan2pdf:6759 #: bin/gscan2pdf:6771 bin/gscan2pdf:6782 msgid "pixels" msgstr "" #: bin/gscan2pdf:6582 msgid "" "The radius of the Gaussian, in pixels, not counting the center pixel (0 = " "automatic)." msgstr "" #: bin/gscan2pdf:6590 msgid "Sigma" msgstr "" #: bin/gscan2pdf:6597 msgid "The standard deviation of the Gaussian." msgstr "" #: bin/gscan2pdf:6603 msgid "Amount" msgstr "" #: bin/gscan2pdf:6612 msgid "" "The percentage of the difference between the original and the blur image " "that is added back into the original." msgstr "" #: bin/gscan2pdf:6627 msgid "" "The threshold, as a fraction of QuantumRange, needed to apply the difference " "amount." msgstr "" #: bin/gscan2pdf:6733 msgid "Crop" msgstr "" #: bin/gscan2pdf:6745 msgid "x" msgstr "" #: bin/gscan2pdf:6751 msgid "The x-position of the left hand edge of the crop." msgstr "" #: bin/gscan2pdf:6757 msgid "y" msgstr "" #: bin/gscan2pdf:6763 msgid "The y-position of the top edge of the crop." msgstr "" #: bin/gscan2pdf:6774 msgid "The width of the crop." msgstr "" #: bin/gscan2pdf:6785 msgid "The height of the crop." msgstr "" #: bin/gscan2pdf:6906 msgid "label" msgstr "" #: bin/gscan2pdf:7007 msgid "unpaper" msgstr "" #: bin/gscan2pdf:7216 bin/gscan2pdf:7244 msgid "Language to recognise" msgstr "" #: bin/gscan2pdf:7227 msgid "English" msgstr "" #: bin/gscan2pdf:7270 msgid "OCR" msgstr "" #: bin/gscan2pdf:7279 msgid "OCR Engine" msgstr "" #: bin/gscan2pdf:7323 msgid "Start OCR" msgstr "" #: bin/gscan2pdf:7339 msgid "No page selected" msgstr "" #: bin/gscan2pdf:7374 msgid "" "Some pages have not been saved.\n" "Do you really want to quit?" msgstr "" #: bin/gscan2pdf:7432 #, perl-format msgid "" "The help viewer requires module Gtk2::Ex::PodViewer\n" "Alternatively, try: %s %s\n" "\n" msgstr "" #: bin/gscan2pdf:7698 msgid "This operation cannot be undone. Are you sure?" msgstr "" #: bin/gscan2pdf:7753 msgid "Preferences" msgstr "" #: bin/gscan2pdf:7762 msgid "Frontend" msgstr "" #: bin/gscan2pdf:7766 msgid "libsane-perl" msgstr "" #: bin/gscan2pdf:7767 msgid "Scan using the perl bindings for SANE." msgstr "" #: bin/gscan2pdf:7770 msgid "scanimage" msgstr "" #: bin/gscan2pdf:7771 msgid "Scan using the scanimage frontend." msgstr "" #: bin/gscan2pdf:7775 msgid "scanimage-perl" msgstr "" #: bin/gscan2pdf:7776 msgid "Scan using the scanimage-perl frontend." msgstr "" #: bin/gscan2pdf:7779 msgid "scanadf-perl" msgstr "" #: bin/gscan2pdf:7780 msgid "Scan using the scanadf-perl frontend." msgstr "" #: bin/gscan2pdf:7785 msgid "scanadf" msgstr "" #: bin/gscan2pdf:7786 msgid "Scan using the scanadf frontend." msgstr "" #: bin/gscan2pdf:7791 msgid "Cycle SANE handle after scan" msgstr "" #: bin/gscan2pdf:7814 msgid "Default filename for PDFs" msgstr "" #: bin/gscan2pdf:7820 msgid "" "%a\t author\n" "%t\t title\n" "%y\t document's year\n" "%Y\t today's year\n" "%m\t document's month\n" "%M\t today's month\n" "%d\t document's day\n" "%D\t today's day" msgstr "" #: bin/gscan2pdf:7830 msgid "Scan command prefix" msgstr "" #: bin/gscan2pdf:7839 msgid "Restore window settings on startup" msgstr "" #: bin/gscan2pdf:7845 msgid "Cache device-dependent options" msgstr "" #: bin/gscan2pdf:7851 msgid "Clear device-dependent options cache" msgstr "" #: bin/gscan2pdf:7862 msgid "Temporary directory" msgstr "" #: bin/gscan2pdf:7867 msgid "Browse" msgstr "" #: bin/gscan2pdf:7871 msgid "Select temporary directory" msgstr "" #: bin/gscan2pdf:7888 msgid "Blank threshold" msgstr "" #: bin/gscan2pdf:7893 msgid "Threshold used for selecting blank pages" msgstr "" #: bin/gscan2pdf:7899 msgid "Dark threshold" msgstr "" #: bin/gscan2pdf:7904 msgid "Threshold used for selecting dark pages" msgstr "" #: bin/gscan2pdf:7910 msgid "OCR output" msgstr "" #: bin/gscan2pdf:7915 msgid "Replace" msgstr "" #: bin/gscan2pdf:7917 msgid "" "Replace the contents of the text buffer with that from the OCR output." msgstr "" #: bin/gscan2pdf:7920 msgid "Prepend" msgstr "" #: bin/gscan2pdf:7921 msgid "Prepend the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7924 msgid "Append" msgstr "" #: bin/gscan2pdf:7925 msgid "Append the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7933 msgid "User-defined tools" msgstr "" #: bin/gscan2pdf:7954 msgid "View files on saving" msgstr "" #: bin/gscan2pdf:8000 msgid "" "You will have to restart gscanp2df for changes to the temporary directory to " "take effect." msgstr "" #: bin/gscan2pdf:8092 msgid "" "Use %i and %o for the input and output filenames respectively, or a single " "%i if the image is to be modified in-place.\n" "\n" "The other variable available is:\n" "\n" "%r resolution" msgstr "" #: bin/gscan2pdf:8119 msgid "Properties" msgstr "" #: lib/Gscan2pdf/Dialog.pm:63 lib/Gscan2pdf/Dialog.pm:79 t/05_Dialog.t:25 msgid "hide-on-delete" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:78 lib/Gscan2pdf/Dialog/Renumber.pm:162 msgid "Renumber" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:98 lib/Gscan2pdf/Dialog/Renumber.pm:207 #: lib/Gscan2pdf/Dialog/Renumber.pm:244 msgid "range" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:102 msgid "Page numbering" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:105 lib/Gscan2pdf/Scanner/Dialog.pm:254 msgid "border_width" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:126 lib/Gscan2pdf/Dialog/Renumber.pm:192 #: lib/Gscan2pdf/Dialog/Renumber.pm:242 t/07_Dialog_Renumber.t:33 #: t/07_Dialog_Renumber.t:45 t/07_Dialog_Renumber.t:59 #: t/07_Dialog_Renumber.t:66 msgid "start" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:147 lib/Gscan2pdf/Dialog/Renumber.pm:193 #: lib/Gscan2pdf/Dialog/Renumber.pm:243 t/07_Dialog_Renumber.t:34 #: t/07_Dialog_Renumber.t:46 t/07_Dialog_Renumber.t:60 #: t/07_Dialog_Renumber.t:67 msgid "increment" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:205 lib/Gscan2pdf/Dialog/Renumber.pm:241 msgid "document" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:295 msgid "" "The current settings would result in duplicate page numbers. Please select " "new start and increment values." msgstr "" #: lib/Gscan2pdf/Document.pm:83 msgid "Thumbnails" msgstr "" #: lib/Gscan2pdf/Document.pm:1502 msgid "Unknown DjVu file structure. Please contact the author." msgstr "" #: lib/Gscan2pdf/Document.pm:1558 #, perl-format msgid "%s is not a recognised image type" msgstr "" #: lib/Gscan2pdf/Document.pm:1580 lib/Gscan2pdf/Document.pm:1637 #, perl-format msgid "Importing page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:1613 msgid "Error extracting images from PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1692 msgid "Setting up PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1703 #, perl-format msgid "Saving page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:1814 lib/Gscan2pdf/Document.pm:2136 #, perl-format msgid "Error compressing image: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1919 #, perl-format msgid "Error creating PDF image object: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1930 #, perl-format msgid "Error embedding file image in %s format to PDF: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1939 msgid "Closing PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1955 #, perl-format msgid "Writing page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:2006 msgid "Error writing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2025 lib/Gscan2pdf/Document.pm:2227 #, perl-format msgid "Can't open file: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:2050 msgid "Error adding text layer to DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2056 msgid "Closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2063 msgid "Error closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2078 #, perl-format msgid "Converting image %i of %i to TIFF" msgstr "" #: lib/Gscan2pdf/Document.pm:2105 msgid "Error writing TIFF" msgstr "" #: lib/Gscan2pdf/Document.pm:2121 msgid "Concatenating TIFFs" msgstr "" #: lib/Gscan2pdf/Document.pm:2140 msgid "Converting to PS" msgstr "" #: lib/Gscan2pdf/Document.pm:2200 lib/Gscan2pdf/Document.pm:2215 msgid "Error saving image" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:158 #, perl-format msgid "Scanning %i pages..." msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:163 #, perl-format msgid "Scanning page %i..." msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:188 lib/Gscan2pdf/Frontend/CLI.pm:296 msgid "Scanner warming up" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:195 msgid "Document feeder out of documents" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:212 lib/Gscan2pdf/Frontend/CLI.pm:325 msgid "Device busy" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:218 lib/Gscan2pdf/Frontend/CLI.pm:330 msgid "Operation cancelled" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:223 lib/Gscan2pdf/Frontend/CLI.pm:336 msgid "Unknown message: " msgstr "" #: lib/Gscan2pdf/Page.pm:68 lib/Gscan2pdf/Page.pm:73 #, perl-format msgid "Error importing image %s: %s" msgstr "" #: lib/Gscan2pdf/PageRange.pm:33 msgid "Selected" msgstr "" #: lib/Gscan2pdf/PageRange.pm:58 msgid "active" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:218 t/061_Scanner_Dialog.t:33 #: t/061_Scanner_Dialog.t:59 msgid "device-list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:496 t/061_Scanner_Dialog.t:139 #: t/061_Scanner_Dialog.t:174 t/062_Scanner_Dialog.t:50 #: t/062_Scanner_Dialog.t:75 msgid "current-scan-options" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:567 msgid "logger" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:650 t/05_Dialog.t:24 msgid "transient-for" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:716 msgid "device_list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:749 t/061_Scanner_Dialog.t:32 msgid "device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:751 msgid "Opening device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:760 msgid "Retrieving options" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:41 msgid "Layout" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:44 msgid "Single" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:46 msgid "One page per sheet, oriented upwards without rotation." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:49 msgid "Double" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:51 msgid "" "Two pages per sheet, landscape orientation (one page on the left half, one " "page on the right half)." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:59 msgid "# Output pages" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:60 msgid "Number of pages to output." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:68 msgid "No deskew" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:69 msgid "Disable deskewing." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:74 msgid "No mask scan" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:75 msgid "Disable mask detection." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:80 msgid "No black filter" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:81 msgid "Disable black area scan." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:86 msgid "No gray filter" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:87 msgid "Disable gray area scan." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:92 msgid "No noise filter" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:93 msgid "Disable noise filter." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:98 msgid "No blur filter" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:99 msgid "Disable blur filter." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:104 msgid "No border scan" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:105 msgid "Disable border scanning." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:110 msgid "No border align" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:112 msgid "Disable aligning of the area detected by border scanning." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:117 msgid "Deskew to edge" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:119 msgid "" "Edges from which to scan for rotation. Each edge of a mask can be used to " "detect the mask's rotation. If multiple edges are specified, the average " "value will be used, unless the statistical deviation exceeds --deskew-scan-" "deviation." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:125 msgid "Use 'left' for scanning from the left edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:130 msgid "Use 'top' for scanning from the top edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:134 lib/Gscan2pdf/Unpaper.pm:162 msgid "Right" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:135 msgid "Use 'right' for scanning from the right edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:139 lib/Gscan2pdf/Unpaper.pm:167 msgid "Bottom" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:140 msgid "Use 'bottom' for scanning from the bottom." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:147 msgid "Align to edge" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:148 msgid "Edge to which to align the page." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:153 msgid "Use 'left' to align to the left edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:158 msgid "Use 'top' to align to the top edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:163 msgid "Use 'right' to align to the right edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:168 msgid "Use 'bottom' to align to the bottom." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:174 msgid "Border margin" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:178 msgid "Vertical margin" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:180 msgid "" "Vertical distance to keep from the sheet edge when aligning a border area." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:189 msgid "Horizontal margin" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:191 msgid "" "Horizontal distance to keep from the sheet edge when aligning a border area." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:202 msgid "White threshold" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:204 msgid "Brightness ratio above which a pixel is considered white." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:212 msgid "Black threshold" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:214 msgid "" "Brightness ratio below which a pixel is considered black (non-gray). This is " "used by the gray-filter. This value is also used when converting a grayscale " "image to black-and-white mode." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:250 msgid "Deskew" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:280 msgid "Border" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:337 msgid "Filters" msgstr "" #: t/05_Dialog.t:23 msgid "title" msgstr "" #: t/05_Dialog.t:26 t/05_Dialog.t:31 t/05_Dialog.t:32 t/05_Dialog.t:38 #: t/05_Dialog.t:39 msgid "border-width" msgstr "" #: t/061_Scanner_Dialog.t:34 msgid "dir" msgstr "" #: t/061_Scanner_Dialog.t:36 msgid "max-pages" msgstr "" #: t/061_Scanner_Dialog.t:39 msgid "side-to-scan" msgstr "" #: t/061_Scanner_Dialog.t:40 t/061_Scanner_Dialog.t:185 msgid "available-scan-options" msgstr "" #: t/061_Scanner_Dialog.t:171 t/062_Scanner_Dialog.t:73 msgid "profile" msgstr "" gscan2pdf-1.2.3/po/gscan2pdf-hu.po0000644000175000017500000013042712243440507015241 0ustar jeffjeff# Hungarian translation for gscan2pdf # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the gscan2pdf package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: gscan2pdf\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-10-25 08:12+0200\n" "PO-Revision-Date: 2012-06-05 21:54+0000\n" "Last-Translator: Herczeg Zsolt \n" "Language-Team: Hungarian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-19 09:22+0000\n" "X-Generator: Launchpad (build 16831)\n" #: bin/gscan2pdf:157 msgid "Error displaying help" msgstr "" #: bin/gscan2pdf:201 msgid "" "Error: unable to load settings.\n" "Backing up settings\n" "Reverting to defaults" msgstr "" "Hiba: nem lehet betölteni a beállításokat\n" "Beállítások mentése\n" "Alapértékek visszaállítása" #: bin/gscan2pdf:244 msgid "A4" msgstr "A4" #: bin/gscan2pdf:250 msgid "US Letter" msgstr "US Letter" #: bin/gscan2pdf:256 msgid "US Legal" msgstr "US Legal" #: bin/gscan2pdf:323 bin/gscan2pdf:344 #, perl-format msgid "Cannot read file: %s" msgstr "Nem lehet olvasni a fájlt: %s" #: bin/gscan2pdf:451 msgid "_File" msgstr "_Fájl" #: bin/gscan2pdf:454 msgid "_New" msgstr "_Új" #: bin/gscan2pdf:455 msgid "Clears all pages" msgstr "Minden oldal törlése" #: bin/gscan2pdf:459 msgid "_Open" msgstr "_Megnyitás" #: bin/gscan2pdf:460 msgid "Open image file(s)" msgstr "Képfájlok megnyitása" #: bin/gscan2pdf:465 msgid "S_can" msgstr "_Digitalizálás" #: bin/gscan2pdf:467 msgid "Scan document" msgstr "Dokumentum digitalizálása" #: bin/gscan2pdf:471 bin/gscan2pdf:472 bin/gscan2pdf:2582 msgid "Save" msgstr "Mentés" #: bin/gscan2pdf:476 msgid "_Email as PDF" msgstr "PDF küldése _emailben" #: bin/gscan2pdf:477 msgid "Attach as PDF to a new email" msgstr "Csatolmány mint PDF egy új emailhez" #: bin/gscan2pdf:480 msgid "_Print" msgstr "_Nyomtatás" #: bin/gscan2pdf:481 msgid "Print" msgstr "Nyomtatás" #: bin/gscan2pdf:485 msgid "_Compress temporary files" msgstr "Átmeneti állományok _tömörítése" #: bin/gscan2pdf:486 msgid "Compress temporary files" msgstr "Átmeneti állományok tömörítése" #: bin/gscan2pdf:490 msgid "_Quit" msgstr "_Kilépés" #: bin/gscan2pdf:491 msgid "Quit" msgstr "Kilépés" #: bin/gscan2pdf:495 msgid "_Edit" msgstr "_Szerkesztés" #: bin/gscan2pdf:497 msgid "_Undo" msgstr "_Visszavonás" #: bin/gscan2pdf:497 msgid "Undo" msgstr "Visszavonás" #: bin/gscan2pdf:501 msgid "_Redo" msgstr "_Újra" #: bin/gscan2pdf:502 msgid "Redo" msgstr "Újra" #: bin/gscan2pdf:506 msgid "Cu_t" msgstr "_Kivágás" #: bin/gscan2pdf:507 msgid "Cut selection" msgstr "Kijelölés kivágása" #: bin/gscan2pdf:511 msgid "_Copy" msgstr "_Másolás" #: bin/gscan2pdf:512 msgid "Copy selection" msgstr "Kijelölés másolása" #: bin/gscan2pdf:516 msgid "_Paste" msgstr "_Beillesztés" #: bin/gscan2pdf:517 msgid "Paste selection" msgstr "Kijelölés beillesztése" #: bin/gscan2pdf:521 msgid "_Delete" msgstr "_Törlés" #: bin/gscan2pdf:522 msgid "Delete selected pages" msgstr "Kijelölt oldalak törlése" #: bin/gscan2pdf:526 msgid "_Renumber" msgstr "_Újra számozás" #: bin/gscan2pdf:527 msgid "Renumber pages" msgstr "Oldalak újra számozása" #: bin/gscan2pdf:529 bin/gscan2pdf:679 msgid "_Select" msgstr "_Kijelölés" #: bin/gscan2pdf:532 msgid "_All" msgstr "_Mind" #: bin/gscan2pdf:533 msgid "Select all pages" msgstr "Minden oldal kijelölése" #: bin/gscan2pdf:536 msgid "_Odd" msgstr "_Páratlan" #: bin/gscan2pdf:537 msgid "Select all odd-numbered pages" msgstr "Összes páratlan oldal kijelölése" #: bin/gscan2pdf:541 msgid "_Even" msgstr "_Páros" #: bin/gscan2pdf:542 msgid "Select all evenly-numbered pages" msgstr "Minden \"x\"-edik oldal kijelölése" #: bin/gscan2pdf:547 msgid "_Blank" msgstr "_Üres" #: bin/gscan2pdf:548 msgid "Select pages with low standard deviation" msgstr "Alacsony szórású oldalak kijelölése" #: bin/gscan2pdf:552 msgid "_Dark" msgstr "_Sötét" #: bin/gscan2pdf:553 msgid "Select dark pages" msgstr "Sötét oldalak kijelölése" #: bin/gscan2pdf:558 msgid "_Modified" msgstr "_Módosított" #: bin/gscan2pdf:560 msgid "Select modified pages since last OCR" msgstr "Módosított oldalak kijelölése az utolsó OCR felismeréstől nézve" #: bin/gscan2pdf:565 msgid "_No OCR" msgstr "" #: bin/gscan2pdf:566 msgid "Select pages with no OCR output" msgstr "OCR felismerés nélküli lapok kiválasztása" #: bin/gscan2pdf:570 msgid "_Clear OCR" msgstr "" #: bin/gscan2pdf:571 msgid "Clear OCR output from selected pages" msgstr "OCR szöveg törlése a kijelölt lapokról" #: bin/gscan2pdf:575 msgid "Propert_ies" msgstr "_Tulajdonságok" #: bin/gscan2pdf:576 msgid "Edit image properties" msgstr "Kép tulajdonságainak módosítása" #: bin/gscan2pdf:580 msgid "Prefere_nces" msgstr "_Beállítások..." #: bin/gscan2pdf:581 msgid "Edit preferences" msgstr "Beállítások szerkesztése" #: bin/gscan2pdf:585 msgid "_View" msgstr "_Nézet" #: bin/gscan2pdf:588 msgid "Zoom _100%" msgstr "Nagyítás: _100%" #: bin/gscan2pdf:589 msgid "Zoom to 100%" msgstr "Nagyítás 100%-ra" #: bin/gscan2pdf:593 msgid "Zoom to _fit" msgstr "Ablakmérethez _igazítás" #: bin/gscan2pdf:594 msgid "Zoom to fit" msgstr "Ablakmérethez igazítás" #: bin/gscan2pdf:598 msgid "Zoom _in" msgstr "_Nagyítás" #: bin/gscan2pdf:599 msgid "Zoom in" msgstr "Nagyítás" #: bin/gscan2pdf:603 msgid "Zoom _out" msgstr "_Kicsinyítés" #: bin/gscan2pdf:604 msgid "Zoom out" msgstr "Kicsinyítés" #: bin/gscan2pdf:609 bin/gscan2pdf:611 msgid "Rotate 90 clockwise" msgstr "Forgatás 90 fokkal óramutató járásával" #: bin/gscan2pdf:617 bin/gscan2pdf:619 msgid "Rotate 180" msgstr "180 fokos forgatás" #: bin/gscan2pdf:625 bin/gscan2pdf:627 msgid "Rotate 90 anticlockwise" msgstr "180 fokos forgatás óramutató járásával ellentétesen" #: bin/gscan2pdf:632 msgid "_Tools" msgstr "_Eszközök" #: bin/gscan2pdf:634 msgid "_Threshold" msgstr "_Küszöb" #: bin/gscan2pdf:635 msgid "Change each pixel above this threshold to black" msgstr "" "Minden képpont módosítása feketére, amely ezen küszöb érték felett van" #: bin/gscan2pdf:639 msgid "_Negate" msgstr "_Tagadás" #: bin/gscan2pdf:640 msgid "Converts black to white and vice versa" msgstr "Fekete fehérré alakítása és fordítva" #: bin/gscan2pdf:644 msgid "_Unsharp Mask" msgstr "_Elmosás maszk" #: bin/gscan2pdf:645 msgid "Apply an unsharp mask" msgstr "Elmosás maszk elfogadása" #: bin/gscan2pdf:648 msgid "_Crop" msgstr "_Kivágás" #: bin/gscan2pdf:649 msgid "Crop pages" msgstr "Lapok kivágása" #: bin/gscan2pdf:653 msgid "_Clean up" msgstr "_Tisztitás" #: bin/gscan2pdf:654 bin/gscan2pdf:4085 msgid "Clean up scanned images with unpaper" msgstr "Scennelt képek tisztitása lap kiadással" #: bin/gscan2pdf:657 msgid "_OCR" msgstr "_OCR" #: bin/gscan2pdf:658 msgid "Optical Character Recognition" msgstr "Optikai karakterfelismerés" #: bin/gscan2pdf:660 msgid "U_ser-defined" msgstr "_Felhasználói_meghatározás" #: bin/gscan2pdf:663 bin/gscan2pdf:665 msgid "_Help" msgstr "_Súgó" #: bin/gscan2pdf:666 msgid "Help" msgstr "Súgó" #: bin/gscan2pdf:668 msgid "_About" msgstr "_Névjegy" #: bin/gscan2pdf:674 msgid "_Drag" msgstr "_Húzd" #: bin/gscan2pdf:675 msgid "Use the hand tool" msgstr "Használd a kéz eszközt" #: bin/gscan2pdf:680 msgid "Use the rectangular selection tool" msgstr "Használd a négyszög kijelölő estközt" #: bin/gscan2pdf:684 msgid "_Paint" msgstr "_Fest" #: bin/gscan2pdf:685 msgid "Use the painter tool" msgstr "Hasznád a festő eszközt" #: bin/gscan2pdf:965 lib/Gscan2pdf/Document.pm:2594 #: lib/Gscan2pdf/Document.pm:2595 msgid "Error copying page" msgstr "Hiba az oldal másolásánál" #: bin/gscan2pdf:1082 msgid "Image" msgstr "Kép" #: bin/gscan2pdf:1117 msgid "OCR Output" msgstr "OCR Kimenet" #: bin/gscan2pdf:1174 msgid "Mode" msgstr "Mód" #: bin/gscan2pdf:1176 msgid "Lineart" msgstr "Lineart" #: bin/gscan2pdf:1177 msgid "Grayscale" msgstr "Szürkeárnyalatos" #: bin/gscan2pdf:1178 msgid "Gray" msgstr "Szürke" #: bin/gscan2pdf:1179 msgid "Color" msgstr "Szín" #: bin/gscan2pdf:1180 msgid "Black & White" msgstr "Fekete-fehér" #: bin/gscan2pdf:1181 msgid "True Gray" msgstr "Valódi Szürke" #: bin/gscan2pdf:1182 msgid "Binary" msgstr "Bináris" #: bin/gscan2pdf:1183 bin/gscan2pdf:1242 bin/gscan2pdf:1243 msgid "Auto" msgstr "Auto" #: bin/gscan2pdf:1184 msgid "Halftone" msgstr "Féltónusos" #: bin/gscan2pdf:1185 msgid "24bit Color" msgstr "24bit Szin" #: bin/gscan2pdf:1189 bin/gscan2pdf:2547 bin/gscan2pdf:2644 msgid "Compression" msgstr "Tömörítés" #: bin/gscan2pdf:1191 bin/gscan2pdf:2539 bin/gscan2pdf:2636 msgid "None" msgstr "Nincs" #: bin/gscan2pdf:1192 bin/gscan2pdf:2537 bin/gscan2pdf:2601 bin/gscan2pdf:2622 msgid "JPEG" msgstr "JPEG" #: bin/gscan2pdf:1195 bin/gscan2pdf:8127 msgid "Resolution" msgstr "Felbontás" #: bin/gscan2pdf:1196 msgid "Brightness" msgstr "Fényerő" #: bin/gscan2pdf:1197 msgid "Gain" msgstr "" #: bin/gscan2pdf:1198 msgid "Contrast" msgstr "Kontraszt" #: bin/gscan2pdf:1199 bin/gscan2pdf:6406 bin/gscan2pdf:6417 bin/gscan2pdf:6620 msgid "Threshold" msgstr "Küszöbszint" #: bin/gscan2pdf:1201 msgid "Speed" msgstr "Sebesség" #: bin/gscan2pdf:1203 bin/gscan2pdf:1210 bin/gscan2pdf:1217 bin/gscan2pdf:1224 #: bin/gscan2pdf:1231 msgid "Yes" msgstr "Igen" #: bin/gscan2pdf:1204 bin/gscan2pdf:1211 bin/gscan2pdf:1218 bin/gscan2pdf:1225 #: bin/gscan2pdf:1232 msgid "No" msgstr "Nem" #: bin/gscan2pdf:1208 msgid "Batch scan" msgstr "Kötegelt beolvasás" #: bin/gscan2pdf:1215 bin/gscan2pdf:1222 msgid "Wait for button" msgstr "Gombra várás" #: bin/gscan2pdf:1229 msgid "Cache calibration" msgstr "Gyórsítótár kalibrálása" #: bin/gscan2pdf:1236 msgid "Source" msgstr "Forrás" #: bin/gscan2pdf:1238 msgid "Normal" msgstr "Normál" #: bin/gscan2pdf:1239 msgid "ADF" msgstr "ADF" #: bin/gscan2pdf:1240 msgid "Automatic Document Feeder" msgstr "Automatikus Dokumentum Adagoló" #: bin/gscan2pdf:1241 msgid "XPA" msgstr "XPA" #: bin/gscan2pdf:1244 msgid "Flatbed" msgstr "Síkágyas" #: bin/gscan2pdf:1245 msgid "Transparency Adapter" msgstr "Átlátszó adapter" #: bin/gscan2pdf:1246 msgid "Transparency Unit" msgstr "Átlátszó egység" #: bin/gscan2pdf:1249 bin/gscan2pdf:1251 msgid "Page Width" msgstr "Oldalszélesség" #: bin/gscan2pdf:1250 bin/gscan2pdf:1252 msgid "Page Height" msgstr "Oldalmagasság" #: bin/gscan2pdf:1253 msgid "Top Overscan" msgstr "" #: bin/gscan2pdf:1254 msgid "Bottom Overscan" msgstr "" #: bin/gscan2pdf:1256 bin/gscan2pdf:1263 msgid "ADF Mode" msgstr "ADF Mód" #: bin/gscan2pdf:1258 bin/gscan2pdf:1265 msgid "Simplex" msgstr "Simplex" #: bin/gscan2pdf:1259 bin/gscan2pdf:1266 msgid "Duplex" msgstr "Duplex" #: bin/gscan2pdf:1301 bin/gscan2pdf:1306 msgid "Pick crashed session to restore" msgstr "Megszakadt munkamenet helyreállítása" #: bin/gscan2pdf:1308 bin/gscan2pdf:2609 msgid "Session" msgstr "Munkamenet" #: bin/gscan2pdf:1338 #, perl-format msgid "" "Warning: unable to use %s for temporary storage. Defaulting to %s instead." msgstr "" "Figyelmeztetés: %s nem használható átmeneti adattárolásra. Ehelytett %s " "használata" #: bin/gscan2pdf:1441 msgid "GOCR" msgstr "GOCR" #: bin/gscan2pdf:1441 msgid "Process image with GOCR." msgstr "Kép feldolgozása GOCR-rel" #: bin/gscan2pdf:1445 msgid "Tesseract" msgstr "Tesseract" #: bin/gscan2pdf:1446 msgid "Process image with Tesseract." msgstr "Kép feldolgozása Tesseract-tal" #: bin/gscan2pdf:1450 msgid "Ocropus" msgstr "Ocropus" #: bin/gscan2pdf:1450 msgid "Process image with Ocropus." msgstr "Kép feldolgozása Octopus-szal" #: bin/gscan2pdf:1454 msgid "Cuneiform" msgstr "Cuneiform" #: bin/gscan2pdf:1455 msgid "Process image with Cuneiform." msgstr "Kép feldolgozása Cuneiform-mal" #: bin/gscan2pdf:1461 msgid "Save image and Save as PDF both require imagemagick\n" msgstr "Kép és PDF mentéséhez nélkülözhetetlen az imagemagick csomag\n" #: bin/gscan2pdf:1465 msgid "Save image requires libtiff\n" msgstr "Kép mentéséhez szükséges a libtiff csomag\n" #: bin/gscan2pdf:1469 msgid "Save as DjVu requires djvulibre-bin\n" msgstr "Kép mentése DjVu változathoz szükség van a djvulibre-bin csomagra\n" #: bin/gscan2pdf:1473 msgid "Email as PDF requires xdg-email\n" msgstr "PDF küldése E-mailbenhez szükség van az xdg-email csomagra\n" #: bin/gscan2pdf:1518 msgid "The rotating options and unpaper support require perlmagick\n" msgstr "" "Forgatási és utófeldolgozás feladatokhoz a perlmagick csomagra van szükség\n" #: bin/gscan2pdf:1524 msgid "unpaper missing\n" msgstr "unapaper hiányzik\n" #: bin/gscan2pdf:1534 msgid "OCR requires gocr, tesseract, ocropus, or cuneiform\n" msgstr "" "OCR felismeréshez gocr, tesseract, ocropus vagy cuneiform csomagok " "szükségesek\n" #: bin/gscan2pdf:1539 msgid "Warning: missing packages" msgstr "Figyelmeztetés: hiányzó csomagok" #: bin/gscan2pdf:1544 msgid "Don't show this message again" msgstr "Ne mutassa ezt az üzenetet újra" #: bin/gscan2pdf:1753 msgid "" "Some pages have not been saved.\n" "Do you really want to clear all pages?" msgstr "" "Nem minden lap van elmentve\n" "Biztosan elveti az összes lapot?" #: bin/gscan2pdf:1828 bin/gscan2pdf:1858 #, perl-format msgid "Process %i of %i (%s)" msgstr "" #: bin/gscan2pdf:1867 #, perl-format msgid "Process %i of %i" msgstr "" #: bin/gscan2pdf:1895 msgid "Open image" msgstr "Kép megnyitása" #: bin/gscan2pdf:1903 bin/gscan2pdf:2797 bin/gscan2pdf:3113 msgid "Image files" msgstr "Képfájlok" #: bin/gscan2pdf:1940 msgid "Pages to extract" msgstr "" #: bin/gscan2pdf:1943 bin/gscan2pdf:2117 bin/gscan2pdf:2586 bin/gscan2pdf:3353 #: bin/gscan2pdf:3494 bin/gscan2pdf:4104 bin/gscan2pdf:4514 bin/gscan2pdf:5825 #: bin/gscan2pdf:6409 bin/gscan2pdf:6495 bin/gscan2pdf:6565 bin/gscan2pdf:6737 #: bin/gscan2pdf:7011 bin/gscan2pdf:7274 bin/gscan2pdf:7757 bin/gscan2pdf:8123 #: lib/Gscan2pdf/Dialog.pm:56 lib/Gscan2pdf/Dialog/Renumber.pm:80 #: lib/Gscan2pdf/Scanner/Dialog.pm:201 t/05_Dialog.t:28 msgid "vbox" msgstr "" #: bin/gscan2pdf:1946 msgid "First page to extract" msgstr "" #: bin/gscan2pdf:1953 msgid "Last page to extract" msgstr "" #: bin/gscan2pdf:2042 lib/Gscan2pdf/Dialog/Renumber.pm:83 msgid "Page Range" msgstr "Oldal tartomány" #: bin/gscan2pdf:2092 msgid "Metadata" msgstr "Metaadat" #: bin/gscan2pdf:2101 msgid "Date" msgstr "Dátum" #: bin/gscan2pdf:2114 msgid "Select Date" msgstr "Dátum kiválasztása" #: bin/gscan2pdf:2136 msgid "Today" msgstr "Ma" #: bin/gscan2pdf:2150 msgid "Year-Month-Day" msgstr "Év-Hónap-Nap" #: bin/gscan2pdf:2156 msgid "Document author" msgstr "Dokumentum szerzője" #: bin/gscan2pdf:2165 msgid "Title" msgstr "Cím" #: bin/gscan2pdf:2174 msgid "Subject" msgstr "Tárgy" #: bin/gscan2pdf:2183 msgid "Keywords" msgstr "Kulcsszavak" #: bin/gscan2pdf:2245 msgid "Editing text" msgstr "Szöveg szerkesztése" #: bin/gscan2pdf:2252 bin/gscan2pdf:2258 bin/gscan2pdf:2332 msgid "text" msgstr "szöveg" #: bin/gscan2pdf:2352 msgid "PDF filename" msgstr "PDF fájlnév" #: bin/gscan2pdf:2381 msgid "PDF files" msgstr "PDF fájlok" #: bin/gscan2pdf:2405 bin/gscan2pdf:2823 bin/gscan2pdf:2880 bin/gscan2pdf:2976 #: bin/gscan2pdf:3035 bin/gscan2pdf:3087 bin/gscan2pdf:3275 #, perl-format msgid "File %s is read-only" msgstr "A %s fájl csak olvasható" #: bin/gscan2pdf:2482 msgid "JPEG Quality" msgstr "JPEG-minőség" #: bin/gscan2pdf:2496 msgid "Downsample to" msgstr "Lekonvertálás erre" #: bin/gscan2pdf:2501 msgid "PPI" msgstr "PPI" #: bin/gscan2pdf:2520 msgid "Automatic" msgstr "Automatikus" #: bin/gscan2pdf:2521 msgid "Let gscan2pdf which type of compression to use." msgstr "A gscan2pdf dönti el a tömörítés típusát" #: bin/gscan2pdf:2524 bin/gscan2pdf:2616 msgid "LZW" msgstr "LZW" #: bin/gscan2pdf:2525 bin/gscan2pdf:2617 msgid "Compress output with Lempel-Ziv & Welch encoding." msgstr "Kimenet tömörítése Lempel-Ziv & Welch kódolással" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Zip" msgstr "Zip" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Compress output with deflate encoding." msgstr "Kimenet tömörítése deflate kódolással" #: bin/gscan2pdf:2529 bin/gscan2pdf:2624 msgid "Packbits" msgstr "Csomagolási bitek" #: bin/gscan2pdf:2530 bin/gscan2pdf:2625 msgid "Compress output with Packbits encoding." msgstr "Kimenet tömörítése Packbits kódolással" #: bin/gscan2pdf:2536 bin/gscan2pdf:2604 msgid "PNG" msgstr "PNG" #: bin/gscan2pdf:2536 msgid "Compress output with PNG encoding." msgstr "Kimenet tömörítése PNG kódolással" #: bin/gscan2pdf:2537 bin/gscan2pdf:2622 msgid "Compress output with JPEG encoding." msgstr "Kimenet tömörítése JPEG kódolással" #: bin/gscan2pdf:2540 bin/gscan2pdf:2637 msgid "Use no compression algorithm on output." msgstr "Ne tömörítse a kimenetet" #: bin/gscan2pdf:2594 msgid "Image type" msgstr "Képtípus" #: bin/gscan2pdf:2598 msgid "PDF" msgstr "PDF" #: bin/gscan2pdf:2598 msgid "Portable Document Format" msgstr "Portable Document Format" #: bin/gscan2pdf:2599 msgid "GIF" msgstr "GIF" #: bin/gscan2pdf:2599 msgid "CompuServe graphics interchange format" msgstr "" #: bin/gscan2pdf:2602 msgid "Joint Photographic Experts Group JFIF format" msgstr "" #: bin/gscan2pdf:2604 msgid "Portable Network Graphics" msgstr "" #: bin/gscan2pdf:2605 msgid "PNM" msgstr "PNM" #: bin/gscan2pdf:2605 msgid "Portable anymap" msgstr "" #: bin/gscan2pdf:2606 msgid "PS" msgstr "PS" #: bin/gscan2pdf:2606 msgid "Postscript" msgstr "Postscript" #: bin/gscan2pdf:2607 msgid "TIFF" msgstr "TIFF" #: bin/gscan2pdf:2607 msgid "Tagged Image File Format" msgstr "" #: bin/gscan2pdf:2608 msgid "Text" msgstr "Szöveg" #: bin/gscan2pdf:2608 msgid "Plain text" msgstr "Egyszerű szöveg" #: bin/gscan2pdf:2609 msgid "gscan2pdf session file" msgstr "gscan2pdf munkamenet fájl" #: bin/gscan2pdf:2611 msgid "DjVu" msgstr "" #: bin/gscan2pdf:2611 msgid "Deja Vu" msgstr "" #: bin/gscan2pdf:2628 msgid "G3" msgstr "G3" #: bin/gscan2pdf:2629 msgid "Compress output with CCITT Group 3 encoding." msgstr "Kimenet tömörítése CCITT Group 3 kódolással" #: bin/gscan2pdf:2632 msgid "G4" msgstr "G4" #: bin/gscan2pdf:2633 msgid "Compress output with CCITT Group 4 encoding." msgstr "Kimenet tömörítése CCITT Group 4 kódolással" #: bin/gscan2pdf:2649 msgid "tiff" msgstr "" #: bin/gscan2pdf:2681 msgid "Font for non-ASCII text" msgstr "Betűkészlet nem ASCII szöveghez" #: bin/gscan2pdf:2790 msgid "TIFF filename" msgstr "TIFF fájlnév" #: bin/gscan2pdf:2848 msgid "Text filename" msgstr "" #: bin/gscan2pdf:2856 msgid "Text files" msgstr "Szövegfájlok" #: bin/gscan2pdf:2944 msgid "PS filename" msgstr "" #: bin/gscan2pdf:2951 msgid "Postscript files" msgstr "" #: bin/gscan2pdf:3003 msgid "gscan2pdf session filename" msgstr "gscan2pdf munkamenetfájl neve" #: bin/gscan2pdf:3010 msgid "gscan2pdf session files" msgstr "gscan2pdf munkamenetfájlok" #: bin/gscan2pdf:3093 #, perl-format msgid "" "File %s exists.\n" "Really overwrite?" msgstr "" #: bin/gscan2pdf:3106 msgid "Image filename" msgstr "Képfájl neve" #: bin/gscan2pdf:3245 msgid "DjVu filename" msgstr "" #: bin/gscan2pdf:3252 msgid "DjVu files" msgstr "" #: bin/gscan2pdf:3349 msgid "Email as PDF" msgstr "E-mail PDF-ként" #: bin/gscan2pdf:3454 msgid "Error creating email" msgstr "Hiba az e-mail létrehozásakor" #: bin/gscan2pdf:3490 bin/gscan2pdf:4313 msgid "Scan Document" msgstr "Dokumentum scannelése" #: bin/gscan2pdf:3507 lib/Gscan2pdf/Scanner/Dialog.pm:248 msgid "Page Options" msgstr "Lap beállítások" #: bin/gscan2pdf:3510 lib/Gscan2pdf/Scanner/Dialog.pm:251 msgid "# Pages" msgstr "# Lapok" #: bin/gscan2pdf:3519 lib/Gscan2pdf/PageRange.pm:34 #: lib/Gscan2pdf/Scanner/Dialog.pm:261 msgid "All" msgstr "Mind" #: bin/gscan2pdf:3520 lib/Gscan2pdf/Scanner/Dialog.pm:262 msgid "Scan all pages" msgstr "Össszes oldal scannelése" #: bin/gscan2pdf:3532 bin/gscan2pdf:3537 lib/Gscan2pdf/Scanner/Dialog.pm:274 #: lib/Gscan2pdf/Scanner/Dialog.pm:279 msgid "Set number of pages to scan" msgstr "Oldalak darabszáma scanneléshez" #: bin/gscan2pdf:3550 lib/Gscan2pdf/Scanner/Dialog.pm:308 msgid "Extended page numbering" msgstr "Kiterjesztett oldalszámozás" #: bin/gscan2pdf:3554 lib/Gscan2pdf/Scanner/Dialog.pm:312 msgid "Page number" msgstr "Oldalszám" #: bin/gscan2pdf:3563 lib/Gscan2pdf/Dialog/Renumber.pm:111 #: lib/Gscan2pdf/Scanner/Dialog.pm:321 msgid "Start" msgstr "Kezdés" #: bin/gscan2pdf:3572 lib/Gscan2pdf/Dialog/Renumber.pm:132 #: lib/Gscan2pdf/Scanner/Dialog.pm:340 msgid "Increment" msgstr "Növekmény" #: bin/gscan2pdf:3604 lib/Gscan2pdf/Scanner/Dialog.pm:372 msgid "Source document" msgstr "Forrás dokumentum" #: bin/gscan2pdf:3611 lib/Gscan2pdf/Scanner/Dialog.pm:379 msgid "Single sided" msgstr "Egyoldalas" #: bin/gscan2pdf:3612 lib/Gscan2pdf/Scanner/Dialog.pm:380 msgid "Source document is single-sided" msgstr "A forrás dokumentum egyoldalas" #: bin/gscan2pdf:3622 lib/Gscan2pdf/Scanner/Dialog.pm:390 msgid "Double sided" msgstr "Kétoldalas" #: bin/gscan2pdf:3623 lib/Gscan2pdf/Scanner/Dialog.pm:391 msgid "Source document is double-sided" msgstr "A forrásdokumentum kétoldalas" #: bin/gscan2pdf:3629 lib/Gscan2pdf/Scanner/Dialog.pm:397 msgid "Side to scan" msgstr "Oldal a scanneléshez" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Facing" msgstr "Szine" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Reverse" msgstr "Fordított" #: bin/gscan2pdf:3655 lib/Gscan2pdf/Scanner/Dialog.pm:418 msgid "Sets which side of a double-sided document is scanned" msgstr "Beállítja hogy egy kétoldalas lap melyik oldalát scanneljük" #: bin/gscan2pdf:3719 msgid "Scan Options" msgstr "Scan Beállítások" #: bin/gscan2pdf:3722 msgid "Device-dependent options" msgstr "Eszköz függő beállítások" #: bin/gscan2pdf:3729 lib/Gscan2pdf/Scanner/Dialog.pm:458 msgid "Scan profiles" msgstr "Scannelési profilok" #: bin/gscan2pdf:3778 bin/gscan2pdf:3784 lib/Gscan2pdf/Scanner/Dialog.pm:479 #: lib/Gscan2pdf/Scanner/Dialog.pm:485 msgid "Name of scan profile" msgstr "Scan fájl neve" #: bin/gscan2pdf:3828 lib/Gscan2pdf/Scanner/Dialog.pm:518 msgid "Scan" msgstr "Beolvasás" #: bin/gscan2pdf:3866 msgid "Must scan facing pages first" msgstr "Oldalak szinének scannelése először" #: bin/gscan2pdf:3977 msgid "Post-processing" msgstr "Utó feldolgozás" #: bin/gscan2pdf:3986 bin/gscan2pdf:4008 msgid "Rotate" msgstr "Forgatás" #: bin/gscan2pdf:3987 bin/gscan2pdf:4009 msgid "Rotate image after scanning" msgstr "Kép elforgatása scannelés után" #: bin/gscan2pdf:3990 msgid "Both sides" msgstr "Mindkét oldal" #: bin/gscan2pdf:3990 msgid "Both sides." msgstr "Mindkét oldal." #: bin/gscan2pdf:3991 msgid "Facing side" msgstr "Szine" #: bin/gscan2pdf:3991 msgid "Facing side." msgstr "Szine." #: bin/gscan2pdf:3992 msgid "Reverse side" msgstr "Visszája" #: bin/gscan2pdf:3992 msgid "Reverse side." msgstr "Visszája." #: bin/gscan2pdf:3995 bin/gscan2pdf:4013 msgid "Select side to rotate" msgstr "Forgatott oldal kiválasztása" #: bin/gscan2pdf:3998 msgid "90" msgstr "90" #: bin/gscan2pdf:3998 msgid "Rotate image 90 degrees clockwise." msgstr "Elforgatás -90 fokkal" #: bin/gscan2pdf:3999 msgid "180" msgstr "180" #: bin/gscan2pdf:3999 msgid "Rotate image 180 degrees clockwise." msgstr "Elforgatás -180 fokkal" #: bin/gscan2pdf:4000 msgid "270" msgstr "270" #: bin/gscan2pdf:4000 msgid "Rotate image 90 degrees anticlockwise." msgstr "Elforgatás +90 fokkal" #: bin/gscan2pdf:4003 bin/gscan2pdf:4016 msgid "Select direction of rotation" msgstr "Forgatás irányának kiválasztása" #: bin/gscan2pdf:4083 msgid "Clean up images" msgstr "Képek tisztítása" #: bin/gscan2pdf:4094 msgid "Options" msgstr "Beállítások" #: bin/gscan2pdf:4095 msgid "Set unpaper options" msgstr "Unpaper beállítása" #: bin/gscan2pdf:4101 msgid "unpaper options" msgstr "unpaper beállítások" #: bin/gscan2pdf:4136 bin/gscan2pdf:4137 msgid "OCR scanned pages" msgstr "OCR felismert lapok" #: bin/gscan2pdf:4151 msgid "Select OCR engine" msgstr "OCR motor kiválasztása" #: bin/gscan2pdf:4210 lib/Gscan2pdf/Scanner/Dialog.pm:634 msgid "Fetching list of devices" msgstr "Eszközök listájának lekérdezése" #: bin/gscan2pdf:4225 lib/Gscan2pdf/Scanner/Dialog.pm:654 msgid "No devices found" msgstr "Nem található eszköz" #: bin/gscan2pdf:4367 bin/gscan2pdf:4732 bin/gscan2pdf:4777 bin/gscan2pdf:5214 #: lib/Gscan2pdf/Scanner/Dialog.pm:343 lib/Gscan2pdf/Scanner/Dialog.pm:348 #: t/061_Scanner_Dialog.t:38 t/061_Scanner_Dialog.t:95 msgid "page-number-increment" msgstr "" #: bin/gscan2pdf:4374 bin/gscan2pdf:4729 bin/gscan2pdf:4730 bin/gscan2pdf:4776 #: bin/gscan2pdf:5213 lib/Gscan2pdf/Scanner/Dialog.pm:361 #: t/061_Scanner_Dialog.t:37 msgid "page-number-start" msgstr "" #: bin/gscan2pdf:4663 lib/Gscan2pdf/Scanner/Dialog.pm:210 msgid "Device" msgstr "Eszköz" #: bin/gscan2pdf:4671 lib/Gscan2pdf/Scanner/Dialog.pm:213 msgid "Rescan for devices" msgstr "Eszközök keresése" #: bin/gscan2pdf:4694 lib/Gscan2pdf/Scanner/Dialog.pm:237 msgid "Sets the device to be used for the scan" msgstr "Beállítja a lapolvasáshoz használt eszközt" #: bin/gscan2pdf:4780 lib/Gscan2pdf/Scanner/Dialog.pm:300 #: t/061_Scanner_Dialog.t:35 msgid "num-pages" msgstr "" #: bin/gscan2pdf:4821 msgid "Scanning" msgstr "Beolvasás" #: bin/gscan2pdf:4974 msgid "Unable to load image" msgstr "A kép nem tölthető be" #: bin/gscan2pdf:5004 msgid "print-pages" msgstr "" #: bin/gscan2pdf:5008 msgid "page-ranges" msgstr "" #: bin/gscan2pdf:5405 msgid "Patches gratefully received from:" msgstr "Köszönet a javításokért:" #: bin/gscan2pdf:5407 msgid "To aid the scan-to-PDF process" msgstr "" #: bin/gscan2pdf:5408 msgid "Copyright 2006--2012 Jeffrey Ratcliffe" msgstr "Copyright 2006--2012 Jeffrey Ratcliffe" #: bin/gscan2pdf:5492 bin/gscan2pdf:6028 msgid "The options cache seems to be empty. Reload device-dependent options?" msgstr "A beállítások üresek. Újratöltsem az eszköz függő beállításokat?" #: bin/gscan2pdf:5519 bin/gscan2pdf:6054 msgid "Updating options" msgstr "Beállítások frissítése" #: bin/gscan2pdf:5571 msgid "Paper size" msgstr "Papírméret" #: bin/gscan2pdf:5572 bin/gscan2pdf:5672 bin/gscan2pdf:5840 bin/gscan2pdf:6769 msgid "Width" msgstr "Szélesség" #: bin/gscan2pdf:5573 bin/gscan2pdf:5678 bin/gscan2pdf:5841 bin/gscan2pdf:6780 msgid "Height" msgstr "Magasság" #: bin/gscan2pdf:5574 bin/gscan2pdf:5684 bin/gscan2pdf:5842 #: lib/Gscan2pdf/Unpaper.pm:124 lib/Gscan2pdf/Unpaper.pm:152 msgid "Left" msgstr "Bal" #: bin/gscan2pdf:5575 bin/gscan2pdf:5690 bin/gscan2pdf:5843 #: lib/Gscan2pdf/Unpaper.pm:129 lib/Gscan2pdf/Unpaper.pm:157 msgid "Top" msgstr "Felül" #: bin/gscan2pdf:5589 bin/gscan2pdf:5703 bin/gscan2pdf:6232 msgid "Manual" msgstr "Kézikönyv" #: bin/gscan2pdf:5590 bin/gscan2pdf:5700 msgid "Edit" msgstr "Szerkesztés" #: bin/gscan2pdf:5591 msgid "Selects or edits the paper size" msgstr "Papírméret kiválasztása vagy szerkesztése" #: bin/gscan2pdf:5673 msgid "Width of scan area" msgstr "Lapolvasási terület szélessége" #: bin/gscan2pdf:5679 msgid "Height of scan area" msgstr "Lapolvasási terület magassága" #: bin/gscan2pdf:5685 msgid "Top-left x position of scan area" msgstr "X koordinátája a lapolvasó terület bal felső sarkának" #: bin/gscan2pdf:5691 msgid "Top-left y position of scan area" msgstr "Y koordinátája a lapolvasó terület bal felső sarkának" #: bin/gscan2pdf:5822 msgid "Edit paper size" msgstr "Papírméret állítása" #: bin/gscan2pdf:5839 msgid "Name" msgstr "Név" #: bin/gscan2pdf:5893 msgid "Cannot delete all paper sizes" msgstr "Nem törölhető az összes papírméret" #: bin/gscan2pdf:5955 msgid "" "The following paper sizes are too big to be scanned by the selected device:" msgstr "A köverkető papírméretek túl nagyok ehhez az eszközhöz:" #: bin/gscan2pdf:6419 bin/gscan2pdf:6605 msgid "%" msgstr "%" #: bin/gscan2pdf:6492 msgid "Negate" msgstr "" #: bin/gscan2pdf:6562 msgid "Unsharp mask" msgstr "" #: bin/gscan2pdf:6573 msgid "Radius" msgstr "Sugár" #: bin/gscan2pdf:6575 bin/gscan2pdf:6592 bin/gscan2pdf:6747 bin/gscan2pdf:6759 #: bin/gscan2pdf:6771 bin/gscan2pdf:6782 msgid "pixels" msgstr "képpont" #: bin/gscan2pdf:6582 msgid "" "The radius of the Gaussian, in pixels, not counting the center pixel (0 = " "automatic)." msgstr "" #: bin/gscan2pdf:6590 msgid "Sigma" msgstr "" #: bin/gscan2pdf:6597 msgid "The standard deviation of the Gaussian." msgstr "" #: bin/gscan2pdf:6603 msgid "Amount" msgstr "Mennyiség" #: bin/gscan2pdf:6612 msgid "" "The percentage of the difference between the original and the blur image " "that is added back into the original." msgstr "" #: bin/gscan2pdf:6627 msgid "" "The threshold, as a fraction of QuantumRange, needed to apply the difference " "amount." msgstr "" #: bin/gscan2pdf:6733 msgid "Crop" msgstr "Vágás" #: bin/gscan2pdf:6745 msgid "x" msgstr "x" #: bin/gscan2pdf:6751 msgid "The x-position of the left hand edge of the crop." msgstr "A vágás bal szélének x poziciója" #: bin/gscan2pdf:6757 msgid "y" msgstr "y" #: bin/gscan2pdf:6763 msgid "The y-position of the top edge of the crop." msgstr "A vágás tetejének y poziciója" #: bin/gscan2pdf:6774 msgid "The width of the crop." msgstr "A vágás szélessége" #: bin/gscan2pdf:6785 msgid "The height of the crop." msgstr "A vágás magassága" #: bin/gscan2pdf:6906 msgid "label" msgstr "cimke" #: bin/gscan2pdf:7007 msgid "unpaper" msgstr "" #: bin/gscan2pdf:7216 bin/gscan2pdf:7244 msgid "Language to recognise" msgstr "" #: bin/gscan2pdf:7227 msgid "English" msgstr "angol" #: bin/gscan2pdf:7270 msgid "OCR" msgstr "OCR" #: bin/gscan2pdf:7279 msgid "OCR Engine" msgstr "OCR Motor" #: bin/gscan2pdf:7323 msgid "Start OCR" msgstr "A felismerés indítása" #: bin/gscan2pdf:7339 msgid "No page selected" msgstr "Nincs lap kiválasztva" #: bin/gscan2pdf:7374 msgid "" "Some pages have not been saved.\n" "Do you really want to quit?" msgstr "" "Néhány oldal még nincs elmentve.\n" "Biztosan kilép?" #: bin/gscan2pdf:7432 #, perl-format msgid "" "The help viewer requires module Gtk2::Ex::PodViewer\n" "Alternatively, try: %s %s\n" "\n" msgstr "" #: bin/gscan2pdf:7698 msgid "This operation cannot be undone. Are you sure?" msgstr "Ez a művelet nem vonható vissza. Biztosan folytatja?" #: bin/gscan2pdf:7753 msgid "Preferences" msgstr "Beállítások" #: bin/gscan2pdf:7762 msgid "Frontend" msgstr "" #: bin/gscan2pdf:7766 msgid "libsane-perl" msgstr "" #: bin/gscan2pdf:7767 msgid "Scan using the perl bindings for SANE." msgstr "" #: bin/gscan2pdf:7770 msgid "scanimage" msgstr "" #: bin/gscan2pdf:7771 msgid "Scan using the scanimage frontend." msgstr "" #: bin/gscan2pdf:7775 msgid "scanimage-perl" msgstr "" #: bin/gscan2pdf:7776 msgid "Scan using the scanimage-perl frontend." msgstr "" #: bin/gscan2pdf:7779 msgid "scanadf-perl" msgstr "" #: bin/gscan2pdf:7780 msgid "Scan using the scanadf-perl frontend." msgstr "" #: bin/gscan2pdf:7785 msgid "scanadf" msgstr "" #: bin/gscan2pdf:7786 msgid "Scan using the scanadf frontend." msgstr "" #: bin/gscan2pdf:7791 msgid "Cycle SANE handle after scan" msgstr "" #: bin/gscan2pdf:7814 msgid "Default filename for PDFs" msgstr "Alapértelmezett PDF fájlnév" #: bin/gscan2pdf:7820 msgid "" "%a\t author\n" "%t\t title\n" "%y\t document's year\n" "%Y\t today's year\n" "%m\t document's month\n" "%M\t today's month\n" "%d\t document's day\n" "%D\t today's day" msgstr "" "%a\t szerző\n" "%t\t cím\n" "%y\t dokumentum éve\n" "%Y\t aktuális év\n" "%m\t dokumentum hónapja\n" "%M\t aktuális hónap\n" "%d\t dokumentum napja\n" "%D\t aktuális nap" #: bin/gscan2pdf:7830 msgid "Scan command prefix" msgstr "Lapolvasás parancs előtag" #: bin/gscan2pdf:7839 msgid "Restore window settings on startup" msgstr "Ablakbeállítások visszaállítása indításkor" #: bin/gscan2pdf:7845 msgid "Cache device-dependent options" msgstr "Eszköz függő beállítások gyorsítótárazása" #: bin/gscan2pdf:7851 msgid "Clear device-dependent options cache" msgstr "Eszköz függő beállítások gyorsítótárának ürítése" #: bin/gscan2pdf:7862 msgid "Temporary directory" msgstr "Átmeneti könyvtár" #: bin/gscan2pdf:7867 msgid "Browse" msgstr "" #: bin/gscan2pdf:7871 msgid "Select temporary directory" msgstr "" #: bin/gscan2pdf:7888 msgid "Blank threshold" msgstr "" #: bin/gscan2pdf:7893 msgid "Threshold used for selecting blank pages" msgstr "" #: bin/gscan2pdf:7899 msgid "Dark threshold" msgstr "" #: bin/gscan2pdf:7904 msgid "Threshold used for selecting dark pages" msgstr "" #: bin/gscan2pdf:7910 msgid "OCR output" msgstr "OCR kimenet" #: bin/gscan2pdf:7915 msgid "Replace" msgstr "Csere" #: bin/gscan2pdf:7917 msgid "" "Replace the contents of the text buffer with that from the OCR output." msgstr "" #: bin/gscan2pdf:7920 msgid "Prepend" msgstr "Eléfűz" #: bin/gscan2pdf:7921 msgid "Prepend the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7924 msgid "Append" msgstr "Hozzáfűz" #: bin/gscan2pdf:7925 msgid "Append the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7933 msgid "User-defined tools" msgstr "" #: bin/gscan2pdf:7954 msgid "View files on saving" msgstr "Fájlok megtekintése mentéskor" #: bin/gscan2pdf:8000 msgid "" "You will have to restart gscanp2df for changes to the temporary directory to " "take effect." msgstr "" "Újra kell indítania a gscan2pdfet hogy az ideiglenes mappa megváltozása " "érvénybe lépjen." #: bin/gscan2pdf:8092 msgid "" "Use %i and %o for the input and output filenames respectively, or a single " "%i if the image is to be modified in-place.\n" "\n" "The other variable available is:\n" "\n" "%r resolution" msgstr "" #: bin/gscan2pdf:8119 msgid "Properties" msgstr "Tulajdonságok" #: lib/Gscan2pdf/Dialog.pm:63 lib/Gscan2pdf/Dialog.pm:79 t/05_Dialog.t:25 msgid "hide-on-delete" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:78 lib/Gscan2pdf/Dialog/Renumber.pm:162 msgid "Renumber" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:98 lib/Gscan2pdf/Dialog/Renumber.pm:207 #: lib/Gscan2pdf/Dialog/Renumber.pm:244 msgid "range" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:102 msgid "Page numbering" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:105 lib/Gscan2pdf/Scanner/Dialog.pm:254 msgid "border_width" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:126 lib/Gscan2pdf/Dialog/Renumber.pm:192 #: lib/Gscan2pdf/Dialog/Renumber.pm:242 t/07_Dialog_Renumber.t:33 #: t/07_Dialog_Renumber.t:45 t/07_Dialog_Renumber.t:59 #: t/07_Dialog_Renumber.t:66 msgid "start" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:147 lib/Gscan2pdf/Dialog/Renumber.pm:193 #: lib/Gscan2pdf/Dialog/Renumber.pm:243 t/07_Dialog_Renumber.t:34 #: t/07_Dialog_Renumber.t:46 t/07_Dialog_Renumber.t:60 #: t/07_Dialog_Renumber.t:67 msgid "increment" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:205 lib/Gscan2pdf/Dialog/Renumber.pm:241 msgid "document" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:295 msgid "" "The current settings would result in duplicate page numbers. Please select " "new start and increment values." msgstr "" #: lib/Gscan2pdf/Document.pm:83 msgid "Thumbnails" msgstr "Miniatűrök" #: lib/Gscan2pdf/Document.pm:1502 msgid "Unknown DjVu file structure. Please contact the author." msgstr "" #: lib/Gscan2pdf/Document.pm:1558 #, perl-format msgid "%s is not a recognised image type" msgstr "" #: lib/Gscan2pdf/Document.pm:1580 lib/Gscan2pdf/Document.pm:1637 #, perl-format msgid "Importing page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:1613 msgid "Error extracting images from PDF" msgstr "Hiba a képek PDFből kibontása során" #: lib/Gscan2pdf/Document.pm:1692 msgid "Setting up PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1703 #, perl-format msgid "Saving page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:1814 lib/Gscan2pdf/Document.pm:2136 #, perl-format msgid "Error compressing image: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1919 #, perl-format msgid "Error creating PDF image object: %s" msgstr "Hiba a PDF objektum létrehozásakor: %s" #: lib/Gscan2pdf/Document.pm:1930 #, perl-format msgid "Error embedding file image in %s format to PDF: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1939 msgid "Closing PDF" msgstr "PDF bezárása" #: lib/Gscan2pdf/Document.pm:1955 #, perl-format msgid "Writing page %i of %i" msgstr "Lap írása: %i Összesen: %i" #: lib/Gscan2pdf/Document.pm:2006 msgid "Error writing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2025 lib/Gscan2pdf/Document.pm:2227 #, perl-format msgid "Can't open file: %s" msgstr "A fájl nem megnyitható: %s" #: lib/Gscan2pdf/Document.pm:2050 msgid "Error adding text layer to DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2056 msgid "Closing DjVu" msgstr "DjVu bezárása" #: lib/Gscan2pdf/Document.pm:2063 msgid "Error closing DjVu" msgstr "Hiba a DjVu bezárásakor" #: lib/Gscan2pdf/Document.pm:2078 #, perl-format msgid "Converting image %i of %i to TIFF" msgstr "Kép konvertálása TIFF-be %i/%i" #: lib/Gscan2pdf/Document.pm:2105 msgid "Error writing TIFF" msgstr "Hiba a TIFF írása során" #: lib/Gscan2pdf/Document.pm:2121 msgid "Concatenating TIFFs" msgstr "" #: lib/Gscan2pdf/Document.pm:2140 msgid "Converting to PS" msgstr "Konvertálás PS-é" #: lib/Gscan2pdf/Document.pm:2200 lib/Gscan2pdf/Document.pm:2215 msgid "Error saving image" msgstr "Hiba a kép mentésekor" #: lib/Gscan2pdf/Frontend/CLI.pm:158 #, perl-format msgid "Scanning %i pages..." msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:163 #, perl-format msgid "Scanning page %i..." msgstr "Oldal olvasása %i..." #: lib/Gscan2pdf/Frontend/CLI.pm:188 lib/Gscan2pdf/Frontend/CLI.pm:296 msgid "Scanner warming up" msgstr "Lapolvasó előkészítése" #: lib/Gscan2pdf/Frontend/CLI.pm:195 msgid "Document feeder out of documents" msgstr "Nincs lap az adagolóban" #: lib/Gscan2pdf/Frontend/CLI.pm:212 lib/Gscan2pdf/Frontend/CLI.pm:325 msgid "Device busy" msgstr "Az eszköz foglalt" #: lib/Gscan2pdf/Frontend/CLI.pm:218 lib/Gscan2pdf/Frontend/CLI.pm:330 msgid "Operation cancelled" msgstr "A művelet megszakítva" #: lib/Gscan2pdf/Frontend/CLI.pm:223 lib/Gscan2pdf/Frontend/CLI.pm:336 msgid "Unknown message: " msgstr "Ismeretlen üzenet: " #: lib/Gscan2pdf/Page.pm:68 lib/Gscan2pdf/Page.pm:73 #, perl-format msgid "Error importing image %s: %s" msgstr "" #: lib/Gscan2pdf/PageRange.pm:33 msgid "Selected" msgstr "Kijelölt" #: lib/Gscan2pdf/PageRange.pm:58 msgid "active" msgstr "aktív" #: lib/Gscan2pdf/Scanner/Dialog.pm:218 t/061_Scanner_Dialog.t:33 #: t/061_Scanner_Dialog.t:59 msgid "device-list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:496 t/061_Scanner_Dialog.t:139 #: t/061_Scanner_Dialog.t:174 t/062_Scanner_Dialog.t:50 #: t/062_Scanner_Dialog.t:75 msgid "current-scan-options" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:567 msgid "logger" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:650 t/05_Dialog.t:24 msgid "transient-for" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:716 msgid "device_list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:749 t/061_Scanner_Dialog.t:32 msgid "device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:751 msgid "Opening device" msgstr "Eszköz megnyitása" #: lib/Gscan2pdf/Scanner/Dialog.pm:760 msgid "Retrieving options" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:41 msgid "Layout" msgstr "Elrendezés" #: lib/Gscan2pdf/Unpaper.pm:44 msgid "Single" msgstr "Egyszeres" #: lib/Gscan2pdf/Unpaper.pm:46 msgid "One page per sheet, oriented upwards without rotation." msgstr "Egy lap / oldal, forgatás nélküli" #: lib/Gscan2pdf/Unpaper.pm:49 msgid "Double" msgstr "Dupla" #: lib/Gscan2pdf/Unpaper.pm:51 msgid "" "Two pages per sheet, landscape orientation (one page on the left half, one " "page on the right half)." msgstr "" "Két oldal / lap, fekvő elrendezés (az egyik oldal a jobb oldalon, a másik a " "bal oldalon)." #: lib/Gscan2pdf/Unpaper.pm:59 msgid "# Output pages" msgstr "# Kineneti oldalak" #: lib/Gscan2pdf/Unpaper.pm:60 msgid "Number of pages to output." msgstr "Kimeneti oldalak száma" #: lib/Gscan2pdf/Unpaper.pm:68 msgid "No deskew" msgstr "Nincs kiegyenesítés" #: lib/Gscan2pdf/Unpaper.pm:69 msgid "Disable deskewing." msgstr "Kiegyenesítés letiltása" #: lib/Gscan2pdf/Unpaper.pm:74 msgid "No mask scan" msgstr "Nincs maszk beolvasás" #: lib/Gscan2pdf/Unpaper.pm:75 msgid "Disable mask detection." msgstr "Maszk felismerés letiltása" #: lib/Gscan2pdf/Unpaper.pm:80 msgid "No black filter" msgstr "Nincs fekete szűrő" #: lib/Gscan2pdf/Unpaper.pm:81 msgid "Disable black area scan." msgstr "Fekete terület felismerés letiltása" #: lib/Gscan2pdf/Unpaper.pm:86 msgid "No gray filter" msgstr "Nincs szürke szűrő" #: lib/Gscan2pdf/Unpaper.pm:87 msgid "Disable gray area scan." msgstr "Szürke terület felismerés letiltása" #: lib/Gscan2pdf/Unpaper.pm:92 msgid "No noise filter" msgstr "Nincs zaj szűrő" #: lib/Gscan2pdf/Unpaper.pm:93 msgid "Disable noise filter." msgstr "Zaj szűrő letiltása" #: lib/Gscan2pdf/Unpaper.pm:98 msgid "No blur filter" msgstr "Nincs elmosás szűrő" #: lib/Gscan2pdf/Unpaper.pm:99 msgid "Disable blur filter." msgstr "Elmosás szűrő letiltása" #: lib/Gscan2pdf/Unpaper.pm:104 msgid "No border scan" msgstr "Nincs keret felismerés" #: lib/Gscan2pdf/Unpaper.pm:105 msgid "Disable border scanning." msgstr "Keret felismerés letiltása" #: lib/Gscan2pdf/Unpaper.pm:110 msgid "No border align" msgstr "Nincs keret elrendezés" #: lib/Gscan2pdf/Unpaper.pm:112 msgid "Disable aligning of the area detected by border scanning." msgstr "" "Terület elrendezés tiltása, amely a keret felismerésnél lett megtalálva." #: lib/Gscan2pdf/Unpaper.pm:117 msgid "Deskew to edge" msgstr "Kiegyenesítés a szélén" #: lib/Gscan2pdf/Unpaper.pm:119 msgid "" "Edges from which to scan for rotation. Each edge of a mask can be used to " "detect the mask's rotation. If multiple edges are specified, the average " "value will be used, unless the statistical deviation exceeds --deskew-scan-" "deviation." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:125 msgid "Use 'left' for scanning from the left edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:130 msgid "Use 'top' for scanning from the top edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:134 lib/Gscan2pdf/Unpaper.pm:162 msgid "Right" msgstr "Jobb" #: lib/Gscan2pdf/Unpaper.pm:135 msgid "Use 'right' for scanning from the right edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:139 lib/Gscan2pdf/Unpaper.pm:167 msgid "Bottom" msgstr "Lent" #: lib/Gscan2pdf/Unpaper.pm:140 msgid "Use 'bottom' for scanning from the bottom." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:147 msgid "Align to edge" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:148 msgid "Edge to which to align the page." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:153 msgid "Use 'left' to align to the left edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:158 msgid "Use 'top' to align to the top edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:163 msgid "Use 'right' to align to the right edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:168 msgid "Use 'bottom' to align to the bottom." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:174 msgid "Border margin" msgstr "Határ margó" #: lib/Gscan2pdf/Unpaper.pm:178 msgid "Vertical margin" msgstr "Vízszintes margó" #: lib/Gscan2pdf/Unpaper.pm:180 msgid "" "Vertical distance to keep from the sheet edge when aligning a border area." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:189 msgid "Horizontal margin" msgstr "Függőleges margó" #: lib/Gscan2pdf/Unpaper.pm:191 msgid "" "Horizontal distance to keep from the sheet edge when aligning a border area." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:202 msgid "White threshold" msgstr "Fehér küszöbszint" #: lib/Gscan2pdf/Unpaper.pm:204 msgid "Brightness ratio above which a pixel is considered white." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:212 msgid "Black threshold" msgstr "Fekete küszöbszint" #: lib/Gscan2pdf/Unpaper.pm:214 msgid "" "Brightness ratio below which a pixel is considered black (non-gray). This is " "used by the gray-filter. This value is also used when converting a grayscale " "image to black-and-white mode." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:250 msgid "Deskew" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:280 msgid "Border" msgstr "Keret" #: lib/Gscan2pdf/Unpaper.pm:337 msgid "Filters" msgstr "Szűrők" #: t/05_Dialog.t:23 msgid "title" msgstr "" #: t/05_Dialog.t:26 t/05_Dialog.t:31 t/05_Dialog.t:32 t/05_Dialog.t:38 #: t/05_Dialog.t:39 msgid "border-width" msgstr "" #: t/061_Scanner_Dialog.t:34 msgid "dir" msgstr "" #: t/061_Scanner_Dialog.t:36 msgid "max-pages" msgstr "" #: t/061_Scanner_Dialog.t:39 msgid "side-to-scan" msgstr "" #: t/061_Scanner_Dialog.t:40 t/061_Scanner_Dialog.t:185 msgid "available-scan-options" msgstr "" #: t/061_Scanner_Dialog.t:171 t/062_Scanner_Dialog.t:73 msgid "profile" msgstr "" gscan2pdf-1.2.3/po/gscan2pdf-gu.po0000644000175000017500000013643012243440507015240 0ustar jeffjeff# Gujarati translation for gscan2pdf # Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 # This file is distributed under the same license as the gscan2pdf package. # FIRST AUTHOR , 2012. # msgid "" msgstr "" "Project-Id-Version: gscan2pdf\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-10-25 08:12+0200\n" "PO-Revision-Date: 2012-10-02 07:36+0000\n" "Last-Translator: vishal goswami \n" "Language-Team: Gujarati \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-19 09:22+0000\n" "X-Generator: Launchpad (build 16831)\n" #: bin/gscan2pdf:157 msgid "Error displaying help" msgstr "" #: bin/gscan2pdf:201 msgid "" "Error: unable to load settings.\n" "Backing up settings\n" "Reverting to defaults" msgstr "" "ત્રુટી : સેટિંગ્સ લોડ થઈ શકે તેમ નથી.\n" "સેટિંગ્સ બેક-અપ થઇ રહ્યા છે\n" "સિસ્ટમ મૂળભૂત પર પાછાં જઇ રહ્યા છે" #: bin/gscan2pdf:244 msgid "A4" msgstr "એ૪" #: bin/gscan2pdf:250 msgid "US Letter" msgstr "US લેટર" #: bin/gscan2pdf:256 msgid "US Legal" msgstr "US કાયદાકીય" #: bin/gscan2pdf:323 bin/gscan2pdf:344 #, perl-format msgid "Cannot read file: %s" msgstr "ફાઇલ વાંચી શકાય તેમ નથી : %s" #: bin/gscan2pdf:451 msgid "_File" msgstr "ફાઈલ (_F)" #: bin/gscan2pdf:454 msgid "_New" msgstr "નવું (_N)" #: bin/gscan2pdf:455 msgid "Clears all pages" msgstr "બધાં પેજ કાઢી નાખે છે" #: bin/gscan2pdf:459 msgid "_Open" msgstr "ખોલો (_O)" #: bin/gscan2pdf:460 msgid "Open image file(s)" msgstr "ચિત્રની ફાઇલ/ફાઇલો ખોલો" #: bin/gscan2pdf:465 msgid "S_can" msgstr "સ્કેન કરો" #: bin/gscan2pdf:467 msgid "Scan document" msgstr "દસ્તાવેજ સ્કેન કરો" #: bin/gscan2pdf:471 bin/gscan2pdf:472 bin/gscan2pdf:2582 msgid "Save" msgstr "સાચવો" #: bin/gscan2pdf:476 msgid "_Email as PDF" msgstr "PDF તરીકે ઇમેલ કરો" #: bin/gscan2pdf:477 msgid "Attach as PDF to a new email" msgstr "PDF તરીકે નવા ઇમેલ સાથે જોડો" #: bin/gscan2pdf:480 msgid "_Print" msgstr "છાપો (_P)" #: bin/gscan2pdf:481 msgid "Print" msgstr "છાપો" #: bin/gscan2pdf:485 msgid "_Compress temporary files" msgstr "હંગામી ફાઇલોનું સંકોચન કરો ( _C)" #: bin/gscan2pdf:486 msgid "Compress temporary files" msgstr "હંગામી ફાઇલોનું સંકોચન કરો" #: bin/gscan2pdf:490 msgid "_Quit" msgstr "બંધ કરો (_Q)" #: bin/gscan2pdf:491 msgid "Quit" msgstr "બંધ કરો" #: bin/gscan2pdf:495 msgid "_Edit" msgstr "ફેરફાર કરો (_E)" #: bin/gscan2pdf:497 msgid "_Undo" msgstr "છેલ્લી ક્રિયા રદ કરો (_U)" #: bin/gscan2pdf:497 msgid "Undo" msgstr "છેલ્લી ક્રિયા રદ કરો" #: bin/gscan2pdf:501 msgid "_Redo" msgstr "ફરીથી કરો (_R)" #: bin/gscan2pdf:502 msgid "Redo" msgstr "ફરી કરો" #: bin/gscan2pdf:506 msgid "Cu_t" msgstr "કાપો (_t)" #: bin/gscan2pdf:507 msgid "Cut selection" msgstr "પસંદગીને કાપો" #: bin/gscan2pdf:511 msgid "_Copy" msgstr "નકલ કરો (_C)" #: bin/gscan2pdf:512 msgid "Copy selection" msgstr "પસંદગીની નકલ કરો" #: bin/gscan2pdf:516 msgid "_Paste" msgstr "ચોંટાડો (_P)" #: bin/gscan2pdf:517 msgid "Paste selection" msgstr "પસંદગીને ચોંટાડો" #: bin/gscan2pdf:521 msgid "_Delete" msgstr "કાઢી નાંખો (_D)" #: bin/gscan2pdf:522 msgid "Delete selected pages" msgstr "પસંદગીનાં પાનાં કાઢી નાંખો" #: bin/gscan2pdf:526 msgid "_Renumber" msgstr "ફરીથી ક્રમવાર કરો" #: bin/gscan2pdf:527 msgid "Renumber pages" msgstr "પાનાંઓ ને ફરીથી ક્રમવાર કરોે" #: bin/gscan2pdf:529 bin/gscan2pdf:679 msgid "_Select" msgstr "પસંદ કરો (_S)" #: bin/gscan2pdf:532 msgid "_All" msgstr "બધા (_A)" #: bin/gscan2pdf:533 msgid "Select all pages" msgstr "બધા પાનાં પસંદ કરો" #: bin/gscan2pdf:536 msgid "_Odd" msgstr "એકી સંખ્યાક" #: bin/gscan2pdf:537 msgid "Select all odd-numbered pages" msgstr "બધા એકી સંખ્યાક પાનાંઓ પસંદ કરો" #: bin/gscan2pdf:541 msgid "_Even" msgstr "બેકી સંખ્યાક" #: bin/gscan2pdf:542 msgid "Select all evenly-numbered pages" msgstr "બધા બેકી સંખ્યાક પાનાંઓ પસંદ કરો" #: bin/gscan2pdf:547 msgid "_Blank" msgstr "ખાલી (_B)" #: bin/gscan2pdf:548 msgid "Select pages with low standard deviation" msgstr "અલ્પ માનક વિચલન વાળા પાનાઓને પસંદ કરો" #: bin/gscan2pdf:552 msgid "_Dark" msgstr "ઘેરુ" #: bin/gscan2pdf:553 msgid "Select dark pages" msgstr "ઘેરા પાનાંઓને પસંદ કરો" #: bin/gscan2pdf:558 msgid "_Modified" msgstr "બદલાયેલું ( _M)" #: bin/gscan2pdf:560 msgid "Select modified pages since last OCR" msgstr "છેલ્લા OCR બાદ બદલાયેલા પાનાઓં પસંદ કરો" #: bin/gscan2pdf:565 msgid "_No OCR" msgstr "OCR નહીં ( _N)" #: bin/gscan2pdf:566 msgid "Select pages with no OCR output" msgstr "OCR નીપજ વગરનાં પાનાઓં પસંદ કરો" #: bin/gscan2pdf:570 msgid "_Clear OCR" msgstr "OCR ખાલી કરો ( _C)" #: bin/gscan2pdf:571 msgid "Clear OCR output from selected pages" msgstr "પસંદ કરેલા પાનાઓંમાંથી OCR નીપજ ખાલી કરો" #: bin/gscan2pdf:575 msgid "Propert_ies" msgstr "લાક્ષણિકતાઓ ( _I)" #: bin/gscan2pdf:576 msgid "Edit image properties" msgstr "ચિત્રની લાક્ષણિકતાઓમાં ફેરફાર કરો" #: bin/gscan2pdf:580 msgid "Prefere_nces" msgstr "પસંદગીઓ (_n)" #: bin/gscan2pdf:581 msgid "Edit preferences" msgstr "પસંદગીઓમાં ફેરફાર કરો" #: bin/gscan2pdf:585 msgid "_View" msgstr "જૂઓ (_V)" #: bin/gscan2pdf:588 msgid "Zoom _100%" msgstr "_100% zoom કરો" #: bin/gscan2pdf:589 msgid "Zoom to 100%" msgstr "100% zoom કરો" #: bin/gscan2pdf:593 msgid "Zoom to _fit" msgstr "બંધબેસતી રીતે zoom કરો ( _F)" #: bin/gscan2pdf:594 msgid "Zoom to fit" msgstr "બંધબેસતી રીતે zoom કરો" #: bin/gscan2pdf:598 msgid "Zoom _in" msgstr "મોટું કરો ( _I)" #: bin/gscan2pdf:599 msgid "Zoom in" msgstr "મોટું કરો" #: bin/gscan2pdf:603 msgid "Zoom _out" msgstr "નાનું કરો ( _O)" #: bin/gscan2pdf:604 msgid "Zoom out" msgstr "નાનું કરો" #: bin/gscan2pdf:609 bin/gscan2pdf:611 msgid "Rotate 90 clockwise" msgstr "90 અંશે ડાબેથી જમણે ફેરવો" #: bin/gscan2pdf:617 bin/gscan2pdf:619 msgid "Rotate 180" msgstr "180 અંશે ફેરવો" #: bin/gscan2pdf:625 bin/gscan2pdf:627 msgid "Rotate 90 anticlockwise" msgstr "90 અંશે જમણેથી ડાબે ફેરવો" #: bin/gscan2pdf:632 msgid "_Tools" msgstr "ઉપકરણ (_T)" #: bin/gscan2pdf:634 msgid "_Threshold" msgstr "થ્રેશોલ્ડ (_T)" #: bin/gscan2pdf:635 msgid "Change each pixel above this threshold to black" msgstr "આ થ્રેશોલ્ડથી ઉપરનાં તમામ બિંદુઓને શ્યામ રંગના કરો" #: bin/gscan2pdf:639 msgid "_Negate" msgstr "રંગો ઉલટાવો ( _N)" #: bin/gscan2pdf:640 msgid "Converts black to white and vice versa" msgstr "શ્યામને શ્વેત અને શ્વેતને શ્યામ કરે છે" #: bin/gscan2pdf:644 msgid "_Unsharp Mask" msgstr "આવરકને અતીવ્ર કરો ( _U)" #: bin/gscan2pdf:645 msgid "Apply an unsharp mask" msgstr "અતીવ્ર આવરક લગાડો" #: bin/gscan2pdf:648 msgid "_Crop" msgstr "કાપો (_C)" #: bin/gscan2pdf:649 msgid "Crop pages" msgstr "પાનાઓં કાપો" #: bin/gscan2pdf:653 msgid "_Clean up" msgstr "ચોખ્ખુ કરો" #: bin/gscan2pdf:654 bin/gscan2pdf:4085 msgid "Clean up scanned images with unpaper" msgstr "unpaper નો ઉપયોગ કરી , પ્રતીકૃત ચિત્રોને ચોખ્ખા કરો" #: bin/gscan2pdf:657 msgid "_OCR" msgstr "_OCR" #: bin/gscan2pdf:658 msgid "Optical Character Recognition" msgstr "અક્ષરોને દૃશ્ય સ્વરુપે ઓળખવાની પધ્ધતી" #: bin/gscan2pdf:660 msgid "U_ser-defined" msgstr "ઉપયોગ કર્તા દ્વારા વ્યાખ્યાયિત" #: bin/gscan2pdf:663 bin/gscan2pdf:665 msgid "_Help" msgstr "મદદ (_H)" #: bin/gscan2pdf:666 msgid "Help" msgstr "મદદ" #: bin/gscan2pdf:668 msgid "_About" msgstr "વિશે (_A)" #: bin/gscan2pdf:674 msgid "_Drag" msgstr "ઉપાડો" #: bin/gscan2pdf:675 msgid "Use the hand tool" msgstr "હસ્ત ઉપકરણનો ઉપયોગ કરો" #: bin/gscan2pdf:680 msgid "Use the rectangular selection tool" msgstr "ચતુર્ભુજ પસંદગી ઉપકરણનો ઉપયોગ કરો" #: bin/gscan2pdf:684 msgid "_Paint" msgstr "રંગ કરો ( _P)" #: bin/gscan2pdf:685 msgid "Use the painter tool" msgstr "રંગકાર ઉપકરણનો ઉપયોગ કરો" #: bin/gscan2pdf:965 lib/Gscan2pdf/Document.pm:2594 #: lib/Gscan2pdf/Document.pm:2595 msgid "Error copying page" msgstr "પાનાંની નકલ કરવાંમાં ત્રુટી થઇ છે" #: bin/gscan2pdf:1082 msgid "Image" msgstr "ચિત્ર" #: bin/gscan2pdf:1117 msgid "OCR Output" msgstr "OCR નીપજ" #: bin/gscan2pdf:1174 msgid "Mode" msgstr "સ્થિતિ" #: bin/gscan2pdf:1176 msgid "Lineart" msgstr "રેખાચિત્ર" #: bin/gscan2pdf:1177 msgid "Grayscale" msgstr "ગ્રેસ્કેલ" #: bin/gscan2pdf:1178 msgid "Gray" msgstr "રાખોડી" #: bin/gscan2pdf:1179 msgid "Color" msgstr "રંગીન" #: bin/gscan2pdf:1180 msgid "Black & White" msgstr "શ્વેત-શ્યામ" #: bin/gscan2pdf:1181 msgid "True Gray" msgstr "મુખ્ય રાખોડી" #: bin/gscan2pdf:1182 msgid "Binary" msgstr "બાઇનરી" #: bin/gscan2pdf:1183 bin/gscan2pdf:1242 bin/gscan2pdf:1243 msgid "Auto" msgstr "સ્વયંચાલિત" #: bin/gscan2pdf:1184 msgid "Halftone" msgstr "હાફટોન" #: bin/gscan2pdf:1185 msgid "24bit Color" msgstr "24 બિટ કલર" #: bin/gscan2pdf:1189 bin/gscan2pdf:2547 bin/gscan2pdf:2644 msgid "Compression" msgstr "સંકોચન" #: bin/gscan2pdf:1191 bin/gscan2pdf:2539 bin/gscan2pdf:2636 msgid "None" msgstr "કશું નહી" #: bin/gscan2pdf:1192 bin/gscan2pdf:2537 bin/gscan2pdf:2601 bin/gscan2pdf:2622 msgid "JPEG" msgstr "JPEG" #: bin/gscan2pdf:1195 bin/gscan2pdf:8127 msgid "Resolution" msgstr "ગહનતા" #: bin/gscan2pdf:1196 msgid "Brightness" msgstr "તેજસ્વિતા" #: bin/gscan2pdf:1197 msgid "Gain" msgstr "લાભ" #: bin/gscan2pdf:1198 msgid "Contrast" msgstr "વિષમતા" #: bin/gscan2pdf:1199 bin/gscan2pdf:6406 bin/gscan2pdf:6417 bin/gscan2pdf:6620 msgid "Threshold" msgstr "થ્રેશોલ્ડ" #: bin/gscan2pdf:1201 msgid "Speed" msgstr "ઝડપ" #: bin/gscan2pdf:1203 bin/gscan2pdf:1210 bin/gscan2pdf:1217 bin/gscan2pdf:1224 #: bin/gscan2pdf:1231 msgid "Yes" msgstr "હાં" #: bin/gscan2pdf:1204 bin/gscan2pdf:1211 bin/gscan2pdf:1218 bin/gscan2pdf:1225 #: bin/gscan2pdf:1232 msgid "No" msgstr "નહીં" #: bin/gscan2pdf:1208 msgid "Batch scan" msgstr "સમુહ પ્રતીચિત્રણ" #: bin/gscan2pdf:1215 bin/gscan2pdf:1222 msgid "Wait for button" msgstr "રાહ જુઓ નું બટન" #: bin/gscan2pdf:1229 msgid "Cache calibration" msgstr "માહિતી પૂર્વસંચયનું સંકલન" #: bin/gscan2pdf:1236 msgid "Source" msgstr "સ્ત્રોત" #: bin/gscan2pdf:1238 msgid "Normal" msgstr "સામાન્ય" #: bin/gscan2pdf:1239 msgid "ADF" msgstr "ADF" #: bin/gscan2pdf:1240 msgid "Automatic Document Feeder" msgstr "સ્વયંચાલિત દસ્તાવેજ પૂરક" #: bin/gscan2pdf:1241 msgid "XPA" msgstr "XPA" #: bin/gscan2pdf:1244 msgid "Flatbed" msgstr "Flatbed" #: bin/gscan2pdf:1245 msgid "Transparency Adapter" msgstr "પારદર્શિતા અનુકૂલક" #: bin/gscan2pdf:1246 msgid "Transparency Unit" msgstr "પારદર્શિતા એકમ" #: bin/gscan2pdf:1249 bin/gscan2pdf:1251 msgid "Page Width" msgstr "પાનાની પહોળાઇ" #: bin/gscan2pdf:1250 bin/gscan2pdf:1252 msgid "Page Height" msgstr "પાનાની લંબાઇ" #: bin/gscan2pdf:1253 msgid "Top Overscan" msgstr "ઉપરનું અતિચિત્રણ" #: bin/gscan2pdf:1254 msgid "Bottom Overscan" msgstr "નીચેનું અતિચિત્રણ" #: bin/gscan2pdf:1256 bin/gscan2pdf:1263 msgid "ADF Mode" msgstr "ADF સ્થિતિ" #: bin/gscan2pdf:1258 bin/gscan2pdf:1265 msgid "Simplex" msgstr "સામાન્ય" #: bin/gscan2pdf:1259 bin/gscan2pdf:1266 msgid "Duplex" msgstr "દ્વિપત્રીય" #: bin/gscan2pdf:1301 bin/gscan2pdf:1306 msgid "Pick crashed session to restore" msgstr "પુનર્જીવિત કરવા માટે નિષ્ફળ સત્રને પસંદ કરો" #: bin/gscan2pdf:1308 bin/gscan2pdf:2609 msgid "Session" msgstr "સત્ર" #: bin/gscan2pdf:1338 #, perl-format msgid "" "Warning: unable to use %s for temporary storage. Defaulting to %s instead." msgstr "" "ચેતાવણી: હંગામી સંચય માટે %s વાપરવામાં અક્ષમ છે, તેના બદલે %s પર મૂળભૂત " "સ્થિતિ કરે છે." #: bin/gscan2pdf:1441 msgid "GOCR" msgstr "GOCR" #: bin/gscan2pdf:1441 msgid "Process image with GOCR." msgstr "GOCR થી ચિત્રને પ્રસાધિત કરો" #: bin/gscan2pdf:1445 msgid "Tesseract" msgstr "Tesseract" #: bin/gscan2pdf:1446 msgid "Process image with Tesseract." msgstr "Tesseract થી ચિત્રને પ્રસાધિત કરો" #: bin/gscan2pdf:1450 msgid "Ocropus" msgstr "Ocropus થી ચિત્રને પ્રસાધિત કરો" #: bin/gscan2pdf:1450 msgid "Process image with Ocropus." msgstr "Ocropus" #: bin/gscan2pdf:1454 msgid "Cuneiform" msgstr "Cuneiform થી ચિત્રને પ્રસાધિત કરો" #: bin/gscan2pdf:1455 msgid "Process image with Cuneiform." msgstr "Cuneiform" #: bin/gscan2pdf:1461 msgid "Save image and Save as PDF both require imagemagick\n" msgstr "" "ચિત્રને સાચવો અને PDF તરીકે સાચવો બન્નેમાં imagemagick ની જરૂરિયાત છે.\n" #: bin/gscan2pdf:1465 msgid "Save image requires libtiff\n" msgstr "ચિત્રને સાચવવામાં libtiff ની જરુરિયાત છે\n" #: bin/gscan2pdf:1469 msgid "Save as DjVu requires djvulibre-bin\n" msgstr "Djvu તરીકે સાચવવામાં djvulibre-bin ની જરુરિયાત છે\n" #: bin/gscan2pdf:1473 msgid "Email as PDF requires xdg-email\n" msgstr "PDF તરીકે ઇમેલ કરવામાં xdg-email ની જરુરિયાત છે\n" #: bin/gscan2pdf:1518 msgid "The rotating options and unpaper support require perlmagick\n" msgstr "" "ફેરવવાનાં વિકલ્પો અને unpaper સપોર્ટ માટે perlmagick ની આવશ્યક્તા છે\n" #: bin/gscan2pdf:1524 msgid "unpaper missing\n" msgstr "unpaper ઉપલબ્ધ નથી\n" #: bin/gscan2pdf:1534 msgid "OCR requires gocr, tesseract, ocropus, or cuneiform\n" msgstr "OCR માટે gocr, tesseract, ocropus અથવા cuneiform ની આવશ્યક્તા છે\n" #: bin/gscan2pdf:1539 msgid "Warning: missing packages" msgstr "ચેતાવણી: પેકેજિસ ઉપલબ્ધ નથી" #: bin/gscan2pdf:1544 msgid "Don't show this message again" msgstr "ફરીથી આ સંદેશને બતાવવો નહિં" #: bin/gscan2pdf:1753 msgid "" "Some pages have not been saved.\n" "Do you really want to clear all pages?" msgstr "" "અમુક પાનાઓ હજુ સચવાયા નથી.\n" "શું તમે ખરેખર બધાં પાનાઓ કાઢી નાખવા માંગો છો?" #: bin/gscan2pdf:1828 bin/gscan2pdf:1858 #, perl-format msgid "Process %i of %i (%s)" msgstr "પ્રક્રિયા %i જે %i(%s) માંથી" #: bin/gscan2pdf:1867 #, perl-format msgid "Process %i of %i" msgstr "પ્રક્રિયા %i ના %i" #: bin/gscan2pdf:1895 msgid "Open image" msgstr "ચિત્રને ખોલો" #: bin/gscan2pdf:1903 bin/gscan2pdf:2797 bin/gscan2pdf:3113 msgid "Image files" msgstr "ચિત્ર ફાઈલો" #: bin/gscan2pdf:1940 msgid "Pages to extract" msgstr "જુદા કરવાના પાનાઓં" #: bin/gscan2pdf:1943 bin/gscan2pdf:2117 bin/gscan2pdf:2586 bin/gscan2pdf:3353 #: bin/gscan2pdf:3494 bin/gscan2pdf:4104 bin/gscan2pdf:4514 bin/gscan2pdf:5825 #: bin/gscan2pdf:6409 bin/gscan2pdf:6495 bin/gscan2pdf:6565 bin/gscan2pdf:6737 #: bin/gscan2pdf:7011 bin/gscan2pdf:7274 bin/gscan2pdf:7757 bin/gscan2pdf:8123 #: lib/Gscan2pdf/Dialog.pm:56 lib/Gscan2pdf/Dialog/Renumber.pm:80 #: lib/Gscan2pdf/Scanner/Dialog.pm:201 t/05_Dialog.t:28 msgid "vbox" msgstr "vbox" #: bin/gscan2pdf:1946 msgid "First page to extract" msgstr "જુદુ કરવાનું પ્રથમ પાનું" #: bin/gscan2pdf:1953 msgid "Last page to extract" msgstr "જુદુ કરવાનું અંતિમ પાનું" #: bin/gscan2pdf:2042 lib/Gscan2pdf/Dialog/Renumber.pm:83 msgid "Page Range" msgstr "પાનાઓની હાર( ક્યાંથી ક્યાં સુધી)" #: bin/gscan2pdf:2092 msgid "Metadata" msgstr "મેટાડેટા" #: bin/gscan2pdf:2101 msgid "Date" msgstr "તારીખ" #: bin/gscan2pdf:2114 msgid "Select Date" msgstr "તારીખ પસંદ કરો" #: bin/gscan2pdf:2136 msgid "Today" msgstr "આજે" #: bin/gscan2pdf:2150 msgid "Year-Month-Day" msgstr "વર્ષ-મહીનો-દિવસ" #: bin/gscan2pdf:2156 msgid "Document author" msgstr "ગ્રંથ લેખક" #: bin/gscan2pdf:2165 msgid "Title" msgstr "શીર્ષક" #: bin/gscan2pdf:2174 msgid "Subject" msgstr "વિષય" #: bin/gscan2pdf:2183 msgid "Keywords" msgstr "મુખ્ય શબ્દો" #: bin/gscan2pdf:2245 msgid "Editing text" msgstr "લખાણ સુધારણા" #: bin/gscan2pdf:2252 bin/gscan2pdf:2258 bin/gscan2pdf:2332 msgid "text" msgstr "લખાણ" #: bin/gscan2pdf:2352 msgid "PDF filename" msgstr "PDF ફાઇલનું નામ" #: bin/gscan2pdf:2381 msgid "PDF files" msgstr "PDF ફાઇલો" #: bin/gscan2pdf:2405 bin/gscan2pdf:2823 bin/gscan2pdf:2880 bin/gscan2pdf:2976 #: bin/gscan2pdf:3035 bin/gscan2pdf:3087 bin/gscan2pdf:3275 #, perl-format msgid "File %s is read-only" msgstr "" #: bin/gscan2pdf:2482 msgid "JPEG Quality" msgstr "JPEG ગુણવત્તા" #: bin/gscan2pdf:2496 msgid "Downsample to" msgstr "" #: bin/gscan2pdf:2501 msgid "PPI" msgstr "PPI" #: bin/gscan2pdf:2520 msgid "Automatic" msgstr "સ્વચાલિત" #: bin/gscan2pdf:2521 msgid "Let gscan2pdf which type of compression to use." msgstr "" #: bin/gscan2pdf:2524 bin/gscan2pdf:2616 msgid "LZW" msgstr "LZW" #: bin/gscan2pdf:2525 bin/gscan2pdf:2617 msgid "Compress output with Lempel-Ziv & Welch encoding." msgstr "" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Zip" msgstr "Zip" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Compress output with deflate encoding." msgstr "" #: bin/gscan2pdf:2529 bin/gscan2pdf:2624 msgid "Packbits" msgstr "Packbits" #: bin/gscan2pdf:2530 bin/gscan2pdf:2625 msgid "Compress output with Packbits encoding." msgstr "" #: bin/gscan2pdf:2536 bin/gscan2pdf:2604 msgid "PNG" msgstr "PNG" #: bin/gscan2pdf:2536 msgid "Compress output with PNG encoding." msgstr "" #: bin/gscan2pdf:2537 bin/gscan2pdf:2622 msgid "Compress output with JPEG encoding." msgstr "" #: bin/gscan2pdf:2540 bin/gscan2pdf:2637 msgid "Use no compression algorithm on output." msgstr "" #: bin/gscan2pdf:2594 msgid "Image type" msgstr "ચિત્રનો પ્રકાર" #: bin/gscan2pdf:2598 msgid "PDF" msgstr "PDF" #: bin/gscan2pdf:2598 msgid "Portable Document Format" msgstr "પોર્ટેબલ દસ્તાવેજ બંધારણ" #: bin/gscan2pdf:2599 msgid "GIF" msgstr "GIF" #: bin/gscan2pdf:2599 msgid "CompuServe graphics interchange format" msgstr "" #: bin/gscan2pdf:2602 msgid "Joint Photographic Experts Group JFIF format" msgstr "" #: bin/gscan2pdf:2604 msgid "Portable Network Graphics" msgstr "પોર્ટેબલ નેટવર્ક ગ્રાફિક્સ" #: bin/gscan2pdf:2605 msgid "PNM" msgstr "PNM" #: bin/gscan2pdf:2605 msgid "Portable anymap" msgstr "" #: bin/gscan2pdf:2606 msgid "PS" msgstr "PS" #: bin/gscan2pdf:2606 msgid "Postscript" msgstr "Postscript" #: bin/gscan2pdf:2607 msgid "TIFF" msgstr "TIFF" #: bin/gscan2pdf:2607 msgid "Tagged Image File Format" msgstr "" #: bin/gscan2pdf:2608 msgid "Text" msgstr "લખાણ" #: bin/gscan2pdf:2608 msgid "Plain text" msgstr "સાદું લખાણ" #: bin/gscan2pdf:2609 msgid "gscan2pdf session file" msgstr "" #: bin/gscan2pdf:2611 msgid "DjVu" msgstr "DjVu" #: bin/gscan2pdf:2611 msgid "Deja Vu" msgstr "" #: bin/gscan2pdf:2628 msgid "G3" msgstr "G3" #: bin/gscan2pdf:2629 msgid "Compress output with CCITT Group 3 encoding." msgstr "" #: bin/gscan2pdf:2632 msgid "G4" msgstr "G4" #: bin/gscan2pdf:2633 msgid "Compress output with CCITT Group 4 encoding." msgstr "" #: bin/gscan2pdf:2649 msgid "tiff" msgstr "tiff" #: bin/gscan2pdf:2681 msgid "Font for non-ASCII text" msgstr "" #: bin/gscan2pdf:2790 msgid "TIFF filename" msgstr "" #: bin/gscan2pdf:2848 msgid "Text filename" msgstr "" #: bin/gscan2pdf:2856 msgid "Text files" msgstr "લેખન ફાઈલો" #: bin/gscan2pdf:2944 msgid "PS filename" msgstr "" #: bin/gscan2pdf:2951 msgid "Postscript files" msgstr "" #: bin/gscan2pdf:3003 msgid "gscan2pdf session filename" msgstr "" #: bin/gscan2pdf:3010 msgid "gscan2pdf session files" msgstr "" #: bin/gscan2pdf:3093 #, perl-format msgid "" "File %s exists.\n" "Really overwrite?" msgstr "" #: bin/gscan2pdf:3106 msgid "Image filename" msgstr "" #: bin/gscan2pdf:3245 msgid "DjVu filename" msgstr "" #: bin/gscan2pdf:3252 msgid "DjVu files" msgstr "" #: bin/gscan2pdf:3349 msgid "Email as PDF" msgstr "" #: bin/gscan2pdf:3454 msgid "Error creating email" msgstr "" #: bin/gscan2pdf:3490 bin/gscan2pdf:4313 msgid "Scan Document" msgstr "" #: bin/gscan2pdf:3507 lib/Gscan2pdf/Scanner/Dialog.pm:248 msgid "Page Options" msgstr "" #: bin/gscan2pdf:3510 lib/Gscan2pdf/Scanner/Dialog.pm:251 msgid "# Pages" msgstr "" #: bin/gscan2pdf:3519 lib/Gscan2pdf/PageRange.pm:34 #: lib/Gscan2pdf/Scanner/Dialog.pm:261 msgid "All" msgstr "" #: bin/gscan2pdf:3520 lib/Gscan2pdf/Scanner/Dialog.pm:262 msgid "Scan all pages" msgstr "" #: bin/gscan2pdf:3532 bin/gscan2pdf:3537 lib/Gscan2pdf/Scanner/Dialog.pm:274 #: lib/Gscan2pdf/Scanner/Dialog.pm:279 msgid "Set number of pages to scan" msgstr "" #: bin/gscan2pdf:3550 lib/Gscan2pdf/Scanner/Dialog.pm:308 msgid "Extended page numbering" msgstr "" #: bin/gscan2pdf:3554 lib/Gscan2pdf/Scanner/Dialog.pm:312 msgid "Page number" msgstr "" #: bin/gscan2pdf:3563 lib/Gscan2pdf/Dialog/Renumber.pm:111 #: lib/Gscan2pdf/Scanner/Dialog.pm:321 msgid "Start" msgstr "" #: bin/gscan2pdf:3572 lib/Gscan2pdf/Dialog/Renumber.pm:132 #: lib/Gscan2pdf/Scanner/Dialog.pm:340 msgid "Increment" msgstr "" #: bin/gscan2pdf:3604 lib/Gscan2pdf/Scanner/Dialog.pm:372 msgid "Source document" msgstr "" #: bin/gscan2pdf:3611 lib/Gscan2pdf/Scanner/Dialog.pm:379 msgid "Single sided" msgstr "" #: bin/gscan2pdf:3612 lib/Gscan2pdf/Scanner/Dialog.pm:380 msgid "Source document is single-sided" msgstr "" #: bin/gscan2pdf:3622 lib/Gscan2pdf/Scanner/Dialog.pm:390 msgid "Double sided" msgstr "" #: bin/gscan2pdf:3623 lib/Gscan2pdf/Scanner/Dialog.pm:391 msgid "Source document is double-sided" msgstr "" #: bin/gscan2pdf:3629 lib/Gscan2pdf/Scanner/Dialog.pm:397 msgid "Side to scan" msgstr "" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Facing" msgstr "" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Reverse" msgstr "" #: bin/gscan2pdf:3655 lib/Gscan2pdf/Scanner/Dialog.pm:418 msgid "Sets which side of a double-sided document is scanned" msgstr "" #: bin/gscan2pdf:3719 msgid "Scan Options" msgstr "" #: bin/gscan2pdf:3722 msgid "Device-dependent options" msgstr "" #: bin/gscan2pdf:3729 lib/Gscan2pdf/Scanner/Dialog.pm:458 msgid "Scan profiles" msgstr "" #: bin/gscan2pdf:3778 bin/gscan2pdf:3784 lib/Gscan2pdf/Scanner/Dialog.pm:479 #: lib/Gscan2pdf/Scanner/Dialog.pm:485 msgid "Name of scan profile" msgstr "" #: bin/gscan2pdf:3828 lib/Gscan2pdf/Scanner/Dialog.pm:518 msgid "Scan" msgstr "" #: bin/gscan2pdf:3866 msgid "Must scan facing pages first" msgstr "" #: bin/gscan2pdf:3977 msgid "Post-processing" msgstr "" #: bin/gscan2pdf:3986 bin/gscan2pdf:4008 msgid "Rotate" msgstr "" #: bin/gscan2pdf:3987 bin/gscan2pdf:4009 msgid "Rotate image after scanning" msgstr "" #: bin/gscan2pdf:3990 msgid "Both sides" msgstr "" #: bin/gscan2pdf:3990 msgid "Both sides." msgstr "" #: bin/gscan2pdf:3991 msgid "Facing side" msgstr "" #: bin/gscan2pdf:3991 msgid "Facing side." msgstr "" #: bin/gscan2pdf:3992 msgid "Reverse side" msgstr "" #: bin/gscan2pdf:3992 msgid "Reverse side." msgstr "" #: bin/gscan2pdf:3995 bin/gscan2pdf:4013 msgid "Select side to rotate" msgstr "" #: bin/gscan2pdf:3998 msgid "90" msgstr "" #: bin/gscan2pdf:3998 msgid "Rotate image 90 degrees clockwise." msgstr "" #: bin/gscan2pdf:3999 msgid "180" msgstr "" #: bin/gscan2pdf:3999 msgid "Rotate image 180 degrees clockwise." msgstr "" #: bin/gscan2pdf:4000 msgid "270" msgstr "" #: bin/gscan2pdf:4000 msgid "Rotate image 90 degrees anticlockwise." msgstr "" #: bin/gscan2pdf:4003 bin/gscan2pdf:4016 msgid "Select direction of rotation" msgstr "" #: bin/gscan2pdf:4083 msgid "Clean up images" msgstr "" #: bin/gscan2pdf:4094 msgid "Options" msgstr "" #: bin/gscan2pdf:4095 msgid "Set unpaper options" msgstr "" #: bin/gscan2pdf:4101 msgid "unpaper options" msgstr "" #: bin/gscan2pdf:4136 bin/gscan2pdf:4137 msgid "OCR scanned pages" msgstr "" #: bin/gscan2pdf:4151 msgid "Select OCR engine" msgstr "" #: bin/gscan2pdf:4210 lib/Gscan2pdf/Scanner/Dialog.pm:634 msgid "Fetching list of devices" msgstr "" #: bin/gscan2pdf:4225 lib/Gscan2pdf/Scanner/Dialog.pm:654 msgid "No devices found" msgstr "" #: bin/gscan2pdf:4367 bin/gscan2pdf:4732 bin/gscan2pdf:4777 bin/gscan2pdf:5214 #: lib/Gscan2pdf/Scanner/Dialog.pm:343 lib/Gscan2pdf/Scanner/Dialog.pm:348 #: t/061_Scanner_Dialog.t:38 t/061_Scanner_Dialog.t:95 msgid "page-number-increment" msgstr "" #: bin/gscan2pdf:4374 bin/gscan2pdf:4729 bin/gscan2pdf:4730 bin/gscan2pdf:4776 #: bin/gscan2pdf:5213 lib/Gscan2pdf/Scanner/Dialog.pm:361 #: t/061_Scanner_Dialog.t:37 msgid "page-number-start" msgstr "" #: bin/gscan2pdf:4663 lib/Gscan2pdf/Scanner/Dialog.pm:210 msgid "Device" msgstr "" #: bin/gscan2pdf:4671 lib/Gscan2pdf/Scanner/Dialog.pm:213 msgid "Rescan for devices" msgstr "" #: bin/gscan2pdf:4694 lib/Gscan2pdf/Scanner/Dialog.pm:237 msgid "Sets the device to be used for the scan" msgstr "" #: bin/gscan2pdf:4780 lib/Gscan2pdf/Scanner/Dialog.pm:300 #: t/061_Scanner_Dialog.t:35 msgid "num-pages" msgstr "" #: bin/gscan2pdf:4821 msgid "Scanning" msgstr "" #: bin/gscan2pdf:4974 msgid "Unable to load image" msgstr "" #: bin/gscan2pdf:5004 msgid "print-pages" msgstr "" #: bin/gscan2pdf:5008 msgid "page-ranges" msgstr "" #: bin/gscan2pdf:5405 msgid "Patches gratefully received from:" msgstr "" #: bin/gscan2pdf:5407 msgid "To aid the scan-to-PDF process" msgstr "" #: bin/gscan2pdf:5408 msgid "Copyright 2006--2012 Jeffrey Ratcliffe" msgstr "" #: bin/gscan2pdf:5492 bin/gscan2pdf:6028 msgid "The options cache seems to be empty. Reload device-dependent options?" msgstr "" #: bin/gscan2pdf:5519 bin/gscan2pdf:6054 msgid "Updating options" msgstr "" #: bin/gscan2pdf:5571 msgid "Paper size" msgstr "" #: bin/gscan2pdf:5572 bin/gscan2pdf:5672 bin/gscan2pdf:5840 bin/gscan2pdf:6769 msgid "Width" msgstr "" #: bin/gscan2pdf:5573 bin/gscan2pdf:5678 bin/gscan2pdf:5841 bin/gscan2pdf:6780 msgid "Height" msgstr "" #: bin/gscan2pdf:5574 bin/gscan2pdf:5684 bin/gscan2pdf:5842 #: lib/Gscan2pdf/Unpaper.pm:124 lib/Gscan2pdf/Unpaper.pm:152 msgid "Left" msgstr "" #: bin/gscan2pdf:5575 bin/gscan2pdf:5690 bin/gscan2pdf:5843 #: lib/Gscan2pdf/Unpaper.pm:129 lib/Gscan2pdf/Unpaper.pm:157 msgid "Top" msgstr "" #: bin/gscan2pdf:5589 bin/gscan2pdf:5703 bin/gscan2pdf:6232 msgid "Manual" msgstr "" #: bin/gscan2pdf:5590 bin/gscan2pdf:5700 msgid "Edit" msgstr "" #: bin/gscan2pdf:5591 msgid "Selects or edits the paper size" msgstr "" #: bin/gscan2pdf:5673 msgid "Width of scan area" msgstr "" #: bin/gscan2pdf:5679 msgid "Height of scan area" msgstr "" #: bin/gscan2pdf:5685 msgid "Top-left x position of scan area" msgstr "" #: bin/gscan2pdf:5691 msgid "Top-left y position of scan area" msgstr "" #: bin/gscan2pdf:5822 msgid "Edit paper size" msgstr "" #: bin/gscan2pdf:5839 msgid "Name" msgstr "" #: bin/gscan2pdf:5893 msgid "Cannot delete all paper sizes" msgstr "" #: bin/gscan2pdf:5955 msgid "" "The following paper sizes are too big to be scanned by the selected device:" msgstr "" #: bin/gscan2pdf:6419 bin/gscan2pdf:6605 msgid "%" msgstr "" #: bin/gscan2pdf:6492 msgid "Negate" msgstr "" #: bin/gscan2pdf:6562 msgid "Unsharp mask" msgstr "" #: bin/gscan2pdf:6573 msgid "Radius" msgstr "" #: bin/gscan2pdf:6575 bin/gscan2pdf:6592 bin/gscan2pdf:6747 bin/gscan2pdf:6759 #: bin/gscan2pdf:6771 bin/gscan2pdf:6782 msgid "pixels" msgstr "" #: bin/gscan2pdf:6582 msgid "" "The radius of the Gaussian, in pixels, not counting the center pixel (0 = " "automatic)." msgstr "" #: bin/gscan2pdf:6590 msgid "Sigma" msgstr "" #: bin/gscan2pdf:6597 msgid "The standard deviation of the Gaussian." msgstr "" #: bin/gscan2pdf:6603 msgid "Amount" msgstr "" #: bin/gscan2pdf:6612 msgid "" "The percentage of the difference between the original and the blur image " "that is added back into the original." msgstr "" #: bin/gscan2pdf:6627 msgid "" "The threshold, as a fraction of QuantumRange, needed to apply the difference " "amount." msgstr "" #: bin/gscan2pdf:6733 msgid "Crop" msgstr "" #: bin/gscan2pdf:6745 msgid "x" msgstr "" #: bin/gscan2pdf:6751 msgid "The x-position of the left hand edge of the crop." msgstr "" #: bin/gscan2pdf:6757 msgid "y" msgstr "" #: bin/gscan2pdf:6763 msgid "The y-position of the top edge of the crop." msgstr "" #: bin/gscan2pdf:6774 msgid "The width of the crop." msgstr "" #: bin/gscan2pdf:6785 msgid "The height of the crop." msgstr "" #: bin/gscan2pdf:6906 msgid "label" msgstr "" #: bin/gscan2pdf:7007 msgid "unpaper" msgstr "" #: bin/gscan2pdf:7216 bin/gscan2pdf:7244 msgid "Language to recognise" msgstr "" #: bin/gscan2pdf:7227 msgid "English" msgstr "" #: bin/gscan2pdf:7270 msgid "OCR" msgstr "" #: bin/gscan2pdf:7279 msgid "OCR Engine" msgstr "" #: bin/gscan2pdf:7323 msgid "Start OCR" msgstr "" #: bin/gscan2pdf:7339 msgid "No page selected" msgstr "" #: bin/gscan2pdf:7374 msgid "" "Some pages have not been saved.\n" "Do you really want to quit?" msgstr "" #: bin/gscan2pdf:7432 #, perl-format msgid "" "The help viewer requires module Gtk2::Ex::PodViewer\n" "Alternatively, try: %s %s\n" "\n" msgstr "" #: bin/gscan2pdf:7698 msgid "This operation cannot be undone. Are you sure?" msgstr "" #: bin/gscan2pdf:7753 msgid "Preferences" msgstr "" #: bin/gscan2pdf:7762 msgid "Frontend" msgstr "" #: bin/gscan2pdf:7766 msgid "libsane-perl" msgstr "" #: bin/gscan2pdf:7767 msgid "Scan using the perl bindings for SANE." msgstr "" #: bin/gscan2pdf:7770 msgid "scanimage" msgstr "" #: bin/gscan2pdf:7771 msgid "Scan using the scanimage frontend." msgstr "" #: bin/gscan2pdf:7775 msgid "scanimage-perl" msgstr "" #: bin/gscan2pdf:7776 msgid "Scan using the scanimage-perl frontend." msgstr "" #: bin/gscan2pdf:7779 msgid "scanadf-perl" msgstr "" #: bin/gscan2pdf:7780 msgid "Scan using the scanadf-perl frontend." msgstr "" #: bin/gscan2pdf:7785 msgid "scanadf" msgstr "" #: bin/gscan2pdf:7786 msgid "Scan using the scanadf frontend." msgstr "" #: bin/gscan2pdf:7791 msgid "Cycle SANE handle after scan" msgstr "" #: bin/gscan2pdf:7814 msgid "Default filename for PDFs" msgstr "" #: bin/gscan2pdf:7820 msgid "" "%a\t author\n" "%t\t title\n" "%y\t document's year\n" "%Y\t today's year\n" "%m\t document's month\n" "%M\t today's month\n" "%d\t document's day\n" "%D\t today's day" msgstr "" #: bin/gscan2pdf:7830 msgid "Scan command prefix" msgstr "" #: bin/gscan2pdf:7839 msgid "Restore window settings on startup" msgstr "" #: bin/gscan2pdf:7845 msgid "Cache device-dependent options" msgstr "" #: bin/gscan2pdf:7851 msgid "Clear device-dependent options cache" msgstr "" #: bin/gscan2pdf:7862 msgid "Temporary directory" msgstr "" #: bin/gscan2pdf:7867 msgid "Browse" msgstr "" #: bin/gscan2pdf:7871 msgid "Select temporary directory" msgstr "" #: bin/gscan2pdf:7888 msgid "Blank threshold" msgstr "" #: bin/gscan2pdf:7893 msgid "Threshold used for selecting blank pages" msgstr "" #: bin/gscan2pdf:7899 msgid "Dark threshold" msgstr "" #: bin/gscan2pdf:7904 msgid "Threshold used for selecting dark pages" msgstr "" #: bin/gscan2pdf:7910 msgid "OCR output" msgstr "" #: bin/gscan2pdf:7915 msgid "Replace" msgstr "" #: bin/gscan2pdf:7917 msgid "" "Replace the contents of the text buffer with that from the OCR output." msgstr "" #: bin/gscan2pdf:7920 msgid "Prepend" msgstr "" #: bin/gscan2pdf:7921 msgid "Prepend the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7924 msgid "Append" msgstr "" #: bin/gscan2pdf:7925 msgid "Append the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7933 msgid "User-defined tools" msgstr "" #: bin/gscan2pdf:7954 msgid "View files on saving" msgstr "" #: bin/gscan2pdf:8000 msgid "" "You will have to restart gscanp2df for changes to the temporary directory to " "take effect." msgstr "" #: bin/gscan2pdf:8092 msgid "" "Use %i and %o for the input and output filenames respectively, or a single " "%i if the image is to be modified in-place.\n" "\n" "The other variable available is:\n" "\n" "%r resolution" msgstr "" #: bin/gscan2pdf:8119 msgid "Properties" msgstr "" #: lib/Gscan2pdf/Dialog.pm:63 lib/Gscan2pdf/Dialog.pm:79 t/05_Dialog.t:25 msgid "hide-on-delete" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:78 lib/Gscan2pdf/Dialog/Renumber.pm:162 msgid "Renumber" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:98 lib/Gscan2pdf/Dialog/Renumber.pm:207 #: lib/Gscan2pdf/Dialog/Renumber.pm:244 msgid "range" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:102 msgid "Page numbering" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:105 lib/Gscan2pdf/Scanner/Dialog.pm:254 msgid "border_width" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:126 lib/Gscan2pdf/Dialog/Renumber.pm:192 #: lib/Gscan2pdf/Dialog/Renumber.pm:242 t/07_Dialog_Renumber.t:33 #: t/07_Dialog_Renumber.t:45 t/07_Dialog_Renumber.t:59 #: t/07_Dialog_Renumber.t:66 msgid "start" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:147 lib/Gscan2pdf/Dialog/Renumber.pm:193 #: lib/Gscan2pdf/Dialog/Renumber.pm:243 t/07_Dialog_Renumber.t:34 #: t/07_Dialog_Renumber.t:46 t/07_Dialog_Renumber.t:60 #: t/07_Dialog_Renumber.t:67 msgid "increment" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:205 lib/Gscan2pdf/Dialog/Renumber.pm:241 msgid "document" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:295 msgid "" "The current settings would result in duplicate page numbers. Please select " "new start and increment values." msgstr "" #: lib/Gscan2pdf/Document.pm:83 msgid "Thumbnails" msgstr "" #: lib/Gscan2pdf/Document.pm:1502 msgid "Unknown DjVu file structure. Please contact the author." msgstr "" #: lib/Gscan2pdf/Document.pm:1558 #, perl-format msgid "%s is not a recognised image type" msgstr "" #: lib/Gscan2pdf/Document.pm:1580 lib/Gscan2pdf/Document.pm:1637 #, perl-format msgid "Importing page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:1613 msgid "Error extracting images from PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1692 msgid "Setting up PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1703 #, perl-format msgid "Saving page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:1814 lib/Gscan2pdf/Document.pm:2136 #, perl-format msgid "Error compressing image: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1919 #, perl-format msgid "Error creating PDF image object: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1930 #, perl-format msgid "Error embedding file image in %s format to PDF: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1939 msgid "Closing PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1955 #, perl-format msgid "Writing page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:2006 msgid "Error writing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2025 lib/Gscan2pdf/Document.pm:2227 #, perl-format msgid "Can't open file: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:2050 msgid "Error adding text layer to DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2056 msgid "Closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2063 msgid "Error closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2078 #, perl-format msgid "Converting image %i of %i to TIFF" msgstr "" #: lib/Gscan2pdf/Document.pm:2105 msgid "Error writing TIFF" msgstr "" #: lib/Gscan2pdf/Document.pm:2121 msgid "Concatenating TIFFs" msgstr "" #: lib/Gscan2pdf/Document.pm:2140 msgid "Converting to PS" msgstr "" #: lib/Gscan2pdf/Document.pm:2200 lib/Gscan2pdf/Document.pm:2215 msgid "Error saving image" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:158 #, perl-format msgid "Scanning %i pages..." msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:163 #, perl-format msgid "Scanning page %i..." msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:188 lib/Gscan2pdf/Frontend/CLI.pm:296 msgid "Scanner warming up" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:195 msgid "Document feeder out of documents" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:212 lib/Gscan2pdf/Frontend/CLI.pm:325 msgid "Device busy" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:218 lib/Gscan2pdf/Frontend/CLI.pm:330 msgid "Operation cancelled" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:223 lib/Gscan2pdf/Frontend/CLI.pm:336 msgid "Unknown message: " msgstr "" #: lib/Gscan2pdf/Page.pm:68 lib/Gscan2pdf/Page.pm:73 #, perl-format msgid "Error importing image %s: %s" msgstr "" #: lib/Gscan2pdf/PageRange.pm:33 msgid "Selected" msgstr "" #: lib/Gscan2pdf/PageRange.pm:58 msgid "active" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:218 t/061_Scanner_Dialog.t:33 #: t/061_Scanner_Dialog.t:59 msgid "device-list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:496 t/061_Scanner_Dialog.t:139 #: t/061_Scanner_Dialog.t:174 t/062_Scanner_Dialog.t:50 #: t/062_Scanner_Dialog.t:75 msgid "current-scan-options" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:567 msgid "logger" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:650 t/05_Dialog.t:24 msgid "transient-for" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:716 msgid "device_list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:749 t/061_Scanner_Dialog.t:32 msgid "device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:751 msgid "Opening device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:760 msgid "Retrieving options" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:41 msgid "Layout" msgstr "દેખાવ" #: lib/Gscan2pdf/Unpaper.pm:44 msgid "Single" msgstr "એક પત્રીય" #: lib/Gscan2pdf/Unpaper.pm:46 msgid "One page per sheet, oriented upwards without rotation." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:49 msgid "Double" msgstr "દ્વી પત્રીય" #: lib/Gscan2pdf/Unpaper.pm:51 msgid "" "Two pages per sheet, landscape orientation (one page on the left half, one " "page on the right half)." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:59 msgid "# Output pages" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:60 msgid "Number of pages to output." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:68 msgid "No deskew" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:69 msgid "Disable deskewing." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:74 msgid "No mask scan" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:75 msgid "Disable mask detection." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:80 msgid "No black filter" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:81 msgid "Disable black area scan." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:86 msgid "No gray filter" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:87 msgid "Disable gray area scan." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:92 msgid "No noise filter" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:93 msgid "Disable noise filter." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:98 msgid "No blur filter" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:99 msgid "Disable blur filter." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:104 msgid "No border scan" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:105 msgid "Disable border scanning." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:110 msgid "No border align" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:112 msgid "Disable aligning of the area detected by border scanning." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:117 msgid "Deskew to edge" msgstr "કિનારથી ત્રાંસ નિવૃત્ત કરો" #: lib/Gscan2pdf/Unpaper.pm:119 msgid "" "Edges from which to scan for rotation. Each edge of a mask can be used to " "detect the mask's rotation. If multiple edges are specified, the average " "value will be used, unless the statistical deviation exceeds --deskew-scan-" "deviation." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:125 msgid "Use 'left' for scanning from the left edge." msgstr "ડાબી કિનારથી scan કરવાં \"ડાબે\" નો ઉપયોગ કરો." #: lib/Gscan2pdf/Unpaper.pm:130 msgid "Use 'top' for scanning from the top edge." msgstr "ઉપરની કિનારથી scan કરવાં \"ઉપર\" નો ઉપયોગ કરો." #: lib/Gscan2pdf/Unpaper.pm:134 lib/Gscan2pdf/Unpaper.pm:162 msgid "Right" msgstr "જમણે" #: lib/Gscan2pdf/Unpaper.pm:135 msgid "Use 'right' for scanning from the right edge." msgstr "જમણી કિનારથી scan કરવાં માટે \"જમણે\" નો ઉપયોગ કરો." #: lib/Gscan2pdf/Unpaper.pm:139 lib/Gscan2pdf/Unpaper.pm:167 msgid "Bottom" msgstr "નીચે" #: lib/Gscan2pdf/Unpaper.pm:140 msgid "Use 'bottom' for scanning from the bottom." msgstr "નીચેથી scan કરવાં માટે \"નીચે\" નો ઉપયોગ કરો." #: lib/Gscan2pdf/Unpaper.pm:147 msgid "Align to edge" msgstr "કિનારને સમાંતરિત કરો" #: lib/Gscan2pdf/Unpaper.pm:148 msgid "Edge to which to align the page." msgstr "એ કિનાર જેનાથી પાનાને સમાંતરિત કરવાનું છે." #: lib/Gscan2pdf/Unpaper.pm:153 msgid "Use 'left' to align to the left edge." msgstr "ડાબી કિનારથી સમાંતરિત કરવા \"ડાબે\" નો ઉપયોગ કરો." #: lib/Gscan2pdf/Unpaper.pm:158 msgid "Use 'top' to align to the top edge." msgstr "ઉપરથી સમાંતરિત કરવાં \"ઉપર\" નો ઉપયોગ કરો." #: lib/Gscan2pdf/Unpaper.pm:163 msgid "Use 'right' to align to the right edge." msgstr "જમણી કિનારથી સમાંતરિત કરવાં \"જમણે\" નો ઉપયોગ કરો." #: lib/Gscan2pdf/Unpaper.pm:168 msgid "Use 'bottom' to align to the bottom." msgstr "નીચેથી સમાંતરિત કરવાં \"નીચે\" નો ઉપયોગ કરો." #: lib/Gscan2pdf/Unpaper.pm:174 msgid "Border margin" msgstr "છેડાનો હાંસિયો" #: lib/Gscan2pdf/Unpaper.pm:178 msgid "Vertical margin" msgstr "ઉભો હાંસિયો" #: lib/Gscan2pdf/Unpaper.pm:180 msgid "" "Vertical distance to keep from the sheet edge when aligning a border area." msgstr "" "કિનારનાં વિસ્તારને સમાંતરિત કરવા માટે કાગળનાં છેડેથી રાખવાનો ઉભો ગાળો." #: lib/Gscan2pdf/Unpaper.pm:189 msgid "Horizontal margin" msgstr "આડો હાંસિયો" #: lib/Gscan2pdf/Unpaper.pm:191 msgid "" "Horizontal distance to keep from the sheet edge when aligning a border area." msgstr "" "કિનારનાં વિસ્તારને સમાંતરિત કરવા માટે કાગળનાં છેડેથી રાખવાનો આડો ગાળો." #: lib/Gscan2pdf/Unpaper.pm:202 msgid "White threshold" msgstr "શ્વેત સીમા" #: lib/Gscan2pdf/Unpaper.pm:204 msgid "Brightness ratio above which a pixel is considered white." msgstr "" "તેજસ્વિતા નું પરિમાણ કે જેની ઉપરનાં કોઇ પણ બિન્દુને શ્વેત ગણવામાં આવે છે." #: lib/Gscan2pdf/Unpaper.pm:212 msgid "Black threshold" msgstr "શ્યામ સીમા" #: lib/Gscan2pdf/Unpaper.pm:214 msgid "" "Brightness ratio below which a pixel is considered black (non-gray). This is " "used by the gray-filter. This value is also used when converting a grayscale " "image to black-and-white mode." msgstr "" "તેજસ્વિતા નું પરિમાણ કે જેની નીચેનાં કોઇ પણ બિન્દુને શ્યામ (રાખોડી નહીં " "તેવું) ગણવામાં આવે છે. ગ્રે-ફિલ્ટર દ્વારા આનો ઉપયોગ થાય છે. આ અંકનો ઉપયોગ " "ગ્રે-સ્કેલ (રાખોડી રંગનાં વિવિધ આછા થી લઇ ગહન પ્રકારોથી બનેલા ) ચિત્રને " "શ્વેત-શ્યામ માં પરીવર્તિત કરવામાં પણ થાય છે." #: lib/Gscan2pdf/Unpaper.pm:250 msgid "Deskew" msgstr "ત્રાંસ (વાંક) નિવૃત્ત કરો" #: lib/Gscan2pdf/Unpaper.pm:280 msgid "Border" msgstr "કિનાર" #: lib/Gscan2pdf/Unpaper.pm:337 msgid "Filters" msgstr "ગાળકો" #: t/05_Dialog.t:23 msgid "title" msgstr "શીર્ષક" #: t/05_Dialog.t:26 t/05_Dialog.t:31 t/05_Dialog.t:32 t/05_Dialog.t:38 #: t/05_Dialog.t:39 msgid "border-width" msgstr "કિનારની પહોળાઇ" #: t/061_Scanner_Dialog.t:34 msgid "dir" msgstr "" #: t/061_Scanner_Dialog.t:36 msgid "max-pages" msgstr "" #: t/061_Scanner_Dialog.t:39 msgid "side-to-scan" msgstr "" #: t/061_Scanner_Dialog.t:40 t/061_Scanner_Dialog.t:185 msgid "available-scan-options" msgstr "" #: t/061_Scanner_Dialog.t:171 t/062_Scanner_Dialog.t:73 msgid "profile" msgstr "" gscan2pdf-1.2.3/po/gscan2pdf-ab.po0000644000175000017500000011067712243440507015214 0ustar jeffjeff# Abkhazian translation for gscan2pdf # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the gscan2pdf package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: gscan2pdf\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-10-25 08:12+0200\n" "PO-Revision-Date: 2008-12-15 10:32+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Abkhazian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-19 09:22+0000\n" "X-Generator: Launchpad (build 16831)\n" #: bin/gscan2pdf:157 msgid "Error displaying help" msgstr "" #: bin/gscan2pdf:201 msgid "" "Error: unable to load settings.\n" "Backing up settings\n" "Reverting to defaults" msgstr "" #: bin/gscan2pdf:244 msgid "A4" msgstr "" #: bin/gscan2pdf:250 msgid "US Letter" msgstr "" #: bin/gscan2pdf:256 msgid "US Legal" msgstr "" #: bin/gscan2pdf:323 bin/gscan2pdf:344 #, perl-format msgid "Cannot read file: %s" msgstr "" #: bin/gscan2pdf:451 msgid "_File" msgstr "" #: bin/gscan2pdf:454 msgid "_New" msgstr "" #: bin/gscan2pdf:455 msgid "Clears all pages" msgstr "" #: bin/gscan2pdf:459 msgid "_Open" msgstr "" #: bin/gscan2pdf:460 msgid "Open image file(s)" msgstr "" #: bin/gscan2pdf:465 msgid "S_can" msgstr "" #: bin/gscan2pdf:467 msgid "Scan document" msgstr "" #: bin/gscan2pdf:471 bin/gscan2pdf:472 bin/gscan2pdf:2582 msgid "Save" msgstr "" #: bin/gscan2pdf:476 msgid "_Email as PDF" msgstr "" #: bin/gscan2pdf:477 msgid "Attach as PDF to a new email" msgstr "" #: bin/gscan2pdf:480 msgid "_Print" msgstr "" #: bin/gscan2pdf:481 msgid "Print" msgstr "" #: bin/gscan2pdf:485 msgid "_Compress temporary files" msgstr "" #: bin/gscan2pdf:486 msgid "Compress temporary files" msgstr "" #: bin/gscan2pdf:490 msgid "_Quit" msgstr "" #: bin/gscan2pdf:491 msgid "Quit" msgstr "" #: bin/gscan2pdf:495 msgid "_Edit" msgstr "" #: bin/gscan2pdf:497 msgid "_Undo" msgstr "" #: bin/gscan2pdf:497 msgid "Undo" msgstr "" #: bin/gscan2pdf:501 msgid "_Redo" msgstr "" #: bin/gscan2pdf:502 msgid "Redo" msgstr "" #: bin/gscan2pdf:506 msgid "Cu_t" msgstr "" #: bin/gscan2pdf:507 msgid "Cut selection" msgstr "" #: bin/gscan2pdf:511 msgid "_Copy" msgstr "" #: bin/gscan2pdf:512 msgid "Copy selection" msgstr "" #: bin/gscan2pdf:516 msgid "_Paste" msgstr "" #: bin/gscan2pdf:517 msgid "Paste selection" msgstr "" #: bin/gscan2pdf:521 msgid "_Delete" msgstr "" #: bin/gscan2pdf:522 msgid "Delete selected pages" msgstr "" #: bin/gscan2pdf:526 msgid "_Renumber" msgstr "" #: bin/gscan2pdf:527 msgid "Renumber pages" msgstr "" #: bin/gscan2pdf:529 bin/gscan2pdf:679 msgid "_Select" msgstr "" #: bin/gscan2pdf:532 msgid "_All" msgstr "" #: bin/gscan2pdf:533 msgid "Select all pages" msgstr "" #: bin/gscan2pdf:536 msgid "_Odd" msgstr "" #: bin/gscan2pdf:537 msgid "Select all odd-numbered pages" msgstr "" #: bin/gscan2pdf:541 msgid "_Even" msgstr "" #: bin/gscan2pdf:542 msgid "Select all evenly-numbered pages" msgstr "" #: bin/gscan2pdf:547 msgid "_Blank" msgstr "" #: bin/gscan2pdf:548 msgid "Select pages with low standard deviation" msgstr "" #: bin/gscan2pdf:552 msgid "_Dark" msgstr "" #: bin/gscan2pdf:553 msgid "Select dark pages" msgstr "" #: bin/gscan2pdf:558 msgid "_Modified" msgstr "" #: bin/gscan2pdf:560 msgid "Select modified pages since last OCR" msgstr "" #: bin/gscan2pdf:565 msgid "_No OCR" msgstr "" #: bin/gscan2pdf:566 msgid "Select pages with no OCR output" msgstr "" #: bin/gscan2pdf:570 msgid "_Clear OCR" msgstr "" #: bin/gscan2pdf:571 msgid "Clear OCR output from selected pages" msgstr "" #: bin/gscan2pdf:575 msgid "Propert_ies" msgstr "" #: bin/gscan2pdf:576 msgid "Edit image properties" msgstr "" #: bin/gscan2pdf:580 msgid "Prefere_nces" msgstr "" #: bin/gscan2pdf:581 msgid "Edit preferences" msgstr "" #: bin/gscan2pdf:585 msgid "_View" msgstr "" #: bin/gscan2pdf:588 msgid "Zoom _100%" msgstr "" #: bin/gscan2pdf:589 msgid "Zoom to 100%" msgstr "" #: bin/gscan2pdf:593 msgid "Zoom to _fit" msgstr "" #: bin/gscan2pdf:594 msgid "Zoom to fit" msgstr "" #: bin/gscan2pdf:598 msgid "Zoom _in" msgstr "" #: bin/gscan2pdf:599 msgid "Zoom in" msgstr "" #: bin/gscan2pdf:603 msgid "Zoom _out" msgstr "" #: bin/gscan2pdf:604 msgid "Zoom out" msgstr "" #: bin/gscan2pdf:609 bin/gscan2pdf:611 msgid "Rotate 90 clockwise" msgstr "" #: bin/gscan2pdf:617 bin/gscan2pdf:619 msgid "Rotate 180" msgstr "" #: bin/gscan2pdf:625 bin/gscan2pdf:627 msgid "Rotate 90 anticlockwise" msgstr "" #: bin/gscan2pdf:632 msgid "_Tools" msgstr "" #: bin/gscan2pdf:634 msgid "_Threshold" msgstr "" #: bin/gscan2pdf:635 msgid "Change each pixel above this threshold to black" msgstr "" #: bin/gscan2pdf:639 msgid "_Negate" msgstr "" #: bin/gscan2pdf:640 msgid "Converts black to white and vice versa" msgstr "" #: bin/gscan2pdf:644 msgid "_Unsharp Mask" msgstr "" #: bin/gscan2pdf:645 msgid "Apply an unsharp mask" msgstr "" #: bin/gscan2pdf:648 msgid "_Crop" msgstr "" #: bin/gscan2pdf:649 msgid "Crop pages" msgstr "" #: bin/gscan2pdf:653 msgid "_Clean up" msgstr "" #: bin/gscan2pdf:654 bin/gscan2pdf:4085 msgid "Clean up scanned images with unpaper" msgstr "" #: bin/gscan2pdf:657 msgid "_OCR" msgstr "" #: bin/gscan2pdf:658 msgid "Optical Character Recognition" msgstr "" #: bin/gscan2pdf:660 msgid "U_ser-defined" msgstr "" #: bin/gscan2pdf:663 bin/gscan2pdf:665 msgid "_Help" msgstr "" #: bin/gscan2pdf:666 msgid "Help" msgstr "" #: bin/gscan2pdf:668 msgid "_About" msgstr "" #: bin/gscan2pdf:674 msgid "_Drag" msgstr "" #: bin/gscan2pdf:675 msgid "Use the hand tool" msgstr "" #: bin/gscan2pdf:680 msgid "Use the rectangular selection tool" msgstr "" #: bin/gscan2pdf:684 msgid "_Paint" msgstr "" #: bin/gscan2pdf:685 msgid "Use the painter tool" msgstr "" #: bin/gscan2pdf:965 lib/Gscan2pdf/Document.pm:2594 #: lib/Gscan2pdf/Document.pm:2595 msgid "Error copying page" msgstr "" #: bin/gscan2pdf:1082 msgid "Image" msgstr "" #: bin/gscan2pdf:1117 msgid "OCR Output" msgstr "" #: bin/gscan2pdf:1174 msgid "Mode" msgstr "" #: bin/gscan2pdf:1176 msgid "Lineart" msgstr "" #: bin/gscan2pdf:1177 msgid "Grayscale" msgstr "" #: bin/gscan2pdf:1178 msgid "Gray" msgstr "" #: bin/gscan2pdf:1179 msgid "Color" msgstr "" #: bin/gscan2pdf:1180 msgid "Black & White" msgstr "" #: bin/gscan2pdf:1181 msgid "True Gray" msgstr "" #: bin/gscan2pdf:1182 msgid "Binary" msgstr "" #: bin/gscan2pdf:1183 bin/gscan2pdf:1242 bin/gscan2pdf:1243 msgid "Auto" msgstr "" #: bin/gscan2pdf:1184 msgid "Halftone" msgstr "" #: bin/gscan2pdf:1185 msgid "24bit Color" msgstr "" #: bin/gscan2pdf:1189 bin/gscan2pdf:2547 bin/gscan2pdf:2644 msgid "Compression" msgstr "" #: bin/gscan2pdf:1191 bin/gscan2pdf:2539 bin/gscan2pdf:2636 msgid "None" msgstr "" #: bin/gscan2pdf:1192 bin/gscan2pdf:2537 bin/gscan2pdf:2601 bin/gscan2pdf:2622 msgid "JPEG" msgstr "" #: bin/gscan2pdf:1195 bin/gscan2pdf:8127 msgid "Resolution" msgstr "" #: bin/gscan2pdf:1196 msgid "Brightness" msgstr "" #: bin/gscan2pdf:1197 msgid "Gain" msgstr "" #: bin/gscan2pdf:1198 msgid "Contrast" msgstr "" #: bin/gscan2pdf:1199 bin/gscan2pdf:6406 bin/gscan2pdf:6417 bin/gscan2pdf:6620 msgid "Threshold" msgstr "" #: bin/gscan2pdf:1201 msgid "Speed" msgstr "" #: bin/gscan2pdf:1203 bin/gscan2pdf:1210 bin/gscan2pdf:1217 bin/gscan2pdf:1224 #: bin/gscan2pdf:1231 msgid "Yes" msgstr "" #: bin/gscan2pdf:1204 bin/gscan2pdf:1211 bin/gscan2pdf:1218 bin/gscan2pdf:1225 #: bin/gscan2pdf:1232 msgid "No" msgstr "" #: bin/gscan2pdf:1208 msgid "Batch scan" msgstr "" #: bin/gscan2pdf:1215 bin/gscan2pdf:1222 msgid "Wait for button" msgstr "" #: bin/gscan2pdf:1229 msgid "Cache calibration" msgstr "" #: bin/gscan2pdf:1236 msgid "Source" msgstr "" #: bin/gscan2pdf:1238 msgid "Normal" msgstr "" #: bin/gscan2pdf:1239 msgid "ADF" msgstr "" #: bin/gscan2pdf:1240 msgid "Automatic Document Feeder" msgstr "" #: bin/gscan2pdf:1241 msgid "XPA" msgstr "" #: bin/gscan2pdf:1244 msgid "Flatbed" msgstr "" #: bin/gscan2pdf:1245 msgid "Transparency Adapter" msgstr "" #: bin/gscan2pdf:1246 msgid "Transparency Unit" msgstr "" #: bin/gscan2pdf:1249 bin/gscan2pdf:1251 msgid "Page Width" msgstr "" #: bin/gscan2pdf:1250 bin/gscan2pdf:1252 msgid "Page Height" msgstr "" #: bin/gscan2pdf:1253 msgid "Top Overscan" msgstr "" #: bin/gscan2pdf:1254 msgid "Bottom Overscan" msgstr "" #: bin/gscan2pdf:1256 bin/gscan2pdf:1263 msgid "ADF Mode" msgstr "" #: bin/gscan2pdf:1258 bin/gscan2pdf:1265 msgid "Simplex" msgstr "" #: bin/gscan2pdf:1259 bin/gscan2pdf:1266 msgid "Duplex" msgstr "" #: bin/gscan2pdf:1301 bin/gscan2pdf:1306 msgid "Pick crashed session to restore" msgstr "" #: bin/gscan2pdf:1308 bin/gscan2pdf:2609 msgid "Session" msgstr "" #: bin/gscan2pdf:1338 #, perl-format msgid "" "Warning: unable to use %s for temporary storage. Defaulting to %s instead." msgstr "" #: bin/gscan2pdf:1441 msgid "GOCR" msgstr "" #: bin/gscan2pdf:1441 msgid "Process image with GOCR." msgstr "" #: bin/gscan2pdf:1445 msgid "Tesseract" msgstr "" #: bin/gscan2pdf:1446 msgid "Process image with Tesseract." msgstr "" #: bin/gscan2pdf:1450 msgid "Ocropus" msgstr "" #: bin/gscan2pdf:1450 msgid "Process image with Ocropus." msgstr "" #: bin/gscan2pdf:1454 msgid "Cuneiform" msgstr "" #: bin/gscan2pdf:1455 msgid "Process image with Cuneiform." msgstr "" #: bin/gscan2pdf:1461 msgid "Save image and Save as PDF both require imagemagick\n" msgstr "" #: bin/gscan2pdf:1465 msgid "Save image requires libtiff\n" msgstr "" #: bin/gscan2pdf:1469 msgid "Save as DjVu requires djvulibre-bin\n" msgstr "" #: bin/gscan2pdf:1473 msgid "Email as PDF requires xdg-email\n" msgstr "" #: bin/gscan2pdf:1518 msgid "The rotating options and unpaper support require perlmagick\n" msgstr "" #: bin/gscan2pdf:1524 msgid "unpaper missing\n" msgstr "" #: bin/gscan2pdf:1534 msgid "OCR requires gocr, tesseract, ocropus, or cuneiform\n" msgstr "" #: bin/gscan2pdf:1539 msgid "Warning: missing packages" msgstr "" #: bin/gscan2pdf:1544 msgid "Don't show this message again" msgstr "" #: bin/gscan2pdf:1753 msgid "" "Some pages have not been saved.\n" "Do you really want to clear all pages?" msgstr "" #: bin/gscan2pdf:1828 bin/gscan2pdf:1858 #, perl-format msgid "Process %i of %i (%s)" msgstr "" #: bin/gscan2pdf:1867 #, perl-format msgid "Process %i of %i" msgstr "" #: bin/gscan2pdf:1895 msgid "Open image" msgstr "" #: bin/gscan2pdf:1903 bin/gscan2pdf:2797 bin/gscan2pdf:3113 msgid "Image files" msgstr "" #: bin/gscan2pdf:1940 msgid "Pages to extract" msgstr "" #: bin/gscan2pdf:1943 bin/gscan2pdf:2117 bin/gscan2pdf:2586 bin/gscan2pdf:3353 #: bin/gscan2pdf:3494 bin/gscan2pdf:4104 bin/gscan2pdf:4514 bin/gscan2pdf:5825 #: bin/gscan2pdf:6409 bin/gscan2pdf:6495 bin/gscan2pdf:6565 bin/gscan2pdf:6737 #: bin/gscan2pdf:7011 bin/gscan2pdf:7274 bin/gscan2pdf:7757 bin/gscan2pdf:8123 #: lib/Gscan2pdf/Dialog.pm:56 lib/Gscan2pdf/Dialog/Renumber.pm:80 #: lib/Gscan2pdf/Scanner/Dialog.pm:201 t/05_Dialog.t:28 msgid "vbox" msgstr "" #: bin/gscan2pdf:1946 msgid "First page to extract" msgstr "" #: bin/gscan2pdf:1953 msgid "Last page to extract" msgstr "" #: bin/gscan2pdf:2042 lib/Gscan2pdf/Dialog/Renumber.pm:83 msgid "Page Range" msgstr "" #: bin/gscan2pdf:2092 msgid "Metadata" msgstr "" #: bin/gscan2pdf:2101 msgid "Date" msgstr "" #: bin/gscan2pdf:2114 msgid "Select Date" msgstr "" #: bin/gscan2pdf:2136 msgid "Today" msgstr "" #: bin/gscan2pdf:2150 msgid "Year-Month-Day" msgstr "" #: bin/gscan2pdf:2156 msgid "Document author" msgstr "" #: bin/gscan2pdf:2165 msgid "Title" msgstr "" #: bin/gscan2pdf:2174 msgid "Subject" msgstr "" #: bin/gscan2pdf:2183 msgid "Keywords" msgstr "" #: bin/gscan2pdf:2245 msgid "Editing text" msgstr "" #: bin/gscan2pdf:2252 bin/gscan2pdf:2258 bin/gscan2pdf:2332 msgid "text" msgstr "" #: bin/gscan2pdf:2352 msgid "PDF filename" msgstr "" #: bin/gscan2pdf:2381 msgid "PDF files" msgstr "" #: bin/gscan2pdf:2405 bin/gscan2pdf:2823 bin/gscan2pdf:2880 bin/gscan2pdf:2976 #: bin/gscan2pdf:3035 bin/gscan2pdf:3087 bin/gscan2pdf:3275 #, perl-format msgid "File %s is read-only" msgstr "" #: bin/gscan2pdf:2482 msgid "JPEG Quality" msgstr "" #: bin/gscan2pdf:2496 msgid "Downsample to" msgstr "" #: bin/gscan2pdf:2501 msgid "PPI" msgstr "" #: bin/gscan2pdf:2520 msgid "Automatic" msgstr "" #: bin/gscan2pdf:2521 msgid "Let gscan2pdf which type of compression to use." msgstr "" #: bin/gscan2pdf:2524 bin/gscan2pdf:2616 msgid "LZW" msgstr "" #: bin/gscan2pdf:2525 bin/gscan2pdf:2617 msgid "Compress output with Lempel-Ziv & Welch encoding." msgstr "" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Zip" msgstr "" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Compress output with deflate encoding." msgstr "" #: bin/gscan2pdf:2529 bin/gscan2pdf:2624 msgid "Packbits" msgstr "" #: bin/gscan2pdf:2530 bin/gscan2pdf:2625 msgid "Compress output with Packbits encoding." msgstr "" #: bin/gscan2pdf:2536 bin/gscan2pdf:2604 msgid "PNG" msgstr "" #: bin/gscan2pdf:2536 msgid "Compress output with PNG encoding." msgstr "" #: bin/gscan2pdf:2537 bin/gscan2pdf:2622 msgid "Compress output with JPEG encoding." msgstr "" #: bin/gscan2pdf:2540 bin/gscan2pdf:2637 msgid "Use no compression algorithm on output." msgstr "" #: bin/gscan2pdf:2594 msgid "Image type" msgstr "" #: bin/gscan2pdf:2598 msgid "PDF" msgstr "" #: bin/gscan2pdf:2598 msgid "Portable Document Format" msgstr "" #: bin/gscan2pdf:2599 msgid "GIF" msgstr "" #: bin/gscan2pdf:2599 msgid "CompuServe graphics interchange format" msgstr "" #: bin/gscan2pdf:2602 msgid "Joint Photographic Experts Group JFIF format" msgstr "" #: bin/gscan2pdf:2604 msgid "Portable Network Graphics" msgstr "" #: bin/gscan2pdf:2605 msgid "PNM" msgstr "" #: bin/gscan2pdf:2605 msgid "Portable anymap" msgstr "" #: bin/gscan2pdf:2606 msgid "PS" msgstr "" #: bin/gscan2pdf:2606 msgid "Postscript" msgstr "" #: bin/gscan2pdf:2607 msgid "TIFF" msgstr "" #: bin/gscan2pdf:2607 msgid "Tagged Image File Format" msgstr "" #: bin/gscan2pdf:2608 msgid "Text" msgstr "" #: bin/gscan2pdf:2608 msgid "Plain text" msgstr "" #: bin/gscan2pdf:2609 msgid "gscan2pdf session file" msgstr "" #: bin/gscan2pdf:2611 msgid "DjVu" msgstr "" #: bin/gscan2pdf:2611 msgid "Deja Vu" msgstr "" #: bin/gscan2pdf:2628 msgid "G3" msgstr "" #: bin/gscan2pdf:2629 msgid "Compress output with CCITT Group 3 encoding." msgstr "" #: bin/gscan2pdf:2632 msgid "G4" msgstr "" #: bin/gscan2pdf:2633 msgid "Compress output with CCITT Group 4 encoding." msgstr "" #: bin/gscan2pdf:2649 msgid "tiff" msgstr "" #: bin/gscan2pdf:2681 msgid "Font for non-ASCII text" msgstr "" #: bin/gscan2pdf:2790 msgid "TIFF filename" msgstr "" #: bin/gscan2pdf:2848 msgid "Text filename" msgstr "" #: bin/gscan2pdf:2856 msgid "Text files" msgstr "" #: bin/gscan2pdf:2944 msgid "PS filename" msgstr "" #: bin/gscan2pdf:2951 msgid "Postscript files" msgstr "" #: bin/gscan2pdf:3003 msgid "gscan2pdf session filename" msgstr "" #: bin/gscan2pdf:3010 msgid "gscan2pdf session files" msgstr "" #: bin/gscan2pdf:3093 #, perl-format msgid "" "File %s exists.\n" "Really overwrite?" msgstr "" #: bin/gscan2pdf:3106 msgid "Image filename" msgstr "" #: bin/gscan2pdf:3245 msgid "DjVu filename" msgstr "" #: bin/gscan2pdf:3252 msgid "DjVu files" msgstr "" #: bin/gscan2pdf:3349 msgid "Email as PDF" msgstr "" #: bin/gscan2pdf:3454 msgid "Error creating email" msgstr "" #: bin/gscan2pdf:3490 bin/gscan2pdf:4313 msgid "Scan Document" msgstr "" #: bin/gscan2pdf:3507 lib/Gscan2pdf/Scanner/Dialog.pm:248 msgid "Page Options" msgstr "" #: bin/gscan2pdf:3510 lib/Gscan2pdf/Scanner/Dialog.pm:251 msgid "# Pages" msgstr "" #: bin/gscan2pdf:3519 lib/Gscan2pdf/PageRange.pm:34 #: lib/Gscan2pdf/Scanner/Dialog.pm:261 msgid "All" msgstr "" #: bin/gscan2pdf:3520 lib/Gscan2pdf/Scanner/Dialog.pm:262 msgid "Scan all pages" msgstr "" #: bin/gscan2pdf:3532 bin/gscan2pdf:3537 lib/Gscan2pdf/Scanner/Dialog.pm:274 #: lib/Gscan2pdf/Scanner/Dialog.pm:279 msgid "Set number of pages to scan" msgstr "" #: bin/gscan2pdf:3550 lib/Gscan2pdf/Scanner/Dialog.pm:308 msgid "Extended page numbering" msgstr "" #: bin/gscan2pdf:3554 lib/Gscan2pdf/Scanner/Dialog.pm:312 msgid "Page number" msgstr "" #: bin/gscan2pdf:3563 lib/Gscan2pdf/Dialog/Renumber.pm:111 #: lib/Gscan2pdf/Scanner/Dialog.pm:321 msgid "Start" msgstr "" #: bin/gscan2pdf:3572 lib/Gscan2pdf/Dialog/Renumber.pm:132 #: lib/Gscan2pdf/Scanner/Dialog.pm:340 msgid "Increment" msgstr "" #: bin/gscan2pdf:3604 lib/Gscan2pdf/Scanner/Dialog.pm:372 msgid "Source document" msgstr "" #: bin/gscan2pdf:3611 lib/Gscan2pdf/Scanner/Dialog.pm:379 msgid "Single sided" msgstr "" #: bin/gscan2pdf:3612 lib/Gscan2pdf/Scanner/Dialog.pm:380 msgid "Source document is single-sided" msgstr "" #: bin/gscan2pdf:3622 lib/Gscan2pdf/Scanner/Dialog.pm:390 msgid "Double sided" msgstr "" #: bin/gscan2pdf:3623 lib/Gscan2pdf/Scanner/Dialog.pm:391 msgid "Source document is double-sided" msgstr "" #: bin/gscan2pdf:3629 lib/Gscan2pdf/Scanner/Dialog.pm:397 msgid "Side to scan" msgstr "" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Facing" msgstr "" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Reverse" msgstr "" #: bin/gscan2pdf:3655 lib/Gscan2pdf/Scanner/Dialog.pm:418 msgid "Sets which side of a double-sided document is scanned" msgstr "" #: bin/gscan2pdf:3719 msgid "Scan Options" msgstr "" #: bin/gscan2pdf:3722 msgid "Device-dependent options" msgstr "" #: bin/gscan2pdf:3729 lib/Gscan2pdf/Scanner/Dialog.pm:458 msgid "Scan profiles" msgstr "" #: bin/gscan2pdf:3778 bin/gscan2pdf:3784 lib/Gscan2pdf/Scanner/Dialog.pm:479 #: lib/Gscan2pdf/Scanner/Dialog.pm:485 msgid "Name of scan profile" msgstr "" #: bin/gscan2pdf:3828 lib/Gscan2pdf/Scanner/Dialog.pm:518 msgid "Scan" msgstr "" #: bin/gscan2pdf:3866 msgid "Must scan facing pages first" msgstr "" #: bin/gscan2pdf:3977 msgid "Post-processing" msgstr "" #: bin/gscan2pdf:3986 bin/gscan2pdf:4008 msgid "Rotate" msgstr "" #: bin/gscan2pdf:3987 bin/gscan2pdf:4009 msgid "Rotate image after scanning" msgstr "" #: bin/gscan2pdf:3990 msgid "Both sides" msgstr "" #: bin/gscan2pdf:3990 msgid "Both sides." msgstr "" #: bin/gscan2pdf:3991 msgid "Facing side" msgstr "" #: bin/gscan2pdf:3991 msgid "Facing side." msgstr "" #: bin/gscan2pdf:3992 msgid "Reverse side" msgstr "" #: bin/gscan2pdf:3992 msgid "Reverse side." msgstr "" #: bin/gscan2pdf:3995 bin/gscan2pdf:4013 msgid "Select side to rotate" msgstr "" #: bin/gscan2pdf:3998 msgid "90" msgstr "" #: bin/gscan2pdf:3998 msgid "Rotate image 90 degrees clockwise." msgstr "" #: bin/gscan2pdf:3999 msgid "180" msgstr "" #: bin/gscan2pdf:3999 msgid "Rotate image 180 degrees clockwise." msgstr "" #: bin/gscan2pdf:4000 msgid "270" msgstr "" #: bin/gscan2pdf:4000 msgid "Rotate image 90 degrees anticlockwise." msgstr "" #: bin/gscan2pdf:4003 bin/gscan2pdf:4016 msgid "Select direction of rotation" msgstr "" #: bin/gscan2pdf:4083 msgid "Clean up images" msgstr "" #: bin/gscan2pdf:4094 msgid "Options" msgstr "" #: bin/gscan2pdf:4095 msgid "Set unpaper options" msgstr "" #: bin/gscan2pdf:4101 msgid "unpaper options" msgstr "" #: bin/gscan2pdf:4136 bin/gscan2pdf:4137 msgid "OCR scanned pages" msgstr "" #: bin/gscan2pdf:4151 msgid "Select OCR engine" msgstr "" #: bin/gscan2pdf:4210 lib/Gscan2pdf/Scanner/Dialog.pm:634 msgid "Fetching list of devices" msgstr "" #: bin/gscan2pdf:4225 lib/Gscan2pdf/Scanner/Dialog.pm:654 msgid "No devices found" msgstr "" #: bin/gscan2pdf:4367 bin/gscan2pdf:4732 bin/gscan2pdf:4777 bin/gscan2pdf:5214 #: lib/Gscan2pdf/Scanner/Dialog.pm:343 lib/Gscan2pdf/Scanner/Dialog.pm:348 #: t/061_Scanner_Dialog.t:38 t/061_Scanner_Dialog.t:95 msgid "page-number-increment" msgstr "" #: bin/gscan2pdf:4374 bin/gscan2pdf:4729 bin/gscan2pdf:4730 bin/gscan2pdf:4776 #: bin/gscan2pdf:5213 lib/Gscan2pdf/Scanner/Dialog.pm:361 #: t/061_Scanner_Dialog.t:37 msgid "page-number-start" msgstr "" #: bin/gscan2pdf:4663 lib/Gscan2pdf/Scanner/Dialog.pm:210 msgid "Device" msgstr "" #: bin/gscan2pdf:4671 lib/Gscan2pdf/Scanner/Dialog.pm:213 msgid "Rescan for devices" msgstr "" #: bin/gscan2pdf:4694 lib/Gscan2pdf/Scanner/Dialog.pm:237 msgid "Sets the device to be used for the scan" msgstr "" #: bin/gscan2pdf:4780 lib/Gscan2pdf/Scanner/Dialog.pm:300 #: t/061_Scanner_Dialog.t:35 msgid "num-pages" msgstr "" #: bin/gscan2pdf:4821 msgid "Scanning" msgstr "" #: bin/gscan2pdf:4974 msgid "Unable to load image" msgstr "" #: bin/gscan2pdf:5004 msgid "print-pages" msgstr "" #: bin/gscan2pdf:5008 msgid "page-ranges" msgstr "" #: bin/gscan2pdf:5405 msgid "Patches gratefully received from:" msgstr "" #: bin/gscan2pdf:5407 msgid "To aid the scan-to-PDF process" msgstr "" #: bin/gscan2pdf:5408 msgid "Copyright 2006--2012 Jeffrey Ratcliffe" msgstr "" #: bin/gscan2pdf:5492 bin/gscan2pdf:6028 msgid "The options cache seems to be empty. Reload device-dependent options?" msgstr "" #: bin/gscan2pdf:5519 bin/gscan2pdf:6054 msgid "Updating options" msgstr "" #: bin/gscan2pdf:5571 msgid "Paper size" msgstr "" #: bin/gscan2pdf:5572 bin/gscan2pdf:5672 bin/gscan2pdf:5840 bin/gscan2pdf:6769 msgid "Width" msgstr "" #: bin/gscan2pdf:5573 bin/gscan2pdf:5678 bin/gscan2pdf:5841 bin/gscan2pdf:6780 msgid "Height" msgstr "" #: bin/gscan2pdf:5574 bin/gscan2pdf:5684 bin/gscan2pdf:5842 #: lib/Gscan2pdf/Unpaper.pm:124 lib/Gscan2pdf/Unpaper.pm:152 msgid "Left" msgstr "" #: bin/gscan2pdf:5575 bin/gscan2pdf:5690 bin/gscan2pdf:5843 #: lib/Gscan2pdf/Unpaper.pm:129 lib/Gscan2pdf/Unpaper.pm:157 msgid "Top" msgstr "" #: bin/gscan2pdf:5589 bin/gscan2pdf:5703 bin/gscan2pdf:6232 msgid "Manual" msgstr "" #: bin/gscan2pdf:5590 bin/gscan2pdf:5700 msgid "Edit" msgstr "" #: bin/gscan2pdf:5591 msgid "Selects or edits the paper size" msgstr "" #: bin/gscan2pdf:5673 msgid "Width of scan area" msgstr "" #: bin/gscan2pdf:5679 msgid "Height of scan area" msgstr "" #: bin/gscan2pdf:5685 msgid "Top-left x position of scan area" msgstr "" #: bin/gscan2pdf:5691 msgid "Top-left y position of scan area" msgstr "" #: bin/gscan2pdf:5822 msgid "Edit paper size" msgstr "" #: bin/gscan2pdf:5839 msgid "Name" msgstr "" #: bin/gscan2pdf:5893 msgid "Cannot delete all paper sizes" msgstr "" #: bin/gscan2pdf:5955 msgid "" "The following paper sizes are too big to be scanned by the selected device:" msgstr "" #: bin/gscan2pdf:6419 bin/gscan2pdf:6605 msgid "%" msgstr "" #: bin/gscan2pdf:6492 msgid "Negate" msgstr "" #: bin/gscan2pdf:6562 msgid "Unsharp mask" msgstr "" #: bin/gscan2pdf:6573 msgid "Radius" msgstr "" #: bin/gscan2pdf:6575 bin/gscan2pdf:6592 bin/gscan2pdf:6747 bin/gscan2pdf:6759 #: bin/gscan2pdf:6771 bin/gscan2pdf:6782 msgid "pixels" msgstr "" #: bin/gscan2pdf:6582 msgid "" "The radius of the Gaussian, in pixels, not counting the center pixel (0 = " "automatic)." msgstr "" #: bin/gscan2pdf:6590 msgid "Sigma" msgstr "" #: bin/gscan2pdf:6597 msgid "The standard deviation of the Gaussian." msgstr "" #: bin/gscan2pdf:6603 msgid "Amount" msgstr "" #: bin/gscan2pdf:6612 msgid "" "The percentage of the difference between the original and the blur image " "that is added back into the original." msgstr "" #: bin/gscan2pdf:6627 msgid "" "The threshold, as a fraction of QuantumRange, needed to apply the difference " "amount." msgstr "" #: bin/gscan2pdf:6733 msgid "Crop" msgstr "" #: bin/gscan2pdf:6745 msgid "x" msgstr "" #: bin/gscan2pdf:6751 msgid "The x-position of the left hand edge of the crop." msgstr "" #: bin/gscan2pdf:6757 msgid "y" msgstr "" #: bin/gscan2pdf:6763 msgid "The y-position of the top edge of the crop." msgstr "" #: bin/gscan2pdf:6774 msgid "The width of the crop." msgstr "" #: bin/gscan2pdf:6785 msgid "The height of the crop." msgstr "" #: bin/gscan2pdf:6906 msgid "label" msgstr "" #: bin/gscan2pdf:7007 msgid "unpaper" msgstr "" #: bin/gscan2pdf:7216 bin/gscan2pdf:7244 msgid "Language to recognise" msgstr "" #: bin/gscan2pdf:7227 msgid "English" msgstr "" #: bin/gscan2pdf:7270 msgid "OCR" msgstr "" #: bin/gscan2pdf:7279 msgid "OCR Engine" msgstr "" #: bin/gscan2pdf:7323 msgid "Start OCR" msgstr "" #: bin/gscan2pdf:7339 msgid "No page selected" msgstr "" #: bin/gscan2pdf:7374 msgid "" "Some pages have not been saved.\n" "Do you really want to quit?" msgstr "" #: bin/gscan2pdf:7432 #, perl-format msgid "" "The help viewer requires module Gtk2::Ex::PodViewer\n" "Alternatively, try: %s %s\n" "\n" msgstr "" #: bin/gscan2pdf:7698 msgid "This operation cannot be undone. Are you sure?" msgstr "" #: bin/gscan2pdf:7753 msgid "Preferences" msgstr "" #: bin/gscan2pdf:7762 msgid "Frontend" msgstr "" #: bin/gscan2pdf:7766 msgid "libsane-perl" msgstr "" #: bin/gscan2pdf:7767 msgid "Scan using the perl bindings for SANE." msgstr "" #: bin/gscan2pdf:7770 msgid "scanimage" msgstr "" #: bin/gscan2pdf:7771 msgid "Scan using the scanimage frontend." msgstr "" #: bin/gscan2pdf:7775 msgid "scanimage-perl" msgstr "" #: bin/gscan2pdf:7776 msgid "Scan using the scanimage-perl frontend." msgstr "" #: bin/gscan2pdf:7779 msgid "scanadf-perl" msgstr "" #: bin/gscan2pdf:7780 msgid "Scan using the scanadf-perl frontend." msgstr "" #: bin/gscan2pdf:7785 msgid "scanadf" msgstr "" #: bin/gscan2pdf:7786 msgid "Scan using the scanadf frontend." msgstr "" #: bin/gscan2pdf:7791 msgid "Cycle SANE handle after scan" msgstr "" #: bin/gscan2pdf:7814 msgid "Default filename for PDFs" msgstr "" #: bin/gscan2pdf:7820 msgid "" "%a\t author\n" "%t\t title\n" "%y\t document's year\n" "%Y\t today's year\n" "%m\t document's month\n" "%M\t today's month\n" "%d\t document's day\n" "%D\t today's day" msgstr "" #: bin/gscan2pdf:7830 msgid "Scan command prefix" msgstr "" #: bin/gscan2pdf:7839 msgid "Restore window settings on startup" msgstr "" #: bin/gscan2pdf:7845 msgid "Cache device-dependent options" msgstr "" #: bin/gscan2pdf:7851 msgid "Clear device-dependent options cache" msgstr "" #: bin/gscan2pdf:7862 msgid "Temporary directory" msgstr "" #: bin/gscan2pdf:7867 msgid "Browse" msgstr "" #: bin/gscan2pdf:7871 msgid "Select temporary directory" msgstr "" #: bin/gscan2pdf:7888 msgid "Blank threshold" msgstr "" #: bin/gscan2pdf:7893 msgid "Threshold used for selecting blank pages" msgstr "" #: bin/gscan2pdf:7899 msgid "Dark threshold" msgstr "" #: bin/gscan2pdf:7904 msgid "Threshold used for selecting dark pages" msgstr "" #: bin/gscan2pdf:7910 msgid "OCR output" msgstr "" #: bin/gscan2pdf:7915 msgid "Replace" msgstr "" #: bin/gscan2pdf:7917 msgid "" "Replace the contents of the text buffer with that from the OCR output." msgstr "" #: bin/gscan2pdf:7920 msgid "Prepend" msgstr "" #: bin/gscan2pdf:7921 msgid "Prepend the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7924 msgid "Append" msgstr "" #: bin/gscan2pdf:7925 msgid "Append the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7933 msgid "User-defined tools" msgstr "" #: bin/gscan2pdf:7954 msgid "View files on saving" msgstr "" #: bin/gscan2pdf:8000 msgid "" "You will have to restart gscanp2df for changes to the temporary directory to " "take effect." msgstr "" #: bin/gscan2pdf:8092 msgid "" "Use %i and %o for the input and output filenames respectively, or a single " "%i if the image is to be modified in-place.\n" "\n" "The other variable available is:\n" "\n" "%r resolution" msgstr "" #: bin/gscan2pdf:8119 msgid "Properties" msgstr "" #: lib/Gscan2pdf/Dialog.pm:63 lib/Gscan2pdf/Dialog.pm:79 t/05_Dialog.t:25 msgid "hide-on-delete" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:78 lib/Gscan2pdf/Dialog/Renumber.pm:162 msgid "Renumber" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:98 lib/Gscan2pdf/Dialog/Renumber.pm:207 #: lib/Gscan2pdf/Dialog/Renumber.pm:244 msgid "range" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:102 msgid "Page numbering" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:105 lib/Gscan2pdf/Scanner/Dialog.pm:254 msgid "border_width" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:126 lib/Gscan2pdf/Dialog/Renumber.pm:192 #: lib/Gscan2pdf/Dialog/Renumber.pm:242 t/07_Dialog_Renumber.t:33 #: t/07_Dialog_Renumber.t:45 t/07_Dialog_Renumber.t:59 #: t/07_Dialog_Renumber.t:66 msgid "start" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:147 lib/Gscan2pdf/Dialog/Renumber.pm:193 #: lib/Gscan2pdf/Dialog/Renumber.pm:243 t/07_Dialog_Renumber.t:34 #: t/07_Dialog_Renumber.t:46 t/07_Dialog_Renumber.t:60 #: t/07_Dialog_Renumber.t:67 msgid "increment" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:205 lib/Gscan2pdf/Dialog/Renumber.pm:241 msgid "document" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:295 msgid "" "The current settings would result in duplicate page numbers. Please select " "new start and increment values." msgstr "" #: lib/Gscan2pdf/Document.pm:83 msgid "Thumbnails" msgstr "" #: lib/Gscan2pdf/Document.pm:1502 msgid "Unknown DjVu file structure. Please contact the author." msgstr "" #: lib/Gscan2pdf/Document.pm:1558 #, perl-format msgid "%s is not a recognised image type" msgstr "" #: lib/Gscan2pdf/Document.pm:1580 lib/Gscan2pdf/Document.pm:1637 #, perl-format msgid "Importing page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:1613 msgid "Error extracting images from PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1692 msgid "Setting up PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1703 #, perl-format msgid "Saving page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:1814 lib/Gscan2pdf/Document.pm:2136 #, perl-format msgid "Error compressing image: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1919 #, perl-format msgid "Error creating PDF image object: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1930 #, perl-format msgid "Error embedding file image in %s format to PDF: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1939 msgid "Closing PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1955 #, perl-format msgid "Writing page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:2006 msgid "Error writing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2025 lib/Gscan2pdf/Document.pm:2227 #, perl-format msgid "Can't open file: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:2050 msgid "Error adding text layer to DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2056 msgid "Closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2063 msgid "Error closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2078 #, perl-format msgid "Converting image %i of %i to TIFF" msgstr "" #: lib/Gscan2pdf/Document.pm:2105 msgid "Error writing TIFF" msgstr "" #: lib/Gscan2pdf/Document.pm:2121 msgid "Concatenating TIFFs" msgstr "" #: lib/Gscan2pdf/Document.pm:2140 msgid "Converting to PS" msgstr "" #: lib/Gscan2pdf/Document.pm:2200 lib/Gscan2pdf/Document.pm:2215 msgid "Error saving image" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:158 #, perl-format msgid "Scanning %i pages..." msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:163 #, perl-format msgid "Scanning page %i..." msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:188 lib/Gscan2pdf/Frontend/CLI.pm:296 msgid "Scanner warming up" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:195 msgid "Document feeder out of documents" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:212 lib/Gscan2pdf/Frontend/CLI.pm:325 msgid "Device busy" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:218 lib/Gscan2pdf/Frontend/CLI.pm:330 msgid "Operation cancelled" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:223 lib/Gscan2pdf/Frontend/CLI.pm:336 msgid "Unknown message: " msgstr "" #: lib/Gscan2pdf/Page.pm:68 lib/Gscan2pdf/Page.pm:73 #, perl-format msgid "Error importing image %s: %s" msgstr "" #: lib/Gscan2pdf/PageRange.pm:33 msgid "Selected" msgstr "" #: lib/Gscan2pdf/PageRange.pm:58 msgid "active" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:218 t/061_Scanner_Dialog.t:33 #: t/061_Scanner_Dialog.t:59 msgid "device-list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:496 t/061_Scanner_Dialog.t:139 #: t/061_Scanner_Dialog.t:174 t/062_Scanner_Dialog.t:50 #: t/062_Scanner_Dialog.t:75 msgid "current-scan-options" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:567 msgid "logger" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:650 t/05_Dialog.t:24 msgid "transient-for" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:716 msgid "device_list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:749 t/061_Scanner_Dialog.t:32 msgid "device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:751 msgid "Opening device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:760 msgid "Retrieving options" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:41 msgid "Layout" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:44 msgid "Single" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:46 msgid "One page per sheet, oriented upwards without rotation." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:49 msgid "Double" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:51 msgid "" "Two pages per sheet, landscape orientation (one page on the left half, one " "page on the right half)." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:59 msgid "# Output pages" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:60 msgid "Number of pages to output." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:68 msgid "No deskew" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:69 msgid "Disable deskewing." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:74 msgid "No mask scan" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:75 msgid "Disable mask detection." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:80 msgid "No black filter" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:81 msgid "Disable black area scan." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:86 msgid "No gray filter" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:87 msgid "Disable gray area scan." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:92 msgid "No noise filter" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:93 msgid "Disable noise filter." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:98 msgid "No blur filter" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:99 msgid "Disable blur filter." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:104 msgid "No border scan" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:105 msgid "Disable border scanning." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:110 msgid "No border align" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:112 msgid "Disable aligning of the area detected by border scanning." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:117 msgid "Deskew to edge" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:119 msgid "" "Edges from which to scan for rotation. Each edge of a mask can be used to " "detect the mask's rotation. If multiple edges are specified, the average " "value will be used, unless the statistical deviation exceeds --deskew-scan-" "deviation." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:125 msgid "Use 'left' for scanning from the left edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:130 msgid "Use 'top' for scanning from the top edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:134 lib/Gscan2pdf/Unpaper.pm:162 msgid "Right" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:135 msgid "Use 'right' for scanning from the right edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:139 lib/Gscan2pdf/Unpaper.pm:167 msgid "Bottom" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:140 msgid "Use 'bottom' for scanning from the bottom." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:147 msgid "Align to edge" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:148 msgid "Edge to which to align the page." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:153 msgid "Use 'left' to align to the left edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:158 msgid "Use 'top' to align to the top edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:163 msgid "Use 'right' to align to the right edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:168 msgid "Use 'bottom' to align to the bottom." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:174 msgid "Border margin" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:178 msgid "Vertical margin" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:180 msgid "" "Vertical distance to keep from the sheet edge when aligning a border area." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:189 msgid "Horizontal margin" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:191 msgid "" "Horizontal distance to keep from the sheet edge when aligning a border area." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:202 msgid "White threshold" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:204 msgid "Brightness ratio above which a pixel is considered white." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:212 msgid "Black threshold" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:214 msgid "" "Brightness ratio below which a pixel is considered black (non-gray). This is " "used by the gray-filter. This value is also used when converting a grayscale " "image to black-and-white mode." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:250 msgid "Deskew" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:280 msgid "Border" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:337 msgid "Filters" msgstr "" #: t/05_Dialog.t:23 msgid "title" msgstr "" #: t/05_Dialog.t:26 t/05_Dialog.t:31 t/05_Dialog.t:32 t/05_Dialog.t:38 #: t/05_Dialog.t:39 msgid "border-width" msgstr "" #: t/061_Scanner_Dialog.t:34 msgid "dir" msgstr "" #: t/061_Scanner_Dialog.t:36 msgid "max-pages" msgstr "" #: t/061_Scanner_Dialog.t:39 msgid "side-to-scan" msgstr "" #: t/061_Scanner_Dialog.t:40 t/061_Scanner_Dialog.t:185 msgid "available-scan-options" msgstr "" #: t/061_Scanner_Dialog.t:171 t/062_Scanner_Dialog.t:73 msgid "profile" msgstr "" gscan2pdf-1.2.3/po/gscan2pdf-zh_TW.po0000644000175000017500000011301012243440507015645 0ustar jeffjeff# Chinese (Taiwan) translation for gscan2pdf # Copyright (c) 2006 Rosetta Contributors and Canonical Ltd 2006 # This file is distributed under the same license as the gscan2pdf package. # FIRST AUTHOR , 2006. # msgid "" msgstr "" "Project-Id-Version: gscan2pdf\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-10-25 08:12+0200\n" "PO-Revision-Date: 2008-12-16 00:43+0000\n" "Last-Translator: Cheng-Wei Chien \n" "Language-Team: Chinese (Taiwan) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-19 09:22+0000\n" "X-Generator: Launchpad (build 16831)\n" #: bin/gscan2pdf:157 msgid "Error displaying help" msgstr "" #: bin/gscan2pdf:201 msgid "" "Error: unable to load settings.\n" "Backing up settings\n" "Reverting to defaults" msgstr "" #: bin/gscan2pdf:244 msgid "A4" msgstr "" #: bin/gscan2pdf:250 msgid "US Letter" msgstr "" #: bin/gscan2pdf:256 msgid "US Legal" msgstr "" #: bin/gscan2pdf:323 bin/gscan2pdf:344 #, perl-format msgid "Cannot read file: %s" msgstr "" #: bin/gscan2pdf:451 msgid "_File" msgstr "檔案" #: bin/gscan2pdf:454 msgid "_New" msgstr "新增(_N)" #: bin/gscan2pdf:455 msgid "Clears all pages" msgstr "清除所有頁面" #: bin/gscan2pdf:459 msgid "_Open" msgstr "" #: bin/gscan2pdf:460 msgid "Open image file(s)" msgstr "" #: bin/gscan2pdf:465 msgid "S_can" msgstr "" #: bin/gscan2pdf:467 msgid "Scan document" msgstr "掃描文件" #: bin/gscan2pdf:471 bin/gscan2pdf:472 bin/gscan2pdf:2582 msgid "Save" msgstr "" #: bin/gscan2pdf:476 msgid "_Email as PDF" msgstr "" #: bin/gscan2pdf:477 msgid "Attach as PDF to a new email" msgstr "" #: bin/gscan2pdf:480 msgid "_Print" msgstr "" #: bin/gscan2pdf:481 msgid "Print" msgstr "" #: bin/gscan2pdf:485 msgid "_Compress temporary files" msgstr "" #: bin/gscan2pdf:486 msgid "Compress temporary files" msgstr "" #: bin/gscan2pdf:490 msgid "_Quit" msgstr "離開(_Q)" #: bin/gscan2pdf:491 msgid "Quit" msgstr "退出" #: bin/gscan2pdf:495 msgid "_Edit" msgstr "編輯(_E)" #: bin/gscan2pdf:497 msgid "_Undo" msgstr "" #: bin/gscan2pdf:497 msgid "Undo" msgstr "" #: bin/gscan2pdf:501 msgid "_Redo" msgstr "" #: bin/gscan2pdf:502 msgid "Redo" msgstr "" #: bin/gscan2pdf:506 msgid "Cu_t" msgstr "" #: bin/gscan2pdf:507 msgid "Cut selection" msgstr "" #: bin/gscan2pdf:511 msgid "_Copy" msgstr "" #: bin/gscan2pdf:512 msgid "Copy selection" msgstr "" #: bin/gscan2pdf:516 msgid "_Paste" msgstr "" #: bin/gscan2pdf:517 msgid "Paste selection" msgstr "" #: bin/gscan2pdf:521 msgid "_Delete" msgstr "刪除(_D)" #: bin/gscan2pdf:522 msgid "Delete selected pages" msgstr "刪除所選頁面" #: bin/gscan2pdf:526 msgid "_Renumber" msgstr "重新編號(_R)" #: bin/gscan2pdf:527 msgid "Renumber pages" msgstr "" #: bin/gscan2pdf:529 bin/gscan2pdf:679 msgid "_Select" msgstr "" #: bin/gscan2pdf:532 msgid "_All" msgstr "" #: bin/gscan2pdf:533 msgid "Select all pages" msgstr "全選頁面" #: bin/gscan2pdf:536 msgid "_Odd" msgstr "" #: bin/gscan2pdf:537 msgid "Select all odd-numbered pages" msgstr "" #: bin/gscan2pdf:541 msgid "_Even" msgstr "" #: bin/gscan2pdf:542 msgid "Select all evenly-numbered pages" msgstr "" #: bin/gscan2pdf:547 msgid "_Blank" msgstr "" #: bin/gscan2pdf:548 msgid "Select pages with low standard deviation" msgstr "" #: bin/gscan2pdf:552 msgid "_Dark" msgstr "" #: bin/gscan2pdf:553 msgid "Select dark pages" msgstr "" #: bin/gscan2pdf:558 msgid "_Modified" msgstr "" #: bin/gscan2pdf:560 msgid "Select modified pages since last OCR" msgstr "" #: bin/gscan2pdf:565 msgid "_No OCR" msgstr "" #: bin/gscan2pdf:566 msgid "Select pages with no OCR output" msgstr "" #: bin/gscan2pdf:570 msgid "_Clear OCR" msgstr "" #: bin/gscan2pdf:571 msgid "Clear OCR output from selected pages" msgstr "" #: bin/gscan2pdf:575 msgid "Propert_ies" msgstr "" #: bin/gscan2pdf:576 msgid "Edit image properties" msgstr "" #: bin/gscan2pdf:580 msgid "Prefere_nces" msgstr "" #: bin/gscan2pdf:581 msgid "Edit preferences" msgstr "" #: bin/gscan2pdf:585 msgid "_View" msgstr "檢視(_V)" #: bin/gscan2pdf:588 msgid "Zoom _100%" msgstr "實際尺寸(_100%)" #: bin/gscan2pdf:589 msgid "Zoom to 100%" msgstr "實際大小" #: bin/gscan2pdf:593 msgid "Zoom to _fit" msgstr "符合頁面(_f)" #: bin/gscan2pdf:594 msgid "Zoom to fit" msgstr "符合頁面" #: bin/gscan2pdf:598 msgid "Zoom _in" msgstr "放大(_i)" #: bin/gscan2pdf:599 msgid "Zoom in" msgstr "放大" #: bin/gscan2pdf:603 msgid "Zoom _out" msgstr "縮小(_o)" #: bin/gscan2pdf:604 msgid "Zoom out" msgstr "縮小" #: bin/gscan2pdf:609 bin/gscan2pdf:611 msgid "Rotate 90 clockwise" msgstr "順時針旋轉 90 度" #: bin/gscan2pdf:617 bin/gscan2pdf:619 msgid "Rotate 180" msgstr "旋轉 180 度" #: bin/gscan2pdf:625 bin/gscan2pdf:627 msgid "Rotate 90 anticlockwise" msgstr "逆時針旋轉 90 度" #: bin/gscan2pdf:632 msgid "_Tools" msgstr "" #: bin/gscan2pdf:634 msgid "_Threshold" msgstr "" #: bin/gscan2pdf:635 msgid "Change each pixel above this threshold to black" msgstr "" #: bin/gscan2pdf:639 msgid "_Negate" msgstr "" #: bin/gscan2pdf:640 msgid "Converts black to white and vice versa" msgstr "" #: bin/gscan2pdf:644 msgid "_Unsharp Mask" msgstr "" #: bin/gscan2pdf:645 msgid "Apply an unsharp mask" msgstr "" #: bin/gscan2pdf:648 msgid "_Crop" msgstr "" #: bin/gscan2pdf:649 msgid "Crop pages" msgstr "" #: bin/gscan2pdf:653 msgid "_Clean up" msgstr "" #: bin/gscan2pdf:654 bin/gscan2pdf:4085 msgid "Clean up scanned images with unpaper" msgstr "" #: bin/gscan2pdf:657 msgid "_OCR" msgstr "" #: bin/gscan2pdf:658 msgid "Optical Character Recognition" msgstr "" #: bin/gscan2pdf:660 msgid "U_ser-defined" msgstr "" #: bin/gscan2pdf:663 bin/gscan2pdf:665 msgid "_Help" msgstr "說明(_H)" #: bin/gscan2pdf:666 msgid "Help" msgstr "幫助" #: bin/gscan2pdf:668 msgid "_About" msgstr "關於(_A)" #: bin/gscan2pdf:674 msgid "_Drag" msgstr "" #: bin/gscan2pdf:675 msgid "Use the hand tool" msgstr "" #: bin/gscan2pdf:680 msgid "Use the rectangular selection tool" msgstr "" #: bin/gscan2pdf:684 msgid "_Paint" msgstr "" #: bin/gscan2pdf:685 msgid "Use the painter tool" msgstr "" #: bin/gscan2pdf:965 lib/Gscan2pdf/Document.pm:2594 #: lib/Gscan2pdf/Document.pm:2595 msgid "Error copying page" msgstr "" #: bin/gscan2pdf:1082 msgid "Image" msgstr "" #: bin/gscan2pdf:1117 msgid "OCR Output" msgstr "" #: bin/gscan2pdf:1174 msgid "Mode" msgstr "顯示模式" #: bin/gscan2pdf:1176 msgid "Lineart" msgstr "描邊" #: bin/gscan2pdf:1177 msgid "Grayscale" msgstr "灰階" #: bin/gscan2pdf:1178 msgid "Gray" msgstr "灰度" #: bin/gscan2pdf:1179 msgid "Color" msgstr "彩色" #: bin/gscan2pdf:1180 msgid "Black & White" msgstr "黑白" #: bin/gscan2pdf:1181 msgid "True Gray" msgstr "全灰 (TrueGray)" #: bin/gscan2pdf:1182 msgid "Binary" msgstr "雙值 (Binary)" #: bin/gscan2pdf:1183 bin/gscan2pdf:1242 bin/gscan2pdf:1243 msgid "Auto" msgstr "自動" #: bin/gscan2pdf:1184 msgid "Halftone" msgstr "半色調" #: bin/gscan2pdf:1185 msgid "24bit Color" msgstr "全彩" #: bin/gscan2pdf:1189 bin/gscan2pdf:2547 bin/gscan2pdf:2644 msgid "Compression" msgstr "壓縮" #: bin/gscan2pdf:1191 bin/gscan2pdf:2539 bin/gscan2pdf:2636 msgid "None" msgstr "無" #: bin/gscan2pdf:1192 bin/gscan2pdf:2537 bin/gscan2pdf:2601 bin/gscan2pdf:2622 msgid "JPEG" msgstr "JPEG 格式" #: bin/gscan2pdf:1195 bin/gscan2pdf:8127 msgid "Resolution" msgstr "解析度" #: bin/gscan2pdf:1196 msgid "Brightness" msgstr "" #: bin/gscan2pdf:1197 msgid "Gain" msgstr "" #: bin/gscan2pdf:1198 msgid "Contrast" msgstr "" #: bin/gscan2pdf:1199 bin/gscan2pdf:6406 bin/gscan2pdf:6417 bin/gscan2pdf:6620 msgid "Threshold" msgstr "" #: bin/gscan2pdf:1201 msgid "Speed" msgstr "" #: bin/gscan2pdf:1203 bin/gscan2pdf:1210 bin/gscan2pdf:1217 bin/gscan2pdf:1224 #: bin/gscan2pdf:1231 msgid "Yes" msgstr "確定" #: bin/gscan2pdf:1204 bin/gscan2pdf:1211 bin/gscan2pdf:1218 bin/gscan2pdf:1225 #: bin/gscan2pdf:1232 msgid "No" msgstr "取消" #: bin/gscan2pdf:1208 msgid "Batch scan" msgstr "批次掃描" #: bin/gscan2pdf:1215 bin/gscan2pdf:1222 msgid "Wait for button" msgstr "掃描器就緒" #: bin/gscan2pdf:1229 msgid "Cache calibration" msgstr "" #: bin/gscan2pdf:1236 msgid "Source" msgstr "來源" #: bin/gscan2pdf:1238 msgid "Normal" msgstr "一般" #: bin/gscan2pdf:1239 msgid "ADF" msgstr "ADF 模式" #: bin/gscan2pdf:1240 msgid "Automatic Document Feeder" msgstr "掃描器自動進紙" #: bin/gscan2pdf:1241 msgid "XPA" msgstr "XPA 投影模式" #: bin/gscan2pdf:1244 msgid "Flatbed" msgstr "Flatbed 平台模式" #: bin/gscan2pdf:1245 msgid "Transparency Adapter" msgstr "透明度調節" #: bin/gscan2pdf:1246 msgid "Transparency Unit" msgstr "透明度單元" #: bin/gscan2pdf:1249 bin/gscan2pdf:1251 msgid "Page Width" msgstr "" #: bin/gscan2pdf:1250 bin/gscan2pdf:1252 msgid "Page Height" msgstr "" #: bin/gscan2pdf:1253 msgid "Top Overscan" msgstr "" #: bin/gscan2pdf:1254 msgid "Bottom Overscan" msgstr "" #: bin/gscan2pdf:1256 bin/gscan2pdf:1263 msgid "ADF Mode" msgstr "" #: bin/gscan2pdf:1258 bin/gscan2pdf:1265 msgid "Simplex" msgstr "" #: bin/gscan2pdf:1259 bin/gscan2pdf:1266 msgid "Duplex" msgstr "" #: bin/gscan2pdf:1301 bin/gscan2pdf:1306 msgid "Pick crashed session to restore" msgstr "" #: bin/gscan2pdf:1308 bin/gscan2pdf:2609 msgid "Session" msgstr "" #: bin/gscan2pdf:1338 #, perl-format msgid "" "Warning: unable to use %s for temporary storage. Defaulting to %s instead." msgstr "" #: bin/gscan2pdf:1441 msgid "GOCR" msgstr "" #: bin/gscan2pdf:1441 msgid "Process image with GOCR." msgstr "" #: bin/gscan2pdf:1445 msgid "Tesseract" msgstr "" #: bin/gscan2pdf:1446 msgid "Process image with Tesseract." msgstr "" #: bin/gscan2pdf:1450 msgid "Ocropus" msgstr "" #: bin/gscan2pdf:1450 msgid "Process image with Ocropus." msgstr "" #: bin/gscan2pdf:1454 msgid "Cuneiform" msgstr "" #: bin/gscan2pdf:1455 msgid "Process image with Cuneiform." msgstr "" #: bin/gscan2pdf:1461 msgid "Save image and Save as PDF both require imagemagick\n" msgstr "" #: bin/gscan2pdf:1465 msgid "Save image requires libtiff\n" msgstr "" #: bin/gscan2pdf:1469 msgid "Save as DjVu requires djvulibre-bin\n" msgstr "" #: bin/gscan2pdf:1473 msgid "Email as PDF requires xdg-email\n" msgstr "" #: bin/gscan2pdf:1518 msgid "The rotating options and unpaper support require perlmagick\n" msgstr "" #: bin/gscan2pdf:1524 msgid "unpaper missing\n" msgstr "" #: bin/gscan2pdf:1534 msgid "OCR requires gocr, tesseract, ocropus, or cuneiform\n" msgstr "" #: bin/gscan2pdf:1539 msgid "Warning: missing packages" msgstr "" #: bin/gscan2pdf:1544 msgid "Don't show this message again" msgstr "" #: bin/gscan2pdf:1753 msgid "" "Some pages have not been saved.\n" "Do you really want to clear all pages?" msgstr "" #: bin/gscan2pdf:1828 bin/gscan2pdf:1858 #, perl-format msgid "Process %i of %i (%s)" msgstr "" #: bin/gscan2pdf:1867 #, perl-format msgid "Process %i of %i" msgstr "" #: bin/gscan2pdf:1895 msgid "Open image" msgstr "" #: bin/gscan2pdf:1903 bin/gscan2pdf:2797 bin/gscan2pdf:3113 msgid "Image files" msgstr "" #: bin/gscan2pdf:1940 msgid "Pages to extract" msgstr "" #: bin/gscan2pdf:1943 bin/gscan2pdf:2117 bin/gscan2pdf:2586 bin/gscan2pdf:3353 #: bin/gscan2pdf:3494 bin/gscan2pdf:4104 bin/gscan2pdf:4514 bin/gscan2pdf:5825 #: bin/gscan2pdf:6409 bin/gscan2pdf:6495 bin/gscan2pdf:6565 bin/gscan2pdf:6737 #: bin/gscan2pdf:7011 bin/gscan2pdf:7274 bin/gscan2pdf:7757 bin/gscan2pdf:8123 #: lib/Gscan2pdf/Dialog.pm:56 lib/Gscan2pdf/Dialog/Renumber.pm:80 #: lib/Gscan2pdf/Scanner/Dialog.pm:201 t/05_Dialog.t:28 msgid "vbox" msgstr "" #: bin/gscan2pdf:1946 msgid "First page to extract" msgstr "" #: bin/gscan2pdf:1953 msgid "Last page to extract" msgstr "" #: bin/gscan2pdf:2042 lib/Gscan2pdf/Dialog/Renumber.pm:83 msgid "Page Range" msgstr "" #: bin/gscan2pdf:2092 msgid "Metadata" msgstr "摘要資訊" #: bin/gscan2pdf:2101 msgid "Date" msgstr "日期" #: bin/gscan2pdf:2114 msgid "Select Date" msgstr "選擇日期" #: bin/gscan2pdf:2136 msgid "Today" msgstr "" #: bin/gscan2pdf:2150 msgid "Year-Month-Day" msgstr "" #: bin/gscan2pdf:2156 msgid "Document author" msgstr "文件作者" #: bin/gscan2pdf:2165 msgid "Title" msgstr "主標題" #: bin/gscan2pdf:2174 msgid "Subject" msgstr "副標題" #: bin/gscan2pdf:2183 msgid "Keywords" msgstr "關鍵字" #: bin/gscan2pdf:2245 msgid "Editing text" msgstr "" #: bin/gscan2pdf:2252 bin/gscan2pdf:2258 bin/gscan2pdf:2332 msgid "text" msgstr "" #: bin/gscan2pdf:2352 msgid "PDF filename" msgstr "PDF 檔名" #: bin/gscan2pdf:2381 msgid "PDF files" msgstr "" #: bin/gscan2pdf:2405 bin/gscan2pdf:2823 bin/gscan2pdf:2880 bin/gscan2pdf:2976 #: bin/gscan2pdf:3035 bin/gscan2pdf:3087 bin/gscan2pdf:3275 #, perl-format msgid "File %s is read-only" msgstr "" #: bin/gscan2pdf:2482 msgid "JPEG Quality" msgstr "JPEG 品質" #: bin/gscan2pdf:2496 msgid "Downsample to" msgstr "" #: bin/gscan2pdf:2501 msgid "PPI" msgstr "" #: bin/gscan2pdf:2520 msgid "Automatic" msgstr "" #: bin/gscan2pdf:2521 msgid "Let gscan2pdf which type of compression to use." msgstr "" #: bin/gscan2pdf:2524 bin/gscan2pdf:2616 msgid "LZW" msgstr "" #: bin/gscan2pdf:2525 bin/gscan2pdf:2617 msgid "Compress output with Lempel-Ziv & Welch encoding." msgstr "" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Zip" msgstr "Zip 壓縮" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Compress output with deflate encoding." msgstr "" #: bin/gscan2pdf:2529 bin/gscan2pdf:2624 msgid "Packbits" msgstr "" #: bin/gscan2pdf:2530 bin/gscan2pdf:2625 msgid "Compress output with Packbits encoding." msgstr "" #: bin/gscan2pdf:2536 bin/gscan2pdf:2604 msgid "PNG" msgstr "" #: bin/gscan2pdf:2536 msgid "Compress output with PNG encoding." msgstr "" #: bin/gscan2pdf:2537 bin/gscan2pdf:2622 msgid "Compress output with JPEG encoding." msgstr "" #: bin/gscan2pdf:2540 bin/gscan2pdf:2637 msgid "Use no compression algorithm on output." msgstr "" #: bin/gscan2pdf:2594 msgid "Image type" msgstr "" #: bin/gscan2pdf:2598 msgid "PDF" msgstr "" #: bin/gscan2pdf:2598 msgid "Portable Document Format" msgstr "" #: bin/gscan2pdf:2599 msgid "GIF" msgstr "" #: bin/gscan2pdf:2599 msgid "CompuServe graphics interchange format" msgstr "" #: bin/gscan2pdf:2602 msgid "Joint Photographic Experts Group JFIF format" msgstr "" #: bin/gscan2pdf:2604 msgid "Portable Network Graphics" msgstr "" #: bin/gscan2pdf:2605 msgid "PNM" msgstr "" #: bin/gscan2pdf:2605 msgid "Portable anymap" msgstr "" #: bin/gscan2pdf:2606 msgid "PS" msgstr "" #: bin/gscan2pdf:2606 msgid "Postscript" msgstr "" #: bin/gscan2pdf:2607 msgid "TIFF" msgstr "" #: bin/gscan2pdf:2607 msgid "Tagged Image File Format" msgstr "" #: bin/gscan2pdf:2608 msgid "Text" msgstr "" #: bin/gscan2pdf:2608 msgid "Plain text" msgstr "" #: bin/gscan2pdf:2609 msgid "gscan2pdf session file" msgstr "" #: bin/gscan2pdf:2611 msgid "DjVu" msgstr "" #: bin/gscan2pdf:2611 msgid "Deja Vu" msgstr "" #: bin/gscan2pdf:2628 msgid "G3" msgstr "" #: bin/gscan2pdf:2629 msgid "Compress output with CCITT Group 3 encoding." msgstr "" #: bin/gscan2pdf:2632 msgid "G4" msgstr "" #: bin/gscan2pdf:2633 msgid "Compress output with CCITT Group 4 encoding." msgstr "" #: bin/gscan2pdf:2649 msgid "tiff" msgstr "" #: bin/gscan2pdf:2681 msgid "Font for non-ASCII text" msgstr "" #: bin/gscan2pdf:2790 msgid "TIFF filename" msgstr "TIFF 檔名" #: bin/gscan2pdf:2848 msgid "Text filename" msgstr "" #: bin/gscan2pdf:2856 msgid "Text files" msgstr "" #: bin/gscan2pdf:2944 msgid "PS filename" msgstr "" #: bin/gscan2pdf:2951 msgid "Postscript files" msgstr "" #: bin/gscan2pdf:3003 msgid "gscan2pdf session filename" msgstr "" #: bin/gscan2pdf:3010 msgid "gscan2pdf session files" msgstr "" #: bin/gscan2pdf:3093 #, perl-format msgid "" "File %s exists.\n" "Really overwrite?" msgstr "" #: bin/gscan2pdf:3106 msgid "Image filename" msgstr "" #: bin/gscan2pdf:3245 msgid "DjVu filename" msgstr "" #: bin/gscan2pdf:3252 msgid "DjVu files" msgstr "" #: bin/gscan2pdf:3349 msgid "Email as PDF" msgstr "" #: bin/gscan2pdf:3454 msgid "Error creating email" msgstr "" #: bin/gscan2pdf:3490 bin/gscan2pdf:4313 msgid "Scan Document" msgstr "掃描文件" #: bin/gscan2pdf:3507 lib/Gscan2pdf/Scanner/Dialog.pm:248 msgid "Page Options" msgstr "" #: bin/gscan2pdf:3510 lib/Gscan2pdf/Scanner/Dialog.pm:251 msgid "# Pages" msgstr "# 頁" #: bin/gscan2pdf:3519 lib/Gscan2pdf/PageRange.pm:34 #: lib/Gscan2pdf/Scanner/Dialog.pm:261 msgid "All" msgstr "全部" #: bin/gscan2pdf:3520 lib/Gscan2pdf/Scanner/Dialog.pm:262 msgid "Scan all pages" msgstr "全選頁面" #: bin/gscan2pdf:3532 bin/gscan2pdf:3537 lib/Gscan2pdf/Scanner/Dialog.pm:274 #: lib/Gscan2pdf/Scanner/Dialog.pm:279 msgid "Set number of pages to scan" msgstr "指定要掃描的頁面編號" #: bin/gscan2pdf:3550 lib/Gscan2pdf/Scanner/Dialog.pm:308 msgid "Extended page numbering" msgstr "" #: bin/gscan2pdf:3554 lib/Gscan2pdf/Scanner/Dialog.pm:312 msgid "Page number" msgstr "" #: bin/gscan2pdf:3563 lib/Gscan2pdf/Dialog/Renumber.pm:111 #: lib/Gscan2pdf/Scanner/Dialog.pm:321 msgid "Start" msgstr "" #: bin/gscan2pdf:3572 lib/Gscan2pdf/Dialog/Renumber.pm:132 #: lib/Gscan2pdf/Scanner/Dialog.pm:340 msgid "Increment" msgstr "" #: bin/gscan2pdf:3604 lib/Gscan2pdf/Scanner/Dialog.pm:372 msgid "Source document" msgstr "來源文件" #: bin/gscan2pdf:3611 lib/Gscan2pdf/Scanner/Dialog.pm:379 msgid "Single sided" msgstr "單面" #: bin/gscan2pdf:3612 lib/Gscan2pdf/Scanner/Dialog.pm:380 msgid "Source document is single-sided" msgstr "來源文件為單面" #: bin/gscan2pdf:3622 lib/Gscan2pdf/Scanner/Dialog.pm:390 msgid "Double sided" msgstr "雙面" #: bin/gscan2pdf:3623 lib/Gscan2pdf/Scanner/Dialog.pm:391 msgid "Source document is double-sided" msgstr "來源文件為雙面" #: bin/gscan2pdf:3629 lib/Gscan2pdf/Scanner/Dialog.pm:397 msgid "Side to scan" msgstr "掃描正/反面" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Facing" msgstr "正面" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Reverse" msgstr "反面" #: bin/gscan2pdf:3655 lib/Gscan2pdf/Scanner/Dialog.pm:418 msgid "Sets which side of a double-sided document is scanned" msgstr "指定雙面文件要掃描正或反面" #: bin/gscan2pdf:3719 msgid "Scan Options" msgstr "" #: bin/gscan2pdf:3722 msgid "Device-dependent options" msgstr "裝置額外選項" #: bin/gscan2pdf:3729 lib/Gscan2pdf/Scanner/Dialog.pm:458 msgid "Scan profiles" msgstr "" #: bin/gscan2pdf:3778 bin/gscan2pdf:3784 lib/Gscan2pdf/Scanner/Dialog.pm:479 #: lib/Gscan2pdf/Scanner/Dialog.pm:485 msgid "Name of scan profile" msgstr "" #: bin/gscan2pdf:3828 lib/Gscan2pdf/Scanner/Dialog.pm:518 msgid "Scan" msgstr "掃描" #: bin/gscan2pdf:3866 msgid "Must scan facing pages first" msgstr "必須先掃描正面" #: bin/gscan2pdf:3977 msgid "Post-processing" msgstr "" #: bin/gscan2pdf:3986 bin/gscan2pdf:4008 msgid "Rotate" msgstr "" #: bin/gscan2pdf:3987 bin/gscan2pdf:4009 msgid "Rotate image after scanning" msgstr "" #: bin/gscan2pdf:3990 msgid "Both sides" msgstr "" #: bin/gscan2pdf:3990 msgid "Both sides." msgstr "" #: bin/gscan2pdf:3991 msgid "Facing side" msgstr "" #: bin/gscan2pdf:3991 msgid "Facing side." msgstr "" #: bin/gscan2pdf:3992 msgid "Reverse side" msgstr "" #: bin/gscan2pdf:3992 msgid "Reverse side." msgstr "" #: bin/gscan2pdf:3995 bin/gscan2pdf:4013 msgid "Select side to rotate" msgstr "" #: bin/gscan2pdf:3998 msgid "90" msgstr "" #: bin/gscan2pdf:3998 msgid "Rotate image 90 degrees clockwise." msgstr "" #: bin/gscan2pdf:3999 msgid "180" msgstr "" #: bin/gscan2pdf:3999 msgid "Rotate image 180 degrees clockwise." msgstr "" #: bin/gscan2pdf:4000 msgid "270" msgstr "" #: bin/gscan2pdf:4000 msgid "Rotate image 90 degrees anticlockwise." msgstr "" #: bin/gscan2pdf:4003 bin/gscan2pdf:4016 msgid "Select direction of rotation" msgstr "" #: bin/gscan2pdf:4083 msgid "Clean up images" msgstr "" #: bin/gscan2pdf:4094 msgid "Options" msgstr "" #: bin/gscan2pdf:4095 msgid "Set unpaper options" msgstr "" #: bin/gscan2pdf:4101 msgid "unpaper options" msgstr "" #: bin/gscan2pdf:4136 bin/gscan2pdf:4137 msgid "OCR scanned pages" msgstr "" #: bin/gscan2pdf:4151 msgid "Select OCR engine" msgstr "" #: bin/gscan2pdf:4210 lib/Gscan2pdf/Scanner/Dialog.pm:634 msgid "Fetching list of devices" msgstr "" #: bin/gscan2pdf:4225 lib/Gscan2pdf/Scanner/Dialog.pm:654 msgid "No devices found" msgstr "" #: bin/gscan2pdf:4367 bin/gscan2pdf:4732 bin/gscan2pdf:4777 bin/gscan2pdf:5214 #: lib/Gscan2pdf/Scanner/Dialog.pm:343 lib/Gscan2pdf/Scanner/Dialog.pm:348 #: t/061_Scanner_Dialog.t:38 t/061_Scanner_Dialog.t:95 msgid "page-number-increment" msgstr "" #: bin/gscan2pdf:4374 bin/gscan2pdf:4729 bin/gscan2pdf:4730 bin/gscan2pdf:4776 #: bin/gscan2pdf:5213 lib/Gscan2pdf/Scanner/Dialog.pm:361 #: t/061_Scanner_Dialog.t:37 msgid "page-number-start" msgstr "" #: bin/gscan2pdf:4663 lib/Gscan2pdf/Scanner/Dialog.pm:210 msgid "Device" msgstr "裝置" #: bin/gscan2pdf:4671 lib/Gscan2pdf/Scanner/Dialog.pm:213 msgid "Rescan for devices" msgstr "" #: bin/gscan2pdf:4694 lib/Gscan2pdf/Scanner/Dialog.pm:237 msgid "Sets the device to be used for the scan" msgstr "指定使用此裝置來掃描" #: bin/gscan2pdf:4780 lib/Gscan2pdf/Scanner/Dialog.pm:300 #: t/061_Scanner_Dialog.t:35 msgid "num-pages" msgstr "" #: bin/gscan2pdf:4821 msgid "Scanning" msgstr "正在掃描" #: bin/gscan2pdf:4974 msgid "Unable to load image" msgstr "無法載入頁面" #: bin/gscan2pdf:5004 msgid "print-pages" msgstr "" #: bin/gscan2pdf:5008 msgid "page-ranges" msgstr "" #: bin/gscan2pdf:5405 msgid "Patches gratefully received from:" msgstr "" #: bin/gscan2pdf:5407 msgid "To aid the scan-to-PDF process" msgstr "加速掃描至 PDF 流程" #: bin/gscan2pdf:5408 msgid "Copyright 2006--2012 Jeffrey Ratcliffe" msgstr "" #: bin/gscan2pdf:5492 bin/gscan2pdf:6028 msgid "The options cache seems to be empty. Reload device-dependent options?" msgstr "" #: bin/gscan2pdf:5519 bin/gscan2pdf:6054 msgid "Updating options" msgstr "" #: bin/gscan2pdf:5571 msgid "Paper size" msgstr "紙張大小" #: bin/gscan2pdf:5572 bin/gscan2pdf:5672 bin/gscan2pdf:5840 bin/gscan2pdf:6769 msgid "Width" msgstr "" #: bin/gscan2pdf:5573 bin/gscan2pdf:5678 bin/gscan2pdf:5841 bin/gscan2pdf:6780 msgid "Height" msgstr "" #: bin/gscan2pdf:5574 bin/gscan2pdf:5684 bin/gscan2pdf:5842 #: lib/Gscan2pdf/Unpaper.pm:124 lib/Gscan2pdf/Unpaper.pm:152 msgid "Left" msgstr "" #: bin/gscan2pdf:5575 bin/gscan2pdf:5690 bin/gscan2pdf:5843 #: lib/Gscan2pdf/Unpaper.pm:129 lib/Gscan2pdf/Unpaper.pm:157 msgid "Top" msgstr "" #: bin/gscan2pdf:5589 bin/gscan2pdf:5703 bin/gscan2pdf:6232 msgid "Manual" msgstr "" #: bin/gscan2pdf:5590 bin/gscan2pdf:5700 msgid "Edit" msgstr "編輯(E)" #: bin/gscan2pdf:5591 msgid "Selects or edits the paper size" msgstr "" #: bin/gscan2pdf:5673 msgid "Width of scan area" msgstr "" #: bin/gscan2pdf:5679 msgid "Height of scan area" msgstr "" #: bin/gscan2pdf:5685 msgid "Top-left x position of scan area" msgstr "" #: bin/gscan2pdf:5691 msgid "Top-left y position of scan area" msgstr "" #: bin/gscan2pdf:5822 msgid "Edit paper size" msgstr "" #: bin/gscan2pdf:5839 msgid "Name" msgstr "" #: bin/gscan2pdf:5893 msgid "Cannot delete all paper sizes" msgstr "" #: bin/gscan2pdf:5955 msgid "" "The following paper sizes are too big to be scanned by the selected device:" msgstr "" #: bin/gscan2pdf:6419 bin/gscan2pdf:6605 msgid "%" msgstr "" #: bin/gscan2pdf:6492 msgid "Negate" msgstr "" #: bin/gscan2pdf:6562 msgid "Unsharp mask" msgstr "" #: bin/gscan2pdf:6573 msgid "Radius" msgstr "" #: bin/gscan2pdf:6575 bin/gscan2pdf:6592 bin/gscan2pdf:6747 bin/gscan2pdf:6759 #: bin/gscan2pdf:6771 bin/gscan2pdf:6782 msgid "pixels" msgstr "" #: bin/gscan2pdf:6582 msgid "" "The radius of the Gaussian, in pixels, not counting the center pixel (0 = " "automatic)." msgstr "" #: bin/gscan2pdf:6590 msgid "Sigma" msgstr "" #: bin/gscan2pdf:6597 msgid "The standard deviation of the Gaussian." msgstr "" #: bin/gscan2pdf:6603 msgid "Amount" msgstr "" #: bin/gscan2pdf:6612 msgid "" "The percentage of the difference between the original and the blur image " "that is added back into the original." msgstr "" #: bin/gscan2pdf:6627 msgid "" "The threshold, as a fraction of QuantumRange, needed to apply the difference " "amount." msgstr "" #: bin/gscan2pdf:6733 msgid "Crop" msgstr "" #: bin/gscan2pdf:6745 msgid "x" msgstr "" #: bin/gscan2pdf:6751 msgid "The x-position of the left hand edge of the crop." msgstr "" #: bin/gscan2pdf:6757 msgid "y" msgstr "" #: bin/gscan2pdf:6763 msgid "The y-position of the top edge of the crop." msgstr "" #: bin/gscan2pdf:6774 msgid "The width of the crop." msgstr "" #: bin/gscan2pdf:6785 msgid "The height of the crop." msgstr "" #: bin/gscan2pdf:6906 msgid "label" msgstr "" #: bin/gscan2pdf:7007 msgid "unpaper" msgstr "" #: bin/gscan2pdf:7216 bin/gscan2pdf:7244 msgid "Language to recognise" msgstr "" #: bin/gscan2pdf:7227 msgid "English" msgstr "" #: bin/gscan2pdf:7270 msgid "OCR" msgstr "" #: bin/gscan2pdf:7279 msgid "OCR Engine" msgstr "" #: bin/gscan2pdf:7323 msgid "Start OCR" msgstr "" #: bin/gscan2pdf:7339 msgid "No page selected" msgstr "" #: bin/gscan2pdf:7374 msgid "" "Some pages have not been saved.\n" "Do you really want to quit?" msgstr "" #: bin/gscan2pdf:7432 #, perl-format msgid "" "The help viewer requires module Gtk2::Ex::PodViewer\n" "Alternatively, try: %s %s\n" "\n" msgstr "" #: bin/gscan2pdf:7698 msgid "This operation cannot be undone. Are you sure?" msgstr "" #: bin/gscan2pdf:7753 msgid "Preferences" msgstr "" #: bin/gscan2pdf:7762 msgid "Frontend" msgstr "" #: bin/gscan2pdf:7766 msgid "libsane-perl" msgstr "" #: bin/gscan2pdf:7767 msgid "Scan using the perl bindings for SANE." msgstr "" #: bin/gscan2pdf:7770 msgid "scanimage" msgstr "" #: bin/gscan2pdf:7771 msgid "Scan using the scanimage frontend." msgstr "" #: bin/gscan2pdf:7775 msgid "scanimage-perl" msgstr "" #: bin/gscan2pdf:7776 msgid "Scan using the scanimage-perl frontend." msgstr "" #: bin/gscan2pdf:7779 msgid "scanadf-perl" msgstr "" #: bin/gscan2pdf:7780 msgid "Scan using the scanadf-perl frontend." msgstr "" #: bin/gscan2pdf:7785 msgid "scanadf" msgstr "" #: bin/gscan2pdf:7786 msgid "Scan using the scanadf frontend." msgstr "" #: bin/gscan2pdf:7791 msgid "Cycle SANE handle after scan" msgstr "" #: bin/gscan2pdf:7814 msgid "Default filename for PDFs" msgstr "" #: bin/gscan2pdf:7820 msgid "" "%a\t author\n" "%t\t title\n" "%y\t document's year\n" "%Y\t today's year\n" "%m\t document's month\n" "%M\t today's month\n" "%d\t document's day\n" "%D\t today's day" msgstr "" #: bin/gscan2pdf:7830 msgid "Scan command prefix" msgstr "" #: bin/gscan2pdf:7839 msgid "Restore window settings on startup" msgstr "" #: bin/gscan2pdf:7845 msgid "Cache device-dependent options" msgstr "" #: bin/gscan2pdf:7851 msgid "Clear device-dependent options cache" msgstr "" #: bin/gscan2pdf:7862 msgid "Temporary directory" msgstr "" #: bin/gscan2pdf:7867 msgid "Browse" msgstr "" #: bin/gscan2pdf:7871 msgid "Select temporary directory" msgstr "" #: bin/gscan2pdf:7888 msgid "Blank threshold" msgstr "" #: bin/gscan2pdf:7893 msgid "Threshold used for selecting blank pages" msgstr "" #: bin/gscan2pdf:7899 msgid "Dark threshold" msgstr "" #: bin/gscan2pdf:7904 msgid "Threshold used for selecting dark pages" msgstr "" #: bin/gscan2pdf:7910 msgid "OCR output" msgstr "" #: bin/gscan2pdf:7915 msgid "Replace" msgstr "" #: bin/gscan2pdf:7917 msgid "" "Replace the contents of the text buffer with that from the OCR output." msgstr "" #: bin/gscan2pdf:7920 msgid "Prepend" msgstr "" #: bin/gscan2pdf:7921 msgid "Prepend the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7924 msgid "Append" msgstr "" #: bin/gscan2pdf:7925 msgid "Append the OCR output to the text buffer." msgstr "" #: bin/gscan2pdf:7933 msgid "User-defined tools" msgstr "" #: bin/gscan2pdf:7954 msgid "View files on saving" msgstr "" #: bin/gscan2pdf:8000 msgid "" "You will have to restart gscanp2df for changes to the temporary directory to " "take effect." msgstr "" #: bin/gscan2pdf:8092 msgid "" "Use %i and %o for the input and output filenames respectively, or a single " "%i if the image is to be modified in-place.\n" "\n" "The other variable available is:\n" "\n" "%r resolution" msgstr "" #: bin/gscan2pdf:8119 msgid "Properties" msgstr "" #: lib/Gscan2pdf/Dialog.pm:63 lib/Gscan2pdf/Dialog.pm:79 t/05_Dialog.t:25 msgid "hide-on-delete" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:78 lib/Gscan2pdf/Dialog/Renumber.pm:162 msgid "Renumber" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:98 lib/Gscan2pdf/Dialog/Renumber.pm:207 #: lib/Gscan2pdf/Dialog/Renumber.pm:244 msgid "range" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:102 msgid "Page numbering" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:105 lib/Gscan2pdf/Scanner/Dialog.pm:254 msgid "border_width" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:126 lib/Gscan2pdf/Dialog/Renumber.pm:192 #: lib/Gscan2pdf/Dialog/Renumber.pm:242 t/07_Dialog_Renumber.t:33 #: t/07_Dialog_Renumber.t:45 t/07_Dialog_Renumber.t:59 #: t/07_Dialog_Renumber.t:66 msgid "start" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:147 lib/Gscan2pdf/Dialog/Renumber.pm:193 #: lib/Gscan2pdf/Dialog/Renumber.pm:243 t/07_Dialog_Renumber.t:34 #: t/07_Dialog_Renumber.t:46 t/07_Dialog_Renumber.t:60 #: t/07_Dialog_Renumber.t:67 msgid "increment" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:205 lib/Gscan2pdf/Dialog/Renumber.pm:241 msgid "document" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:295 msgid "" "The current settings would result in duplicate page numbers. Please select " "new start and increment values." msgstr "" #: lib/Gscan2pdf/Document.pm:83 msgid "Thumbnails" msgstr "" #: lib/Gscan2pdf/Document.pm:1502 msgid "Unknown DjVu file structure. Please contact the author." msgstr "" #: lib/Gscan2pdf/Document.pm:1558 #, perl-format msgid "%s is not a recognised image type" msgstr "" #: lib/Gscan2pdf/Document.pm:1580 lib/Gscan2pdf/Document.pm:1637 #, perl-format msgid "Importing page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:1613 msgid "Error extracting images from PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1692 msgid "Setting up PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1703 #, perl-format msgid "Saving page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:1814 lib/Gscan2pdf/Document.pm:2136 #, perl-format msgid "Error compressing image: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1919 #, perl-format msgid "Error creating PDF image object: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1930 #, perl-format msgid "Error embedding file image in %s format to PDF: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1939 msgid "Closing PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1955 #, perl-format msgid "Writing page %i of %i" msgstr "" #: lib/Gscan2pdf/Document.pm:2006 msgid "Error writing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2025 lib/Gscan2pdf/Document.pm:2227 #, perl-format msgid "Can't open file: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:2050 msgid "Error adding text layer to DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2056 msgid "Closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2063 msgid "Error closing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2078 #, perl-format msgid "Converting image %i of %i to TIFF" msgstr "" #: lib/Gscan2pdf/Document.pm:2105 msgid "Error writing TIFF" msgstr "" #: lib/Gscan2pdf/Document.pm:2121 msgid "Concatenating TIFFs" msgstr "" #: lib/Gscan2pdf/Document.pm:2140 msgid "Converting to PS" msgstr "" #: lib/Gscan2pdf/Document.pm:2200 lib/Gscan2pdf/Document.pm:2215 msgid "Error saving image" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:158 #, perl-format msgid "Scanning %i pages..." msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:163 #, perl-format msgid "Scanning page %i..." msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:188 lib/Gscan2pdf/Frontend/CLI.pm:296 msgid "Scanner warming up" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:195 msgid "Document feeder out of documents" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:212 lib/Gscan2pdf/Frontend/CLI.pm:325 msgid "Device busy" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:218 lib/Gscan2pdf/Frontend/CLI.pm:330 msgid "Operation cancelled" msgstr "" #: lib/Gscan2pdf/Frontend/CLI.pm:223 lib/Gscan2pdf/Frontend/CLI.pm:336 msgid "Unknown message: " msgstr "未知的訊息: " #: lib/Gscan2pdf/Page.pm:68 lib/Gscan2pdf/Page.pm:73 #, perl-format msgid "Error importing image %s: %s" msgstr "" #: lib/Gscan2pdf/PageRange.pm:33 msgid "Selected" msgstr "選取的" #: lib/Gscan2pdf/PageRange.pm:58 msgid "active" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:218 t/061_Scanner_Dialog.t:33 #: t/061_Scanner_Dialog.t:59 msgid "device-list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:496 t/061_Scanner_Dialog.t:139 #: t/061_Scanner_Dialog.t:174 t/062_Scanner_Dialog.t:50 #: t/062_Scanner_Dialog.t:75 msgid "current-scan-options" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:567 msgid "logger" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:650 t/05_Dialog.t:24 msgid "transient-for" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:716 msgid "device_list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:749 t/061_Scanner_Dialog.t:32 msgid "device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:751 msgid "Opening device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:760 msgid "Retrieving options" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:41 msgid "Layout" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:44 msgid "Single" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:46 msgid "One page per sheet, oriented upwards without rotation." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:49 msgid "Double" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:51 msgid "" "Two pages per sheet, landscape orientation (one page on the left half, one " "page on the right half)." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:59 msgid "# Output pages" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:60 msgid "Number of pages to output." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:68 msgid "No deskew" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:69 msgid "Disable deskewing." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:74 msgid "No mask scan" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:75 msgid "Disable mask detection." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:80 msgid "No black filter" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:81 msgid "Disable black area scan." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:86 msgid "No gray filter" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:87 msgid "Disable gray area scan." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:92 msgid "No noise filter" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:93 msgid "Disable noise filter." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:98 msgid "No blur filter" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:99 msgid "Disable blur filter." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:104 msgid "No border scan" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:105 msgid "Disable border scanning." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:110 msgid "No border align" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:112 msgid "Disable aligning of the area detected by border scanning." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:117 msgid "Deskew to edge" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:119 msgid "" "Edges from which to scan for rotation. Each edge of a mask can be used to " "detect the mask's rotation. If multiple edges are specified, the average " "value will be used, unless the statistical deviation exceeds --deskew-scan-" "deviation." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:125 msgid "Use 'left' for scanning from the left edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:130 msgid "Use 'top' for scanning from the top edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:134 lib/Gscan2pdf/Unpaper.pm:162 msgid "Right" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:135 msgid "Use 'right' for scanning from the right edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:139 lib/Gscan2pdf/Unpaper.pm:167 msgid "Bottom" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:140 msgid "Use 'bottom' for scanning from the bottom." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:147 msgid "Align to edge" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:148 msgid "Edge to which to align the page." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:153 msgid "Use 'left' to align to the left edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:158 msgid "Use 'top' to align to the top edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:163 msgid "Use 'right' to align to the right edge." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:168 msgid "Use 'bottom' to align to the bottom." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:174 msgid "Border margin" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:178 msgid "Vertical margin" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:180 msgid "" "Vertical distance to keep from the sheet edge when aligning a border area." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:189 msgid "Horizontal margin" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:191 msgid "" "Horizontal distance to keep from the sheet edge when aligning a border area." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:202 msgid "White threshold" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:204 msgid "Brightness ratio above which a pixel is considered white." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:212 msgid "Black threshold" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:214 msgid "" "Brightness ratio below which a pixel is considered black (non-gray). This is " "used by the gray-filter. This value is also used when converting a grayscale " "image to black-and-white mode." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:250 msgid "Deskew" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:280 msgid "Border" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:337 msgid "Filters" msgstr "" #: t/05_Dialog.t:23 msgid "title" msgstr "" #: t/05_Dialog.t:26 t/05_Dialog.t:31 t/05_Dialog.t:32 t/05_Dialog.t:38 #: t/05_Dialog.t:39 msgid "border-width" msgstr "" #: t/061_Scanner_Dialog.t:34 msgid "dir" msgstr "" #: t/061_Scanner_Dialog.t:36 msgid "max-pages" msgstr "" #: t/061_Scanner_Dialog.t:39 msgid "side-to-scan" msgstr "" #: t/061_Scanner_Dialog.t:40 t/061_Scanner_Dialog.t:185 msgid "available-scan-options" msgstr "" #: t/061_Scanner_Dialog.t:171 t/062_Scanner_Dialog.t:73 msgid "profile" msgstr "" gscan2pdf-1.2.3/po/gscan2pdf-sk.po0000644000175000017500000013764112243440507015247 0ustar jeffjeff# Slovak translation for gscan2pdf # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the gscan2pdf package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: gscan2pdf\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-10-25 08:12+0200\n" "PO-Revision-Date: 2013-10-10 13:08+0000\n" "Last-Translator: zdpo \n" "Language-Team: Slovak \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-19 09:22+0000\n" "X-Generator: Launchpad (build 16831)\n" #: bin/gscan2pdf:157 msgid "Error displaying help" msgstr "Chyba pri zobrazovaní pomocníka" #: bin/gscan2pdf:201 msgid "" "Error: unable to load settings.\n" "Backing up settings\n" "Reverting to defaults" msgstr "" "Chyba: nie je možné načítať nastavenia\n" "Zálohovanie nastavení\n" "Načítavanie štandardných nastavení" #: bin/gscan2pdf:244 msgid "A4" msgstr "A4" #: bin/gscan2pdf:250 msgid "US Letter" msgstr "US Letter" #: bin/gscan2pdf:256 msgid "US Legal" msgstr "US Legal" #: bin/gscan2pdf:323 bin/gscan2pdf:344 #, perl-format msgid "Cannot read file: %s" msgstr "Nedá sa čítať súbor: %s" #: bin/gscan2pdf:451 msgid "_File" msgstr "_Súbor" #: bin/gscan2pdf:454 msgid "_New" msgstr "_Nový" #: bin/gscan2pdf:455 msgid "Clears all pages" msgstr "Zmaže všetky strany" #: bin/gscan2pdf:459 msgid "_Open" msgstr "_Otvoriť" #: bin/gscan2pdf:460 msgid "Open image file(s)" msgstr "Otvorí súbor(y) obrázku(ov)" #: bin/gscan2pdf:465 msgid "S_can" msgstr "S_kenovať" #: bin/gscan2pdf:467 msgid "Scan document" msgstr "Skenovať dokument" #: bin/gscan2pdf:471 bin/gscan2pdf:472 bin/gscan2pdf:2582 msgid "Save" msgstr "Uložiť" #: bin/gscan2pdf:476 msgid "_Email as PDF" msgstr "Odoslať _e-mailom ako PDF" #: bin/gscan2pdf:477 msgid "Attach as PDF to a new email" msgstr "Pripojí ako pdf k novému e-mailu" #: bin/gscan2pdf:480 msgid "_Print" msgstr "_Tlačiť" #: bin/gscan2pdf:481 msgid "Print" msgstr "Tlačiť" #: bin/gscan2pdf:485 msgid "_Compress temporary files" msgstr "S_komprimovať dočasné súbory" #: bin/gscan2pdf:486 msgid "Compress temporary files" msgstr "Skomprimovať dočasné súbory" #: bin/gscan2pdf:490 msgid "_Quit" msgstr "_Koniec" #: bin/gscan2pdf:491 msgid "Quit" msgstr "Ukončiť" #: bin/gscan2pdf:495 msgid "_Edit" msgstr "_Upraviť" #: bin/gscan2pdf:497 msgid "_Undo" msgstr "_Späť" #: bin/gscan2pdf:497 msgid "Undo" msgstr "Vrátiť späť" #: bin/gscan2pdf:501 msgid "_Redo" msgstr "_Opakovať" #: bin/gscan2pdf:502 msgid "Redo" msgstr "Znovu" #: bin/gscan2pdf:506 msgid "Cu_t" msgstr "Vys_trihnúť" #: bin/gscan2pdf:507 msgid "Cut selection" msgstr "Vystrihnúť označené" #: bin/gscan2pdf:511 msgid "_Copy" msgstr "_Kopírovať" #: bin/gscan2pdf:512 msgid "Copy selection" msgstr "Kopírovať označené" #: bin/gscan2pdf:516 msgid "_Paste" msgstr "_Vložiť" #: bin/gscan2pdf:517 msgid "Paste selection" msgstr "Vložiť označené" #: bin/gscan2pdf:521 msgid "_Delete" msgstr "O_dstrániť" #: bin/gscan2pdf:522 msgid "Delete selected pages" msgstr "Odstrániť označené strany" #: bin/gscan2pdf:526 msgid "_Renumber" msgstr "P_rečíslovať" #: bin/gscan2pdf:527 msgid "Renumber pages" msgstr "Prečíslovať strany" #: bin/gscan2pdf:529 bin/gscan2pdf:679 msgid "_Select" msgstr "_Výber" #: bin/gscan2pdf:532 msgid "_All" msgstr "_Všetko" #: bin/gscan2pdf:533 msgid "Select all pages" msgstr "Vybrať všetky strany" #: bin/gscan2pdf:536 msgid "_Odd" msgstr "_Nepárne" #: bin/gscan2pdf:537 msgid "Select all odd-numbered pages" msgstr "Vybrať všetky nepárne strany" #: bin/gscan2pdf:541 msgid "_Even" msgstr "Párn_e" #: bin/gscan2pdf:542 msgid "Select all evenly-numbered pages" msgstr "Vybrať všetky párne strany" #: bin/gscan2pdf:547 msgid "_Blank" msgstr "_Prázdne" #: bin/gscan2pdf:548 msgid "Select pages with low standard deviation" msgstr "Vybrať strany s nízkou štandardnou odchýlkou" #: bin/gscan2pdf:552 msgid "_Dark" msgstr "_Tmavé" #: bin/gscan2pdf:553 msgid "Select dark pages" msgstr "Vybrať tmavé strany" #: bin/gscan2pdf:558 msgid "_Modified" msgstr "_Upravené" #: bin/gscan2pdf:560 msgid "Select modified pages since last OCR" msgstr "Vybrať upravené stránky od posledného OCR" #: bin/gscan2pdf:565 msgid "_No OCR" msgstr "_Bez OCR" #: bin/gscan2pdf:566 msgid "Select pages with no OCR output" msgstr "Vybrať stránky bez výstupu OCR" #: bin/gscan2pdf:570 msgid "_Clear OCR" msgstr "_Zmazať OCR" #: bin/gscan2pdf:571 msgid "Clear OCR output from selected pages" msgstr "Zmazať výstup OCR z vybraných stránok" #: bin/gscan2pdf:575 msgid "Propert_ies" msgstr "Vlastnost_i" #: bin/gscan2pdf:576 msgid "Edit image properties" msgstr "Upraviť vlastnosti obrázka" #: bin/gscan2pdf:580 msgid "Prefere_nces" msgstr "Nastave_nia" #: bin/gscan2pdf:581 msgid "Edit preferences" msgstr "Upraviť nastavenia" #: bin/gscan2pdf:585 msgid "_View" msgstr "_Zobrazenie" #: bin/gscan2pdf:588 msgid "Zoom _100%" msgstr "Zväčšenie _100%" #: bin/gscan2pdf:589 msgid "Zoom to 100%" msgstr "Zväčšiť na 100%" #: bin/gscan2pdf:593 msgid "Zoom to _fit" msgstr "Prispôsobiť _veľkosť" #: bin/gscan2pdf:594 msgid "Zoom to fit" msgstr "Prispôsobiť veľkosť zobrazenia" #: bin/gscan2pdf:598 msgid "Zoom _in" msgstr "Priblíž_iť" #: bin/gscan2pdf:599 msgid "Zoom in" msgstr "Priblížiť zobrazenie" #: bin/gscan2pdf:603 msgid "Zoom _out" msgstr "V_zdialiť" #: bin/gscan2pdf:604 msgid "Zoom out" msgstr "Vzdialiť zobrazenie" #: bin/gscan2pdf:609 bin/gscan2pdf:611 msgid "Rotate 90 clockwise" msgstr "Otočiť o 90° v smere hodinových ručičiek" #: bin/gscan2pdf:617 bin/gscan2pdf:619 msgid "Rotate 180" msgstr "Otočiť o 180°" #: bin/gscan2pdf:625 bin/gscan2pdf:627 msgid "Rotate 90 anticlockwise" msgstr "Otočiť o 90° proti smere hodinových ručičiek" #: bin/gscan2pdf:632 msgid "_Tools" msgstr "Nás_troje" #: bin/gscan2pdf:634 msgid "_Threshold" msgstr "_Prah" #: bin/gscan2pdf:635 msgid "Change each pixel above this threshold to black" msgstr "Zmeniť každý pixel nad týmto prahom na čierny" #: bin/gscan2pdf:639 msgid "_Negate" msgstr "_Negovať" #: bin/gscan2pdf:640 msgid "Converts black to white and vice versa" msgstr "Konvertovať čiernu na bielu a naopak" #: bin/gscan2pdf:644 msgid "_Unsharp Mask" msgstr "Ne_ostrá maska" #: bin/gscan2pdf:645 msgid "Apply an unsharp mask" msgstr "Aplikovať neostrú masku" #: bin/gscan2pdf:648 msgid "_Crop" msgstr "_Orezať" #: bin/gscan2pdf:649 msgid "Crop pages" msgstr "Orezať strany" #: bin/gscan2pdf:653 msgid "_Clean up" msgstr "_Vyčistiť" #: bin/gscan2pdf:654 bin/gscan2pdf:4085 msgid "Clean up scanned images with unpaper" msgstr "Vyčistiť naskenované strany s programom „unpaper“" #: bin/gscan2pdf:657 msgid "_OCR" msgstr "_OCR" #: bin/gscan2pdf:658 msgid "Optical Character Recognition" msgstr "Optické rozoznávanie textu" #: bin/gscan2pdf:660 msgid "U_ser-defined" msgstr "V_lastné" #: bin/gscan2pdf:663 bin/gscan2pdf:665 msgid "_Help" msgstr "_Pomocník" #: bin/gscan2pdf:666 msgid "Help" msgstr "Pomocník" #: bin/gscan2pdf:668 msgid "_About" msgstr "_O aplikácii" #: bin/gscan2pdf:674 msgid "_Drag" msgstr "_Posúvanie" #: bin/gscan2pdf:675 msgid "Use the hand tool" msgstr "Použiť nástroj ruka" #: bin/gscan2pdf:680 msgid "Use the rectangular selection tool" msgstr "Použiť pravouhlý nástroj výberu" #: bin/gscan2pdf:684 msgid "_Paint" msgstr "_Maľovať" #: bin/gscan2pdf:685 msgid "Use the painter tool" msgstr "Použiť nástroj maľovanie" #: bin/gscan2pdf:965 lib/Gscan2pdf/Document.pm:2594 #: lib/Gscan2pdf/Document.pm:2595 msgid "Error copying page" msgstr "Chyba kopírovania strany" #: bin/gscan2pdf:1082 msgid "Image" msgstr "Obrázok" #: bin/gscan2pdf:1117 msgid "OCR Output" msgstr "Výstup OCR" #: bin/gscan2pdf:1174 msgid "Mode" msgstr "Režim" #: bin/gscan2pdf:1176 msgid "Lineart" msgstr "Čiarová grafika" #: bin/gscan2pdf:1177 msgid "Grayscale" msgstr "Odtiene šedej" #: bin/gscan2pdf:1178 msgid "Gray" msgstr "Šedé" #: bin/gscan2pdf:1179 msgid "Color" msgstr "Farebné" #: bin/gscan2pdf:1180 msgid "Black & White" msgstr "Čiernobiele" #: bin/gscan2pdf:1181 msgid "True Gray" msgstr "Skutočne šedé" #: bin/gscan2pdf:1182 msgid "Binary" msgstr "Binárne" #: bin/gscan2pdf:1183 bin/gscan2pdf:1242 bin/gscan2pdf:1243 msgid "Auto" msgstr "Automaticky" #: bin/gscan2pdf:1184 msgid "Halftone" msgstr "Polotónovanie" #: bin/gscan2pdf:1185 msgid "24bit Color" msgstr "24bitová farba" #: bin/gscan2pdf:1189 bin/gscan2pdf:2547 bin/gscan2pdf:2644 msgid "Compression" msgstr "Kompresia" #: bin/gscan2pdf:1191 bin/gscan2pdf:2539 bin/gscan2pdf:2636 msgid "None" msgstr "Žiadna" #: bin/gscan2pdf:1192 bin/gscan2pdf:2537 bin/gscan2pdf:2601 bin/gscan2pdf:2622 msgid "JPEG" msgstr "JPEG" #: bin/gscan2pdf:1195 bin/gscan2pdf:8127 msgid "Resolution" msgstr "Rozlíšenie" #: bin/gscan2pdf:1196 msgid "Brightness" msgstr "Jas" #: bin/gscan2pdf:1197 msgid "Gain" msgstr "Zisk" #: bin/gscan2pdf:1198 msgid "Contrast" msgstr "Kontrast" #: bin/gscan2pdf:1199 bin/gscan2pdf:6406 bin/gscan2pdf:6417 bin/gscan2pdf:6620 msgid "Threshold" msgstr "Prah" #: bin/gscan2pdf:1201 msgid "Speed" msgstr "Rýchlosť" #: bin/gscan2pdf:1203 bin/gscan2pdf:1210 bin/gscan2pdf:1217 bin/gscan2pdf:1224 #: bin/gscan2pdf:1231 msgid "Yes" msgstr "Áno" #: bin/gscan2pdf:1204 bin/gscan2pdf:1211 bin/gscan2pdf:1218 bin/gscan2pdf:1225 #: bin/gscan2pdf:1232 msgid "No" msgstr "Nie" #: bin/gscan2pdf:1208 msgid "Batch scan" msgstr "Dávkové skenovanie" #: bin/gscan2pdf:1215 bin/gscan2pdf:1222 msgid "Wait for button" msgstr "Čakať na tlačidlo" #: bin/gscan2pdf:1229 msgid "Cache calibration" msgstr "Kalibrácia vyrovnávacej pamäte (cache)" #: bin/gscan2pdf:1236 msgid "Source" msgstr "Zdroj" #: bin/gscan2pdf:1238 msgid "Normal" msgstr "Normálne" #: bin/gscan2pdf:1239 msgid "ADF" msgstr "ADF" #: bin/gscan2pdf:1240 msgid "Automatic Document Feeder" msgstr "Automatický podávač dokumentu" #: bin/gscan2pdf:1241 msgid "XPA" msgstr "XPA" #: bin/gscan2pdf:1244 msgid "Flatbed" msgstr "Plochý" #: bin/gscan2pdf:1245 msgid "Transparency Adapter" msgstr "Adaptér na spracovanie transparentných predlôh" #: bin/gscan2pdf:1246 msgid "Transparency Unit" msgstr "Jednotka na spracovanie transparentných predlôh" #: bin/gscan2pdf:1249 bin/gscan2pdf:1251 msgid "Page Width" msgstr "Šírka strany" #: bin/gscan2pdf:1250 bin/gscan2pdf:1252 msgid "Page Height" msgstr "Výška strany" #: bin/gscan2pdf:1253 msgid "Top Overscan" msgstr "Horné preskenovanie" #: bin/gscan2pdf:1254 msgid "Bottom Overscan" msgstr "Dolné preskenovanie" #: bin/gscan2pdf:1256 bin/gscan2pdf:1263 msgid "ADF Mode" msgstr "Režim ADF" #: bin/gscan2pdf:1258 bin/gscan2pdf:1265 msgid "Simplex" msgstr "Simplex" #: bin/gscan2pdf:1259 bin/gscan2pdf:1266 msgid "Duplex" msgstr "Duplex" #: bin/gscan2pdf:1301 bin/gscan2pdf:1306 msgid "Pick crashed session to restore" msgstr "Vyberte poškodenú reláciu, ktorá sa má obnoviť" #: bin/gscan2pdf:1308 bin/gscan2pdf:2609 msgid "Session" msgstr "Relácia" #: bin/gscan2pdf:1338 #, perl-format msgid "" "Warning: unable to use %s for temporary storage. Defaulting to %s instead." msgstr "" "Upozornenie: nie je možné použiť %s ako dočasné úložisko. Použije sa miesto " "toho %s." #: bin/gscan2pdf:1441 msgid "GOCR" msgstr "GOCR" #: bin/gscan2pdf:1441 msgid "Process image with GOCR." msgstr "Spracovať obrázok programom GOCR." #: bin/gscan2pdf:1445 msgid "Tesseract" msgstr "Tesseract" #: bin/gscan2pdf:1446 msgid "Process image with Tesseract." msgstr "Spracovať obrázok programom Tesseract" #: bin/gscan2pdf:1450 msgid "Ocropus" msgstr "Ocropus" #: bin/gscan2pdf:1450 msgid "Process image with Ocropus." msgstr "Spracovať obrázok pomocou systému Ocropus." #: bin/gscan2pdf:1454 msgid "Cuneiform" msgstr "Cuneiform" #: bin/gscan2pdf:1455 msgid "Process image with Cuneiform." msgstr "Spracovať obrázok pomocou systému Cuneiform." #: bin/gscan2pdf:1461 msgid "Save image and Save as PDF both require imagemagick\n" msgstr "Ukladanie obrázkov a PDF vyžaduje imagemagick\n" #: bin/gscan2pdf:1465 msgid "Save image requires libtiff\n" msgstr "Ukladanie obrázkov vyžaduje libtiff\n" #: bin/gscan2pdf:1469 msgid "Save as DjVu requires djvulibre-bin\n" msgstr "Ukladanie DjVu vyžaduje djvulibre-bin\n" #: bin/gscan2pdf:1473 msgid "Email as PDF requires xdg-email\n" msgstr "Odoslanie PDF e-mailom vyžaduje xdg-email\n" #: bin/gscan2pdf:1518 msgid "The rotating options and unpaper support require perlmagick\n" msgstr "Voľba otáčanie a unpaper vyžaduje perlmagick\n" #: bin/gscan2pdf:1524 msgid "unpaper missing\n" msgstr "Aplikácia unpaper chýba\n" #: bin/gscan2pdf:1534 msgid "OCR requires gocr, tesseract, ocropus, or cuneiform\n" msgstr "OCR vyžaduje nástroj gocr, tesseract, ocropus alebo cuneiform\n" #: bin/gscan2pdf:1539 msgid "Warning: missing packages" msgstr "Varovanie: chýbajúce balíčky" #: bin/gscan2pdf:1544 msgid "Don't show this message again" msgstr "Túto správu viac nezobrazovať" #: bin/gscan2pdf:1753 msgid "" "Some pages have not been saved.\n" "Do you really want to clear all pages?" msgstr "" "Niektoré strany neboli uložené.\n" "Naozaj chcete zmazať strany?" #: bin/gscan2pdf:1828 bin/gscan2pdf:1858 #, perl-format msgid "Process %i of %i (%s)" msgstr "Spracovanie %i z %i (%s)" #: bin/gscan2pdf:1867 #, perl-format msgid "Process %i of %i" msgstr "Spracovanie %i z %i" #: bin/gscan2pdf:1895 msgid "Open image" msgstr "Otvoriť obrázok" #: bin/gscan2pdf:1903 bin/gscan2pdf:2797 bin/gscan2pdf:3113 msgid "Image files" msgstr "Súbory obrázkov" #: bin/gscan2pdf:1940 msgid "Pages to extract" msgstr "Extrahovať strany" #: bin/gscan2pdf:1943 bin/gscan2pdf:2117 bin/gscan2pdf:2586 bin/gscan2pdf:3353 #: bin/gscan2pdf:3494 bin/gscan2pdf:4104 bin/gscan2pdf:4514 bin/gscan2pdf:5825 #: bin/gscan2pdf:6409 bin/gscan2pdf:6495 bin/gscan2pdf:6565 bin/gscan2pdf:6737 #: bin/gscan2pdf:7011 bin/gscan2pdf:7274 bin/gscan2pdf:7757 bin/gscan2pdf:8123 #: lib/Gscan2pdf/Dialog.pm:56 lib/Gscan2pdf/Dialog/Renumber.pm:80 #: lib/Gscan2pdf/Scanner/Dialog.pm:201 t/05_Dialog.t:28 msgid "vbox" msgstr "vbox" #: bin/gscan2pdf:1946 msgid "First page to extract" msgstr "Prvá strana na extrakciu" #: bin/gscan2pdf:1953 msgid "Last page to extract" msgstr "Posledná strana na extrakciu" #: bin/gscan2pdf:2042 lib/Gscan2pdf/Dialog/Renumber.pm:83 msgid "Page Range" msgstr "Rozsah strán" #: bin/gscan2pdf:2092 msgid "Metadata" msgstr "Metadáta" #: bin/gscan2pdf:2101 msgid "Date" msgstr "Dátum" #: bin/gscan2pdf:2114 msgid "Select Date" msgstr "Vybrať dátum" #: bin/gscan2pdf:2136 msgid "Today" msgstr "Dnes" #: bin/gscan2pdf:2150 msgid "Year-Month-Day" msgstr "Rok-Mesiac-Deň" #: bin/gscan2pdf:2156 msgid "Document author" msgstr "Autor dokumentu" #: bin/gscan2pdf:2165 msgid "Title" msgstr "Názov" #: bin/gscan2pdf:2174 msgid "Subject" msgstr "Predmet" #: bin/gscan2pdf:2183 msgid "Keywords" msgstr "Kľúčové slová" #: bin/gscan2pdf:2245 msgid "Editing text" msgstr "Upravovanie textu" #: bin/gscan2pdf:2252 bin/gscan2pdf:2258 bin/gscan2pdf:2332 msgid "text" msgstr "text" #: bin/gscan2pdf:2352 msgid "PDF filename" msgstr "Názov PDF súboru" #: bin/gscan2pdf:2381 msgid "PDF files" msgstr "Súbory PDF" #: bin/gscan2pdf:2405 bin/gscan2pdf:2823 bin/gscan2pdf:2880 bin/gscan2pdf:2976 #: bin/gscan2pdf:3035 bin/gscan2pdf:3087 bin/gscan2pdf:3275 #, perl-format msgid "File %s is read-only" msgstr "Súbor %s je iba na čítanie." #: bin/gscan2pdf:2482 msgid "JPEG Quality" msgstr "Kvalita JPEG" #: bin/gscan2pdf:2496 msgid "Downsample to" msgstr "Prevzorkovať na" #: bin/gscan2pdf:2501 msgid "PPI" msgstr "PPI" #: bin/gscan2pdf:2520 msgid "Automatic" msgstr "Automaticky" #: bin/gscan2pdf:2521 msgid "Let gscan2pdf which type of compression to use." msgstr "Nech gscan2pdf vyberie metódu kompresie" #: bin/gscan2pdf:2524 bin/gscan2pdf:2616 msgid "LZW" msgstr "LZW" #: bin/gscan2pdf:2525 bin/gscan2pdf:2617 msgid "Compress output with Lempel-Ziv & Welch encoding." msgstr "Komprimovať výstup s Lempel-Ziv & Welch kódovaním." #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Zip" msgstr "Zip" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Compress output with deflate encoding." msgstr "Komprimovať výstup s kódováním deflate." #: bin/gscan2pdf:2529 bin/gscan2pdf:2624 msgid "Packbits" msgstr "Packbits" #: bin/gscan2pdf:2530 bin/gscan2pdf:2625 msgid "Compress output with Packbits encoding." msgstr "Komprimovať výstup s Packbits kódovaním." #: bin/gscan2pdf:2536 bin/gscan2pdf:2604 msgid "PNG" msgstr "PNG" #: bin/gscan2pdf:2536 msgid "Compress output with PNG encoding." msgstr "Komprimovať výstup s PNG kódovaním." #: bin/gscan2pdf:2537 bin/gscan2pdf:2622 msgid "Compress output with JPEG encoding." msgstr "Komprimovať výstup s JPEG kódovaním." #: bin/gscan2pdf:2540 bin/gscan2pdf:2637 msgid "Use no compression algorithm on output." msgstr "Nekomprimovať výstup." #: bin/gscan2pdf:2594 msgid "Image type" msgstr "Typ obrázka" #: bin/gscan2pdf:2598 msgid "PDF" msgstr "PDF" #: bin/gscan2pdf:2598 msgid "Portable Document Format" msgstr "Formát prenositeľných dokumentov (PDF)" #: bin/gscan2pdf:2599 msgid "GIF" msgstr "GIF" #: bin/gscan2pdf:2599 msgid "CompuServe graphics interchange format" msgstr "CompuServe graphics interchange formát" #: bin/gscan2pdf:2602 msgid "Joint Photographic Experts Group JFIF format" msgstr "Joint Photographic Experts Group JFIF formát" #: bin/gscan2pdf:2604 msgid "Portable Network Graphics" msgstr "Portable Network Graphics (PNG)" #: bin/gscan2pdf:2605 msgid "PNM" msgstr "PNM" #: bin/gscan2pdf:2605 msgid "Portable anymap" msgstr "Portable anymap" #: bin/gscan2pdf:2606 msgid "PS" msgstr "PS" #: bin/gscan2pdf:2606 msgid "Postscript" msgstr "Postscript" #: bin/gscan2pdf:2607 msgid "TIFF" msgstr "TIFF" #: bin/gscan2pdf:2607 msgid "Tagged Image File Format" msgstr "Tagged Image File Format (TIFF)" #: bin/gscan2pdf:2608 msgid "Text" msgstr "Text" #: bin/gscan2pdf:2608 msgid "Plain text" msgstr "Obyčajný text" #: bin/gscan2pdf:2609 msgid "gscan2pdf session file" msgstr "súbor s gscan2pdf reláciou" #: bin/gscan2pdf:2611 msgid "DjVu" msgstr "DjVu" #: bin/gscan2pdf:2611 msgid "Deja Vu" msgstr "Copy text \t Deja Vu" #: bin/gscan2pdf:2628 msgid "G3" msgstr "G3" #: bin/gscan2pdf:2629 msgid "Compress output with CCITT Group 3 encoding." msgstr "Komprimovať výstup s CCITT Group 3 kódovaním." #: bin/gscan2pdf:2632 msgid "G4" msgstr "G4" #: bin/gscan2pdf:2633 msgid "Compress output with CCITT Group 4 encoding." msgstr "Komprimovať výstup s CCITT Group 4 kódovaním." #: bin/gscan2pdf:2649 msgid "tiff" msgstr "tiff" #: bin/gscan2pdf:2681 msgid "Font for non-ASCII text" msgstr "Písmo pre ne-ASCII text" #: bin/gscan2pdf:2790 msgid "TIFF filename" msgstr "názov TIFF súboru" #: bin/gscan2pdf:2848 msgid "Text filename" msgstr "názov textového súboru" #: bin/gscan2pdf:2856 msgid "Text files" msgstr "Textové súbory" #: bin/gscan2pdf:2944 msgid "PS filename" msgstr "Názov PS súbora" #: bin/gscan2pdf:2951 msgid "Postscript files" msgstr "Súbory Postskriptu" #: bin/gscan2pdf:3003 msgid "gscan2pdf session filename" msgstr "Názov súbora s gscan2pdf reláciou" #: bin/gscan2pdf:3010 msgid "gscan2pdf session files" msgstr "súbory relácií gscan2pdf" #: bin/gscan2pdf:3093 #, perl-format msgid "" "File %s exists.\n" "Really overwrite?" msgstr "" "Súbor %s existuje.\n" "Naozaj ho chcete prepísať?" #: bin/gscan2pdf:3106 msgid "Image filename" msgstr "Názov obrázkového súboru" #: bin/gscan2pdf:3245 msgid "DjVu filename" msgstr "Názov DjVu súbora" #: bin/gscan2pdf:3252 msgid "DjVu files" msgstr "Súbory DjVu" #: bin/gscan2pdf:3349 msgid "Email as PDF" msgstr "Odoslať e-mailom ako PDF" #: bin/gscan2pdf:3454 msgid "Error creating email" msgstr "Chyba pri vytváraní emailu" #: bin/gscan2pdf:3490 bin/gscan2pdf:4313 msgid "Scan Document" msgstr "Skenovať dokument" #: bin/gscan2pdf:3507 lib/Gscan2pdf/Scanner/Dialog.pm:248 msgid "Page Options" msgstr "Voľby strany" #: bin/gscan2pdf:3510 lib/Gscan2pdf/Scanner/Dialog.pm:251 msgid "# Pages" msgstr "# Strany" #: bin/gscan2pdf:3519 lib/Gscan2pdf/PageRange.pm:34 #: lib/Gscan2pdf/Scanner/Dialog.pm:261 msgid "All" msgstr "Všetky" #: bin/gscan2pdf:3520 lib/Gscan2pdf/Scanner/Dialog.pm:262 msgid "Scan all pages" msgstr "Skenovať všetky stany" #: bin/gscan2pdf:3532 bin/gscan2pdf:3537 lib/Gscan2pdf/Scanner/Dialog.pm:274 #: lib/Gscan2pdf/Scanner/Dialog.pm:279 msgid "Set number of pages to scan" msgstr "Nastaviť počet strán pre skenovanie" #: bin/gscan2pdf:3550 lib/Gscan2pdf/Scanner/Dialog.pm:308 msgid "Extended page numbering" msgstr "Rozšírené číslovanie strán" #: bin/gscan2pdf:3554 lib/Gscan2pdf/Scanner/Dialog.pm:312 msgid "Page number" msgstr "Číslo strany" #: bin/gscan2pdf:3563 lib/Gscan2pdf/Dialog/Renumber.pm:111 #: lib/Gscan2pdf/Scanner/Dialog.pm:321 msgid "Start" msgstr "Začiatok" #: bin/gscan2pdf:3572 lib/Gscan2pdf/Dialog/Renumber.pm:132 #: lib/Gscan2pdf/Scanner/Dialog.pm:340 msgid "Increment" msgstr "Pripočítať" #: bin/gscan2pdf:3604 lib/Gscan2pdf/Scanner/Dialog.pm:372 msgid "Source document" msgstr "Zdrojový dokument" #: bin/gscan2pdf:3611 lib/Gscan2pdf/Scanner/Dialog.pm:379 msgid "Single sided" msgstr "Jedna strana" #: bin/gscan2pdf:3612 lib/Gscan2pdf/Scanner/Dialog.pm:380 msgid "Source document is single-sided" msgstr "Zdrojový dokument samostatné strany" #: bin/gscan2pdf:3622 lib/Gscan2pdf/Scanner/Dialog.pm:390 msgid "Double sided" msgstr "Dvojstránka" #: bin/gscan2pdf:3623 lib/Gscan2pdf/Scanner/Dialog.pm:391 msgid "Source document is double-sided" msgstr "Zdrojový dokument má dvojstránky" #: bin/gscan2pdf:3629 lib/Gscan2pdf/Scanner/Dialog.pm:397 msgid "Side to scan" msgstr "Skenovať stranu" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Facing" msgstr "Párne" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Reverse" msgstr "Obrátene" #: bin/gscan2pdf:3655 lib/Gscan2pdf/Scanner/Dialog.pm:418 msgid "Sets which side of a double-sided document is scanned" msgstr "Nastaví, ktorá strana z dvojstránky sa bude skenovať" #: bin/gscan2pdf:3719 msgid "Scan Options" msgstr "Voľby skenovania" #: bin/gscan2pdf:3722 msgid "Device-dependent options" msgstr "Nastavenia závislé na zariadení" #: bin/gscan2pdf:3729 lib/Gscan2pdf/Scanner/Dialog.pm:458 msgid "Scan profiles" msgstr "Profily skenovania" #: bin/gscan2pdf:3778 bin/gscan2pdf:3784 lib/Gscan2pdf/Scanner/Dialog.pm:479 #: lib/Gscan2pdf/Scanner/Dialog.pm:485 msgid "Name of scan profile" msgstr "Názov skenovacieho profilu" #: bin/gscan2pdf:3828 lib/Gscan2pdf/Scanner/Dialog.pm:518 msgid "Scan" msgstr "Skenovať" #: bin/gscan2pdf:3866 msgid "Must scan facing pages first" msgstr "Najskôr sa musia naskenovať párne strany" #: bin/gscan2pdf:3977 msgid "Post-processing" msgstr "Post-processing" #: bin/gscan2pdf:3986 bin/gscan2pdf:4008 msgid "Rotate" msgstr "Otočiť" #: bin/gscan2pdf:3987 bin/gscan2pdf:4009 msgid "Rotate image after scanning" msgstr "Otočiť stranu po naskenovaní" #: bin/gscan2pdf:3990 msgid "Both sides" msgstr "Obe strany" #: bin/gscan2pdf:3990 msgid "Both sides." msgstr "Obe strany." #: bin/gscan2pdf:3991 msgid "Facing side" msgstr "Lícna strana" #: bin/gscan2pdf:3991 msgid "Facing side." msgstr "Lícna strana." #: bin/gscan2pdf:3992 msgid "Reverse side" msgstr "Rubová strana" #: bin/gscan2pdf:3992 msgid "Reverse side." msgstr "Rubová strana" #: bin/gscan2pdf:3995 bin/gscan2pdf:4013 msgid "Select side to rotate" msgstr "Vybertne stranu pre otočenie" #: bin/gscan2pdf:3998 msgid "90" msgstr "90" #: bin/gscan2pdf:3998 msgid "Rotate image 90 degrees clockwise." msgstr "Otočiť obrázok o 90 stupňov v smere hodinových ručičiek." #: bin/gscan2pdf:3999 msgid "180" msgstr "180" #: bin/gscan2pdf:3999 msgid "Rotate image 180 degrees clockwise." msgstr "Otočiť obrázok o 180 stupňov." #: bin/gscan2pdf:4000 msgid "270" msgstr "270" #: bin/gscan2pdf:4000 msgid "Rotate image 90 degrees anticlockwise." msgstr "Otočiť obrázok o 90 stupňov proti smeru hodinových ručičiek." #: bin/gscan2pdf:4003 bin/gscan2pdf:4016 msgid "Select direction of rotation" msgstr "Vybrať smer otočenia" #: bin/gscan2pdf:4083 msgid "Clean up images" msgstr "Vyčistiť obrázky" #: bin/gscan2pdf:4094 msgid "Options" msgstr "Voľby" #: bin/gscan2pdf:4095 msgid "Set unpaper options" msgstr "Nastaviť unpaper voľby" #: bin/gscan2pdf:4101 msgid "unpaper options" msgstr "" #: bin/gscan2pdf:4136 bin/gscan2pdf:4137 msgid "OCR scanned pages" msgstr "OCR naskenovaných strán" #: bin/gscan2pdf:4151 msgid "Select OCR engine" msgstr "Vyberte OCR aplikáciu" #: bin/gscan2pdf:4210 lib/Gscan2pdf/Scanner/Dialog.pm:634 msgid "Fetching list of devices" msgstr "Získava sa zoznam zariadení" #: bin/gscan2pdf:4225 lib/Gscan2pdf/Scanner/Dialog.pm:654 msgid "No devices found" msgstr "Nenašli sa žiadne zariadenia" #: bin/gscan2pdf:4367 bin/gscan2pdf:4732 bin/gscan2pdf:4777 bin/gscan2pdf:5214 #: lib/Gscan2pdf/Scanner/Dialog.pm:343 lib/Gscan2pdf/Scanner/Dialog.pm:348 #: t/061_Scanner_Dialog.t:38 t/061_Scanner_Dialog.t:95 msgid "page-number-increment" msgstr "" #: bin/gscan2pdf:4374 bin/gscan2pdf:4729 bin/gscan2pdf:4730 bin/gscan2pdf:4776 #: bin/gscan2pdf:5213 lib/Gscan2pdf/Scanner/Dialog.pm:361 #: t/061_Scanner_Dialog.t:37 msgid "page-number-start" msgstr "" #: bin/gscan2pdf:4663 lib/Gscan2pdf/Scanner/Dialog.pm:210 msgid "Device" msgstr "Zariadenie" #: bin/gscan2pdf:4671 lib/Gscan2pdf/Scanner/Dialog.pm:213 msgid "Rescan for devices" msgstr "Znovu vyhľadať zariadenia" #: bin/gscan2pdf:4694 lib/Gscan2pdf/Scanner/Dialog.pm:237 msgid "Sets the device to be used for the scan" msgstr "Nastaví zariadenie, ktoré sa použije pre skenovanie" #: bin/gscan2pdf:4780 lib/Gscan2pdf/Scanner/Dialog.pm:300 #: t/061_Scanner_Dialog.t:35 msgid "num-pages" msgstr "" #: bin/gscan2pdf:4821 msgid "Scanning" msgstr "Skenovanie" #: bin/gscan2pdf:4974 msgid "Unable to load image" msgstr "Nepodarilo sa načítať obrázok" #: bin/gscan2pdf:5004 msgid "print-pages" msgstr "" #: bin/gscan2pdf:5008 msgid "page-ranges" msgstr "" #: bin/gscan2pdf:5405 msgid "Patches gratefully received from:" msgstr "Záplaty boli vďačne prijaté od:" #: bin/gscan2pdf:5407 msgid "To aid the scan-to-PDF process" msgstr "Pomoc pri spracovaní skenov do PDF" #: bin/gscan2pdf:5408 msgid "Copyright 2006--2012 Jeffrey Ratcliffe" msgstr "Autorské práva 2006--2012 Jeffrey Ratcliffe" #: bin/gscan2pdf:5492 bin/gscan2pdf:6028 msgid "The options cache seems to be empty. Reload device-dependent options?" msgstr "" "Vyrovnávacia pamäť volieb sa zdá byť prázdna. Znovu načítať voľby pre dané " "zariadenie?" #: bin/gscan2pdf:5519 bin/gscan2pdf:6054 msgid "Updating options" msgstr "Aktualizácia nastavení" #: bin/gscan2pdf:5571 msgid "Paper size" msgstr "Veľkosť papiera" #: bin/gscan2pdf:5572 bin/gscan2pdf:5672 bin/gscan2pdf:5840 bin/gscan2pdf:6769 msgid "Width" msgstr "Šírka" #: bin/gscan2pdf:5573 bin/gscan2pdf:5678 bin/gscan2pdf:5841 bin/gscan2pdf:6780 msgid "Height" msgstr "Výška" #: bin/gscan2pdf:5574 bin/gscan2pdf:5684 bin/gscan2pdf:5842 #: lib/Gscan2pdf/Unpaper.pm:124 lib/Gscan2pdf/Unpaper.pm:152 msgid "Left" msgstr "Vľavo" #: bin/gscan2pdf:5575 bin/gscan2pdf:5690 bin/gscan2pdf:5843 #: lib/Gscan2pdf/Unpaper.pm:129 lib/Gscan2pdf/Unpaper.pm:157 msgid "Top" msgstr "Hore" #: bin/gscan2pdf:5589 bin/gscan2pdf:5703 bin/gscan2pdf:6232 msgid "Manual" msgstr "Manuálne" #: bin/gscan2pdf:5590 bin/gscan2pdf:5700 msgid "Edit" msgstr "Upraviť" #: bin/gscan2pdf:5591 msgid "Selects or edits the paper size" msgstr "Vyberte alebo upravte veľkosť papiera" #: bin/gscan2pdf:5673 msgid "Width of scan area" msgstr "Šírka skenovacej oblasti" #: bin/gscan2pdf:5679 msgid "Height of scan area" msgstr "Výška skenovacej oblasti" #: bin/gscan2pdf:5685 msgid "Top-left x position of scan area" msgstr "Horná-ľavá x pozícia skenovacej oblasti" #: bin/gscan2pdf:5691 msgid "Top-left y position of scan area" msgstr "Horná-ľavá y pozícia skenovacej oblasti" #: bin/gscan2pdf:5822 msgid "Edit paper size" msgstr "Upraviť veľkosť papiera" #: bin/gscan2pdf:5839 msgid "Name" msgstr "Názov" #: bin/gscan2pdf:5893 msgid "Cannot delete all paper sizes" msgstr "Nie je možné zmazať všetky veľkosti papiera" #: bin/gscan2pdf:5955 msgid "" "The following paper sizes are too big to be scanned by the selected device:" msgstr "" "Nasledujúce veľkosti papiera sú príliš veľké, aby mohli byť naskenované na " "zvolenom zariadení:" #: bin/gscan2pdf:6419 bin/gscan2pdf:6605 msgid "%" msgstr "%" #: bin/gscan2pdf:6492 msgid "Negate" msgstr "Negovať" #: bin/gscan2pdf:6562 msgid "Unsharp mask" msgstr "Maska rozostrenia" #: bin/gscan2pdf:6573 msgid "Radius" msgstr "Polomer" #: bin/gscan2pdf:6575 bin/gscan2pdf:6592 bin/gscan2pdf:6747 bin/gscan2pdf:6759 #: bin/gscan2pdf:6771 bin/gscan2pdf:6782 msgid "pixels" msgstr "pixely" #: bin/gscan2pdf:6582 msgid "" "The radius of the Gaussian, in pixels, not counting the center pixel (0 = " "automatic)." msgstr "" "Polomer Gausiánu, v pixeloch, bez započítania stredného pixla (0 = " "automaticky)." #: bin/gscan2pdf:6590 msgid "Sigma" msgstr "Sigma" #: bin/gscan2pdf:6597 msgid "The standard deviation of the Gaussian." msgstr "Štandardná odchýlka Gausiánum" #: bin/gscan2pdf:6603 msgid "Amount" msgstr "Hodnota" #: bin/gscan2pdf:6612 msgid "" "The percentage of the difference between the original and the blur image " "that is added back into the original." msgstr "" "Percento rozdielu medzi originálnym a rozmazaným obrázkom, ktorý je pridaný " "späť do originálum" #: bin/gscan2pdf:6627 msgid "" "The threshold, as a fraction of QuantumRange, needed to apply the difference " "amount." msgstr "" #: bin/gscan2pdf:6733 msgid "Crop" msgstr "Orezať" #: bin/gscan2pdf:6745 msgid "x" msgstr "x" #: bin/gscan2pdf:6751 msgid "The x-position of the left hand edge of the crop." msgstr "" #: bin/gscan2pdf:6757 msgid "y" msgstr "y" #: bin/gscan2pdf:6763 msgid "The y-position of the top edge of the crop." msgstr "" #: bin/gscan2pdf:6774 msgid "The width of the crop." msgstr "Šírka orezania." #: bin/gscan2pdf:6785 msgid "The height of the crop." msgstr "Výška orezania." #: bin/gscan2pdf:6906 msgid "label" msgstr "menovka" #: bin/gscan2pdf:7007 msgid "unpaper" msgstr "unpaper" #: bin/gscan2pdf:7216 bin/gscan2pdf:7244 msgid "Language to recognise" msgstr "Jazyk pre rozoznávanie" #: bin/gscan2pdf:7227 msgid "English" msgstr "Anglický" #: bin/gscan2pdf:7270 msgid "OCR" msgstr "OCR - rozpoznávanie textu" #: bin/gscan2pdf:7279 msgid "OCR Engine" msgstr "OCR aplikácia" #: bin/gscan2pdf:7323 msgid "Start OCR" msgstr "Spustiť OCR" #: bin/gscan2pdf:7339 msgid "No page selected" msgstr "Nie sú označené strany" #: bin/gscan2pdf:7374 msgid "" "Some pages have not been saved.\n" "Do you really want to quit?" msgstr "" "Niektoré strany neboli uložené.\n" "Skutočne chcete skončiť?" #: bin/gscan2pdf:7432 #, perl-format msgid "" "The help viewer requires module Gtk2::Ex::PodViewer\n" "Alternatively, try: %s %s\n" "\n" msgstr "" "Zobrazovať pomocníka potrebuje modul Gtk2::Ex::PodViewer\n" "Alternatívne, skúste: %s %s\n" "\n" #: bin/gscan2pdf:7698 msgid "This operation cannot be undone. Are you sure?" msgstr "Túto operáciu nie je možné vziať späť. Chcete pokračovať?" #: bin/gscan2pdf:7753 msgid "Preferences" msgstr "Nastavenia" #: bin/gscan2pdf:7762 msgid "Frontend" msgstr "Rozhranie" #: bin/gscan2pdf:7766 msgid "libsane-perl" msgstr "" #: bin/gscan2pdf:7767 msgid "Scan using the perl bindings for SANE." msgstr "Skenovať použitím väzieb perl pre SANE." #: bin/gscan2pdf:7770 msgid "scanimage" msgstr "" #: bin/gscan2pdf:7771 msgid "Scan using the scanimage frontend." msgstr "Skenovať použitím rozhrania scanimage." #: bin/gscan2pdf:7775 msgid "scanimage-perl" msgstr "" #: bin/gscan2pdf:7776 msgid "Scan using the scanimage-perl frontend." msgstr "Skenovať použitím rozhrania scanimage-perl." #: bin/gscan2pdf:7779 msgid "scanadf-perl" msgstr "" #: bin/gscan2pdf:7780 msgid "Scan using the scanadf-perl frontend." msgstr "Skenovať použitím rozhrania scanadf-perl" #: bin/gscan2pdf:7785 msgid "scanadf" msgstr "" #: bin/gscan2pdf:7786 msgid "Scan using the scanadf frontend." msgstr "Skenovať použitím rozhrania scanadf." #: bin/gscan2pdf:7791 msgid "Cycle SANE handle after scan" msgstr "Cyklovať ovládanie SANE po skenovaní" #: bin/gscan2pdf:7814 msgid "Default filename for PDFs" msgstr "Predvolené názvy súborov PDF" #: bin/gscan2pdf:7820 msgid "" "%a\t author\n" "%t\t title\n" "%y\t document's year\n" "%Y\t today's year\n" "%m\t document's month\n" "%M\t today's month\n" "%d\t document's day\n" "%D\t today's day" msgstr "" "%a\t autor\n" "%t\t názov\n" "%y\t rok vydania dokumentu\n" "%Y\t aktuálny rok\n" "%m\t mesiac vydania dokumentu\n" "%M\t aktuálny mesiac\n" "%d\t deň vydania dokumentu\n" "%D\t aktuálny deň" #: bin/gscan2pdf:7830 msgid "Scan command prefix" msgstr "Predpona príkazu na skenovanie" #: bin/gscan2pdf:7839 msgid "Restore window settings on startup" msgstr "Obnoviť nastavenia okien po spustení" #: bin/gscan2pdf:7845 msgid "Cache device-dependent options" msgstr "Ukladať voľby zariadenia do vyrovnávacej pamäte" #: bin/gscan2pdf:7851 msgid "Clear device-dependent options cache" msgstr "Zmazať vyrovnávaciu pamäť volieb zariadenia" #: bin/gscan2pdf:7862 msgid "Temporary directory" msgstr "Dočasný adresár" #: bin/gscan2pdf:7867 msgid "Browse" msgstr "Prehliadať" #: bin/gscan2pdf:7871 msgid "Select temporary directory" msgstr "Vyberte dočasný adresár" #: bin/gscan2pdf:7888 msgid "Blank threshold" msgstr "Prah prázdnych stránok" #: bin/gscan2pdf:7893 msgid "Threshold used for selecting blank pages" msgstr "Prah použitý na výber prázdnych stránok" #: bin/gscan2pdf:7899 msgid "Dark threshold" msgstr "Prah tmavých stránok" #: bin/gscan2pdf:7904 msgid "Threshold used for selecting dark pages" msgstr "Prah použitý na výber tmavých stránok" #: bin/gscan2pdf:7910 msgid "OCR output" msgstr "Výstup OCR" #: bin/gscan2pdf:7915 msgid "Replace" msgstr "Nahradiť" #: bin/gscan2pdf:7917 msgid "" "Replace the contents of the text buffer with that from the OCR output." msgstr "Nahradiť obsah vyrovnávacej pamäte textu s výstupom OCR." #: bin/gscan2pdf:7920 msgid "Prepend" msgstr "Predradiť" #: bin/gscan2pdf:7921 msgid "Prepend the OCR output to the text buffer." msgstr "Predradiť výstup OCR do textového zásobníka." #: bin/gscan2pdf:7924 msgid "Append" msgstr "Pridať" #: bin/gscan2pdf:7925 msgid "Append the OCR output to the text buffer." msgstr "Pridať výstup OCR do vyrovnávacej pamäte textu." #: bin/gscan2pdf:7933 msgid "User-defined tools" msgstr "Vlastné nástroje" #: bin/gscan2pdf:7954 msgid "View files on saving" msgstr "Zobraziť súbory po uložení" #: bin/gscan2pdf:8000 msgid "" "You will have to restart gscanp2df for changes to the temporary directory to " "take effect." msgstr "" "Musíte reštartovať gscanp2df, aby zmeny v dočasnom priečinku boli vykonané" #: bin/gscan2pdf:8092 msgid "" "Use %i and %o for the input and output filenames respectively, or a single " "%i if the image is to be modified in-place.\n" "\n" "The other variable available is:\n" "\n" "%r resolution" msgstr "" "Použite %i a %o pre rešpektujúc vystupné a výstupné názvy súborov, alebo iba " "%i ak budú obrázky upravené na mieste.\n" "\n" "Ďalšou dostupnou premennou je:\n" "\n" "%r rozlíšenie" #: bin/gscan2pdf:8119 msgid "Properties" msgstr "Vlastnosti" #: lib/Gscan2pdf/Dialog.pm:63 lib/Gscan2pdf/Dialog.pm:79 t/05_Dialog.t:25 msgid "hide-on-delete" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:78 lib/Gscan2pdf/Dialog/Renumber.pm:162 msgid "Renumber" msgstr "Prečíslovať" #: lib/Gscan2pdf/Dialog/Renumber.pm:98 lib/Gscan2pdf/Dialog/Renumber.pm:207 #: lib/Gscan2pdf/Dialog/Renumber.pm:244 msgid "range" msgstr "rozsah" #: lib/Gscan2pdf/Dialog/Renumber.pm:102 msgid "Page numbering" msgstr "Číslovanie strán" #: lib/Gscan2pdf/Dialog/Renumber.pm:105 lib/Gscan2pdf/Scanner/Dialog.pm:254 msgid "border_width" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:126 lib/Gscan2pdf/Dialog/Renumber.pm:192 #: lib/Gscan2pdf/Dialog/Renumber.pm:242 t/07_Dialog_Renumber.t:33 #: t/07_Dialog_Renumber.t:45 t/07_Dialog_Renumber.t:59 #: t/07_Dialog_Renumber.t:66 msgid "start" msgstr "začiatok" #: lib/Gscan2pdf/Dialog/Renumber.pm:147 lib/Gscan2pdf/Dialog/Renumber.pm:193 #: lib/Gscan2pdf/Dialog/Renumber.pm:243 t/07_Dialog_Renumber.t:34 #: t/07_Dialog_Renumber.t:46 t/07_Dialog_Renumber.t:60 #: t/07_Dialog_Renumber.t:67 msgid "increment" msgstr "postup" #: lib/Gscan2pdf/Dialog/Renumber.pm:205 lib/Gscan2pdf/Dialog/Renumber.pm:241 msgid "document" msgstr "dokument" #: lib/Gscan2pdf/Dialog/Renumber.pm:295 msgid "" "The current settings would result in duplicate page numbers. Please select " "new start and increment values." msgstr "" "Aktuálne nastavenia budú mať za následok zdvojené čísla strán. Prosím, " "vyberte nové hodnoty pre začiatok a postup." #: lib/Gscan2pdf/Document.pm:83 msgid "Thumbnails" msgstr "Miniatúry" #: lib/Gscan2pdf/Document.pm:1502 msgid "Unknown DjVu file structure. Please contact the author." msgstr "Neznáma štruktúra súborov DjVu. Prosím, kontaktuje autora." #: lib/Gscan2pdf/Document.pm:1558 #, perl-format msgid "%s is not a recognised image type" msgstr "%s nie je rozpoznaným typom obrázku." #: lib/Gscan2pdf/Document.pm:1580 lib/Gscan2pdf/Document.pm:1637 #, perl-format msgid "Importing page %i of %i" msgstr "Importuje sa stránka %i z %i" #: lib/Gscan2pdf/Document.pm:1613 msgid "Error extracting images from PDF" msgstr "Chyba pri extrahovaní obrázkov z PDF" #: lib/Gscan2pdf/Document.pm:1692 msgid "Setting up PDF" msgstr "Nastavuje sa PDF" #: lib/Gscan2pdf/Document.pm:1703 #, perl-format msgid "Saving page %i of %i" msgstr "Ukladá sa stránka %i z %i" #: lib/Gscan2pdf/Document.pm:1814 lib/Gscan2pdf/Document.pm:2136 #, perl-format msgid "Error compressing image: %s" msgstr "Chyba pri komprimovaní obrázku: %s" #: lib/Gscan2pdf/Document.pm:1919 #, perl-format msgid "Error creating PDF image object: %s" msgstr "Chyba pri vytváraní objektu obrázku PDF: %s" #: lib/Gscan2pdf/Document.pm:1930 #, perl-format msgid "Error embedding file image in %s format to PDF: %s" msgstr "Chyba pri vkladaní súboru obrázka vo formáte %s do PDF: %s" #: lib/Gscan2pdf/Document.pm:1939 msgid "Closing PDF" msgstr "Uzatvára sa PDF" #: lib/Gscan2pdf/Document.pm:1955 #, perl-format msgid "Writing page %i of %i" msgstr "Zapisuje sa stránka %i z %i" #: lib/Gscan2pdf/Document.pm:2006 msgid "Error writing DjVu" msgstr "Chyba pri zapisovaní DjVu" #: lib/Gscan2pdf/Document.pm:2025 lib/Gscan2pdf/Document.pm:2227 #, perl-format msgid "Can't open file: %s" msgstr "Nedá sa otvoriť súbor: %s" #: lib/Gscan2pdf/Document.pm:2050 msgid "Error adding text layer to DjVu" msgstr "Chyba pri pridávaní textovej vrstvy do DjVu" #: lib/Gscan2pdf/Document.pm:2056 msgid "Closing DjVu" msgstr "Uzatvára sa DjVu" #: lib/Gscan2pdf/Document.pm:2063 msgid "Error closing DjVu" msgstr "Chyba pri uzatváraní DjVu" #: lib/Gscan2pdf/Document.pm:2078 #, perl-format msgid "Converting image %i of %i to TIFF" msgstr "Konvertuje sa obrázok %i z %i do formátu TIFF" #: lib/Gscan2pdf/Document.pm:2105 msgid "Error writing TIFF" msgstr "Chyba pri zapisovaní súboru TIFF" #: lib/Gscan2pdf/Document.pm:2121 msgid "Concatenating TIFFs" msgstr "Zlúčené obrázky TIFF" #: lib/Gscan2pdf/Document.pm:2140 msgid "Converting to PS" msgstr "Konvertuje sa do formátu PS" #: lib/Gscan2pdf/Document.pm:2200 lib/Gscan2pdf/Document.pm:2215 msgid "Error saving image" msgstr "Chyba pri ukladaní obrázka" #: lib/Gscan2pdf/Frontend/CLI.pm:158 #, perl-format msgid "Scanning %i pages..." msgstr "Skenuje sa %i stránok..." #: lib/Gscan2pdf/Frontend/CLI.pm:163 #, perl-format msgid "Scanning page %i..." msgstr "Skenovanie strany %i..." #: lib/Gscan2pdf/Frontend/CLI.pm:188 lib/Gscan2pdf/Frontend/CLI.pm:296 msgid "Scanner warming up" msgstr "Zahrievanie skenera" #: lib/Gscan2pdf/Frontend/CLI.pm:195 msgid "Document feeder out of documents" msgstr "V podávači nie sú dokumenty" #: lib/Gscan2pdf/Frontend/CLI.pm:212 lib/Gscan2pdf/Frontend/CLI.pm:325 msgid "Device busy" msgstr "Zariadenie je používané" #: lib/Gscan2pdf/Frontend/CLI.pm:218 lib/Gscan2pdf/Frontend/CLI.pm:330 msgid "Operation cancelled" msgstr "Operácia zrušená" #: lib/Gscan2pdf/Frontend/CLI.pm:223 lib/Gscan2pdf/Frontend/CLI.pm:336 msgid "Unknown message: " msgstr "Neznáma správa: " #: lib/Gscan2pdf/Page.pm:68 lib/Gscan2pdf/Page.pm:73 #, perl-format msgid "Error importing image %s: %s" msgstr "Chyba pri importovaní obrázka %s: %s" #: lib/Gscan2pdf/PageRange.pm:33 msgid "Selected" msgstr "Označené" #: lib/Gscan2pdf/PageRange.pm:58 msgid "active" msgstr "aktívne" #: lib/Gscan2pdf/Scanner/Dialog.pm:218 t/061_Scanner_Dialog.t:33 #: t/061_Scanner_Dialog.t:59 msgid "device-list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:496 t/061_Scanner_Dialog.t:139 #: t/061_Scanner_Dialog.t:174 t/062_Scanner_Dialog.t:50 #: t/062_Scanner_Dialog.t:75 msgid "current-scan-options" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:567 msgid "logger" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:650 t/05_Dialog.t:24 msgid "transient-for" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:716 msgid "device_list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:749 t/061_Scanner_Dialog.t:32 msgid "device" msgstr "zariadenie" #: lib/Gscan2pdf/Scanner/Dialog.pm:751 msgid "Opening device" msgstr "Otvára sa zariadenie" #: lib/Gscan2pdf/Scanner/Dialog.pm:760 msgid "Retrieving options" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:41 msgid "Layout" msgstr "Rozloženie" #: lib/Gscan2pdf/Unpaper.pm:44 msgid "Single" msgstr "Jednoduché" #: lib/Gscan2pdf/Unpaper.pm:46 msgid "One page per sheet, oriented upwards without rotation." msgstr "Jedna strana na hárok, orientovaná hore bez otočenia" #: lib/Gscan2pdf/Unpaper.pm:49 msgid "Double" msgstr "Dvojité" #: lib/Gscan2pdf/Unpaper.pm:51 msgid "" "Two pages per sheet, landscape orientation (one page on the left half, one " "page on the right half)." msgstr "" "Dve strany na hárok, orientácia na šírku (jedna strana v ľavej polovičke, " "druhá strana v pravej polovičke)." #: lib/Gscan2pdf/Unpaper.pm:59 msgid "# Output pages" msgstr "# Výstupné strany" #: lib/Gscan2pdf/Unpaper.pm:60 msgid "Number of pages to output." msgstr "Počet strán do výstupu" #: lib/Gscan2pdf/Unpaper.pm:68 msgid "No deskew" msgstr "Nekorigovať sklon" #: lib/Gscan2pdf/Unpaper.pm:69 msgid "Disable deskewing." msgstr "Zakázať korekciu sklonu" #: lib/Gscan2pdf/Unpaper.pm:74 msgid "No mask scan" msgstr "Bez skenovania masky" #: lib/Gscan2pdf/Unpaper.pm:75 msgid "Disable mask detection." msgstr "Zakázať detekciu masky" #: lib/Gscan2pdf/Unpaper.pm:80 msgid "No black filter" msgstr "Bez filtrovania čiernej" #: lib/Gscan2pdf/Unpaper.pm:81 msgid "Disable black area scan." msgstr "Zakázať skenovanie čiernej oblasti" #: lib/Gscan2pdf/Unpaper.pm:86 msgid "No gray filter" msgstr "Bez filtrovania šedej" #: lib/Gscan2pdf/Unpaper.pm:87 msgid "Disable gray area scan." msgstr "Zakázať skenovanie šedej oblasti" #: lib/Gscan2pdf/Unpaper.pm:92 msgid "No noise filter" msgstr "Bez filtrovania šumu" #: lib/Gscan2pdf/Unpaper.pm:93 msgid "Disable noise filter." msgstr "Zakázať filtrovanie šumu" #: lib/Gscan2pdf/Unpaper.pm:98 msgid "No blur filter" msgstr "Bez filtrovania šmúh" #: lib/Gscan2pdf/Unpaper.pm:99 msgid "Disable blur filter." msgstr "Zakázať filtrovanie šmúh" #: lib/Gscan2pdf/Unpaper.pm:104 msgid "No border scan" msgstr "Bez skenovania okrajov" #: lib/Gscan2pdf/Unpaper.pm:105 msgid "Disable border scanning." msgstr "Zakázať skenovanie okrajov" #: lib/Gscan2pdf/Unpaper.pm:110 msgid "No border align" msgstr "Bez zarovnania okrajov" #: lib/Gscan2pdf/Unpaper.pm:112 msgid "Disable aligning of the area detected by border scanning." msgstr "Zakáže zarovnávanie oblasti podľa detegovaných okrajov" #: lib/Gscan2pdf/Unpaper.pm:117 msgid "Deskew to edge" msgstr "Korigovať sklon podľa okraja" #: lib/Gscan2pdf/Unpaper.pm:119 msgid "" "Edges from which to scan for rotation. Each edge of a mask can be used to " "detect the mask's rotation. If multiple edges are specified, the average " "value will be used, unless the statistical deviation exceeds --deskew-scan-" "deviation." msgstr "" "Okraje, od ktorých sa bude detegovať otočenie. Každý okraj masky môže byť " "použitý na detekciu otočenia masky. Ak sú určené viaceré okraje, použije sa " "priemerná hodnota, pokiaľ štatistická odchýlka nepresiahne limit zadaný " "pomocou \"--deskew-scan-deviation\"." #: lib/Gscan2pdf/Unpaper.pm:125 msgid "Use 'left' for scanning from the left edge." msgstr "Použiť 'ľavý' pre detegovanie od ľavého okraja" #: lib/Gscan2pdf/Unpaper.pm:130 msgid "Use 'top' for scanning from the top edge." msgstr "Použiť 'horný' pre detegovanie od horného okraja" #: lib/Gscan2pdf/Unpaper.pm:134 lib/Gscan2pdf/Unpaper.pm:162 msgid "Right" msgstr "Vpravo" #: lib/Gscan2pdf/Unpaper.pm:135 msgid "Use 'right' for scanning from the right edge." msgstr "Použiť 'pravý' pre detegovanie od pravého okraja" #: lib/Gscan2pdf/Unpaper.pm:139 lib/Gscan2pdf/Unpaper.pm:167 msgid "Bottom" msgstr "Dole" #: lib/Gscan2pdf/Unpaper.pm:140 msgid "Use 'bottom' for scanning from the bottom." msgstr "Použiť 'dolný' pre detegovanie od dolného okraja" #: lib/Gscan2pdf/Unpaper.pm:147 msgid "Align to edge" msgstr "Zarovnať k okrajom" #: lib/Gscan2pdf/Unpaper.pm:148 msgid "Edge to which to align the page." msgstr "Okraj podľa ktorého sa zarovná strana." #: lib/Gscan2pdf/Unpaper.pm:153 msgid "Use 'left' to align to the left edge." msgstr "Použiť 'ľavý' pre zarovnanie od ľavého okraja" #: lib/Gscan2pdf/Unpaper.pm:158 msgid "Use 'top' to align to the top edge." msgstr "Použiť 'horný' pre zarovnanie od horného okraja" #: lib/Gscan2pdf/Unpaper.pm:163 msgid "Use 'right' to align to the right edge." msgstr "Použiť 'pravý' pre zarovnanie od pravého okraja" #: lib/Gscan2pdf/Unpaper.pm:168 msgid "Use 'bottom' to align to the bottom." msgstr "Použiť 'dolný' pre zarovnanie od dolného okraja" #: lib/Gscan2pdf/Unpaper.pm:174 msgid "Border margin" msgstr "Vzdialenosti okrajov" #: lib/Gscan2pdf/Unpaper.pm:178 msgid "Vertical margin" msgstr "Vertikálny okraj" #: lib/Gscan2pdf/Unpaper.pm:180 msgid "" "Vertical distance to keep from the sheet edge when aligning a border area." msgstr "" "Vertikálna vzdialenosť od kraja hárku, pri zarovnávaní okrajov oblasti." #: lib/Gscan2pdf/Unpaper.pm:189 msgid "Horizontal margin" msgstr "Horizontálny okraj" #: lib/Gscan2pdf/Unpaper.pm:191 msgid "" "Horizontal distance to keep from the sheet edge when aligning a border area." msgstr "" "Horizontálna vzdialenosť od kraja hárku, pri zarovnávaní okrajov oblasti." #: lib/Gscan2pdf/Unpaper.pm:202 msgid "White threshold" msgstr "Prah bielej" #: lib/Gscan2pdf/Unpaper.pm:204 msgid "Brightness ratio above which a pixel is considered white." msgstr "Pomer jasu, nad ktorý je pixel považovaný za biely." #: lib/Gscan2pdf/Unpaper.pm:212 msgid "Black threshold" msgstr "Prah čiernej" #: lib/Gscan2pdf/Unpaper.pm:214 msgid "" "Brightness ratio below which a pixel is considered black (non-gray). This is " "used by the gray-filter. This value is also used when converting a grayscale " "image to black-and-white mode." msgstr "" "Pomer jasu, pod ktorý je pixel považovaný za čierny (nie šedý). Toto sa " "využíva pri filtrovaní šedej farby. Táto hodnota sa tiež použije pri " "konvertovaní obrázka v odtieňoch šedej do čierno-bieleho režimu." #: lib/Gscan2pdf/Unpaper.pm:250 msgid "Deskew" msgstr "Korekcia sklonu" #: lib/Gscan2pdf/Unpaper.pm:280 msgid "Border" msgstr "Okraj" #: lib/Gscan2pdf/Unpaper.pm:337 msgid "Filters" msgstr "Filtre" #: t/05_Dialog.t:23 msgid "title" msgstr "názov" #: t/05_Dialog.t:26 t/05_Dialog.t:31 t/05_Dialog.t:32 t/05_Dialog.t:38 #: t/05_Dialog.t:39 msgid "border-width" msgstr "" #: t/061_Scanner_Dialog.t:34 msgid "dir" msgstr "adresár" #: t/061_Scanner_Dialog.t:36 msgid "max-pages" msgstr "" #: t/061_Scanner_Dialog.t:39 msgid "side-to-scan" msgstr "" #: t/061_Scanner_Dialog.t:40 t/061_Scanner_Dialog.t:185 msgid "available-scan-options" msgstr "" #: t/061_Scanner_Dialog.t:171 t/062_Scanner_Dialog.t:73 msgid "profile" msgstr "profil" gscan2pdf-1.2.3/po/gscan2pdf-ru.po0000644000175000017500000016070412243440507015254 0ustar jeffjeff# Russian translation for gscan2pdf # Copyright (c) 2006 Rosetta Contributors and Canonical Ltd 2006 # This file is distributed under the same license as the gscan2pdf package. # FIRST AUTHOR , 2006. # msgid "" msgstr "" "Project-Id-Version: gscan2pdf\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-10-25 08:12+0200\n" "PO-Revision-Date: 2013-10-14 11:16+0000\n" "Last-Translator: Aleksey Kabanov \n" "Language-Team: Russian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-19 09:22+0000\n" "X-Generator: Launchpad (build 16831)\n" #: bin/gscan2pdf:157 msgid "Error displaying help" msgstr "Ошибка при отображении справки" #: bin/gscan2pdf:201 msgid "" "Error: unable to load settings.\n" "Backing up settings\n" "Reverting to defaults" msgstr "" "Ошибка: не удается загрузить параметры программы\n" "Выполняется резервное копирование параметров\n" "Выполняется возврат к параметрам по умолчанию" #: bin/gscan2pdf:244 msgid "A4" msgstr "A4" #: bin/gscan2pdf:250 msgid "US Letter" msgstr "US Letter" #: bin/gscan2pdf:256 msgid "US Legal" msgstr "US Legal" #: bin/gscan2pdf:323 bin/gscan2pdf:344 #, perl-format msgid "Cannot read file: %s" msgstr "Невозможно прочесть файл: %s" #: bin/gscan2pdf:451 msgid "_File" msgstr "_Файл" #: bin/gscan2pdf:454 msgid "_New" msgstr "_Создать" #: bin/gscan2pdf:455 msgid "Clears all pages" msgstr "Стереть все страницы" #: bin/gscan2pdf:459 msgid "_Open" msgstr "_Открыть" #: bin/gscan2pdf:460 msgid "Open image file(s)" msgstr "Открыть файлы изображений" #: bin/gscan2pdf:465 msgid "S_can" msgstr "О_тсканировать" #: bin/gscan2pdf:467 msgid "Scan document" msgstr "Отсканировать документ" #: bin/gscan2pdf:471 bin/gscan2pdf:472 bin/gscan2pdf:2582 msgid "Save" msgstr "Сохранить" #: bin/gscan2pdf:476 msgid "_Email as PDF" msgstr "От_править почтой как PDF" #: bin/gscan2pdf:477 msgid "Attach as PDF to a new email" msgstr "Вложить PDF в письмо" #: bin/gscan2pdf:480 msgid "_Print" msgstr "_Печать" #: bin/gscan2pdf:481 msgid "Print" msgstr "Печать" #: bin/gscan2pdf:485 msgid "_Compress temporary files" msgstr "С_жать временные файлы" #: bin/gscan2pdf:486 msgid "Compress temporary files" msgstr "Сжать временные файлы" #: bin/gscan2pdf:490 msgid "_Quit" msgstr "В_ыход" #: bin/gscan2pdf:491 msgid "Quit" msgstr "Выйти" #: bin/gscan2pdf:495 msgid "_Edit" msgstr "_Правка" #: bin/gscan2pdf:497 msgid "_Undo" msgstr "_Отменить" #: bin/gscan2pdf:497 msgid "Undo" msgstr "Отменить" #: bin/gscan2pdf:501 msgid "_Redo" msgstr "Ве_рнуть" #: bin/gscan2pdf:502 msgid "Redo" msgstr "Вернуть" #: bin/gscan2pdf:506 msgid "Cu_t" msgstr "_Вырезать" #: bin/gscan2pdf:507 msgid "Cut selection" msgstr "Вырезать выделенное" #: bin/gscan2pdf:511 msgid "_Copy" msgstr "_Копировать" #: bin/gscan2pdf:512 msgid "Copy selection" msgstr "Скопировать выделенное" #: bin/gscan2pdf:516 msgid "_Paste" msgstr "Вст_авить" #: bin/gscan2pdf:517 msgid "Paste selection" msgstr "Вставить выделенное" #: bin/gscan2pdf:521 msgid "_Delete" msgstr "_Удалить" #: bin/gscan2pdf:522 msgid "Delete selected pages" msgstr "Удалить выбранные страницы" #: bin/gscan2pdf:526 msgid "_Renumber" msgstr "Пере_нумеровать" #: bin/gscan2pdf:527 msgid "Renumber pages" msgstr "Пронумеровать страницы заново" #: bin/gscan2pdf:529 bin/gscan2pdf:679 msgid "_Select" msgstr "_Выделение" #: bin/gscan2pdf:532 msgid "_All" msgstr "_Все" #: bin/gscan2pdf:533 msgid "Select all pages" msgstr "Выбрать все страницы" #: bin/gscan2pdf:536 msgid "_Odd" msgstr "_Нечётные" #: bin/gscan2pdf:537 msgid "Select all odd-numbered pages" msgstr "Выбрать все нечетные страницы" #: bin/gscan2pdf:541 msgid "_Even" msgstr "_Чётные" #: bin/gscan2pdf:542 msgid "Select all evenly-numbered pages" msgstr "Выбрать все четные страницы" #: bin/gscan2pdf:547 msgid "_Blank" msgstr "_Пустые" #: bin/gscan2pdf:548 msgid "Select pages with low standard deviation" msgstr "Выбрать страницы с низким стандартным отклонением" #: bin/gscan2pdf:552 msgid "_Dark" msgstr "_Тёмные" #: bin/gscan2pdf:553 msgid "Select dark pages" msgstr "Выбрать тёмные страницы" #: bin/gscan2pdf:558 msgid "_Modified" msgstr "_Изменённые" #: bin/gscan2pdf:560 msgid "Select modified pages since last OCR" msgstr "Выберите изменённые страницы с момента последнего OCR" #: bin/gscan2pdf:565 msgid "_No OCR" msgstr "_Без OCR" #: bin/gscan2pdf:566 msgid "Select pages with no OCR output" msgstr "Выберите страницы без слоя OCR" #: bin/gscan2pdf:570 msgid "_Clear OCR" msgstr "_Очистить слой OCR" #: bin/gscan2pdf:571 msgid "Clear OCR output from selected pages" msgstr "Удалить слой OCR из выделенных страниц" #: bin/gscan2pdf:575 msgid "Propert_ies" msgstr "Сво_йства" #: bin/gscan2pdf:576 msgid "Edit image properties" msgstr "Изменить свойства изображения" #: bin/gscan2pdf:580 msgid "Prefere_nces" msgstr "_Параметры" #: bin/gscan2pdf:581 msgid "Edit preferences" msgstr "Редактировать настройки" #: bin/gscan2pdf:585 msgid "_View" msgstr "_Вид" #: bin/gscan2pdf:588 msgid "Zoom _100%" msgstr "Масштаб _100%" #: bin/gscan2pdf:589 msgid "Zoom to 100%" msgstr "Масштаб 100%" #: bin/gscan2pdf:593 msgid "Zoom to _fit" msgstr "_Уместить в окне" #: bin/gscan2pdf:594 msgid "Zoom to fit" msgstr "Уместить страницу в окне" #: bin/gscan2pdf:598 msgid "Zoom _in" msgstr "_Приблизить" #: bin/gscan2pdf:599 msgid "Zoom in" msgstr "Приблизить" #: bin/gscan2pdf:603 msgid "Zoom _out" msgstr "_Отдалить" #: bin/gscan2pdf:604 msgid "Zoom out" msgstr "Отдалить" #: bin/gscan2pdf:609 bin/gscan2pdf:611 msgid "Rotate 90 clockwise" msgstr "Повернуть на 90° по часовой стрелке" #: bin/gscan2pdf:617 bin/gscan2pdf:619 msgid "Rotate 180" msgstr "Повернуть на 180°" #: bin/gscan2pdf:625 bin/gscan2pdf:627 msgid "Rotate 90 anticlockwise" msgstr "Повернуть на 90° против часовой стрелки" #: bin/gscan2pdf:632 msgid "_Tools" msgstr "С_ервис" #: bin/gscan2pdf:634 msgid "_Threshold" msgstr "_Порог" #: bin/gscan2pdf:635 msgid "Change each pixel above this threshold to black" msgstr "Изменить каждый пиксел выше указанного порога на черный" #: bin/gscan2pdf:639 msgid "_Negate" msgstr "_Негатив" #: bin/gscan2pdf:640 msgid "Converts black to white and vice versa" msgstr "Превратить черное в белое и наоборот" #: bin/gscan2pdf:644 msgid "_Unsharp Mask" msgstr "_Нерезкая маска" #: bin/gscan2pdf:645 msgid "Apply an unsharp mask" msgstr "Повысить резкость при помощи нерезкой маски" #: bin/gscan2pdf:648 msgid "_Crop" msgstr "_Кадрировать" #: bin/gscan2pdf:649 msgid "Crop pages" msgstr "Кадрировать страниц" #: bin/gscan2pdf:653 msgid "_Clean up" msgstr "Очистить" #: bin/gscan2pdf:654 bin/gscan2pdf:4085 msgid "Clean up scanned images with unpaper" msgstr "Очистить отсканированные изображения при помощи unpaper" #: bin/gscan2pdf:657 msgid "_OCR" msgstr "_Распознать текст" #: bin/gscan2pdf:658 msgid "Optical Character Recognition" msgstr "Оптическое распознавание символов" #: bin/gscan2pdf:660 msgid "U_ser-defined" msgstr "З_адано пользователем" #: bin/gscan2pdf:663 bin/gscan2pdf:665 msgid "_Help" msgstr "_Справка" #: bin/gscan2pdf:666 msgid "Help" msgstr "Справка" #: bin/gscan2pdf:668 msgid "_About" msgstr "_О программе" #: bin/gscan2pdf:674 msgid "_Drag" msgstr "_Переместить" #: bin/gscan2pdf:675 msgid "Use the hand tool" msgstr "Использовать инструмент перемещения" #: bin/gscan2pdf:680 msgid "Use the rectangular selection tool" msgstr "Использовать рамку выделения" #: bin/gscan2pdf:684 msgid "_Paint" msgstr "_Нарисовать" #: bin/gscan2pdf:685 msgid "Use the painter tool" msgstr "Использовать инструмент рисования" #: bin/gscan2pdf:965 lib/Gscan2pdf/Document.pm:2594 #: lib/Gscan2pdf/Document.pm:2595 msgid "Error copying page" msgstr "Ошибка при копировании страницы" #: bin/gscan2pdf:1082 msgid "Image" msgstr "Изображение" #: bin/gscan2pdf:1117 msgid "OCR Output" msgstr "Результат OCR" #: bin/gscan2pdf:1174 msgid "Mode" msgstr "Режим" #: bin/gscan2pdf:1176 msgid "Lineart" msgstr "Штриховая графика" #: bin/gscan2pdf:1177 msgid "Grayscale" msgstr "Градации серого" #: bin/gscan2pdf:1178 msgid "Gray" msgstr "Серый" #: bin/gscan2pdf:1179 msgid "Color" msgstr "Полноцветный" #: bin/gscan2pdf:1180 msgid "Black & White" msgstr "Чёрно-белый" #: bin/gscan2pdf:1181 msgid "True Gray" msgstr "«Истинно» серый" #: bin/gscan2pdf:1182 msgid "Binary" msgstr "Бинарный" #: bin/gscan2pdf:1183 bin/gscan2pdf:1242 bin/gscan2pdf:1243 msgid "Auto" msgstr "Автоматически определяемый" #: bin/gscan2pdf:1184 msgid "Halftone" msgstr "Полутонированный" #: bin/gscan2pdf:1185 msgid "24bit Color" msgstr "24-битный цвет" #: bin/gscan2pdf:1189 bin/gscan2pdf:2547 bin/gscan2pdf:2644 msgid "Compression" msgstr "Сжатие" #: bin/gscan2pdf:1191 bin/gscan2pdf:2539 bin/gscan2pdf:2636 msgid "None" msgstr "Ничего" #: bin/gscan2pdf:1192 bin/gscan2pdf:2537 bin/gscan2pdf:2601 bin/gscan2pdf:2622 msgid "JPEG" msgstr "JPEG" #: bin/gscan2pdf:1195 bin/gscan2pdf:8127 msgid "Resolution" msgstr "Разрешение" #: bin/gscan2pdf:1196 msgid "Brightness" msgstr "Яркость" #: bin/gscan2pdf:1197 msgid "Gain" msgstr "Доход" #: bin/gscan2pdf:1198 msgid "Contrast" msgstr "Контрастность" #: bin/gscan2pdf:1199 bin/gscan2pdf:6406 bin/gscan2pdf:6417 bin/gscan2pdf:6620 msgid "Threshold" msgstr "Порог" #: bin/gscan2pdf:1201 msgid "Speed" msgstr "Скорость" #: bin/gscan2pdf:1203 bin/gscan2pdf:1210 bin/gscan2pdf:1217 bin/gscan2pdf:1224 #: bin/gscan2pdf:1231 msgid "Yes" msgstr "Да" #: bin/gscan2pdf:1204 bin/gscan2pdf:1211 bin/gscan2pdf:1218 bin/gscan2pdf:1225 #: bin/gscan2pdf:1232 msgid "No" msgstr "нет" #: bin/gscan2pdf:1208 msgid "Batch scan" msgstr "Пакетное сканирование" #: bin/gscan2pdf:1215 bin/gscan2pdf:1222 msgid "Wait for button" msgstr "Ждать нажатия клавиши" #: bin/gscan2pdf:1229 msgid "Cache calibration" msgstr "Калибровка кэша" #: bin/gscan2pdf:1236 msgid "Source" msgstr "Источник" #: bin/gscan2pdf:1238 msgid "Normal" msgstr "Обычный" #: bin/gscan2pdf:1239 msgid "ADF" msgstr "ADF" #: bin/gscan2pdf:1240 msgid "Automatic Document Feeder" msgstr "Автоматическая подача документов" #: bin/gscan2pdf:1241 msgid "XPA" msgstr "XPA" #: bin/gscan2pdf:1244 msgid "Flatbed" msgstr "Планшетный" #: bin/gscan2pdf:1245 msgid "Transparency Adapter" msgstr "Адаптер для пленки и слайдов" #: bin/gscan2pdf:1246 msgid "Transparency Unit" msgstr "Единица прозрачности" #: bin/gscan2pdf:1249 bin/gscan2pdf:1251 msgid "Page Width" msgstr "Ширина страницы" #: bin/gscan2pdf:1250 bin/gscan2pdf:1252 msgid "Page Height" msgstr "Высота страницы" #: bin/gscan2pdf:1253 msgid "Top Overscan" msgstr "" #: bin/gscan2pdf:1254 msgid "Bottom Overscan" msgstr "" #: bin/gscan2pdf:1256 bin/gscan2pdf:1263 msgid "ADF Mode" msgstr "Режим автоподачи" #: bin/gscan2pdf:1258 bin/gscan2pdf:1265 msgid "Simplex" msgstr "Односторонняя печать" #: bin/gscan2pdf:1259 bin/gscan2pdf:1266 msgid "Duplex" msgstr "Двусторонняя печать" #: bin/gscan2pdf:1301 bin/gscan2pdf:1306 msgid "Pick crashed session to restore" msgstr "Выберите сессию для восстановления" #: bin/gscan2pdf:1308 bin/gscan2pdf:2609 msgid "Session" msgstr "Сеанс" #: bin/gscan2pdf:1338 #, perl-format msgid "" "Warning: unable to use %s for temporary storage. Defaulting to %s instead." msgstr "" "Внимание: %s нельзя использовать для временного хранилища. Переход на " "использование %s." #: bin/gscan2pdf:1441 msgid "GOCR" msgstr "GOCR" #: bin/gscan2pdf:1441 msgid "Process image with GOCR." msgstr "Обработать изображение при помощи GOCR." #: bin/gscan2pdf:1445 msgid "Tesseract" msgstr "Tesseract" #: bin/gscan2pdf:1446 msgid "Process image with Tesseract." msgstr "Обработать изображения в Tesseract" #: bin/gscan2pdf:1450 msgid "Ocropus" msgstr "Ocropus" #: bin/gscan2pdf:1450 msgid "Process image with Ocropus." msgstr "Обработать изображение с помощью Ocropus." #: bin/gscan2pdf:1454 msgid "Cuneiform" msgstr "Cuneiform" #: bin/gscan2pdf:1455 msgid "Process image with Cuneiform." msgstr "Обработать изображение с помощью Cuneiform." #: bin/gscan2pdf:1461 msgid "Save image and Save as PDF both require imagemagick\n" msgstr "Для сохранения изображений и PDF нужен ImageMagick\n" #: bin/gscan2pdf:1465 msgid "Save image requires libtiff\n" msgstr "Для сохранения изображений нужна библиотека libtiff\n" #: bin/gscan2pdf:1469 msgid "Save as DjVu requires djvulibre-bin\n" msgstr "Сохранение в DjVu требует djvulibre-bin\n" #: bin/gscan2pdf:1473 msgid "Email as PDF requires xdg-email\n" msgstr "Пересылка PDF по почте требует xdg-email\n" #: bin/gscan2pdf:1518 msgid "The rotating options and unpaper support require perlmagick\n" msgstr "" "Операции поворота и поддержка операций улучшения результата сканирования " "требуют установки perlmagick\n" #: bin/gscan2pdf:1524 msgid "unpaper missing\n" msgstr "unpaper отсутствует\n" #: bin/gscan2pdf:1534 msgid "OCR requires gocr, tesseract, ocropus, or cuneiform\n" msgstr "" "Для распознавания текста необходимы программы gocr, tesseract, ocropus, или " "cuneiform\n" #: bin/gscan2pdf:1539 msgid "Warning: missing packages" msgstr "Предупреждение: некоторые пакеты отсутствуют" #: bin/gscan2pdf:1544 msgid "Don't show this message again" msgstr "Больше не показывать это" #: bin/gscan2pdf:1753 msgid "" "Some pages have not been saved.\n" "Do you really want to clear all pages?" msgstr "" "Некоторые страницы не были сохранены.\n" "Вы действительно хотите очистить все страницы?" #: bin/gscan2pdf:1828 bin/gscan2pdf:1858 #, perl-format msgid "Process %i of %i (%s)" msgstr "Обработка %i из %i (%s)" #: bin/gscan2pdf:1867 #, perl-format msgid "Process %i of %i" msgstr "Обработка %i из %i" #: bin/gscan2pdf:1895 msgid "Open image" msgstr "Открыть изображение" #: bin/gscan2pdf:1903 bin/gscan2pdf:2797 bin/gscan2pdf:3113 msgid "Image files" msgstr "Файлы изображений" #: bin/gscan2pdf:1940 msgid "Pages to extract" msgstr "Извлекаемые страницы" #: bin/gscan2pdf:1943 bin/gscan2pdf:2117 bin/gscan2pdf:2586 bin/gscan2pdf:3353 #: bin/gscan2pdf:3494 bin/gscan2pdf:4104 bin/gscan2pdf:4514 bin/gscan2pdf:5825 #: bin/gscan2pdf:6409 bin/gscan2pdf:6495 bin/gscan2pdf:6565 bin/gscan2pdf:6737 #: bin/gscan2pdf:7011 bin/gscan2pdf:7274 bin/gscan2pdf:7757 bin/gscan2pdf:8123 #: lib/Gscan2pdf/Dialog.pm:56 lib/Gscan2pdf/Dialog/Renumber.pm:80 #: lib/Gscan2pdf/Scanner/Dialog.pm:201 t/05_Dialog.t:28 msgid "vbox" msgstr "" #: bin/gscan2pdf:1946 msgid "First page to extract" msgstr "Первая извлекаемая страница" #: bin/gscan2pdf:1953 msgid "Last page to extract" msgstr "Последняя извлекаемая страница" #: bin/gscan2pdf:2042 lib/Gscan2pdf/Dialog/Renumber.pm:83 msgid "Page Range" msgstr "Диапазон страниц" #: bin/gscan2pdf:2092 msgid "Metadata" msgstr "Метаданные" #: bin/gscan2pdf:2101 msgid "Date" msgstr "Дата" #: bin/gscan2pdf:2114 msgid "Select Date" msgstr "Выберите дату" #: bin/gscan2pdf:2136 msgid "Today" msgstr "Сегодня" #: bin/gscan2pdf:2150 msgid "Year-Month-Day" msgstr "Год-Месяц-День" #: bin/gscan2pdf:2156 msgid "Document author" msgstr "Автор документа" #: bin/gscan2pdf:2165 msgid "Title" msgstr "Заголовок" #: bin/gscan2pdf:2174 msgid "Subject" msgstr "Тема" #: bin/gscan2pdf:2183 msgid "Keywords" msgstr "Ключевые слова" #: bin/gscan2pdf:2245 msgid "Editing text" msgstr "Правка текста" #: bin/gscan2pdf:2252 bin/gscan2pdf:2258 bin/gscan2pdf:2332 msgid "text" msgstr "текст" #: bin/gscan2pdf:2352 msgid "PDF filename" msgstr "Имя файла PDF" #: bin/gscan2pdf:2381 msgid "PDF files" msgstr "Файлы PDF" #: bin/gscan2pdf:2405 bin/gscan2pdf:2823 bin/gscan2pdf:2880 bin/gscan2pdf:2976 #: bin/gscan2pdf:3035 bin/gscan2pdf:3087 bin/gscan2pdf:3275 #, perl-format msgid "File %s is read-only" msgstr "Файл %s доступен в режиме «только чтение»" #: bin/gscan2pdf:2482 msgid "JPEG Quality" msgstr "Качество JPEG" #: bin/gscan2pdf:2496 msgid "Downsample to" msgstr "Снизить разрешение до" #: bin/gscan2pdf:2501 msgid "PPI" msgstr "PPI" #: bin/gscan2pdf:2520 msgid "Automatic" msgstr "Автоматически" #: bin/gscan2pdf:2521 msgid "Let gscan2pdf which type of compression to use." msgstr "Пусть программа сама выберет подходящий алгоритм сжатия." #: bin/gscan2pdf:2524 bin/gscan2pdf:2616 msgid "LZW" msgstr "LZW" #: bin/gscan2pdf:2525 bin/gscan2pdf:2617 msgid "Compress output with Lempel-Ziv & Welch encoding." msgstr "Сжатие вывода алгоритмом Lempel-Ziv & Welch" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Zip" msgstr "Zip" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Compress output with deflate encoding." msgstr "Сжатие вывода алгоритмом понижения порядка (deflate)" #: bin/gscan2pdf:2529 bin/gscan2pdf:2624 msgid "Packbits" msgstr "Packbits" #: bin/gscan2pdf:2530 bin/gscan2pdf:2625 msgid "Compress output with Packbits encoding." msgstr "Сжатие вывода алгоритмом Packbits" #: bin/gscan2pdf:2536 bin/gscan2pdf:2604 msgid "PNG" msgstr "PNG" #: bin/gscan2pdf:2536 msgid "Compress output with PNG encoding." msgstr "Сжать вывод, используя PNG" #: bin/gscan2pdf:2537 bin/gscan2pdf:2622 msgid "Compress output with JPEG encoding." msgstr "Сжатие вывода алгоритмом JPEG" #: bin/gscan2pdf:2540 bin/gscan2pdf:2637 msgid "Use no compression algorithm on output." msgstr "Не использовать алгоритм сжатия при выводе" #: bin/gscan2pdf:2594 msgid "Image type" msgstr "Тип изображения" #: bin/gscan2pdf:2598 msgid "PDF" msgstr "PDF" #: bin/gscan2pdf:2598 msgid "Portable Document Format" msgstr "Portable Document Format" #: bin/gscan2pdf:2599 msgid "GIF" msgstr "GIF" #: bin/gscan2pdf:2599 msgid "CompuServe graphics interchange format" msgstr "Графический формат обмена данными CompuServe" #: bin/gscan2pdf:2602 msgid "Joint Photographic Experts Group JFIF format" msgstr "JFIF-формат от Joint Photographic Experts Group JFIF" #: bin/gscan2pdf:2604 msgid "Portable Network Graphics" msgstr "Переносимая сетевая графика (PNG)" #: bin/gscan2pdf:2605 msgid "PNM" msgstr "PNM" #: bin/gscan2pdf:2605 msgid "Portable anymap" msgstr "Portable anymap (PNM)" #: bin/gscan2pdf:2606 msgid "PS" msgstr "PS" #: bin/gscan2pdf:2606 msgid "Postscript" msgstr "Postscript" #: bin/gscan2pdf:2607 msgid "TIFF" msgstr "TIFF" #: bin/gscan2pdf:2607 msgid "Tagged Image File Format" msgstr "Размеченный формат файлов изображений (TIFF)" #: bin/gscan2pdf:2608 msgid "Text" msgstr "Текст" #: bin/gscan2pdf:2608 msgid "Plain text" msgstr "Простой текст" #: bin/gscan2pdf:2609 msgid "gscan2pdf session file" msgstr "Файл сеанса gscan2pdf" #: bin/gscan2pdf:2611 msgid "DjVu" msgstr "DjVu" #: bin/gscan2pdf:2611 msgid "Deja Vu" msgstr "Deja Vu" #: bin/gscan2pdf:2628 msgid "G3" msgstr "G3" #: bin/gscan2pdf:2629 msgid "Compress output with CCITT Group 3 encoding." msgstr "Сжатие вывода алгоритмом CCITT Group 3" #: bin/gscan2pdf:2632 msgid "G4" msgstr "G4" #: bin/gscan2pdf:2633 msgid "Compress output with CCITT Group 4 encoding." msgstr "Сжатие вывода алгоритмом CCITT Group 4" #: bin/gscan2pdf:2649 msgid "tiff" msgstr "TIFF" #: bin/gscan2pdf:2681 msgid "Font for non-ASCII text" msgstr "Шрифт для не-ASCII текста" #: bin/gscan2pdf:2790 msgid "TIFF filename" msgstr "Имя файла TIFF" #: bin/gscan2pdf:2848 msgid "Text filename" msgstr "Имя текстового файла" #: bin/gscan2pdf:2856 msgid "Text files" msgstr "Текстовые файлы" #: bin/gscan2pdf:2944 msgid "PS filename" msgstr "Имя файла PS" #: bin/gscan2pdf:2951 msgid "Postscript files" msgstr "Файлы Postscript" #: bin/gscan2pdf:3003 msgid "gscan2pdf session filename" msgstr "Имя файла сеанса gscan2pdf" #: bin/gscan2pdf:3010 msgid "gscan2pdf session files" msgstr "файлы сеанса gscan2pdf" #: bin/gscan2pdf:3093 #, perl-format msgid "" "File %s exists.\n" "Really overwrite?" msgstr "" "Файл %s уже существует.\n" "Действительно перезаписать?" #: bin/gscan2pdf:3106 msgid "Image filename" msgstr "Имя файла изображения" #: bin/gscan2pdf:3245 msgid "DjVu filename" msgstr "Имя файла DjVu" #: bin/gscan2pdf:3252 msgid "DjVu files" msgstr "Файлы DjVu" #: bin/gscan2pdf:3349 msgid "Email as PDF" msgstr "Отправка по почте как PDF" #: bin/gscan2pdf:3454 msgid "Error creating email" msgstr "Ошибка при создании email" #: bin/gscan2pdf:3490 bin/gscan2pdf:4313 msgid "Scan Document" msgstr "Отсканировать документ" #: bin/gscan2pdf:3507 lib/Gscan2pdf/Scanner/Dialog.pm:248 msgid "Page Options" msgstr "Параметры страницы" #: bin/gscan2pdf:3510 lib/Gscan2pdf/Scanner/Dialog.pm:251 msgid "# Pages" msgstr "# Страниц" #: bin/gscan2pdf:3519 lib/Gscan2pdf/PageRange.pm:34 #: lib/Gscan2pdf/Scanner/Dialog.pm:261 msgid "All" msgstr "Все" #: bin/gscan2pdf:3520 lib/Gscan2pdf/Scanner/Dialog.pm:262 msgid "Scan all pages" msgstr "Отсканировать все страницы" #: bin/gscan2pdf:3532 bin/gscan2pdf:3537 lib/Gscan2pdf/Scanner/Dialog.pm:274 #: lib/Gscan2pdf/Scanner/Dialog.pm:279 msgid "Set number of pages to scan" msgstr "Указать число сканируемых страниц" #: bin/gscan2pdf:3550 lib/Gscan2pdf/Scanner/Dialog.pm:308 msgid "Extended page numbering" msgstr "Расширенная нумерация страниц" #: bin/gscan2pdf:3554 lib/Gscan2pdf/Scanner/Dialog.pm:312 msgid "Page number" msgstr "Номер страницы" #: bin/gscan2pdf:3563 lib/Gscan2pdf/Dialog/Renumber.pm:111 #: lib/Gscan2pdf/Scanner/Dialog.pm:321 msgid "Start" msgstr "Начать" #: bin/gscan2pdf:3572 lib/Gscan2pdf/Dialog/Renumber.pm:132 #: lib/Gscan2pdf/Scanner/Dialog.pm:340 msgid "Increment" msgstr "Шаг" #: bin/gscan2pdf:3604 lib/Gscan2pdf/Scanner/Dialog.pm:372 msgid "Source document" msgstr "Исходный документ" #: bin/gscan2pdf:3611 lib/Gscan2pdf/Scanner/Dialog.pm:379 msgid "Single sided" msgstr "Односторонний" #: bin/gscan2pdf:3612 lib/Gscan2pdf/Scanner/Dialog.pm:380 msgid "Source document is single-sided" msgstr "В исходном документе односторонняя печать" #: bin/gscan2pdf:3622 lib/Gscan2pdf/Scanner/Dialog.pm:390 msgid "Double sided" msgstr "Двухсторонний" #: bin/gscan2pdf:3623 lib/Gscan2pdf/Scanner/Dialog.pm:391 msgid "Source document is double-sided" msgstr "В исходном документе двухсторонняя печать" #: bin/gscan2pdf:3629 lib/Gscan2pdf/Scanner/Dialog.pm:397 msgid "Side to scan" msgstr "Какую сторону сканировать" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Facing" msgstr "Парные страницы" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Reverse" msgstr "Обратный порядок" #: bin/gscan2pdf:3655 lib/Gscan2pdf/Scanner/Dialog.pm:418 msgid "Sets which side of a double-sided document is scanned" msgstr "Указать, какую сторону документа с двухсторонней печатью сканировать" #: bin/gscan2pdf:3719 msgid "Scan Options" msgstr "Параметры сканирования" #: bin/gscan2pdf:3722 msgid "Device-dependent options" msgstr "Параметры, уникальные для разных устройств" #: bin/gscan2pdf:3729 lib/Gscan2pdf/Scanner/Dialog.pm:458 msgid "Scan profiles" msgstr "Профили сканирования" #: bin/gscan2pdf:3778 bin/gscan2pdf:3784 lib/Gscan2pdf/Scanner/Dialog.pm:479 #: lib/Gscan2pdf/Scanner/Dialog.pm:485 msgid "Name of scan profile" msgstr "Имя профиля сканирования" #: bin/gscan2pdf:3828 lib/Gscan2pdf/Scanner/Dialog.pm:518 msgid "Scan" msgstr "Отсканировать" #: bin/gscan2pdf:3866 msgid "Must scan facing pages first" msgstr "Сначала нужно отсканировать парные страницы" #: bin/gscan2pdf:3977 msgid "Post-processing" msgstr "Послеобработка" #: bin/gscan2pdf:3986 bin/gscan2pdf:4008 msgid "Rotate" msgstr "Повернуть" #: bin/gscan2pdf:3987 bin/gscan2pdf:4009 msgid "Rotate image after scanning" msgstr "Повернуть картинку после сканирования" #: bin/gscan2pdf:3990 msgid "Both sides" msgstr "На обеих сторонах" #: bin/gscan2pdf:3990 msgid "Both sides." msgstr "На обеих сторонах." #: bin/gscan2pdf:3991 msgid "Facing side" msgstr "Видная сторона" #: bin/gscan2pdf:3991 msgid "Facing side." msgstr "Видная сторона." #: bin/gscan2pdf:3992 msgid "Reverse side" msgstr "Другая сторона" #: bin/gscan2pdf:3992 msgid "Reverse side." msgstr "Другая сторона." #: bin/gscan2pdf:3995 bin/gscan2pdf:4013 msgid "Select side to rotate" msgstr "Выберите сторону повернуть" #: bin/gscan2pdf:3998 msgid "90" msgstr "90°" #: bin/gscan2pdf:3998 msgid "Rotate image 90 degrees clockwise." msgstr "Повернуть на 90 градусов по часовой стрелке" #: bin/gscan2pdf:3999 msgid "180" msgstr "180°" #: bin/gscan2pdf:3999 msgid "Rotate image 180 degrees clockwise." msgstr "Повернуть на 180 градусов по часовой стрелке" #: bin/gscan2pdf:4000 msgid "270" msgstr "270°" #: bin/gscan2pdf:4000 msgid "Rotate image 90 degrees anticlockwise." msgstr "Повернуть на 90 градусов против часовой стрелки" #: bin/gscan2pdf:4003 bin/gscan2pdf:4016 msgid "Select direction of rotation" msgstr "Выберите направление вращения" #: bin/gscan2pdf:4083 msgid "Clean up images" msgstr "Очистить изображения" #: bin/gscan2pdf:4094 msgid "Options" msgstr "Параметры" #: bin/gscan2pdf:4095 msgid "Set unpaper options" msgstr "Указать параметры unpaper" #: bin/gscan2pdf:4101 msgid "unpaper options" msgstr "Параметры unpaper" #: bin/gscan2pdf:4136 bin/gscan2pdf:4137 msgid "OCR scanned pages" msgstr "Распознать отсканированные страницы" #: bin/gscan2pdf:4151 msgid "Select OCR engine" msgstr "Выберите движок распознавания текста" #: bin/gscan2pdf:4210 lib/Gscan2pdf/Scanner/Dialog.pm:634 msgid "Fetching list of devices" msgstr "Получается список устройств" #: bin/gscan2pdf:4225 lib/Gscan2pdf/Scanner/Dialog.pm:654 msgid "No devices found" msgstr "Устройства не найдены" #: bin/gscan2pdf:4367 bin/gscan2pdf:4732 bin/gscan2pdf:4777 bin/gscan2pdf:5214 #: lib/Gscan2pdf/Scanner/Dialog.pm:343 lib/Gscan2pdf/Scanner/Dialog.pm:348 #: t/061_Scanner_Dialog.t:38 t/061_Scanner_Dialog.t:95 msgid "page-number-increment" msgstr "" #: bin/gscan2pdf:4374 bin/gscan2pdf:4729 bin/gscan2pdf:4730 bin/gscan2pdf:4776 #: bin/gscan2pdf:5213 lib/Gscan2pdf/Scanner/Dialog.pm:361 #: t/061_Scanner_Dialog.t:37 msgid "page-number-start" msgstr "" #: bin/gscan2pdf:4663 lib/Gscan2pdf/Scanner/Dialog.pm:210 msgid "Device" msgstr "Устройство" #: bin/gscan2pdf:4671 lib/Gscan2pdf/Scanner/Dialog.pm:213 msgid "Rescan for devices" msgstr "Повторный поиск устройств" #: bin/gscan2pdf:4694 lib/Gscan2pdf/Scanner/Dialog.pm:237 msgid "Sets the device to be used for the scan" msgstr "Указать устройство для сканирования" #: bin/gscan2pdf:4780 lib/Gscan2pdf/Scanner/Dialog.pm:300 #: t/061_Scanner_Dialog.t:35 msgid "num-pages" msgstr "" #: bin/gscan2pdf:4821 msgid "Scanning" msgstr "Выполняется сканирование" #: bin/gscan2pdf:4974 msgid "Unable to load image" msgstr "Невозможно загрузить изображение" #: bin/gscan2pdf:5004 msgid "print-pages" msgstr "" #: bin/gscan2pdf:5008 msgid "page-ranges" msgstr "" #: bin/gscan2pdf:5405 msgid "Patches gratefully received from:" msgstr "Патчи с благодарностью приняты от:" #: bin/gscan2pdf:5407 msgid "To aid the scan-to-PDF process" msgstr "Упрощение процесса сканирования в PDF" #: bin/gscan2pdf:5408 msgid "Copyright 2006--2012 Jeffrey Ratcliffe" msgstr "Авторские права 2006--2012 Jeffrey Ratcliffe" #: bin/gscan2pdf:5492 bin/gscan2pdf:6028 msgid "The options cache seems to be empty. Reload device-dependent options?" msgstr "" "Временные файлы параметров пусты. Обновить аппаратно-зависимые параметры?" #: bin/gscan2pdf:5519 bin/gscan2pdf:6054 msgid "Updating options" msgstr "Параметры обновляются" #: bin/gscan2pdf:5571 msgid "Paper size" msgstr "Формат бумаги" #: bin/gscan2pdf:5572 bin/gscan2pdf:5672 bin/gscan2pdf:5840 bin/gscan2pdf:6769 msgid "Width" msgstr "Ширина" #: bin/gscan2pdf:5573 bin/gscan2pdf:5678 bin/gscan2pdf:5841 bin/gscan2pdf:6780 msgid "Height" msgstr "Высота" #: bin/gscan2pdf:5574 bin/gscan2pdf:5684 bin/gscan2pdf:5842 #: lib/Gscan2pdf/Unpaper.pm:124 lib/Gscan2pdf/Unpaper.pm:152 msgid "Left" msgstr "Левый" #: bin/gscan2pdf:5575 bin/gscan2pdf:5690 bin/gscan2pdf:5843 #: lib/Gscan2pdf/Unpaper.pm:129 lib/Gscan2pdf/Unpaper.pm:157 msgid "Top" msgstr "Верхний" #: bin/gscan2pdf:5589 bin/gscan2pdf:5703 bin/gscan2pdf:6232 msgid "Manual" msgstr "Руководство" #: bin/gscan2pdf:5590 bin/gscan2pdf:5700 msgid "Edit" msgstr "Правка" #: bin/gscan2pdf:5591 msgid "Selects or edits the paper size" msgstr "Выбирает или вносит данные о размере бумаги" #: bin/gscan2pdf:5673 msgid "Width of scan area" msgstr "Ширина сканируемой области" #: bin/gscan2pdf:5679 msgid "Height of scan area" msgstr "Высота сканируемой области" #: bin/gscan2pdf:5685 msgid "Top-left x position of scan area" msgstr "Верхняя левая точка сканируемой области по оси X" #: bin/gscan2pdf:5691 msgid "Top-left y position of scan area" msgstr "Верхняя левая точка сканируемой области по оси Y" #: bin/gscan2pdf:5822 msgid "Edit paper size" msgstr "Изменить формат страницы" #: bin/gscan2pdf:5839 msgid "Name" msgstr "Имя" #: bin/gscan2pdf:5893 msgid "Cannot delete all paper sizes" msgstr "Невозможно удалить все размеры бумаги" #: bin/gscan2pdf:5955 msgid "" "The following paper sizes are too big to be scanned by the selected device:" msgstr "" "Следующие размеры бумаги слишком большиие, чтобы её можно было отсканировать " "с помощью выбранного устройства:" #: bin/gscan2pdf:6419 bin/gscan2pdf:6605 msgid "%" msgstr "%" #: bin/gscan2pdf:6492 msgid "Negate" msgstr "Преобразовать в негатив" #: bin/gscan2pdf:6562 msgid "Unsharp mask" msgstr "Нерезкая маска" #: bin/gscan2pdf:6573 msgid "Radius" msgstr "Радиус" #: bin/gscan2pdf:6575 bin/gscan2pdf:6592 bin/gscan2pdf:6747 bin/gscan2pdf:6759 #: bin/gscan2pdf:6771 bin/gscan2pdf:6782 msgid "pixels" msgstr "пикселов" #: bin/gscan2pdf:6582 msgid "" "The radius of the Gaussian, in pixels, not counting the center pixel (0 = " "automatic)." msgstr "" "Радиус Гауссова размывания в пикселях, не считая центральный пиксель (0 — " "автоматически)." #: bin/gscan2pdf:6590 msgid "Sigma" msgstr "Сигма" #: bin/gscan2pdf:6597 msgid "The standard deviation of the Gaussian." msgstr "Стандартное значение для Гауссова размытия" #: bin/gscan2pdf:6603 msgid "Amount" msgstr "Величина" #: bin/gscan2pdf:6612 msgid "" "The percentage of the difference between the original and the blur image " "that is added back into the original." msgstr "" "Процентная разница между оригиналом и размытым изображением, которая " "возвращается в оригинал." #: bin/gscan2pdf:6627 msgid "" "The threshold, as a fraction of QuantumRange, needed to apply the difference " "amount." msgstr "" "Предел, как доля QuantumRange, требуемый для применения размера разницы." #: bin/gscan2pdf:6733 msgid "Crop" msgstr "Обрезать" #: bin/gscan2pdf:6745 msgid "x" msgstr "x" #: bin/gscan2pdf:6751 msgid "The x-position of the left hand edge of the crop." msgstr "Координата X левого края области выделения." #: bin/gscan2pdf:6757 msgid "y" msgstr "y" #: bin/gscan2pdf:6763 msgid "The y-position of the top edge of the crop." msgstr "Координата Y верхнего края области выделения." #: bin/gscan2pdf:6774 msgid "The width of the crop." msgstr "Ширина рамки обрезки." #: bin/gscan2pdf:6785 msgid "The height of the crop." msgstr "Высота рамки обрезки." #: bin/gscan2pdf:6906 msgid "label" msgstr "метка" #: bin/gscan2pdf:7007 msgid "unpaper" msgstr "unpaper" #: bin/gscan2pdf:7216 bin/gscan2pdf:7244 msgid "Language to recognise" msgstr "Какие языки распознавать" #: bin/gscan2pdf:7227 msgid "English" msgstr "Английский" #: bin/gscan2pdf:7270 msgid "OCR" msgstr "OCR" #: bin/gscan2pdf:7279 msgid "OCR Engine" msgstr "Движок OCR" #: bin/gscan2pdf:7323 msgid "Start OCR" msgstr "Запустить OCR" #: bin/gscan2pdf:7339 msgid "No page selected" msgstr "Ни одна страница не выбрана" #: bin/gscan2pdf:7374 msgid "" "Some pages have not been saved.\n" "Do you really want to quit?" msgstr "" "Некоторые страницы не были сохранены.\n" "Вы уверены, что хотите завершить работу?" #: bin/gscan2pdf:7432 #, perl-format msgid "" "The help viewer requires module Gtk2::Ex::PodViewer\n" "Alternatively, try: %s %s\n" "\n" msgstr "" "Для просмотра справки нужен модуль Gtk2::Ex::PodViewer\n" "Как вариант, попробуйте: %s %s\n" "\n" #: bin/gscan2pdf:7698 msgid "This operation cannot be undone. Are you sure?" msgstr "Результат этой операции не может быть отменён. Вы уверены?" #: bin/gscan2pdf:7753 msgid "Preferences" msgstr "Параметры" #: bin/gscan2pdf:7762 msgid "Frontend" msgstr "Графический Интерфейс" #: bin/gscan2pdf:7766 msgid "libsane-perl" msgstr "libsane-perl" #: bin/gscan2pdf:7767 msgid "Scan using the perl bindings for SANE." msgstr "Сканировать используя привязки Perl для SANE." #: bin/gscan2pdf:7770 msgid "scanimage" msgstr "scanimage" #: bin/gscan2pdf:7771 msgid "Scan using the scanimage frontend." msgstr "Сканирование с использованием scanimage" #: bin/gscan2pdf:7775 msgid "scanimage-perl" msgstr "scanimage-perl" #: bin/gscan2pdf:7776 msgid "Scan using the scanimage-perl frontend." msgstr "Сканирование с использованием scanimage-perl" #: bin/gscan2pdf:7779 msgid "scanadf-perl" msgstr "scanadf-perl" #: bin/gscan2pdf:7780 msgid "Scan using the scanadf-perl frontend." msgstr "Сканирование с использованием scanadf-perl" #: bin/gscan2pdf:7785 msgid "scanadf" msgstr "scanadf" #: bin/gscan2pdf:7786 msgid "Scan using the scanadf frontend." msgstr "Сканирование с использованием scanadf" #: bin/gscan2pdf:7791 msgid "Cycle SANE handle after scan" msgstr "" #: bin/gscan2pdf:7814 msgid "Default filename for PDFs" msgstr "Имя файла PDF по умолчанию" #: bin/gscan2pdf:7820 msgid "" "%a\t author\n" "%t\t title\n" "%y\t document's year\n" "%Y\t today's year\n" "%m\t document's month\n" "%M\t today's month\n" "%d\t document's day\n" "%D\t today's day" msgstr "" "%a\t автор\n" "%t\t название\n" "%y\t год создания документа\n" "%Y\t текущий год\n" "%m\t месяц создания документа\n" "%M\t текущий месяц\n" "%d\t день создания документа\n" "%D\t текущий день" #: bin/gscan2pdf:7830 msgid "Scan command prefix" msgstr "Префикс команды сканирования" #: bin/gscan2pdf:7839 msgid "Restore window settings on startup" msgstr "Восстановить настройки окна при запуске" #: bin/gscan2pdf:7845 msgid "Cache device-dependent options" msgstr "Временные файлы аппаратно-зависимых параметров" #: bin/gscan2pdf:7851 msgid "Clear device-dependent options cache" msgstr "Очистить временные файлы аппаратно-зависимых параметров" #: bin/gscan2pdf:7862 msgid "Temporary directory" msgstr "Временный каталог" #: bin/gscan2pdf:7867 msgid "Browse" msgstr "Обзор" #: bin/gscan2pdf:7871 msgid "Select temporary directory" msgstr "Выбрать временный каталог" #: bin/gscan2pdf:7888 msgid "Blank threshold" msgstr "Порог чёрного" #: bin/gscan2pdf:7893 msgid "Threshold used for selecting blank pages" msgstr "Пороговое значение, используемое для выявления пустых страниц" #: bin/gscan2pdf:7899 msgid "Dark threshold" msgstr "Порог тёмного" #: bin/gscan2pdf:7904 msgid "Threshold used for selecting dark pages" msgstr "Ограничение для выбора тёмных страниц" #: bin/gscan2pdf:7910 msgid "OCR output" msgstr "Вывод OCR" #: bin/gscan2pdf:7915 msgid "Replace" msgstr "Заменить" #: bin/gscan2pdf:7917 msgid "" "Replace the contents of the text buffer with that from the OCR output." msgstr "Заменить содержимое текстового буфера из вывода OCR." #: bin/gscan2pdf:7920 msgid "Prepend" msgstr "Добавлять в начало" #: bin/gscan2pdf:7921 msgid "Prepend the OCR output to the text buffer." msgstr "Помещать вывод OCR в начало текстового буфера" #: bin/gscan2pdf:7924 msgid "Append" msgstr "Добавлять в конец" #: bin/gscan2pdf:7925 msgid "Append the OCR output to the text buffer." msgstr "Помещать вывод OCR в конец текстового буфера" #: bin/gscan2pdf:7933 msgid "User-defined tools" msgstr "Инструменты, определённые пользователем" #: bin/gscan2pdf:7954 msgid "View files on saving" msgstr "Просмотр файла после сохранения" #: bin/gscan2pdf:8000 msgid "" "You will have to restart gscanp2df for changes to the temporary directory to " "take effect." msgstr "" "Для того, чтобы изменения вступили в силу, требуется перезапустить gscanp2df." #: bin/gscan2pdf:8092 msgid "" "Use %i and %o for the input and output filenames respectively, or a single " "%i if the image is to be modified in-place.\n" "\n" "The other variable available is:\n" "\n" "%r resolution" msgstr "" "Используйте %i и %o для имён файлов соответственно на входе и выходе, либо " "просто %i, если изображение будет редактироваться непосредственно.\n" "\n" "Другие параметры:\n" "\n" "%r разрешение" #: bin/gscan2pdf:8119 msgid "Properties" msgstr "Свойства" #: lib/Gscan2pdf/Dialog.pm:63 lib/Gscan2pdf/Dialog.pm:79 t/05_Dialog.t:25 msgid "hide-on-delete" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:78 lib/Gscan2pdf/Dialog/Renumber.pm:162 msgid "Renumber" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:98 lib/Gscan2pdf/Dialog/Renumber.pm:207 #: lib/Gscan2pdf/Dialog/Renumber.pm:244 msgid "range" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:102 msgid "Page numbering" msgstr "Нумерация страниц" #: lib/Gscan2pdf/Dialog/Renumber.pm:105 lib/Gscan2pdf/Scanner/Dialog.pm:254 msgid "border_width" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:126 lib/Gscan2pdf/Dialog/Renumber.pm:192 #: lib/Gscan2pdf/Dialog/Renumber.pm:242 t/07_Dialog_Renumber.t:33 #: t/07_Dialog_Renumber.t:45 t/07_Dialog_Renumber.t:59 #: t/07_Dialog_Renumber.t:66 msgid "start" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:147 lib/Gscan2pdf/Dialog/Renumber.pm:193 #: lib/Gscan2pdf/Dialog/Renumber.pm:243 t/07_Dialog_Renumber.t:34 #: t/07_Dialog_Renumber.t:46 t/07_Dialog_Renumber.t:60 #: t/07_Dialog_Renumber.t:67 msgid "increment" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:205 lib/Gscan2pdf/Dialog/Renumber.pm:241 msgid "document" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:295 msgid "" "The current settings would result in duplicate page numbers. Please select " "new start and increment values." msgstr "" #: lib/Gscan2pdf/Document.pm:83 msgid "Thumbnails" msgstr "Миниатюры" #: lib/Gscan2pdf/Document.pm:1502 msgid "Unknown DjVu file structure. Please contact the author." msgstr "Неизвестная структура файла DjVu. Свяжитесь с автором." #: lib/Gscan2pdf/Document.pm:1558 #, perl-format msgid "%s is not a recognised image type" msgstr "%s не является типом изображения" #: lib/Gscan2pdf/Document.pm:1580 lib/Gscan2pdf/Document.pm:1637 #, perl-format msgid "Importing page %i of %i" msgstr "Импортирование страницы %i из %i" #: lib/Gscan2pdf/Document.pm:1613 msgid "Error extracting images from PDF" msgstr "Ошибка при извлечении изображений из PDF" #: lib/Gscan2pdf/Document.pm:1692 msgid "Setting up PDF" msgstr "Настройка PDF" #: lib/Gscan2pdf/Document.pm:1703 #, perl-format msgid "Saving page %i of %i" msgstr "Сохранение страницы %i из %i" #: lib/Gscan2pdf/Document.pm:1814 lib/Gscan2pdf/Document.pm:2136 #, perl-format msgid "Error compressing image: %s" msgstr "Ошибка при сжатии изображения: %s" #: lib/Gscan2pdf/Document.pm:1919 #, perl-format msgid "Error creating PDF image object: %s" msgstr "Ошибка при создании объекта изображения в PDF: %s" #: lib/Gscan2pdf/Document.pm:1930 #, perl-format msgid "Error embedding file image in %s format to PDF: %s" msgstr "Ошибка при внедрении изображения в формате %s в PDF: %s" #: lib/Gscan2pdf/Document.pm:1939 msgid "Closing PDF" msgstr "Закрытие PDF" #: lib/Gscan2pdf/Document.pm:1955 #, perl-format msgid "Writing page %i of %i" msgstr "Запись страницы %i из %i" #: lib/Gscan2pdf/Document.pm:2006 msgid "Error writing DjVu" msgstr "Ошибка при сохранении DjVu" #: lib/Gscan2pdf/Document.pm:2025 lib/Gscan2pdf/Document.pm:2227 #, perl-format msgid "Can't open file: %s" msgstr "Не могу открыть файл: %s" #: lib/Gscan2pdf/Document.pm:2050 msgid "Error adding text layer to DjVu" msgstr "Ошибка при добавлении текстового слоя в DjVu" #: lib/Gscan2pdf/Document.pm:2056 msgid "Closing DjVu" msgstr "Закрытие DjVu" #: lib/Gscan2pdf/Document.pm:2063 msgid "Error closing DjVu" msgstr "Ошибка закрытия DjVu" #: lib/Gscan2pdf/Document.pm:2078 #, perl-format msgid "Converting image %i of %i to TIFF" msgstr "Перевод изображения %i из %i в TIFF" #: lib/Gscan2pdf/Document.pm:2105 msgid "Error writing TIFF" msgstr "Ошибка при записи TIFF" #: lib/Gscan2pdf/Document.pm:2121 msgid "Concatenating TIFFs" msgstr "Объединение файлов TIFF" #: lib/Gscan2pdf/Document.pm:2140 msgid "Converting to PS" msgstr "Перевод в PS" #: lib/Gscan2pdf/Document.pm:2200 lib/Gscan2pdf/Document.pm:2215 msgid "Error saving image" msgstr "Ошибка сохранения изображения" #: lib/Gscan2pdf/Frontend/CLI.pm:158 #, perl-format msgid "Scanning %i pages..." msgstr "Сканирование %i страниц..." #: lib/Gscan2pdf/Frontend/CLI.pm:163 #, perl-format msgid "Scanning page %i..." msgstr "Сканируется страница %i..." #: lib/Gscan2pdf/Frontend/CLI.pm:188 lib/Gscan2pdf/Frontend/CLI.pm:296 msgid "Scanner warming up" msgstr "Сканер разогревается" #: lib/Gscan2pdf/Frontend/CLI.pm:195 msgid "Document feeder out of documents" msgstr "Автоподатчик документов пуст" #: lib/Gscan2pdf/Frontend/CLI.pm:212 lib/Gscan2pdf/Frontend/CLI.pm:325 msgid "Device busy" msgstr "Устройство занято" #: lib/Gscan2pdf/Frontend/CLI.pm:218 lib/Gscan2pdf/Frontend/CLI.pm:330 msgid "Operation cancelled" msgstr "Действие отменено" #: lib/Gscan2pdf/Frontend/CLI.pm:223 lib/Gscan2pdf/Frontend/CLI.pm:336 msgid "Unknown message: " msgstr "Неизвестное сообщение: " #: lib/Gscan2pdf/Page.pm:68 lib/Gscan2pdf/Page.pm:73 #, perl-format msgid "Error importing image %s: %s" msgstr "Ошибка при импорте изображения %s: %s" #: lib/Gscan2pdf/PageRange.pm:33 msgid "Selected" msgstr "Выбранные" #: lib/Gscan2pdf/PageRange.pm:58 msgid "active" msgstr "активен" #: lib/Gscan2pdf/Scanner/Dialog.pm:218 t/061_Scanner_Dialog.t:33 #: t/061_Scanner_Dialog.t:59 msgid "device-list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:496 t/061_Scanner_Dialog.t:139 #: t/061_Scanner_Dialog.t:174 t/062_Scanner_Dialog.t:50 #: t/062_Scanner_Dialog.t:75 msgid "current-scan-options" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:567 msgid "logger" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:650 t/05_Dialog.t:24 msgid "transient-for" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:716 msgid "device_list" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:749 t/061_Scanner_Dialog.t:32 msgid "device" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:751 msgid "Opening device" msgstr "Открытие устройства" #: lib/Gscan2pdf/Scanner/Dialog.pm:760 msgid "Retrieving options" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:41 msgid "Layout" msgstr "Макет" #: lib/Gscan2pdf/Unpaper.pm:44 msgid "Single" msgstr "Одиночная" #: lib/Gscan2pdf/Unpaper.pm:46 msgid "One page per sheet, oriented upwards without rotation." msgstr "Одна страница на листе, книжная ориентация, без вращения" #: lib/Gscan2pdf/Unpaper.pm:49 msgid "Double" msgstr "Двойная" #: lib/Gscan2pdf/Unpaper.pm:51 msgid "" "Two pages per sheet, landscape orientation (one page on the left half, one " "page on the right half)." msgstr "" "Две страницы на листе, альбомная ориентация (одна страница на одной " "половине, вторая — на другой)." #: lib/Gscan2pdf/Unpaper.pm:59 msgid "# Output pages" msgstr "Выводимых страниц: #" #: lib/Gscan2pdf/Unpaper.pm:60 msgid "Number of pages to output." msgstr "Количество выводимых страниц" #: lib/Gscan2pdf/Unpaper.pm:68 msgid "No deskew" msgstr "Без выравнивания" #: lib/Gscan2pdf/Unpaper.pm:69 msgid "Disable deskewing." msgstr "Не использовать функцию выравнивания листа" #: lib/Gscan2pdf/Unpaper.pm:74 msgid "No mask scan" msgstr "Не искать маску" #: lib/Gscan2pdf/Unpaper.pm:75 msgid "Disable mask detection." msgstr "Отключить поиск маски" #: lib/Gscan2pdf/Unpaper.pm:80 msgid "No black filter" msgstr "Без фильтра чёрного цвета" #: lib/Gscan2pdf/Unpaper.pm:81 msgid "Disable black area scan." msgstr "Отключить поиск чёрных областей" #: lib/Gscan2pdf/Unpaper.pm:86 msgid "No gray filter" msgstr "Без фильтра серого цвета" #: lib/Gscan2pdf/Unpaper.pm:87 msgid "Disable gray area scan." msgstr "Отключить поиск серых областей" #: lib/Gscan2pdf/Unpaper.pm:92 msgid "No noise filter" msgstr "Без фильтра шума" #: lib/Gscan2pdf/Unpaper.pm:93 msgid "Disable noise filter." msgstr "Отключить фильтр шума" #: lib/Gscan2pdf/Unpaper.pm:98 msgid "No blur filter" msgstr "Без фильтра размывания" #: lib/Gscan2pdf/Unpaper.pm:99 msgid "Disable blur filter." msgstr "Отключить фильтр размывания" #: lib/Gscan2pdf/Unpaper.pm:104 msgid "No border scan" msgstr "Без поиска краёв" #: lib/Gscan2pdf/Unpaper.pm:105 msgid "Disable border scanning." msgstr "Отключить поиск краёв" #: lib/Gscan2pdf/Unpaper.pm:110 msgid "No border align" msgstr "Без выравнивания полей" #: lib/Gscan2pdf/Unpaper.pm:112 msgid "Disable aligning of the area detected by border scanning." msgstr "Отключить выравнивание областей, выявленных при анализе полей." #: lib/Gscan2pdf/Unpaper.pm:117 msgid "Deskew to edge" msgstr "Края маски" #: lib/Gscan2pdf/Unpaper.pm:119 msgid "" "Edges from which to scan for rotation. Each edge of a mask can be used to " "detect the mask's rotation. If multiple edges are specified, the average " "value will be used, unless the statistical deviation exceeds --deskew-scan-" "deviation." msgstr "" "Края, от которых искать вращение. Каждый край маски может быть использован " "для определения вращения маски. Если указано несколько краёв, будет " "использовано среднее значение, если статистическое отклонение не превышает --" "deskew-scan-deviation." #: lib/Gscan2pdf/Unpaper.pm:125 msgid "Use 'left' for scanning from the left edge." msgstr "Для сканирования от левого края" #: lib/Gscan2pdf/Unpaper.pm:130 msgid "Use 'top' for scanning from the top edge." msgstr "Для сканирования от верхнего края" #: lib/Gscan2pdf/Unpaper.pm:134 lib/Gscan2pdf/Unpaper.pm:162 msgid "Right" msgstr "Правый" #: lib/Gscan2pdf/Unpaper.pm:135 msgid "Use 'right' for scanning from the right edge." msgstr "Для сканирования от правого края" #: lib/Gscan2pdf/Unpaper.pm:139 lib/Gscan2pdf/Unpaper.pm:167 msgid "Bottom" msgstr "Нижний" #: lib/Gscan2pdf/Unpaper.pm:140 msgid "Use 'bottom' for scanning from the bottom." msgstr "Для сканирования от нижнего края" #: lib/Gscan2pdf/Unpaper.pm:147 msgid "Align to edge" msgstr "Выравнивание по краю" #: lib/Gscan2pdf/Unpaper.pm:148 msgid "Edge to which to align the page." msgstr "По какому краю выравнивать страницу" #: lib/Gscan2pdf/Unpaper.pm:153 msgid "Use 'left' to align to the left edge." msgstr "Используйте «Левый» для выравнивания по левому краю" #: lib/Gscan2pdf/Unpaper.pm:158 msgid "Use 'top' to align to the top edge." msgstr "Используйте «Верхний» для выравнивания по верхнему краю" #: lib/Gscan2pdf/Unpaper.pm:163 msgid "Use 'right' to align to the right edge." msgstr "Используйте «Правый» для выравнивания по правому краю" #: lib/Gscan2pdf/Unpaper.pm:168 msgid "Use 'bottom' to align to the bottom." msgstr "Используйте «Нижний» для выравнивания по нижнему краю" #: lib/Gscan2pdf/Unpaper.pm:174 msgid "Border margin" msgstr "Граница края" #: lib/Gscan2pdf/Unpaper.pm:178 msgid "Vertical margin" msgstr "Вертикальное поле" #: lib/Gscan2pdf/Unpaper.pm:180 msgid "" "Vertical distance to keep from the sheet edge when aligning a border area." msgstr "" "Расстояние по-вертикали от границы листа, оставляемое при выравнивании полей." #: lib/Gscan2pdf/Unpaper.pm:189 msgid "Horizontal margin" msgstr "Горизонтальное поле" #: lib/Gscan2pdf/Unpaper.pm:191 msgid "" "Horizontal distance to keep from the sheet edge when aligning a border area." msgstr "" "Расстояние по-горизонтали от границы листа, оставляемое при выравнивании " "полей." #: lib/Gscan2pdf/Unpaper.pm:202 msgid "White threshold" msgstr "Порог белого" #: lib/Gscan2pdf/Unpaper.pm:204 msgid "Brightness ratio above which a pixel is considered white." msgstr "Соотношение яркости, выше которого пиксел считается белым" #: lib/Gscan2pdf/Unpaper.pm:212 msgid "Black threshold" msgstr "Порог чёрного" #: lib/Gscan2pdf/Unpaper.pm:214 msgid "" "Brightness ratio below which a pixel is considered black (non-gray). This is " "used by the gray-filter. This value is also used when converting a grayscale " "image to black-and-white mode." msgstr "" "Уровень яркости, ниже которого пиксель будет считаться чёрным (не серым). " "Используется фильтром серого цвета. Это значение используется также при " "конвертации изображения в оттенках серого в чёрно-белое изображение." #: lib/Gscan2pdf/Unpaper.pm:250 msgid "Deskew" msgstr "Выравнивание" #: lib/Gscan2pdf/Unpaper.pm:280 msgid "Border" msgstr "Края" #: lib/Gscan2pdf/Unpaper.pm:337 msgid "Filters" msgstr "Фильтры" #: t/05_Dialog.t:23 msgid "title" msgstr "" #: t/05_Dialog.t:26 t/05_Dialog.t:31 t/05_Dialog.t:32 t/05_Dialog.t:38 #: t/05_Dialog.t:39 msgid "border-width" msgstr "" #: t/061_Scanner_Dialog.t:34 msgid "dir" msgstr "" #: t/061_Scanner_Dialog.t:36 msgid "max-pages" msgstr "" #: t/061_Scanner_Dialog.t:39 msgid "side-to-scan" msgstr "" #: t/061_Scanner_Dialog.t:40 t/061_Scanner_Dialog.t:185 msgid "available-scan-options" msgstr "" #: t/061_Scanner_Dialog.t:171 t/062_Scanner_Dialog.t:73 msgid "profile" msgstr "" gscan2pdf-1.2.3/po/gscan2pdf-it.po0000644000175000017500000013547212243440507015246 0ustar jeffjeff# Italian translation for gscan2pdf # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the gscan2pdf package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: gscan2pdf\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-10-25 08:12+0200\n" "PO-Revision-Date: 2012-10-26 14:33+0000\n" "Last-Translator: Diego Verga \n" "Language-Team: Italian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-19 09:22+0000\n" "X-Generator: Launchpad (build 16831)\n" #: bin/gscan2pdf:157 msgid "Error displaying help" msgstr "Errore nella visualizzazione dell'aiuto" #: bin/gscan2pdf:201 msgid "" "Error: unable to load settings.\n" "Backing up settings\n" "Reverting to defaults" msgstr "" "Errore: impossicile caricare le impostazioni.\n" "Back-up delle impostazioni\n" "Ripristino delle impostazioni iniziali" #: bin/gscan2pdf:244 msgid "A4" msgstr "A4" #: bin/gscan2pdf:250 msgid "US Letter" msgstr "Lettera USA" #: bin/gscan2pdf:256 msgid "US Legal" msgstr "Legale USA" #: bin/gscan2pdf:323 bin/gscan2pdf:344 #, perl-format msgid "Cannot read file: %s" msgstr "Impossibile leggere il file: %s" #: bin/gscan2pdf:451 msgid "_File" msgstr "_File" #: bin/gscan2pdf:454 msgid "_New" msgstr "_Nuovo" #: bin/gscan2pdf:455 msgid "Clears all pages" msgstr "Elimina tutte le pagine" #: bin/gscan2pdf:459 msgid "_Open" msgstr "_Apri" #: bin/gscan2pdf:460 msgid "Open image file(s)" msgstr "Apri un file di immagini" #: bin/gscan2pdf:465 msgid "S_can" msgstr "A_cquisisci" #: bin/gscan2pdf:467 msgid "Scan document" msgstr "Acquisisci il documento" #: bin/gscan2pdf:471 bin/gscan2pdf:472 bin/gscan2pdf:2582 msgid "Save" msgstr "Salva" #: bin/gscan2pdf:476 msgid "_Email as PDF" msgstr "_Email come PDF" #: bin/gscan2pdf:477 msgid "Attach as PDF to a new email" msgstr "Allega come PDF a una nuova email" #: bin/gscan2pdf:480 msgid "_Print" msgstr "_Stampa" #: bin/gscan2pdf:481 msgid "Print" msgstr "Stampa" #: bin/gscan2pdf:485 msgid "_Compress temporary files" msgstr "Comprimi file temporanei" #: bin/gscan2pdf:486 msgid "Compress temporary files" msgstr "Comprimi file temporanei" #: bin/gscan2pdf:490 msgid "_Quit" msgstr "_Chiudi" #: bin/gscan2pdf:491 msgid "Quit" msgstr "Chiudi" #: bin/gscan2pdf:495 msgid "_Edit" msgstr "M_odifica" #: bin/gscan2pdf:497 msgid "_Undo" msgstr "_Annulla" #: bin/gscan2pdf:497 msgid "Undo" msgstr "Annulla" #: bin/gscan2pdf:501 msgid "_Redo" msgstr "_Ripeti" #: bin/gscan2pdf:502 msgid "Redo" msgstr "Ripete" #: bin/gscan2pdf:506 msgid "Cu_t" msgstr "_Taglia" #: bin/gscan2pdf:507 msgid "Cut selection" msgstr "Taglia la selezione" #: bin/gscan2pdf:511 msgid "_Copy" msgstr "_Copia" #: bin/gscan2pdf:512 msgid "Copy selection" msgstr "Copia la selezione" #: bin/gscan2pdf:516 msgid "_Paste" msgstr "_Incolla" #: bin/gscan2pdf:517 msgid "Paste selection" msgstr "Incolla la selezione" #: bin/gscan2pdf:521 msgid "_Delete" msgstr "_Elimina" #: bin/gscan2pdf:522 msgid "Delete selected pages" msgstr "Cancella le pagine selezionate" #: bin/gscan2pdf:526 msgid "_Renumber" msgstr "_Rinumera" #: bin/gscan2pdf:527 msgid "Renumber pages" msgstr "Riassegna numeri di pagina" #: bin/gscan2pdf:529 bin/gscan2pdf:679 msgid "_Select" msgstr "_Seleziona" #: bin/gscan2pdf:532 msgid "_All" msgstr "_Tutto" #: bin/gscan2pdf:533 msgid "Select all pages" msgstr "Seleziona tutte le pagine" #: bin/gscan2pdf:536 msgid "_Odd" msgstr "_Dispari" #: bin/gscan2pdf:537 msgid "Select all odd-numbered pages" msgstr "Seleziona tutte le pagine dispari" #: bin/gscan2pdf:541 msgid "_Even" msgstr "_Pari" #: bin/gscan2pdf:542 msgid "Select all evenly-numbered pages" msgstr "Seleziona tutte le pagine pari" #: bin/gscan2pdf:547 msgid "_Blank" msgstr "_Vuoto" #: bin/gscan2pdf:548 msgid "Select pages with low standard deviation" msgstr "Seleziona pagine con bassa deviazione standard" #: bin/gscan2pdf:552 msgid "_Dark" msgstr "_Scuro" #: bin/gscan2pdf:553 msgid "Select dark pages" msgstr "Seleziona pagine scure" #: bin/gscan2pdf:558 msgid "_Modified" msgstr "_Modificato" #: bin/gscan2pdf:560 msgid "Select modified pages since last OCR" msgstr "Seleziona le pagine modificate dall'ultimo OCR" #: bin/gscan2pdf:565 msgid "_No OCR" msgstr "_No OCR" #: bin/gscan2pdf:566 msgid "Select pages with no OCR output" msgstr "Seleziona le pagine senza output OCR" #: bin/gscan2pdf:570 msgid "_Clear OCR" msgstr "_Cancella OCR" #: bin/gscan2pdf:571 msgid "Clear OCR output from selected pages" msgstr "Cancella l'output dell'OCR dalle pagine selezionate" #: bin/gscan2pdf:575 msgid "Propert_ies" msgstr "Propr_ietà" #: bin/gscan2pdf:576 msgid "Edit image properties" msgstr "Modifica proprietà dell'immagine" #: bin/gscan2pdf:580 msgid "Prefere_nces" msgstr "Preferen_ze" #: bin/gscan2pdf:581 msgid "Edit preferences" msgstr "Modifica preferenze" #: bin/gscan2pdf:585 msgid "_View" msgstr "_Visualizza" #: bin/gscan2pdf:588 msgid "Zoom _100%" msgstr "Zoom _100%" #: bin/gscan2pdf:589 msgid "Zoom to 100%" msgstr "Ingrandisce al 100%" #: bin/gscan2pdf:593 msgid "Zoom to _fit" msgstr "A_datta" #: bin/gscan2pdf:594 msgid "Zoom to fit" msgstr "Adatta alla finestra" #: bin/gscan2pdf:598 msgid "Zoom _in" msgstr "_Aumenta ingrandimento" #: bin/gscan2pdf:599 msgid "Zoom in" msgstr "Aumenta l'ingrandimento" #: bin/gscan2pdf:603 msgid "Zoom _out" msgstr "_Riduci ingrandimento" #: bin/gscan2pdf:604 msgid "Zoom out" msgstr "Riduce l'ingrandimento" #: bin/gscan2pdf:609 bin/gscan2pdf:611 msgid "Rotate 90 clockwise" msgstr "Ruota di 90° in senso orario" #: bin/gscan2pdf:617 bin/gscan2pdf:619 msgid "Rotate 180" msgstr "Ruota di 180°" #: bin/gscan2pdf:625 bin/gscan2pdf:627 msgid "Rotate 90 anticlockwise" msgstr "Ruota di 90° in senso antiorario" #: bin/gscan2pdf:632 msgid "_Tools" msgstr "S_trumenti" #: bin/gscan2pdf:634 msgid "_Threshold" msgstr "_Soglia" #: bin/gscan2pdf:635 msgid "Change each pixel above this threshold to black" msgstr "Cambia tutti i pixel al di sopra di questa soglia in nero" #: bin/gscan2pdf:639 msgid "_Negate" msgstr "_Negativo" #: bin/gscan2pdf:640 msgid "Converts black to white and vice versa" msgstr "Converti neri in bianchi e viceversa" #: bin/gscan2pdf:644 msgid "_Unsharp Mask" msgstr "Maschera di _contrasto" #: bin/gscan2pdf:645 msgid "Apply an unsharp mask" msgstr "Applica maschera di contrasto" #: bin/gscan2pdf:648 msgid "_Crop" msgstr "Rita_glia" #: bin/gscan2pdf:649 msgid "Crop pages" msgstr "Ritaglia le pagine" #: bin/gscan2pdf:653 msgid "_Clean up" msgstr "Pulis_ci" #: bin/gscan2pdf:654 bin/gscan2pdf:4085 msgid "Clean up scanned images with unpaper" msgstr "Immagini scansionate migliorate con unpaper" #: bin/gscan2pdf:657 msgid "_OCR" msgstr "_OCR" #: bin/gscan2pdf:658 msgid "Optical Character Recognition" msgstr "Riconoscimento ottico dei caratteri" #: bin/gscan2pdf:660 msgid "U_ser-defined" msgstr "Definito dall'U_tente" #: bin/gscan2pdf:663 bin/gscan2pdf:665 msgid "_Help" msgstr "A_iuto" #: bin/gscan2pdf:666 msgid "Help" msgstr "Aiuto" #: bin/gscan2pdf:668 msgid "_About" msgstr "Infom_azioni" #: bin/gscan2pdf:674 msgid "_Drag" msgstr "_Trascina" #: bin/gscan2pdf:675 msgid "Use the hand tool" msgstr "Usa il tool manuale" #: bin/gscan2pdf:680 msgid "Use the rectangular selection tool" msgstr "Usa il tool di selezione rettangolare" #: bin/gscan2pdf:684 msgid "_Paint" msgstr "_Disegna" #: bin/gscan2pdf:685 msgid "Use the painter tool" msgstr "Usa lo strumento di disegno" #: bin/gscan2pdf:965 lib/Gscan2pdf/Document.pm:2594 #: lib/Gscan2pdf/Document.pm:2595 msgid "Error copying page" msgstr "Errore nella copia della pagina" #: bin/gscan2pdf:1082 msgid "Image" msgstr "Immagine" #: bin/gscan2pdf:1117 msgid "OCR Output" msgstr "Output dell'OCR" #: bin/gscan2pdf:1174 msgid "Mode" msgstr "Modalità" #: bin/gscan2pdf:1176 msgid "Lineart" msgstr "Al tratto" #: bin/gscan2pdf:1177 msgid "Grayscale" msgstr "Scala di grigi" #: bin/gscan2pdf:1178 msgid "Gray" msgstr "Grigio" #: bin/gscan2pdf:1179 msgid "Color" msgstr "Colore:" #: bin/gscan2pdf:1180 msgid "Black & White" msgstr "Bianco e Nero" #: bin/gscan2pdf:1181 msgid "True Gray" msgstr "Grigio vero" #: bin/gscan2pdf:1182 msgid "Binary" msgstr "Binario" #: bin/gscan2pdf:1183 bin/gscan2pdf:1242 bin/gscan2pdf:1243 msgid "Auto" msgstr "Automatico" #: bin/gscan2pdf:1184 msgid "Halftone" msgstr "Mezzi toni" #: bin/gscan2pdf:1185 msgid "24bit Color" msgstr "Colore 24bit" #: bin/gscan2pdf:1189 bin/gscan2pdf:2547 bin/gscan2pdf:2644 msgid "Compression" msgstr "Compressione" #: bin/gscan2pdf:1191 bin/gscan2pdf:2539 bin/gscan2pdf:2636 msgid "None" msgstr "(Nessuno)" #: bin/gscan2pdf:1192 bin/gscan2pdf:2537 bin/gscan2pdf:2601 bin/gscan2pdf:2622 msgid "JPEG" msgstr "JPEG" #: bin/gscan2pdf:1195 bin/gscan2pdf:8127 msgid "Resolution" msgstr "Risoluzione" #: bin/gscan2pdf:1196 msgid "Brightness" msgstr "Luminosità" #: bin/gscan2pdf:1197 msgid "Gain" msgstr "Guadagno" #: bin/gscan2pdf:1198 msgid "Contrast" msgstr "Contrasto" #: bin/gscan2pdf:1199 bin/gscan2pdf:6406 bin/gscan2pdf:6417 bin/gscan2pdf:6620 msgid "Threshold" msgstr "Soglia" #: bin/gscan2pdf:1201 msgid "Speed" msgstr "Velocita'" #: bin/gscan2pdf:1203 bin/gscan2pdf:1210 bin/gscan2pdf:1217 bin/gscan2pdf:1224 #: bin/gscan2pdf:1231 msgid "Yes" msgstr "Sí" #: bin/gscan2pdf:1204 bin/gscan2pdf:1211 bin/gscan2pdf:1218 bin/gscan2pdf:1225 #: bin/gscan2pdf:1232 msgid "No" msgstr "No" #: bin/gscan2pdf:1208 msgid "Batch scan" msgstr "Scansine in gruppo" #: bin/gscan2pdf:1215 bin/gscan2pdf:1222 msgid "Wait for button" msgstr "Attendi la pressione del tasto" #: bin/gscan2pdf:1229 msgid "Cache calibration" msgstr "Calibrazione della cache" #: bin/gscan2pdf:1236 msgid "Source" msgstr "Origine" #: bin/gscan2pdf:1238 msgid "Normal" msgstr "Normale" #: bin/gscan2pdf:1239 msgid "ADF" msgstr "ADF" #: bin/gscan2pdf:1240 msgid "Automatic Document Feeder" msgstr "Alimentatore automatico di documenti" #: bin/gscan2pdf:1241 msgid "XPA" msgstr "XPA" #: bin/gscan2pdf:1244 msgid "Flatbed" msgstr "Piano fisso" #: bin/gscan2pdf:1245 msgid "Transparency Adapter" msgstr "Adattatore per pellicole" #: bin/gscan2pdf:1246 msgid "Transparency Unit" msgstr "Adattatore per pellicole" #: bin/gscan2pdf:1249 bin/gscan2pdf:1251 msgid "Page Width" msgstr "Larghezza pagina" #: bin/gscan2pdf:1250 bin/gscan2pdf:1252 msgid "Page Height" msgstr "Altezza pagina" #: bin/gscan2pdf:1253 msgid "Top Overscan" msgstr "" #: bin/gscan2pdf:1254 msgid "Bottom Overscan" msgstr "" #: bin/gscan2pdf:1256 bin/gscan2pdf:1263 msgid "ADF Mode" msgstr "Modo ADF" #: bin/gscan2pdf:1258 bin/gscan2pdf:1265 msgid "Simplex" msgstr "Solo fronte" #: bin/gscan2pdf:1259 bin/gscan2pdf:1266 msgid "Duplex" msgstr "Fronte e retro" #: bin/gscan2pdf:1301 bin/gscan2pdf:1306 msgid "Pick crashed session to restore" msgstr "" #: bin/gscan2pdf:1308 bin/gscan2pdf:2609 msgid "Session" msgstr "Sessione" #: bin/gscan2pdf:1338 #, perl-format msgid "" "Warning: unable to use %s for temporary storage. Defaulting to %s instead." msgstr "" "Avviso: impossibile utilizzare %s per l'immagazzinamento temporaneo. Verrà " "utilizzato %s." #: bin/gscan2pdf:1441 msgid "GOCR" msgstr "GOCR" #: bin/gscan2pdf:1441 msgid "Process image with GOCR." msgstr "Processa l'immagine con GOCR." #: bin/gscan2pdf:1445 msgid "Tesseract" msgstr "Tesseract" #: bin/gscan2pdf:1446 msgid "Process image with Tesseract." msgstr "Processa l'immagine con Tesseract." #: bin/gscan2pdf:1450 msgid "Ocropus" msgstr "Ocropus" #: bin/gscan2pdf:1450 msgid "Process image with Ocropus." msgstr "Elabora l'immagine con Ocropus" #: bin/gscan2pdf:1454 msgid "Cuneiform" msgstr "Cuneiforme" #: bin/gscan2pdf:1455 msgid "Process image with Cuneiform." msgstr "Elabora l'immagine con Cuneiform" #: bin/gscan2pdf:1461 msgid "Save image and Save as PDF both require imagemagick\n" msgstr "Sia Salva immagine che Salva come PDF necessitano di imagemagick\n" #: bin/gscan2pdf:1465 msgid "Save image requires libtiff\n" msgstr "Salva immagine necessita di libtiff\n" #: bin/gscan2pdf:1469 msgid "Save as DjVu requires djvulibre-bin\n" msgstr "Per salvare come DjVu richiede djvulibre-bin\n" #: bin/gscan2pdf:1473 msgid "Email as PDF requires xdg-email\n" msgstr "Inviare come allegato PDF di una email richiede xdg-email\n" #: bin/gscan2pdf:1518 msgid "The rotating options and unpaper support require perlmagick\n" msgstr "" "Le opzioni di rotazione e il supporto unpaper richiedono perlmagick\n" #: bin/gscan2pdf:1524 msgid "unpaper missing\n" msgstr "unpaper non è disponibile\n" #: bin/gscan2pdf:1534 msgid "OCR requires gocr, tesseract, ocropus, or cuneiform\n" msgstr "L'OCR richiede gocr, tesseract, ocropus o cuneiform\n" #: bin/gscan2pdf:1539 msgid "Warning: missing packages" msgstr "Attenzione: pacchetti mancanti" #: bin/gscan2pdf:1544 msgid "Don't show this message again" msgstr "Non mostrare più questo messaggio" #: bin/gscan2pdf:1753 msgid "" "Some pages have not been saved.\n" "Do you really want to clear all pages?" msgstr "" "Alcune pagine non sono state salvate.\n" "Cancellare tutte le pagine?" #: bin/gscan2pdf:1828 bin/gscan2pdf:1858 #, perl-format msgid "Process %i of %i (%s)" msgstr "Processo %i di %i (%s)" #: bin/gscan2pdf:1867 #, perl-format msgid "Process %i of %i" msgstr "Processo %i di %i" #: bin/gscan2pdf:1895 msgid "Open image" msgstr "Apri un'immagine" #: bin/gscan2pdf:1903 bin/gscan2pdf:2797 bin/gscan2pdf:3113 msgid "Image files" msgstr "File immagine" #: bin/gscan2pdf:1940 msgid "Pages to extract" msgstr "Pagine da estrarre" #: bin/gscan2pdf:1943 bin/gscan2pdf:2117 bin/gscan2pdf:2586 bin/gscan2pdf:3353 #: bin/gscan2pdf:3494 bin/gscan2pdf:4104 bin/gscan2pdf:4514 bin/gscan2pdf:5825 #: bin/gscan2pdf:6409 bin/gscan2pdf:6495 bin/gscan2pdf:6565 bin/gscan2pdf:6737 #: bin/gscan2pdf:7011 bin/gscan2pdf:7274 bin/gscan2pdf:7757 bin/gscan2pdf:8123 #: lib/Gscan2pdf/Dialog.pm:56 lib/Gscan2pdf/Dialog/Renumber.pm:80 #: lib/Gscan2pdf/Scanner/Dialog.pm:201 t/05_Dialog.t:28 msgid "vbox" msgstr "vbox" #: bin/gscan2pdf:1946 msgid "First page to extract" msgstr "Prima pagina da estrarre" #: bin/gscan2pdf:1953 msgid "Last page to extract" msgstr "Ultima pagina da estrarre" #: bin/gscan2pdf:2042 lib/Gscan2pdf/Dialog/Renumber.pm:83 msgid "Page Range" msgstr "Intervallo pagine" #: bin/gscan2pdf:2092 msgid "Metadata" msgstr "Metadati" #: bin/gscan2pdf:2101 msgid "Date" msgstr "Data" #: bin/gscan2pdf:2114 msgid "Select Date" msgstr "Seleziona data" #: bin/gscan2pdf:2136 msgid "Today" msgstr "Oggi" #: bin/gscan2pdf:2150 msgid "Year-Month-Day" msgstr "Anno-Mese-Giorno" #: bin/gscan2pdf:2156 msgid "Document author" msgstr "Autore" #: bin/gscan2pdf:2165 msgid "Title" msgstr "Titolo" #: bin/gscan2pdf:2174 msgid "Subject" msgstr "Argomento" #: bin/gscan2pdf:2183 msgid "Keywords" msgstr "Parole chiave" #: bin/gscan2pdf:2245 msgid "Editing text" msgstr "Modifica il testo" #: bin/gscan2pdf:2252 bin/gscan2pdf:2258 bin/gscan2pdf:2332 msgid "text" msgstr "testo" #: bin/gscan2pdf:2352 msgid "PDF filename" msgstr "Nome del file PDF" #: bin/gscan2pdf:2381 msgid "PDF files" msgstr "file PDF" #: bin/gscan2pdf:2405 bin/gscan2pdf:2823 bin/gscan2pdf:2880 bin/gscan2pdf:2976 #: bin/gscan2pdf:3035 bin/gscan2pdf:3087 bin/gscan2pdf:3275 #, perl-format msgid "File %s is read-only" msgstr "Il file %s è di sola lettura" #: bin/gscan2pdf:2482 msgid "JPEG Quality" msgstr "Qualità JPEG" #: bin/gscan2pdf:2496 msgid "Downsample to" msgstr "Riduzione risoluzione a" #: bin/gscan2pdf:2501 msgid "PPI" msgstr "PPI" #: bin/gscan2pdf:2520 msgid "Automatic" msgstr "Automatico" #: bin/gscan2pdf:2521 msgid "Let gscan2pdf which type of compression to use." msgstr "Lascia decidere a gscan2pdf il tipo di compressione da usare." #: bin/gscan2pdf:2524 bin/gscan2pdf:2616 msgid "LZW" msgstr "LZW" #: bin/gscan2pdf:2525 bin/gscan2pdf:2617 msgid "Compress output with Lempel-Ziv & Welch encoding." msgstr "Output compresso con la codifca Lempel-Ziv & Welch." #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Zip" msgstr "Zip" #: bin/gscan2pdf:2527 bin/gscan2pdf:2619 msgid "Compress output with deflate encoding." msgstr "Output compresso con la codifca \"deflate\"." #: bin/gscan2pdf:2529 bin/gscan2pdf:2624 msgid "Packbits" msgstr "Packbits" #: bin/gscan2pdf:2530 bin/gscan2pdf:2625 msgid "Compress output with Packbits encoding." msgstr "Output compresso con la codifca Packbits." #: bin/gscan2pdf:2536 bin/gscan2pdf:2604 msgid "PNG" msgstr "PNG" #: bin/gscan2pdf:2536 msgid "Compress output with PNG encoding." msgstr "Comprimi l'output con codifica PNG." #: bin/gscan2pdf:2537 bin/gscan2pdf:2622 msgid "Compress output with JPEG encoding." msgstr "Output compresso con la codifca JPEG." #: bin/gscan2pdf:2540 bin/gscan2pdf:2637 msgid "Use no compression algorithm on output." msgstr "Output non compresso." #: bin/gscan2pdf:2594 msgid "Image type" msgstr "Tipo di immagine" #: bin/gscan2pdf:2598 msgid "PDF" msgstr "PDF" #: bin/gscan2pdf:2598 msgid "Portable Document Format" msgstr "Portable Document Format" #: bin/gscan2pdf:2599 msgid "GIF" msgstr "GIF" #: bin/gscan2pdf:2599 msgid "CompuServe graphics interchange format" msgstr "CompuServe Graphics Interchange Format" #: bin/gscan2pdf:2602 msgid "Joint Photographic Experts Group JFIF format" msgstr "Joint Photographic Experts Group JFIF format" #: bin/gscan2pdf:2604 msgid "Portable Network Graphics" msgstr "Portable Network Graphics" #: bin/gscan2pdf:2605 msgid "PNM" msgstr "PNM" #: bin/gscan2pdf:2605 msgid "Portable anymap" msgstr "" #: bin/gscan2pdf:2606 msgid "PS" msgstr "PS" #: bin/gscan2pdf:2606 msgid "Postscript" msgstr "Postscript" #: bin/gscan2pdf:2607 msgid "TIFF" msgstr "TIFF" #: bin/gscan2pdf:2607 msgid "Tagged Image File Format" msgstr "Tagged Image File Format" #: bin/gscan2pdf:2608 msgid "Text" msgstr "Testo" #: bin/gscan2pdf:2608 msgid "Plain text" msgstr "Testo semplice" #: bin/gscan2pdf:2609 msgid "gscan2pdf session file" msgstr "File di sessione di gscan2pdf" #: bin/gscan2pdf:2611 msgid "DjVu" msgstr "DjVu" #: bin/gscan2pdf:2611 msgid "Deja Vu" msgstr "Deja Vu" #: bin/gscan2pdf:2628 msgid "G3" msgstr "G3" #: bin/gscan2pdf:2629 msgid "Compress output with CCITT Group 3 encoding." msgstr "Output compresso con la codifca CCITT Gruppo 3." #: bin/gscan2pdf:2632 msgid "G4" msgstr "G4" #: bin/gscan2pdf:2633 msgid "Compress output with CCITT Group 4 encoding." msgstr "Output compresso con la codifca CCITT Gruppo 4." #: bin/gscan2pdf:2649 msgid "tiff" msgstr "tiff" #: bin/gscan2pdf:2681 msgid "Font for non-ASCII text" msgstr "Caratteri per testo non-ASCII" #: bin/gscan2pdf:2790 msgid "TIFF filename" msgstr "Nome del file TIFF" #: bin/gscan2pdf:2848 msgid "Text filename" msgstr "Nome del file di testo" #: bin/gscan2pdf:2856 msgid "Text files" msgstr "File di testo" #: bin/gscan2pdf:2944 msgid "PS filename" msgstr "Nome del file PS" #: bin/gscan2pdf:2951 msgid "Postscript files" msgstr "File Postscript" #: bin/gscan2pdf:3003 msgid "gscan2pdf session filename" msgstr "Nome del file di sessione gscan2pdf" #: bin/gscan2pdf:3010 msgid "gscan2pdf session files" msgstr "" #: bin/gscan2pdf:3093 #, perl-format msgid "" "File %s exists.\n" "Really overwrite?" msgstr "" "Il file %s esiste.\n" "Lo sovrascrivo?" #: bin/gscan2pdf:3106 msgid "Image filename" msgstr "Nome file immagine" #: bin/gscan2pdf:3245 msgid "DjVu filename" msgstr "Nome del file DjVu" #: bin/gscan2pdf:3252 msgid "DjVu files" msgstr "File DjVu" #: bin/gscan2pdf:3349 msgid "Email as PDF" msgstr "Email come PDF" #: bin/gscan2pdf:3454 msgid "Error creating email" msgstr "Errore nella creazione dell'e-mail" #: bin/gscan2pdf:3490 bin/gscan2pdf:4313 msgid "Scan Document" msgstr "Acquisisci il documento" #: bin/gscan2pdf:3507 lib/Gscan2pdf/Scanner/Dialog.pm:248 msgid "Page Options" msgstr "Imposta pagina" #: bin/gscan2pdf:3510 lib/Gscan2pdf/Scanner/Dialog.pm:251 msgid "# Pages" msgstr "# Pagine" #: bin/gscan2pdf:3519 lib/Gscan2pdf/PageRange.pm:34 #: lib/Gscan2pdf/Scanner/Dialog.pm:261 msgid "All" msgstr "Tutto" #: bin/gscan2pdf:3520 lib/Gscan2pdf/Scanner/Dialog.pm:262 msgid "Scan all pages" msgstr "Acquisisci tutte le pagine" #: bin/gscan2pdf:3532 bin/gscan2pdf:3537 lib/Gscan2pdf/Scanner/Dialog.pm:274 #: lib/Gscan2pdf/Scanner/Dialog.pm:279 msgid "Set number of pages to scan" msgstr "Imposta il numero di pagine da acquisire" #: bin/gscan2pdf:3550 lib/Gscan2pdf/Scanner/Dialog.pm:308 msgid "Extended page numbering" msgstr "Numerazione pagina estesa" #: bin/gscan2pdf:3554 lib/Gscan2pdf/Scanner/Dialog.pm:312 msgid "Page number" msgstr "Numero di pagina" #: bin/gscan2pdf:3563 lib/Gscan2pdf/Dialog/Renumber.pm:111 #: lib/Gscan2pdf/Scanner/Dialog.pm:321 msgid "Start" msgstr "Inizio" #: bin/gscan2pdf:3572 lib/Gscan2pdf/Dialog/Renumber.pm:132 #: lib/Gscan2pdf/Scanner/Dialog.pm:340 msgid "Increment" msgstr "Passo" #: bin/gscan2pdf:3604 lib/Gscan2pdf/Scanner/Dialog.pm:372 msgid "Source document" msgstr "Documento di origine" #: bin/gscan2pdf:3611 lib/Gscan2pdf/Scanner/Dialog.pm:379 msgid "Single sided" msgstr "Faccia singola" #: bin/gscan2pdf:3612 lib/Gscan2pdf/Scanner/Dialog.pm:380 msgid "Source document is single-sided" msgstr "Il documento di origine è a faccia singola" #: bin/gscan2pdf:3622 lib/Gscan2pdf/Scanner/Dialog.pm:390 msgid "Double sided" msgstr "A doppia faccia" #: bin/gscan2pdf:3623 lib/Gscan2pdf/Scanner/Dialog.pm:391 msgid "Source document is double-sided" msgstr "Il documento di origine è a doppia faccia" #: bin/gscan2pdf:3629 lib/Gscan2pdf/Scanner/Dialog.pm:397 msgid "Side to scan" msgstr "Faccia da acquisire" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Facing" msgstr "Fronte" #: bin/gscan2pdf:3633 lib/Gscan2pdf/Scanner/Dialog.pm:401 msgid "Reverse" msgstr "Retro" #: bin/gscan2pdf:3655 lib/Gscan2pdf/Scanner/Dialog.pm:418 msgid "Sets which side of a double-sided document is scanned" msgstr "Imposta quale faccia del documento viene acquisita" #: bin/gscan2pdf:3719 msgid "Scan Options" msgstr "Opzioni di scansione" #: bin/gscan2pdf:3722 msgid "Device-dependent options" msgstr "Opzioni dipendenti dalla periferica" #: bin/gscan2pdf:3729 lib/Gscan2pdf/Scanner/Dialog.pm:458 msgid "Scan profiles" msgstr "Profili di scansione" #: bin/gscan2pdf:3778 bin/gscan2pdf:3784 lib/Gscan2pdf/Scanner/Dialog.pm:479 #: lib/Gscan2pdf/Scanner/Dialog.pm:485 msgid "Name of scan profile" msgstr "Nome del profilo di scansione" #: bin/gscan2pdf:3828 lib/Gscan2pdf/Scanner/Dialog.pm:518 msgid "Scan" msgstr "Acquisisci" #: bin/gscan2pdf:3866 msgid "Must scan facing pages first" msgstr "Deve essere acquisito prima il fronte delle pagine" #: bin/gscan2pdf:3977 msgid "Post-processing" msgstr "Post-processing" #: bin/gscan2pdf:3986 bin/gscan2pdf:4008 msgid "Rotate" msgstr "Ruota" #: bin/gscan2pdf:3987 bin/gscan2pdf:4009 msgid "Rotate image after scanning" msgstr "Ruota l'immagine dopo la scansione" #: bin/gscan2pdf:3990 msgid "Both sides" msgstr "Entrambi i lati" #: bin/gscan2pdf:3990 msgid "Both sides." msgstr "Entrambi i lati." #: bin/gscan2pdf:3991 msgid "Facing side" msgstr "Fronte" #: bin/gscan2pdf:3991 msgid "Facing side." msgstr "Fronte." #: bin/gscan2pdf:3992 msgid "Reverse side" msgstr "Retro" #: bin/gscan2pdf:3992 msgid "Reverse side." msgstr "Retro." #: bin/gscan2pdf:3995 bin/gscan2pdf:4013 msgid "Select side to rotate" msgstr "Seleziona il lato da ruotare" #: bin/gscan2pdf:3998 msgid "90" msgstr "90" #: bin/gscan2pdf:3998 msgid "Rotate image 90 degrees clockwise." msgstr "Ruota immagine di 90 gradi in senso orario." #: bin/gscan2pdf:3999 msgid "180" msgstr "180" #: bin/gscan2pdf:3999 msgid "Rotate image 180 degrees clockwise." msgstr "Ruota immagine di 180 gradi in senso orario." #: bin/gscan2pdf:4000 msgid "270" msgstr "270" #: bin/gscan2pdf:4000 msgid "Rotate image 90 degrees anticlockwise." msgstr "Ruota immagine di 90 gradi in senso antiorario." #: bin/gscan2pdf:4003 bin/gscan2pdf:4016 msgid "Select direction of rotation" msgstr "Seleziona direzione di rotazione" #: bin/gscan2pdf:4083 msgid "Clean up images" msgstr "Pulisci immagini" #: bin/gscan2pdf:4094 msgid "Options" msgstr "Opzioni" #: bin/gscan2pdf:4095 msgid "Set unpaper options" msgstr "Imposta opzioni di unpaper" #: bin/gscan2pdf:4101 msgid "unpaper options" msgstr "opzioni di unpaper" #: bin/gscan2pdf:4136 bin/gscan2pdf:4137 msgid "OCR scanned pages" msgstr "Pagine scansionate con OCR" #: bin/gscan2pdf:4151 msgid "Select OCR engine" msgstr "Seleziona motore OCR" #: bin/gscan2pdf:4210 lib/Gscan2pdf/Scanner/Dialog.pm:634 msgid "Fetching list of devices" msgstr "Acquisizione elenco dispositivi" #: bin/gscan2pdf:4225 lib/Gscan2pdf/Scanner/Dialog.pm:654 msgid "No devices found" msgstr "Nessun dispositivo trovato" #: bin/gscan2pdf:4367 bin/gscan2pdf:4732 bin/gscan2pdf:4777 bin/gscan2pdf:5214 #: lib/Gscan2pdf/Scanner/Dialog.pm:343 lib/Gscan2pdf/Scanner/Dialog.pm:348 #: t/061_Scanner_Dialog.t:38 t/061_Scanner_Dialog.t:95 msgid "page-number-increment" msgstr "" #: bin/gscan2pdf:4374 bin/gscan2pdf:4729 bin/gscan2pdf:4730 bin/gscan2pdf:4776 #: bin/gscan2pdf:5213 lib/Gscan2pdf/Scanner/Dialog.pm:361 #: t/061_Scanner_Dialog.t:37 msgid "page-number-start" msgstr "" #: bin/gscan2pdf:4663 lib/Gscan2pdf/Scanner/Dialog.pm:210 msgid "Device" msgstr "Periferica" #: bin/gscan2pdf:4671 lib/Gscan2pdf/Scanner/Dialog.pm:213 msgid "Rescan for devices" msgstr "Rileva i dispositivi" #: bin/gscan2pdf:4694 lib/Gscan2pdf/Scanner/Dialog.pm:237 msgid "Sets the device to be used for the scan" msgstr "Seleziona la periferica da utilizzare per l'acquisizione" #: bin/gscan2pdf:4780 lib/Gscan2pdf/Scanner/Dialog.pm:300 #: t/061_Scanner_Dialog.t:35 msgid "num-pages" msgstr "" #: bin/gscan2pdf:4821 msgid "Scanning" msgstr "Acquisizione" #: bin/gscan2pdf:4974 msgid "Unable to load image" msgstr "Non è possibile caricare l'immagine" #: bin/gscan2pdf:5004 msgid "print-pages" msgstr "" #: bin/gscan2pdf:5008 msgid "page-ranges" msgstr "" #: bin/gscan2pdf:5405 msgid "Patches gratefully received from:" msgstr "Patch ricevute da:" #: bin/gscan2pdf:5407 msgid "To aid the scan-to-PDF process" msgstr "Per aiutare il procedimento scan-to-PDF" #: bin/gscan2pdf:5408 msgid "Copyright 2006--2012 Jeffrey Ratcliffe" msgstr "Copyright 2006--2012 Jeffrey Ratcliffe" #: bin/gscan2pdf:5492 bin/gscan2pdf:6028 msgid "The options cache seems to be empty. Reload device-dependent options?" msgstr "" #: bin/gscan2pdf:5519 bin/gscan2pdf:6054 msgid "Updating options" msgstr "Aggiorno le opzioni" #: bin/gscan2pdf:5571 msgid "Paper size" msgstr "Dimensione carta" #: bin/gscan2pdf:5572 bin/gscan2pdf:5672 bin/gscan2pdf:5840 bin/gscan2pdf:6769 msgid "Width" msgstr "Larghezza" #: bin/gscan2pdf:5573 bin/gscan2pdf:5678 bin/gscan2pdf:5841 bin/gscan2pdf:6780 msgid "Height" msgstr "Altezza" #: bin/gscan2pdf:5574 bin/gscan2pdf:5684 bin/gscan2pdf:5842 #: lib/Gscan2pdf/Unpaper.pm:124 lib/Gscan2pdf/Unpaper.pm:152 msgid "Left" msgstr "Sinistra" #: bin/gscan2pdf:5575 bin/gscan2pdf:5690 bin/gscan2pdf:5843 #: lib/Gscan2pdf/Unpaper.pm:129 lib/Gscan2pdf/Unpaper.pm:157 msgid "Top" msgstr "Alto" #: bin/gscan2pdf:5589 bin/gscan2pdf:5703 bin/gscan2pdf:6232 msgid "Manual" msgstr "Manuale" #: bin/gscan2pdf:5590 bin/gscan2pdf:5700 msgid "Edit" msgstr "Modifica" #: bin/gscan2pdf:5591 msgid "Selects or edits the paper size" msgstr "Consente la selezione o la modifica della dimensione del foglio" #: bin/gscan2pdf:5673 msgid "Width of scan area" msgstr "Larghezza dell'area di scansione" #: bin/gscan2pdf:5679 msgid "Height of scan area" msgstr "Altezza dell'area di scansione" #: bin/gscan2pdf:5685 msgid "Top-left x position of scan area" msgstr "" "Posizione sul piano orizzontale in alto a sinistra dell'area di scansione" #: bin/gscan2pdf:5691 msgid "Top-left y position of scan area" msgstr "" "Posizione sul piano verticale in alto a sinistra dell'area di scansione" #: bin/gscan2pdf:5822 msgid "Edit paper size" msgstr "Modifica dimensione foglio" #: bin/gscan2pdf:5839 msgid "Name" msgstr "Nome" #: bin/gscan2pdf:5893 msgid "Cannot delete all paper sizes" msgstr "Impossibile eliminare tutte le dimensioni del foglio" #: bin/gscan2pdf:5955 msgid "" "The following paper sizes are too big to be scanned by the selected device:" msgstr "" "Le seguenti dimensioni del foglio sono troppo grandi per essere scansionate " "dal dispositivo selezionato:" #: bin/gscan2pdf:6419 bin/gscan2pdf:6605 msgid "%" msgstr "%" #: bin/gscan2pdf:6492 msgid "Negate" msgstr "Negativo" #: bin/gscan2pdf:6562 msgid "Unsharp mask" msgstr "Maschera di contrasto" #: bin/gscan2pdf:6573 msgid "Radius" msgstr "Raggio" #: bin/gscan2pdf:6575 bin/gscan2pdf:6592 bin/gscan2pdf:6747 bin/gscan2pdf:6759 #: bin/gscan2pdf:6771 bin/gscan2pdf:6782 msgid "pixels" msgstr "pixel" #: bin/gscan2pdf:6582 msgid "" "The radius of the Gaussian, in pixels, not counting the center pixel (0 = " "automatic)." msgstr "" "Il raggio gaussiano, in pixel, senza contare il pixel centrale (0 = " "automatico)." #: bin/gscan2pdf:6590 msgid "Sigma" msgstr "Sigma" #: bin/gscan2pdf:6597 msgid "The standard deviation of the Gaussian." msgstr "Deviazione gaussiana standard." #: bin/gscan2pdf:6603 msgid "Amount" msgstr "Quantità" #: bin/gscan2pdf:6612 msgid "" "The percentage of the difference between the original and the blur image " "that is added back into the original." msgstr "" "Percentuale della differenza tra l'originale e l'immagine sfuocata aggiunta " "all'originale." #: bin/gscan2pdf:6627 msgid "" "The threshold, as a fraction of QuantumRange, needed to apply the difference " "amount." msgstr "" "Soglia, in frazione di QuantumRange, necessaria per applicare la quantità " "mancante." #: bin/gscan2pdf:6733 msgid "Crop" msgstr "Ritaglia" #: bin/gscan2pdf:6745 msgid "x" msgstr "x" #: bin/gscan2pdf:6751 msgid "The x-position of the left hand edge of the crop." msgstr "" #: bin/gscan2pdf:6757 msgid "y" msgstr "y" #: bin/gscan2pdf:6763 msgid "The y-position of the top edge of the crop." msgstr "" #: bin/gscan2pdf:6774 msgid "The width of the crop." msgstr "" #: bin/gscan2pdf:6785 msgid "The height of the crop." msgstr "" #: bin/gscan2pdf:6906 msgid "label" msgstr "etichetta" #: bin/gscan2pdf:7007 msgid "unpaper" msgstr "unpaper" #: bin/gscan2pdf:7216 bin/gscan2pdf:7244 msgid "Language to recognise" msgstr "Lingua da riconoscere" #: bin/gscan2pdf:7227 msgid "English" msgstr "Inglese" #: bin/gscan2pdf:7270 msgid "OCR" msgstr "OCR" #: bin/gscan2pdf:7279 msgid "OCR Engine" msgstr "Motore OCR" #: bin/gscan2pdf:7323 msgid "Start OCR" msgstr "Avvia OCR" #: bin/gscan2pdf:7339 msgid "No page selected" msgstr "Nessuna pagina selezionata" #: bin/gscan2pdf:7374 msgid "" "Some pages have not been saved.\n" "Do you really want to quit?" msgstr "" "Alcune pagine non sono state salvate.\n" "Uscire comunque ?" #: bin/gscan2pdf:7432 #, perl-format msgid "" "The help viewer requires module Gtk2::Ex::PodViewer\n" "Alternatively, try: %s %s\n" "\n" msgstr "" "Il sistema di aiuto richiede il modulo tk2::Ex::PodViewer\n" "In alternativa puoi provare: %s %s\n" "\n" #: bin/gscan2pdf:7698 msgid "This operation cannot be undone. Are you sure?" msgstr "" "Impossibile annullare questa operazione in seguito. Procedere comunque ?" #: bin/gscan2pdf:7753 msgid "Preferences" msgstr "Preferenze" #: bin/gscan2pdf:7762 msgid "Frontend" msgstr "Frontend" #: bin/gscan2pdf:7766 msgid "libsane-perl" msgstr "libsane-perl" #: bin/gscan2pdf:7767 msgid "Scan using the perl bindings for SANE." msgstr "" #: bin/gscan2pdf:7770 msgid "scanimage" msgstr "" #: bin/gscan2pdf:7771 msgid "Scan using the scanimage frontend." msgstr "" #: bin/gscan2pdf:7775 msgid "scanimage-perl" msgstr "" #: bin/gscan2pdf:7776 msgid "Scan using the scanimage-perl frontend." msgstr "" #: bin/gscan2pdf:7779 msgid "scanadf-perl" msgstr "" #: bin/gscan2pdf:7780 msgid "Scan using the scanadf-perl frontend." msgstr "Scannerizza usando il frontend scanadf-perl." #: bin/gscan2pdf:7785 msgid "scanadf" msgstr "" #: bin/gscan2pdf:7786 msgid "Scan using the scanadf frontend." msgstr "" #: bin/gscan2pdf:7791 msgid "Cycle SANE handle after scan" msgstr "" #: bin/gscan2pdf:7814 msgid "Default filename for PDFs" msgstr "nome predefinito per i PDF" #: bin/gscan2pdf:7820 msgid "" "%a\t author\n" "%t\t title\n" "%y\t document's year\n" "%Y\t today's year\n" "%m\t document's month\n" "%M\t today's month\n" "%d\t document's day\n" "%D\t today's day" msgstr "" "%a\t autore\n" "%t\t titolo\n" "%y\t anno del documento\n" "%Y\t anno attuale\n" "%m\t mese del documento\n" "%M\t mese attuale\n" "%d\t giorno del documento\n" "%D\t giorno attuale" #: bin/gscan2pdf:7830 msgid "Scan command prefix" msgstr "prefisso per il comando di scansione" #: bin/gscan2pdf:7839 msgid "Restore window settings on startup" msgstr "Ripristina le impostazioni della finestra all'avvio" #: bin/gscan2pdf:7845 msgid "Cache device-dependent options" msgstr "" #: bin/gscan2pdf:7851 msgid "Clear device-dependent options cache" msgstr "" #: bin/gscan2pdf:7862 msgid "Temporary directory" msgstr "Cartella temporanea" #: bin/gscan2pdf:7867 msgid "Browse" msgstr "Sfoglia" #: bin/gscan2pdf:7871 msgid "Select temporary directory" msgstr "Seleziona directory temporanea" #: bin/gscan2pdf:7888 msgid "Blank threshold" msgstr "Soglia del bianco" #: bin/gscan2pdf:7893 msgid "Threshold used for selecting blank pages" msgstr "Soglia usata per selezionare pagine bianche" #: bin/gscan2pdf:7899 msgid "Dark threshold" msgstr "Soglia del nero" #: bin/gscan2pdf:7904 msgid "Threshold used for selecting dark pages" msgstr "Soglia usata per selezionare le pagine scure" #: bin/gscan2pdf:7910 msgid "OCR output" msgstr "output dell'OCR" #: bin/gscan2pdf:7915 msgid "Replace" msgstr "Rimpiazza" #: bin/gscan2pdf:7917 msgid "" "Replace the contents of the text buffer with that from the OCR output." msgstr "" "Rimpiazza il contrenuto del buffer di testo con quello dell'uscita dell'OCR" #: bin/gscan2pdf:7920 msgid "Prepend" msgstr "Scrivi in testa" #: bin/gscan2pdf:7921 msgid "Prepend the OCR output to the text buffer." msgstr "Scrivi l'output dell'OCR all'inizio del buffer di testo" #: bin/gscan2pdf:7924 msgid "Append" msgstr "Aggiungi" #: bin/gscan2pdf:7925 msgid "Append the OCR output to the text buffer." msgstr "Scrivi l'output dell'OCR ala fine del buffer di testo" #: bin/gscan2pdf:7933 msgid "User-defined tools" msgstr "Strumenti definiti dall'utente" #: bin/gscan2pdf:7954 msgid "View files on saving" msgstr "Vedi i files durante il salvataggio" #: bin/gscan2pdf:8000 msgid "" "You will have to restart gscanp2df for changes to the temporary directory to " "take effect." msgstr "" "Sarà necessario riavviare gscan2pdf perché vengano applicati i cambiamenti " "alla directory temporanea." #: bin/gscan2pdf:8092 msgid "" "Use %i and %o for the input and output filenames respectively, or a single " "%i if the image is to be modified in-place.\n" "\n" "The other variable available is:\n" "\n" "%r resolution" msgstr "" "Usa %i e %o per i nomi dei file in input e in output rispettivamente, o un " "singolo %i se l'immagine deve essere modificata in loco.\n" "\n" "L'altra variabile disponibile è:\n" "\n" "%r risoluzione" #: bin/gscan2pdf:8119 msgid "Properties" msgstr "Proprietà" #: lib/Gscan2pdf/Dialog.pm:63 lib/Gscan2pdf/Dialog.pm:79 t/05_Dialog.t:25 msgid "hide-on-delete" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:78 lib/Gscan2pdf/Dialog/Renumber.pm:162 msgid "Renumber" msgstr "Ri-numera" #: lib/Gscan2pdf/Dialog/Renumber.pm:98 lib/Gscan2pdf/Dialog/Renumber.pm:207 #: lib/Gscan2pdf/Dialog/Renumber.pm:244 msgid "range" msgstr "intervallo" #: lib/Gscan2pdf/Dialog/Renumber.pm:102 msgid "Page numbering" msgstr "" #: lib/Gscan2pdf/Dialog/Renumber.pm:105 lib/Gscan2pdf/Scanner/Dialog.pm:254 msgid "border_width" msgstr "larghezza del bordo" #: lib/Gscan2pdf/Dialog/Renumber.pm:126 lib/Gscan2pdf/Dialog/Renumber.pm:192 #: lib/Gscan2pdf/Dialog/Renumber.pm:242 t/07_Dialog_Renumber.t:33 #: t/07_Dialog_Renumber.t:45 t/07_Dialog_Renumber.t:59 #: t/07_Dialog_Renumber.t:66 msgid "start" msgstr "avvio" #: lib/Gscan2pdf/Dialog/Renumber.pm:147 lib/Gscan2pdf/Dialog/Renumber.pm:193 #: lib/Gscan2pdf/Dialog/Renumber.pm:243 t/07_Dialog_Renumber.t:34 #: t/07_Dialog_Renumber.t:46 t/07_Dialog_Renumber.t:60 #: t/07_Dialog_Renumber.t:67 msgid "increment" msgstr "incremento" #: lib/Gscan2pdf/Dialog/Renumber.pm:205 lib/Gscan2pdf/Dialog/Renumber.pm:241 msgid "document" msgstr "documento" #: lib/Gscan2pdf/Dialog/Renumber.pm:295 msgid "" "The current settings would result in duplicate page numbers. Please select " "new start and increment values." msgstr "" #: lib/Gscan2pdf/Document.pm:83 msgid "Thumbnails" msgstr "Miniature" #: lib/Gscan2pdf/Document.pm:1502 msgid "Unknown DjVu file structure. Please contact the author." msgstr "Struttura del file DjVu sconosciuta. Perfavore contatta l'autore." #: lib/Gscan2pdf/Document.pm:1558 #, perl-format msgid "%s is not a recognised image type" msgstr "%s non è un tipo di immagine riconosciuta" #: lib/Gscan2pdf/Document.pm:1580 lib/Gscan2pdf/Document.pm:1637 #, perl-format msgid "Importing page %i of %i" msgstr "Importazione della pagina %i di %i" #: lib/Gscan2pdf/Document.pm:1613 msgid "Error extracting images from PDF" msgstr "Errore nell'estrazione delle immagini dal PDF" #: lib/Gscan2pdf/Document.pm:1692 msgid "Setting up PDF" msgstr "" #: lib/Gscan2pdf/Document.pm:1703 #, perl-format msgid "Saving page %i of %i" msgstr "Salvataggio della pagina %i di %i" #: lib/Gscan2pdf/Document.pm:1814 lib/Gscan2pdf/Document.pm:2136 #, perl-format msgid "Error compressing image: %s" msgstr "Errore nella compressione dell'immagine: %s" #: lib/Gscan2pdf/Document.pm:1919 #, perl-format msgid "Error creating PDF image object: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1930 #, perl-format msgid "Error embedding file image in %s format to PDF: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:1939 msgid "Closing PDF" msgstr "Chiudendo il PDF" #: lib/Gscan2pdf/Document.pm:1955 #, perl-format msgid "Writing page %i of %i" msgstr "Scrivendo la pagina %i di %i" #: lib/Gscan2pdf/Document.pm:2006 msgid "Error writing DjVu" msgstr "" #: lib/Gscan2pdf/Document.pm:2025 lib/Gscan2pdf/Document.pm:2227 #, perl-format msgid "Can't open file: %s" msgstr "" #: lib/Gscan2pdf/Document.pm:2050 msgid "Error adding text layer to DjVu" msgstr "Errore nell'aggiungere lo strato di testo a DjVu" #: lib/Gscan2pdf/Document.pm:2056 msgid "Closing DjVu" msgstr "Chiudendo DjVu" #: lib/Gscan2pdf/Document.pm:2063 msgid "Error closing DjVu" msgstr "Errore nella chiusura del DjVu" #: lib/Gscan2pdf/Document.pm:2078 #, perl-format msgid "Converting image %i of %i to TIFF" msgstr "Conversione dell'immagine %i di %i in TIFF" #: lib/Gscan2pdf/Document.pm:2105 msgid "Error writing TIFF" msgstr "Errore nella scrittura dell'immagine TIFF" #: lib/Gscan2pdf/Document.pm:2121 msgid "Concatenating TIFFs" msgstr "Concatenando le immagini TIFF" #: lib/Gscan2pdf/Document.pm:2140 msgid "Converting to PS" msgstr "Convertendo in PS" #: lib/Gscan2pdf/Document.pm:2200 lib/Gscan2pdf/Document.pm:2215 msgid "Error saving image" msgstr "Errore nel salvataggio dell'immagine" #: lib/Gscan2pdf/Frontend/CLI.pm:158 #, perl-format msgid "Scanning %i pages..." msgstr "Scannerizzando %i pagine..." #: lib/Gscan2pdf/Frontend/CLI.pm:163 #, perl-format msgid "Scanning page %i..." msgstr "Scansione pagina %i..." #: lib/Gscan2pdf/Frontend/CLI.pm:188 lib/Gscan2pdf/Frontend/CLI.pm:296 msgid "Scanner warming up" msgstr "Scanner in riscaldamento" #: lib/Gscan2pdf/Frontend/CLI.pm:195 msgid "Document feeder out of documents" msgstr "Terminati i fogli nell'alimentatore" #: lib/Gscan2pdf/Frontend/CLI.pm:212 lib/Gscan2pdf/Frontend/CLI.pm:325 msgid "Device busy" msgstr "Dispositivo occupato" #: lib/Gscan2pdf/Frontend/CLI.pm:218 lib/Gscan2pdf/Frontend/CLI.pm:330 msgid "Operation cancelled" msgstr "Operazione annullata" #: lib/Gscan2pdf/Frontend/CLI.pm:223 lib/Gscan2pdf/Frontend/CLI.pm:336 msgid "Unknown message: " msgstr "Messaggio sconosciuto: " #: lib/Gscan2pdf/Page.pm:68 lib/Gscan2pdf/Page.pm:73 #, perl-format msgid "Error importing image %s: %s" msgstr "Errore importando l'immagine %s: %s" #: lib/Gscan2pdf/PageRange.pm:33 msgid "Selected" msgstr "Selezionati" #: lib/Gscan2pdf/PageRange.pm:58 msgid "active" msgstr "attivo" #: lib/Gscan2pdf/Scanner/Dialog.pm:218 t/061_Scanner_Dialog.t:33 #: t/061_Scanner_Dialog.t:59 msgid "device-list" msgstr "lista_dispositivi" #: lib/Gscan2pdf/Scanner/Dialog.pm:496 t/061_Scanner_Dialog.t:139 #: t/061_Scanner_Dialog.t:174 t/062_Scanner_Dialog.t:50 #: t/062_Scanner_Dialog.t:75 msgid "current-scan-options" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:567 msgid "logger" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:650 t/05_Dialog.t:24 msgid "transient-for" msgstr "" #: lib/Gscan2pdf/Scanner/Dialog.pm:716 msgid "device_list" msgstr "lista_dispositivi" #: lib/Gscan2pdf/Scanner/Dialog.pm:749 t/061_Scanner_Dialog.t:32 msgid "device" msgstr "periferica" #: lib/Gscan2pdf/Scanner/Dialog.pm:751 msgid "Opening device" msgstr "Aprendo la periferica" #: lib/Gscan2pdf/Scanner/Dialog.pm:760 msgid "Retrieving options" msgstr "" #: lib/Gscan2pdf/Unpaper.pm:41 msgid "Layout" msgstr "Formato" #: lib/Gscan2pdf/Unpaper.pm:44 msgid "Single" msgstr "Singolo" #: lib/Gscan2pdf/Unpaper.pm:46 msgid "One page per sheet, oriented upwards without rotation." msgstr "Una pagina per foglio, orientata verso l'alto senza rotazione." #: lib/Gscan2pdf/Unpaper.pm:49 msgid "Double" msgstr "Raddoppia" #: lib/Gscan2pdf/Unpaper.pm:51 msgid "" "Two pages per sheet, landscape orientation (one page on the left half, one " "page on the right half)." msgstr "" "Due pagine per foglio, orientamento orizzontale (una pagina nella metà di " "sinistra, una in quella di destra)" #: lib/Gscan2pdf/Unpaper.pm:59 msgid "# Output pages" msgstr "# Pagine di output" #: lib/Gscan2pdf/Unpaper.pm:60 msgid "Number of pages to output." msgstr "Numero di pagine in output" #: lib/Gscan2pdf/Unpaper.pm:68 msgid "No deskew" msgstr "Nessun deskew" #: lib/Gscan2pdf/Unpaper.pm:69 msgid "Disable deskewing." msgstr "Disabilita deskew" #: lib/Gscan2pdf/Unpaper.pm:74 msgid "No mask scan" msgstr "Nessuna maschera di scansione" #: lib/Gscan2pdf/Unpaper.pm:75 msgid "Disable mask detection." msgstr "Disabilita rilevamento maschera" #: lib/Gscan2pdf/Unpaper.pm:80 msgid "No black filter" msgstr "Nessun filtro nero" #: lib/Gscan2pdf/Unpaper.pm:81 msgid "Disable black area scan." msgstr "Disabilita la scansione dell'area nera." #: lib/Gscan2pdf/Unpaper.pm:86 msgid "No gray filter" msgstr "Nessun filtro grigio" #: lib/Gscan2pdf/Unpaper.pm:87 msgid "Disable gray area scan." msgstr "Disabilita la scansione dell'area grigia." #: lib/Gscan2pdf/Unpaper.pm:92 msgid "No noise filter" msgstr "Senza filtro per il rumore" #: lib/Gscan2pdf/Unpaper.pm:93 msgid "Disable noise filter." msgstr "Disabilita il filtro per il rumore" #: lib/Gscan2pdf/Unpaper.pm:98 msgid "No blur filter" msgstr "Nessun filtro sfocatura" #: lib/Gscan2pdf/Unpaper.pm:99 msgid "Disable blur filter." msgstr "Disabilita il filtro sfocatura." #: lib/Gscan2pdf/Unpaper.pm:104 msgid "No border scan" msgstr "Disabilita la scansione dei bordi" #: lib/Gscan2pdf/Unpaper.pm:105 msgid "Disable border scanning." msgstr "Disabilita la scansione del bordo" #: lib/Gscan2pdf/Unpaper.pm:110 msgid "No border align" msgstr "Disabilita l'allineamento dei bordi" #: lib/Gscan2pdf/Unpaper.pm:112 msgid "Disable aligning of the area detected by border scanning." msgstr "Disabilita allineamento dell'area rilevata dalla scansione bordi" #: lib/Gscan2pdf/Unpaper.pm:117 msgid "Deskew to edge" msgstr "Riallinea al bordo" #: lib/Gscan2pdf/Unpaper.pm:119 msgid "" "Edges from which to scan for rotation. Each edge of a mask can be used to " "detect the mask's rotation. If multiple edges are specified, the average " "value will be used, unless the statistical deviation exceeds --deskew-scan-" "deviation." msgstr "" #: lib/Gscan2pdf/Unpaper.pm:125 msgid "Use 'left' for scanning from the left edge." msgstr "Usa 'sinistra' per acquisire dal lato sinistro." #: lib/Gscan2pdf/Unpaper.pm:130 msgid "Use 'top' for scanning from the top edge." msgstr "Usa 'alto' per acquisire dal lato alto" #: lib/Gscan2pdf/Unpaper.pm:134 lib/Gscan2pdf/Unpaper.pm:162 msgid "Right" msgstr "Destra" #: lib/Gscan2pdf/Unpaper.pm:135 msgid "Use 'right' for scanning from the right edge." msgstr "Usa 'destra' per acquisire dal lato destro." #: lib/Gscan2pdf/Unpaper.pm:139 lib/Gscan2pdf/Unpaper.pm:167 msgid "Bottom" msgstr "Basso" #: lib/Gscan2pdf/Unpaper.pm:140 msgid "Use 'bottom' for scanning from the bottom." msgstr "Usa 'basso' per acquisire dal lato basso." #: lib/Gscan2pdf/Unpaper.pm:147 msgid "Align to edge" msgstr "Allinea al bordo" #: lib/Gscan2pdf/Unpaper.pm:148 msgid "Edge to which to align the page." msgstr "Bordo a cui allineare al pagina." #: lib/Gscan2pdf/Unpaper.pm:153 msgid "Use 'left' to align to the left edge." msgstr "Usa 'sinistra' per allineare al lato sinistro." #: lib/Gscan2pdf/Unpaper.pm:158 msgid "Use 'top' to align to the top edge." msgstr "Usa 'alto' per allineare al lato alto." #: lib/Gscan2pdf/Unpaper.pm:163 msgid "Use 'right' to align to the right edge." msgstr "Usa 'destra' per allineare al lato destro." #: lib/Gscan2pdf/Unpaper.pm:168 msgid "Use 'bottom' to align to the bottom." msgstr "Usa 'basso' per allineare al lato basso." #: lib/Gscan2pdf/Unpaper.pm:174 msgid "Border margin" msgstr "Margine dal bordo" #: lib/Gscan2pdf/Unpaper.pm:178 msgid "Vertical margin" msgstr "Margine verticale" #: lib/Gscan2pdf/Unpaper.pm:180 msgid "" "Vertical distance to keep from the sheet edge when aligning a border area." msgstr "" "Distanza verticale da applicare al foglio quando si allinea un'area bordi" #: lib/Gscan2pdf/Unpaper.pm:189 msgid "Horizontal margin" msgstr "Margine orizzontale" #: lib/Gscan2pdf/Unpaper.pm:191 msgid "" "Horizontal distance to keep from the sheet edge when aligning a border area." msgstr "" "Distanza orizzontale da applicare al foglio quando si allinea un'area bordi" #: lib/Gscan2pdf/Unpaper.pm:202 msgid "White threshold" msgstr "Soglia del bianco" #: lib/Gscan2pdf/Unpaper.pm:204 msgid "Brightness ratio above which a pixel is considered white." msgstr "Livello di luminosità sopra il quale un pixel è considerato bianco" #: lib/Gscan2pdf/Unpaper.pm:212 msgid "Black threshold" msgstr "Soglia del nero" #: lib/Gscan2pdf/Unpaper.pm:214 msgid "" "Brightness ratio below which a pixel is considered black (non-gray). This is " "used by the gray-filter. This value is also used when converting a grayscale " "image to black-and-white mode." msgstr "" "Livello di luminosità sotto il quale un pixel è considerato nero (non " "grigio). Utilizzato dal filtro grigio. Questo valore viene anche utilizzato " "quando si converte un immagine in scala di grigi ad un immagine in bianco e " "nero." #: lib/Gscan2pdf/Unpaper.pm:250 msgid "Deskew" msgstr "Deskew" #: lib/Gscan2pdf/Unpaper.pm:280 msgid "Border" msgstr "Bordo" #: lib/Gscan2pdf/Unpaper.pm:337 msgid "Filters" msgstr "Filtri" #: t/05_Dialog.t:23 msgid "title" msgstr "titolo" #: t/05_Dialog.t:26 t/05_Dialog.t:31 t/05_Dialog.t:32 t/05_Dialog.t:38 #: t/05_Dialog.t:39 msgid "border-width" msgstr "larghezza-bordo" #: t/061_Scanner_Dialog.t:34 msgid "dir" msgstr "" #: t/061_Scanner_Dialog.t:36 msgid "max-pages" msgstr "massimo-pagine" #: t/061_Scanner_Dialog.t:39 msgid "side-to-scan" msgstr "" #: t/061_Scanner_Dialog.t:40 t/061_Scanner_Dialog.t:185 msgid "available-scan-options" msgstr "" #: t/061_Scanner_Dialog.t:171 t/062_Scanner_Dialog.t:73 msgid "profile" msgstr "profilo" gscan2pdf-1.2.3/gscan2pdf.spec0000644000175000017500000002455512271546354014541 0ustar jeffjeffName: gscan2pdf Version: 1.2.3 Release: 1%{?dist} Summary: A GUI to produce PDFs from scanned documents Group: Applications/Publishing License: GPL URL: http://%{name}.sourceforge.net/ Source0: %{name}-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root BuildArch: noarch BuildRequires: perl(ExtUtils::MakeMaker), perl(Test::More) BuildRequires: gettext, desktop-file-utils Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) Requires: ImageMagick-perl, ImageMagick, djvulibre, sane-backends >= 1.0.17 Requires: sane-frontends, xdg-utils, unpaper, gocr, perl(Gtk2::ImageView) Requires: perl(Gtk2::Ex::PodViewer), perl(PDF::API2), perl(Config::General) %description Only two clicks are required to scan several pages and then save all or a selection as a PDF file, including metadata if required. gscan2pdf can control regular or sheet-fed (ADF) scanners with SANE via scanimage or scanadf, and can scan multiple pages at once. It presents a thumbnail view of scanned pages, and permits simple operations such as rotating and deleting pages. PDF conversion is done by PDF::API2. The resulting document may be saved as a PDF or a multipage TIFF file. %prep %setup -q %build %{__perl} Makefile.PL INSTALLDIRS=vendor make %{?_smp_mflags} %install rm -rf $RPM_BUILD_ROOT make install DESTDIR=$RPM_BUILD_ROOT find $RPM_BUILD_ROOT -type f -name .packlist -exec rm -f {} ';' find $RPM_BUILD_ROOT -depth -type d -exec rmdir {} 2>/dev/null ';' rm -f $RPM_BUILD_ROOT/%{perl_archlib}/perllocal.pod chmod -R u+w $RPM_BUILD_ROOT/* desktop-file-install --delete-original --vendor="" \ --dir=$RPM_BUILD_ROOT/%{_datadir}/applications \ $RPM_BUILD_ROOT/%{_datadir}/applications/%{name}.desktop %find_lang %{name} %check export DISPLAY=:0.0 #make test %clean rm -rf $RPM_BUILD_ROOT %post update-desktop-database &> /dev/null ||: touch --no-create %{_datadir}/icons/hicolor || : if [ -x %{_bindir}/gtk-update-icon-cache ]; then %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || : fi %postun update-desktop-database &> /dev/null ||: touch --no-create %{_datadir}/icons/hicolor || : if [ -x %{_bindir}/gtk-update-icon-cache ]; then %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || : fi %files -f %{name}.lang %defattr(-,root,root,-) %doc LICENCE %{_bindir}/* %{perl_vendorlib}/* %{_datadir}/%{name} %{_datadir}/applications/%{name}.desktop %{_datadir}/pixmaps/gscan2pdf.svg %{_mandir}/man1/*.1* %changelog * Mon Jan 27 2014 Jeffrey Ratcliffe - New upstream release - Added depends: liblist-moreutils-perl - New upstream release Closes: #734854 (gscan2pdf wrong resolution) - New upstream release Closes: #701581 (Thunderbird detection (for send email) does not work reliably on XFCE) Closes: #729589 (Can not scan using a Canon LiDE 210 with version 1.1.3-1) Closes: #717479 (Background-scanning for devices and options) - New upstream release - New upstream release - New upstream release - New upstream release Closes: #682818 (Presets aren't working) - Added depends: libtry-tiny-perl - New upstream release - New upstream release Closes: #670640 (Can't call method get_cmdline) - Recommend tesseract OR gocr OR cuneiform, rather than AND Closes: #682100 gscan2pdf Recommends cuneiform which is in non-free - Fix updating widgets in scanimage dialog Closes: #678911 (Device-dependent options disappear after selecting Lineart mode) - Fixed warning in lib/Gscan2pdf/Scanner/Options.pm - Fix unpaper as part of scan process Closes: #670640 (Can't call method get_cmdline) - Deal with non-utf-8 characters in OCR output Closes: #670831 (not resilient against non utf-8 from tesseract) - Bumped standards to 3.9.3 (no changes required) - New upstream release - New upstream release - Updated Depends on libsane-perl to 0.05 - New upstream release Closes: #663584 (copy-paste of pages corrupts document) Closes: #664635 (Fails to restore session, invalid pathname) Closes: #665871 (no longer offers 'tesseract' OCR, persistently) - New upstream release Closes: #653918 (gscan2pdf doesn't save metadata anymore) Closes: #646298 (pdf-exports of ocropus texts are slow, big) Closes: #646246 (gscan2pdf ignores html-entities returned by ocropus documents) Closes: #651666 (ability to preview saved files) Closes: #645322 (No lock after recovery can result in data loss) Closes: #645323 (Imported pages have no thumbnails) - Bumped standards to 3.9.2 (no changes required) - New upstream release Closes: #622616 (gscan2pdf: error message) Closes: #622844 (gscan2pdf + libsane-perl frontend + Canon CanoScan LiDE25 results in "End of file reached") Closes: #563461 (ability to remove unreferenced temporary files) Closes: #577144 (gscan2pdf: lost option for editing/scanning simultaneously in newer versions) Closes: #602578 (Clearing the OCR text) Closes: #617886 ("Open gscan2pdf session file" icon looks too much like "Save" icon) - New upstream release Closes: #599181 (gscan2pdf: OCR doesn't support Umlauts/national characters) Closes: #608226 (pressing space causes unexpected data loss) New Depends: liblog-log4perl-perl Removed Depends: libarchive-tar-perl, as now in perl - Removed debian/patches/replace-forks-with-threads Removed Build-Depends: quilt Updated rules not to use quilt - Replace forks with threads Closes: #591404 (gscan2pdf: libforks-perl could be removed) Removed Depends: libforks-perl Added Build-Depends: quilt Updated rules to use quilt - Bumped standards to 3.9.1 (no changes required) - New upstream release Closes: #510309 (gscan2pdf: Ability to configure how GIMP is started) Closes: #576193 (gscan2pdf: OCR does not works, due to Goo::Canvas::Text programming error) Closes: #584787 (gscan2pdf: Gscan2pdf quits without saving) Closes: #585441 (gscan2pdf: "Useless use of sort in void context") New Depends: libhtml-parser-perl, libreadonly-perl Removed Depends: libxml-simple-perl New Recommends: cuneiform - Minor editing of description - Patched the clean target to fix FTBFS - Bumped standards to 3.9.0 (no changes required) - New upstream release. Closes: #461086 (embed OCR output at correct position) Closes: #510314 (gscan2pdf: Mapping File_Scan to a shortcut key) Closes: #557657 (gscan2pdf binarization option [wishlist]) New Depends: libxml-simple-perl, libgoo-canvas-perl, libproc-processtable-perl - Removed URL from description Closes: #564325 (gscan2pdf: please remove homepage from description) - Fixed VCS-URLs - Bumped standards to 3.8.3 (no changes required) - Switch to tiny dh7 rules - Added ${misc:Depends} - New upstream release. Closes: #526845 (gscan2pdf: Renaming of frontends breaks current settings) - New upstream release. Closes: #506150 (gscan2pdf: pdf creation failes when using LZW compression) Closes: #512758 (Error handling: 'Unknown message: "scanimage: sane_read: Operation was cancelled"') Closes: #512760 (Error reporting: empty document feeder not reported) Closes: #515605 (gscan2pdf: repeating save-dialog when saving as pnm) Closes: #517913 (gscan2pdf: Tools -> Gimp broken) New Depends: libset-intspan-perl, libforks-perl - New upstream release. Closes: #500547 (fails to save PDF files) Closes: #497629 (Rotation of pages does work on manual double sided scanning) Closes: #497630 (Selection of all odd pages or all even pages) Closes: #504543 (gscan2pdf: Resolution strangeness) Closes: #504546 (gscan2pdf: Resolution not sent to gimp) Closes: #507032 (improper window split between page list and preview pane) New Depends: libsane-perl - New upstream release. Closes: #490356 (gscan2pdf: It is impossible to save current session) Closes: #486115 (PDF files from gscan2pdf are huge) Closes: #493837 (gscan2pdf: should depend on sane-utils, not libsane) Closes: #494074 (Select All Text; Save all OCRed text) New Depends: libarchive-tar-perl - New upstream release. Now Depends: libconfig-general-perl (>= 2.40) to avoid heredoc bug Closes: #480947 (gscan2pdf: Defaults for pages are weird now) Closes: #486553 (gscan2pdf: unable to save as DjVu) Closes: #486680 (gscan2pdf: bizarre DjVu text zones) Closes: #485641 (gscan2pdf: No longer saves resolution in TIFF files) Closes: #484641 (gscan2pdf: prefix option for scanimage command) - Bumped Standards-Version - New upstream release. New Depends: libgtk2-imageview-perl - Updated Homepage and Vcs* sections - Bumped compat 4->5 - New upstream release. Closes: #463708 (gscan2pdf: Error when saving as PNG) Closes: #462171 (importing DjVu files fails, hogs memory) - New upstream release. Closes: #461859 (better selected/current/all heuristic) Closes: #461076 (importing PDFs causes /tmp/ overflow) - New upstream release. Closes: #449421 (Recognise warm-up message from gt68xx driver) Closes: #457377 (Can't save files with spaces in names) Closes: #457376 (gscan2pdf: Some paper sizes not available) Closes: #457249 (gscan2pdf: Tries to set threshold option for color scans) Closes: #457375 (gscan2pdf: Nondeterministic duplex scanning) Closes: #461058 (does not ask when quitting without saving the PDF) - Updated rules to dh-make-perl 0.35 - Bumped Standards-Version - + watch file - New upstream release. Closes: #440902 (window placement of scan dialog) - New upstream release. - New upstream release. Closes: #433497, #426525, #440204. - Thanks to Jeffrey Ratcliffe for contributing to this Debian release. - Added Jeffrey Ratcliffe to Uploaders. - New upstream release. - New upstream release. - Initial upload to Debian. Closes: #420953. - Added support for negative ranges on sliders. [516c47fb2f00] - Added support for brightness slider. Needed for Visioneer Strobe XP 450 scanners. [516c47fb2f00] - Added scanners/xp450 [b68d6a627700] - Add .tif extension when saving TIFF and DjVu files, to match PDF code. Fix up PDF saving extension regexp. [a0354eeeb4bf, 06425ce40520] gscan2pdf-1.2.3/INSTALL0000644000175000017500000000423612053230657013033 0ustar jeffjeffInstalling ---------- The program itself for gscan2pdf is in one file, so having extracted it to the current directory, you can just run it with bin/gscan2pdf For those who want an install script, I have included one. First build with: perl Makefile.PL make From a system that uses sudo, like Ubuntu, you will need: sudo make install Otherwise change to root with su and then make install followed by CRTL-D to get back to the original user. gscan2pdf will then be on the path an accessible from any directory with gscan2pdf If you have a Debian system (like Ubuntu) then you can make a .deb with perl Makefile.PL make debdist and then install it with sudo dpkg -i gscan2pdf-.deb This has the advantage of not having to hold on to the Makefile in order to uninstall it. Alternatively, add the following line to your /etc/apt/sources.list: deb http://ppa.launchpad.net/jeffreyratcliffe/ubuntu main deb-src http://ppa.launchpad.net/jeffreyratcliffe/ubuntu main where is the version of Ubuntu you are using. hardy & gutsy are supported at the time of writing. intrepid, feisty and dapper will follow as soon as I get gtkimageview to build against those distro. If you are you are using Synaptic, then use menu 'Edit/Reload Package Information', search for gscan2pdf in the package list, and lo and behold, you can install the nice shiny new version automatically. From the command line: sudo apt-get update sudo apt-get install gscan2pdf If you have a system that uses RPMs, like Fedora or Suse, you can build an RPM with: perl Makefile.PL make rpmdist The help will require Gtk2::Ex::PodViewer. Rotating requires Imagemagick. Having installed gscan2pdf, locate the gscan2pdf entry in Synaptic, right-click it and you can install them under "Recommends". Uninstalling ------------ If you have installed gscan2pdf with make install as described about, then you can uninstall it with: sudo make uninstall or su and then make uninstall as appropriate. Alternatively, if you installed the .deb, you can uninstall it with your favourite graphical package manager (e.g. Synaptic), or with sudo dpkg -r gscan2pdf