commit 161e76bb5a94109f709e7f78fa359e14393a3068 Author: Simon Zeyer Date: Mon Jan 8 16:06:47 2024 +0000 commit message diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..52982ba --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +*.html +.venv +.devcontainer +.vscode +*.image +__pycache__ +.env \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..851cedc --- /dev/null +++ b/Dockerfile @@ -0,0 +1,64 @@ +FROM python:3.10-bullseye + +ENV username= +ENV password= +ENV server="exchange.sankt-wendel.de" +ENV primary_smtp_address= +ENV filter_from="leitstelle@zrf-saar.de" +ENV webhooks="" +ENV alarminator_api="" +ENV alarminator_token="" +ENV alarmfax_parser_id="" +ENV alarminator_zvies_use_PEALGRP="False" +ENV print_num=0 +ENV printer="DEFAULT" +ENV REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt + + +COPY *.deb / +RUN apt-get --yes --force-yes update +RUN dpkg -i *.deb || exit 0 +RUN apt-get --yes install -f +RUN apt-get --yes --force-yes install ca-certificates cups cups-filters libcups2-dev \ + sudo \ + whois \ + usbutils \ + cups \ + cups-client \ + cups-bsd \ + cups-filters \ + foomatic-db-compressed-ppds \ + printer-driver-all \ + openprinting-ppds \ + hpijs-ppds \ + hp-ppd \ + hplip \ + smbclient \ + printer-driver-cups-pdf \ +# cndrvcups-common \ +# cndrvcups-ufr2-uk \ +#&& dpkg -i /*.deb || exit 0 \ +&& apt-get clean \ +&& rm -rf /var/lib/apt/lists/* \ +&& rm -rf /*.deb + +WORKDIR /usr/src/app +EXPOSE 631 +# Add user and disable sudo password checking +RUN useradd \ + --groups=sudo,lp,lpadmin \ + --create-home \ + --home-dir=/home/print \ + --shell=/bin/bash \ + --password=$(mkpasswd print) \ + print \ +&& sed -i '/%sudo[[:space:]]/ s/ALL[[:space:]]*$/NOPASSWD:ALL/' /etc/sudoers + +COPY requirements.txt ./ +RUN pip install --no-cache-dir -r requirements.txt + +COPY ./app . +COPY *.crt /usr/local/share/ca-certificates/ +RUN update-ca-certificates + +CMD [ "sh","-c","/etc/init.d/cups start && python3 /usr/src/app/exchange_connect.py" ] diff --git a/SectigoRSADomainValidationSecureServerCA.crt b/SectigoRSADomainValidationSecureServerCA.crt new file mode 100644 index 0000000..5a37fad --- /dev/null +++ b/SectigoRSADomainValidationSecureServerCA.crt @@ -0,0 +1,35 @@ +-----BEGIN CERTIFICATE----- +MIIGEzCCA/ugAwIBAgIQfVtRJrR2uhHbdBYLvFMNpzANBgkqhkiG9w0BAQwFADCB +iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl +cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV +BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTgx +MTAyMDAwMDAwWhcNMzAxMjMxMjM1OTU5WjCBjzELMAkGA1UEBhMCR0IxGzAZBgNV +BAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEYMBYGA1UE +ChMPU2VjdGlnbyBMaW1pdGVkMTcwNQYDVQQDEy5TZWN0aWdvIFJTQSBEb21haW4g +VmFsaWRhdGlvbiBTZWN1cmUgU2VydmVyIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEA1nMz1tc8INAA0hdFuNY+B6I/x0HuMjDJsGz99J/LEpgPLT+N +TQEMgg8Xf2Iu6bhIefsWg06t1zIlk7cHv7lQP6lMw0Aq6Tn/2YHKHxYyQdqAJrkj +eocgHuP/IJo8lURvh3UGkEC0MpMWCRAIIz7S3YcPb11RFGoKacVPAXJpz9OTTG0E +oKMbgn6xmrntxZ7FN3ifmgg0+1YuWMQJDgZkW7w33PGfKGioVrCSo1yfu4iYCBsk +Haswha6vsC6eep3BwEIc4gLw6uBK0u+QDrTBQBbwb4VCSmT3pDCg/r8uoydajotY +uK3DGReEY+1vVv2Dy2A0xHS+5p3b4eTlygxfFQIDAQABo4IBbjCCAWowHwYDVR0j +BBgwFoAUU3m/WqorSs9UgOHYm8Cd8rIDZsswHQYDVR0OBBYEFI2MXsRUrYrhd+mb ++ZsF4bgBjWHhMA4GA1UdDwEB/wQEAwIBhjASBgNVHRMBAf8ECDAGAQH/AgEAMB0G +A1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAbBgNVHSAEFDASMAYGBFUdIAAw +CAYGZ4EMAQIBMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwudXNlcnRydXN0 +LmNvbS9VU0VSVHJ1c3RSU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDB2Bggr +BgEFBQcBAQRqMGgwPwYIKwYBBQUHMAKGM2h0dHA6Ly9jcnQudXNlcnRydXN0LmNv +bS9VU0VSVHJ1c3RSU0FBZGRUcnVzdENBLmNydDAlBggrBgEFBQcwAYYZaHR0cDov +L29jc3AudXNlcnRydXN0LmNvbTANBgkqhkiG9w0BAQwFAAOCAgEAMr9hvQ5Iw0/H +ukdN+Jx4GQHcEx2Ab/zDcLRSmjEzmldS+zGea6TvVKqJjUAXaPgREHzSyrHxVYbH +7rM2kYb2OVG/Rr8PoLq0935JxCo2F57kaDl6r5ROVm+yezu/Coa9zcV3HAO4OLGi +H19+24rcRki2aArPsrW04jTkZ6k4Zgle0rj8nSg6F0AnwnJOKf0hPHzPE/uWLMUx +RP0T7dWbqWlod3zu4f+k+TY4CFM5ooQ0nBnzvg6s1SQ36yOoeNDT5++SR2RiOSLv +xvcRviKFxmZEJCaOEDKNyJOuB56DPi/Z+fVGjmO+wea03KbNIaiGCpXZLoUmGv38 +sbZXQm2V0TP2ORQGgkE49Y9Y3IBbpNV9lXj9p5v//cWoaasm56ekBYdbqbe4oyAL +l6lFhd2zi+WJN44pDfwGF/Y4QA5C5BIG+3vzxhFoYt/jmPQT2BVPi7Fp2RBgvGQq +6jG35LWjOhSbJuMLe/0CjraZwTiXWTb2qHSihrZe68Zk6s+go/lunrotEbaGmAhY +LcmsJWTyXnW0OMGuf1pGg+pRyrbxmRE1a6Vqe8YAsOf4vmSyrcjC8azjUeqkk+B5 +yOGBQMkKW+ESPMFgKuOXwIlCypTPRpgSabuY0MLTDXJLR27lk8QyKGOHQ+SwMj4K +00u/I5sUKUErmgQfky3xxzlIPK1aEn8= +-----END CERTIFICATE----- diff --git a/SectigoRSAOrganizationValidationSecureServerCA.crt b/SectigoRSAOrganizationValidationSecureServerCA.crt new file mode 100644 index 0000000..18427ed --- /dev/null +++ b/SectigoRSAOrganizationValidationSecureServerCA.crt @@ -0,0 +1,35 @@ +-----BEGIN CERTIFICATE----- +MIIGGTCCBAGgAwIBAgIQE31TnKp8MamkM3AZaIR6jTANBgkqhkiG9w0BAQwFADCB +iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl +cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV +BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTgx +MTAyMDAwMDAwWhcNMzAxMjMxMjM1OTU5WjCBlTELMAkGA1UEBhMCR0IxGzAZBgNV +BAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEYMBYGA1UE +ChMPU2VjdGlnbyBMaW1pdGVkMT0wOwYDVQQDEzRTZWN0aWdvIFJTQSBPcmdhbml6 +YXRpb24gVmFsaWRhdGlvbiBTZWN1cmUgU2VydmVyIENBMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAnJMCRkVKUkiS/FeN+S3qU76zLNXYqKXsW2kDwB0Q +9lkz3v4HSKjojHpnSvH1jcM3ZtAykffEnQRgxLVK4oOLp64m1F06XvjRFnG7ir1x +on3IzqJgJLBSoDpFUd54k2xiYPHkVpy3O/c8Vdjf1XoxfDV/ElFw4Sy+BKzL+k/h +fGVqwECn2XylY4QZ4ffK76q06Fha2ZnjJt+OErK43DOyNtoUHZZYQkBuCyKFHFEi +rsTIBkVtkuZntxkj5Ng2a4XQf8dS48+wdQHgibSov4o2TqPgbOuEQc6lL0giE5dQ +YkUeCaXMn2xXcEAG2yDoG9bzk4unMp63RBUJ16/9fAEc2wIDAQABo4IBbjCCAWow +HwYDVR0jBBgwFoAUU3m/WqorSs9UgOHYm8Cd8rIDZsswHQYDVR0OBBYEFBfZ1iUn +Z/kxwklD2TA2RIxsqU/rMA4GA1UdDwEB/wQEAwIBhjASBgNVHRMBAf8ECDAGAQH/ +AgEAMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAbBgNVHSAEFDASMAYG +BFUdIAAwCAYGZ4EMAQICMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwudXNl +cnRydXN0LmNvbS9VU0VSVHJ1c3RSU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNy +bDB2BggrBgEFBQcBAQRqMGgwPwYIKwYBBQUHMAKGM2h0dHA6Ly9jcnQudXNlcnRy +dXN0LmNvbS9VU0VSVHJ1c3RSU0FBZGRUcnVzdENBLmNydDAlBggrBgEFBQcwAYYZ +aHR0cDovL29jc3AudXNlcnRydXN0LmNvbTANBgkqhkiG9w0BAQwFAAOCAgEAThNA +lsnD5m5bwOO69Bfhrgkfyb/LDCUW8nNTs3Yat6tIBtbNAHwgRUNFbBZaGxNh10m6 +pAKkrOjOzi3JKnSj3N6uq9BoNviRrzwB93fVC8+Xq+uH5xWo+jBaYXEgscBDxLmP +bYox6xU2JPti1Qucj+lmveZhUZeTth2HvbC1bP6mESkGYTQxMD0gJ3NR0N6Fg9N3 +OSBGltqnxloWJ4Wyz04PToxcvr44APhL+XJ71PJ616IphdAEutNCLFGIUi7RPSRn +R+xVzBv0yjTqJsHe3cQhifa6ezIejpZehEU4z4CqN2mLYBd0FUiRnG3wTqN3yhsc +SPr5z0noX0+FCuKPkBurcEya67emP7SsXaRfz+bYipaQ908mgWB2XQ8kd5GzKjGf +FlqyXYwcKapInI5v03hAcNt37N3j0VcFcC3mSZiIBYRiBXBWdoY5TtMibx3+bfEO +s2LEPMvAhblhHrrhFYBZlAyuBbuMf1a+HNJav5fyakywxnB2sJCNwQs2uRHY1ihc +6k/+JLcYCpsM0MF8XPtpvcyiTcaQvKZN8rG61ppnW5YCUtCC+cQKXA0o4D/I+pWV +idWkvklsQLI+qGu41SWyxP7x09fn1txDAXYw+zuLXfdKiXyaNb78yvBXAfCNP6CH +MntHWpdLgtJmwsQt6j8k9Kf5qLnjatkYYaA7jBU= +-----END CERTIFICATE----- diff --git a/app/exchange_connect.py b/app/exchange_connect.py new file mode 100644 index 0000000..4d748f4 --- /dev/null +++ b/app/exchange_connect.py @@ -0,0 +1,123 @@ + +from threading import Thread +from exchangelib import Credentials, Configuration, Account, DELEGATE, FaultTolerance, Folder, Message, ExtendedProperty +import exchangelib.errors +import logging, time, os +from securecad_parser import parse_securecad_message +import os +import datetime +from hooks import webhook, alarminator_api, cups_print +class alarmfax_parser_verarbeitet(ExtendedProperty): + property_set_id = "64901230-f5f2-4b07-a032-58fb3970a09e" + property_name = "vom Alarmfax Parser verarbeitet" + property_type = "Boolean" + +class alarmfax_parser_id(ExtendedProperty): + property_set_id = "0c595b56-c79d-4ecb-9e9b-c94fcef86816" + property_name = "ID des Alarmfax Parser" + property_type = "String" + +Message.register("alarmfax_parser_verarbeitet", alarmfax_parser_verarbeitet) +Message.register("alarmfax_parser_id", alarmfax_parser_id) +#print([f.name for f in Message.FIELDS if f.is_searchable]) + +threads = {} + +format = "%(asctime)s|%(threadName)s: %(message)s" +logging.basicConfig(format=format, level=logging.INFO, + datefmt="%Y-%m-%d %H:%M:%S") + +def eventHandler(ELEMENT_NAME, item_id, item_changekey): + if (ELEMENT_NAME == 'ModifiedEvent' and IS_DEV) or ELEMENT_NAME == 'NewMailEvent' or ELEMENT_NAME == 'SearchFolderEvent': + logging.info(ELEMENT_NAME + " - get Mail") + m: Message = a.inbox.get(id=item_id, changekey=item_changekey) + if m.alarmfax_parser_verarbeitet and parser_id in m.alarmfax_parser_id: + logging.info("Mail {} bereits verarbeitet.. ignoriere".format(m.id)) + if not IS_DEV: + return + else: + m.alarmfax_parser_verarbeitet = True + m.alarmfax_parser_id = m.alarmfax_parser_id + parser_id + m.save(update_fields=["alarmfax_parser_verarbeitet","alarmfax_parser_id"]) + logging.info("got Mail {} von {}".format(m.subject, m.sender.email_address)) + if m.sender.email_address in filter_from: + parsed_body = parse_securecad_message(m.body) + logging.debug(parsed_body) + if parsed_body != None: + if 'ALARMDEPESCHE' in parsed_body: + logging.info("Alarm für: {}".format(parsed_body['ALARMDEPESCHE'])) + webhook(parsed_body) + alarminator_api(parsed_body) + cups_print(parsed_body,m.body) + pass + +def folder_event_subscriber(folder: Folder): + logging.info('folder_event_subscriber startet for Folder: {}'.format(folder.name)) + while True: + # filtern des ordners nach mails der letzten 24h, die nicht verarbeitet wurden + now = datetime.datetime.now(a.default_timezone) + folder.all() + folder.all() + filtered_items = folder.filter( + datetime_received__range=(now - datetime.timedelta(days=1), now + datetime.timedelta(days=1)) + ).exclude( + alarmfax_parser_verarbeitet=True, + alarmfax_parser_id__contains=parser_id + ) + cnt = filtered_items.count() + if cnt > 0: + logging.info("{} Mails nicht verarbeitet in den letzten 2 Tagen in ordner: {}".format(cnt, folder.name)) + filtered_items = filtered_items.values("id", "changekey") + for m in filtered_items: + t = Thread(target=eventHandler, args=('SearchFolderEvent',m["id"],m["changekey"],),name="eventHandler: SearchFolderEvent ({})".format(m["id"])) + t.start() + # aktives warten auf streaming_events. maximal eine minute lang, dann wird nochmal der ordner durchsucht, falls mails angekommen sind während eines timeout/cooldown. + subscription_id = folder.subscribe_to_streaming() + for notification in folder.get_streaming_events(subscription_id, connection_timeout=1): + for event in notification.events: + if event.item_id != None: + t = Thread(target=eventHandler, args=(event.ELEMENT_NAME,event.item_id.id,event.item_id.changekey,),name="eventHandler: {} ({})".format(event.ELEMENT_NAME, event.item_id.id)) + t.start() + +if __name__ == "__main__": + try: + username = os.environ.get('username') + password = os.environ.get('password') + server = os.environ.get('server') + folders = os.environ.get('folders',"") + parser_id = os.environ.get('alarmfax_parser_id',"") + primary_smtp_address = os.environ.get('primary_smtp_address') + filter_from = os.environ.get('filter_from').split(";") if os.environ.get('filter_from') else [] + IS_DEV = True if os.environ.get('IS_DEV') and os.environ.get('IS_DEV') == "True" else False + if IS_DEV: + logging.getLogger().setLevel(logging.DEBUG) + credentials = Credentials(username=username, password=password) + config = Configuration(server=server, credentials=credentials,retry_policy=FaultTolerance(max_wait=5), max_connections=10) + a = Account(primary_smtp_address=primary_smtp_address, config=config, autodiscover=False, access_type=DELEGATE) + + folders_to_subscribe = [] + for f in folders.split(";"): + if f == "": + folders_to_subscribe.append(a.inbox) + else: + folders_to_subscribe.append(a.inbox / f) + + while True: + for f in folders_to_subscribe: + if not f.name in threads or not threads[f.name].is_alive(): + logging.info("folder_event_subscriber for folder \"{}\" not alive, starting".format(f.name)) + t = Thread(target=folder_event_subscriber, args=(f,), daemon=True, name="folder_event_subscriber {}".format(f.name)) + threads[f.name] = t + t.start() + time.sleep(1) + except exchangelib.errors.RateLimitError as e: + logging.error('',exc_info=e) + if e.status_code == 401: + webhook({"ERROR":{ + "status_code": e.status_code, + "url": e.url + }}) + time.sleep(60*60*12) + else: + logging.info("rate limit!!!! sleep 60s") + time.sleep(60) diff --git a/app/hooks.py b/app/hooks.py new file mode 100644 index 0000000..0a92043 --- /dev/null +++ b/app/hooks.py @@ -0,0 +1,110 @@ +import os +import logging +import requests +import cups +from weasyprint import HTML +from requests.adapters import Retry +import uuid + +retries = Retry(total=5, + backoff_factor=0.1, + status_forcelist=[ 500, 502, 503, 504 ]) + +def webhook(parsed_body: dict): + try: + webhooks = os.environ.get('webhooks').split(";") if os.environ.get('webhooks') else [] + for webhook in webhooks: + logging.info("POST zu {}".format(webhook)) + s = requests.Session() + s.mount('https://', requests.adapters.HTTPAdapter(max_retries=retries)) + s.post(webhook,json=parsed_body) + except Exception as e: + logging.error("alarminator_api", e) + +def alarminator_api(parsed_body: dict): + try: + alarminator_api = os.environ.get('alarminator_api') if os.environ.get('alarminator_api') else "" + alarminator_token = os.environ.get('alarminator_token') if os.environ.get('alarminator_token') else "" + alarminator_zvies_use_PEALGRP = True if os.environ.get('alarminator_zvies_use_PEALGRP') == 'True' else False + if alarminator_api != "" and alarminator_token != "": + if 'ALARMDEPESCHE' in parsed_body: # sendAlarm triggern + logging.info("GET zu {}/operations/sendAlarm".format(alarminator_api)) + s = requests.Session() + s.mount('https://', requests.adapters.HTTPAdapter(max_retries=retries)) + #&object=Kirmesplatz &district=Oberlinxweilerstrasse &subject=THK (TH klein &street=Oberlinxweilerstrasse &ils=\"secur.CAD\" &connector=mailParser&token=ea2110e1-11b9-421f-a53d-96cc0fc82c31 + req_string = "" + req_string +="?token={}".format(alarminator_token) + if 'Einsatzbeginn(Soll)' in parsed_body: + req_string +="&alarmdate={}".format(parsed_body['Einsatzbeginn(Soll)'].split(" ")[0]) + req_string +="&alarmtime={}".format(parsed_body['Einsatzbeginn(Soll)'].split(" ")[1]) + if 'Auftragsnummer' in parsed_body: + req_string +="&operationnumber={}".format(parsed_body['Auftragsnummer']) + if 'Sachverhalt' in parsed_body: + req_string +="&message={}".format(parsed_body['Sachverhalt']) + if 'Einsatzziel' in parsed_body: + if 'Stadt' in parsed_body['Einsatzziel']: + req_string +="&community={}".format(parsed_body['Einsatzziel']['Stadt']) + if 'PLZ / Ort' in parsed_body['Einsatzziel']: + req_string +="&location={}".format(parsed_body['Einsatzziel']['PLZ / Ort']) + if 'Objekt' in parsed_body['Einsatzziel']: + req_string +="&object={}".format(parsed_body['Einsatzziel']['Objekt']) + if 'Strasse' in parsed_body['Einsatzziel']: + req_string +="&street={}".format(parsed_body['Einsatzziel']['Strasse']) + (("\n"+parsed_body['Einsatzziel']['Info ']) if 'Info ' in parsed_body['Einsatzziel'] else "" ) + if 'Strasse / Hs.-Nr.' in parsed_body['Einsatzziel']: + req_string +="&street={}".format(parsed_body['Einsatzziel']['Strasse / Hs.-Nr.'] + (("\n"+parsed_body['Einsatzziel']['Info ']) if 'Info ' in parsed_body['Einsatzziel'] else "" )) + + if 'Einsatzmittelliste' in parsed_body: + gear = [] + for r in parsed_body['Einsatzmittelliste']: + if r['Typ'] != 'PEALGRP': + gear.append(r['Ressourcen']) + req_string +="&gear={}".format(';'.join(gear)) + + #req_string +="&district={}".format('district') + #req_string +="&floor={}".format('floor') + #req_string +="§ion={}".format('section') + req_string +="&keywordRaw={}".format(parsed_body['Einsatzstichwort']) + #req_string +="&keywordId={}".format('keywordId') + req_string +="&keywordCategory={}".format(parsed_body['Einsatzstichwort'].split("(")[0]) + req_string +="&keywordName={}".format(parsed_body['Einsatzstichwort'].split("(")[1].split(")")[0]) + if alarminator_zvies_use_PEALGRP: + if 'Einsatzmittelliste' in parsed_body: + zveis = [] + for r in parsed_body['Einsatzmittelliste']: + if r['Typ'] == 'PEALGRP': + zveis.append(r['Ressourcen']) + req_string +="&zveis={}".format(';'.join(zveis)) + else: + req_string +="&zveis={}".format(parsed_body['ALARMDEPESCHE']) + # req_string +="&gkx={}".format() if False + # req_string +="&gky={}".format() if False + # req_string +="&lat={}".format() if False + # req_string +="&lon={}".format() if False + subject = "" + if 'Notfallgeschehen' in parsed_body: + subject = parsed_body['Notfallgeschehen'] + "\n" + if 'Notfallgeschehen' in parsed_body: + subject = parsed_body['Notfallgeschehen'] + "\n" + req_string +="&subject={}".format(subject) + req_string +="&ils={}".format("ILS Saar") + req_string +="&connector={}".format("MailParser") + s.get(alarminator_api+"/operations/sendAlarm/"+req_string) + except Exception as e: + logging.error("alarminator_api", e) + +def cups_print(parsed_body: dict, body: str): + fname = "/tmp/{}.pdf".format(uuid.uuid4()) + try: + conn = cups.Connection () + printer = os.environ.get('printer',"DEFAULT") + print_num = int(os.environ.get('print_num',0)) + if 'ALARMDEPESCHE' in parsed_body: + with open(fname,"wb") as f: + f.write(HTML(string=body, base_url="").write_pdf()) + for i in range(0, print_num): + conn.printFile (printer, fname, "Alarmfax", {}) + os.remove(fname) + except Exception as e: + if os.path.exists(fname): + os.remove(fname) + logging.error("cups_print", e) \ No newline at end of file diff --git a/app/securecad_parser.py b/app/securecad_parser.py new file mode 100644 index 0000000..8efc603 --- /dev/null +++ b/app/securecad_parser.py @@ -0,0 +1,95 @@ +from glob import glob +import pandas as pd +from numpy import nan + +tt_list_alarmdepesche = [] +tt_list_infodepesche = [] +tt_list_einsatzprotokoll = [] +def parse_securecad_message(body_html: str): + body_html = body_html.replace(u'\xa0', u' ') + if 'ALARMDEPESCHE' in body_html: + t_list = {} + tables = pd.read_html(body_html) # Returns list of all tables on page + t_count = 0 + for t in tables: + t_count = t_count + 1 + table_dict = t.to_dict('index') + if t_count == 1 and 'ALARMDEPESCHE' in table_dict[0][0]: + k:str + v:str + k,v = table_dict[0][0].split('>>') + t_list[k.strip()] = v.strip() + elif t_count == 2: + continue + elif t_count == 3: + for r in table_dict: + if table_dict[r][0] is not nan: + t_list[table_dict[r][0].strip(' :')] = table_dict[r][1] + elif t_count > 3 and table_dict[0] is not nan and table_dict[0][0] == 'Einsatzziel' and 'Einsatzziel' not in t_list: + t_list['Einsatzziel'] = {} + for r in table_dict: + if table_dict[r][0] is not nan and table_dict[r][0] != 'Einsatzziel': + t_list['Einsatzziel'][table_dict[r][0].strip(' :')] = table_dict[r][1] + elif t_count > 3 and table_dict[0] is not nan and table_dict[0][0] == 'Einsatzziel' and 'Einsatzziel' in t_list: + continue + elif t_count > 3 and table_dict[0] is not nan and table_dict[0][0] == 'Zusatztext zum Ort' and 'Zusatztext zum Ort' not in t_list: + t_list['Zusatztext zum Ort'] = [] + for r in table_dict: + if table_dict[r][0] is not nan and table_dict[r][0] != 'Zusatztext zum Ort': + t_list['Zusatztext zum Ort'].append(table_dict[r][1]) + elif t_count > 3 and table_dict[0] is not nan and table_dict[0][0] == 'Zusatztext zum Ort' and 'Zusatztext zum Ort' in t_list: + continue + elif t_count > 3 and table_dict[0] is not nan and table_dict[0][0] == 'Zusatztext zum Objekt' and 'Zusatztext zum Objekt' not in t_list: + t_list['Zusatztext zum Objekt'] = [] + for r in table_dict: + if table_dict[r][0] is not nan and table_dict[r][0] != 'Zusatztext zum Objekt': + t_list['Zusatztext zum Objekt'].append(table_dict[r][1]) + elif t_count > 3 and table_dict[0] is not nan and table_dict[0][0] == 'Zusatztext zum Objekt' and 'Zusatztext zum Objekt' in t_list: + continue + elif t_count > 3 and table_dict[0] is not nan and table_dict[0][0] == 'Einsatzmittelliste': + # es folgt die Einsatzmittelliste + continue + elif t_count > 3 and table_dict[0] is not nan and table_dict[0][0] == 'Ressourcen'and table_dict[0][1] == 'Typ' and table_dict[0][2] == 'Organisation': + t_list['Einsatzmittelliste'] = [] + for r in table_dict: + if table_dict[r][0] != "Ressourcen": + t_list['Einsatzmittelliste'].append({ + 'Ressourcen': table_dict[r][0] if table_dict[r][0] is not nan else "", + 'Typ': table_dict[r][1] if table_dict[r][1] is not nan else "", + 'Organisation': table_dict[r][2] if table_dict[r][2] is not nan else "", + 'Status': table_dict[r][3] if table_dict[r][3] is not nan else "", + 'Alarm': table_dict[r][4] if table_dict[r][4] is not nan else "", + 'aus': table_dict[r][5] if table_dict[r][5] is not nan else "", + 'an': table_dict[r][6] if table_dict[r][6] is not nan else "", + 'Auftrag': table_dict[r][7] if table_dict[r][7] is not nan else "", + }) + else: + #print(table_dict) + pass + + + #print(t_list) + #tt_list_alarmdepesche.append(t_list) + # bereinigung + if 'Zusatztext zum Objekt' in t_list: + if t_list['Zusatztext zum Objekt'].__len__() == 1 and t_list['Zusatztext zum Objekt'][0].strip() == ".": + del t_list['Zusatztext zum Objekt'] + else: + t_list['Zusatztext zum Objekt'] = "\n".join(t_list['Zusatztext zum Objekt']) + if 'Zusatztext zum Ort' in t_list: + if t_list['Zusatztext zum Ort'].__len__() == 1 and t_list['Zusatztext zum Ort'][0].strip() == ".": + del t_list['Zusatztext zum Ort'] + else: + t_list['Zusatztext zum Ort'] = "\n".join(t_list['Zusatztext zum Ort']) + t_list["__HTML_BODY"] = body_html + return t_list + else: + pass + pass + +if __name__ == "__main__": + for i in glob('*.html'): + with open(i,'r') as f: + parse_securecad_message(f.read()) + + pass \ No newline at end of file diff --git a/cnrdrvcups-ufr2-uk_5.70-1.11_amd64.deb b/cnrdrvcups-ufr2-uk_5.70-1.11_amd64.deb new file mode 100644 index 0000000..6fedb9c Binary files /dev/null and b/cnrdrvcups-ufr2-uk_5.70-1.11_amd64.deb differ diff --git a/cups/cupsd.conf b/cups/cupsd.conf new file mode 100644 index 0000000..e69de29 diff --git a/cups/ppd/DEFAULT.ppd b/cups/ppd/DEFAULT.ppd new file mode 100644 index 0000000..a01dedd --- /dev/null +++ b/cups/ppd/DEFAULT.ppd @@ -0,0 +1,1162 @@ +*PPD-Adobe: "4.3" +*% +*% Copyright CANON INC. 2010 +*% CUPS printer driver for Canon printer devices +*% +*% This program is free software; you can redistribute it and/or modify +*% it under the terms of the GNU General Public License as published by +*% the Free Software Foundation; either version 2 of the License, or +*% (at your option) any later version. +*% +*% This program is distributed in the hope that it will be useful, +*% but WITHOUT ANY WARRANTY; without even the implied warranty of +*% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +*% GNU General Public License for more details. +*% +*% You should have received a copy of the GNU General Public License +*% along with this program; if not, write to the Free Software +*% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*% +*FormatVersion: "4.3" +*FileVersion: "5.0" +*LanguageVersion: English +*LanguageEncoding: ISOLatin1 +*PCFileName: "CNM4500ZK.PPD" +*Manufacturer: "Canon" +*Product: "(mf4500 series)" +*cupsVersion: 1.1 +*cupsManualCopies: False +*cupsModelNumber: 1033 +*cupsFilter: "application/vnd.cups-raster 0 rastertoufr2" +*ModelName: "Canon MF4500 Series UFRII LT" +*ShortNickName: "MF4500 Series" +*NickName: "Canon MF4500 Series UFRII LT" +*PSVersion: "(3010.000) 550" +*PSVersion: "(3010.000) 651" +*LanguageLevel: "3" +*ColorDevice: False +*DefaultColorSpace: Gray +*FileSystem: False +*Throughput: "25" +*LandscapeOrientation: Plus90 +*VariablePaperSize: False +*TTRasterizer: Type42 +*%CNGPLPLIBNAMER: "uictlufr2r" +*%CNGPLPLIBNAMERVER: "1.0.0" + +*%CNPrintLang: UFR2 + +*OpenUI *Resolution/Resolution : PickOne +*DefaultResolution: 600 +*Resolution 600/600 dpi: "<>setpagedevice" +*CloseUI: *Resolution +*OpenUI *CNDraftMode/Toner Save: PickOne +*DefaultCNDraftMode: False +*CNDraftMode True/ON: "<< >>setpagedevice" +*CNDraftMode False/OFF: "<< >>setpagedevice" +*CloseUI: *CNDraftMode + +*OpenUI *MediaType/Media Type : PickOne +*DefaultMediaType: PlainPaper +*MediaType PlainPaper/Plain Paper: "<>setpagedevice" +*MediaType PlainPaperL/Plain Paper L: "<>setpagedevice" +*MediaType RECYCLED/Recycled Paper: "<>setpagedevice" +*MediaType COLOR/Color Paper: "<>setpagedevice" +*MediaType HEAVY1/Heavy Paper 1: "<>setpagedevice" +*MediaType HEAVY2/Heavy Paper2: "<>setpagedevice" +*MediaType OHP/OHP: "<>setpagedevice" +*MediaType LABELS/Labels: "<>setpagedevice" +*MediaType ENVELOPE/Envelope: "<>setpagedevice" +*MediaType ROUGH1/Rough Paper 1: "<>setpagedevice" +*MediaType ROUGH2/Rough Paper 2: "<>setpagedevice" +*MediaType ROUGH3/Rough Paper 3: "<>setpagedevice" +*CloseUI: *MediaType + +*OpenUI *InputSlot/Paper Source: PickOne +*DefaultInputSlot: Auto +*InputSlot Auto/Auto : "" +*CloseUI: *InputSlot + +*OpenUI *OutputBin/Paper Destination: PickOne +*DefaultOutputBin: Auto +*OutputBin Auto/Auto : "<< >>setpagedevice" +*CloseUI: *OutputBin + +*OpenUI *CNSpecialPrintMode/Special Print Adjustment: PickOne +*DefaultCNSpecialPrintMode: Mode2 +*CNSpecialPrintMode False/Off: "<< >>setpagedevice" +*CNSpecialPrintMode Mode1/Mode 1: "<< >>setpagedevice" +*CNSpecialPrintMode Mode2/Mode 2: "<< >>setpagedevice" +*CNSpecialPrintMode Mode3/Mode 3: "<< >>setpagedevice" +*CNSpecialPrintMode Mode4/Mode 4: "<< >>setpagedevice" +*CloseUI: *CNSpecialPrintMode + +*OpenUI *Duplex/Duplex: PickOne +*DefaultDuplex: None +*Duplex None/OFF: "<>setpagedevice" +*Duplex DuplexNoTumble/ON (Long-edged Binding): "<>setpagedevice" +*Duplex DuplexTumble/ON (Short-edged Binding): "<>setpagedevice" +*CloseUI: *Duplex + +*OpenUI *BindEdge/BindingEdge: PickOne +*DefaultBindEdge: Left +*BindEdge Left/Left: "<< >>setpagedevice" +*BindEdge Top/Top: "<< >>setpagedevice" +*CloseUI: *BindEdge + +*OpenUI *Collate/Collate: PickOne +*DefaultCollate: Group +*Collate Group/Group: "<< >>setpagedevice" +*CloseUI: *Collate + +*OpenUI *CNHalftone/Halftones : PickOne +*DefaultCNHalftone: Gradation +*CNHalftone Resolution/Resolution: "<< >>setpagedevice" +*CNHalftone Gradation/Gradation: "<< >>setpagedevice" +*CNHalftone ColorTone/ColorTone: "<< >>setpagedevice" +*CloseUI: *CNHalftone + +*OpenUI *PageSize/Page Size: PickOne +*DefaultPageSize: A4 +*PageSize Letter: "<>setpagedevice" +*PageSize Legal: "<>setpagedevice" +*PageSize Statement: "<>setpagedevice" +*PageSize Executive: "<>setpagedevice" +*PageSize A5: "<>setpagedevice" +*PageSize B5: "<>setpagedevice" +*PageSize A4: "<>setpagedevice" +*PageSize Monarch: "<>setpagedevice" +*PageSize Com10: "<>setpagedevice" +*PageSize dl_envelope: "<>setpagedevice" +*PageSize Envelope_C5: "<>setpagedevice" +*PageSize Envelope_B5: "<>setpagedevice" +*PageSize Foolscap: "<>setpagedevice" +*PageSize Index_3x5: "<>setpagedevice" +*PageSize 16K: "<>setpagedevice" +*CloseUI: *PageSize + +*OpenUI *PageRegion: PickOne +*DefaultPageRegion: A4 +*PageRegion Letter: "<>setpagedevice" +*PageRegion Legal: "<>setpagedevice" +*PageRegion Statement: "<>setpagedevice" +*PageRegion Executive: "<>setpagedevice" +*PageRegion A5: "<>setpagedevice" +*PageRegion B5: "<>setpagedevice" +*PageRegion A4: "<>setpagedevice" +*PageRegion Monarch: "<>setpagedevice" +*PageRegion Com10: "<>setpagedevice" +*PageRegion dl_envelope: "<>setpagedevice" +*PageRegion Envelope_C5: "<>setpagedevice" +*PageRegion Envelope_B5: "<>setpagedevice" +*PageRegion Foolscap: "<>setpagedevice" +*PageRegion Index_3x5: "<>setpagedevice" +*PageRegion 16K: "<>setpagedevice" +*CloseUI: *PageRegion + +*DefaultImageableArea: A4 +*ImageableArea Letter: "14.173 14.173 597.827 777.827" +*ImageableArea Legal: "14.173 14.173 597.827 993.827" +*ImageableArea Statement: "14.173 14.173 381.827 597.827" +*ImageableArea Executive: "14.173 14.173 507.827 741.827" +*ImageableArea A5: "14.173 14.173 405.327 581.127" +*ImageableArea B5: "14.173 14.173 501.727 714.327" +*ImageableArea A4: "14.173 14.173 581.127 827.727" +*ImageableArea Monarch: "28.346 28.346 250.654 511.654" +*ImageableArea Com10: "28.346 28.346 268.654 655.654" +*ImageableArea dl_envelope: "28.346 28.346 283.454 595.254" +*ImageableArea Envelope_C5: "28.346 28.346 430.854 620.754" +*ImageableArea Envelope_B5: "28.346 28.346 470.454 680.354" +*ImageableArea Foolscap: "14.173 14.173 597.827 921.827" +*ImageableArea Index_3x5: "14.173 14.173 201.827 345.827" +*ImageableArea 16K: "14.173 14.173 538.527 751.227" + +*DefaultPaperDimension: A4 +*PaperDimension Letter: "612 792" +*PaperDimension Legal: "612 1008" +*PaperDimension Statement: "396 612" +*PaperDimension Executive: "522 756" +*PaperDimension A5: "419.5 595.3" +*PaperDimension B5: "515.9 728.5" +*PaperDimension A4: "595.3 841.9" +*PaperDimension Monarch: "279 540" +*PaperDimension Com10: "297 684" +*PaperDimension dl_envelope: "311.8 623.6" +*PaperDimension Envelope_C5: "459.2 649.1" +*PaperDimension Envelope_B5: "498.8 708.7" +*PaperDimension Foolscap: "612 936" +*PaperDimension Index_3x5: "216 360" +*PaperDimension 16K: "552.7 765.4" +*%CNJobAccount: False +*%CNSecuredPrint: False +*%CNMailBox: False +*%CNInputSelect: False +*CNOEFLibName: "ufr2filterr" +*CNOptCalibType: "4" +*CNPrinterName: "Canon MF4500 Series UFRII LT" +*CNPDLType: "UFR2" +*CNPrtColorSpace: "K" +*CN_PdlWrapper_PdlPath: "libcanonufr2r" +*CNFeedDirection: "Custom:3" +*CNTblFormat: "2" +*CNTblInputSlot: "1" +*CNTblDuplex: "1" +*CNTblOutputBin: "0" +*CNTblOutputPartition: "0" +*CNTblSubstitute: "1" +*CNTblMediaType: "36" +*CNModelMethod: "38924" +*CNMaxBoxNum: "0" +*CNMaxDocStr: "0" +*CNMaxCopies: "99" +*CNMaxGutter: "50" +*CNExecuteMethod: "0" +*CNListIDMediaType: "3" +*CNUFR2ModelMethod: "2051" +*CNListIDPageSize: "4" +*CNTblRetouchType: "3" +*CN_PrinterInfo_DefaultPath: "cnpkbidir_info_004" +*CNHostDraftMode: "10,0,000" + +*UIConstraints: *Duplex DuplexTumble *BindEdge Left +*UIConstraints: *BindEdge Left *Duplex DuplexTumble +*UIConstraints: *Duplex DuplexNoTumble *BindEdge Top +*UIConstraints: *BindEdge Top *Duplex DuplexNoTumble + +*UIConstraints: *Duplex DuplexTumble *PageSize Statement +*UIConstraints: *PageSize Statement *Duplex DuplexTumble +*UIConstraints: *Duplex DuplexNoTumble *PageSize Statement +*UIConstraints: *PageSize Statement *Duplex DuplexNoTumble +*UIConstraints: *Duplex DuplexTumble *PageSize Executive +*UIConstraints: *PageSize Executive *Duplex DuplexTumble +*UIConstraints: *Duplex DuplexNoTumble *PageSize Executive +*UIConstraints: *PageSize Executive *Duplex DuplexNoTumble +*UIConstraints: *Duplex DuplexTumble *PageSize A5 +*UIConstraints: *PageSize A5 *Duplex DuplexTumble +*UIConstraints: *Duplex DuplexNoTumble *PageSize A5 +*UIConstraints: *PageSize A5 *Duplex DuplexNoTumble +*UIConstraints: *Duplex DuplexTumble *PageSize B5 +*UIConstraints: *PageSize B5 *Duplex DuplexTumble +*UIConstraints: *Duplex DuplexNoTumble *PageSize B5 +*UIConstraints: *PageSize B5 *Duplex DuplexNoTumble +*UIConstraints: *Duplex DuplexTumble *PageSize Monarch +*UIConstraints: *PageSize Monarch *Duplex DuplexTumble +*UIConstraints: *Duplex DuplexNoTumble *PageSize Monarch +*UIConstraints: *PageSize Monarch *Duplex DuplexNoTumble +*UIConstraints: *Duplex DuplexTumble *PageSize Com10 +*UIConstraints: *PageSize Com10 *Duplex DuplexTumble +*UIConstraints: *Duplex DuplexNoTumble *PageSize Com10 +*UIConstraints: *PageSize Com10 *Duplex DuplexNoTumble +*UIConstraints: *Duplex DuplexTumble *PageSize dl_envelope +*UIConstraints: *PageSize dl_envelope *Duplex DuplexTumble +*UIConstraints: *Duplex DuplexNoTumble *PageSize dl_envelope +*UIConstraints: *PageSize dl_envelope *Duplex DuplexNoTumble +*UIConstraints: *Duplex DuplexTumble *PageSize Envelope_C5 +*UIConstraints: *PageSize Envelope_C5 *Duplex DuplexTumble +*UIConstraints: *Duplex DuplexNoTumble *PageSize Envelope_C5 +*UIConstraints: *PageSize Envelope_C5 *Duplex DuplexNoTumble +*UIConstraints: *Duplex DuplexTumble *PageSize Envelope_B5 +*UIConstraints: *PageSize Envelope_B5 *Duplex DuplexTumble +*UIConstraints: *Duplex DuplexNoTumble *PageSize Envelope_B5 +*UIConstraints: *PageSize Envelope_B5 *Duplex DuplexNoTumble +*UIConstraints: *Duplex DuplexTumble *PageSize Index_3x5 +*UIConstraints: *PageSize Index_3x5 *Duplex DuplexTumble +*UIConstraints: *Duplex DuplexNoTumble *PageSize Index_3x5 +*UIConstraints: *PageSize Index_3x5 *Duplex DuplexNoTumble +*UIConstraints: *Duplex DuplexTumble *PageSize 16K +*UIConstraints: *PageSize 16K *Duplex DuplexTumble +*UIConstraints: *Duplex DuplexNoTumble *PageSize 16K +*UIConstraints: *PageSize 16K *Duplex DuplexNoTumble + +*UIConstraints: *Duplex DuplexTumble *MediaType HEAVY2 +*UIConstraints: *MediaType HEAVY2 *Duplex DuplexTumble +*UIConstraints: *Duplex DuplexNoTumble *MediaType HEAVY2 +*UIConstraints: *MediaType HEAVY2 *Duplex DuplexNoTumble +*UIConstraints: *Duplex DuplexTumble *MediaType OHP +*UIConstraints: *MediaType OHP *Duplex DuplexTumble +*UIConstraints: *Duplex DuplexNoTumble *MediaType OHP +*UIConstraints: *MediaType OHP *Duplex DuplexNoTumble +*UIConstraints: *Duplex DuplexTumble *MediaType LABELS +*UIConstraints: *MediaType LABELS *Duplex DuplexTumble +*UIConstraints: *Duplex DuplexNoTumble *MediaType LABELS +*UIConstraints: *MediaType LABELS *Duplex DuplexNoTumble +*UIConstraints: *Duplex DuplexTumble *MediaType ENVELOPE +*UIConstraints: *MediaType ENVELOPE *Duplex DuplexTumble +*UIConstraints: *Duplex DuplexNoTumble *MediaType ENVELOPE +*UIConstraints: *MediaType ENVELOPE *Duplex DuplexNoTumble +*UIConstraints: *Duplex DuplexTumble *MediaType ROUGH3 +*UIConstraints: *MediaType ROUGH3 *Duplex DuplexTumble +*UIConstraints: *Duplex DuplexNoTumble *MediaType ROUGH3 +*UIConstraints: *MediaType ROUGH3 *Duplex DuplexNoTumble + +*UIConstraints: *MediaType ENVELOPE *PageSize Letter +*UIConstraints: *PageSize Letter *MediaType ENVELOPE +*UIConstraints: *MediaType OHP *PageSize Legal +*UIConstraints: *PageSize Legal *MediaType OHP +*UIConstraints: *MediaType LABELS *PageSize Legal +*UIConstraints: *PageSize Legal *MediaType LABELS +*UIConstraints: *MediaType ENVELOPE *PageSize Legal +*UIConstraints: *PageSize Legal *MediaType ENVELOPE +*UIConstraints: *MediaType OHP *PageSize Statement +*UIConstraints: *PageSize Statement *MediaType OHP +*UIConstraints: *MediaType LABELS *PageSize Statement +*UIConstraints: *PageSize Statement *MediaType LABELS +*UIConstraints: *MediaType ENVELOPE *PageSize Statement +*UIConstraints: *PageSize Statement *MediaType ENVELOPE +*UIConstraints: *MediaType OHP *PageSize Executive +*UIConstraints: *PageSize Executive *MediaType OHP +*UIConstraints: *MediaType LABELS *PageSize Executive +*UIConstraints: *PageSize Executive *MediaType LABELS +*UIConstraints: *MediaType ENVELOPE *PageSize Executive +*UIConstraints: *PageSize Executive *MediaType ENVELOPE +*UIConstraints: *MediaType OHP *PageSize A5 +*UIConstraints: *PageSize A5 *MediaType OHP +*UIConstraints: *MediaType LABELS *PageSize A5 +*UIConstraints: *PageSize A5 *MediaType LABELS +*UIConstraints: *MediaType ENVELOPE *PageSize A5 +*UIConstraints: *PageSize A5 *MediaType ENVELOPE +*UIConstraints: *MediaType OHP *PageSize B5 +*UIConstraints: *PageSize B5 *MediaType OHP +*UIConstraints: *MediaType LABELS *PageSize B5 +*UIConstraints: *PageSize B5 *MediaType LABELS +*UIConstraints: *MediaType ENVELOPE *PageSize B5 +*UIConstraints: *PageSize B5 *MediaType ENVELOPE +*UIConstraints: *MediaType ENVELOPE *PageSize A4 +*UIConstraints: *PageSize A4 *MediaType ENVELOPE +*UIConstraints: *MediaType PlainPaper *PageSize Monarch +*UIConstraints: *PageSize Monarch *MediaType PlainPaper +*UIConstraints: *MediaType PlainPaperL *PageSize Monarch +*UIConstraints: *PageSize Monarch *MediaType PlainPaperL +*UIConstraints: *MediaType RECYCLED *PageSize Monarch +*UIConstraints: *PageSize Monarch *MediaType RECYCLED +*UIConstraints: *MediaType COLOR *PageSize Monarch +*UIConstraints: *PageSize Monarch *MediaType COLOR +*UIConstraints: *MediaType HEAVY1 *PageSize Monarch +*UIConstraints: *PageSize Monarch *MediaType HEAVY1 +*UIConstraints: *MediaType HEAVY2 *PageSize Monarch +*UIConstraints: *PageSize Monarch *MediaType HEAVY2 +*UIConstraints: *MediaType OHP *PageSize Monarch +*UIConstraints: *PageSize Monarch *MediaType OHP +*UIConstraints: *MediaType LABELS *PageSize Monarch +*UIConstraints: *PageSize Monarch *MediaType LABELS +*UIConstraints: *MediaType ROUGH1 *PageSize Monarch +*UIConstraints: *PageSize Monarch *MediaType ROUGH1 +*UIConstraints: *MediaType ROUGH2 *PageSize Monarch +*UIConstraints: *PageSize Monarch *MediaType ROUGH2 +*UIConstraints: *MediaType ROUGH3 *PageSize Monarch +*UIConstraints: *PageSize Monarch *MediaType ROUGH3 +*UIConstraints: *MediaType PlainPaper *PageSize Com10 +*UIConstraints: *PageSize Com10 *MediaType PlainPaper +*UIConstraints: *MediaType PlainPaperL *PageSize Com10 +*UIConstraints: *PageSize Com10 *MediaType PlainPaperL +*UIConstraints: *MediaType RECYCLED *PageSize Com10 +*UIConstraints: *PageSize Com10 *MediaType RECYCLED +*UIConstraints: *MediaType COLOR *PageSize Com10 +*UIConstraints: *PageSize Com10 *MediaType COLOR +*UIConstraints: *MediaType HEAVY1 *PageSize Com10 +*UIConstraints: *PageSize Com10 *MediaType HEAVY1 +*UIConstraints: *MediaType HEAVY2 *PageSize Com10 +*UIConstraints: *PageSize Com10 *MediaType HEAVY2 +*UIConstraints: *MediaType OHP *PageSize Com10 +*UIConstraints: *PageSize Com10 *MediaType OHP +*UIConstraints: *MediaType LABELS *PageSize Com10 +*UIConstraints: *PageSize Com10 *MediaType LABELS +*UIConstraints: *MediaType ROUGH1 *PageSize Com10 +*UIConstraints: *PageSize Com10 *MediaType ROUGH1 +*UIConstraints: *MediaType ROUGH2 *PageSize Com10 +*UIConstraints: *PageSize Com10 *MediaType ROUGH2 +*UIConstraints: *MediaType ROUGH3 *PageSize Com10 +*UIConstraints: *PageSize Com10 *MediaType ROUGH3 +*UIConstraints: *MediaType PlainPaper *PageSize dl_envelope +*UIConstraints: *PageSize dl_envelope *MediaType PlainPaper +*UIConstraints: *MediaType PlainPaperL *PageSize dl_envelope +*UIConstraints: *PageSize dl_envelope *MediaType PlainPaperL +*UIConstraints: *MediaType RECYCLED *PageSize dl_envelope +*UIConstraints: *PageSize dl_envelope *MediaType RECYCLED +*UIConstraints: *MediaType COLOR *PageSize dl_envelope +*UIConstraints: *PageSize dl_envelope *MediaType COLOR +*UIConstraints: *MediaType HEAVY1 *PageSize dl_envelope +*UIConstraints: *PageSize dl_envelope *MediaType HEAVY1 +*UIConstraints: *MediaType HEAVY2 *PageSize dl_envelope +*UIConstraints: *PageSize dl_envelope *MediaType HEAVY2 +*UIConstraints: *MediaType OHP *PageSize dl_envelope +*UIConstraints: *PageSize dl_envelope *MediaType OHP +*UIConstraints: *MediaType LABELS *PageSize dl_envelope +*UIConstraints: *PageSize dl_envelope *MediaType LABELS +*UIConstraints: *MediaType ROUGH1 *PageSize dl_envelope +*UIConstraints: *PageSize dl_envelope *MediaType ROUGH1 +*UIConstraints: *MediaType ROUGH2 *PageSize dl_envelope +*UIConstraints: *PageSize dl_envelope *MediaType ROUGH2 +*UIConstraints: *MediaType ROUGH3 *PageSize dl_envelope +*UIConstraints: *PageSize dl_envelope *MediaType ROUGH3 +*UIConstraints: *MediaType PlainPaper *PageSize Envelope_C5 +*UIConstraints: *PageSize Envelope_C5 *MediaType PlainPaper +*UIConstraints: *MediaType PlainPaperL *PageSize Envelope_C5 +*UIConstraints: *PageSize Envelope_C5 *MediaType PlainPaperL +*UIConstraints: *MediaType RECYCLED *PageSize Envelope_C5 +*UIConstraints: *PageSize Envelope_C5 *MediaType RECYCLED +*UIConstraints: *MediaType COLOR *PageSize Envelope_C5 +*UIConstraints: *PageSize Envelope_C5 *MediaType COLOR +*UIConstraints: *MediaType HEAVY1 *PageSize Envelope_C5 +*UIConstraints: *PageSize Envelope_C5 *MediaType HEAVY1 +*UIConstraints: *MediaType HEAVY2 *PageSize Envelope_C5 +*UIConstraints: *PageSize Envelope_C5 *MediaType HEAVY2 +*UIConstraints: *MediaType OHP *PageSize Envelope_C5 +*UIConstraints: *PageSize Envelope_C5 *MediaType OHP +*UIConstraints: *MediaType LABELS *PageSize Envelope_C5 +*UIConstraints: *PageSize Envelope_C5 *MediaType LABELS +*UIConstraints: *MediaType ROUGH1 *PageSize Envelope_C5 +*UIConstraints: *PageSize Envelope_C5 *MediaType ROUGH1 +*UIConstraints: *MediaType ROUGH2 *PageSize Envelope_C5 +*UIConstraints: *PageSize Envelope_C5 *MediaType ROUGH2 +*UIConstraints: *MediaType ROUGH3 *PageSize Envelope_C5 +*UIConstraints: *PageSize Envelope_C5 *MediaType ROUGH3 +*UIConstraints: *MediaType PlainPaper *PageSize Envelope_B5 +*UIConstraints: *PageSize Envelope_B5 *MediaType PlainPaper +*UIConstraints: *MediaType PlainPaperL *PageSize Envelope_B5 +*UIConstraints: *PageSize Envelope_B5 *MediaType PlainPaperL +*UIConstraints: *MediaType RECYCLED *PageSize Envelope_B5 +*UIConstraints: *PageSize Envelope_B5 *MediaType RECYCLED +*UIConstraints: *MediaType COLOR *PageSize Envelope_B5 +*UIConstraints: *PageSize Envelope_B5 *MediaType COLOR +*UIConstraints: *MediaType HEAVY1 *PageSize Envelope_B5 +*UIConstraints: *PageSize Envelope_B5 *MediaType HEAVY1 +*UIConstraints: *MediaType HEAVY2 *PageSize Envelope_B5 +*UIConstraints: *PageSize Envelope_B5 *MediaType HEAVY2 +*UIConstraints: *MediaType OHP *PageSize Envelope_B5 +*UIConstraints: *PageSize Envelope_B5 *MediaType OHP +*UIConstraints: *MediaType LABELS *PageSize Envelope_B5 +*UIConstraints: *PageSize Envelope_B5 *MediaType LABELS +*UIConstraints: *MediaType ROUGH1 *PageSize Envelope_B5 +*UIConstraints: *PageSize Envelope_B5 *MediaType ROUGH1 +*UIConstraints: *MediaType ROUGH2 *PageSize Envelope_B5 +*UIConstraints: *PageSize Envelope_B5 *MediaType ROUGH2 +*UIConstraints: *MediaType ROUGH3 *PageSize Envelope_B5 +*UIConstraints: *PageSize Envelope_B5 *MediaType ROUGH3 +*UIConstraints: *MediaType OHP *PageSize Index_3x5 +*UIConstraints: *PageSize Index_3x5 *MediaType OHP +*UIConstraints: *MediaType LABELS *PageSize Index_3x5 +*UIConstraints: *PageSize Index_3x5 *MediaType LABELS +*UIConstraints: *MediaType ENVELOPE *PageSize Index_3x5 +*UIConstraints: *PageSize Index_3x5 *MediaType ENVELOPE +*UIConstraints: *MediaType OHP *PageSize Foolscap +*UIConstraints: *PageSize Foolscap *MediaType OHP +*UIConstraints: *MediaType LABELS *PageSize Foolscap +*UIConstraints: *PageSize Foolscap *MediaType LABELS +*UIConstraints: *MediaType ENVELOPE *PageSize Foolscap +*UIConstraints: *PageSize Foolscap *MediaType ENVELOPE +*UIConstraints: *MediaType OHP *PageSize 16K +*UIConstraints: *PageSize 16K *MediaType OHP +*UIConstraints: *MediaType LABELS *PageSize 16K +*UIConstraints: *PageSize 16K *MediaType LABELS +*UIConstraints: *MediaType ENVELOPE *PageSize 16K +*UIConstraints: *PageSize 16K *MediaType ENVELOPE + +*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 PPD file. +*% + +*cupsLanguages: "de en es fr it ja ko zh_CN zh_TW" + +*de.Translation Resolution/Auflösung: "" +*de.Resolution 600/600 dpi: "" +*de.Translation CNDraftMode/Toner sparen: "" +*de.CNDraftMode True/Ein: "" +*de.CNDraftMode False/Aus: "" +*de.Translation MediaType/Papiertyp: "" +*de.MediaType PlainPaper/Normalpapier: "" +*de.MediaType PlainPaperL/Normalpapier L: "" +*de.MediaType RECYCLED/Recyclingpapier: "" +*de.MediaType COLOR/Farbpapier: "" +*de.MediaType HEAVY1/Schweres Papier 1: "" +*de.MediaType HEAVY2/Schweres Papier 2: "" +*de.MediaType OHP/Folie: "" +*de.MediaType LABELS/Etiketten: "" +*de.MediaType ENVELOPE/Briefumschlag: "" +*de.MediaType ROUGH1/Raues Papier 1: "" +*de.MediaType ROUGH2/Raues Papier 2: "" +*de.MediaType ROUGH3/Raues Papier 3: "" +*de.Translation InputSlot/Papierzufuhr: "" +*de.InputSlot Auto/Auto: "" +*de.Translation OutputBin/Papierausgabe: "" +*de.OutputBin Auto/Auto: "" +*de.Translation CNSpecialPrintMode/Spezielle Druckjustage: "" +*de.CNSpecialPrintMode False/Aus: "" +*de.CNSpecialPrintMode Mode1/Modus 1: "" +*de.CNSpecialPrintMode Mode2/Modus 2: "" +*de.CNSpecialPrintMode Mode3/Modus 3: "" +*de.CNSpecialPrintMode Mode4/Modus 4: "" +*de.Translation Duplex/Doppelseitiger Druck: "" +*de.Duplex None/Aus: "" +*de.Duplex DuplexNoTumble/Lange Seite: "" +*de.Duplex DuplexTumble/Kurze Seite: "" +*de.Translation BindEdge/Bindung: "" +*de.BindEdge Left/Lange Seite (links): "" +*de.BindEdge Top/Kurze Seite (oben): "" +*de.Translation Collate/Endverarbeitung: "" +*de.Collate Group/Gruppieren: "" +*de.Translation CNHalftone/Halbton: "" +*de.CNHalftone Resolution/Auflösung: "" +*de.CNHalftone Gradation/Farbabstufung: "" +*de.CNHalftone ColorTone/Farbton: "" +*de.Translation PageSize/Seitenformat: "" +*de.PageSize Letter/Letter: "" +*de.PageSize Legal/Legal: "" +*de.PageSize Statement/Statement: "" +*de.PageSize Executive/Executive: "" +*de.PageSize A5/A5: "" +*de.PageSize B5/B5: "" +*de.PageSize A4/A4: "" +*de.PageSize Monarch/Briefumschlag Monarch: "" +*de.PageSize Com10/Briefumschlag No.10 (COM10): "" +*de.PageSize dl_envelope/Briefumschlag DL: "" +*de.PageSize Envelope_C5/Briefumschlag C5: "" +*de.PageSize Envelope_B5/Briefumschlag B5: "" +*de.PageSize Foolscap/Foolscap: "" +*de.PageSize Index_3x5/Karteikarte: "" +*de.PageSize 16K/16K: "" +*de.Translation PageRegion/Druckfläche: "" +*de.PageRegion Letter/Letter: "" +*de.PageRegion Legal/Legal: "" +*de.PageRegion Statement/Statement: "" +*de.PageRegion Executive/Executive: "" +*de.PageRegion A5/A5: "" +*de.PageRegion B5/B5: "" +*de.PageRegion A4/A4: "" +*de.PageRegion Monarch/Briefumschlag Monarch: "" +*de.PageRegion Com10/Briefumschlag No.10 (COM10): "" +*de.PageRegion dl_envelope/Briefumschlag DL: "" +*de.PageRegion Envelope_C5/Briefumschlag C5: "" +*de.PageRegion Envelope_B5/Briefumschlag B5: "" +*de.PageRegion Foolscap/Foolscap: "" +*de.PageRegion Index_3x5/Karteikarte: "" +*de.PageRegion 16K/16K: "" + +*en.Translation Resolution/Resolution: "" +*en.Resolution 600/600 dpi: "" +*en.Translation CNDraftMode/Toner Save: "" +*en.CNDraftMode True/On: "" +*en.CNDraftMode False/Off: "" +*en.Translation MediaType/Paper Type: "" +*en.MediaType PlainPaper/Plain Paper: "" +*en.MediaType PlainPaperL/Plain Paper L: "" +*en.MediaType RECYCLED/Recycled Paper: "" +*en.MediaType COLOR/Color Paper: "" +*en.MediaType HEAVY1/Heavy Paper 1: "" +*en.MediaType HEAVY2/Heavy Paper 2: "" +*en.MediaType OHP/Transparency: "" +*en.MediaType LABELS/Labels: "" +*en.MediaType ENVELOPE/Envelope: "" +*en.MediaType ROUGH1/Rough Paper 1: "" +*en.MediaType ROUGH2/Rough Paper 2: "" +*en.MediaType ROUGH3/Rough Paper 3: "" +*en.Translation InputSlot/Paper Source: "" +*en.InputSlot Auto/Auto: "" +*en.Translation OutputBin/Paper Output: "" +*en.OutputBin Auto/Auto: "" +*en.Translation CNSpecialPrintMode/Special Print Adjustment: "" +*en.CNSpecialPrintMode False/Off: "" +*en.CNSpecialPrintMode Mode1/Mode 1: "" +*en.CNSpecialPrintMode Mode2/Mode 2: "" +*en.CNSpecialPrintMode Mode3/Mode 3: "" +*en.CNSpecialPrintMode Mode4/Mode 4: "" +*en.Translation Duplex/2-sided Printing: "" +*en.Duplex None/Off : "" +*en.Duplex DuplexNoTumble/Long Edge: "" +*en.Duplex DuplexTumble/Short Edge: "" +*en.Translation BindEdge/Binding Location: "" +*en.BindEdge Left/Long Edge (Left): "" +*en.BindEdge Top/Short Edge (Top): "" +*en.Translation Collate/Finishing: "" +*en.Collate Group/Group: "" +*en.Translation CNHalftone/Halftones: "" +*en.CNHalftone Resolution/Resolution: "" +*en.CNHalftone Gradation/Gradation: "" +*en.CNHalftone ColorTone/Color Tone: "" +*en.Translation PageSize/Page Size: "" +*en.PageSize Letter/Letter: "" +*en.PageSize Legal/Legal: "" +*en.PageSize Statement/Statement: "" +*en.PageSize Executive/Executive: "" +*en.PageSize A5/A5: "" +*en.PageSize B5/B5: "" +*en.PageSize A4/A4: "" +*en.PageSize Monarch/Envelope Monarch: "" +*en.PageSize Com10/Envelope No.10 (COM10): "" +*en.PageSize dl_envelope/Envelope DL: "" +*en.PageSize Envelope_C5/Envelope C5: "" +*en.PageSize Envelope_B5/Envelope B5: "" +*en.PageSize Foolscap/Foolscap: "" +*en.PageSize Index_3x5/Index Card: "" +*en.PageSize 16K/16K: "" +*en.Translation PageRegion/Print Area: "" +*en.PageRegion Letter/Letter: "" +*en.PageRegion Legal/Legal: "" +*en.PageRegion Statement/Statement: "" +*en.PageRegion Executive/Executive: "" +*en.PageRegion A5/A5: "" +*en.PageRegion B5/B5: "" +*en.PageRegion A4/A4: "" +*en.PageRegion Monarch/Envelope Monarch: "" +*en.PageRegion Com10/Envelope No.10 (COM10): "" +*en.PageRegion dl_envelope/Envelope DL: "" +*en.PageRegion Envelope_C5/Envelope C5: "" +*en.PageRegion Envelope_B5/Envelope B5: "" +*en.PageRegion Foolscap/Foolscap: "" +*en.PageRegion Index_3x5/Index Card: "" +*en.PageRegion 16K/16K: "" + +*es.Translation Resolution/Resolución: "" +*es.Resolution 600/600 ppp: "" +*es.Translation CNDraftMode/Ahorro de tóner: "" +*es.CNDraftMode True/Activado: "" +*es.CNDraftMode False/Desactivado: "" +*es.Translation MediaType/Tipo de papel: "" +*es.MediaType PlainPaper/Papel normal: "" +*es.MediaType PlainPaperL/Papel normal L: "" +*es.MediaType RECYCLED/Papel reciclado: "" +*es.MediaType COLOR/Papel de color: "" +*es.MediaType HEAVY1/Papel grueso 1: "" +*es.MediaType HEAVY2/Papel grueso 2: "" +*es.MediaType OHP/Transparencia: "" +*es.MediaType LABELS/Etiquetas: "" +*es.MediaType ENVELOPE/Sobre: "" +*es.MediaType ROUGH1/Papel rugoso 1: "" +*es.MediaType ROUGH2/Papel rugoso 2: "" +*es.MediaType ROUGH3/Papel rugoso 3: "" +*es.Translation InputSlot/Origen del papel: "" +*es.InputSlot Auto/Auto: "" +*es.Translation OutputBin/Salida del papel: "" +*es.OutputBin Auto/Auto: "" +*es.Translation CNSpecialPrintMode/Ajuste de impresión especial: "" +*es.CNSpecialPrintMode False/Desactivado: "" +*es.CNSpecialPrintMode Mode1/Modo 1: "" +*es.CNSpecialPrintMode Mode2/Modo 2: "" +*es.CNSpecialPrintMode Mode3/Modo 3: "" +*es.CNSpecialPrintMode Mode4/Modo 4: "" +*es.Translation Duplex/Impresión a doble cara: "" +*es.Duplex None/Desactivado: "" +*es.Duplex DuplexNoTumble/Lado largo: "" +*es.Duplex DuplexTumble/Lado corto: "" +*es.Translation BindEdge/Ubicación de la encuadernación: "" +*es.BindEdge Left/Lado largo (izquierda): "" +*es.BindEdge Top/Lado corto (superior): "" +*es.Translation Collate/Acabado: "" +*es.Collate Group/Agrupar: "" +*es.Translation CNHalftone/Medios tonos: "" +*es.CNHalftone Resolution/Resolución: "" +*es.CNHalftone Gradation/Gradación: "" +*es.CNHalftone ColorTone/Tono de color: "" +*es.Translation PageSize/Tamaño de página: "" +*es.PageSize Letter/Carta: "" +*es.PageSize Legal/Legal: "" +*es.PageSize Statement/Informe: "" +*es.PageSize Executive/Executive: "" +*es.PageSize A5/A5: "" +*es.PageSize B5/B5: "" +*es.PageSize A4/A4: "" +*es.PageSize Monarch/Sobre Monarch: "" +*es.PageSize Com10/Sobre nº 10 (COM10): "" +*es.PageSize dl_envelope/Sobre DL: "" +*es.PageSize Envelope_C5/Sobre C5: "" +*es.PageSize Envelope_B5/Sobre B5: "" +*es.PageSize Foolscap/Foolscap: "" +*es.PageSize Index_3x5/Ficha: "" +*es.PageSize 16K/16K: "" +*es.Translation PageRegion/Área de impresión: "" +*es.PageRegion Letter/Carta: "" +*es.PageRegion Legal/Legal: "" +*es.PageRegion Statement/Informe: "" +*es.PageRegion Executive/Executive: "" +*es.PageRegion A5/A5: "" +*es.PageRegion B5/B5: "" +*es.PageRegion A4/A4: "" +*es.PageRegion Monarch/Sobre Monarch: "" +*es.PageRegion Com10/Sobre nº 10 (COM10): "" +*es.PageRegion dl_envelope/Sobre DL: "" +*es.PageRegion Envelope_C5/Sobre C5: "" +*es.PageRegion Envelope_B5/Sobre B5: "" +*es.PageRegion Foolscap/Foolscap: "" +*es.PageRegion Index_3x5/Ficha: "" +*es.PageRegion 16K/16K: "" + +*fr.Translation Resolution/Résolution : "" +*fr.Resolution 600/600 ppp: "" +*fr.Translation CNDraftMode/Economie d'encre : "" +*fr.CNDraftMode True/Activé: "" +*fr.CNDraftMode False/Désactivé: "" +*fr.Translation MediaType/Type de papier : "" +*fr.MediaType PlainPaper/Papier ordinaire: "" +*fr.MediaType PlainPaperL/Papier ordinaire L: "" +*fr.MediaType RECYCLED/Papier recyclé: "" +*fr.MediaType COLOR/Papier de couleur: "" +*fr.MediaType HEAVY1/Papier épais 1: "" +*fr.MediaType HEAVY2/Papier épais 2: "" +*fr.MediaType OHP/Transparent: "" +*fr.MediaType LABELS/Etiquettes: "" +*fr.MediaType ENVELOPE/Enveloppe: "" +*fr.MediaType ROUGH1/Papier brouillon 1: "" +*fr.MediaType ROUGH2/Papier brouillon 2: "" +*fr.MediaType ROUGH3/Papier brouillon 3: "" +*fr.Translation InputSlot/Alimentation papier : "" +*fr.InputSlot Auto/Auto: "" +*fr.Translation OutputBin/Sortie papier : "" +*fr.OutputBin Auto/Auto: "" +*fr.Translation CNSpecialPrintMode/Réglage d'impression spéciale : "" +*fr.CNSpecialPrintMode False/Désactivé: "" +*fr.CNSpecialPrintMode Mode1/Mode 1: "" +*fr.CNSpecialPrintMode Mode2/Mode 2: "" +*fr.CNSpecialPrintMode Mode3/Mode 3: "" +*fr.CNSpecialPrintMode Mode4/Mode 4: "" +*fr.Translation Duplex/Impression recto-verso: "" +*fr.Duplex None/Désactivé: "" +*fr.Duplex DuplexNoTumble/Bord long: "" +*fr.Duplex DuplexTumble/Bord court: "" +*fr.Translation BindEdge/Emplacement de la reliure: "" +*fr.BindEdge Left/Bord long (Gauche): "" +*fr.BindEdge Top/Bord court (Haut): "" +*fr.Translation Collate/Finition: "" +*fr.Collate Group/Grouper: "" +*fr.Translation CNHalftone/Demi-tons : "" +*fr.CNHalftone Resolution/Résolution: "" +*fr.CNHalftone Gradation/Gradation: "" +*fr.CNHalftone ColorTone/Ton de couleur: "" +*fr.Translation PageSize/Format de page : "" +*fr.PageSize Letter/Lettre: "" +*fr.PageSize Legal/Légal: "" +*fr.PageSize Statement/Statement US: "" +*fr.PageSize Executive/Executive: "" +*fr.PageSize A5/A5: "" +*fr.PageSize B5/B5: "" +*fr.PageSize A4/A4: "" +*fr.PageSize Monarch/Enveloppe Monarch: "" +*fr.PageSize Com10/Enveloppe n°10 (COM10): "" +*fr.PageSize dl_envelope/Enveloppe DL: "" +*fr.PageSize Envelope_C5/Enveloppe C5: "" +*fr.PageSize Envelope_B5/Enveloppe B5: "" +*fr.PageSize Foolscap/Foolscap: "" +*fr.PageSize Index_3x5/Fiche: "" +*fr.PageSize 16K/16K: "" +*fr.Translation PageRegion/Zone d'impression: "" +*fr.PageRegion Letter/Lettre: "" +*fr.PageRegion Legal/Légal: "" +*fr.PageRegion Statement/Statement US: "" +*fr.PageRegion Executive/Executive: "" +*fr.PageRegion A5/A5: "" +*fr.PageRegion B5/B5: "" +*fr.PageRegion A4/A4: "" +*fr.PageRegion Monarch/Enveloppe Monarch: "" +*fr.PageRegion Com10/Enveloppe n°10 (COM10): "" +*fr.PageRegion dl_envelope/Enveloppe DL: "" +*fr.PageRegion Envelope_C5/Enveloppe C5: "" +*fr.PageRegion Envelope_B5/Enveloppe B5: "" +*fr.PageRegion Foolscap/Foolscap: "" +*fr.PageRegion Index_3x5/Fiche: "" +*fr.PageRegion 16K/16K: "" + +*it.Translation Resolution/Risoluzione: "" +*it.Resolution 600/600 dpi: "" +*it.Translation CNDraftMode/Risparmio toner: "" +*it.CNDraftMode True/Attivato: "" +*it.CNDraftMode False/Disattivato: "" +*it.Translation MediaType/Tipo di carta: "" +*it.MediaType PlainPaper/Carta comune: "" +*it.MediaType PlainPaperL/Carta comune L: "" +*it.MediaType RECYCLED/Carta riciclata: "" +*it.MediaType COLOR/Carta colorata: "" +*it.MediaType HEAVY1/Carta spessa 1: "" +*it.MediaType HEAVY2/Carta spessa 2: "" +*it.MediaType OHP/Lucido: "" +*it.MediaType LABELS/Etichette: "" +*it.MediaType ENVELOPE/Buste: "" +*it.MediaType ROUGH1/Carta ruvida 1: "" +*it.MediaType ROUGH2/Carta ruvida 2: "" +*it.MediaType ROUGH3/Carta ruvida 3: "" +*it.Translation InputSlot/Alimentazione carta: "" +*it.InputSlot Auto/Auto: "" +*it.Translation OutputBin/Uscita carta: "" +*it.OutputBin Auto/Auto: "" +*it.Translation CNSpecialPrintMode/Regolazione stampa speciale: "" +*it.CNSpecialPrintMode False/Disattivato: "" +*it.CNSpecialPrintMode Mode1/Modalità 1: "" +*it.CNSpecialPrintMode Mode2/Modalità 2: "" +*it.CNSpecialPrintMode Mode3/Modalità 3: "" +*it.CNSpecialPrintMode Mode4/Modalità 4: "" +*it.Translation Duplex/Stampa fronte/retro: "" +*it.Duplex None/Disattivato: "" +*it.Duplex DuplexNoTumble/Lato lungo: "" +*it.Duplex DuplexTumble/Lato corto: "" +*it.Translation BindEdge/Posizione di rilegatura: "" +*it.BindEdge Left/Lato lungo (Sinistro): "" +*it.BindEdge Top/Lato corto (Superiore): "" +*it.Translation Collate/Finitura: "" +*it.Collate Group/Raggruppa: "" +*it.Translation CNHalftone/Mezzitoni: "" +*it.CNHalftone Resolution/Risoluzione: "" +*it.CNHalftone Gradation/Gradazione: "" +*it.CNHalftone ColorTone/Tono colore: "" +*it.Translation PageSize/Formato pagina: "" +*it.PageSize Letter/Letter: "" +*it.PageSize Legal/Legal: "" +*it.PageSize Statement/Statement: "" +*it.PageSize Executive/Executive: "" +*it.PageSize A5/A5: "" +*it.PageSize B5/B5: "" +*it.PageSize A4/A4: "" +*it.PageSize Monarch/Busta Monarch: "" +*it.PageSize Com10/Busta No.10 (COM10): "" +*it.PageSize dl_envelope/Busta DL: "" +*it.PageSize Envelope_C5/Busta C5: "" +*it.PageSize Envelope_B5/Busta B5: "" +*it.PageSize Foolscap/Foolscap: "" +*it.PageSize Index_3x5/Scheda di indice: "" +*it.PageSize 16K/16K: "" +*it.Translation PageRegion/Area di stampa: "" +*it.PageRegion Letter/Letter: "" +*it.PageRegion Legal/Legal: "" +*it.PageRegion Statement/Statement: "" +*it.PageRegion Executive/Executive: "" +*it.PageRegion A5/A5: "" +*it.PageRegion B5/B5: "" +*it.PageRegion A4/A4: "" +*it.PageRegion Monarch/Busta Monarch: "" +*it.PageRegion Com10/Busta No.10 (COM10): "" +*it.PageRegion dl_envelope/Busta DL: "" +*it.PageRegion Envelope_C5/Busta C5: "" +*it.PageRegion Envelope_B5/Busta B5: "" +*it.PageRegion Foolscap/Foolscap: "" +*it.PageRegion Index_3x5/Scheda di indice: "" +*it.PageRegion 16K/16K: "" + +*ja.Translation Resolution/解像度 : "" +*ja.Resolution 600/ファイン(600 dpi): "" +*ja.Translation CNDraftMode/トナー節約モード : "" +*ja.CNDraftMode True/使う: "" +*ja.CNDraftMode False/使わない: "" +*ja.Translation MediaType/用紙種類 : "" +*ja.MediaType PlainPaper/普通紙: "" +*ja.MediaType PlainPaperL/普通紙L: "" +*ja.MediaType RECYCLED/再生紙: "" +*ja.MediaType COLOR/色紙: "" +*ja.MediaType HEAVY1/厚紙1: "" +*ja.MediaType HEAVY2/厚紙2: "" +*ja.MediaType OHP/OHPフィルム: "" +*ja.MediaType LABELS/ラベル用紙: "" +*ja.MediaType ENVELOPE/封筒: "" +*ja.MediaType ROUGH1/ラフ紙1: "" +*ja.MediaType ROUGH2/ラフ紙2: "" +*ja.MediaType ROUGH3/ラフ紙3: "" +*ja.Translation InputSlot/給紙部 : "" +*ja.InputSlot Auto/自動: "" +*ja.Translation OutputBin/排紙先 : "" +*ja.OutputBin Auto/自動: "" +*ja.Translation CNSpecialPrintMode/特殊印字モード : "" +*ja.CNSpecialPrintMode False/使わない: "" +*ja.CNSpecialPrintMode Mode1/モード1: "" +*ja.CNSpecialPrintMode Mode2/モード2: "" +*ja.CNSpecialPrintMode Mode3/モード3: "" +*ja.CNSpecialPrintMode Mode4/モード4: "" +*ja.Translation Duplex/両面印刷: "" +*ja.Duplex None/しない: "" +*ja.Duplex DuplexNoTumble/長辺とじ: "" +*ja.Duplex DuplexTumble/短辺とじ: "" +*ja.Translation BindEdge/とじ方向: "" +*ja.BindEdge Left/長辺とじ(左): "" +*ja.BindEdge Top/短辺とじ(上): "" +*ja.Translation Collate/排紙方法: "" +*ja.Collate Group/グループ: "" +*ja.Translation CNHalftone/中間調 : "" +*ja.CNHalftone Resolution/解像度: "" +*ja.CNHalftone Gradation/階調: "" +*ja.CNHalftone ColorTone/色調: "" +*ja.Translation PageSize/原稿サイズ : "" +*ja.PageSize Letter/レター: "" +*ja.PageSize Legal/リーガル: "" +*ja.PageSize Statement/Statement: "" +*ja.PageSize Executive/エグゼクティブ: "" +*ja.PageSize A5/A5: "" +*ja.PageSize B5/B5: "" +*ja.PageSize A4/A4: "" +*ja.PageSize Monarch/封筒 Monarch: "" +*ja.PageSize Com10/封筒 No.10(COM10): "" +*ja.PageSize dl_envelope/封筒 DL: "" +*ja.PageSize Envelope_C5/封筒 C5: "" +*ja.PageSize Envelope_B5/封筒 B5: "" +*ja.PageSize Foolscap/Foolscap: "" +*ja.PageSize Index_3x5/Index Card: "" +*ja.PageSize 16K/16K: "" +*ja.Translation PageRegion/印刷領域: "" +*ja.PageRegion Letter/レター: "" +*ja.PageRegion Legal/リーガル: "" +*ja.PageRegion Statement/Statement: "" +*ja.PageRegion Executive/エグゼクティブ: "" +*ja.PageRegion A5/A5: "" +*ja.PageRegion B5/B5: "" +*ja.PageRegion A4/A4: "" +*ja.PageRegion Monarch/封筒 Monarch: "" +*ja.PageRegion Com10/封筒 No.10(COM10): "" +*ja.PageRegion dl_envelope/封筒 DL: "" +*ja.PageRegion Envelope_C5/封筒 C5: "" +*ja.PageRegion Envelope_B5/封筒 B5: "" +*ja.PageRegion Foolscap/Foolscap: "" +*ja.PageRegion Index_3x5/Index Card: "" +*ja.PageRegion 16K/16K: "" + +*ko.Translation Resolution/해상도: "" +*ko.Resolution 600/600dpi: "" +*ko.Translation CNDraftMode/토너 절약: "" +*ko.CNDraftMode True/설정: "" +*ko.CNDraftMode False/해제: "" +*ko.Translation MediaType/용지 종류: "" +*ko.MediaType PlainPaper/일반 용지: "" +*ko.MediaType PlainPaperL/일반 용지 L: "" +*ko.MediaType RECYCLED/재생 용지: "" +*ko.MediaType COLOR/컬러 용지: "" +*ko.MediaType HEAVY1/두꺼운 용지 1: "" +*ko.MediaType HEAVY2/두꺼운 용지 2: "" +*ko.MediaType OHP/투명 용지: "" +*ko.MediaType LABELS/라벨 용지: "" +*ko.MediaType ENVELOPE/봉투: "" +*ko.MediaType ROUGH1/러프지 1: "" +*ko.MediaType ROUGH2/러프지 2: "" +*ko.MediaType ROUGH3/러프지 3: "" +*ko.Translation InputSlot/용지 공급원: "" +*ko.InputSlot Auto/자동: "" +*ko.Translation OutputBin/용지 출력: "" +*ko.OutputBin Auto/자동: "" +*ko.Translation CNSpecialPrintMode/특수 인쇄 조정: "" +*ko.CNSpecialPrintMode False/해제: "" +*ko.CNSpecialPrintMode Mode1/모드 1: "" +*ko.CNSpecialPrintMode Mode2/모드 2: "" +*ko.CNSpecialPrintMode Mode3/모드 3: "" +*ko.CNSpecialPrintMode Mode4/모드 4: "" +*ko.Translation Duplex/양면 인쇄: "" +*ko.Duplex None/해제: "" +*ko.Duplex DuplexNoTumble/긴 가장자리: "" +*ko.Duplex DuplexTumble/짧은 가장자리: "" +*ko.Translation BindEdge/제본 위치: "" +*ko.BindEdge Left/긴 가장자리(왼쪽): "" +*ko.BindEdge Top/짧은 가장자리(위쪽): "" +*ko.Translation Collate/마무리: "" +*ko.Collate Group/페이지별 인쇄: "" +*ko.Translation CNHalftone/중간톤: "" +*ko.CNHalftone Resolution/해상도: "" +*ko.CNHalftone Gradation/계조: "" +*ko.CNHalftone ColorTone/색조: "" +*ko.Translation PageSize/페이지 크기: "" +*ko.PageSize Letter/Letter: "" +*ko.PageSize Legal/Legal: "" +*ko.PageSize Statement/Statement: "" +*ko.PageSize Executive/Executive: "" +*ko.PageSize A5/A5: "" +*ko.PageSize B5/B5: "" +*ko.PageSize A4/A4: "" +*ko.PageSize Monarch/Envelope Monarch: "" +*ko.PageSize Com10/Envelope No.10(COM10): "" +*ko.PageSize dl_envelope/Envelope DL: "" +*ko.PageSize Envelope_C5/Envelope C5: "" +*ko.PageSize Envelope_B5/Envelope B5: "" +*ko.PageSize Foolscap/Foolscap: "" +*ko.PageSize Index_3x5/Index Card: "" +*ko.PageSize 16K/16K: "" +*ko.Translation PageRegion/인쇄 영역: "" +*ko.PageRegion Letter/Letter: "" +*ko.PageRegion Legal/Legal: "" +*ko.PageRegion Statement/Statement: "" +*ko.PageRegion Executive/Executive: "" +*ko.PageRegion A5/A5: "" +*ko.PageRegion B5/B5: "" +*ko.PageRegion A4/A4: "" +*ko.PageRegion Monarch/Envelope Monarch: "" +*ko.PageRegion Com10/Envelope No.10(COM10): "" +*ko.PageRegion dl_envelope/Envelope DL: "" +*ko.PageRegion Envelope_C5/Envelope C5: "" +*ko.PageRegion Envelope_B5/Envelope B5: "" +*ko.PageRegion Foolscap/Foolscap: "" +*ko.PageRegion Index_3x5/Index Card: "" +*ko.PageRegion 16K/16K: "" + +*zh_CN.Translation Resolution/分辨率: "" +*zh_CN.Resolution 600/600 dpi: "" +*zh_CN.Translation CNDraftMode/节省墨粉: "" +*zh_CN.CNDraftMode True/开: "" +*zh_CN.CNDraftMode False/关: "" +*zh_CN.Translation MediaType/纸张类型: "" +*zh_CN.MediaType PlainPaper/普通纸: "" +*zh_CN.MediaType PlainPaperL/普通纸 L: "" +*zh_CN.MediaType RECYCLED/再生纸: "" +*zh_CN.MediaType COLOR/彩色纸: "" +*zh_CN.MediaType HEAVY1/重磅纸 1: "" +*zh_CN.MediaType HEAVY2/重磅纸 2: "" +*zh_CN.MediaType OHP/透明胶片: "" +*zh_CN.MediaType LABELS/标签: "" +*zh_CN.MediaType ENVELOPE/信封: "" +*zh_CN.MediaType ROUGH1/粗纸 1: "" +*zh_CN.MediaType ROUGH2/粗纸 2: "" +*zh_CN.MediaType ROUGH3/粗纸 3: "" +*zh_CN.Translation InputSlot/纸张来源: "" +*zh_CN.InputSlot Auto/自动: "" +*zh_CN.Translation OutputBin/纸张输出: "" +*zh_CN.OutputBin Auto/自动: "" +*zh_CN.Translation CNSpecialPrintMode/特殊打印调整: "" +*zh_CN.CNSpecialPrintMode False/关: "" +*zh_CN.CNSpecialPrintMode Mode1/模式 1: "" +*zh_CN.CNSpecialPrintMode Mode2/模式 2: "" +*zh_CN.CNSpecialPrintMode Mode3/模式 3: "" +*zh_CN.CNSpecialPrintMode Mode4/模式 4: "" +*zh_CN.Translation Duplex/双面打印: "" +*zh_CN.Duplex None/关: "" +*zh_CN.Duplex DuplexNoTumble/长边: "" +*zh_CN.Duplex DuplexTumble/短边: "" +*zh_CN.Translation BindEdge/装订位置: "" +*zh_CN.BindEdge Left/长边 (左): "" +*zh_CN.BindEdge Top/短边 (顶): "" +*zh_CN.Translation Collate/完成方式: "" +*zh_CN.Collate Group/分组: "" +*zh_CN.Translation CNHalftone/半色调: "" +*zh_CN.CNHalftone Resolution/分辨率: "" +*zh_CN.CNHalftone Gradation/渐变: "" +*zh_CN.CNHalftone ColorTone/颜色色调: "" +*zh_CN.Translation PageSize/页面尺寸: "" +*zh_CN.PageSize Letter/Letter: "" +*zh_CN.PageSize Legal/Legal: "" +*zh_CN.PageSize Statement/Statement: "" +*zh_CN.PageSize Executive/Executive: "" +*zh_CN.PageSize A5/A5: "" +*zh_CN.PageSize B5/B5: "" +*zh_CN.PageSize A4/A4: "" +*zh_CN.PageSize Monarch/Envelope Monarch: "" +*zh_CN.PageSize Com10/Envelope No.10 (COM10): "" +*zh_CN.PageSize dl_envelope/Envelope DL: "" +*zh_CN.PageSize Envelope_C5/Envelope C5: "" +*zh_CN.PageSize Envelope_B5/Envelope B5: "" +*zh_CN.PageSize Foolscap/Foolscap: "" +*zh_CN.PageSize Index_3x5/Index Card: "" +*zh_CN.PageSize 16K/16K: "" +*zh_CN.Translation PageRegion/打印区域: "" +*zh_CN.PageRegion Letter/Letter: "" +*zh_CN.PageRegion Legal/Legal: "" +*zh_CN.PageRegion Statement/Statement: "" +*zh_CN.PageRegion Executive/Executive: "" +*zh_CN.PageRegion A5/A5: "" +*zh_CN.PageRegion B5/B5: "" +*zh_CN.PageRegion A4/A4: "" +*zh_CN.PageRegion Monarch/Envelope Monarch: "" +*zh_CN.PageRegion Com10/Envelope No.10 (COM10): "" +*zh_CN.PageRegion dl_envelope/Envelope DL: "" +*zh_CN.PageRegion Envelope_C5/Envelope C5: "" +*zh_CN.PageRegion Envelope_B5/Envelope B5: "" +*zh_CN.PageRegion Foolscap/Foolscap: "" +*zh_CN.PageRegion Index_3x5/Index Card: "" +*zh_CN.PageRegion 16K/16K: "" + +*zh_TW.Translation Resolution/解析度: "" +*zh_TW.Resolution 600/600 dpi: "" +*zh_TW.Translation CNDraftMode/節省碳粉: "" +*zh_TW.CNDraftMode True/開: "" +*zh_TW.CNDraftMode False/關: "" +*zh_TW.Translation MediaType/紙張類型: "" +*zh_TW.MediaType PlainPaper/普通紙: "" +*zh_TW.MediaType PlainPaperL/普通紙 L: "" +*zh_TW.MediaType RECYCLED/再生紙: "" +*zh_TW.MediaType COLOR/彩色紙: "" +*zh_TW.MediaType HEAVY1/重磅紙 1: "" +*zh_TW.MediaType HEAVY2/重磅紙 2: "" +*zh_TW.MediaType OHP/投影片: "" +*zh_TW.MediaType LABELS/標籤: "" +*zh_TW.MediaType ENVELOPE/信封: "" +*zh_TW.MediaType ROUGH1/粗紙 1: "" +*zh_TW.MediaType ROUGH2/粗紙 2: "" +*zh_TW.MediaType ROUGH3/粗紙 3: "" +*zh_TW.Translation InputSlot/紙張來源: "" +*zh_TW.InputSlot Auto/自動: "" +*zh_TW.Translation OutputBin/紙張輸出: "" +*zh_TW.OutputBin Auto/自動: "" +*zh_TW.Translation CNSpecialPrintMode/特殊列印調整: "" +*zh_TW.CNSpecialPrintMode False/關: "" +*zh_TW.CNSpecialPrintMode Mode1/模式 1: "" +*zh_TW.CNSpecialPrintMode Mode2/模式 2: "" +*zh_TW.CNSpecialPrintMode Mode3/模式 3: "" +*zh_TW.CNSpecialPrintMode Mode4/模式 4: "" +*zh_TW.Translation Duplex/雙面列印: "" +*zh_TW.Duplex None/關: "" +*zh_TW.Duplex DuplexNoTumble/長邊: "" +*zh_TW.Duplex DuplexTumble/短邊: "" +*zh_TW.Translation BindEdge/裝訂位置: "" +*zh_TW.BindEdge Left/長邊 (左方): "" +*zh_TW.BindEdge Top/短邊 (頂端): "" +*zh_TW.Translation Collate/完稿: "" +*zh_TW.Collate Group/群組: "" +*zh_TW.Translation CNHalftone/半色調: "" +*zh_TW.CNHalftone Resolution/解析度: "" +*zh_TW.CNHalftone Gradation/漸層: "" +*zh_TW.CNHalftone ColorTone/色調: "" +*zh_TW.Translation PageSize/頁面大小: "" +*zh_TW.PageSize Letter/Letter: "" +*zh_TW.PageSize Legal/Legal: "" +*zh_TW.PageSize Statement/Statement: "" +*zh_TW.PageSize Executive/行政用紙 (Executive): "" +*zh_TW.PageSize A5/A5: "" +*zh_TW.PageSize B5/B5: "" +*zh_TW.PageSize A4/A4: "" +*zh_TW.PageSize Monarch/Envelope Monarch: "" +*zh_TW.PageSize Com10/Envelope No.10 (COM10): "" +*zh_TW.PageSize dl_envelope/Envelope DL: "" +*zh_TW.PageSize Envelope_C5/Envelope C5: "" +*zh_TW.PageSize Envelope_B5/Envelope B5: "" +*zh_TW.PageSize Foolscap/Foolscap: "" +*zh_TW.PageSize Index_3x5/Index Card: "" +*zh_TW.PageSize 16K/16K: "" +*zh_TW.Translation PageRegion/列印區域: "" +*zh_TW.PageRegion Letter/Letter: "" +*zh_TW.PageRegion Legal/Legal: "" +*zh_TW.PageRegion Statement/Statement: "" +*zh_TW.PageRegion Executive/行政用紙 (Executive): "" +*zh_TW.PageRegion A5/A5: "" +*zh_TW.PageRegion B5/B5: "" +*zh_TW.PageRegion A4/A4: "" +*zh_TW.PageRegion Monarch/Envelope Monarch: "" +*zh_TW.PageRegion Com10/Envelope No.10 (COM10): "" +*zh_TW.PageRegion dl_envelope/Envelope DL: "" +*zh_TW.PageRegion Envelope_C5/Envelope C5: "" +*zh_TW.PageRegion Envelope_B5/Envelope B5: "" +*zh_TW.PageRegion Foolscap/Foolscap: "" +*zh_TW.PageRegion Index_3x5/Index Card: "" +*zh_TW.PageRegion 16K/16K: "" diff --git a/cups/ppd/DEFAULT.ppd.O b/cups/ppd/DEFAULT.ppd.O new file mode 100644 index 0000000..4bb5522 --- /dev/null +++ b/cups/ppd/DEFAULT.ppd.O @@ -0,0 +1,496 @@ +*PPD-Adobe: "4.3" +*% +*% For information on using this, and to obtain the required backend +*% script, consult http://www.openprinting.org/ +*% +*% This file is published under the GNU General Public License +*% +*% PPD-O-MATIC (4.0.0 or newer) generated this PPD file. It is for use with +*% all programs and environments which use PPD files for dealing with +*% printer capability information. The printer must be configured with the +*% "foomatic-rip" backend filter script of Foomatic 4.0.0 or newer. This +*% file and "foomatic-rip" work together to support PPD-controlled printer +*% driver option access with all supported printer drivers and printing +*% spoolers. +*% +*% To save this file on your disk, wait until the download has completed +*% (the animation of the browser logo must stop) and then use the +*% "Save as..." command in the "File" menu of your browser or in the +*% pop-up manu when you click on this document with the right mouse button. +*% DO NOT cut and paste this file into an editor with your mouse. This can +*% introduce additional line breaks which lead to unexpected results. +*% +*% You may save this file as 'Generic-PCL_6_PCL_XL_Printer-hpijs-pcl5c.ppd' +*% +*% +*FormatVersion: "4.3" +*FileVersion: "1.1" +*LanguageVersion: English +*LanguageEncoding: ISOLatin1 +*PCFileName: "HPIJS-PC.PPD" +*Manufacturer: "Generic" +*Product: "(PCL 6/PCL XL Printer)" +*cupsVersion: 1.0 +*cupsManualCopies: True +*cupsModelNumber: 2 +*cupsFilter: "application/vnd.cups-postscript 100 foomatic-rip" +*cupsFilter: "application/vnd.cups-pdf 0 foomatic-rip" +*%pprRIP: foomatic-rip other +*ModelName: "Generic PCL 6/PCL XL Printer" +*ShortNickName: "Gen. PCL 6/PCL XL P. hpi.-pcl5c" +*NickName: "Generic PCL 6/PCL XL Printer Foomatic/hpijs-pcl5c" +*PSVersion: "(3010.000) 550" +*PSVersion: "(3010.000) 651" +*PSVersion: "(3010.000) 652" +*PSVersion: "(3010.000) 653" +*PSVersion: "(3010.000) 704" +*PSVersion: "(3010.000) 705" +*PSVersion: "(3010.000) 800" +*PSVersion: "(3010.000) 815" +*PSVersion: "(3010.000) 850" +*PSVersion: "(3010.000) 860" +*PSVersion: "(3010.000) 861" +*PSVersion: "(3010.000) 862" +*PSVersion: "(3010.000) 863" +*PSVersion: "(3010.000) 864" +*PSVersion: "(3010.000) 870" +*LanguageLevel: "3" +*ColorDevice: True +*DefaultColorSpace: RGB +*FileSystem: False +*Throughput: "1" +*LandscapeOrientation: Plus90 +*TTRasterizer: Type42 +*1284DeviceID: "DRV:Dhpijs-pcl5c,R0,M0,Sv,TI,X600,Y600,C1,t100,l100,g100,p100,s70;" + +*driverName hpijs-pcl5c: "HP's HPIJS driver - PPDs for compatible PCL-5c-based non-HP color laser printers" +*driverType I/IJS: "" +*driverUrl: "http://hplipopensource.com/" +*driverObsolete: False +*driverSupplier: "Hewlett-Packard" +*driverManufacturerSupplied: False +*driverLicense: "BSD" +*driverSupportContactVoluntary: "https://launchpad.net/hplip HPLIP support and bug tracking system" +*driverMaxResolution: 600 600 +*driverColor: True +*driverTextSupport: 100 +*driverLineartSupport: 100 +*driverGraphicsSupport: 100 +*driverPhotoSupport: 100 +*driverRenderingSpeed: 70 + +*DefaultResolution: 600dpi + + + +*HWMargins: 18 14.40 18 14.4 +*VariablePaperSize: True +*MaxMediaWidth: 100000 +*MaxMediaHeight: 100000 +*NonUIOrderDependency: 105 AnySetup *CustomPageSize +*CustomPageSize True: "pop pop pop pop pop +%% FoomaticRIPOptionSetting: PageSize=Custom" +*End +*FoomaticRIPOptionSetting PageSize=Custom: " -dDEVICEWIDTHPOINTS=0 -dD&& +EVICEHEIGHTPOINTS=0" +*End +*ParamCustomPageSize Width: 1 points 36 100000 +*ParamCustomPageSize Height: 2 points 36 100000 +*ParamCustomPageSize Orientation: 3 int 0 0 +*ParamCustomPageSize WidthOffset: 4 points 0 0 +*ParamCustomPageSize HeightOffset: 5 points 0 0 + +*FoomaticIDs: Generic-PCL_6_PCL_XL_Printer hpijs-pcl5c +*FoomaticRIPCommandLine: "gs -q -dBATCH -dPARANOIDSAFER -dQUIET -dNOPA&& +USE -dNOMEDIAATTRS -dNOINTERPOLATE -sDEVICE=ijs -sIjsServer=hpijs -sDe&& +viceManufacturer="HEWLETT-PACKARD" -sDeviceModel="hp co&& +lor LaserJet"%A%B%C -dIjsUseOutputFD%Z -sOutputFile=- -" +*End + +*OpenGroup: General/General + +*OpenUI *PrintoutMode/Print Quality: PickOne +*FoomaticRIPOption PrintoutMode: enum Composite B +*OrderDependency: 10 AnySetup *PrintoutMode +*DefaultPrintoutMode: Normal +*PrintoutMode Draft/Draft: "%% FoomaticRIPOptionSetting: PrintoutMode=Draft" +*FoomaticRIPOptionSetting PrintoutMode=Draft: "Quality=150DraftColorCM&& +YK" +*End +*PrintoutMode Draft.Gray/Draft Grayscale: "%% FoomaticRIPOptionSetting: PrintoutMode=Draft.Gray" +*FoomaticRIPOptionSetting PrintoutMode=Draft.Gray: "Quality=150DraftGr&& +ayscaleCMYK" +*End +*PrintoutMode Normal/Normal: "%% FoomaticRIPOptionSetting: PrintoutMode=Normal" +*FoomaticRIPOptionSetting PrintoutMode=Normal: "Quality=300ColorCMYK" +*PrintoutMode Normal.Gray/Normal Grayscale: "%% FoomaticRIPOptionSetting: PrintoutMode=Normal.Gray" +*FoomaticRIPOptionSetting PrintoutMode=Normal.Gray: "Quality=300Graysc&& +aleCMYK" +*End +*PrintoutMode High/High Quality: "%% FoomaticRIPOptionSetting: PrintoutMode=High" +*FoomaticRIPOptionSetting PrintoutMode=High: "Quality=600BestColorCMYK&& +" +*End +*PrintoutMode High.Gray/High Quality Grayscale: "%% FoomaticRIPOptionSetting: PrintoutMode=High.Gray" +*FoomaticRIPOptionSetting PrintoutMode=High.Gray: "Quality=600Grayscal&& +eCMYK" +*End +*CloseUI: *PrintoutMode + +*OpenUI *InputSlot/Media Source: PickOne +*FoomaticRIPOption InputSlot: enum CmdLine C +*OrderDependency: 100 AnySetup *InputSlot +*DefaultInputSlot: Default +*InputSlot Default/Printer Default: "%% FoomaticRIPOptionSetting: InputSlot=Default" +*FoomaticRIPOptionSetting InputSlot=Default: ",PS:MediaPosition=7" +*InputSlot Upper/Upper Tray: "%% FoomaticRIPOptionSetting: InputSlot=Upper" +*FoomaticRIPOptionSetting InputSlot=Upper: ",PS:MediaPosition=1" +*InputSlot Lower/Lower Tray: "%% FoomaticRIPOptionSetting: InputSlot=Lower" +*FoomaticRIPOptionSetting InputSlot=Lower: ",PS:MediaPosition=4" +*InputSlot Envelope/Envelope Feeder: "%% FoomaticRIPOptionSetting: InputSlot=Envelope" +*FoomaticRIPOptionSetting InputSlot=Envelope: ",PS:MediaPosition=3" +*InputSlot LargeCapacity/Large Capacity Tray: "%% FoomaticRIPOptionSetting: InputSlot=LargeCapacity" +*FoomaticRIPOptionSetting InputSlot=LargeCapacity: ",PS:MediaPosition=&& +5" +*End +*InputSlot Manual/Manual Feeder: "%% FoomaticRIPOptionSetting: InputSlot=Manual" +*FoomaticRIPOptionSetting InputSlot=Manual: ",PS:MediaPosition=2" +*InputSlot MPTray/Multipurpose Tray: "%% FoomaticRIPOptionSetting: InputSlot=MPTray" +*FoomaticRIPOptionSetting InputSlot=MPTray: ",PS:MediaPosition=8" +*CloseUI: *InputSlot + +*OpenUI *Duplex/Double-Sided Printing: PickOne +*FoomaticRIPOption Duplex: enum Composite A +*OrderDependency: 100 AnySetup *Duplex +*DefaultDuplex: None +*Duplex DuplexNoTumble/Flip on Long Edge (Standard): "%% FoomaticRIPOptionSetting: Duplex=DuplexNoTumble" +*FoomaticRIPOptionSetting Duplex=DuplexNoTumble: "" +*Duplex DuplexTumble/On (Flip on Short Edge): "%% FoomaticRIPOptionSetting: Duplex=DuplexTumble" +*FoomaticRIPOptionSetting Duplex=DuplexTumble: "" +*Duplex None/Off: "%% FoomaticRIPOptionSetting: Duplex=None" +*FoomaticRIPOptionSetting Duplex=None: "" +*CloseUI: *Duplex + +*OpenUI *PageSize/Page Size: PickOne +*FoomaticRIPOption PageSize: enum CmdLine A +*OrderDependency: 105 AnySetup *PageSize +*DefaultPageSize: A4 +*PageSize Letter/Letter: "%% FoomaticRIPOptionSetting: PageSize=Letter" +*FoomaticRIPOptionSetting PageSize=Letter: " -dDEVICEWIDTHPOINTS=612 -&& +dDEVICEHEIGHTPOINTS=792" +*End +*PageSize A4/A4: "%% FoomaticRIPOptionSetting: PageSize=A4" +*FoomaticRIPOptionSetting PageSize=A4: " -dDEVICEWIDTHPOINTS=595 -dDEV&& +ICEHEIGHTPOINTS=842" +*End +*PageSize Photo/Photo or 4x6 inch index card: "%% FoomaticRIPOptionSetting: PageSize=Photo" +*FoomaticRIPOptionSetting PageSize=Photo: " -dDEVICEWIDTHPOINTS=288 -d&& +DEVICEHEIGHTPOINTS=432" +*End +*PageSize Photo5x7/Photo or 5x7 inch index card: "%% FoomaticRIPOptionSetting: PageSize=Photo5x7" +*FoomaticRIPOptionSetting PageSize=Photo5x7: " -dDEVICEWIDTHPOINTS=360&& + -dDEVICEHEIGHTPOINTS=504" +*End +*PageSize 3x5/3x5 inch index card: "%% FoomaticRIPOptionSetting: PageSize=3x5" +*FoomaticRIPOptionSetting PageSize=3x5: " -dDEVICEWIDTHPOINTS=216 -dDE&& +VICEHEIGHTPOINTS=360" +*End +*PageSize 5x8/5x8 inch index card: "%% FoomaticRIPOptionSetting: PageSize=5x8" +*FoomaticRIPOptionSetting PageSize=5x8: " -dDEVICEWIDTHPOINTS=360 -dDE&& +VICEHEIGHTPOINTS=576" +*End +*PageSize A3/A3: "%% FoomaticRIPOptionSetting: PageSize=A3" +*FoomaticRIPOptionSetting PageSize=A3: " -dDEVICEWIDTHPOINTS=842 -dDEV&& +ICEHEIGHTPOINTS=1190" +*End +*PageSize A5/A5: "%% FoomaticRIPOptionSetting: PageSize=A5" +*FoomaticRIPOptionSetting PageSize=A5: " -dDEVICEWIDTHPOINTS=420 -dDEV&& +ICEHEIGHTPOINTS=595" +*End +*PageSize A6/A6: "%% FoomaticRIPOptionSetting: PageSize=A6" +*FoomaticRIPOptionSetting PageSize=A6: " -dDEVICEWIDTHPOINTS=297 -dDEV&& +ICEHEIGHTPOINTS=420" +*End +*PageSize B4JIS/B4 (JIS): "%% FoomaticRIPOptionSetting: PageSize=B4JIS" +*FoomaticRIPOptionSetting PageSize=B4JIS: " -dDEVICEWIDTHPOINTS=729 -d&& +DEVICEHEIGHTPOINTS=1033" +*End +*PageSize B5JIS/B5 (JIS): "%% FoomaticRIPOptionSetting: PageSize=B5JIS" +*FoomaticRIPOptionSetting PageSize=B5JIS: " -dDEVICEWIDTHPOINTS=516 -d&& +DEVICEHEIGHTPOINTS=729" +*End +*PageSize Env10/Envelope #10: "%% FoomaticRIPOptionSetting: PageSize=Env10" +*FoomaticRIPOptionSetting PageSize=Env10: " -dDEVICEWIDTHPOINTS=297 -d&& +DEVICEHEIGHTPOINTS=684" +*End +*PageSize EnvC5/Envelope C5: "%% FoomaticRIPOptionSetting: PageSize=EnvC5" +*FoomaticRIPOptionSetting PageSize=EnvC5: " -dDEVICEWIDTHPOINTS=459 -d&& +DEVICEHEIGHTPOINTS=649" +*End +*PageSize EnvC6/Envelope C6: "%% FoomaticRIPOptionSetting: PageSize=EnvC6" +*FoomaticRIPOptionSetting PageSize=EnvC6: " -dDEVICEWIDTHPOINTS=323 -d&& +DEVICEHEIGHTPOINTS=459" +*End +*PageSize EnvDL/Envelope DL: "%% FoomaticRIPOptionSetting: PageSize=EnvDL" +*FoomaticRIPOptionSetting PageSize=EnvDL: " -dDEVICEWIDTHPOINTS=312 -d&& +DEVICEHEIGHTPOINTS=624" +*End +*PageSize EnvISOB5/Envelope B5: "%% FoomaticRIPOptionSetting: PageSize=EnvISOB5" +*FoomaticRIPOptionSetting PageSize=EnvISOB5: " -dDEVICEWIDTHPOINTS=499&& + -dDEVICEHEIGHTPOINTS=709" +*End +*PageSize EnvMonarch/Envelope Monarch: "%% FoomaticRIPOptionSetting: PageSize=EnvMonarch" +*FoomaticRIPOptionSetting PageSize=EnvMonarch: " -dDEVICEWIDTHPOINTS=2&& +79 -dDEVICEHEIGHTPOINTS=540" +*End +*PageSize Executive/Executive: "%% FoomaticRIPOptionSetting: PageSize=Executive" +*FoomaticRIPOptionSetting PageSize=Executive: " -dDEVICEWIDTHPOINTS=52&& +2 -dDEVICEHEIGHTPOINTS=756" +*End +*PageSize FLSA/American Foolscap: "%% FoomaticRIPOptionSetting: PageSize=FLSA" +*FoomaticRIPOptionSetting PageSize=FLSA: " -dDEVICEWIDTHPOINTS=612 -dD&& +EVICEHEIGHTPOINTS=936" +*End +*PageSize Hagaki/Hagaki: "%% FoomaticRIPOptionSetting: PageSize=Hagaki" +*FoomaticRIPOptionSetting PageSize=Hagaki: " -dDEVICEWIDTHPOINTS=283 -&& +dDEVICEHEIGHTPOINTS=420" +*End +*PageSize Ledger/Ledger: "%% FoomaticRIPOptionSetting: PageSize=Ledger" +*FoomaticRIPOptionSetting PageSize=Ledger: " -dDEVICEWIDTHPOINTS=792 -&& +dDEVICEHEIGHTPOINTS=1224" +*End +*PageSize Legal/Legal: "%% FoomaticRIPOptionSetting: PageSize=Legal" +*FoomaticRIPOptionSetting PageSize=Legal: " -dDEVICEWIDTHPOINTS=612 -d&& +DEVICEHEIGHTPOINTS=1008" +*End +*PageSize Oufuku/Oufuku-Hagaki: "%% FoomaticRIPOptionSetting: PageSize=Oufuku" +*FoomaticRIPOptionSetting PageSize=Oufuku: " -dDEVICEWIDTHPOINTS=420 -&& +dDEVICEHEIGHTPOINTS=567" +*End +*PageSize SuperB/Super B: "%% FoomaticRIPOptionSetting: PageSize=SuperB" +*FoomaticRIPOptionSetting PageSize=SuperB: " -dDEVICEWIDTHPOINTS=936 -&& +dDEVICEHEIGHTPOINTS=1368" +*End +*PageSize w558h774/16K: "%% FoomaticRIPOptionSetting: PageSize=w558h774" +*FoomaticRIPOptionSetting PageSize=w558h774: " -dDEVICEWIDTHPOINTS=558&& + -dDEVICEHEIGHTPOINTS=774" +*End +*PageSize w612h935/Executive (JIS): "%% FoomaticRIPOptionSetting: PageSize=w612h935" +*FoomaticRIPOptionSetting PageSize=w612h935: " -dDEVICEWIDTHPOINTS=612&& + -dDEVICEHEIGHTPOINTS=935" +*End +*PageSize w774h1116/8K: "%% FoomaticRIPOptionSetting: PageSize=w774h1116" +*FoomaticRIPOptionSetting PageSize=w774h1116: " -dDEVICEWIDTHPOINTS=77&& +4 -dDEVICEHEIGHTPOINTS=1116" +*End +*CloseUI: *PageSize + +*OpenUI *PageRegion: PickOne +*OrderDependency: 105 AnySetup *PageRegion +*DefaultPageRegion: A4 +*PageRegion Letter/Letter: "%% FoomaticRIPOptionSetting: PageSize=Letter" +*PageRegion A4/A4: "%% FoomaticRIPOptionSetting: PageSize=A4" +*PageRegion Photo/Photo or 4x6 inch index card: "%% FoomaticRIPOptionSetting: PageSize=Photo" +*PageRegion Photo5x7/Photo or 5x7 inch index card: "%% FoomaticRIPOptionSetting: PageSize=Photo5x7" +*PageRegion 3x5/3x5 inch index card: "%% FoomaticRIPOptionSetting: PageSize=3x5" +*PageRegion 5x8/5x8 inch index card: "%% FoomaticRIPOptionSetting: PageSize=5x8" +*PageRegion A3/A3: "%% FoomaticRIPOptionSetting: PageSize=A3" +*PageRegion A5/A5: "%% FoomaticRIPOptionSetting: PageSize=A5" +*PageRegion A6/A6: "%% FoomaticRIPOptionSetting: PageSize=A6" +*PageRegion B4JIS/B4 (JIS): "%% FoomaticRIPOptionSetting: PageSize=B4JIS" +*PageRegion B5JIS/B5 (JIS): "%% FoomaticRIPOptionSetting: PageSize=B5JIS" +*PageRegion Env10/Envelope #10: "%% FoomaticRIPOptionSetting: PageSize=Env10" +*PageRegion EnvC5/Envelope C5: "%% FoomaticRIPOptionSetting: PageSize=EnvC5" +*PageRegion EnvC6/Envelope C6: "%% FoomaticRIPOptionSetting: PageSize=EnvC6" +*PageRegion EnvDL/Envelope DL: "%% FoomaticRIPOptionSetting: PageSize=EnvDL" +*PageRegion EnvISOB5/Envelope B5: "%% FoomaticRIPOptionSetting: PageSize=EnvISOB5" +*PageRegion EnvMonarch/Envelope Monarch: "%% FoomaticRIPOptionSetting: PageSize=EnvMonarch" +*PageRegion Executive/Executive: "%% FoomaticRIPOptionSetting: PageSize=Executive" +*PageRegion FLSA/American Foolscap: "%% FoomaticRIPOptionSetting: PageSize=FLSA" +*PageRegion Hagaki/Hagaki: "%% FoomaticRIPOptionSetting: PageSize=Hagaki" +*PageRegion Ledger/Ledger: "%% FoomaticRIPOptionSetting: PageSize=Ledger" +*PageRegion Legal/Legal: "%% FoomaticRIPOptionSetting: PageSize=Legal" +*PageRegion Oufuku/Oufuku-Hagaki: "%% FoomaticRIPOptionSetting: PageSize=Oufuku" +*PageRegion SuperB/Super B: "%% FoomaticRIPOptionSetting: PageSize=SuperB" +*PageRegion w558h774/16K: "%% FoomaticRIPOptionSetting: PageSize=w558h774" +*PageRegion w612h935/Executive (JIS): "%% FoomaticRIPOptionSetting: PageSize=w612h935" +*PageRegion w774h1116/8K: "%% FoomaticRIPOptionSetting: PageSize=w774h1116" +*CloseUI: *PageRegion + +*DefaultImageableArea: Letter +*ImageableArea Letter/Letter: "18 14.40 594 777.60" +*ImageableArea A4/A4: "18 14.40 577 827.60" +*ImageableArea Photo/Photo or 4x6 inch index card: "18 14.40 270 417.60" +*ImageableArea Photo5x7/Photo or 5x7 inch index card: "18 14.40 342 489.60" +*ImageableArea 3x5/3x5 inch index card: "18 14.40 198 345.60" +*ImageableArea 5x8/5x8 inch index card: "18 14.40 342 561.60" +*ImageableArea A3/A3: "18 14.40 824 1175.60" +*ImageableArea A5/A5: "18 14.40 402 580.60" +*ImageableArea A6/A6: "18 14.40 279 405.60" +*ImageableArea B4JIS/B4 (JIS): "18 14.40 711 1018.60" +*ImageableArea B5JIS/B5 (JIS): "18 14.40 498 714.60" +*ImageableArea Env10/Envelope #10: "18 14.40 279 669.60" +*ImageableArea EnvC5/Envelope C5: "18 14.40 441 634.60" +*ImageableArea EnvC6/Envelope C6: "18 14.40 305 444.60" +*ImageableArea EnvDL/Envelope DL: "18 14.40 294 609.60" +*ImageableArea EnvISOB5/Envelope B5: "18 14.40 481 694.60" +*ImageableArea EnvMonarch/Envelope Monarch: "18 14.40 261 525.60" +*ImageableArea Executive/Executive: "18 14.40 504 741.60" +*ImageableArea FLSA/American Foolscap: "18 14.40 594 921.60" +*ImageableArea Hagaki/Hagaki: "18 14.40 265 405.60" +*ImageableArea Ledger/Ledger: "18 14.40 774 1209.60" +*ImageableArea Legal/Legal: "18 14.40 594 993.60" +*ImageableArea Oufuku/Oufuku-Hagaki: "18 14.40 402 552.60" +*ImageableArea SuperB/Super B: "18 14.40 918 1353.60" +*ImageableArea w558h774/16K: "18 14.40 540 759.60" +*ImageableArea w612h935/Executive (JIS): "18 14.40 594 920.60" +*ImageableArea w774h1116/8K: "18 14.40 756 1101.60" + +*DefaultPaperDimension: Letter +*PaperDimension Letter/Letter: "612 792" +*PaperDimension A4/A4: "595 842" +*PaperDimension Photo/Photo or 4x6 inch index card: "288 432" +*PaperDimension Photo5x7/Photo or 5x7 inch index card: "360 504" +*PaperDimension 3x5/3x5 inch index card: "216 360" +*PaperDimension 5x8/5x8 inch index card: "360 576" +*PaperDimension A3/A3: "842 1190" +*PaperDimension A5/A5: "420 595" +*PaperDimension A6/A6: "297 420" +*PaperDimension B4JIS/B4 (JIS): "729 1033" +*PaperDimension B5JIS/B5 (JIS): "516 729" +*PaperDimension Env10/Envelope #10: "297 684" +*PaperDimension EnvC5/Envelope C5: "459 649" +*PaperDimension EnvC6/Envelope C6: "323 459" +*PaperDimension EnvDL/Envelope DL: "312 624" +*PaperDimension EnvISOB5/Envelope B5: "499 709" +*PaperDimension EnvMonarch/Envelope Monarch: "279 540" +*PaperDimension Executive/Executive: "522 756" +*PaperDimension FLSA/American Foolscap: "612 936" +*PaperDimension Hagaki/Hagaki: "283 420" +*PaperDimension Ledger/Ledger: "792 1224" +*PaperDimension Legal/Legal: "612 1008" +*PaperDimension Oufuku/Oufuku-Hagaki: "420 567" +*PaperDimension SuperB/Super B: "936 1368" +*PaperDimension w558h774/16K: "558 774" +*PaperDimension w612h935/Executive (JIS): "612 935" +*PaperDimension w774h1116/8K: "774 1116" + +*OpenUI *Duplex/Double-Sided Printing: PickOne +*FoomaticRIPOption Duplex: enum CmdLine A +*OrderDependency: 120 AnySetup *Duplex +*DefaultDuplex: None +*Duplex DuplexNoTumble/Long Edge (Standard): "%% FoomaticRIPOptionSetting: Duplex=DuplexNoTumble" +*FoomaticRIPOptionSetting Duplex=DuplexNoTumble: " -dDuplex=true -dTum&& +ble=false" +*End +*Duplex DuplexTumble/Short Edge (Flip): "%% FoomaticRIPOptionSetting: Duplex=DuplexTumble" +*FoomaticRIPOptionSetting Duplex=DuplexTumble: " -dDuplex=true -dTumbl&& +e=true" +*End +*Duplex None/Off: "%% FoomaticRIPOptionSetting: Duplex=None" +*FoomaticRIPOptionSetting Duplex=None: " -dDuplex=false" +*CloseUI: *Duplex + +*CloseGroup: General + +*OpenGroup: PrintoutMode/Printout Mode + +*OpenUI *Quality/Resolution, Quality: PickOne +*FoomaticRIPOption Quality: enum CmdLine B +*OrderDependency: 100 AnySetup *Quality +*DefaultQuality: FromPrintoutMode +*Quality FromPrintoutMode/Controlled by 'Print Quality': "%% FoomaticRIPOptionSetting: Quality=@PrintoutMode" +*Quality 150BestColorCMYK/150 dpi, Best, Color: "%% FoomaticRIPOptionSetting: Quality=150BestColorCMYK" +*FoomaticRIPOptionSetting Quality=150BestColorCMYK: " -r150 -sIjsParam&& +s=Quality:Quality=2,Quality:ColorMode=2,Quality:MediaType=0,Quality:Pe&& +nSet=2" +*End +*Quality 150ColorCMYK/150 dpi, Color: "%% FoomaticRIPOptionSetting: Quality=150ColorCMYK" +*FoomaticRIPOptionSetting Quality=150ColorCMYK: " -r150 -sIjsParams=Qu&& +ality:Quality=0,Quality:ColorMode=2,Quality:MediaType=0,Quality:PenSet&& +=2" +*End +*Quality 150DraftColorCMYK/150 dpi, Draft, Color: "%% FoomaticRIPOptionSetting: Quality=150DraftColorCMYK" +*FoomaticRIPOptionSetting Quality=150DraftColorCMYK: " -r150 -sIjsPara&& +ms=Quality:Quality=1,Quality:ColorMode=2,Quality:MediaType=0,Quality:P&& +enSet=2" +*End +*Quality 150DraftGrayscaleCMYK/150 dpi, Draft, Grayscale: "%% FoomaticRIPOptionSetting: Quality=150DraftGrayscaleCMYK" +*FoomaticRIPOptionSetting Quality=150DraftGrayscaleCMYK: " -r150 -sIjs&& +Params=Quality:Quality=1,Quality:ColorMode=0,Quality:MediaType=0,Quali&& +ty:PenSet=2" +*End +*Quality 150GrayscaleCMYK/150 dpi, Grayscale: "%% FoomaticRIPOptionSetting: Quality=150GrayscaleCMYK" +*FoomaticRIPOptionSetting Quality=150GrayscaleCMYK: " -r150 -sIjsParam&& +s=Quality:Quality=0,Quality:ColorMode=0,Quality:MediaType=0,Quality:Pe&& +nSet=2" +*End +*Quality 300BestColorCMYK/300 dpi, Best, Color: "%% FoomaticRIPOptionSetting: Quality=300BestColorCMYK" +*FoomaticRIPOptionSetting Quality=300BestColorCMYK: " -r300 -sIjsParam&& +s=Quality:Quality=2,Quality:ColorMode=2,Quality:MediaType=0,Quality:Pe&& +nSet=2" +*End +*Quality 300ColorCMYK/300 DPI, Color: "%% FoomaticRIPOptionSetting: Quality=300ColorCMYK" +*FoomaticRIPOptionSetting Quality=300ColorCMYK: " -r300 -sIjsParams=Qu&& +ality:Quality=0,Quality:ColorMode=2,Quality:MediaType=0,Quality:PenSet&& +=2" +*End +*Quality 300GrayscaleCMYK/300 dpi, Grayscale: "%% FoomaticRIPOptionSetting: Quality=300GrayscaleCMYK" +*FoomaticRIPOptionSetting Quality=300GrayscaleCMYK: " -r300 -sIjsParam&& +s=Quality:Quality=0,Quality:ColorMode=0,Quality:MediaType=0,Quality:Pe&& +nSet=2" +*End +*Quality 600BestColorCMYK/600 dpi, Best, Color: "%% FoomaticRIPOptionSetting: Quality=600BestColorCMYK" +*FoomaticRIPOptionSetting Quality=600BestColorCMYK: " -r600 -sIjsParam&& +s=Quality:Quality=2,Quality:ColorMode=2,Quality:MediaType=0,Quality:Pe&& +nSet=2" +*End +*Quality 600GrayscaleCMYK/600 DPI, Grayscale: "%% FoomaticRIPOptionSetting: Quality=600GrayscaleCMYK" +*FoomaticRIPOptionSetting Quality=600GrayscaleCMYK: " -r600 -sIjsParam&& +s=Quality:Quality=0,Quality:ColorMode=0,Quality:MediaType=0,Quality:Pe&& +nSet=2" +*End +*CloseUI: *Quality + +*CloseGroup: PrintoutMode + + +*% Generic boilerplate PPD stuff as standard PostScript fonts and so on + +*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 + diff --git a/cups/printers.conf b/cups/printers.conf new file mode 100644 index 0000000..a98e620 --- /dev/null +++ b/cups/printers.conf @@ -0,0 +1,24 @@ +# Printer configuration file for CUPS v2.3.3op2 +# Written by cupsd +# DO NOT EDIT THIS FILE WHEN CUPSD IS RUNNING +NextPrinterId 2 + +PrinterId 1 +UUID urn:uuid:7c17efda-9fe6-3e3a-4aca-76806149a3b3 +Info Canon MF4500 Series +Location Local Printer +MakeModel Canon MF4500 Series UFRII LT +DeviceURI usb://Canon/MF4500%20Series?serial=000000000000&interface=1 +State Idle +StateTime 1683143895 +ConfigTime 1683137948 +Type 8393940 +Accepting Yes +Shared No +JobSheets none none +QuotaPeriod 0 +PageLimit 0 +KLimit 0 +OpPolicy default +ErrorPolicy retry-job + diff --git a/cups/printers.conf.O b/cups/printers.conf.O new file mode 100644 index 0000000..d76916a --- /dev/null +++ b/cups/printers.conf.O @@ -0,0 +1,24 @@ +# Printer configuration file for CUPS v2.3.3op2 +# Written by cupsd +# DO NOT EDIT THIS FILE WHEN CUPSD IS RUNNING +NextPrinterId 2 + +PrinterId 1 +UUID urn:uuid:7c17efda-9fe6-3e3a-4aca-76806149a3b3 +Info Canon MF4500 Series +Location Local Printer +MakeModel Canon MF4500 Series UFRII LT +DeviceURI usb://Canon/MF4500%20Series?serial=000000000000&interface=1 +State Idle +StateTime 1683137963 +ConfigTime 1683137948 +Type 8393940 +Accepting Yes +Shared No +JobSheets none none +QuotaPeriod 0 +PageLimit 0 +KLimit 0 +OpPolicy default +ErrorPolicy retry-job + diff --git a/cupsd.conf.txt b/cupsd.conf.txt new file mode 100644 index 0000000..02a9413 --- /dev/null +++ b/cupsd.conf.txt @@ -0,0 +1,196 @@ +# +# 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 + +# Specifies the maximum size of the log files before they are rotated. The value "0" disables log rotation. +MaxLogSize 0 + +# Default error policy for printers +ErrorPolicy retry-job + +# Allow remote access +Listen *:631 +Listen /var/run/cups/cups.sock + +# Show shared printers on the local network. +Browsing Yes +BrowseLocalProtocols dnssd + +# Default authentication type, when authentication is required... +DefaultAuthType Basic +DefaultEncryption IfRequested + +# Web interface setting... +WebInterface Yes + +# Timeout after cupsd exits if idle (applied only if cupsd runs on-demand - with -l) +IdleExitTimeout 60 + +# Restrict access to the server... + + Order allow,deny + Allow all + + +# Restrict access to the admin pages... + + Order allow,deny + Allow all + + +# Restrict access to configuration files... + + AuthType Default + Require user @SYSTEM + Order allow,deny + Allow all + + +# Restrict access to log files... + + AuthType Default + Require user @SYSTEM + Order allow,deny + Allow all + + +# Set the default printer/job policies... + + # Job/subscription privacy... + JobPrivateAccess default + JobPrivateValues default + SubscriptionPrivateAccess default + SubscriptionPrivateValues default + + # Job-related operations must be done by the owner or an administrator... + + Order deny,allow + + + + Require user @OWNER @SYSTEM + Order deny,allow + + + # All administration operations require an administrator to authenticate... + + AuthType Default + Require user @SYSTEM + Order deny,allow + + + # All printer operations require a printer operator to authenticate... + + AuthType Default + Require user @SYSTEM + Order deny,allow + + + # Only the owner or an administrator can cancel or authenticate a job... + + Require user @OWNER @SYSTEM + Order deny,allow + + + + Order deny,allow + + + +# Set the authenticated printer/job policies... + + # Job/subscription privacy... + JobPrivateAccess default + JobPrivateValues default + SubscriptionPrivateAccess default + SubscriptionPrivateValues default + + # Job-related operations must be done by the owner or an administrator... + + AuthType Default + Order deny,allow + + + + AuthType Default + Require user @OWNER @SYSTEM + Order deny,allow + + + # All administration operations require an administrator to authenticate... + + AuthType Default + Require user @SYSTEM + Order deny,allow + + + # All printer operations require a printer operator to authenticate... + + AuthType Default + Require user @SYSTEM + Order deny,allow + + + # Only the owner or an administrator can cancel or authenticate a job... + + AuthType Default + Require user @OWNER @SYSTEM + Order deny,allow + + + + Order deny,allow + + + +# Set the kerberized printer/job policies... + + # Job/subscription privacy... + JobPrivateAccess default + JobPrivateValues default + SubscriptionPrivateAccess default + SubscriptionPrivateValues default + + # Job-related operations must be done by the owner or an administrator... + + AuthType Negotiate + Order deny,allow + + + + AuthType Negotiate + Require user @OWNER @SYSTEM + Order deny,allow + + + # All administration operations require an administrator to authenticate... + + AuthType Default + Require user @SYSTEM + Order deny,allow + + + # All printer operations require a printer operator to authenticate... + + AuthType Default + Require user @SYSTEM + Order deny,allow + + + # Only the owner or an administrator can cancel or authenticate a job... + + AuthType Negotiate + Require user @OWNER @SYSTEM + Order deny,allow + + + + Order deny,allow + + diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100755 index 0000000..0a4aedb --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,27 @@ +version: "2" +services: + app: + build: ./ + image: gitea.simonzeyer.de/simon/wnd_ils_alarmfax_parser:latest + restart: always + privileged: true + environment: + - username=${username} + - password=${password} + - server=${server} + - primary_smtp_address=${primary_smtp_address} + - filter_from=${filter_from} + - folders=${folders} + - IS_DEV=${IS_DEV} + - webhooks=${webhooks} + - alarmfax_parser_id=${alarmfax_parser_id} + - alarminator_api=${alarminator_api} + - alarminator_token=${alarminator_token} + - alarminator_zvies_use_PEALGRP=${alarminator_zvies_use_PEALGRP} + - printer=${printer} + - print_num=${print_num} + volumes: + - ./cups:/etc/cups + - ./cupsd.conf.txt:/etc/cups/cupsd.conf + - /dev/bus/usb:/dev/bus/usb + - /var/run/dbus:/var/run/dbus \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..3db5cda --- /dev/null +++ b/requirements.txt @@ -0,0 +1,31 @@ +cached-property==1.5.2 +certifi==2022.12.7 +cffi==1.15.1 +charset-normalizer==3.0.1 +cryptography==39.0.0 +defusedxml==0.7.1 +dnspython==2.3.0 +exchangelib==4.9.0 +idna==3.4 +isodate==0.6.1 +lxml==4.9.2 +ntlm-auth==1.5.0 +numpy==1.24.1 +oauthlib==3.2.2 +pandas==1.5.2 +pycparser==2.21 +Pygments==2.14.0 +python-dateutil==2.8.2 +pytz==2022.7.1 +pytz-deprecation-shim==0.1.0.post0 +requests==2.28.2 +requests-ntlm==1.1.0 +requests-oauthlib==1.3.1 +six==1.16.0 +tzdata==2022.7 +tzlocal==4.2 +urllib3==1.26.14 +xmltodict==0.12.0 +xmltojson==2.0.1 +pycups==2.0.1 +weasyprint \ No newline at end of file