FAQs
Installation
Question: How can I find out what version of Koha I am using?
Answer: The easiest way to find out your Koha version is taking a look at the About page of the staff interface.
You can also find out from the OPAC by taking a look at the HTML source. It will look something like:
<meta name="generator" content="Koha 18.1200000" /> <!-- leave this for stats -->
Question: Should I use the Debian packages or the tarball to install Koha?
Answer: For the beginning user, it is highly recommended to use the package install of Koha - it provides many simple commands to do powerful things to your Koha installation. Packages should almost always be your choice of install on an ordinary production Koha install. A relative minimum of system administration skill is required to install Koha using the Debian packages.
Instructions for using the packages with Debian.
Installing from tarball or git is the only option for people not installing on Debian or Ubuntu.
Developers should give the KohaDevBox a look, it’s the easiest, quickest way to get a Developer instance of Koha going.
OPAC and staff interface
Customizing Koha images
Question: Can I customize the images in the OPAC?
Answer: Absolutely. Koha comes with a series of original images that you can alter to meet your needs. The originals can be found in the misc/interface_customization/ directory.
OPAC display fields
Question: What MARC fields print to the different OPAC screens in Koha?
Answer: The XSLT preference must be set as follows for the following fields to show
OPACXSLTResultsDisplay = using XSLT stylesheets
OPACXSLTDetailsDisplay = using XSLT stylesheets
DisplayOPACiconsXSLT = show
The OPAC results page shows:
245
100, 110, 111
700, 710, 711
250
260
246
856
The OPAC details page shows:
245
100, 110, 111
700, 710, 711
440, 490
260
250
300
020
022
246
130, 240
6xx
856
505
773
520
866
775
780
785
plus all of the 5xx fields in the ‘Notes’ tab at the bottom
Show patrons the barcodes of items they have checked out
Question: Can patrons see the barcodes for the items they have checked out.
Answer: Not by default, but with a few edits to the patron record you can make a barcode column appear on the patron’s check out summary in the OPAC. You can set up a patron attribute with the value of SHOW_BCODE and authorized value of YES_NO to make this happen.
Then on the patron’s record set the value for SHOW_BCODE to yes.
This will add a column to the check out summary in the OPAC that shows the patrons the barcodes of the items they have checked out.
Clicking on the ‘Overdue’ tab will show only the items that are overdue.
Circulation/Notices
Fees and fines
Question: Why am I getting fined 5.00 for every loan?
Answer: The money you are seeing on your patron’s account isn’t a fine, but a rental fee. The optional default item types that come with the Koha sample data might contain a rental fee. To remove this fee, do the following:
Click More > Administration
Click Item types
Note which item types have a 5.00 fee associated with them, select them for editing
Remove the fee, and save the item type
Book drop
Question: How is the book drop date determined? Is it the last open date for the checkout library? Is it today’s date minus one? Can the book drop checkin date be set?
Answer: If the library is closed for four days for renovations, for example, there would be more than one day needed for the book drop date. You will only have one book drop date and that will be the last day that the library was open (determined by the holiday calendar) because there is no real way to know what day the books were dropped into the box during the 4 closed days.
If you need to set a different checkin date, you can use the SpecifyReturnDate system preference. This will allow you to set an arbitrary date and any overdue fines will be recalculated accordingly.
Holds to pull and holds queue
Question: What is the difference between the Holds queue and Holds to pull reports?
Answer: The holds to pull report gives a simple list of what holds need to be filled with available items. It shows the ‘live’ data of your database, so new holds will turn up there immediately. It shows information about each hold including all libraries where items of the requested title are available.
The holds queue report is divided by libraries and will list the hold only for one library where it is available. For libraries with lots of holds and multiple branches this will prevent multiple libraries pulling the item off the shelf at the same time.
The holds queue report is generated by the build_holds_queue.pl cron job. By default it runs hourly, but it might be changed to run at any other interval. There are various configuration options to determine the library to provide the item. For example:
StaticHoldsQueueWeight, HoldsQueueSkipClosed, and RandomizeHoldsQueueWeight system preferences
Printing overdue notices
Question: Can I print overdue notices for patrons without email addresses on file?
Answer: Yes. By default Koha will email all overdue notices to patrons without email address to the library.
Additionally the overdue notice cron job has a setting to generate the overdue notices as HTML for printing. An example of this usage would be:
- ::
overdue_notices.pl -t -html /tmp/noticedir -itemscontent issuedate,date_due,title,barcode,author
In this example, we wanted to use only certain item fields in our notices, so we specified itemscontent fields in the cron entry; that’s not a requirement for the feature.
The command line needs to specify a web-accessible directory where the print notices will go – they get a filename like notices-2018-11-24.html (or holdnotices-2018-11-24.html). The overdue notice itself can be formatted to fit a Z-mailer. Within the notice file, the text is spaced down or over to where it will print properly on the form. The script has code that wraps around the notice file to tell the HTML to obey the formatting, and to do a page break between notices. The system preference PrintNoticesMaxLines can be used to specify the page length for libraries that allow a lot of checkouts which can lead to some notices running onto multiple pages. That system preference says to truncate the print notice at that page length and put in a message about go check your OPAC account for the full list.
The cron entry is gather_print_notices.pl /tmp/noticedir
Unable to renew items
Question: We’re trying to renew some items for our patron. One of the items is on hold and ineligible for renewal, but the other two items refuse to renew even though they should be eligible. When I try to use the override renewal limit, it just returns a little message that says “renewal failed”. Any idea what’s going on here?
Answer: At the very least you will need to set an absolute default circulation rule. This rule should be as standard rule for all libraries, ‘All’ itemtype’, and ‘All’ patron category. That will catch anyone who doesn’t match a specific rule. Patrons who do not match a specific rule will get blocked from placing holds or renewing items, since there was no baseline number of holds or renewals to utilize.
Unable to place holds
Question: Why can’t I place holds when I have all of the preferences turned on?
Answer: You probably need to set a default circulation rule in your circulation and fines rules. This should be a standard rule for all libraries, and all patron categories and item types. That will catch all instances that do not match a specific rule.
The ability to place holds also depends on the ‘On shelf holds allowed’ setting in the circulation rule that is used. Depending on the setting, it might not be possible to place a hold if any or all items for a record are checked out.
Keyboard shortcuts
Question: Do I have to use my mouse to access the checkout, checkin, renewal and catalog tabs at the top of the circulation pages?
Answer: You can jump between the tabs on the quick search box at the top of the screen by using the following hot keys (if the tab is available):
jump to the catalog search with Alt+q
jump to the checkout with Alt+u
this will not work for Mac user
jump to the renewal tab with Alt+w
jump to the checkin with Alt+r
Note
Mac users use the OPTION button in place of Alt
SMS notices/messages
Question: I want Koha to send notices via SMS, what do I need to do?
Answer: First you need to choose a SMS service to use with Koha. There is a list available here: http://search.cpan.org/search?query=sms%3A%3Asend&mode=all Not all SMS services available to libraries have Perl drivers, so be sure to check this list to see if the provider you’re considering is listed. If not you want to ask your provider if they have a Perl module, if not you should consider another service. Some common options in the US (that have Perl drivers) are:
AQL (www.aql.com)
Wadja (wadja.com)
Ipipi (ipipi.com)
T-mobile
SMSDiscount (smsdiscount.com)
Clickatell
Alternatively you can configure Koha to send SMS via Email. In order to use this feature you need to set the SMSSendDriver system preference to ‘Email’ and configure the email gateways for the different SMS cellular providers of your patrons.
In any case you might want to check if sending SMS to your patrons is legal in your location.
Question: What about in India?
Answer: India does not yet have too many options here. This is partly due to the Telecom regulatory authority’s (TRAI) stipulations about transactional SMSes and limits on the number of SMSes that may be sent/received per users per day. India specific drivers include:
Unicel Technologies Pvt Ltd (unicel.in)
Email notices/messages
Question: How do I prevent my libraries notices ending up marked as spam?
Answer: This is a complicated topic, but thankfully Koha gives you a good degree of control via various system preferences.
For every email sent out from Koha there are three important addresses for the system to get correct, From, Reply-to and Sender. These are configurable at both the system and library level and should fall back in a suitable manner if any of them are not defined.
KohaAdminEmailAddress - This will act as the From address and should be an address in the same domain as the koha server [for example noreply@koha-hosting.org]
ReplytoDefault - This will act as the Reply-to address and can be in any domain [for example librarian@mylibrary.com] and this is the address which will be used if/when a patron hits ‘Reply’ in their email client. Note: This will fall back to KohaAdminEmailAddress when it is not set.
ReturnpathDefault - This will act as the Sender address and also needs to be within the koha/email servers domain [for example postmaster@koha-hosting.org] and this is the address which will be used to report if an email bounces for any reason.
There are parallels to all the above preferences at the per branch level which fall back in the same order as mentioned above before falling back to the system level preferences above when required.
If you have the above configured correctly and your emails are still being treated as spam then you likely need to contact your email service provider/dns provider and look into MX, SPF and DKIM records.
Cataloging
Koha to MARC mapping
Question: What’s the relationship between ‘Koha to MARC mapping’ and ‘MARC bibliographic frameworks’?
Answer: Mappings can be defined through ‘MARC bibliographic frameworks’ OR ‘Koha to MARC mapping’. ‘Koha to MARC mapping’ is just a shortcut to speed up linkage. If you change a mapping in one of these modules, the mapping will change in the other as well. In other words, the two modules ‘overwrite’ each other in order to prevent conflicts from existing in Koha.
Number of items per bibliographic record
Question: Is there a limit on the number of items I can attach to a bib record?
Answer: There is no limit to the number of items you can attach to a bibliographic record. For records with a big number of items exporting the MARC record as ISO 2709 might be problematic as this format has a size limit. Item numbers somewhere between 600 and 1000 items on a ‘normal’ bibliographic record should be OK.
Analytics
Question: I am using the EasyAnalyticalRecords feature, but my links in the OPAC and Staff client to ‘Show analytics’ are not working.
Answer: If you plan on using EasyAnalyticalRecords you will want to make sure to set your UseControlNumber preference to “Don’t use,” this will prevent broken links.
Acquisitions
Planning categories
Question: What is a planning category?
Answer: When you plan in advance for the way your budget is going to be spent, you initially plan for how it’s going to be spent over time, that’s the most natural thing to do.
So you plan for $1000 in Jan. $1000 in Feb., $3000 in March, etc. You can basically do the same thing with a list of values in lieu of the months.
Say you have a list like this one:
< 1 month
< 6 months
< 1 year
< 3 years
< 10 years
> 10 years
The list is meant to represent when the books acquired were published. Then you plan for it, saying: we want to spend at least 40% of our budgets on books published less than a year ago, 10% on books more than 10 years old, etc.
Upon acquiring new material, you’ll be able to select, for a given item, a value from this list in a drop down. Then, after the material has been acquired, at the end of the year, you’ll be able to compare the goals set with what’s been achieved.
Serials
Advanced patterns
Question: What is the ‘inner counter’ on the advanced serials pattern interface?
Answer: I think it is better to give an example to understand this :
Example for a monthly subscription :
First issue publication date : April 2010
Numbering : No {X}, year {Y}
First issue : No 4, year 2010
For the year Y : you will want the year change on January 2011
So, the advanced pattern for Y will be :
Add : 1
Every : 12
When more than: 9999999
Inner counter: 3
Set back to: 0
Begins with: 2010
Year is going to change after 12 received issues from April 2010, that is in April 2011 if you don’t set inner counter. Set inner counter to 3 will say to Koha: change year after 12-3 = 9 received issues.
Inner counter says to Koha to take into account the first issues of the year, even if they are not received with Koha. If you begin with first issue of the year write nothing or 0.
Reports
SQL help
Question: I don’t know SQL, but I want to write a report that does X. Can you tell me how?
Answer: The Koha reports library on the Koha wiki is a good starting point and contains a lot of SQL reports shared by other libraries that can be reused and adapted.
Koha’s database schema is also publicly documented and contains helpful notes on how the columns in the various tables are used.
If you get stuck people on the community mailing lists will often be willing to help you.
Codes stored in the database
Statistics table
Question: What are the possible codes for the type field in the statistics table?
Answer:
localuse
Registers if an item that had been checked out to a statistics patron (category type = ‘X’) is returned
issue
return
renew
writeoff
payment
CreditXXX
The XXX stores different types of fee credits, so a query to catch them all would include a clause like “type LIKE ‘Credit%’”
Reserves table
Question: What are the possible codes for the found field in the reserves and old_reserves tables?
Answer:
NULL: means the patron requested the 1st available, and we haven’t chosen the item
T = Transit: the hold is linked to an item but is in transit to the pickup library
W = Waiting: the hold is linked to an item, is at the pickup library, and is waiting on the hold shelf
F = Finished: the reserve has been completed, and is done
Reports dictionary table
Question: What are the possible codes for the area field in the reports_dictionary table?
Answer:
1 = Circulation
2 = Catalog
3 = Patrons
4 = Acquisitions
5 = Accounts
Messages table
Question: What are the possible codes for the message_type field in the messages table?
Answer:
L = For Librarians
B = For Patrons/Borrowers
Serial table
Question: What are the possible codes for the status field in the serial table?
Answer:
1 = Expected
2 = Arrived
3 = Late
4 = Missing
5 = Not available
6 = Delete
7 = Claimed
8 = Stopped
41 = Missing (not received)
42 = Missing (sold out)
43 = Missing (damaged)
44 = Missing (lost)
Borrowers table
Question: What are the possible codes for the privacy field in the borrowers and deleted_borrowers tables?
Answer:
0 = Forever
1 = Default
2 = Never
Patron categories table
Question: What are the possible codes for the category types?
Answer:
A = Adult
C = Child
I = Organization
P = Professional
S = Staff
X = Statistical
Messaging preferences
Question: What are the possible codes in the message_attribute_id field in the borrower_message_preferences table?
Answer:
2 = advanced notice
6 = item checkout
4 = hold filled
1 = item due
5 = item check in
Recalls table
Question: What are the possible codes for the status field in the recalls table?
Answer:
requested
A new recall request has been made and the item must be returned
waiting
A recalled item is awaiting pickup at the requester’s chosen branch
in_transit
An item has been allocated to a recall and is in transit to the requester’s chosen pickup branch
overdue
A recalled item is overdue to be returned
fulfilled
A recalled item has been checked out to the recall requester, and the recall is complete
expired
The recall was not completed before a defined expiration date or the recall requester failed to pick up their waiting recall within the pickup period
cancelled
The recall request was cancelled.
Only requested or overdue recalls can be cancelled.
Action logs modules and actions
Question: What are the possible modules in the action_logs table and what are the possible actions for each?
Answer:
ACQUISITIONS
Records changes to orders and baskets in acquisitions as well as budget adminitration
Possible actions
ADD_BASKET: a new basket was created
APPROVE_BASKET: an EDI basket was approved
CANCEL_ORDER: an order was cancelled
CLOSE_BASKET: a basket was closed
CREATE_FUND: a fund was created
CREATE_INVOICE_ADJUSTMENT: an adjustment was added to an invoice
CREATE_ORDER: an order was added to a basket
DELETE_FUND: a fund was deleted
DELETE_INVOICE_ADJUSTMENT: an adjustment was deleted from an invoice
MODIFY_BASKET: a basket was edited (adding or modifying orders)
MODIFY_BASKET_HEADER: a basket’s information (such as the basket name or billing place) was edited
MODIFY_BASKET_USERS: a basket’s users were edited
MODIFY_BUDGET: a budget was edited (this does not include clo)
MODIFY_FUND: a fund was edited
MODIFY_ORDER: an order was edited
RECEIVE_ORDER: an order was received
REOPEN_BASKET: a closed basket was reopened
UPDATE_INVOICE_ADJUSTMENT: an adjustment to an invoice was edited
Enabled by the AcquisitionLog system preference
AUTH
Records when patrons or staff log in to the OPAC or the staff interface
Possible actions
FAILURE: a patron or staff member tried to log in with the wrong credentials
SUCCESS: a patron or staff member logged in successfully
Enabled by the AuthFailureLog and AuthSuccessLog system preferences
AUTHORITIES
Records changes to authority records
Possible actions
ADD: authority record was created
DELETE: authority record was deleted
MODIFY: authority record was modified
Enabled by the AuthoritiesLog system preference
CATALOGUING
Records changes to bibliographic records and items
Possible actions
ADD: bibliographic record or item was created
DELETE: bibliographic record or item was deleted
MODIFY: bibliographic record or item was modified, or a cover image was added to the record
Enabled by the CataloguingLog system preference
CIRCULATION
Possible actions
ISSUE: an item was checked out
RETURN: an item was checked in
RENEWAL: a checkout was renewed
Enabled by the IssueLog, RenewalLog, and ReturnLog system preferences
CLAIMS
Records when late orders are claimed
Possible actions
ACQUISITION CLAIM: a late order was claimed
Enabled by the ClaimsLog system preference
CRONJOBS
Records when a cronjob is run
Possible actions
Run: a cron job was executed
FINES
Records changes to charges
Possible actions
CREATE: a charge was added to a patron’s account (manually or automatically)
MODIFY: a charge was modified (forgiven)
UPDATE: a charge was updated (only in the case of fines that are still accruing)
VOID: a payment was voided
Enabled by the FinesLog system preference
HOLDS
Records changes to holds
Possible actions
CANCEL: a hold was cancelled
CREATE: a hold was placed
DELETE: a hold was deleted, an item on hold was checked out by the patron
FILL: a hold was confirmed and put aside to await pickup
MODIFY: a hold was modified (the priority was changed, the expiration date changed, etc.)
RESUME: a suspended hold was resumed
SUSPEND: a hold was suspended
Enabled by the HoldsLog system preference
ILL
Records changes to ILL requests.
Possible actions
PATRON_NOTICE: a notice was sent to a patron regarding their ILL request
STATUS_CHANGE: the status of an ILL request was modified
Enabled by the IllLog system preference.
MEMBERS
Records changes to the patron files
Possible actions
ADDCIRCMESSAGE: an internal message or OPAC message was added to the patron’s account
CHANGE PASS: a patron’s password was changed
CREATE: a new patron was added
DELCIRCMESSAGE: an internal message or OPAC message was deleted
DELETE: a patron’s account was deleted
MODIFY: a patron’s account was edited
RENEW: a patron’s membership was renewed
Enabled by the BorrowersLog system preference
NEWS
Records changes to news and HTML customizations.
Possible actions
ADD: a new news item or HTML customization was created
DELETE: a news item or HTML customization was deleted
MODIFY: a news item or HTML customization was edited
Enabled by the NewsLog system preference.
NOTICES
Records changes to notice and slips templates.
Possible actions
CREATE: a new notice or slip template was created
DELETE: a notice or slip template was deleted
MODIFY: a notice or slip template was edited
Enabled by the NoticesLog system preference.
RECALLS
Records changed to recalls
Possible actions
CANCEL: a recall was cancelled
EXPIRE: a recall expired
FULFILL: a recall was filled (confirmed and set aside to wait for pickup)
OVERDUE: the status of a recall was set to ‘overdue’
Enabled by the RecallsLog system preference
REPORTS
Records changes to reports
Possible actions
ADD: a new report was created
DELETE: a report was deleted
MODIFY: a report was edited
Enabled by the ReportsLog system preference
SEARCH_ENGINE
Records changes to mappings
Possible actions
EDIT_MAPPINGS: mappings were modified (edited, deleted)
RESET_MAPPINGS: mappings were reset to the original configuration
SERIAL
Records changes to serial subscriptions
Possible actions
ADD: a new serial subscription was created
DELETE: a serial subscription was deleted
MODIFY: a serial subscription was edited
RENEW: a serial subscription was renewed
Enabled by the SubscriptionLog system preference
SYSTEMPREFERENCE
Records changes to the system preferences
Possible actions
ADD: a new configuration was added
DELETE:
MODIFY: a system preference was edited, a configuration was added (in the case of Automatic item modifications by age for example), records were reindexed
Runtime parameters
Question: Is there a way to filter my custom SQL reports before they run?
Answer: If you want to make your reports easy to reuse with different filters and date ranges, you can add runtime parameters to your query. Runtime parameters basically make a filter appear before the report is run.
Searching
Advanced search
Scan indexes
Question: What does ‘scan indexes’ on the advanced search page mean?
Answer: When you choose an index, enter a term, click ‘scan indexes’ and do the search, Koha displays the searched term and the following terms found in this index with the number of corresponding records. That search is not made directly in the catalog, but first in the indexes. It works only for one index at once, and only with no limit on library or library group (All libraries needed).
Searching for terms that start with a character
Question: How do I search for all titles that start with the letter ‘C’?
Answer: You can choose to search for things that start with a character or series of characters by using the CCL ‘first-in-subfield’
example: ti,first-in-subfield=C
Wildcard searching
Question:What is the difference between a keyword search using the ‘*’ (asterisk) versus a keyword search using the ‘%’ (percent)? Both work in the catalog, but return different sets. Why?
Answer: A wildcard is a character (*,?,%,.) that can be used to represent one or more characters in a word. Two of the wildcard characters that can be used in Koha searches are the asterisk (’*’) and the percent sign (‘%’). However, these two characters act differently when used in searching.
The ‘*’ is going to force a more exact search of the first few characters you enter prior to the ‘*’. The asterisk will allow for an infinite number of characters in the search as long as the first few characters designated by your search remain the same. For example, searching for authors using the term, Smi*, will return a list that may include Smith, Smithers, Smithfield, Smiley, etc depending on the authors in your database.
The ‘%’ will treat the words you enter in the terms of “is like”. So a search of Smi% will search for words like Smi. This results in a much more varied results list. For example, a search on Smi% will return a list containing Smothers, Smith, Smelley, Smithfield and many others depending on what is your database.
The bottom line in searching with wildcards: ‘*’ is more exact while ‘%’ searches for similar terms.
Title searching
Question: Why does my Zebra title search for ‘Help’ not turn up ‘The help’ in the first pages of results?
Answer: In general, the more terms you enter, the better your results will be. Koha doesn’t use stop words, so searching for “the” and “an” will work just fine. So “the help” should bring better results than just a title search for help. Also using “Title, phrase” would further improve the results as it means that these terms have to appear in this sequence and with no other terms in between.
Some system preferences are known to affect relevancy ranking negatively. These are QueryAutoTruncate and UseICUStyleQuotes.
Note: If multiple results have the same relevancy score, they will be sorted by biblionumber as second criteria.
Reset the Zebra index
Run the following commands to reset the authorities and biblios Zebra indices.
$ zebraidx -c /etc/koha/zebradb/zebra-authorities-dom.cfg -g iso2709 -d authorities init
$ zebraidx -c /etc/koha/zebradb/zebra-biblios.cfg -g iso2709 -d biblios init
If you are running a package install then you’ll want to run the following commands to reset the authorities and biblios Zebra indices instead:
$ sudo zebraidx -c /etc/koha/sites/YOURLIBRARY/zebra-authorities-dom.cfg -g iso2709 -d authorities init
$ sudo zebraidx -c /etc/koha/sites/YOURLIBRARY/zebra-biblios.cfg -g iso2709 -d biblios init
Replacing YOURLIBRARY with your Koha installation name.
Enhanced content
Amazon
All Amazon content
Question: I have all of the Amazon preferences turned on and have entered both of my keys, but none of the content appears in my system, why is that?
Answer: Amazon’s API checks your server time on all requests and if your server time is not set properly requests will be denied. To resolve this issue be sure to set your system time appropriately. Once that change in made Amazon content should appear immediately.
On Debian the the command is date -s “2010-06-30 17:21” (with the proper date and time for your timezone).
Amazon also requires an ISBN for displaying book covers - make sure that you have the correct ISBN for your title. If you are having trouble with a book that seems like it should have a cover but doesn’t turn one up, give it a try with the 10 digit ISBN in the first 020a. If you have a 10 digit and it’s not turning up, try with the 13 digit ISBN in the first 020a.
Server administration
Making Z39.50 target public
Question: How can I configure Zebra to make my database searchable via Z39.50?
Answer: Edit the KOHA_CONF file that your Koha is using. Uncomment the publicserver line like:
<!– <listen id=”publicserver” >tcp:@:9999</listen> –>
to be:
<listen id=”publicserver” >tcp:@:9999</listen>
Then restart zebasrv and connect on the port specified (9999).
How do I clean up the sessions table?
Question: Is there a periodic job that can be run to cull old sessions from the table? We don’t want to backup all the useless session data every night.
Answer: You can regularly run the cleanup database cron job.
Or just before doing a backup command (mysqldump), you can truncate session table:
mysql -u<kohauser -p<password <koha-db-name -e 'TRUNCATE TABLE sessions'
Hardware
Barcode scanners
Question: What barcode scanners have been known to work with Koha?
Answer: The simple rule of thumb is: does it act like a keyboard device? If so, it will work. (i.e. can you take the scanner, scan a barcode and have it show up in a text editor.)
The main points to check are that it connects to your PC conveniently (can be USB or “keyboard wedge” which means it connects in line with the keyboard, which is useful with older computers), and that it scans the barcode type that you are using.
It is a good idea to test some ‘used’ barcodes if you have any, to see whether the scanner can read scuffed or slightly wrinkled ones successfully. Most scanners are capable of reading several barcode types - there are many, and the specification should list the ones it can read. You may need to adjust settings slightly, such as prefix and suffix characters, or whether you want to send an ‘enter’ character or not.
One more tip - some can be set ‘always on’ and may come with a stand, some have triggers under the handle, some have buttons on top, some are held like a pen. Think about the staff working with the hardware before choosing, as a button in the wrong place can be very awkward to use.
Printers
Printers used by Koha libraries
General rule of thumb here is that if you can print with the printer from your browser, it will work with Koha.
POS-X receipt printer
Star Micronics printer (exact model unknown) with a generic/plain text driver.
Star SP2000 (Nelsonville)
Star TSP-100 futurePRINT (Geauga)
“I know there have been a lot of questions on receipt printers so I thought I’d pass on my findings. We have been testing the Star TSP-100 futurePRINT. I found this print to be VERY easy to configure for Koha. I was even able to customize the print job by adding our system logo (a .gif) to the top of every receipt. Also with a bitmap created in Paint was able to add a message at the bottom of each receipt with the contact information, hours and website for the library that the materials were checked out at.”
Epson TM 88 IIIP thermal receipt printers
Epson TM-T88IV
1x1 labels using a Dymolabelwriter printer
Braille support
Question: Are there any braille embossers or printers which have inbuilt braille converters and are accessible within the UNIX environment?
Answer: You may want to look into BRLTTY.