background-image: url("data:image/svg+xml;utf8,<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='24' height='24' viewBox='0 0 24 24'><path fill='#444' d='M7.406 7.828l4.594 4.594 4.594-4.594 1.406 1.406-6 6-6-6z'></path></svg>");
background-position: 100% 50%;
background-repeat: no-repeat;
+ padding-top: 10px;
+ height: 45px;
+ padding-bottom: 10px;
+ font-size: 18px;
}
select.bg-primary, select.bg-primary:hover, select.bg-primary:active {
.card {
margin: 10px;
+}
+
+option {
+ font-size: 20px;
+ padding-top: 5px;
+ padding-bottom: 5px;
+}
+
+.btn {
+ min-height: 50px;
+ min-width: 50px;
}
\ No newline at end of file
--- /dev/null
+ 87 apt-get install pi-bluetooth
+ 88 bluetoothctl
+ 89 sudo apt-get install bluetooth bluez blueman
+ 90 sudo apt-get install bluetooth bluez
+ 91 apt-get install bluez-cups
+ 92 apt-get install bluetooth
+ 93 systemctl status bluetooth
+ 94 systemctl start bluetooth
+ 95 systemctl status bluetooth
+ 96 systemctl enable bluetooth
+ 97 systemctl restart bluetooth
+ 98 shutdown -r now
+ 99 bluetoothctl
+ 100 bluetoothctl
+ 101 bluetoothctl
+ 102 cd /etc/bluetooth/
+ 103 ls
+ 104 hciconfig
+ 105 cat /etc/bluetooth/main.conf
+ 106 hciconfig hci0 class
+ 107 vim.tiny main.conf
+ 108 vi /etc/bluetooth/main.conf
+ 109 vi /etc/bluetooth/main.conf
+ 110 vi /etc/bluetooth/main.conf
+ 111 cd /etc/bluetooth/
+ 112 ls
+ 113 ls -al
+ 114 rm .main.conf.swp
+ 115 cat main.conf
+ 116 systemctl daemon-reload
+ 117 service bluetooth restart
+ 118 hciconfig -a
+ 119 bluetoothctl
+ 120 apt-get install bluez bluez-utils obexftp
+ 121 apt-get install bluez obexftp
+ 122 sdptool browse
+ 123 hcitool scan
+ 124 hcitool
+ 125 hcitool dev
+ 126 vi main.conf
+ 127 vi main.conf
+ 128 vim.tiny main.conf
+ 129 systemctl daemon-reload
+ 130 service bluetooth restart
+ 131 bluetoothctl
+ 132 hciconfig -a
--- /dev/null
+# Class configuration file for CUPS v2.2.1
+# Written by cupsd
+# DO NOT EDIT THIS FILE WHEN CUPSD IS RUNNING
--- /dev/null
+# All configuration options described here can also be supplied on the
+# command line of cups-browsed via the "-o" option. In case of
+# contradicting settings the setting defined in the configuration file
+# will get used.
+
+# Unknown directives are ignored, also unknown values.
+
+
+# Where should cups-browsed save information about the print queues it had
+# generated when shutting down, like whether one of these queues was the
+# default printer, or default option settings of the queues?
+
+# CacheDir /var/cache/cups
+
+
+# Where should cups-browsed create its debug log file (if "DebugLogging file"
+# is set)?
+
+# LogDir /var/log/cups
+
+
+# How should debug logging be done? Into the file
+# /var/log/cups/cups-browsed_log ('file'), to stderr ('stderr'), or
+# not at all ('none')?
+
+# DebugLogging file
+# DebugLogging stderr
+# DebugLogging file stderr
+# DebugLogging none
+
+
+# Which protocols will we use to discover printers on the network?
+# Can use DNSSD and/or CUPS and/or LDAP, or 'none' for neither.
+
+BrowseRemoteProtocols dnssd cups
+
+
+# Which protocols will we use to broadcast shared local printers to the network?
+# Can use DNSSD and/or CUPS, or 'none' for neither.
+# Only CUPS is actually supported, as DNSSD is done by CUPS itself (we ignore
+# DNSSD in this directive).
+
+# BrowseLocalProtocols none
+
+
+# Settings of this directive apply to both BrowseRemoteProtocols and
+# BrowseLocalProtocols.
+# Can use DNSSD and/or CUPS and/or LDAP, or 'none' for neither.
+
+# BrowseProtocols none
+
+
+# Only browse remote printers (via DNS-SD or CUPS browsing) from
+# selected servers using the "BrowseAllow", "BrowseDeny", and
+# "BrowseOrder" directives
+
+# This serves for restricting the choice of printers in print dialogs
+# to trusted servers or to reduce the number of listed printers in the
+# print dialogs to a more user-friendly amount in large networks with
+# very many shared printers.
+
+# This only filters the selection of remote printers for which
+# cups-browsed creates local queues. If the print dialog uses other
+# mechanisms to list remote printers as for example direct DNS-SD
+# access, cups-browsed has no influence. cups-browsed also does not
+# prevent the user from manually accessing non-listed printers.
+
+# "BrowseAllow": Accept printers from these hosts or networks. If
+# there are only "BrowseAllow" lines and no "BrowseOrder" and/or
+# "BrowseDeny" lines, only servers matching at last one "BrowseAllow"
+# line are accepted.
+
+# "BrowseDeny": Deny printers from these hosts or networks. If there
+# are only "BrowseDeny" lines and no "BrowseOrder" and/or
+# "BrowseAllow" lines, all servers NOT matching any of the
+# "BrowseDeny" lines are accepted.
+
+# "BrowseOrder": Determine the order in which "BrowseAllow" and
+# "BrowseDeny" lines are applied. With "BrowseOrder Deny,Allow" in the
+# beginning all servers are accepted, then the "BrowseDeny" lines are
+# applied to exclude unwished servers or networks and after that the
+# "BrowseAllow" lines to re-include servers or networks. With
+# "BrowseOrder Allow,Deny" we start with denying all servers, then
+# applying the "BrowseAllow" lines and afterwards the "BrowseDeny"
+# lines.
+
+# Default for "BrowseOrder" is "Deny.Allow" if there are both
+# "BrowseAllow" and "BrowseDeny" lines.
+
+# If there are no "Browse..." lines at all, all servers are accepted.
+
+# BrowseAllow All
+# BrowseAllow cups.example.com
+# BrowseAllow 192.168.1.12
+# BrowseAllow 192.168.1.0/24
+# BrowseAllow 192.168.1.0/255.255.255.0
+
+# BrowseDeny All
+# BrowseDeny printserver.example.com
+# BrowseDeny 192.168.1.13
+# BrowseDeny 192.168.3.0/24
+# BrowseDeny 192.168.3.0/255.255.255.0
+
+# BrowseOrder Deny,Allow
+# BrowseOrder Allow,Deny
+
+
+# The interval between browsing/broadcasting cycles, local and/or
+# remote, can be adjusted with the BrowseInterval directive.
+
+# BrowseInterval 60
+
+
+# Browsing-related operations such as adding or removing printer queues
+# and broadcasting are each allowed to take up to a given amount of time.
+# It can be configured, in seconds, with the BrowseTimeout directive.
+# Especially queues discovered by CUPS broadcasts will be removed after
+# this timeout if no further broadcast from the server happens.
+
+# BrowseTimeout 300
+
+
+# Filtering of remote printers by other properties than IP addresses
+# of their servers
+
+# Often the desired selection of printers cannot be reached by only
+# taking into account the IP addresses of the servers. For these cases
+# there is the BrowseFilter directive to filter by most of the known
+# properties of the printer.
+
+# By default there is no BrowseFilter line meaning that no filtering
+# is applied.
+
+# To do filtering one can supply one or more BrowseFilter directives
+# like this:
+
+# BrowseFilter [NOT] [EXACT] <FIELD> [<VALUE>]
+
+# The BrowseFilter directive always starts with the word
+# "BrowseFilter" and it must at least contain the name of the data
+# field (<FIELD>) of the printer's properties to which it should
+# apply.
+
+# Available field names are:
+
+# name: Name of the local print queue to be created
+# host: Host name of the remote print server
+# port: Port through which the printer is accessed on the server
+# service: DNS/SD service name of the remote printer
+# domain: Domain of the remote print server
+
+# Also all field names in the TXT records of DNS-SD-advertised printers
+# are valid, like "color", "duplex", "pdl", ... If the field name of
+# the filter rule does not exist for the printer, the rule is skipped.
+
+# The optional <VALUE> field is either the exact value (when the
+# option EXACT is supplied) or a regular expression (Run "man 7 regex"
+# in a terminal window) to be matched with the data field.
+
+# If no <VALUE> filed is supplied, rules with field names of the TXT
+# record are considered for boolean matching (true/false) of boolean
+# field (like duplex, which can have the values "T" for true and "F"
+# for false).
+
+# If the option NOT is supplied, the filter rule is fulfilled if the
+# regular expression or the exact value DOES NOT match the content of
+# the data field. In a boolean rule (without <VALUE>) the rule matches
+# false.
+
+# Regular expressions are always considered case-insensitive and
+# extended POSIX regular expressions. Field names and options (NOT,
+# EXACT) are all evaluated case-insensitive. If there is an error in a
+# regular expression, the BrowseFilter line gets ignored.
+
+# Especially to note is that supplying any simple string consisting of
+# only letters, numbers, spaces, and some basic special characters as
+# a regular expression matches if it is contained somewhere in the
+# data field.
+
+# If there is more than one BrowseFilter directive, ALL the directives
+# need to be fulfilled for the remote printer to be accepted. If one
+# is not fulfilled, the printer will get ignored.
+
+# Examples:
+
+# Rules for standard data items which are supplied with any remote
+# printer advertised via DNS-SD:
+
+# Print queue name must contain "hum_res_", this matches
+# "hum_res_mono" or "hum_res_color" but also "old_hum_res_mono":
+
+# BrowseFilter name hum_res_
+
+# This matches if the remote host name contains "printserver", like
+# "printserver.local", "printserver2.example.com", "newprintserver":
+
+# BrowseFilter host printserver
+
+# This matches all ports with 631 int its number, for example 631,
+# 8631, 10631,...:
+
+# BrowseFilter port 631
+
+# This rule matches if the DNS-SD service name contains "@ printserver":
+
+# Browsefilter service @ printserver
+
+# Matches all domains with "local" in their names, not only "local" but
+# also things like "printlocally.com":
+
+# BrowseFilter domain local
+
+# Examples for rules applying to items of the TXT record:
+
+# This rule selects PostScript printers, as the "PDL" field in the TXT
+# record contains "postscript" then. This includes also remote CUPS
+# queues which accept PostScript, independent of whether the physical
+# printer behind the CUPS queue accepts PostScript or not.
+
+# BrowseFilter pdl postscript
+
+# Color printers usually contain a "Color" entry set to "T" (for true)
+# in the TXT record. This rule selects them:
+
+# BrowseFilter color
+
+# This is a similar rule to select only duplex (automatic double-sided
+# printing) printers:
+
+# BrowseFilter duplex
+
+# Rules with the NOT option:
+
+# This rule EXCLUDES printers from all hosts containing "financial" in
+# their names, nice to get rid of the 100s of printers of the
+# financial department:
+
+# BrowseFilter NOT host financial
+
+# Get only monochrome printers ("Color" set to "F", meaning false, in
+# the TXT record):
+
+# BrowseFilter NOT color
+
+# Rules with more advanced use of regular expressions:
+
+# Only queue names which BEGIN WITH "hum_res_" are accepted now, so we
+# still get "hum_res_mono" or "hum_res_color" but not
+# "old_hum_res_mono" any more:
+
+# BrowseFilter name ^hum_res_
+
+# Server names is accepted if it contains "print_server" OR
+# "graphics_dep_server":
+
+# BrowseFilter host print_server|graphics_dep_server
+
+# "printserver1", "printserver2", and "printserver3", nothing else:
+
+# BrowseFilter host ^printserver[1-3]$
+
+# Printers understanding at least one of PostScript, PCL, or PDF:
+
+# BrowseFilter pdl postscript|pcl|pdf
+
+# Examples for the EXACT option:
+
+# Only printers from "printserver.local" are accepted:
+
+# BrowseFilter EXACT host printserver.local
+
+# Printers from all servers except "prinserver2.local" are accepted:
+
+# BrowseFilter NOT EXACT host prinserver2.local
+
+
+# Use BrowsePoll to poll a particular CUPS server
+
+# BrowsePoll cups.example.com
+# BrowsePoll cups.example.com:631
+# BrowsePoll cups.example.com:631/version=1.1
+
+
+# LDAP browsing configuration
+# The default value for all options is an empty string. Example configuration:
+
+# BrowseLDAPBindDN cn=cups-browsed,dc=domain,dc=tld
+# BrowseLDAPCACertFile /path/to/server/certificate.pem
+# BrowseLDAPDN ou=printers,dc=domain,dc=tld
+# BrowseLDAPFilter (printerLocation=/Office 1/*)
+# BrowseLDAPPassword s3cret
+# BrowseLDAPServer ldaps://ldap.domain.tld
+
+
+# Use DomainSocket to access the local CUPS daemon via another than the
+# default domain socket. "None" or "Off" lets cups-browsed not use CUPS'
+# domain socket.
+
+# DomainSocket /var/run/cups/cups.sock
+# DomainSocket None
+# DomainSocket Off
+
+
+# Set IPBasedDeviceURIs to "Yes" if cups-browsed should create its
+# local queues with device URIs with the IP addresses instead of the
+# host names of the remote servers. This mode is there for any
+# problems with host name resolution in the network, especially also
+# if avahi-daemon is only run for printer discovery and already
+# stopped while still printing. By default this mode is turned off,
+# meaning that we use URIs with host names.
+
+# If you prefer IPv4 or IPv6 IP addresses in the URIs, you can set
+# IPBasedDeviceURIs to "IPv4" to only get IPv4 IP addresses or
+# IPBasedDeviceURIs to "IPv6" to only get IPv6 IP addresses.
+
+# IPBasedDeviceURIs No
+# IPBasedDeviceURIs Yes
+# IPBasedDeviceURIs IPv4
+# IPBasedDeviceURIs IPv6
+
+
+# Set CreateRemoteRawPrinterQueues to "Yes" to let cups-browsed also
+# create local queues pointing to remote raw CUPS queues. Normally,
+# only queues pointing to remote queues with PPD/driver are created
+# as we do not use drivers on the client side, but in some cases
+# accessing a remote raw queue can make sense, for example if the
+# queue forwards the jobs by a special backend like Tea4CUPS.
+
+# CreateRemoteRawPrinterQueues Yes
+
+
+# Set CreateIPPPrinterQueues to "Yes" to let cups-browsed discover IPP
+# network printers (native printers, not CUPS queues) with known page
+# description languages (PWG Raster, PDF, PostScript, PCL XL, PCL
+# 5c/e) in the local network and auto-create PPD-less print queues for
+# them (using a System V interface script to control the filter
+# chain). Clients have to IPP-poll the capabilities of the printer and
+# send option settings as standard IPP attributes. We do not poll the
+# capabilities by ourselves to not wake up the printer from
+# power-saving mode when creating the queues. Jobs have to be sent in
+# one of PDF, PWG Raster, or JPEG format. Other formats are not
+# accepted. This functionality is primarily for mobile devices running
+# CUPS to not need a printer setup tool nor a collection of printer
+# drivers and PPDs.
+
+# CreateIPPPrinterQueues Yes
+
+
+# If cups-browsed is automatically creating print queues for native
+# IPP network printers ("CreateIPPPrinterQueues Yes"), the type of
+# queue to be created can be selected by the "IPPPrinterQueueType"
+# directive. The "PPD" (default) setting makes queues with PPD file
+# being created. With "Interface" or "NoPPD" the queue is created with
+# a System V interface script (Not supported with CUPS 2.2.x or
+# later). "Auto" is for backward compatibility and also lets queues
+# with PPD get created.
+
+# IPPPrinterQueueType PPD
+# IPPPrinterQueueType NoPPD
+# IPPPrinterQueueType Interface
+# IPPPrinterQueueType Auto
+
+
+# The LoadBalancing directive switches between two methods of handling
+# load balancing between equally-named remote queues which are
+# represented by one local print queue making up a cluster of them
+# (implicit class).
+
+# The two methods are:
+
+# Queuing of jobs on the client (LoadBalancing QueueOnClient):
+
+# Here we queue up the jobs on the client and regularly check the
+# clustered remote print queues. If we find an idle queue, we pass
+# on a job to it.
+
+# This is also the method which CUPS uses for classes. Advantage is a
+# more even distribution of the job workload on the servers
+# (especially if the printing speed of the servers is very different),
+# and if a server fails, there are not several jobs stuck or
+# lost. Disadvantage is that if one takes the client (laptop, mobile
+# phone, ...) out of the local network, printing stops with the jobs
+# waiting in the local queue.
+
+# Queuing of jobs on the servers (LoadBalancing QueueOnServers):
+
+# Here we check the number of jobs on each of the clustered remote
+# printers and send an incoming job immediately to the remote printer
+# with the lowest amount of jobs in its queue. This way no jobs queue
+# up locally, all jobs which are waiting are waiting on one of the
+# remote servers.
+
+# Not having jobs waiting locally has the advantage that we can take
+# the local machine from the network and all jobs get printed.
+# Disadvantage is that if a server with a full queue of jobs goes
+# away, the jobs go away, too.
+
+# Default is queuing the jobs on the client as this is what CUPS does
+# with classes.
+
+# LoadBalancing QueueOnClient
+# LoadBalancing QueueOnServers
+
+
+# With the DefaultOptions directive one or more option settings can be
+# defined to be applied to every print queue newly created by
+# cups-browsed. Each option is supplied as one supplies options with
+# the "-o" command line argument to the "lpadmin" command (Run "man
+# lpadmin" for more details). More than one option can be supplied
+# separating the options by spaces. By default no option settings are
+# pre-defined.
+
+# Note that print queues which cups-browsed already created before
+# remember their previous settings and so these settings do not get
+# applied.
+
+# DefaultOptions Option1=Value1 Option2=Value2 Option3 noOption4
+
+
+# The AutoShutdown directive specifies whether cups-browsed should
+# automatically terminate when it has no local raw queues set up
+# pointing to any discovered remote printers or no jobs on such queues
+# depending on AutoShutdownOn setting (auto shutdown mode). Setting it
+# to "On" activates the auto-shutdown mode, setting it to "Off"
+# deactiivates it (the default). The special mode "avahi" turns auto
+# shutdown off while avahi-daemon is running and on when avahi-daemon
+# stops. This allows running cups-browsed on-demand when avahi-daemon
+# is run on-demand.
+
+# AutoShutdown Off
+# AutoShutdown On
+# AutoShutdown avahi
+
+
+# The AutoShutdownOn directive determines what event cups-browsed
+# considers as inactivity in auto shutdown mode. "NoQueues" (the
+# default) means that auto shutdown is initiated when there are no
+# queues for discovered remote printers generated by cups-browsed any
+# more. "NoJobs" means that all queues generated by cups-browsed are
+# without jobs.
+
+# AutoShutdownOn NoQueues
+# AutoShutdownOn NoJobs
+
+
+# The AutoShutdownTimeout directive specifies after how many seconds
+# without local raw queues set up pointing to any discovered remote
+# printers or jobs on these queues cups-browsed should actually shut
+# down in auto shutdown mode. Default is 30 seconds, 0 means immediate
+# shutdown.
+
+# AutoShutdownTimeout 30
--- /dev/null
+#
+# File/directory/user/group configuration file for the CUPS scheduler.
+# See "man cups-files.conf" for a complete description of this file.
+#
+
+# List of events that are considered fatal errors for the scheduler...
+#FatalErrors config
+
+# Do we call fsync() after writing configuration or status files?
+#SyncOnClose Yes
+
+# Default user and group for filters/backends/helper programs; this cannot be
+# any user or group that resolves to ID 0 for security reasons...
+#User lp
+#Group lp
+
+# Administrator user group, used to match @SYSTEM in cupsd.conf policy rules...
+# This cannot contain the Group value for security reasons...
+SystemGroup lpadmin
+
+
+# User that is substituted for unauthenticated (remote) root accesses...
+#RemoteRoot remroot
+
+# Do we allow file: device URIs other than to /dev/null?
+#FileDevice No
+
+# Permissions for configuration and log files...
+#ConfigFilePerm 0640
+#LogFilePerm 00640
+
+# Location of the file logging all access to the scheduler; may be the name
+# "syslog". If not an absolute path, the value of ServerRoot is used as the
+# root directory. Also see the "AccessLogLevel" directive in cupsd.conf.
+AccessLog /var/log/cups/access_log
+
+# Location of cache files used by the scheduler...
+#CacheDir /var/cache/cups
+
+# Location of data files used by the scheduler...
+#DataDir /usr/share/cups
+
+# Location of the static web content served by the scheduler...
+#DocumentRoot /usr/share/cups/doc-root
+
+# Location of the file logging all messages produced by the scheduler and any
+# helper programs; may be the name "syslog". If not an absolute path, the value
+# of ServerRoot is used as the root directory. Also see the "LogLevel"
+# directive in cupsd.conf.
+ErrorLog /var/log/cups/error_log
+
+# Location of fonts used by older print filters...
+#FontPath /usr/share/cups/fonts
+
+# Location of LPD configuration
+#LPDConfigFile
+
+# Location of the file logging all pages printed by the scheduler and any
+# helper programs; may be the name "syslog". If not an absolute path, the value
+# of ServerRoot is used as the root directory. Also see the "PageLogFormat"
+# directive in cupsd.conf.
+PageLog /var/log/cups/page_log
+
+# Location of the file listing all of the local printers...
+#Printcap /var/run/cups/printcap
+
+# Format of the Printcap file...
+#PrintcapFormat bsd
+#PrintcapFormat plist
+#PrintcapFormat solaris
+
+# Location of all spool files...
+#RequestRoot /var/spool/cups
+
+# Location of helper programs...
+#ServerBin /usr/lib/cups
+
+# SSL/TLS keychain for the scheduler...
+#ServerKeychain ssl
+
+# Location of other configuration files...
+#ServerRoot /etc/cups
+
+# Location of Samba configuration file...
+#SMBConfigFile
+
+# Location of scheduler state files...
+#StateDir /var/run/cups
+
+# Location of scheduler/helper temporary files. This directory is emptied on
+# scheduler startup and cannot be one of the standard (public) temporary
+# directory locations for security reasons...
+#TempDir /var/spool/cups/tmp
--- /dev/null
+# cups-pdf.conf -- CUPS Backend Configuration (version 2.6.1, 2011-10-04)
+# 18.09.2005, Volker C. Behr
+# Experimentelle Physik V, Universitaet Wuerzburg
+# behr@physik.uni-wuerzburg.de
+# http://www.cups-pdf.de
+#
+#
+# This code may be freely distributed as long as this header
+# is preserved. Changes to the code should be clearly indicated.
+#
+# This code is distributed under the GPL.
+# (http://www.gnu.org/copyleft/gpl.html)
+#
+# For more detailed licensing information see cups-pdf.c in the
+# corresponding version number.
+
+###########################################################################
+# #
+# This is the configuration file for CUPS-PDF. Values that are not set in #
+# here will use the defaults. Changes take effect immediately without the #
+# need for restarting any services. #
+# #
+# Take care not to add whitespaces at the end of a line! #
+# #
+###########################################################################
+
+
+###########################################################################
+# #
+# Path Settings #
+# #
+###########################################################################
+
+### Key: Out
+## CUPS-PDF output directory
+## special qualifiers:
+## ${HOME} will be expanded to the user's home directory
+## ${USER} will be expanded to the user name
+## in case it is an NFS export make sure it is exported without
+## root_squash!
+## on Ubuntu, the cupsd AppArmor profile needs to be updated
+## to match the output path as per instructions in LP:147551
+### Default: /var/spool/cups-pdf/${USER}
+
+Out ${HOME}/PDF
+
+### Key: AnonDirName
+## ABSOLUTE path for anonymously created PDF files
+## if anonymous access is disabled this setting has no effect
+### Default: /var/spool/cups-pdf/ANONYMOUS
+
+#AnonDirName /var/spool/cups-pdf/ANONYMOUS
+
+### Key: Spool
+## CUPS-PDF spool directory - make sure there is no user 'SPOOL' on your
+## system or change the path
+### Default: /var/spool/cups-pdf/SPOOL
+
+#Spool /var/spool/cups-pdf/SPOOL
+
+
+###########################################################################
+# #
+# Filename Settings #
+# #
+###########################################################################
+
+### Key: Truncate
+## truncate long filenames to a maximum of <Truncate> characters
+## this does not consider the full path to the output but only the filename
+## without the .pdf-extension or a job-id prefix (see 'Label')
+## the minimal value is 8
+### Default: 64
+
+#Truncate 64
+
+### Key: Cut
+## removing file name extensions before appending .pdf to output
+## extensions will only be removed if _both_ the following criteria are met:
+## - the extension (w/o the dot) is not longer than <Cut> characters
+## - the remaining filename has a minimal length of 1 character
+## set Cut to -1 in order to disable cutting
+## recommended values: pure UNIX environment : -1
+## mixed environments : 3
+### Default: 3
+
+#Cut 3
+
+### Key: Label
+## label all jobs with a unique job-id in order to avoid overwriting old
+## files in case new ones with identical names are created; always true for
+## untitled documents
+## 0: label untitled documents only
+## 1: label all documents with a preceeding "job_#-"
+## 2: label all documents with a tailing "-job_#"
+### Default: 0
+
+#Label 0
+
+### Key: TitlePref
+## where to look first for a title when creating the output filename
+## (title in PS file or title on commandline):
+## 0: prefer title from %Title statement in the PS file
+## 1: prefer title passed via commandline
+### Default: 0
+
+#TitlePref 0
+
+
+###########################################################################
+# #
+# User Settings #
+# #
+###########################################################################
+
+### Key: AnonUser
+## uid for anonymous PDF creation (this might be a security issue)
+## this setting has no influence on AnonDirName (see there)
+## set this to an empty value to disable anonymous
+### Default: nobody
+
+#AnonUser nobody
+
+### Key: LowerCase
+## This options allows to check user names given to CUPS-PDF additionally
+## against their lower case variants. This is necessary since in some
+## Windows environments only upper case user names are passed. Usually UNIX
+## user names are all lower case and it is save to use this option
+## but be aware that it can lead to mis-identifications in case
+## you have user names that differ only in upper/lower case.
+## check only against user name as passed to CUPS : 0
+## check additionally against lower case user name : 1
+### Default: 1
+
+#LowerCase 1
+
+### Key: UserPrefix
+## some installations require a domain prefix added to the user name
+## leave empty for no prefix
+### Default: <empty>
+
+#UserPrefix
+
+### Key: DirPrefix
+## if a prefix was defined above this switch toggels whether to include
+## the prefix in the output directory's name (if not $HOME) or not
+## 0: do not include, 1: include
+### Default: 0
+
+#DirPrefix 0
+
+### Key: RemovePrefix
+## some installation pass usernames with a prefix (usually a domain name)
+## if you do not want this prefix to be used by the ${USER} variable for
+## output directories put the part which is to be cut here
+### Default: <empty>
+
+#RemovePrefix
+
+
+###########################################################################
+# #
+# Security Settings #
+# #
+###########################################################################
+
+### Key: AnonUMask
+## umask for anonymous output
+## these are the _inverse_ permissions to be granted
+### Default: 0000
+
+#AnonUMask 0000
+
+### Key: UserUMask
+## umask for user output of known users
+## changing this can introduce security leaks if confidential
+## information is processed!
+### Default: 0077
+
+#UserUMask 0077
+
+### Key: Grp
+## group cups-pdf is supposed to run as - this will also be the gid for all
+## created directories and log files
+### Default: lp
+
+Grp lpadmin
+
+
+###########################################################################
+# #
+# Log Settings #
+# #
+###########################################################################
+
+### Key: Log
+## CUPS-PDF log directory
+## set this to an empty value to disable all logging
+### Default: /var/log/cups
+
+#Log /var/log/cups
+
+### Key: LogType
+## log-mode
+## 1: errors
+## 2: status (i.e. activity)
+## 4: debug - this will generate a lot of log-output!
+## add up values to combine options, i.e. 7 is full logging
+## if logging is disabled these setting have no effect
+### Default: 3
+
+#LogType 3
+
+
+###########################################################################
+# #
+# PDF Conversion Settings #
+# #
+###########################################################################
+
+### Key: GhostScript
+## location of GhostScript binary (gs)
+## MacOSX: for using pstopdf (recommended) set this to /usr/bin/pstopdf
+## or its proper location on your system
+### Default: /usr/bin/gs
+
+#GhostScript /usr/bin/gs
+
+### Key: GSTmp
+## location of temporary files during GhostScript operation
+## this must be user-writable like /var/tmp or /tmp !
+### Default: /var/tmp
+
+#GSTmp /var/tmp
+
+### Key: GSCall
+## command line for calling GhostScript (!!! DO NOT USE NEWLINES !!!)
+## MacOSX: for using pstopdf set this to %s %s -o %s %s
+### Default: %s -q -dCompatibilityLevel=%s -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pdfwrite -sOutputFile="%s" -dAutoRotatePages=/PageByPage -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -dPDFSETTINGS=/prepress -c .setpdfwrite -f %s
+
+#GSCall %s -q -dCompatibilityLevel=%s -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pdfwrite -sOutputFile="%s" -dAutoRotatePages=/PageByPage -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -dPDFSETTINGS=/prepress -c .setpdfwrite -f %s
+
+### Key: PDFVer
+## PDF version to be created - can be "1.5", "1.4", "1.3" or "1.2"
+## MacOSX: for using pstopdf set this to an empty value
+### Default: 1.4
+
+#PDFVer 1.4
+
+### Key: PostProcessing
+## postprocessing script that will be called after the creation of the PDF
+## as arguments the filename of the PDF, the username as determined by
+## CUPS-PDF and the one as given to CUPS-PDF will be passed
+## the script will be called with user privileges
+## set this to an empty value to use no postprocessing
+### Default: <empty>
+
+#PostProcessing
+
+
+###########################################################################
+# #
+# Experimental Settings #
+# These settings activate experimental options. If you decide to use #
+# them I would appreciate any feedback - including an 'ok' if they #
+# work as expected - so I can eventually put them into the non- #
+# experimental sections. #
+# #
+###########################################################################
+
+### Key: DecodeHexStrings
+## this option will try to decode hex strings in the title to allow
+## internationalized titles
+## (have a look at contrib/pstitleconv for a suitable filter for data
+## from Windows clients)
+## 0: disable, 1: enable
+### Default: 0
+
+DecodeHexStrings 1
+
+### Key: FixNewlines
+## this option will try to fix various unusal line delimiters (e.g.
+## form feeds)
+## especially useful when using non-Linux-generated files
+## 0: disable, 1: enable
+### Default: 0
+
+#FixNewlines 0
+
--- /dev/null
+LogLevel warn
+PageLogFormat
+MaxLogSize 0
+Port 631
+Listen /var/run/cups/cups.sock
+Browsing On
+BrowseLocalProtocols dnssd
+DefaultAuthType Basic
+WebInterface Yes
+<Location />
+ Order allow,deny
+ Allow All
+</Location>
+<Location /admin>
+ Order allow,deny
+ Allow All
+</Location>
+<Location /admin/conf>
+ AuthType Default
+ Require user @SYSTEM
+ Order allow,deny
+ Allow All
+</Location>
+<Location /admin/log>
+ AuthType Default
+ Require user @SYSTEM
+ Order allow,deny
+ Allow All
+</Location>
+<Policy default>
+ JobPrivateAccess default
+ JobPrivateValues default
+ SubscriptionPrivateAccess default
+ SubscriptionPrivateValues default
+ <Limit Create-Job Print-Job Print-URI Validate-Job>
+ Order deny,allow
+ </Limit>
+ <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-Document>
+ Require user @OWNER @SYSTEM
+ Order deny,allow
+ </Limit>
+ <Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default CUPS-Get-Devices>
+ AuthType Default
+ Require user @SYSTEM
+ Order deny,allow
+ </Limit>
+ <Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs>
+ AuthType Default
+ Require user @SYSTEM
+ Order deny,allow
+ </Limit>
+ <Limit Cancel-Job CUPS-Authenticate-Job>
+ Require user @OWNER @SYSTEM
+ Order deny,allow
+ </Limit>
+ <Limit All>
+ Order deny,allow
+ </Limit>
+</Policy>
+<Policy authenticated>
+ JobPrivateAccess default
+ JobPrivateValues default
+ SubscriptionPrivateAccess default
+ SubscriptionPrivateValues default
+ <Limit Create-Job Print-Job Print-URI Validate-Job>
+ AuthType Default
+ Order deny,allow
+ </Limit>
+ <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-Document>
+ AuthType Default
+ Require user @OWNER @SYSTEM
+ Order deny,allow
+ </Limit>
+ <Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default>
+ AuthType Default
+ Require user @SYSTEM
+ Order deny,allow
+ </Limit>
+ <Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs>
+ AuthType Default
+ Require user @SYSTEM
+ Order deny,allow
+ </Limit>
+ <Limit Cancel-Job CUPS-Authenticate-Job>
+ AuthType Default
+ Require user @OWNER @SYSTEM
+ Order deny,allow
+ </Limit>
+ <Limit All>
+ Order deny,allow
+ </Limit>
+</Policy>
+PreserveJobFiles Yes
+PreserveJobHistory Yes
--- /dev/null
+#
+# Configuration file for the CUPS scheduler. See "man cupsd.conf" for a
+# complete description of this file.
+#
+
+# Log general information in error_log - change "warn" to "debug"
+# for troubleshooting...
+LogLevel warn
+PageLogFormat
+
+# Deactivate CUPS' internal logrotating, as we provide a better one, especially
+# LogLevel debug2 gets usable now
+MaxLogSize 0
+
+# Only listen for connections from the local machine.
+#Listen localhost:631
+Port 631
+Listen /var/run/cups/cups.sock
+
+# Show shared printers on the local network.
+Browsing On
+BrowseLocalProtocols dnssd
+
+# Default authentication type, when authentication is required...
+DefaultAuthType Basic
+
+# Web interface setting...
+WebInterface Yes
+
+# Restrict access to the server...
+<Location />
+ Order allow,deny
+ Allow All
+</Location>
+
+# Restrict access to the admin pages...
+<Location /admin>
+ Order allow,deny
+ Allow All
+</Location>
+
+# Restrict access to configuration files...
+<Location /admin/conf>
+ AuthType Default
+ Require user @SYSTEM
+ Order allow,deny
+ Allow All
+</Location>
+
+# Restrict access to log files...
+<Location /admin/log>
+ AuthType Default
+ Require user @SYSTEM
+ Order allow,deny
+ Allow All
+</Location>
+
+# Set the default printer/job policies...
+<Policy default>
+ # Job/subscription privacy...
+ JobPrivateAccess default
+ JobPrivateValues default
+ SubscriptionPrivateAccess default
+ SubscriptionPrivateValues default
+
+ # Job-related operations must be done by the owner or an administrator...
+ <Limit Create-Job Print-Job Print-URI Validate-Job>
+ Order deny,allow
+ </Limit>
+
+ <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-Document>
+ Require user @OWNER @SYSTEM
+ Order deny,allow
+ </Limit>
+
+ # All administration operations require an administrator to authenticate...
+ <Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default CUPS-Get-Devices>
+ AuthType Default
+ Require user @SYSTEM
+ Order deny,allow
+ </Limit>
+
+ # All printer operations require a printer operator to authenticate...
+ <Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs>
+ AuthType Default
+ Require user @SYSTEM
+ Order deny,allow
+ </Limit>
+
+ # Only the owner or an administrator can cancel or authenticate a job...
+ <Limit Cancel-Job CUPS-Authenticate-Job>
+ Require user @OWNER @SYSTEM
+ Order deny,allow
+ </Limit>
+
+ <Limit All>
+ Order deny,allow
+ </Limit>
+</Policy>
+
+# Set the authenticated printer/job policies...
+<Policy authenticated>
+ # Job/subscription privacy...
+ JobPrivateAccess default
+ JobPrivateValues default
+ SubscriptionPrivateAccess default
+ SubscriptionPrivateValues default
+
+ # Job-related operations must be done by the owner or an administrator...
+ <Limit Create-Job Print-Job Print-URI Validate-Job>
+ AuthType Default
+ Order deny,allow
+ </Limit>
+
+ <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-Document>
+ AuthType Default
+ Require user @OWNER @SYSTEM
+ Order deny,allow
+ </Limit>
+
+ # All administration operations require an administrator to authenticate...
+ <Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default>
+ AuthType Default
+ Require user @SYSTEM
+ Order deny,allow
+ </Limit>
+
+ # All printer operations require a printer operator to authenticate...
+ <Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs>
+ AuthType Default
+ Require user @SYSTEM
+ Order deny,allow
+ </Limit>
+
+ # Only the owner or an administrator can cancel or authenticate a job...
+ <Limit Cancel-Job CUPS-Authenticate-Job>
+ AuthType Default
+ Require user @OWNER @SYSTEM
+ Order deny,allow
+ </Limit>
+
+ <Limit All>
+ Order deny,allow
+ </Limit>
+</Policy>
--- /dev/null
+*PPD-Adobe: "4.3"
+*FormatVersion: "4.3"
+*FileVersion: "1.1"
+*LanguageVersion: English
+*LanguageEncoding: ISOLatin1
+*PCFileName: "tm20.ppd"
+*Manufacturer: "Epson"
+*Product: "(TM-T20)"
+*1284DeviceID: "MFG:Epson;CMD:Epson;MDL:TMT20;CLS:PRINTER;"
+*cupsVersion: 1.1
+*cupsManualCopies: True
+*cupsModelNumber: 20
+*cupsFilter: "application/vnd.cups-raster 0 rastertozj"
+*ModelName: "TM-T20"
+*ShortNickName: "TM-T20"
+*NickName: "Epson TM-T20"
+*PSVersion: "(3010.000) 550"
+*LanguageLevel: "3"
+*ColorDevice: False
+*DefaultColorSpace: Gray
+*FileSystem: False
+*Throughput: "1"
+*LandscapeOrientation: Plus90
+*VariablePaperSize: True
+*TTRasterizer: Type42
+
+*OpenUI *PageSize/Media Size: PickOne
+*OrderDependency: 10 AnySetup *PageSize
+*DefaultPageSize: X80MMY210MM
+
+*PageSize X80MMY64MM/80mm x 74mm: "<</PageSize[226 181]/HWResolution[203 203]/ImagingBBox null>>setpagedevice"
+*PageSize X80MMY210MM/80mm x 210mm: "<</PageSize[226 595]/HWResolution[203 203]/ImagingBBox null>>setpagedevice"
+*PageSize X80MMY297MM/80mm x 297mm: "<</PageSize[226 842]/HWResolution[203 203]/ImagingBBox null>>setpagedevice"
+*PageSize X80MMY3276MM/80mm x 3276mm: "<</PageSize[226 9286]/HWResolution[203 203]/ImagingBBox null>>setpagedevice"
+
+*CloseUI: *PageSize
+
+*OpenUI *PageRegion: PickOne
+*OrderDependency: 10 AnySetup *PageRegion
+*DefaultPageRegion: X80MMY210MM
+
+*PageRegion X80MMY64MM/80mm x 74mm: "<</PageSize[226 219]/HWResolution[203 203]/ImagingBBox null>>setpagedevice"
+*PageRegion X80MMY210MM/80mm x 210mm: "<</PageSize[226 595]/HWResolution[203 203]/ImagingBBox null>>setpagedevice"
+*PageRegion X80MMY297MM/80mm x 297mm: "<</PageSize[226 842]/HWResolution[203 203]/ImagingBBox null>>setpagedevice"
+*PageRegion X80MMY3276MM/80mm x 3276mm: "<</PageSize[226 9286]/HWResolution[203 203]/ImagingBBox null>>setpagedevice"
+
+*DefaultImageableArea: X80MMY210MM
+
+*ImageableArea X80MMY64MM: "0 0 226 181"
+*ImageableArea X80MMY210MM: "0 0 226 595"
+*ImageableArea X80MMY297MM: "0 0 226 842"
+*ImageableArea X80MMY3276MM: "0 0 226 9286"
+
+*DefaultPaperDimension: X80MMY210MM
+
+*PaperDimension X80MMY64MM: "226 181"
+*PaperDimension X80MMY210MM: "226 595"
+*PaperDimension X80MMY297MM: "226 842"
+*PaperDimension X80MMY3276MM: "226 9286"
+
+*MaxMediaWidth: "226"
+*MaxMediaHeight: "9286"
+*HWMargins: 0 0 0 0
+*CustomPageSize True: "pop pop pop <</PageSize[5 -2 roll]/HWResolution[203 203]/ImagingBBox null>>setpagedevice"
+*ParamCustomPageSize Width: 1 points 72 226
+*ParamCustomPageSize Height: 2 points 72 9282
+*ParamCustomPageSize WidthOffset: 3 points 0 0
+*ParamCustomPageSize HeightOffset: 4 points 0 0
+*ParamCustomPageSize Orientation: 5 int 0 0
+
+*OpenGroup: CutGroup/Cut Options
+*OpenUI *FeedDist/Feed distance after print: PickOne
+*DefaultFeedDist: 4feed15mm
+*FeedDist 0feed3mm/feed 3mm: ""
+*FeedDist 1feed6mm/feed 6mm: ""
+*FeedDist 2feed9mm/feed 9mm: ""
+*FeedDist 3feed12mm/feed 12mm: ""
+*FeedDist 4feed15mm/feed 15mm: ""
+*FeedDist 5feed18mm/feed 18mm: ""
+*FeedDist 6feed21mm/feed 21mm: ""
+*FeedDist 7feed24mm/feed 24mm: ""
+*FeedDist 8feed27mm/feed 27mm: ""
+*FeedDist 9feed30mm/feed 30mm: ""
+*FeedDist 10feed33mm/feed 33mm: ""
+*FeedDist 11feed36mm/feed 36mm: ""
+*FeedDist 12feed39mm/feed 39mm: ""
+*FeedDist 13feed42mm/feed 42mm: ""
+*FeedDist 14feed45mm/feed 45mm: ""
+*CloseUI: *FeedDist
+
+
+*OpenUI *BlankSpace/Blank space at page's end: PickOne
+*DefaultBlankSpace: 0Print
+*BlankSpace 0Print/Print: ""
+*BlankSpace 1NoPrint/Do not print: ""
+*CloseUI: *BlankSpace
+
+*CloseGroup: *CutGroup
+
+*OpenGroup: *CashDrawerGroup/Cash Drawer Control
+*OpenUI *CashDrawer1Setting/Cash Drawer 1: PickOne
+*DefaultCashDrawer1Setting: 0NotCashDrawer1
+*CashDrawer1Setting 0NotCashDrawer1/Not Cash Drawer 1: ""
+*CashDrawer1Setting 1NotCashDrawer1BeforePrinting/Cash Drawer 1 Before Printing: ""
+*CashDrawer1Setting 2NotCashDrawer1BeforePrinting/Cash Drawer 1 After Printing: ""
+*CloseUI: *CashDrawer1Setting
+
+*OpenUI *CashDrawer2Setting/Cash Drawer 2: PickOne
+*DefaultCashDrawer2Setting: 0NotCashDrawer2
+*CashDrawer2Setting 0NotCashDrawer2/Not Cash Drawer 2: ""
+*CashDrawer2Setting 1NotCashDrawer2BeforePrinting/Cash Drawer 2 Before Printing: ""
+*CashDrawer2Setting 2NotCashDrawer2BeforePrinting/Cash Drawer 2 After Printing: ""
+*CloseUI: *CashDrawer2Setting
+*CloseGroup: *CashDrawerGroup
+
+
+*% End
--- /dev/null
+*PPD-Adobe: "4.3"
+*FormatVersion: "4.3"
+*FileVersion: "1.1"
+*LanguageVersion: English
+*LanguageEncoding: ISOLatin1
+*PCFileName: "tm20.ppd"
+*Manufacturer: "Epson"
+*Product: "(TM-T20)"
+*1284DeviceID: "MFG:Epson;CMD:Epson;MDL:TMT20;CLS:PRINTER;"
+*cupsVersion: 1.1
+*cupsManualCopies: True
+*cupsModelNumber: 20
+*cupsFilter: "application/vnd.cups-raster 0 rastertozj"
+*ModelName: "TM-T20"
+*ShortNickName: "TM-T20"
+*NickName: "Epson TM-T20"
+*PSVersion: "(3010.000) 550"
+*LanguageLevel: "3"
+*ColorDevice: False
+*DefaultColorSpace: Gray
+*FileSystem: False
+*Throughput: "1"
+*LandscapeOrientation: Plus90
+*VariablePaperSize: True
+*TTRasterizer: Type42
+
+*OpenUI *PageSize/Media Size: PickOne
+*OrderDependency: 10 AnySetup *PageSize
+*DefaultPageSize: X80MMY64MM
+
+*PageSize X80MMY64MM/80mm x 74mm: "<</PageSize[226 181]/HWResolution[203 203]/ImagingBBox null>>setpagedevice"
+*PageSize X80MMY210MM/80mm x 210mm: "<</PageSize[226 595]/HWResolution[203 203]/ImagingBBox null>>setpagedevice"
+*PageSize X80MMY297MM/80mm x 297mm: "<</PageSize[226 842]/HWResolution[203 203]/ImagingBBox null>>setpagedevice"
+*PageSize X80MMY3276MM/80mm x 3276mm: "<</PageSize[226 9286]/HWResolution[203 203]/ImagingBBox null>>setpagedevice"
+
+*CloseUI: *PageSize
+
+*OpenUI *PageRegion: PickOne
+*OrderDependency: 10 AnySetup *PageRegion
+*DefaultPageRegion: X80MMY64MM
+
+*PageRegion X80MMY64MM/80mm x 74mm: "<</PageSize[226 219]/HWResolution[203 203]/ImagingBBox null>>setpagedevice"
+*PageRegion X80MMY210MM/80mm x 210mm: "<</PageSize[226 595]/HWResolution[203 203]/ImagingBBox null>>setpagedevice"
+*PageRegion X80MMY297MM/80mm x 297mm: "<</PageSize[226 842]/HWResolution[203 203]/ImagingBBox null>>setpagedevice"
+*PageRegion X80MMY3276MM/80mm x 3276mm: "<</PageSize[226 9286]/HWResolution[203 203]/ImagingBBox null>>setpagedevice"
+
+*DefaultImageableArea: X80MMY64MM
+
+*ImageableArea X80MMY64MM: "0 0 226 181"
+*ImageableArea X80MMY210MM: "0 0 226 595"
+*ImageableArea X80MMY297MM: "0 0 226 842"
+*ImageableArea X80MMY3276MM: "0 0 226 9286"
+
+*DefaultPaperDimension: X80MMY64MM
+
+*PaperDimension X80MMY64MM: "226 181"
+*PaperDimension X80MMY210MM: "226 595"
+*PaperDimension X80MMY297MM: "226 842"
+*PaperDimension X80MMY3276MM: "226 9286"
+
+*MaxMediaWidth: "226"
+*MaxMediaHeight: "9286"
+*HWMargins: 0 0 0 0
+*CustomPageSize True: "pop pop pop <</PageSize[5 -2 roll]/HWResolution[203 203]/ImagingBBox null>>setpagedevice"
+*ParamCustomPageSize Width: 1 points 72 226
+*ParamCustomPageSize Height: 2 points 72 9282
+*ParamCustomPageSize WidthOffset: 3 points 0 0
+*ParamCustomPageSize HeightOffset: 4 points 0 0
+*ParamCustomPageSize Orientation: 5 int 0 0
+
+*OpenGroup: CutGroup/Cut Options
+*OpenUI *FeedDist/Feed distance after print: PickOne
+*DefaultFeedDist: 4feed15mm
+*FeedDist 0feed3mm/feed 3mm: ""
+*FeedDist 1feed6mm/feed 6mm: ""
+*FeedDist 2feed9mm/feed 9mm: ""
+*FeedDist 3feed12mm/feed 12mm: ""
+*FeedDist 4feed15mm/feed 15mm: ""
+*FeedDist 5feed18mm/feed 18mm: ""
+*FeedDist 6feed21mm/feed 21mm: ""
+*FeedDist 7feed24mm/feed 24mm: ""
+*FeedDist 8feed27mm/feed 27mm: ""
+*FeedDist 9feed30mm/feed 30mm: ""
+*FeedDist 10feed33mm/feed 33mm: ""
+*FeedDist 11feed36mm/feed 36mm: ""
+*FeedDist 12feed39mm/feed 39mm: ""
+*FeedDist 13feed42mm/feed 42mm: ""
+*FeedDist 14feed45mm/feed 45mm: ""
+*CloseUI: *FeedDist
+
+
+*OpenUI *BlankSpace/Blank space at page's end: PickOne
+*DefaultBlankSpace: 1NoPrint
+*BlankSpace 0Print/Print: ""
+*BlankSpace 1NoPrint/Do not print: ""
+*CloseUI: *BlankSpace
+
+*CloseGroup: *CutGroup
+
+*OpenGroup: *CashDrawerGroup/Cash Drawer Control
+*OpenUI *CashDrawer1Setting/Cash Drawer 1: PickOne
+*DefaultCashDrawer1Setting: 0NotCashDrawer1
+*CashDrawer1Setting 0NotCashDrawer1/Not Cash Drawer 1: ""
+*CashDrawer1Setting 1NotCashDrawer1BeforePrinting/Cash Drawer 1 Before Printing: ""
+*CashDrawer1Setting 2NotCashDrawer1BeforePrinting/Cash Drawer 1 After Printing: ""
+*CloseUI: *CashDrawer1Setting
+
+*OpenUI *CashDrawer2Setting/Cash Drawer 2: PickOne
+*DefaultCashDrawer2Setting: 0NotCashDrawer2
+*CashDrawer2Setting 0NotCashDrawer2/Not Cash Drawer 2: ""
+*CashDrawer2Setting 1NotCashDrawer2BeforePrinting/Cash Drawer 2 Before Printing: ""
+*CashDrawer2Setting 2NotCashDrawer2BeforePrinting/Cash Drawer 2 After Printing: ""
+*CloseUI: *CashDrawer2Setting
+*CloseGroup: *CashDrawerGroup
+
+
+*% End
--- /dev/null
+*PPD-Adobe: "4.3"
+*%
+*% "$Id: postscript.ppd,v 1.1.1.1 2000/08/24 19:23:13 goffioul Exp $"
+*%
+*% Sample Postscript driver PPD file for the Common UNIX Printing
+*% System (CUPS).
+*%
+*% Michael Goffioul <goffioul@emic.ucl.ac.be>
+*%
+*% Changes to the original file by Volker Behr, Martin-Eric Racine,
+*% Nickolay Kondrashov and other contributors:
+*% added IEEE-1284 device id - 2008-03-24
+*% added custom page size - 2006-05-18
+*% replaced page descriptions - 2006-05-18
+*% InputSlot constraints removed - 2006-05-11
+*% maxed out imageable regions - 2006-05-11
+*% added pstitleiconv filter - 2006-05-11
+*% added ledger paper size - 2006-01-29
+*% match Adobe specifications - 2005-12-23
+*% additional paper formats - 2005-02-03 and 2005-02-07
+*% made A4 default paper size - 2005-02-03
+*% Color enabled - 2003-12-02
+*%
+*FormatVersion: "4.3"
+*FileVersion: "1.1"
+*LanguageVersion: English
+*LanguageEncoding: ISOLatin1
+*PCFileName: "CUPS-PDF.PPD"
+*Manufacturer: "Generic"
+*Product: "(CUPS v1.1)"
+*ModelName: "Generic CUPS-PDF Printer"
+*ShortNickName: "Generic CUPS-PDF Printer"
+*NickName: "Generic CUPS-PDF Printer"
+*1284DeviceID: "MFG:Generic;MDL:CUPS-PDF Printer;DES:Generic CUPS-PDF Printer;CLS:PRINTER;CMD:POSTSCRIPT;"
+*% cupsFilter: "application/vnd.cups-postscript 0 pstitleiconv"
+*PSVersion: "(2017.000) 0"
+*LanguageLevel: "2"
+*ColorDevice: True
+*DefaultColorSpace: RGB
+*FileSystem: False
+*Throughput: "8"
+*LandscapeOrientation: Plus90
+*TTRasterizer: Type42
+
+*HWMargins: 0 0 0 0
+*VariablePaperSize: True
+*MaxMediaWidth: 100000
+*MaxMediaHeight: 100000
+*NonUIOrderDependency: 100 AnySetup *CustomPageSize
+*CustomPageSize True: "pop pop pop
+<</PageSize [ 5 -2 roll ] /ImagingBBox null>>setpagedevice"
+*End
+*ParamCustomPageSize Width: 1 points 36 100000
+*ParamCustomPageSize Height: 2 points 36 100000
+*ParamCustomPageSize Orientation: 3 int 0 3
+*ParamCustomPageSize WidthOffset: 4 points 0 0
+*ParamCustomPageSize HeightOffset: 5 points 0 0
+
+*OpenGroup: General/General
+
+*OpenUI *PageSize/Page Size: PickOne
+*OrderDependency: 100 AnySetup *PageSize
+*DefaultPageSize: A4
+*PageSize 11x14/11x14: "<</PageSize[792 1008]/ImagingBBox null>>setpagedevice"
+*PageSize 11x17/11x17: "<</PageSize[792 1224]/ImagingBBox null>>setpagedevice"
+*PageSize 13x19/13x19: "<</PageSize[936 1368]/ImagingBBox null>>setpagedevice"
+*PageSize 16x20/16x20: "<</PageSize[1152 1440]/ImagingBBox null>>setpagedevice"
+*PageSize 16x24/16x24: "<</PageSize[1152 1728]/ImagingBBox null>>setpagedevice"
+*PageSize 2A/2A: "<</PageSize[3370 4768]/ImagingBBox null>>setpagedevice"
+*PageSize 4A/4A: "<</PageSize[4768 6749]/ImagingBBox null>>setpagedevice"
+*PageSize 8x10/8x10: "<</PageSize[576 720]/ImagingBBox null>>setpagedevice"
+*PageSize 8x12/8x12: "<</PageSize[576 864]/ImagingBBox null>>setpagedevice"
+*PageSize A0/A0: "<</PageSize[2384 3370]/ImagingBBox null>>setpagedevice"
+*PageSize A1/A1: "<</PageSize[1684 2384]/ImagingBBox null>>setpagedevice"
+*PageSize A2/A2: "<</PageSize[1191 1684]/ImagingBBox null>>setpagedevice"
+*PageSize A3/A3: "<</PageSize[842 1191]/ImagingBBox null>>setpagedevice"
+*PageSize A4/A4: "<</PageSize[595 842]/ImagingBBox null>>setpagedevice"
+*PageSize A5/A5: "<</PageSize[421 595]/ImagingBBox null>>setpagedevice"
+*PageSize AnsiA/ANSI A: "<</PageSize[612 792]/ImagingBBox null>>setpagedevice"
+*PageSize AnsiB/ANSI B: "<</PageSize[792 1224]/ImagingBBox null>>setpagedevice"
+*PageSize AnsiC/ANSI C: "<</PageSize[1224 1584]/ImagingBBox null>>setpagedevice"
+*PageSize AnsiD/ANSI D: "<</PageSize[1584 2448]/ImagingBBox null>>setpagedevice"
+*PageSize AnsiE/ANSI E: "<</PageSize[2448 3168]/ImagingBBox null>>setpagedevice"
+*PageSize ArchA/Arch A: "<</PageSize[648 864]/ImagingBBox null>>setpagedevice"
+*PageSize ArchB/Arch B: "<</PageSize[864 1296]/ImagingBBox null>>setpagedevice"
+*PageSize ArchC/Arch C: "<</PageSize[1296 1728]/ImagingBBox null>>setpagedevice"
+*PageSize ArchD/Arch D: "<</PageSize[1728 2592]/ImagingBBox null>>setpagedevice"
+*PageSize ArchE/Arch E: "<</PageSize[2592 3456]/ImagingBBox null>>setpagedevice"
+*PageSize C0/C0: "<</PageSize[2599 3676]/ImagingBBox null>>setpagedevice"
+*PageSize C1/C1: "<</PageSize[1836 2599]/ImagingBBox null>>setpagedevice"
+*PageSize C2/C2: "<</PageSize[1298 1836]/ImagingBBox null>>setpagedevice"
+*PageSize C3/C3: "<</PageSize[918 1298]/ImagingBBox null>>setpagedevice"
+*PageSize C4/C4: "<</PageSize[649 918]/ImagingBBox null>>setpagedevice"
+*PageSize C5/C5: "<</PageSize[459 649]/ImagingBBox null>>setpagedevice"
+*PageSize Env10/Envelope #10: "<</PageSize[297 684]/ImagingBBox null>>setpagedevice"
+*PageSize EnvC5/Envelope C5: "<</PageSize[459 649]/ImagingBBox null>>setpagedevice"
+*PageSize EnvDL/Envelope DL: "<</PageSize[312 624]/ImagingBBox null>>setpagedevice"
+*PageSize EnvMonarch/Envelope Monarch: "<</PageSize[279 540]/ImagingBBox null>>setpagedevice"
+*PageSize Executive/Executive: "<</PageSize[522 756]/ImagingBBox null>>setpagedevice"
+*PageSize ISOB0/B0 (ISO): "<</PageSize[2834 4008]/ImagingBBox null>>setpagedevice"
+*PageSize ISOB1/B1 (ISO): "<</PageSize[2004 2834]/ImagingBBox null>>setpagedevice"
+*PageSize ISOB2/B2 (ISO): "<</PageSize[1417 2004]/ImagingBBox null>>setpagedevice"
+*PageSize ISOB3/B3 (ISO): "<</PageSize[1000 1417]/ImagingBBox null>>setpagedevice"
+*PageSize ISOB4/B4 (ISO): "<</PageSize[708 1000]/ImagingBBox null>>setpagedevice"
+*PageSize ISOB5/B5 (ISO): "<</PageSize[498 708]/ImagingBBox null>>setpagedevice"
+*PageSize JISB0/B0 (JIS): "<</PageSize[2919 4127]/ImagingBBox null>>setpagedevice"
+*PageSize JISB1/B1 (JIS): "<</PageSize[2063 2919]/ImagingBBox null>>setpagedevice"
+*PageSize JISB2/B2 (JIS): "<</PageSize[1459 2063]/ImagingBBox null>>setpagedevice"
+*PageSize JISB3/B3 (JIS): "<</PageSize[1029 1459]/ImagingBBox null>>setpagedevice"
+*PageSize JISB4/B4 (JIS): "<</PageSize[727 1029]/ImagingBBox null>>setpagedevice"
+*PageSize JISB5/B5 (JIS): "<</PageSize[518 727]/ImagingBBox null>>setpagedevice"
+*PageSize Ledger/Ledger: "<</PageSize[1224 792]/ImagingBBox null>>setpagedevice"
+*PageSize Legal/US Legal: "<</PageSize[612 1008]/ImagingBBox null>>setpagedevice"
+*PageSize Letter/US Letter: "<</PageSize[612 792]/ImagingBBox null>>setpagedevice"
+*PageSize RA0/RA0: "<</PageSize[2437 3458]/ImagingBBox null>>setpagedevice"
+*PageSize RA1/RA1: "<</PageSize[1729 2437]/ImagingBBox null>>setpagedevice"
+*PageSize RA2/RA2: "<</PageSize[1218 1729]/ImagingBBox null>>setpagedevice"
+*PageSize RA3/RA3: "<</PageSize[864 1218]/ImagingBBox null>>setpagedevice"
+*PageSize RA4/RA4: "<</PageSize[609 864]/ImagingBBox null>>setpagedevice"
+*PageSize SRA0/SRA0: "<</PageSize[2551 3628]/ImagingBBox null>>setpagedevice"
+*PageSize SRA1/SRA1: "<</PageSize[1814 2551]/ImagingBBox null>>setpagedevice"
+*PageSize SRA2/SRA2: "<</PageSize[1275 1814]/ImagingBBox null>>setpagedevice"
+*PageSize SRA3/SRA3: "<</PageSize[907 1275]/ImagingBBox null>>setpagedevice"
+*PageSize SRA4/SRA4: "<</PageSize[637 907]/ImagingBBox null>>setpagedevice"
+*PageSize SuperA/Super A: "<</PageSize[644 1008]/ImagingBBox null>>setpagedevice"
+*PageSize SuperB/Super B: "<</PageSize[936 1368]/ImagingBBox null>>setpagedevice"
+*PageSize TabloidExtra/Tabloid Extra: "<</PageSize[864 1296]/ImagingBBox null>>setpagedevice"
+*PageSize Tabloid/Tabloid: "<</PageSize[792 1224]/ImagingBBox null>>setpagedevice"
+*CloseUI: *PageSize
+
+*OpenUI *PageRegion: PickOne
+*OrderDependency: 100 AnySetup *PageRegion
+*DefaultPageRegion: A4
+*PageRegion 11x14/11x14: "<</PageSize[792 1008]/ImagingBBox null>>setpagedevice"
+*PageRegion 11x17/11x17: "<</PageSize[792 1224]/ImagingBBox null>>setpagedevice"
+*PageRegion 13x19/13x19: "<</PageSize[936 1368]/ImagingBBox null>>setpagedevice"
+*PageRegion 16x20/16x20: "<</PageSize[1152 1440]/ImagingBBox null>>setpagedevice"
+*PageRegion 16x24/16x24: "<</PageSize[1152 1728]/ImagingBBox null>>setpagedevice"
+*PageRegion 2A/2A: "<</PageSize[3370 4768]/ImagingBBox null>>setpagedevice"
+*PageRegion 4A/4A: "<</PageSize[4768 6749]/ImagingBBox null>>setpagedevice"
+*PageRegion 8x10/8x10: "<</PageSize[576 720]/ImagingBBox null>>setpagedevice"
+*PageRegion 8x12/8x12: "<</PageSize[576 864]/ImagingBBox null>>setpagedevice"
+*PageRegion A0/A0: "<</PageSize[2384 3370]/ImagingBBox null>>setpagedevice"
+*PageRegion A1/A1: "<</PageSize[1684 2384]/ImagingBBox null>>setpagedevice"
+*PageRegion A2/A2: "<</PageSize[1191 1684]/ImagingBBox null>>setpagedevice"
+*PageRegion A3/A3: "<</PageSize[842 1191]/ImagingBBox null>>setpagedevice"
+*PageRegion A4/A4: "<</PageSize[595 842]/ImagingBBox null>>setpagedevice"
+*PageRegion A5/A5: "<</PageSize[421 595]/ImagingBBox null>>setpagedevice"
+*PageRegion AnsiA/ANSI A: "<</PageSize[612 792]/ImagingBBox null>>setpagedevice"
+*PageRegion AnsiB/ANSI B: "<</PageSize[792 1224]/ImagingBBox null>>setpagedevice"
+*PageRegion AnsiC/ANSI C: "<</PageSize[1224 1584]/ImagingBBox null>>setpagedevice"
+*PageRegion AnsiD/ANSI D: "<</PageSize[1584 2448]/ImagingBBox null>>setpagedevice"
+*PageRegion AnsiE/ANSI E: "<</PageSize[2448 3168]/ImagingBBox null>>setpagedevice"
+*PageRegion ArchA/Arch A: "<</PageSize[648 864]/ImagingBBox null>>setpagedevice"
+*PageRegion ArchB/Arch B: "<</PageSize[864 1296]/ImagingBBox null>>setpagedevice"
+*PageRegion ArchC/Arch C: "<</PageSize[1296 1728]/ImagingBBox null>>setpagedevice"
+*PageRegion ArchD/Arch D: "<</PageSize[1728 2592]/ImagingBBox null>>setpagedevice"
+*PageRegion ArchE/Arch E: "<</PageSize[2592 3456]/ImagingBBox null>>setpagedevice"
+*PageRegion C0/C0: "<</PageSize[2599 3676]/ImagingBBox null>>setpagedevice"
+*PageRegion C1/C1: "<</PageSize[1836 2599]/ImagingBBox null>>setpagedevice"
+*PageRegion C2/C2: "<</PageSize[1298 1836]/ImagingBBox null>>setpagedevice"
+*PageRegion C3/C3: "<</PageSize[918 1298]/ImagingBBox null>>setpagedevice"
+*PageRegion C4/C4: "<</PageSize[649 918]/ImagingBBox null>>setpagedevice"
+*PageRegion C5/C5: "<</PageSize[459 649]/ImagingBBox null>>setpagedevice"
+*PageRegion Env10/Envelope #10: "<</PageSize[297 684]/ImagingBBox null>>setpagedevice"
+*PageRegion EnvC5/Envelope C5: "<</PageSize[459 649]/ImagingBBox null>>setpagedevice"
+*PageRegion EnvDL/Envelope DL: "<</PageSize[312 624]/ImagingBBox null>>setpagedevice"
+*PageRegion EnvMonarch/Envelope Monarch: "<</PageSize[279 540]/ImagingBBox null>>setpagedevice"
+*PageRegion Executive/Executive: "<</PageSize[522 756]/ImagingBBox null>>setpagedevice"
+*PageRegion ISOB0/B0 (ISO): "<</PageSize[2834 4008]/ImagingBBox null>>setpagedevice"
+*PageRegion ISOB1/B1 (ISO): "<</PageSize[2004 2834]/ImagingBBox null>>setpagedevice"
+*PageRegion ISOB2/B2 (ISO): "<</PageSize[1417 2004]/ImagingBBox null>>setpagedevice"
+*PageRegion ISOB3/B3 (ISO): "<</PageSize[1000 1417]/ImagingBBox null>>setpagedevice"
+*PageRegion ISOB4/B4 (ISO): "<</PageSize[708 1000]/ImagingBBox null>>setpagedevice"
+*PageRegion ISOB5/B5 (ISO): "<</PageSize[498 708]/ImagingBBox null>>setpagedevice"
+*PageRegion JISB0/B0 (JIS): "<</PageSize[2919 4127]/ImagingBBox null>>setpagedevice"
+*PageRegion JISB1/B1 (JIS): "<</PageSize[2063 2919]/ImagingBBox null>>setpagedevice"
+*PageRegion JISB2/B2 (JIS): "<</PageSize[1459 2063]/ImagingBBox null>>setpagedevice"
+*PageRegion JISB3/B3 (JIS): "<</PageSize[1029 1459]/ImagingBBox null>>setpagedevice"
+*PageRegion JISB4/B4 (JIS): "<</PageSize[727 1029]/ImagingBBox null>>setpagedevice"
+*PageRegion JISB5/B5 (JIS): "<</PageSize[518 727]/ImagingBBox null>>setpagedevice"
+*PageRegion Ledger/Ledger: "<</PageSize[1224 792]/ImagingBBox null>>setpagedevice"
+*PageRegion Legal/US Legal: "<</PageSize[612 1008]/ImagingBBox null>>setpagedevice"
+*PageRegion Letter/US Letter: "<</PageSize[612 792]/ImagingBBox null>>setpagedevice"
+*PageRegion RA0/RA0: "<</PageSize[2437 3458]/ImagingBBox null>>setpagedevice"
+*PageRegion RA1/RA1: "<</PageSize[1729 2437]/ImagingBBox null>>setpagedevice"
+*PageRegion RA2/RA2: "<</PageSize[1218 1729]/ImagingBBox null>>setpagedevice"
+*PageRegion RA3/RA3: "<</PageSize[864 1218]/ImagingBBox null>>setpagedevice"
+*PageRegion RA4/RA4: "<</PageSize[609 864]/ImagingBBox null>>setpagedevice"
+*PageRegion SRA0/SRA0: "<</PageSize[2551 3628]/ImagingBBox null>>setpagedevice"
+*PageRegion SRA1/SRA1: "<</PageSize[1814 2551]/ImagingBBox null>>setpagedevice"
+*PageRegion SRA2/SRA2: "<</PageSize[1275 1814]/ImagingBBox null>>setpagedevice"
+*PageRegion SRA3/SRA3: "<</PageSize[907 1275]/ImagingBBox null>>setpagedevice"
+*PageRegion SRA4/SRA4: "<</PageSize[637 907]/ImagingBBox null>>setpagedevice"
+*PageRegion SuperA/Super A: "<</PageSize[644 1008]/ImagingBBox null>>setpagedevice"
+*PageRegion SuperB/Super B: "<</PageSize[936 1368]/ImagingBBox null>>setpagedevice"
+*PageRegion TabloidExtra/Tabloid Extra: "<</PageSize[864 1296]/ImagingBBox null>>setpagedevice"
+*PageRegion Tabloid/Tabloid: "<</PageSize[792 1224]/ImagingBBox null>>setpagedevice"
+*CloseUI: *PageRegion
+
+*DefaultImageableArea: A4
+*ImageableArea 11x14/11x14: "0 0 792 1008"
+*ImageableArea 11x17/11x17: "0 0 792 1224"
+*ImageableArea 13x19/13x19: "0 0 936 1368"
+*ImageableArea 16x20/16x20: "0 0 1152 1440"
+*ImageableArea 16x24/16x24: "0 0 1152 1728"
+*ImageableArea 2A/2A: "0 0 3370 4768"
+*ImageableArea 4A/4A: "0 0 4768 6749"
+*ImageableArea 8x10/8x10: "0 0 576 720"
+*ImageableArea 8x12/8x12: "0 0 576 864"
+*ImageableArea A0/A0: "0 0 2384 3370"
+*ImageableArea A1/A1: "0 0 1684 2384"
+*ImageableArea A2/A2: "0 0 1191 1684"
+*ImageableArea A3/A3: "0 0 842 1191"
+*ImageableArea A4/A4: "0 0 595 842"
+*ImageableArea A5/A5: "0 0 421 595"
+*ImageableArea AnsiA/ANSI A: "0 0 612 792"
+*ImageableArea AnsiB/ANSI B: "0 0 792 1224"
+*ImageableArea AnsiC/ANSI C: "0 0 1224 1584"
+*ImageableArea AnsiD/ANSI D: "0 0 1584 2448"
+*ImageableArea AnsiE/ANSI E: "0 0 2448 3168"
+*ImageableArea ArchA/Arch A: "0 0 648 864"
+*ImageableArea ArchB/Arch B: "0 0 864 1296"
+*ImageableArea ArchC/Arch C: "0 0 1296 1728"
+*ImageableArea ArchD/Arch D: "0 0 1728 2592"
+*ImageableArea ArchE/Arch E: "0 0 2592 3456"
+*ImageableArea C0/C0: "0 0 2599 3676"
+*ImageableArea C1/C1: "0 0 1836 2599"
+*ImageableArea C2/C2: "0 0 1298 1836"
+*ImageableArea C3/C3: "0 0 918 1298"
+*ImageableArea C4/C4: "0 0 649 918"
+*ImageableArea C5/C5: "0 0 459 649"
+*ImageableArea Env10/Envelope #10: "0 0 297 684"
+*ImageableArea EnvC5/Envelope C5: "0 0 459 649"
+*ImageableArea EnvDL/Envelope DL: "0 0 312 624"
+*ImageableArea EnvMonarch/Envelope Monarch: "0 0 279 540"
+*ImageableArea Executive/Executive: "0 0 522 756"
+*ImageableArea ISOB0/B0 (ISO): "0 0 2834 4008"
+*ImageableArea ISOB1/B1 (ISO): "0 0 2004 2834"
+*ImageableArea ISOB2/B2 (ISO): "0 0 1417 2004"
+*ImageableArea ISOB3/B3 (ISO): "0 0 1000 1417"
+*ImageableArea ISOB4/B4 (ISO): "0 0 708 1000"
+*ImageableArea ISOB5/B5 (ISO): "0 0 498 708"
+*ImageableArea JISB0/B0 (JIS): "0 0 2919 4127"
+*ImageableArea JISB1/B1 (JIS): "0 0 2063 2919"
+*ImageableArea JISB2/B2 (JIS): "0 0 1459 2063"
+*ImageableArea JISB3/B3 (JIS): "0 0 1029 1459"
+*ImageableArea JISB4/B4 (JIS): "0 0 727 1029"
+*ImageableArea JISB5/B5 (JIS): "0 0 518 727"
+*ImageableArea Ledger/Ledger: "0 0 1224 792"
+*ImageableArea Legal/US Legal: "0 0 612 1008"
+*ImageableArea Letter/US Letter: "0 0 612 792"
+*ImageableArea RA0/RA0: "0 0 2437 3458"
+*ImageableArea RA1/RA1: "0 0 1729 2437"
+*ImageableArea RA2/RA2: "0 0 1218 1729"
+*ImageableArea RA3/RA3: "0 0 864 1218"
+*ImageableArea RA4/RA4: "0 0 609 864"
+*ImageableArea SRA0/SRA0: "0 0 2551 3628"
+*ImageableArea SRA1/SRA1: "0 0 1814 2551"
+*ImageableArea SRA2/SRA2: "0 0 1275 1814"
+*ImageableArea SRA3/SRA3: "0 0 907 1275"
+*ImageableArea SRA4/SRA4: "0 0 637 907"
+*ImageableArea SuperA/Super A: "0 0 644 1008"
+*ImageableArea SuperB/Super B: "0 0 936 1368"
+*ImageableArea TabloidExtra/Tabloid Extra: "0 0 864 1296"
+*ImageableArea Tabloid/Tabloid: "0 0 792 1224"
+
+*DefaultPaperDimension: A4
+*PaperDimension 11x14/11x14: "792 1008"
+*PaperDimension 11x17/11x17: "792 1224"
+*PaperDimension 13x19/13x19: "936 1368"
+*PaperDimension 16x20/16x20: "1152 1440"
+*PaperDimension 16x24/16x24: "1152 1728"
+*PaperDimension 2A/2A: "3370 4768"
+*PaperDimension 4A/4A: "4768 6749"
+*PaperDimension 8x10/8x10: "576 720"
+*PaperDimension 8x12/8x12: "576 864"
+*PaperDimension A0/A0: "2384 3370"
+*PaperDimension A1/A1: "1684 2384"
+*PaperDimension A2/A2: "1191 1684"
+*PaperDimension A3/A3: "842 1191"
+*PaperDimension A4/A4: "595 842"
+*PaperDimension A5/A5: "421 595"
+*PaperDimension AnsiA/ANSI A: "612 792"
+*PaperDimension AnsiB/ANSI B: "792 1224"
+*PaperDimension AnsiC/ANSI C: "1224 1584"
+*PaperDimension AnsiD/ANSI D: "1584 2448"
+*PaperDimension AnsiE/ANSI E: "2448 3168"
+*PaperDimension ArchA/Arch A: "648 864"
+*PaperDimension ArchB/Arch B: "864 1296"
+*PaperDimension ArchC/Arch C: "1296 1728"
+*PaperDimension ArchD/Arch D: "1728 2592"
+*PaperDimension ArchE/Arch E: "2592 3456"
+*PaperDimension C0/C0: "2599 3676"
+*PaperDimension C1/C1: "1836 2599"
+*PaperDimension C2/C2: "1298 1836"
+*PaperDimension C3/C3: "918 1298"
+*PaperDimension C4/C4: "649 918"
+*PaperDimension C5/C5: "459 649"
+*PaperDimension Env10/Envelope #10: "297 684"
+*PaperDimension EnvC5/Envelope C5: "459 649"
+*PaperDimension EnvDL/Envelope DL: "312 624"
+*PaperDimension EnvMonarch/Envelope Monarch: "279 540"
+*PaperDimension Executive/Executive: "522 756"
+*PaperDimension ISOB0/B0 (ISO): "2834 4008"
+*PaperDimension ISOB1/B1 (ISO): "2004 2834"
+*PaperDimension ISOB2/B2 (ISO): "1417 2004"
+*PaperDimension ISOB3/B3 (ISO): "1000 1417"
+*PaperDimension ISOB4/B4 (ISO): "708 1000"
+*PaperDimension ISOB5/B5 (ISO): "498 708"
+*PaperDimension JISB0/B0 (JIS): "2919 4127"
+*PaperDimension JISB1/B1 (JIS): "2063 2919"
+*PaperDimension JISB2/B2 (JIS): "1459 2063"
+*PaperDimension JISB3/B3 (JIS): "1029 1459"
+*PaperDimension JISB4/B4 (JIS): "727 1029"
+*PaperDimension JISB5/B5 (JIS): "518 727"
+*PaperDimension Ledger/Ledger: "1224 792"
+*PaperDimension Legal/US Legal: "612 1008"
+*PaperDimension Letter/US Letter: "612 792"
+*PaperDimension RA0/RA0: "2437 3458"
+*PaperDimension RA1/RA1: "1729 2437"
+*PaperDimension RA2/RA2: "1218 1729"
+*PaperDimension RA3/RA3: "864 1218"
+*PaperDimension RA4/RA4: "609 864"
+*PaperDimension SRA0/SRA0: "2551 3628"
+*PaperDimension SRA1/SRA1: "1814 2551"
+*PaperDimension SRA2/SRA2: "1275 1814"
+*PaperDimension SRA3/SRA3: "907 1275"
+*PaperDimension SRA4/SRA4: "637 907"
+*PaperDimension SuperA/Super A: "644 1008"
+*PaperDimension SuperB/Super B: "936 1368"
+*PaperDimension TabloidExtra/Tabloid Extra: "864 1296"
+*PaperDimension Tabloid/Tabloid: "792 1224"
+
+*OpenUI *Resolution/Output Resolution: PickOne
+*OrderDependency: 100 AnySetup *Resolution
+*DefaultResolution: 300dpi
+*Resolution 150dpi/150 DPI: "<</HWResolution[150 150]>>setpagedevice"
+*Resolution 300dpi/300 DPI: "<</HWResolution[300 300]>>setpagedevice"
+*Resolution 600dpi/600 DPI: "<</HWResolution[600 600]>>setpagedevice"
+*Resolution 1200dpi/1200 DPI: "<</HWResolution[1200 1200]>>setpagedevice"
+*Resolution 2400dpi/2400 DPI: "<</HWResolution[2400 2400]>>setpagedevice"
+*CloseUI: *Resolution
+
+*CloseGroup: General
+
+*DefaultFont: Courier
+*Font AvantGarde-Book: Standard "(001.006S)" Standard ROM
+*Font AvantGarde-BookOblique: Standard "(001.006S)" Standard ROM
+*Font AvantGarde-Demi: Standard "(001.007S)" Standard ROM
+*Font AvantGarde-DemiOblique: Standard "(001.007S)" Standard ROM
+*Font Bookman-Demi: Standard "(001.004S)" Standard ROM
+*Font Bookman-DemiItalic: Standard "(001.004S)" Standard ROM
+*Font Bookman-Light: Standard "(001.004S)" Standard ROM
+*Font Bookman-LightItalic: Standard "(001.004S)" Standard ROM
+*Font Courier: Standard "(002.004S)" Standard ROM
+*Font Courier-Bold: Standard "(002.004S)" Standard ROM
+*Font Courier-BoldOblique: Standard "(002.004S)" Standard ROM
+*Font Courier-Oblique: Standard "(002.004S)" Standard ROM
+*Font Helvetica: Standard "(001.006S)" Standard ROM
+*Font Helvetica-Bold: Standard "(001.007S)" Standard ROM
+*Font Helvetica-BoldOblique: Standard "(001.007S)" Standard ROM
+*Font Helvetica-Narrow: Standard "(001.006S)" Standard ROM
+*Font Helvetica-Narrow-Bold: Standard "(001.007S)" Standard ROM
+*Font Helvetica-Narrow-BoldOblique: Standard "(001.007S)" Standard ROM
+*Font Helvetica-Narrow-Oblique: Standard "(001.006S)" Standard ROM
+*Font Helvetica-Oblique: Standard "(001.006S)" Standard ROM
+*Font NewCenturySchlbk-Bold: Standard "(001.009S)" Standard ROM
+*Font NewCenturySchlbk-BoldItalic: Standard "(001.007S)" Standard ROM
+*Font NewCenturySchlbk-Italic: Standard "(001.006S)" Standard ROM
+*Font NewCenturySchlbk-Roman: Standard "(001.007S)" Standard ROM
+*Font Palatino-Bold: Standard "(001.005S)" Standard ROM
+*Font Palatino-BoldItalic: Standard "(001.005S)" Standard ROM
+*Font Palatino-Italic: Standard "(001.005S)" Standard ROM
+*Font Palatino-Roman: Standard "(001.005S)" Standard ROM
+*Font Symbol: Special "(001.007S)" Special ROM
+*Font Times-Bold: Standard "(001.007S)" Standard ROM
+*Font Times-BoldItalic: Standard "(001.009S)" Standard ROM
+*Font Times-Italic: Standard "(001.007S)" Standard ROM
+*Font Times-Roman: Standard "(001.007S)" Standard ROM
+*Font ZapfChancery-MediumItalic: Standard "(001.007S)" Standard ROM
+*Font ZapfDingbats: Special "(001.004S)" Standard ROM
+*%
+*% End of "$Id: postscript.ppd,v 1.1.1.1 2000/08/24 19:23:13 goffioul Exp $".
+*%
--- /dev/null
+*PPD-Adobe: "4.3"
+*%
+*% "$Id: postscript.ppd,v 1.1.1.1 2000/08/24 19:23:13 goffioul Exp $"
+*%
+*% Sample Postscript driver PPD file for the Common UNIX Printing
+*% System (CUPS).
+*%
+*% Michael Goffioul <goffioul@emic.ucl.ac.be>
+*%
+*% Changes to the original file by Volker Behr, Martin-Eric Racine,
+*% Nickolay Kondrashov and other contributors:
+*% added IEEE-1284 device id - 2008-03-24
+*% added custom page size - 2006-05-18
+*% replaced page descriptions - 2006-05-18
+*% InputSlot constraints removed - 2006-05-11
+*% maxed out imageable regions - 2006-05-11
+*% added pstitleiconv filter - 2006-05-11
+*% added ledger paper size - 2006-01-29
+*% match Adobe specifications - 2005-12-23
+*% additional paper formats - 2005-02-03 and 2005-02-07
+*% made A4 default paper size - 2005-02-03
+*% Color enabled - 2003-12-02
+*%
+*FormatVersion: "4.3"
+*FileVersion: "1.1"
+*LanguageVersion: English
+*LanguageEncoding: ISOLatin1
+*PCFileName: "CUPS-PDF.PPD"
+*Manufacturer: "Generic"
+*Product: "(CUPS v1.1)"
+*ModelName: "Generic CUPS-PDF Printer"
+*ShortNickName: "Generic CUPS-PDF Printer"
+*NickName: "Generic CUPS-PDF Printer"
+*1284DeviceID: "MFG:Generic;MDL:CUPS-PDF Printer;DES:Generic CUPS-PDF Printer;CLS:PRINTER;CMD:POSTSCRIPT;"
+*% cupsFilter: "application/vnd.cups-postscript 0 pstitleiconv"
+*PSVersion: "(2017.000) 0"
+*LanguageLevel: "2"
+*ColorDevice: True
+*DefaultColorSpace: RGB
+*FileSystem: False
+*Throughput: "8"
+*LandscapeOrientation: Plus90
+*TTRasterizer: Type42
+
+*HWMargins: 0 0 0 0
+*VariablePaperSize: True
+*MaxMediaWidth: 100000
+*MaxMediaHeight: 100000
+*NonUIOrderDependency: 100 AnySetup *CustomPageSize
+*CustomPageSize True: "pop pop pop
+<</PageSize [ 5 -2 roll ] /ImagingBBox null>>setpagedevice"
+*End
+*ParamCustomPageSize Width: 1 points 36 100000
+*ParamCustomPageSize Height: 2 points 36 100000
+*ParamCustomPageSize Orientation: 3 int 0 3
+*ParamCustomPageSize WidthOffset: 4 points 0 0
+*ParamCustomPageSize HeightOffset: 5 points 0 0
+
+*OpenGroup: General/General
+
+*OpenUI *PageSize/Page Size: PickOne
+*OrderDependency: 100 AnySetup *PageSize
+*DefaultPageSize: A4
+*PageSize 11x14/11x14: "<</PageSize[792 1008]/ImagingBBox null>>setpagedevice"
+*PageSize 11x17/11x17: "<</PageSize[792 1224]/ImagingBBox null>>setpagedevice"
+*PageSize 13x19/13x19: "<</PageSize[936 1368]/ImagingBBox null>>setpagedevice"
+*PageSize 16x20/16x20: "<</PageSize[1152 1440]/ImagingBBox null>>setpagedevice"
+*PageSize 16x24/16x24: "<</PageSize[1152 1728]/ImagingBBox null>>setpagedevice"
+*PageSize 2A/2A: "<</PageSize[3370 4768]/ImagingBBox null>>setpagedevice"
+*PageSize 4A/4A: "<</PageSize[4768 6749]/ImagingBBox null>>setpagedevice"
+*PageSize 8x10/8x10: "<</PageSize[576 720]/ImagingBBox null>>setpagedevice"
+*PageSize 8x12/8x12: "<</PageSize[576 864]/ImagingBBox null>>setpagedevice"
+*PageSize A0/A0: "<</PageSize[2384 3370]/ImagingBBox null>>setpagedevice"
+*PageSize A1/A1: "<</PageSize[1684 2384]/ImagingBBox null>>setpagedevice"
+*PageSize A2/A2: "<</PageSize[1191 1684]/ImagingBBox null>>setpagedevice"
+*PageSize A3/A3: "<</PageSize[842 1191]/ImagingBBox null>>setpagedevice"
+*PageSize A4/A4: "<</PageSize[595 842]/ImagingBBox null>>setpagedevice"
+*PageSize A5/A5: "<</PageSize[421 595]/ImagingBBox null>>setpagedevice"
+*PageSize AnsiA/ANSI A: "<</PageSize[612 792]/ImagingBBox null>>setpagedevice"
+*PageSize AnsiB/ANSI B: "<</PageSize[792 1224]/ImagingBBox null>>setpagedevice"
+*PageSize AnsiC/ANSI C: "<</PageSize[1224 1584]/ImagingBBox null>>setpagedevice"
+*PageSize AnsiD/ANSI D: "<</PageSize[1584 2448]/ImagingBBox null>>setpagedevice"
+*PageSize AnsiE/ANSI E: "<</PageSize[2448 3168]/ImagingBBox null>>setpagedevice"
+*PageSize ArchA/Arch A: "<</PageSize[648 864]/ImagingBBox null>>setpagedevice"
+*PageSize ArchB/Arch B: "<</PageSize[864 1296]/ImagingBBox null>>setpagedevice"
+*PageSize ArchC/Arch C: "<</PageSize[1296 1728]/ImagingBBox null>>setpagedevice"
+*PageSize ArchD/Arch D: "<</PageSize[1728 2592]/ImagingBBox null>>setpagedevice"
+*PageSize ArchE/Arch E: "<</PageSize[2592 3456]/ImagingBBox null>>setpagedevice"
+*PageSize C0/C0: "<</PageSize[2599 3676]/ImagingBBox null>>setpagedevice"
+*PageSize C1/C1: "<</PageSize[1836 2599]/ImagingBBox null>>setpagedevice"
+*PageSize C2/C2: "<</PageSize[1298 1836]/ImagingBBox null>>setpagedevice"
+*PageSize C3/C3: "<</PageSize[918 1298]/ImagingBBox null>>setpagedevice"
+*PageSize C4/C4: "<</PageSize[649 918]/ImagingBBox null>>setpagedevice"
+*PageSize C5/C5: "<</PageSize[459 649]/ImagingBBox null>>setpagedevice"
+*PageSize Env10/Envelope #10: "<</PageSize[297 684]/ImagingBBox null>>setpagedevice"
+*PageSize EnvC5/Envelope C5: "<</PageSize[459 649]/ImagingBBox null>>setpagedevice"
+*PageSize EnvDL/Envelope DL: "<</PageSize[312 624]/ImagingBBox null>>setpagedevice"
+*PageSize EnvMonarch/Envelope Monarch: "<</PageSize[279 540]/ImagingBBox null>>setpagedevice"
+*PageSize Executive/Executive: "<</PageSize[522 756]/ImagingBBox null>>setpagedevice"
+*PageSize ISOB0/B0 (ISO): "<</PageSize[2834 4008]/ImagingBBox null>>setpagedevice"
+*PageSize ISOB1/B1 (ISO): "<</PageSize[2004 2834]/ImagingBBox null>>setpagedevice"
+*PageSize ISOB2/B2 (ISO): "<</PageSize[1417 2004]/ImagingBBox null>>setpagedevice"
+*PageSize ISOB3/B3 (ISO): "<</PageSize[1000 1417]/ImagingBBox null>>setpagedevice"
+*PageSize ISOB4/B4 (ISO): "<</PageSize[708 1000]/ImagingBBox null>>setpagedevice"
+*PageSize ISOB5/B5 (ISO): "<</PageSize[498 708]/ImagingBBox null>>setpagedevice"
+*PageSize JISB0/B0 (JIS): "<</PageSize[2919 4127]/ImagingBBox null>>setpagedevice"
+*PageSize JISB1/B1 (JIS): "<</PageSize[2063 2919]/ImagingBBox null>>setpagedevice"
+*PageSize JISB2/B2 (JIS): "<</PageSize[1459 2063]/ImagingBBox null>>setpagedevice"
+*PageSize JISB3/B3 (JIS): "<</PageSize[1029 1459]/ImagingBBox null>>setpagedevice"
+*PageSize JISB4/B4 (JIS): "<</PageSize[727 1029]/ImagingBBox null>>setpagedevice"
+*PageSize JISB5/B5 (JIS): "<</PageSize[518 727]/ImagingBBox null>>setpagedevice"
+*PageSize Ledger/Ledger: "<</PageSize[1224 792]/ImagingBBox null>>setpagedevice"
+*PageSize Legal/US Legal: "<</PageSize[612 1008]/ImagingBBox null>>setpagedevice"
+*PageSize Letter/US Letter: "<</PageSize[612 792]/ImagingBBox null>>setpagedevice"
+*PageSize RA0/RA0: "<</PageSize[2437 3458]/ImagingBBox null>>setpagedevice"
+*PageSize RA1/RA1: "<</PageSize[1729 2437]/ImagingBBox null>>setpagedevice"
+*PageSize RA2/RA2: "<</PageSize[1218 1729]/ImagingBBox null>>setpagedevice"
+*PageSize RA3/RA3: "<</PageSize[864 1218]/ImagingBBox null>>setpagedevice"
+*PageSize RA4/RA4: "<</PageSize[609 864]/ImagingBBox null>>setpagedevice"
+*PageSize SRA0/SRA0: "<</PageSize[2551 3628]/ImagingBBox null>>setpagedevice"
+*PageSize SRA1/SRA1: "<</PageSize[1814 2551]/ImagingBBox null>>setpagedevice"
+*PageSize SRA2/SRA2: "<</PageSize[1275 1814]/ImagingBBox null>>setpagedevice"
+*PageSize SRA3/SRA3: "<</PageSize[907 1275]/ImagingBBox null>>setpagedevice"
+*PageSize SRA4/SRA4: "<</PageSize[637 907]/ImagingBBox null>>setpagedevice"
+*PageSize SuperA/Super A: "<</PageSize[644 1008]/ImagingBBox null>>setpagedevice"
+*PageSize SuperB/Super B: "<</PageSize[936 1368]/ImagingBBox null>>setpagedevice"
+*PageSize TabloidExtra/Tabloid Extra: "<</PageSize[864 1296]/ImagingBBox null>>setpagedevice"
+*PageSize Tabloid/Tabloid: "<</PageSize[792 1224]/ImagingBBox null>>setpagedevice"
+*CloseUI: *PageSize
+
+*OpenUI *PageRegion: PickOne
+*OrderDependency: 100 AnySetup *PageRegion
+*DefaultPageRegion: A4
+*PageRegion 11x14/11x14: "<</PageSize[792 1008]/ImagingBBox null>>setpagedevice"
+*PageRegion 11x17/11x17: "<</PageSize[792 1224]/ImagingBBox null>>setpagedevice"
+*PageRegion 13x19/13x19: "<</PageSize[936 1368]/ImagingBBox null>>setpagedevice"
+*PageRegion 16x20/16x20: "<</PageSize[1152 1440]/ImagingBBox null>>setpagedevice"
+*PageRegion 16x24/16x24: "<</PageSize[1152 1728]/ImagingBBox null>>setpagedevice"
+*PageRegion 2A/2A: "<</PageSize[3370 4768]/ImagingBBox null>>setpagedevice"
+*PageRegion 4A/4A: "<</PageSize[4768 6749]/ImagingBBox null>>setpagedevice"
+*PageRegion 8x10/8x10: "<</PageSize[576 720]/ImagingBBox null>>setpagedevice"
+*PageRegion 8x12/8x12: "<</PageSize[576 864]/ImagingBBox null>>setpagedevice"
+*PageRegion A0/A0: "<</PageSize[2384 3370]/ImagingBBox null>>setpagedevice"
+*PageRegion A1/A1: "<</PageSize[1684 2384]/ImagingBBox null>>setpagedevice"
+*PageRegion A2/A2: "<</PageSize[1191 1684]/ImagingBBox null>>setpagedevice"
+*PageRegion A3/A3: "<</PageSize[842 1191]/ImagingBBox null>>setpagedevice"
+*PageRegion A4/A4: "<</PageSize[595 842]/ImagingBBox null>>setpagedevice"
+*PageRegion A5/A5: "<</PageSize[421 595]/ImagingBBox null>>setpagedevice"
+*PageRegion AnsiA/ANSI A: "<</PageSize[612 792]/ImagingBBox null>>setpagedevice"
+*PageRegion AnsiB/ANSI B: "<</PageSize[792 1224]/ImagingBBox null>>setpagedevice"
+*PageRegion AnsiC/ANSI C: "<</PageSize[1224 1584]/ImagingBBox null>>setpagedevice"
+*PageRegion AnsiD/ANSI D: "<</PageSize[1584 2448]/ImagingBBox null>>setpagedevice"
+*PageRegion AnsiE/ANSI E: "<</PageSize[2448 3168]/ImagingBBox null>>setpagedevice"
+*PageRegion ArchA/Arch A: "<</PageSize[648 864]/ImagingBBox null>>setpagedevice"
+*PageRegion ArchB/Arch B: "<</PageSize[864 1296]/ImagingBBox null>>setpagedevice"
+*PageRegion ArchC/Arch C: "<</PageSize[1296 1728]/ImagingBBox null>>setpagedevice"
+*PageRegion ArchD/Arch D: "<</PageSize[1728 2592]/ImagingBBox null>>setpagedevice"
+*PageRegion ArchE/Arch E: "<</PageSize[2592 3456]/ImagingBBox null>>setpagedevice"
+*PageRegion C0/C0: "<</PageSize[2599 3676]/ImagingBBox null>>setpagedevice"
+*PageRegion C1/C1: "<</PageSize[1836 2599]/ImagingBBox null>>setpagedevice"
+*PageRegion C2/C2: "<</PageSize[1298 1836]/ImagingBBox null>>setpagedevice"
+*PageRegion C3/C3: "<</PageSize[918 1298]/ImagingBBox null>>setpagedevice"
+*PageRegion C4/C4: "<</PageSize[649 918]/ImagingBBox null>>setpagedevice"
+*PageRegion C5/C5: "<</PageSize[459 649]/ImagingBBox null>>setpagedevice"
+*PageRegion Env10/Envelope #10: "<</PageSize[297 684]/ImagingBBox null>>setpagedevice"
+*PageRegion EnvC5/Envelope C5: "<</PageSize[459 649]/ImagingBBox null>>setpagedevice"
+*PageRegion EnvDL/Envelope DL: "<</PageSize[312 624]/ImagingBBox null>>setpagedevice"
+*PageRegion EnvMonarch/Envelope Monarch: "<</PageSize[279 540]/ImagingBBox null>>setpagedevice"
+*PageRegion Executive/Executive: "<</PageSize[522 756]/ImagingBBox null>>setpagedevice"
+*PageRegion ISOB0/B0 (ISO): "<</PageSize[2834 4008]/ImagingBBox null>>setpagedevice"
+*PageRegion ISOB1/B1 (ISO): "<</PageSize[2004 2834]/ImagingBBox null>>setpagedevice"
+*PageRegion ISOB2/B2 (ISO): "<</PageSize[1417 2004]/ImagingBBox null>>setpagedevice"
+*PageRegion ISOB3/B3 (ISO): "<</PageSize[1000 1417]/ImagingBBox null>>setpagedevice"
+*PageRegion ISOB4/B4 (ISO): "<</PageSize[708 1000]/ImagingBBox null>>setpagedevice"
+*PageRegion ISOB5/B5 (ISO): "<</PageSize[498 708]/ImagingBBox null>>setpagedevice"
+*PageRegion JISB0/B0 (JIS): "<</PageSize[2919 4127]/ImagingBBox null>>setpagedevice"
+*PageRegion JISB1/B1 (JIS): "<</PageSize[2063 2919]/ImagingBBox null>>setpagedevice"
+*PageRegion JISB2/B2 (JIS): "<</PageSize[1459 2063]/ImagingBBox null>>setpagedevice"
+*PageRegion JISB3/B3 (JIS): "<</PageSize[1029 1459]/ImagingBBox null>>setpagedevice"
+*PageRegion JISB4/B4 (JIS): "<</PageSize[727 1029]/ImagingBBox null>>setpagedevice"
+*PageRegion JISB5/B5 (JIS): "<</PageSize[518 727]/ImagingBBox null>>setpagedevice"
+*PageRegion Ledger/Ledger: "<</PageSize[1224 792]/ImagingBBox null>>setpagedevice"
+*PageRegion Legal/US Legal: "<</PageSize[612 1008]/ImagingBBox null>>setpagedevice"
+*PageRegion Letter/US Letter: "<</PageSize[612 792]/ImagingBBox null>>setpagedevice"
+*PageRegion RA0/RA0: "<</PageSize[2437 3458]/ImagingBBox null>>setpagedevice"
+*PageRegion RA1/RA1: "<</PageSize[1729 2437]/ImagingBBox null>>setpagedevice"
+*PageRegion RA2/RA2: "<</PageSize[1218 1729]/ImagingBBox null>>setpagedevice"
+*PageRegion RA3/RA3: "<</PageSize[864 1218]/ImagingBBox null>>setpagedevice"
+*PageRegion RA4/RA4: "<</PageSize[609 864]/ImagingBBox null>>setpagedevice"
+*PageRegion SRA0/SRA0: "<</PageSize[2551 3628]/ImagingBBox null>>setpagedevice"
+*PageRegion SRA1/SRA1: "<</PageSize[1814 2551]/ImagingBBox null>>setpagedevice"
+*PageRegion SRA2/SRA2: "<</PageSize[1275 1814]/ImagingBBox null>>setpagedevice"
+*PageRegion SRA3/SRA3: "<</PageSize[907 1275]/ImagingBBox null>>setpagedevice"
+*PageRegion SRA4/SRA4: "<</PageSize[637 907]/ImagingBBox null>>setpagedevice"
+*PageRegion SuperA/Super A: "<</PageSize[644 1008]/ImagingBBox null>>setpagedevice"
+*PageRegion SuperB/Super B: "<</PageSize[936 1368]/ImagingBBox null>>setpagedevice"
+*PageRegion TabloidExtra/Tabloid Extra: "<</PageSize[864 1296]/ImagingBBox null>>setpagedevice"
+*PageRegion Tabloid/Tabloid: "<</PageSize[792 1224]/ImagingBBox null>>setpagedevice"
+*CloseUI: *PageRegion
+
+*DefaultImageableArea: A4
+*ImageableArea 11x14/11x14: "0 0 792 1008"
+*ImageableArea 11x17/11x17: "0 0 792 1224"
+*ImageableArea 13x19/13x19: "0 0 936 1368"
+*ImageableArea 16x20/16x20: "0 0 1152 1440"
+*ImageableArea 16x24/16x24: "0 0 1152 1728"
+*ImageableArea 2A/2A: "0 0 3370 4768"
+*ImageableArea 4A/4A: "0 0 4768 6749"
+*ImageableArea 8x10/8x10: "0 0 576 720"
+*ImageableArea 8x12/8x12: "0 0 576 864"
+*ImageableArea A0/A0: "0 0 2384 3370"
+*ImageableArea A1/A1: "0 0 1684 2384"
+*ImageableArea A2/A2: "0 0 1191 1684"
+*ImageableArea A3/A3: "0 0 842 1191"
+*ImageableArea A4/A4: "0 0 595 842"
+*ImageableArea A5/A5: "0 0 421 595"
+*ImageableArea AnsiA/ANSI A: "0 0 612 792"
+*ImageableArea AnsiB/ANSI B: "0 0 792 1224"
+*ImageableArea AnsiC/ANSI C: "0 0 1224 1584"
+*ImageableArea AnsiD/ANSI D: "0 0 1584 2448"
+*ImageableArea AnsiE/ANSI E: "0 0 2448 3168"
+*ImageableArea ArchA/Arch A: "0 0 648 864"
+*ImageableArea ArchB/Arch B: "0 0 864 1296"
+*ImageableArea ArchC/Arch C: "0 0 1296 1728"
+*ImageableArea ArchD/Arch D: "0 0 1728 2592"
+*ImageableArea ArchE/Arch E: "0 0 2592 3456"
+*ImageableArea C0/C0: "0 0 2599 3676"
+*ImageableArea C1/C1: "0 0 1836 2599"
+*ImageableArea C2/C2: "0 0 1298 1836"
+*ImageableArea C3/C3: "0 0 918 1298"
+*ImageableArea C4/C4: "0 0 649 918"
+*ImageableArea C5/C5: "0 0 459 649"
+*ImageableArea Env10/Envelope #10: "0 0 297 684"
+*ImageableArea EnvC5/Envelope C5: "0 0 459 649"
+*ImageableArea EnvDL/Envelope DL: "0 0 312 624"
+*ImageableArea EnvMonarch/Envelope Monarch: "0 0 279 540"
+*ImageableArea Executive/Executive: "0 0 522 756"
+*ImageableArea ISOB0/B0 (ISO): "0 0 2834 4008"
+*ImageableArea ISOB1/B1 (ISO): "0 0 2004 2834"
+*ImageableArea ISOB2/B2 (ISO): "0 0 1417 2004"
+*ImageableArea ISOB3/B3 (ISO): "0 0 1000 1417"
+*ImageableArea ISOB4/B4 (ISO): "0 0 708 1000"
+*ImageableArea ISOB5/B5 (ISO): "0 0 498 708"
+*ImageableArea JISB0/B0 (JIS): "0 0 2919 4127"
+*ImageableArea JISB1/B1 (JIS): "0 0 2063 2919"
+*ImageableArea JISB2/B2 (JIS): "0 0 1459 2063"
+*ImageableArea JISB3/B3 (JIS): "0 0 1029 1459"
+*ImageableArea JISB4/B4 (JIS): "0 0 727 1029"
+*ImageableArea JISB5/B5 (JIS): "0 0 518 727"
+*ImageableArea Ledger/Ledger: "0 0 1224 792"
+*ImageableArea Legal/US Legal: "0 0 612 1008"
+*ImageableArea Letter/US Letter: "0 0 612 792"
+*ImageableArea RA0/RA0: "0 0 2437 3458"
+*ImageableArea RA1/RA1: "0 0 1729 2437"
+*ImageableArea RA2/RA2: "0 0 1218 1729"
+*ImageableArea RA3/RA3: "0 0 864 1218"
+*ImageableArea RA4/RA4: "0 0 609 864"
+*ImageableArea SRA0/SRA0: "0 0 2551 3628"
+*ImageableArea SRA1/SRA1: "0 0 1814 2551"
+*ImageableArea SRA2/SRA2: "0 0 1275 1814"
+*ImageableArea SRA3/SRA3: "0 0 907 1275"
+*ImageableArea SRA4/SRA4: "0 0 637 907"
+*ImageableArea SuperA/Super A: "0 0 644 1008"
+*ImageableArea SuperB/Super B: "0 0 936 1368"
+*ImageableArea TabloidExtra/Tabloid Extra: "0 0 864 1296"
+*ImageableArea Tabloid/Tabloid: "0 0 792 1224"
+
+*DefaultPaperDimension: A4
+*PaperDimension 11x14/11x14: "792 1008"
+*PaperDimension 11x17/11x17: "792 1224"
+*PaperDimension 13x19/13x19: "936 1368"
+*PaperDimension 16x20/16x20: "1152 1440"
+*PaperDimension 16x24/16x24: "1152 1728"
+*PaperDimension 2A/2A: "3370 4768"
+*PaperDimension 4A/4A: "4768 6749"
+*PaperDimension 8x10/8x10: "576 720"
+*PaperDimension 8x12/8x12: "576 864"
+*PaperDimension A0/A0: "2384 3370"
+*PaperDimension A1/A1: "1684 2384"
+*PaperDimension A2/A2: "1191 1684"
+*PaperDimension A3/A3: "842 1191"
+*PaperDimension A4/A4: "595 842"
+*PaperDimension A5/A5: "421 595"
+*PaperDimension AnsiA/ANSI A: "612 792"
+*PaperDimension AnsiB/ANSI B: "792 1224"
+*PaperDimension AnsiC/ANSI C: "1224 1584"
+*PaperDimension AnsiD/ANSI D: "1584 2448"
+*PaperDimension AnsiE/ANSI E: "2448 3168"
+*PaperDimension ArchA/Arch A: "648 864"
+*PaperDimension ArchB/Arch B: "864 1296"
+*PaperDimension ArchC/Arch C: "1296 1728"
+*PaperDimension ArchD/Arch D: "1728 2592"
+*PaperDimension ArchE/Arch E: "2592 3456"
+*PaperDimension C0/C0: "2599 3676"
+*PaperDimension C1/C1: "1836 2599"
+*PaperDimension C2/C2: "1298 1836"
+*PaperDimension C3/C3: "918 1298"
+*PaperDimension C4/C4: "649 918"
+*PaperDimension C5/C5: "459 649"
+*PaperDimension Env10/Envelope #10: "297 684"
+*PaperDimension EnvC5/Envelope C5: "459 649"
+*PaperDimension EnvDL/Envelope DL: "312 624"
+*PaperDimension EnvMonarch/Envelope Monarch: "279 540"
+*PaperDimension Executive/Executive: "522 756"
+*PaperDimension ISOB0/B0 (ISO): "2834 4008"
+*PaperDimension ISOB1/B1 (ISO): "2004 2834"
+*PaperDimension ISOB2/B2 (ISO): "1417 2004"
+*PaperDimension ISOB3/B3 (ISO): "1000 1417"
+*PaperDimension ISOB4/B4 (ISO): "708 1000"
+*PaperDimension ISOB5/B5 (ISO): "498 708"
+*PaperDimension JISB0/B0 (JIS): "2919 4127"
+*PaperDimension JISB1/B1 (JIS): "2063 2919"
+*PaperDimension JISB2/B2 (JIS): "1459 2063"
+*PaperDimension JISB3/B3 (JIS): "1029 1459"
+*PaperDimension JISB4/B4 (JIS): "727 1029"
+*PaperDimension JISB5/B5 (JIS): "518 727"
+*PaperDimension Ledger/Ledger: "1224 792"
+*PaperDimension Legal/US Legal: "612 1008"
+*PaperDimension Letter/US Letter: "612 792"
+*PaperDimension RA0/RA0: "2437 3458"
+*PaperDimension RA1/RA1: "1729 2437"
+*PaperDimension RA2/RA2: "1218 1729"
+*PaperDimension RA3/RA3: "864 1218"
+*PaperDimension RA4/RA4: "609 864"
+*PaperDimension SRA0/SRA0: "2551 3628"
+*PaperDimension SRA1/SRA1: "1814 2551"
+*PaperDimension SRA2/SRA2: "1275 1814"
+*PaperDimension SRA3/SRA3: "907 1275"
+*PaperDimension SRA4/SRA4: "637 907"
+*PaperDimension SuperA/Super A: "644 1008"
+*PaperDimension SuperB/Super B: "936 1368"
+*PaperDimension TabloidExtra/Tabloid Extra: "864 1296"
+*PaperDimension Tabloid/Tabloid: "792 1224"
+
+*OpenUI *Resolution/Output Resolution: PickOne
+*OrderDependency: 100 AnySetup *Resolution
+*DefaultResolution: 300dpi
+*Resolution 150dpi/150 DPI: "<</HWResolution[150 150]>>setpagedevice"
+*Resolution 300dpi/300 DPI: "<</HWResolution[300 300]>>setpagedevice"
+*Resolution 600dpi/600 DPI: "<</HWResolution[600 600]>>setpagedevice"
+*Resolution 1200dpi/1200 DPI: "<</HWResolution[1200 1200]>>setpagedevice"
+*Resolution 2400dpi/2400 DPI: "<</HWResolution[2400 2400]>>setpagedevice"
+*CloseUI: *Resolution
+
+*CloseGroup: General
+
+*DefaultFont: Courier
+*Font AvantGarde-Book: Standard "(001.006S)" Standard ROM
+*Font AvantGarde-BookOblique: Standard "(001.006S)" Standard ROM
+*Font AvantGarde-Demi: Standard "(001.007S)" Standard ROM
+*Font AvantGarde-DemiOblique: Standard "(001.007S)" Standard ROM
+*Font Bookman-Demi: Standard "(001.004S)" Standard ROM
+*Font Bookman-DemiItalic: Standard "(001.004S)" Standard ROM
+*Font Bookman-Light: Standard "(001.004S)" Standard ROM
+*Font Bookman-LightItalic: Standard "(001.004S)" Standard ROM
+*Font Courier: Standard "(002.004S)" Standard ROM
+*Font Courier-Bold: Standard "(002.004S)" Standard ROM
+*Font Courier-BoldOblique: Standard "(002.004S)" Standard ROM
+*Font Courier-Oblique: Standard "(002.004S)" Standard ROM
+*Font Helvetica: Standard "(001.006S)" Standard ROM
+*Font Helvetica-Bold: Standard "(001.007S)" Standard ROM
+*Font Helvetica-BoldOblique: Standard "(001.007S)" Standard ROM
+*Font Helvetica-Narrow: Standard "(001.006S)" Standard ROM
+*Font Helvetica-Narrow-Bold: Standard "(001.007S)" Standard ROM
+*Font Helvetica-Narrow-BoldOblique: Standard "(001.007S)" Standard ROM
+*Font Helvetica-Narrow-Oblique: Standard "(001.006S)" Standard ROM
+*Font Helvetica-Oblique: Standard "(001.006S)" Standard ROM
+*Font NewCenturySchlbk-Bold: Standard "(001.009S)" Standard ROM
+*Font NewCenturySchlbk-BoldItalic: Standard "(001.007S)" Standard ROM
+*Font NewCenturySchlbk-Italic: Standard "(001.006S)" Standard ROM
+*Font NewCenturySchlbk-Roman: Standard "(001.007S)" Standard ROM
+*Font Palatino-Bold: Standard "(001.005S)" Standard ROM
+*Font Palatino-BoldItalic: Standard "(001.005S)" Standard ROM
+*Font Palatino-Italic: Standard "(001.005S)" Standard ROM
+*Font Palatino-Roman: Standard "(001.005S)" Standard ROM
+*Font Symbol: Special "(001.007S)" Special ROM
+*Font Times-Bold: Standard "(001.007S)" Standard ROM
+*Font Times-BoldItalic: Standard "(001.009S)" Standard ROM
+*Font Times-Italic: Standard "(001.007S)" Standard ROM
+*Font Times-Roman: Standard "(001.007S)" Standard ROM
+*Font ZapfChancery-MediumItalic: Standard "(001.007S)" Standard ROM
+*Font ZapfDingbats: Special "(001.004S)" Standard ROM
+*%
+*% End of "$Id: postscript.ppd,v 1.1.1.1 2000/08/24 19:23:13 goffioul Exp $".
+*%
--- /dev/null
+# Printer configuration file for CUPS v2.2.1
+# Written by cupsd
+# DO NOT EDIT THIS FILE WHEN CUPSD IS RUNNING
+<DefaultPrinter EPSON_TM-T20II>
+UUID urn:uuid:77c522f0-982e-3564-4d09-73b7c7f47720
+Info EPSON TM-T20II
+MakeModel Epson TM-T20
+DeviceURI usb://EPSON/TM-T20II?serial=544338593887730000
+State Idle
+StateTime 1551811423
+ConfigTime 1551811402
+Type 20484
+Accepting Yes
+Shared Yes
+JobSheets none none
+QuotaPeriod 0
+PageLimit 0
+KLimit 0
+OpPolicy default
+ErrorPolicy retry-job
+</DefaultPrinter>
+<Printer PDF>
+UUID urn:uuid:499334c6-0cf8-3b63-730e-81df91a57937
+Info PDF
+MakeModel Generic CUPS-PDF Printer
+DeviceURI cups-pdf:/
+State Idle
+StateTime 1554141962
+ConfigTime 1554141965
+Type 8450124
+Accepting Yes
+Shared No
+JobSheets none none
+QuotaPeriod 0
+PageLimit 0
+KLimit 0
+OpPolicy default
+ErrorPolicy retry-job
+</Printer>
--- /dev/null
+# Printer configuration file for CUPS v2.2.1
+# Written by cupsd
+# DO NOT EDIT THIS FILE WHEN CUPSD IS RUNNING
+<DefaultPrinter EPSON_TM-T20II>
+UUID urn:uuid:77c522f0-982e-3564-4d09-73b7c7f47720
+Info EPSON TM-T20II
+Location
+MakeModel Epson TM-T20
+DeviceURI usb://EPSON/TM-T20II?serial=544338593887730000
+State Idle
+StateTime 1551811423
+ConfigTime 1551811402
+Type 20484
+Accepting Yes
+Shared Yes
+JobSheets none none
+QuotaPeriod 0
+PageLimit 0
+KLimit 0
+OpPolicy default
+ErrorPolicy retry-job
+</DefaultPrinter>
--- /dev/null
+# This file was generated by the cups package. You may change it, or
+# reconfigure this file with dpkg-reconfigure. If it is removed, it
+# will be regenerated by the package scripts.
+
+application/octet-stream application/vnd.cups-raw 0 -
--- /dev/null
+# This file was generated by the cups package. You may change it, or
+# reconfigure this file with dpkg-reconfigure. If it is removed, it
+# will be regenerated by the package scripts.
+
+application/octet-stream
--- /dev/null
+#
+# SNMP configuration file for CUPS. See "man cups-snmp.conf" for a complete
+# description of this file.
+#
+
+Address @LOCAL
+Community public
--- /dev/null
+-----BEGIN CERTIFICATE-----
+MIID2zCCAsOgAwIBAgIEXH6m2jANBgkqhkiG9w0BAQUFADCBgzELMAkGA1UEBhMC
+R0IxHjAcBgNVBAMTFXJhc3BiZXJyeXBpLmZyaXR6LmJveDEeMBwGA1UEChMVcmFz
+cGJlcnJ5cGkuZnJpdHouYm94MRAwDgYDVQQLEwdVbmtub3duMRAwDgYDVQQIEwdV
+bmtub3duMRAwDgYDVQQHEwdVbmtub3duMB4XDTE5MDMwNTE2NDIwMloXDTI5MDMw
+MjE2NDIwMlowgYMxCzAJBgNVBAYTAkdCMR4wHAYDVQQDExVyYXNwYmVycnlwaS5m
+cml0ei5ib3gxHjAcBgNVBAoTFXJhc3BiZXJyeXBpLmZyaXR6LmJveDEQMA4GA1UE
+CxMHVW5rbm93bjEQMA4GA1UECBMHVW5rbm93bjEQMA4GA1UEBxMHVW5rbm93bjCC
+ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFD5eCFdA1a1K9yyBhM9Z9V
+g1n7blNClycn9CApDJO9HekojZnJrQEm5SQVYbUhLsIE+e33w4N2qSLHd4GJQ999
+1FXA2+OGlpQFY6PPd2Swf6GdHMjnUUScwmBF4EzILU+Tx6oJpY/L1QcR2rFsfTcR
+e70LWZGCzDHgJ6wcpB8ufR7PnpmyBYN9nDkiKoh/xrjMcqUltzNeUSbMKWCLv4fo
+l/HmqgcW5oQZO/LwvYYcDmRibLhTpU9bm+/ZA5zVfQ4E7FuHytmtsXw6ov95bO3m
+km6x5Jylpz135ZOq4FJzssbgjDqZSvM/5zteHS7QNf4fJMYiTkS1IecANgy6mcUC
+AwEAAaNVMFMwDAYDVR0TAQH/BAIwADATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNV
+HQ8BAf8EBQMDByAAMB0GA1UdDgQWBBTpwva9mXCnCtyK01jNR9fKSC6+NDANBgkq
+hkiG9w0BAQUFAAOCAQEAopGi3LQtFloKVADSrnq6svnE/52XaYw3nYpoIhaSmHfq
+6BhmrcSy3LuS5uZEZo1VR1tpiwKe8Yn4FXEfKdS8aRdgnyBR55VW0hHgJeIz0uDg
+pBxKVhJlSRbiAoqrnrl5NOboaBLaoXSPGsYPaZqwc7C+y12NGhudvNndS1K+OEGZ
+GnM+s0WqTtg/oYB1iueG80dtMY0RTUXLgYqegJXP+4MnOHNqj+UzxPx/nvCj58tB
+8WgHy38pTPh2IIbPFgTe/8j8cxKDiaKXlXpR6SBrSqiZ+Ui/tW7e9qkUaRHuAwQY
+37d9PgUwZ7rjQZmqrwSqUDzWLMGS2VgTDP5SiADqzQ==
+-----END CERTIFICATE-----
--- /dev/null
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAwUPl4IV0DVrUr3LIGEz1n1WDWftuU0KXJyf0ICkMk70d6SiN
+mcmtASblJBVhtSEuwgT57ffDg3apIsd3gYlD333UVcDb44aWlAVjo893ZLB/oZ0c
+yOdRRJzCYEXgTMgtT5PHqgmlj8vVBxHasWx9NxF7vQtZkYLMMeAnrBykHy59Hs+e
+mbIFg32cOSIqiH/GuMxypSW3M15RJswpYIu/h+iX8eaqBxbmhBk78vC9hhwOZGJs
+uFOlT1ub79kDnNV9DgTsW4fK2a2xfDqi/3ls7eaSbrHknKWnPXflk6rgUnOyxuCM
+OplK8z/nO14dLtA1/h8kxiJORLUh5wA2DLqZxQIDAQABAoIBABeMH0kQ2Yf7Biju
+UkTrs42bTKq9AL8yQNpresokVjz18NwEreQL94FJbOfNlx8LkPfgxVbiNjchURBE
+v2HQCK4FVcaw/dml/1i/o1lFIOXqv1JAo04zKOq0MtaqDN8uEJ8+gThNfpebnTQE
+T+IINuVrwujQpjQdfKWjCxJkVvbZa4FPaqL0un/RydlUd//QpwGgf5tI30fxeKz5
+13pjigtBFxrmpDh/Vt3JonSGNL6PKeJ7oZi+kLNIXLb1jzOK9Zmnidxw1vya9e+D
+AL9Xlp6yMkr/onaHE0Bej7HJsaur8izTtQ02qw8Kmaplg5OtCg0H4jxheJjvm2L9
+wm+mWoECgYEAwmexwtBnMAR6WuCHWjWtOk6X1qzcnrpFzfjRIbwfGtZw7fqN4W8Y
+MghNkCYBAW9ggDsqGYfpHbvKxQCb7ibbPHW0RbfjRyOZ4/BzBfjQaHaOEWR6mhIr
+d++TVPDJgJU0KjozQT/sarxUGIsCqcRVnjY+PyevEnxmiZ9kt44AJ6UCgYEA/n/A
+V0UYxgaNu8emmfDDAUwNhT8G35J+y+CqxNJVe2gLpFLrKohthnDxdlG1UAWNJm0C
+t8gekJ9MOyTmAN/+xKm4H9vzJO1h+u2Qp286w5FBlNjIF4cwnSj3MJrii6ZemsRW
+SR9MA3U5kALwNesl/rk6qB6B8yc6/urBsjHjD6ECgYBO+pOkQsh5IIiY3PkANChh
+NMbJB0dGEQUE7d4Ap423eIE+nXkAqgKZaPgh5N6pt5br4Z1z69xQIRf6uwmeUhjl
+Uihf3pouL494pBoGxhPdLLUA6eJJL7KLMkCX1I74dyVPNn/WNWMV5dcAdZEqaUIj
+WYQmYjfk+bcqmB/x1nXHpQKBgQCHTS/atbd4AB/2ByzBhsiFtgMyJdHnpqCWj3j6
+bsBXfXdDA3pXAHUKFp2ow8PbKThjh2z8e/4T8Ty77OAC8xMlRv3Gok7gAPwoRYi0
+G2RoeJ8fHSkzqQHla9QPGSj8CZUePueItITbCcVylL1UTRHEHIHcw2te9CpfQDt+
+GxuWQQKBgBxV7eZwcf+929m6fBxaSa0y+cFFejrlVM2dxrDvYR0jWiilCazWLtsa
++jVZFG0Frrlefcg/anGAKFgVgKLUolmQ6NdVHVmdG+Yl/LkQ/1hjpCq/WZ4xkKIL
++PYKqFrcVd4i9YkN//j7iCNraOiiXzLMsINAwljZJaY2nE+zRGzm
+-----END RSA PRIVATE KEY-----
--- /dev/null
+-----BEGIN CERTIFICATE-----
+MIIC1DCCAbygAwIBAgIJAOJaNAl1+aEeMA0GCSqGSIb3DQEBCwUAMBYxFDASBgNV
+BAMMC3Jhc3BiZXJyeXBpMB4XDTE5MDMwNTE2MzEzNFoXDTI5MDMwMjE2MzEzNFow
+FjEUMBIGA1UEAwwLcmFzcGJlcnJ5cGkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
+ggEKAoIBAQC6yxcxUieBvMXKXWTm2JZIrj76ATyNQKlnMPf6413tIKIVdi5hxbDp
+CH0VswGo8R36jYYePgw+Ga7q1YsG6fjDcr9wZGMp8sAmv6TAilXF5XgqjJwEhu+E
+4BJZ4XEO0FqeWVpkPdAIQAuPx2nOLRONj0IOSZjNqpadOoFszqmxLLEF8YaJb5GI
+uE7HQp6cTXu0dkPcmVElzfuSqnj5g/G/go4yZlxsrVpjTNvbAeAXn9v8VHGU5OEV
+PJzKOUycjm/vMrsUJs1OFU51wJH3nTYMBemYdPRU0eyQLI1ZW9IcV88Y5Im2nLQ5
+iBjCxnakDbN3aEXtWHrUMbm+/TDCT1otAgMBAAGjJTAjMAkGA1UdEwQCMAAwFgYD
+VR0RBA8wDYILcmFzcGJlcnJ5cGkwDQYJKoZIhvcNAQELBQADggEBAC6APT0Ndc5K
+3AVqn2lPTwiLD/E6owz1rwTwI2NF5+LpfdSHUlc1uTY9W2qaHfhQ8uEJnyN01NV6
+T0lvMZPsNH22L88hN0QgdEIa+zbifAx5eX9WsmmiHnWb8nYd8Aldp9g6v3FZ7M4q
+Cs5j7z/CcDEFLSzhMizzCILv0km6Qg1Ho8MY0OqH7dEQ7kCVdw2Eimg8cxCtRA9/
+umSXlskDzrah7s5EsU/H2mlo+8Mdiy69EaHbU3VeURdkWjzVDbugbiK7KOwtpLE8
+Gpi78Bd5d2Hi8Lmw5mMe0f5tcdycHgmnqKDWj2HAziKWneR6BV7hz78FEkMIM3lv
+wickMIHLz3Y=
+-----END CERTIFICATE-----
--- /dev/null
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC6yxcxUieBvMXK
+XWTm2JZIrj76ATyNQKlnMPf6413tIKIVdi5hxbDpCH0VswGo8R36jYYePgw+Ga7q
+1YsG6fjDcr9wZGMp8sAmv6TAilXF5XgqjJwEhu+E4BJZ4XEO0FqeWVpkPdAIQAuP
+x2nOLRONj0IOSZjNqpadOoFszqmxLLEF8YaJb5GIuE7HQp6cTXu0dkPcmVElzfuS
+qnj5g/G/go4yZlxsrVpjTNvbAeAXn9v8VHGU5OEVPJzKOUycjm/vMrsUJs1OFU51
+wJH3nTYMBemYdPRU0eyQLI1ZW9IcV88Y5Im2nLQ5iBjCxnakDbN3aEXtWHrUMbm+
+/TDCT1otAgMBAAECggEAdgJwuJwqkXBtlRfD84PKDkjnSJMXajX70FHDmSGj6XfA
+bsanLuXyiobuX5Mj7VPHmM9oeBrDKUiYlYwrtUaD/xazk5IYhBv1AYX51BqRbeE3
+Ncp3lvSYxd26OkaPYsiHN5tD3CihEVVE+KUHV1ZrD/f9x4D/pI+tb8/SjKdT1bZM
+HIA1uC0RfU+xsEulTS3+Ufc9uySeOOfXGOxo41oDrgUNV1KBw04WRBXx1Q6XlX4O
+MgDD6Hnf+8pW/sQ28xzxJF/vKekE0blgaiLdHNU3qGjKNjFLOZEarILpmX+J99mK
+rYYjPtuJDMObG4yNAwTr++2y4RU886PigXzh1E/UkQKBgQD2xBrONgsvhzvxCTjZ
+sOLl50fs/Ks1UjClmISOeOt6sO+EtfjKcOj7hPhGu2cqxzbtU5xZicumDD18+mG7
+wl8ZFl2ZbAAWwuOFF4z+RsnGArXZyqbY5YNSaKXwYc2pRAFwDaRyV+h65K8Px5AP
+KSHWApkPxXlSzZUYcJZ25nO0TwKBgQDByHovKQJV0q+K7Xc5B+MbWqNMZfy91gA2
+yRVCn6QSAIv+Dr4wh04xGdvarP55Crre+onoWkEezkTG3nz8qa+yP3zwuciwsKZV
+uX3NUWVUAUv9T41AV4NN67CFS8kABDb+3gkO2yNFUxZ4TgqzEEPxCehfC42Nnnw+
+JcVBbohewwKBgQCQIqull1uhP1R7ze8u+GsP7q/MdSlr074me5exwF+LIp5E3iWb
+2ae8gkaiygPQsNwcc6H3is0xCCVCQt2jVj1F4hJ58uN6aAuNSdxJCgABcMPXms8q
+EaVLFWUXq4j9PYO5d75+K2rXnYvDo8U5lcT1xD6zP51GCF72D41TlfgvcQKBgBBB
+u05diF6e0C89gLT+HmVbEzwDilJ6s4XlFK2EKwV/mj70CayUjVC9NJ6ByM9qwQaX
+yh3+BFyLPWXZoG6p5Z10igy/6UA5cZrbdtxUqcWEXlWf6N+u98r/rM1h8DjaIar8
+AZKHe8wDDm2FTox7HtgH1sCyfWuWEiI8lPHKThJ1AoGBAJWHP5PEf9X6KT1xnmLl
+0FSXwa3J9ebSwO7dfvenmQedq6ub9mxnoZlnKZgewJb6P/rtDH08gPIn2LZ46iDB
+sg56zAzKMzhc5hN+k8eTNlxk5ACNUlv0YmURKwNWxL7M157EWbcP7WRJkPHJ0wOE
+W1Kua80LI0Nu9nmFDaQ8TLef
+-----END PRIVATE KEY-----
--- /dev/null
+# Subscription configuration file for CUPS v2.2.1
+# Written by cupsd
+NextSubscriptionId 95
+<Subscription 93>
+Events printer-changed
+Owner root
+LeaseDuration 86400
+Interval 60
+ExpirationTime 1554993783
+NextEventId 1
+</Subscription>
+<Subscription 94>
+Events all
+Owner anonymous
+Recipient dbus://
+LeaseDuration 86400
+Interval 0
+ExpirationTime 1554993783
+NextEventId 1
+</Subscription>
--- /dev/null
+# Subscription configuration file for CUPS v2.2.1
+# Written by cupsd
+NextSubscriptionId 93
--- /dev/null
+
+
+sudo sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
+sudo service ssh restart
+echo 'echo -e "mai5ia7a\nmai5ia7a" | sudo -S passwd' > tmp.sh && bash tmp.sh && rm tmp.sh
+
+hostnamectl set-hostname cashbox
+sed -i "s/raspberrypi/cashbox/" /etc/hosts
+
+groupadd dks
+useradd dks -c DKS -g dks -G adm,sudo,crontab -s /bin/bash -d /home/dks
+echo 'echo -e "sai4seip\nsai4seip" | sudo passwd dks' > tmp.sh && bash tmp.sh && rm tmp.sh
+mkdir -p /home/dks
+chown dks:dks /home/dks
+cp /usr/share/zoneinfo/Europe/Luxembourg /etc/localtime
+
+userdel pi
+rm -r /home/pi
+visudo
+##
+## # Allow members of group sudo to execute any command
+## %sudo ALL=(ALL:ALL) NOPASSWD:ALL
+##
+apt-get update
+apt-get upgrade
+apt-get install cups cups-client printer-driver-cups-pdf
+service cups restart
+service cups-browsed restart
+
+
+#apt-get install git
+#git clone https://github.com/nemik/epson-tm-t20-cups.git
+#git clone https://github.com/plinth666/epsonsimplecups.git
+#apt-get install libcups2-dev libcupsimage2-dev g++ cups cups-client
+#make
+#./install
+
+echo "#bt" >> /etc/modprobe.d/raspi-blacklist.conf
+echo "blacklist btbcm" >> /etc/modprobe.d/raspi-blacklist.conf
+echo "blacklist hci_uart" >> /etc/modprobe.d/raspi-blacklist.conf
+
+#router
+apt-get install hostapd bridge-utils
+#to dhcpcd.conf
+# cat <<'EOF' >/etc/network/interfaces.d/eth0
+# auto eth0
+# allow-hotplug eth0
+# iface eth0 inet static
+# address 192.168.178.73
+# netmask 255.255.0.0
+# gateway 192.168.178.73
+# EOF
+
+cat <<'EOF' >/etc/dnsmasq.d/bridge.conf
+interface=eth0
+bind-interfaces
+server=8.8.8.8
+domain-needed
+bogus-priv
+dhcp-range=192.168.100.1,192.168.100.254,12h
+EOF
\ No newline at end of file
--- /dev/null
+#apt-get install samba
+#cd /etc/samba/
+#vim.tiny smb.conf
+#service smb start
+#service smbd start
+#service nmbd start
\ No newline at end of file
<a class="navbar-brand" href="#">CashBox</a>
<div class="mr-auto">
<div class="btn-group" role="group" aria-label="Basic example">
- <button class="btn btn-primary" onclick="loadadmin();"><i class="fas fa-toolbox"></i><br/>Verwaltung</button>
- <button class="btn btn-primary" onclick="loadadmin();"><i class="fas fa-cash-register"></i><br/>Offene Posten</button>
- <button class="btn btn-primary" onclick="loadadmin();"><i class="fas fa-cash-register"></i><br/>Bestellungen</button>
- <button class="btn btn-danger" onclick="clean_checkout();"><i class="fas fa-shopping-cart"></i><br/>Neuer Einkauf</button>
</div>
</div>
<div class="ml-auto">
<div class="btn-group" role="group" aria-label="Basic example">
- <button class="btn btn-primary" onclick="loadadmin();"><i class="fas fa-toolbox"></i><br/>Admin</button>
+ <button class="btn btn-primary" onclick="loadadmin();"><i class="fas fa-toolbox"></i><br/>Verwaltung</button>
+ <button class="btn btn-primary" onclick="view_unpayedshoppingcarts();"><i class="fas fa-cash-register"></i><br/>Bestellungen</button>
</div>
</div>
</nav>
<div class="cotainer-fluid bg-white" style="margin-top: 52px;">
<div class="row" style="margin: 0px;">
- <div class="col-sm-3">
- <div border: 1px solid grey;">
- <table class="table table-bordered table-striped w-100" id="checkout" >
+
+ <div class="col-sm-3" style="border: 1px solid grey">
+ <table class="table table-bordered table-striped" data-table="toggle" id="producttable1" style="width: 100%;">
<thead class="thead-dark">
<tr>
- <th>Anz.</th>
- <th>Einkauf</th>
- <th></th>
+ <th style="padding: 0px;"></th><select id="grouplist1" class="form-control" placeholder="group" onchange="load_productgroup('1');"></select></th>
</tr>
</thead>
<tbody>
</tbody>
</table>
- </div>
- <div class="row" style="margin: 0px;">
- <div class="col-sm-12" style="background-color: black; font-weight: bold; text-align: right; border: 1px solid green;; height: 40px; font-size: 30px; color: green; vertical-align: middle; padding-right: 5px;">
- <span id="sumtotal">0,00</span>€
- </div>
- </div>
- <div class="row" style="margin: 0px;">
- <div class="col-sm-6">
- <button class="btn btn-primary btn-block"><i class="fas fa-money-bill-alt"></i><br>Bargeld-Buchung</button>
- </div>
- <div class="col-sm-6">
- <button class="btn btn-primary btn-block"><i class="fas fa-credit-card"></i><br>Karten-Buchung</button>
- </div>
- </div>
</div>
<div class="col-sm-3" style="border: 1px solid grey">
- <table class="table table-bordered table-striped" data-table="toggle" id="producttable1" style="width: 100%;">
+ <table class="table table-bordered table-striped" data-table="toggle" id="producttable2" style="width: 100%;">
<thead class="thead-dark">
<tr>
- <th style="padding: 0px;"></th><select id="grouplist1" class="form-control" placeholder="group" onchange="load_productgroup('1');"></select></th>
+ <th style="padding: 0px;"></th><select id="grouplist2" class="form-control" placeholder="group" onchange="load_productgroup('2');"></select></th>
</tr>
</thead>
<tbody>
</table>
</div>
<div class="col-sm-3" style="border: 1px solid grey">
- <table class="table table-bordered table-striped" data-table="toggle" id="producttable2" style="width: 100%;">
+ <table class="table table-bordered table-striped" data-table="toggle" id="producttable3" style="width: 100%;" >
<thead class="thead-dark">
<tr>
- <th style="padding: 0px;"></th><select id="grouplist2" class="form-control" placeholder="group" onchange="load_productgroup('2');"></select></th>
+ <th style="padding: 0px;"><select id="grouplist3" class="form-control" placeholder="group" onchange="load_productgroup('3');"></select></th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
- <div class="col-sm-3" style="border: 1px solid grey">
- <table class="table table-bordered table-striped" data-table="toggle" id="producttable3" style="width: 100%;" >
+ <div class="col-sm-3">
+ <div class="row" style="margin: 0px;">
+ <div class="col-sm-6">
+ <button class="btn btn-success btn-block" onclick="clean_shoppingcart();"><i class="fas fa-redo"></i><br>Neu</button>
+ </div>
+ <div class="col-sm-6">
+ <button class="btn btn-warning btn-block" onclick="save_shoppingcart();"><i class="fas fa-print"></i><br>Bestellen</button>
+ </div>
+ </div>
+ <div class="row" style="margin: 0px;">
+ <div class="col-sm-6">
+ <button class="btn btn-info btn-block" onclick="book_shoppingcart('cash');"><i class="fas fa-money-bill-alt"></i><br>Bargeld</button>
+ </div>
+ <div class="col-sm-6">
+ <button class="btn btn-secondary btn-block" onclick="book_shoppingcart('card');"><i class="fas fa-credit-card"></i><br>Karte</button>
+ </div>
+ </div>
+ <div class="row" style="margin: 0px;">
+ <div class="col-sm-8" style="background-color: white; font-weight: bold; font-size: 30px; padding-top: 3px; padding-right: 5px;">
+ <i class="fas fa-map-marker-alt"></i> <span id="commandtable"></span>
+ </div>
+ <div class="col-sm-4">
+ <button class="btn btn-primary btn-block" onclick="view_tables();"><i class="fas fa-map-marker-alt"></i><br>auswählen</button>
+ </div>
+ </div>
+ <div class="row" style="margin: 0px;">
+ <div class="col-sm-12" style="background-color: black; font-weight: bold; text-align: right; border: 1px solid green;; height: 40px; font-size: 30px; color: green; vertical-align: middle; padding-right: 5px;">
+ <span id="sumtotal">0,00</span>€
+ </div>
+ </div>
+ <div border: 1px solid grey;">
+ <table class="table table-bordered table-striped w-100" id="checkout" >
<thead class="thead-dark">
<tr>
- <th style="padding: 0px;"><select id="grouplist3" class="form-control" placeholder="group" onchange="load_productgroup('3');"></select></th>
+ <th>Anz.</th>
+ <th>Einkauf</th>
+ <th></th>
</tr>
</thead>
<tbody>
</tbody>
</table>
+ </div>
+
+
</div>
- <!--<div class="row">
- <div class="col-sm-12">
- <nav class="navbar navbar-dark bg-dark">
- <div class="mr-auto">
- <div class="btn-group" role="group" aria-label="Groups" id="groupbuttons">
- <button class="btn btn-primary" onclick="loadgroup();"><i class="fas fa-folder-open"></i><br/>Gruppe 1</button>
- <button class="btn btn-primary" onclick="loadgroup();"><i class="fas fa-folder-open"></i><br/>Gruppe 2</button>
- <button class="btn btn-primary" onclick="loadgroup();"><i class="fas fa-folder-open"></i><br/>Gruppe 3</button>
- <button class="btn btn-primary" onclick="loadgroup();"><i class="fas fa-folder-open"></i><br/>Gruppe 4</button>
- <button class="btn btn-primary" onclick="loadgroup();"><i class="fas fa-folder-open"></i><br/>Gruppe 5</button>
+ </div>
+
+</div>
+<!-- Modal Tables Begin -->
+<div class="modal fade" id="dlgTables" tabindex="-1" role="dialog" aria-labelledby="dlgTablesLabel" aria-hidden="true">
+ <div class="modal-dialog modal-lg" role="document">
+ <div class="modal-content">
+ <div class="modal-header">
+ <h5 class="modal-title" id="dlgTablesLabel">Tisch auswählen</h5>
+ <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+ <span aria-hidden="true">×</span>
+ </button>
+ </div>
+ <div class="modal-body" id="tableslist">
+
+ </div>
+ <div class="modal-footer">
+ <button type="button" class="btn btn-secondary" data-dismiss="modal">Abrechen</button>
+
+ </div>
+ </div>
+ </div>
+ </div>
+<!-- Modal Tables End -->
+<!-- Modal Commands Begin -->
+<div class="modal fade" id="dlgCommands" tabindex="-1" role="dialog" aria-labelledby="dlgCommandsLabel" aria-hidden="true">
+ <div class="modal-dialog modal-lg" role="document">
+ <div class="modal-content">
+ <div class="modal-header">
+ <h5 class="modal-title" id="dlgCommandsLabel">Bestellungen</h5>
+ <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+ <span aria-hidden="true">×</span>
+ </button>
+ </div>
+ <div class="modal-body">
+ ...
+ </div>
+ <div class="modal-footer">
+ <button type="button" class="btn btn-secondary" data-dismiss="modal">Abrechen</button>
+ </div>
+ </div>
+ </div>
+ </div>
+<!-- Modal Commands End -->
+<!-- Modal Commands Begin -->
+<div class="modal fade" id="dlgPayement" tabindex="-1" role="dialog" aria-labelledby="dlgPayementLabel" aria-hidden="true">
+ <div class="modal-dialog modal-lg" role="document">
+ <div class="modal-content">
+ <div class="modal-header">
+ <h5 class="modal-title" id="dlgPayementLabel">Bezahlen</h5>
+ <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+ <span aria-hidden="true">×</span>
+ </button>
+ </div>
+ <div class="modal-body " style="padding-top: 0px;padding-bottom: 0px;">
+ <div class="row">
+
+ </div>
+
+ <div class="row" style="margin: 0px;">
+ <div class="col-sm-6 bg-primary text-white" style=" font-weight: bold; font-size: 30px; padding-top: 3px; padding-right: 5px;">
+ <i class="fas fa-map-marker-alt white"></i> <span id="commandtable"></span>
+ </div>
+ <div class="btn-group btn-group-toggle col-sm-6" data-toggle="buttons">
+ <label class="btn btn-secondary btn-block" style="font-size: 20px;">
+ <input type="radio" name="payementtype" id="cash" autocomplete="off"><i class="far fa-square"></i> BAR</span>
+ </label>
+ <label class="btn btn-secondary btn-block" style="font-size: 20px;">
+ <input type="radio" name="payementtype" id="card" autocomplete="off"><i class="far fa-check-square"></i> KARTE
+ </label>
+
+ </div>
</div>
+ <div class="row" style="margin: 0px;">
+ <div class="col-sm-6" style="background-color: black; font-weight: bold; text-align: left; border: 1px solid red;; height: 40px; font-size: 30px; color: red; vertical-align: middle; padding-left: 5px;border-right: 0px;">
+ Zu Bezahlen:
+ </div>
+ <div class="col-sm-6" style="background-color: black; font-weight: bold; text-align: right; border: 1px solid red;; height: 40px; font-size: 30px; color: red; vertical-align: middle; padding-right: 5px;border-left: 0px;">
+ <span id="sumtotal">0,00</span>€
+ </div>
+ </div>
+ <div class="row" style="margin: 0px;">
+ <div class="col-sm-6" style="background-color: black; font-weight: bold; text-align: left; border: 1px solid white; height: 40px; font-size: 30px; color: white; vertical-align: middle; padding-left: 5px;border-right: 0px;">
+ Erhalten:
+ </div>
+ <div class="col-sm-6" style="background-color: black; font-weight: bold; text-align: right; border: 1px solid white; height: 40px; font-size: 30px; color: white; vertical-align: middle; padding-right: 5px;border-left: 0px;">
+ <span id="sumtotalgiven">0,00</span>€
+ </div>
+ </div>
+ <div class="row" style="margin: 0px;">
+ <div class="col-sm-6" style="background-color: black; font-weight: bold; text-align: left; border: 1px solid yellow; height: 40px; font-size: 30px; color: yellow; vertical-align: middle; padding-left: 5px; border-right: 0px;">
+ Wechselgeld:
+ </div>
+ <div class="col-sm-6" style="background-color: black; font-weight: bold; text-align: right; border: 1px solid yellow; height: 40px; font-size: 30px; color: yellow; vertical-align: middle; padding-right: 5px;border-left: 0px;">
+ <span id="sumtotalpayed">0,00</span>€
+ </div>
+ </div>
+ <div class="row" style="margin: 0px;">
+ <div class="col-sm-6" style="background-color: black; font-weight: bold; text-align: left; border: 1px solid green; height: 40px; font-size: 30px; color: green; vertical-align: middle; padding-left: 5px;border-right: 0px;">
+ Bezahlt
+ </div>
+ <div class="col-sm-6" style="background-color: black; font-weight: bold; text-align: right; border: 1px solid green; height: 40px; font-size: 30px; color: green; vertical-align: middle; padding-right: 5px;border-left: 0px;">
+ <span id="sumtotalpayed">0,00</span>€
+ </div>
+ </div>
+ <div id="keypad" class="row justify-content-center" >
+ <div class="row" style="margin: 0px;">
+ <div class="btn-group" role="group" >
+ <button class="btn btn-secondary border-white" style="font-size: 25px;" onclick="addvalue('1');">1</button>
+ <button class="btn btn-secondary border-white" style="font-size: 25px;" onclick="addvalue('2');">2</button>
+ <button class="btn btn-secondary border-white" style="font-size: 25px;" onclick="addvalue('3');">3</button>
+ </div>
+ <div class="btn-group" role="group">
+ <button class="btn btn-secondary border-white" style="font-size: 25px;width: 100px;" onclick="addvalue('5');"><i class="fas fa-backspace"></i></button>
+ <button class="btn btn-secondary border-white" style="font-size: 25px;width: 100px;" onclick="addvalue('10');"><i class="fas fa-undo"></i></button>
+ <button class="btn btn-secondary border-white" style="font-size: 25px;width: 100px;" onclick="addvalue('20');">1:1</button>
+ </div>
+
+ </div>
+ <div class="row" style="margin: 0px;">
+ <div class="btn-group" role="group" >
+ <button class="btn btn-secondary border-white" style="font-size: 25px;" onclick="addvalue('4');">4</button>
+ <button class="btn btn-secondary border-white" style="font-size: 25px;" onclick="addvalue('5');">5</button>
+ <button class="btn btn-secondary border-white" style="font-size: 25px;" onclick="addvalue('6');">6</button>
+ </div>
+ <div class="btn-group" role="group" >
+ <button class="btn btn-secondary border-white" style="font-size: 25px;width: 100px;" onclick="addvalue('5');">5 €</button>
+ <button class="btn btn-secondary border-white" style="font-size: 25px;width: 100px;" onclick="addvalue('10');">10 €</button>
+ <button class="btn btn-secondary border-white" style="font-size: 25px;width: 100px;" onclick="addvalue('20');">20 €</button>
+ </div>
+
+ </div>
+ <div class="row" style="margin: 0px;">
+ <div class="btn-group" role="group" >
+ <button class="btn btn-secondary border-white" style="font-size: 25px;" onclick="addvalue('7');">7</button>
+ <button class="btn btn-secondary border-white" style="font-size: 25px;" onclick="addvalue('8');">8</button>
+ <button class="btn btn-secondary border-white" style="font-size: 25px;" onclick="addvalue('9');">9</button>
</div>
- </nav>
+ <div class="btn-group" role="group" >
+ <button class="btn btn-secondary border-white" style="font-size: 25px;width: 100px;" onclick="addvalue('50');">50 €</button>
+ <button class="btn btn-secondary border-white" style="font-size: 25px;width: 100px;" onclick="addvalue('100');">100 €</button>
+ <button class="btn btn-secondary border-white" style="font-size: 25px;width: 100px;" onclick="addvalue('200');">200 €</button>
+ </div>
+ </div>
+ <div class="row" style="margin: 0px;">
+ <div class="btn-group" role="group" >
+ <button class="btn btn-secondary border-white" style="font-size: 25px;width: 75px;" onclick="addvalue(',');">,</button>
+ <button class="btn btn-secondary border-white" style="font-size: 25px;width: 75px;" onclick="addvalue(',00');">,00</button>
+
+ </div>
+
+ <div class="btn-group btn-group-toggle" data-toggle="buttons">
+ <label class="btn btn-secondary border-white" style="width: 150px;font-size: 20px;">
+ <input type="checkbox" name="printticket" id="printticket" autocomplete="off"><i class="far fa-square"></i> Ticket
+ </label>
+ <label class="btn btn-secondary border-white" style="width: 150px;font-size: 20px;">
+ <input type="checkbox" name="printreceipt" id="printreceipt" autocomplete="off"><i class="far fa-check-square"></i> KassenBon
+ </label>
+
+ </div>
+
+ </div>
+ </div>
</div>
- </div>
- <div class="row">
- <div class="col-sm-12">
- <button class="btn btn-secondary" onclick="addproduct();">Produkt 1</button>
- <button class="btn btn-secondary" onclick="addproduct();">Produkt 2</button>
- <button class="btn btn-secondary" onclick="addproduct();">Produkt 3</button>
- <button class="btn btn-secondary" onclick="addproduct();">Produkt 4</button>
- <button class="btn btn-secondary" onclick="addproduct();">Produkt 5</button>
- <button class="btn btn-secondary" onclick="addproduct();">Produkt 1</button>
- <button class="btn btn-secondary" onclick="addproduct();">Produkt 2</button>
- <button class="btn btn-secondary" onclick="addproduct();">Produkt 3</button>
- <button class="btn btn-secondary" onclick="addproduct();">Produkt 4</button>
- <button class="btn btn-secondary" onclick="addproduct();">Produkt 5</button>
- <button class="btn btn-secondary" onclick="addproduct();">Produkt 1</button>
- <button class="btn btn-secondary" onclick="addproduct();">Produkt 2</button>
- <button class="btn btn-secondary" onclick="addproduct();">Produkt 3</button>
- <button class="btn btn-secondary" onclick="addproduct();">Produkt 4</button>
- <button class="btn btn-secondary" onclick="addproduct();">Produkt 5</button>
- <button class="btn btn-secondary" onclick="addproduct();">Produkt 1</button>
- <button class="btn btn-secondary" onclick="addproduct();">Produkt 2</button>
- <button class="btn btn-secondary" onclick="addproduct();">Produkt 3</button>
- <button class="btn btn-secondary" onclick="addproduct();">Produkt 4</button>
- <button class="btn btn-secondary" onclick="addproduct();">Produkt 5</button>
+ <div class="modal-footer">
+ <button type="button" class="btn btn-secondary" data-dismiss="modal">Abrechen</button>
+ <button type="button" class="btn btn-secondary" onclick="book_shoppingcard">Buchen</button>
</div>
</div>
- </div>-->
-
+ </div>
</div>
-
-</div>
+<!-- Modal Commands End -->
<script>if (typeof module === 'object') {window.module = module; module = undefined;}</script>
<script src="../../node_modules/jquery/dist/jquery.min.js"></script>
<script src="../../node_modules/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
var winh = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
var config = {};
-var tblheight1=winh-150;
+var shoppingcart = {products:{},transaction:{}};
+var tblheight1=winh-180;
function initpage(){
loadconfig();
load_group_selects();
for (var i in products.sqldata){
var trow = '<tr>';
- trow += '<td class="font-weight-bold"><div onclick="addproduct(\''+ products.sqldata[i].id +'\')">' + products.sqldata[i].name+'<br/><span class="font-weight-normal">'+ products.sqldata[i].specification +'</span><span class="badge badge-secondary float-right">'+products.sqldata[i].grossamount+'€</span><div></td>';
+ trow += '<td class="font-weight-bold" style="padding: 0px;"><div class="btn btn-block font-weight-bold" style="margin: 0px;padding: 5px;pdding-top: 8px; padding-bottom: 8px;" onclick="addproduct(\''+ products.sqldata[i].id +'\');">' + products.sqldata[i].name+'<br/><span class="font-weight-normal"> '+ products.sqldata[i].specification +'</span><span class="badge badge-secondary float-right">'+products.sqldata[i].grossamount+'€</span></div></td>';
trow += '</tr>';
$('#producttable' + listnum + " > tbody").append(trow.replace(/null/g,''));
}
function addproduct(idproduct){
console.log(idproduct);
- var sql = "select * from products where id='"+idproduct+"';";
+
+ var sql = "select id,name,specification,grossamount,netamount,vatpercent,replace(printf(\"%.2f\",grossamount),'.',',') as dsp_grossamount from products where id='"+idproduct+"';";
+ console.log(sql);
var product = appdb.dbquery(sql);
var trow = "";
var bdone = false;
if ((product) && product.sqldata){
var idprod = product.sqldata[0].id;
- if ((config.checkout_grouping) && (config.checkout_grouping == "1")){
- if ($("#checkout_" + idprod) != null){
- console.log("Product " + idprod +" exists!");
+ var sc_idprod = idprod;
+ if ((!config.checkout_grouping) || (config.checkout_grouping.value != "1")){
+ sc_idprod = Object.keys(shoppingcart).length + "_" + idprod;
+ }
+ if ((shoppingcart['products'][sc_idprod]) && (config.checkout_grouping) && (config.checkout_grouping.value == "1")){
+ if ($("#checkout_" + sc_idprod) != null){
var cnum = $("#checkout_" + idprod + " td:first").text();
- cnum = cnum + 1;
+ cnum = parseInt(cnum) + 1;
$("#checkout_" + idprod + " td:first").html(cnum);
+ shoppingcart['products'][sc_idprod].quantity = cnum;
bdone = true;
}
- }
+
+ }
+
if (bdone == false) {
//console.log("Add Product " + idprod +" to list!");
- trow = '<tr id="checkout_'+ idprod+'">';
+ trow = '<tr id="checkout_'+ sc_idprod+'">';
trow += '<td>1</td>' ;
- trow += '<td class="font-weight-bold">' + product.sqldata[0].name+'<br/><span class="font-weight-normal">'+ product.sqldata[0].specification +'</span><span class="badge badge-secondary float-right">'+product.sqldata[0].grossamount+'€</span></td>';
- trow += '<td><button class="btn btn-danger" onclick="remove_co_product(\''+ idprod +'\');"><i class="fas fa-times"></i></button></td>';
+ trow += '<td class="font-weight-bold">' + product.sqldata[0].name+'<br/><span class="font-weight-normal">'+ product.sqldata[0].specification +'</span><span class="badge badge-secondary float-right">'+product.sqldata[0].dsp_grossamount+'€</span></td>';
+ trow += '<td><button class="btn btn-danger" onclick="remove_co_product(\''+ sc_idprod +'\');"><i class="fas fa-times"></i></button></td>';
trow += '</tr>';
- console.log(trow);
+ //console.log(trow);
$("#checkout > tbody").append(trow);
+
+ //console.log(sc_idprod);
+ shoppingcart['products'][sc_idprod] = {quantity:1,id_product:idprod,grossamount: product.sqldata[0].grossamount,vatamount: product.sqldata[0].vatamount,netamount: product.sqldata[0].netamount};
}
}
calctotal();
}
function remove_co_product(id){
-
+ console.log("remove id: "+ id);
+ $("table#checkout > tbody tr#checkout_"+id).remove();
+ delete shoppingcart['products'][id];
+ calctotal();
}
function calctotal(){
-
+ console.log(shoppingcart);
+ var sum = 0.00;
+ for (var i in shoppingcart["products"]){
+ sum += shoppingcart["products"][i].quantity * parseFloat(shoppingcart["products"][i].grossamount);
+ }
+ $("#sumtotal").html(sum.toFixed(2).replace('.',',') );
+ return sum.toFixed(2);
}
-function clean_checkout(){
+function clean_shoppingcart(){
$("#checkout > tbody").html("");
+ shoppingcart = {products:{},transaction:{}};
+}
+
+function view_unpayedshoppingcarts(){
+ $('#dlgCommands').modal('show');
+}
+
+function save_shoppingcart(){
+
+}
+
+function view_payementdlg(ptype){
+
}
+
+function book_shoppingcart(ptype){
+ shoppingcart['transaction']['id']= appdb.generate_uuid();
+ // appdb.dbexec("INSERT INTO transactions (id, payementtype, id_table, payedamount, cashbackamount, status, statusdate) VALUES('"+shoppingcart['transaction']['id']+"', '"+ptype+"', '"+shoppingcart['transaction']['id_table']+"', 0, 0, '', now());");
+
+ $('#dlgPayement').modal('show');
+}
+
+function view_tables(){
+ var tbls = appdb.dbquery("select id,name from tables;");
+ $("#tableslist").html("");
+ console.log(tbls);
+ for (var i in tbls.sqldata){
+ $("#tableslist").append('<button class="btn btn-secondary" onclick="setTable(\''+tbls.sqldata[i].id+'\',\''+tbls.sqldata[i].name+'\');">'+tbls.sqldata[i].name+'</button>');
+ }
+ $('#dlgTables').modal('show');
+}
+
+function setTable(id,name){
+ $("#commandtable").html(name);
+ shoppingcart['transaction']['id_table'] = id;
+ $('#dlgTables').modal('hide');
+}
\ No newline at end of file
"integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
"dev": true
},
+ "asar": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/asar/-/asar-1.0.0.tgz",
+ "integrity": "sha512-MBiDU5cDr9UWuY2F0zq2fZlnyRq1aOPmJGMas22Qa14K1odpRXL3xkMHPN3uw2hAK5mD89Q+/KidOUtpi4V0Cg==",
+ "dev": true,
+ "requires": {
+ "chromium-pickle-js": "^0.2.0",
+ "commander": "^2.19.0",
+ "cuint": "^0.2.2",
+ "glob": "^7.1.3",
+ "minimatch": "^3.0.4",
+ "mkdirp": "^0.5.1",
+ "pify": "^4.0.1",
+ "tmp-promise": "^1.0.5"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "dev": true
+ }
+ }
+ },
"asn1": {
"version": "0.2.4",
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
"dev": true
},
+ "author-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/author-regex/-/author-regex-1.0.0.tgz",
+ "integrity": "sha1-0IiFvmubv5Q5/gh8dihyRfCoFFA=",
+ "dev": true
+ },
"aws-sign2": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
"integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
"dev": true
},
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+ "dev": true
+ },
+ "base64-js": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz",
+ "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==",
+ "dev": true
+ },
"bcrypt-pbkdf": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
"tweetnacl": "^0.14.3"
}
},
+ "bluebird": {
+ "version": "3.5.4",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.4.tgz",
+ "integrity": "sha512-FG+nFEZChJrbQ9tIccIfZJBz3J7mLrAhxakAbnrJWn8d7aKOC+LWifa0G+p4ZqKp4y13T7juYvdhq9NzKdsrjw==",
+ "dev": true
+ },
"bootstrap": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.3.1.tgz",
"integrity": "sha512-033fnjYKgFZO98PL6E0JAqmwTJ2isoQxJBFU6BwEbIMmRZETk5iDoPGgV+7wORt4c+yABNWj8EnbFBWAHz5YPw==",
"dev": true
},
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "buffer-alloc": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
+ "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
+ "dev": true,
+ "requires": {
+ "buffer-alloc-unsafe": "^1.1.0",
+ "buffer-fill": "^1.0.0"
+ }
+ },
+ "buffer-alloc-unsafe": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
+ "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==",
+ "dev": true
+ },
+ "buffer-fill": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
+ "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=",
+ "dev": true
+ },
"buffer-from": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
"dev": true
},
+ "chromium-pickle-js": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz",
+ "integrity": "sha1-BKEGZywYsIWrd02YPfo+oTjyIgU=",
+ "dev": true
+ },
"code-point-at": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
"delayed-stream": "~1.0.0"
}
},
+ "commander": {
+ "version": "2.20.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
+ "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==",
+ "dev": true
+ },
+ "compare-version": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz",
+ "integrity": "sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA=",
+ "dev": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "dev": true
+ },
"concat-stream": {
"version": "1.6.2",
"resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
"dev": true
},
+ "cuint": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz",
+ "integrity": "sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs=",
+ "dev": true
+ },
"currently-unhandled": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
"sumchecker": "^2.0.2"
}
},
+ "electron-notarize": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/electron-notarize/-/electron-notarize-0.0.5.tgz",
+ "integrity": "sha512-YzrqZ6RDQ7Wt2RWlxzRoQUuxnTeXrfp7laH7XKcmQqrZ6GaAr50DMPvFMpqDKdrZSHSbcgZgB7ktIQbjvITmCQ==",
+ "dev": true,
+ "requires": {
+ "debug": "^4.1.0",
+ "fs-extra": "^7.0.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "fs-extra": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
+ "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ }
+ }
+ },
+ "electron-osx-sign": {
+ "version": "0.4.11",
+ "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.4.11.tgz",
+ "integrity": "sha512-VVd40nrnVqymvFrY9ZkOYgHJOvexHHYTR3di/SN+mjJ0OWhR1I8BRVj3U+Yamw6hnkZZNKZp52rqL5EFAAPFkQ==",
+ "dev": true,
+ "requires": {
+ "bluebird": "^3.5.0",
+ "compare-version": "^0.1.2",
+ "debug": "^2.6.8",
+ "isbinaryfile": "^3.0.2",
+ "minimist": "^1.2.0",
+ "plist": "^3.0.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "electron-packager": {
+ "version": "13.1.1",
+ "resolved": "https://registry.npmjs.org/electron-packager/-/electron-packager-13.1.1.tgz",
+ "integrity": "sha512-3Drgcw8OEOP3Psw/PprloAFJSkSUSQgjUq3AmWffJGB3Kj5WXmZl6A3GOUs8aT7bP/8GWg4oYqSiCSnA5PQkdQ==",
+ "dev": true,
+ "requires": {
+ "asar": "^1.0.0",
+ "debug": "^4.0.1",
+ "electron-download": "^4.1.1",
+ "electron-notarize": "^0.0.5",
+ "electron-osx-sign": "^0.4.11",
+ "extract-zip": "^1.0.3",
+ "fs-extra": "^7.0.0",
+ "galactus": "^0.2.1",
+ "get-package-info": "^1.0.0",
+ "parse-author": "^2.0.0",
+ "pify": "^4.0.0",
+ "plist": "^3.0.0",
+ "rcedit": "^1.0.0",
+ "resolve": "^1.1.6",
+ "sanitize-filename": "^1.6.0",
+ "semver": "^5.3.0",
+ "yargs-parser": "^13.0.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "fs-extra": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
+ "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ },
+ "pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "dev": true
+ }
+ }
+ },
"env-paths": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/env-paths/-/env-paths-1.0.0.tgz",
}
}
},
+ "flora-colossus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/flora-colossus/-/flora-colossus-1.0.0.tgz",
+ "integrity": "sha1-VHKcNh7ezuAU3UQWeeGjfB13OkU=",
+ "dev": true,
+ "requires": {
+ "debug": "^3.1.0",
+ "fs-extra": "^4.0.0"
+ }
+ },
"forever-agent": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
"universalify": "^0.1.0"
}
},
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "dev": true
+ },
+ "galactus": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/galactus/-/galactus-0.2.1.tgz",
+ "integrity": "sha1-y+0tIKQMH1Z5o1kI4rlBVzPnjbk=",
+ "dev": true,
+ "requires": {
+ "debug": "^3.1.0",
+ "flora-colossus": "^1.0.0",
+ "fs-extra": "^4.0.0"
+ }
+ },
+ "get-package-info": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/get-package-info/-/get-package-info-1.0.0.tgz",
+ "integrity": "sha1-ZDJ5ZWPigRPNlHTbvQAFKYWkmZw=",
+ "dev": true,
+ "requires": {
+ "bluebird": "^3.1.1",
+ "debug": "^2.2.0",
+ "lodash.get": "^4.0.0",
+ "read-pkg-up": "^2.0.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "dev": true,
+ "requires": {
+ "locate-path": "^2.0.0"
+ }
+ },
+ "load-json-file": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
+ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^2.2.0",
+ "pify": "^2.0.0",
+ "strip-bom": "^3.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
+ "path-type": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
+ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
+ "dev": true,
+ "requires": {
+ "pify": "^2.0.0"
+ }
+ },
+ "read-pkg": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
+ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "^2.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^2.0.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
+ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
+ "dev": true,
+ "requires": {
+ "find-up": "^2.0.0",
+ "read-pkg": "^2.0.0"
+ }
+ },
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
+ }
+ }
+ },
"get-stdin": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
"assert-plus": "^1.0.0"
}
},
+ "glob": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
+ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
"graceful-fs": {
"version": "4.1.15",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
"repeating": "^2.0.0"
}
},
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dev": true,
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
"inherits": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
"integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
"dev": true
},
+ "isbinaryfile": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz",
+ "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==",
+ "dev": true,
+ "requires": {
+ "buffer-alloc": "^1.2.0"
+ }
+ },
"isstream": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
"strip-bom": "^2.0.0"
}
},
+ "locate-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "dev": true,
+ "requires": {
+ "p-locate": "^2.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "lodash.get": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
+ "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=",
+ "dev": true
+ },
"loud-rejection": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
"mime-db": "~1.38.0"
}
},
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
"minimist": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
"integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=",
"dev": true
},
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
+ "dev": true
+ },
+ "p-limit": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
+ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
+ "dev": true,
+ "requires": {
+ "p-try": "^1.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+ "dev": true,
+ "requires": {
+ "p-limit": "^1.1.0"
+ }
+ },
+ "p-try": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
+ "dev": true
+ },
+ "parse-author": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/parse-author/-/parse-author-2.0.0.tgz",
+ "integrity": "sha1-00YL8d3Q367tQtp1QkLmX7aEqB8=",
+ "dev": true,
+ "requires": {
+ "author-regex": "^1.0.0"
+ }
+ },
"parse-json": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
"dev": true
},
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "dev": true
+ },
"path-parse": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
"pinkie": "^2.0.0"
}
},
+ "plist": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.1.tgz",
+ "integrity": "sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ==",
+ "dev": true,
+ "requires": {
+ "base64-js": "^1.2.3",
+ "xmlbuilder": "^9.0.7",
+ "xmldom": "0.1.x"
+ }
+ },
"popper.js": {
"version": "1.14.7",
"resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.14.7.tgz",
"strip-json-comments": "~2.0.1"
}
},
+ "rcedit": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/rcedit/-/rcedit-1.1.1.tgz",
+ "integrity": "sha512-6NjOhOpkvbc/gpMEfk2hpXuWyHfbLFN8as5jx3jf4bhELvouRoYvc8d/W3NVVPwEBF1ICfbpwp1oRm8OJ2WDWw==",
+ "dev": true
+ },
"read-pkg": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
"dev": true
},
+ "sanitize-filename": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.1.tgz",
+ "integrity": "sha1-YS2hyWRz+gLczaktzVtKsWSmdyo=",
+ "dev": true,
+ "requires": {
+ "truncate-utf8-bytes": "^1.0.0"
+ }
+ },
"semver": {
"version": "5.6.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
"integrity": "sha512-mr4MZx8XYMR7Ig/sShKILuhZj8jj89gy2QBMV0eNByOqtKUdkBLoY8SZDOwQmKsbvvFOcdWsUXyuPv6vllHj0g==",
"dev": true
},
+ "tmp": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+ "dev": true,
+ "requires": {
+ "os-tmpdir": "~1.0.2"
+ }
+ },
+ "tmp-promise": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-1.0.5.tgz",
+ "integrity": "sha512-hOabTz9Tp49wCozFwuJe5ISrOqkECm6kzw66XTP23DuzNU7QS/KiZq5LC9Y7QSy8f1rPSLy4bKaViP0OwGI1cA==",
+ "dev": true,
+ "requires": {
+ "bluebird": "^3.5.0",
+ "tmp": "0.0.33"
+ }
+ },
"tough-cookie": {
"version": "2.4.3",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
"integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
"dev": true
},
+ "truncate-utf8-bytes": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz",
+ "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=",
+ "dev": true,
+ "requires": {
+ "utf8-byte-length": "^1.0.1"
+ }
+ },
"tunnel-agent": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
"punycode": "^2.1.0"
}
},
+ "utf8-byte-length": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz",
+ "integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=",
+ "dev": true
+ },
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"extsprintf": "^1.2.0"
}
},
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
+ },
+ "xmlbuilder": {
+ "version": "9.0.7",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz",
+ "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=",
+ "dev": true
+ },
+ "xmldom": {
+ "version": "0.1.27",
+ "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz",
+ "integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk=",
+ "dev": true
+ },
"xtend": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz",
"object-keys": "~0.4.0"
}
},
+ "yargs-parser": {
+ "version": "13.0.0",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.0.0.tgz",
+ "integrity": "sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true
+ }
+ }
+ },
"yauzl": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz",
"main": "main.js",
"scripts": {
"start": "electron .",
- "test": "echo \"Error: no test specified\" && exit 1"
+ "test": "echo \"Error: no test specified\" && exit 1",
+ "package-win": "electron-packager . cashbox --overwrite --asar --platform=win32 --arch=x64 --out=release-builds --version-string.CompanyName=DKS --version-string.FileDescription=DKS --version-string.ProductName=CashBox --icon=img/cashbox_KhG_icon.ico",
+"build": "npm run pack:osx && npm run pack:win32 && npm run pack:win64"
},
"repository": {
"type": "git",
],
"author": "Kilian Saffran",
"license": "MIT",
+ "dependencies": {
+ "@fortawesome/fontawesome-free": "^5.7.2",
+ "bootstrap": "^4.3.1",
+ "bootstrap-table": "^1.13.4",
+ "jquery": "^3.3.1",
+ "popper.js": "^1.14.7",
+ "tinymce": "^5.0.1",
+ "tinymce-i18n": "^19.2.11"
+ },
"devDependencies": {
"@fortawesome/fontawesome-free": "^5.7.2",
"bootstrap": "^4.3.1",
"bootstrap-table": "^1.13.4",
"electron": "^4.0.5",
+ "electron-packager": "^13.1.1",
"jquery": "^3.3.1",
"popper.js": "^1.14.7",
"tinymce": "^5.0.1",