.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "GSCAN2PDF 1p" .TH GSCAN2PDF 1p "2019-01-26" "perl v5.28.1" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" gscan2pdf \- A GUI to produce PDFs or DjVus from scanned documents .SH "USAGE" .IX Header "USAGE" .IP "1. Scan one or several pages in with File/Scan" 4 .IX Item "1. Scan one or several pages in with File/Scan" .PD 0 .IP "2. Create \s-1PDF\s0 of selected pages with File/Save" 4 .IX Item "2. Create PDF of selected pages with File/Save" .PD .SH "REQUIRED ARGUMENTS" .IX Header "REQUIRED ARGUMENTS" None .SH "OPTIONS" .IX Header "OPTIONS" gscan2pdf has the following command-line options: .IP "\-\-device= Specifies the device to use, instead of getting the list of devices from via the \s-1SANE API.\s0 This can be useful if the scanner is on a remote computer which is not broadcasting its existence." 4 .IX 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." .PD 0 .IP "\-\-help Displays this help page and exits." 4 .IX Item "--help Displays this help page and exits." .IP "\-\-log= Specifies a file to store logging messages." 4 .IX Item "--log= Specifies a file to store logging messages." .IP "\-\-(debug|info|warn|error|fatal) Defines the log level. If a log file is specified, this defaults to 'debug', otherwise 'warn'." 4 .IX Item "--(debug|info|warn|error|fatal) Defines the log level. If a log file is specified, this defaults to 'debug', otherwise 'warn'." .IP "\-\-import= Imports the specified file" 4 .IX Item "--import= Imports the specified file" .IP "\-\-version Displays the program version and exits." 4 .IX Item "--version Displays the program version and exits." .PD .PP Scanning is handled with \s-1SANE\s0 via scanimage. \&\s-1PDF\s0 conversion is done by \s-1PDF::API2. TIFF\s0 export is handled by libtiff (faster and smaller memory footprint for multipage files). .SH "DIAGNOSTICS" .IX Header "DIAGNOSTICS" To diagnose a possible error, start gscan2pdf from the command line with logging enabled: .PP \&\f(CW\*(C`gscan2pdf \-\-log=file.log\*(C'\fR .PP and check file.log. .SH "EXIT STATUS" .IX Header "EXIT STATUS" None .SH "CONFIGURATION" .IX Header "CONFIGURATION" gscan2pdf creates a text resource file in ~/.config/gscan2pdfrc. The directory can be changed by setting the \f(CW$XDG_CONFIG_HOME\fR variable. Generally, however, preferences should be changed via the Edit/Preferences menu, or are captured automatically during normal usage of the program. .SH "INCOMPATIBILITIES" .IX Header "INCOMPATIBILITIES" None known. .SH "BUGS AND LIMITATIONS" .IX Header "BUGS AND LIMITATIONS" Whilst it is possible to import PDFs, this is intended to be able to round-trip files created by gscan2pdf. .SH "Download" .IX Header "Download" gscan2pdf is available on Sourceforge (). .SS "Debian-based" .IX Subsection "Debian-based" If you are using Debian, you should find that sid has the latest version already packaged. .PP If you are using a Ubuntu-based system, you can automatically keep up to date with the latest version via the ppa: .PP \&\f(CW\*(C`sudo apt\-add\-repository ppa:jeffreyratcliffe/ppa\*(C'\fR .PP If you are you are using Synaptic, then use menu \&\fIEdit/Reload Package Information\fR, search for gscan2pdf in the package list, and lo and behold, you can install the nice shiny new version. .PP From the command line: .PP \&\f(CW\*(C`sudo apt\-get update\*(C'\fR .PP \&\f(CW\*(C`sudo apt\-get install gscan2pdf\*(C'\fR .SS "RPMs" .IX Subsection "RPMs" Download the rpm from Sourceforge, and then install it with \&\f(CW\*(C`rpm \-i gscan2pdf\-version.rpm\*(C'\fR .SS "From source" .IX Subsection "From source" The source is hosted in the files section of the gscan2pdf project on Sourceforge (). .SS "From the repository" .IX Subsection "From the repository" gscan2pdf uses Git for its Revision Control System. You can browse the tree at . .PP Git users can clone the complete tree with \&\f(CW\*(C`git clone git://git.code.sf.net/p/gscan2pdf/code\*(C'\fR .SH "Building gscan2pdf from source" .IX Header "Building gscan2pdf from source" Having downloaded the source either from a Sourceforge file release, or from the Git repository, unpack it if necessary with \&\f(CW\*(C`tar xvfz gscan2pdf\-x.x.x.tar.gz cd gscan2pdf\-x.x.x\*(C'\fR .PP \&\f(CW\*(C`perl Makefile.PL\*(C'\fR, will create the Makefile. .PP \&\f(CW\*(C`make test\*(C'\fR should run several hundred tests to confirm that things will work properly on your system. .PP You can install directly from the source with \f(CW\*(C`make install\*(C'\fR, but building the appropriate package for your distribution should be as straightforward as \&\f(CW\*(C`make debdist\*(C'\fR or \f(CW\*(C`make rpmdist\*(C'\fR. However, you will additionally need the rpm, devscripts, fakeroot, debhelper and gettext packages. .SH "Dependencies" .IX Header "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 \fIRecommends\fR. Note also that the library names given below are the Debian/Ubuntu ones. Those distributions using \s-1RPM\s0 typically use perl(module) where Debian has libmodule-perl. .IP "Required" 4 .IX Item "Required" .RS 4 .PD 0 .IP "libgtk3\-perl >= 0.028" 4 .IX Item "libgtk3-perl >= 0.028" .PD There is a bug in version of libgtk3\-perl before 0.028 that causes gscan2pdf to crash when saving. Whilst I could prevent gscan2pdf from crashing, it would still be impossible to save anything, rendering gscan2pdf rather useless. .IP "libgtk3\-simplelist\-perl" 4 .IX Item "libgtk3-simplelist-perl" A simple interface to Gtk3's complex \s-1MVC\s0 list widget .IP "liblocale-gettext-perl (>= 1.05)" 4 .IX Item "liblocale-gettext-perl (>= 1.05)" Using libc functions for internationalisation in Perl .IP "libpdf\-api2\-perl" 4 .IX Item "libpdf-api2-perl" provides the functions for creating \s-1PDF\s0 documents in Perl .IP "libsane" 4 .IX Item "libsane" \&\s-1API\s0 library for scanners .IP "libimage-sane-perl" 4 .IX Item "libimage-sane-perl" Perl bindings for libsane. .IP "libset-intspan-perl" 4 .IX Item "libset-intspan-perl" manages sets of integers .IP "libtiff-tools" 4 .IX Item "libtiff-tools" \&\s-1TIFF\s0 manipulation and conversion tools .IP "Imagemagick" 4 .IX Item "Imagemagick" Image manipulation programs .IP "perlmagick" 4 .IX Item "perlmagick" A perl interface to the libMagick graphics routines .IP "sane-utils" 4 .IX Item "sane-utils" \&\s-1API\s0 library for scanners \*(-- utilities. .RE .RS 4 .RE .IP "Optional" 4 .IX Item "Optional" .RS 4 .PD 0 .IP "sane" 4 .IX Item "sane" .PD scanner graphical frontends. Only required for the scanadf frontend. .IP "unpaper" 4 .IX Item "unpaper" post-processing tool for scanned pages. See . .IP "xdg-utils" 4 .IX Item "xdg-utils" Desktop integration utilities from freedesktop.org. Required for Email as \s-1PDF.\s0 See .IP "djvulibre-bin" 4 .IX Item "djvulibre-bin" Utilities for the DjVu image format. See .IP "gocr" 4 .IX Item "gocr" A command line \s-1OCR.\s0 See . .IP "tesseract" 4 .IX Item "tesseract" A command line \s-1OCR.\s0 See .IP "ocropus" 4 .IX Item "ocropus" A command line \s-1OCR.\s0 See .IP "cuneiform" 4 .IX Item "cuneiform" A command line \s-1OCR.\s0 See .RE .RS 4 .RE .SH "Support" .IX Header "Support" There are two mailing lists for gscan2pdf: .IP "gscan2pdf\-announce" 4 .IX Item "gscan2pdf-announce" A low-traffic list for announcements, mostly of new releases. You can subscribe at .IP "gscan2pdf\-help" 4 .IX Item "gscan2pdf-help" General support, questions, etc.. You can subscribe at .SH "Reporting bugs" .IX Header "Reporting bugs" Before reporting bugs, please read the \*(L"FAQs\*(R" section. .PP 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. The Debian tool \*(L"reportbug\*(R" provides a convenient \s-1GUI\s0 for doing so. .IP "1. https://packages.debian.org/sid/gscan2pdf" 4 .IX Item "1. https://packages.debian.org/sid/gscan2pdf" .PD 0 .IP "2. https://www.debian.org/Bugs/" 4 .IX Item "2. https://www.debian.org/Bugs/" .PD .PP Alternatively, there is a bug tracker for the gscan2pdf project on Sourceforge (). .PP Please include the log file created by \f(CW\*(C`gscan2pdf \-\-log=log\*(C'\fR with any new bug report. .SH "Translations" .IX Header "Translations" gscan2pdf has already been partly translated into several languages. If you would like to contribute to an existing or new translation, please check out Rosetta: .PP 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 . .PP Alternatively, Ubuntu has its own translation project. For the 9.04 release, the translations are available at .SH "DESCRIPTION" .IX Header "DESCRIPTION" .SS "File" .IX Subsection "File" \fINew\fR .IX Subsection "New" .PP Clears the page list. .PP \fIOpen\fR .IX Subsection "Open" .PP Opens any format that imagemagick supports. PDFs will have their embedded images extracted and imported one per page. .PP Note that files can also be imported by dragging them into the thumbnail list from a program like nautilus or konqueror. .PP \fIScan\fR .IX Subsection "Scan" .PP Sets options before scanning via \s-1SANE.\s0 .PP Device .IX Subsection "Device" .PP Chooses between available scanners. .PP # Pages .IX Subsection "# Pages" .PP Selects the number of pages, or all pages to scan. .PP Source document .IX Subsection "Source document" .PP Selects between single sided or double sides pages. .PP 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.. .PP Side to scan .IX Subsection "Side to scan" .PP 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. .PP To scan both sides of three pages, i.e. 6 sides: .IP "1. Select:" 4 .IX Item "1. Select:" # Pages = 3 (or \*(L"all\*(R" if your scanner can detect when it is out of paper) .Sp Double sided .Sp Facing side .IP "2. Scans sides 1, 3 & 5." 4 .IX Item "2. Scans sides 1, 3 & 5." .PD 0 .IP "3. Put pile back with scanner ready to scan back of last page." 4 .IX Item "3. Put pile back with scanner ready to scan back of last page." .IP "4. Select:" 4 .IX Item "4. Select:" .PD # Pages = 3 (or \*(L"all\*(R" if your scanner can detect when it is out of paper) .Sp Double sided .Sp Reverse side .IP "5. Scans sides 6, 4 & 2." 4 .IX Item "5. Scans sides 6, 4 & 2." .PD 0 .IP "6. gscan2pdf automatically sorts the pages so that they appear in the correct order." 4 .IX Item "6. gscan2pdf automatically sorts the pages so that they appear in the correct order." .PD .PP Device-dependent options .IX Subsection "Device-dependent options" .PP These, naturally, depend on your scanner. They can include .IP "Page size." 4 .IX Item "Page size." .PD 0 .IP "Mode (colour/black & white/greyscale)" 4 .IX Item "Mode (colour/black & white/greyscale)" .IP "Resolution (in \s-1PPI\s0)" 4 .IX Item "Resolution (in PPI)" .IP "Batch-scan" 4 .IX Item "Batch-scan" .PD Guarantees that a \*(L"no documents\*(R" condition will be returned after the last scanned page, to prevent endless flatbed scans after a batch scan. .IP "Wait\-for\-button/Button\-wait" 4 .IX 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. .IP "Source" 4 .IX Item "Source" Selects the document source. Possible options can include Flatbed or \s-1ADF.\s0 On some scanners, this is the only way of generating an out-of-documents signal. .PP \fISave\fR .IX Subsection "Save" .PP Saves the selected or all pages as a \s-1PDF,\s0 DjVu, \s-1TIFF, PNG, JPEG, PNM\s0 or \&\s-1GIF.\s0 .PP \s-1PDF\s0 Metadata .IX Subsection "PDF Metadata" .PP Metadata are information that are not visible when viewing the \s-1PDF,\s0 but are embedded in the file and so searchable and can be examined, typically with the \&\*(L"Properties\*(R" option of the \s-1PDF\s0 viewer. .PP The metadata are completely optional, but can also be used to generate the filename see preferences for details. .PP DjVu .IX Subsection "DjVu" .PP Both black and white, and colour images produce better compression than \s-1PDF.\s0 See for more details. .PP \fIEmail as \s-1PDF\s0\fR .IX Subsection "Email as PDF" .PP Attaches the selected or all pages as a \s-1PDF\s0 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. .PP \fIPrint\fR .IX Subsection "Print" .PP Prints the selected or all pages. .PP \fICompress temporary files\fR .IX Subsection "Compress temporary files" .PP 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 \s-1PNM\s0 files that are typically produced by \s-1SANE\s0 or by importing a \s-1PDF.\s0 .SS "Edit" .IX Subsection "Edit" \fIDelete\fR .IX Subsection "Delete" .PP Deletes the selected page. .PP \fIRenumber\fR .IX Subsection "Renumber" .PP Renumbers the pages from 1..n. .PP Note that the page order can also be changed by drag and drop in the thumbnail view. .PP \fISelect\fR .IX Subsection "Select" .PP 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 \s-1OCR\s0 run was made. .PP \fIProperties\fR .IX Subsection "Properties" .PP When an image is scanned, gscan2pdf attempts to extract the resolution from the scan options. This nearly always works without problem. .PP Importing an image can be trickier, however. Some image formats such as \s-1PNM\s0 do not encode metadata for resolution. In other cases, the data is incorrect. Edit/Properties allows the user to manually correct the metadata for a particular page, thus correcting the size of final \s-1PDF\s0 or DjVu. The image itself is otherwise not changed \- it is not down\- or upscaled. .PP \fIPreferences\fR .IX Subsection "Preferences" .PP The preferences menu item allows the control of the default behaviour of various functions. Most of these are self-explanatory. .PP Frontends .IX Subsection "Frontends" .PP gscan2pdf initially supported 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. .PP In 0.9.27, Perl bindings for \s-1SANE\s0 were introduced. These are called libsane-perl. .PP Before 1.2.0, options available through \s-1CLI\s0 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. .PP In 1.8.3, New Perl bindings for \s-1SANE\s0 were introduced. These are called libimage-sane-perl and are the preferred frontend. .PP In 1.8.5, support for libsane-perl was removed. .PP Device blacklist .IX Subsection "Device blacklist" .PP Ignore listed devices. .PP Note that this is a device name regular expression, e.g. /dev/video, and not the name as listed in the scan window, e.g. Noname Integrated_Webcam_HD. .PP Default filename for \s-1PDF\s0 or DjVu files .IX Subsection "Default filename for PDF or DjVu files" .PP All strftime codes (e.g. \f(CW%Y\fR for the current year) are available as variables, with the following additions: .PP .Vb 3 \& %Da author \& %De filename extension \& %Dt title .Ve .PP All document date codes use strftime codes with a leading D, e.g.: .PP .Vb 3 \& %DY document year \& %Dm document month \& %Dd document day .Ve .SS "View" .IX Subsection "View" \fIZoom 100%\fR .IX Subsection "Zoom 100%" .PP Zooms to 1:1. How this appears depends on the desktop resolution. .PP \fIZoom to fit\fR .IX Subsection "Zoom to fit" .PP Scales the view such that all the page is visible. .PP \fIZoom in\fR .IX Subsection "Zoom in" .PP \fIZoom out\fR .IX Subsection "Zoom out" .PP \fIRotate 90° clockwise\fR .IX Subsection "Rotate 90° clockwise" .PP The rotate options require the package imagemagick and, if this is not present, are ghosted out. .PP \fIRotate 180°\fR .IX Subsection "Rotate 180°" .PP \fIRotate 90° anticlockwise\fR .IX Subsection "Rotate 90° anticlockwise" .SS "Tools" .IX Subsection "Tools" \fIThreshold\fR .IX Subsection "Threshold" .PP Changes all pixels darker than the given value to black; all others become white. .PP \fIUnsharp mask\fR .IX Subsection "Unsharp mask" .PP 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. .PP \fICrop\fR .IX Subsection "Crop" .PP \fIunpaper\fR .IX Subsection "unpaper" .PP unpaper (see ) is a utility for cleaning up a scan. .PP \fI\s-1OCR\s0 (Optical Character Recognition)\fR .IX Subsection "OCR (Optical Character Recognition)" .PP The gocr, tesseract, ocropus or cuneiform utilities are used to produce text from an image. .PP There is an \s-1OCR\s0 output buffer for each page and is embedded as plain text behind the scanned image in the \s-1PDF\s0 produced. This way, Beagle can index (i.e. search) the plain text. .PP In DjVu files, the \s-1OCR\s0 output buffer is embedded in the hidden text layer. Thus these can also be indexed by Beagle. .PP There is an interesting review of \s-1OCR\s0 software at . An important conclusion was that 400ppi is necessary for decent results. .PP 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: .PP .Vb 1 \& tesseract \*(Aq\*(Aq \*(Aq\*(Aq \-l \*(Aq\*(Aq .Ve .PP If there are no language files in the above location, then gscan2pdf assumes that tesseract v1.0 is installed, which had no language files. .PP \fIVariables for user-defined tools\fR .IX Subsection "Variables for user-defined tools" .PP The following variables are available: .PP .Vb 3 \& %i input filename \& %o output filename \& %r resolution .Ve .PP An image can be modified in-place by just specifying \f(CW%i\fR. .SH "FAQs" .IX Header "FAQs" .SS "Why isn't option xyz available in the scan window?" .IX Subsection "Why isn't option xyz available in the scan window?" Possibly because \s-1SANE\s0 or your scanner doesn't support it. .PP If an option listed in the output of \f(CW\*(C`scanimage \-\-help\*(C'\fR that you would like to use isn't available, send me the output and I will look at implementing it. .SS "I've only got an old flatbed scanner with no automatic sheetfeeder. How do I scan a multipage document?" .IX Subsection "I've only got an old flatbed scanner with no automatic sheetfeeder. How do I scan a multipage document?" In Edit/Preferences, tick the box \*(L"Allow batch scanning from flatbed\*(R". .PP Some Brother scanners report \*(L"out of documents\*(R", despite scanning from flatbed. This can be worked around by ticking the box \&\*(L"Force new scan job between pages\*(R". .PP 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. .PP If you are quick, you might be able to change the document on the flatbed whilst the scan head is returning. .PP 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. .SS "Why is option xyz ghosted out?" .IX Subsection "Why is option xyz ghosted out?" Probably because the package required for that option is not installed. Email as \s-1PDF\s0 requires xdg-email (xdg-utils), unpaper and the rotate options require imagemagick. .SS "Why can I not scan from the flatbed of my \s-1HP\s0 scanner?" .IX Subsection "Why can I not scan from the flatbed of my HP scanner?" Generally for \s-1HP\s0 scanners with an \s-1ADF,\s0 to scan from the flatbed, you should set \*(L"# Pages\*(R" to \*(L"1\*(R", and possibly \*(L"Batch scan\*(R" to \*(L"No\*(R". .SS "When I update gscan2pdf using the Update Manager in Ubuntu, why is the list of changes never displayed?" .IX Subsection "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. .SS "Why can gscan2pdf not find my scanner?" .IX Subsection "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 \s-1SANE\s0 daemon, saned, gscan2pdf cannot automatically find it. In this case, you can specify the scanner device on the command line: .PP \&\f(CW\*(C`gscan2pdf \-\-device .SS "How can I search for text in the \s-1OCR\s0 layer of the finished \s-1PDF\s0 or \s-1DJVU\s0 file?" .IX Subsection "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 \s-1PDF\s0 or \s-1DJVU\s0 files. See the respective man pages for details. .PP Having opened a \s-1PDF\s0 or \s-1DJVU\s0 file in evince or Acrobat Reader, the search function will typically find the page with the requested text and highlight it. .PP There are various tools for searching or indexing files, including \s-1PDF\s0 and \s-1DJVU:\s0 .IP "\(bu" 4 (meta) Tracker () .IP "\(bu" 4 plone () .IP "\(bu" 4 pdfgrep ( .IP "\(bu" 4 swish-e () .IP "\(bu" 4 recoll () .IP "\(bu" 4 terrier () .SS "How can I change the colour of the selection box in the image viewer?" .IX Subsection "How can I change the colour of the selection box in the image viewer?" Create a file called \f(CW\*(C`~/.config/gtk\-3.0/gtk.css\*(C'\fR with the following content: .PP .Vb 8 \& .rubberband, \& rubberband, \& flowbox rubberband, \& treeview.view rubberband, \& .content\-view rubberband, \& .content\-view .rubberband { \& border: 1px solid #2a76c6; \& background\-color: rgba(42, 118, 198, 0.2); } .Ve .SS "How can I change the colour of the \s-1OCR\s0 output" .IX Subsection "How can I change the colour of the OCR output" Create a file called \f(CW\*(C`~/.config/gtk\-3.0/gtk.css\*(C'\fR with the following content: .PP #gscan2pdf\-ocr\-output { color: black; } .SH "See Also" .IX Header "See Also" XSane () .PP Scan Tailor () .SH "Author" .IX Header "Author" Jeffrey Ratcliffe (jffry at posteo dot net) .SH "Thanks to" .IX Header "Thanks to" .IP "\(bu" 4 all the people who have sent patches, translations, bugs and feedback. .IP "\(bu" 4 the gtk+ project for a most excellent graphics toolkit. .IP "\(bu" 4 the Gtk3\-Perl project for their superb Perl bindings for \s-1GTK3.\s0 .IP "\(bu" 4 The \s-1SANE\s0 project for scanner access .IP "\(bu" 4 Björn Lindqvist for the gtkimageview widget .IP "\(bu" 4 Sourceforge for hosting the project. .SH "LICENSE AND COPYRIGHT" .IX Header "LICENSE AND COPYRIGHT" Copyright (C) 2006\-\-2019 Jeffrey Ratcliffe .PP This program is free software: you can redistribute it and/or modify it under the terms of the version 3 \s-1GNU\s0 General Public License as published by the Free Software Foundation. .PP This program is distributed in the hope that it will be useful, but \s-1WITHOUT ANY WARRANTY\s0; without even the implied warranty of \&\s-1MERCHANTABILITY\s0 or \s-1FITNESS FOR A PARTICULAR PURPOSE.\s0 See the \&\s-1GNU\s0 General Public License for more details. .PP You should have received a copy of the \s-1GNU\s0 General Public License along with this program. If not, see .