Coder Social home page Coder Social logo

harbour-seaprint's People

Contributors

atlochowski avatar attah avatar black-sheep-dev avatar carmenfdezb avatar cnlpete avatar comradekingu avatar dashinfantry avatar ensag-dev avatar karolkurek avatar karry avatar pherjung avatar phklrz avatar quenty31 avatar vigejolla avatar wheelseal avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

harbour-seaprint's Issues

Problems whith Brother MFC-J5320DW

Hello! My printer (Brother MFC-J5320DW) is displayed in the app and I can also select a document and send it to the printer. The printer even shows on the display that it is receiving data, but then prints nothing and shows no further reaction. What could be the problem?

Add create-job/send-document operations

The print-job operation is not recommended and may soon not be required anymore.
The two-stage approach allows monitoring the job (in a parallel process), and apparently alleviates some issues with some eWaste-tier printers.
Unfortunately some printers still need print-job as they don't support the two-stage approach, which complicates things.
Fun challenge to implement, if nothing else.

Help needed: Cups Configuration (ACLs)

Hi,
thank you for this wonderful app!
As my printer only supports jpeg via ipp and even that's not working good I'm trying to use my Linux Server for this.
It runs a cups instance and as i read it should be supported by this App.
I changed the listener to listen on any interface and set Browse to "on" as suggested,
but it still keeps not working. The app does not find cups at all, not even if i enter IP and Port in this App.
I think it's an access Control issue, but as i don't have any clue and don't understand anything in the cups Config file i'm asking for help here.
Can someone provide me with an hint what has to be changed in Standard cups Config file to allow this App?

Seaprint outputs following line btw:
[D] IppPrinter::getPrinterAttributesFinished:96 - QNetworkReply::NetworkError(ContentOperationNotPermittedError) "Error transferring http://192.168.0.101:631 - server replied: Forbidden" ""

I'm appreciating any help :)

Unable to connect to Xerox WorkCentre 6515DN MFP

I'm trying to set up seaprint with my printer. It does not discover it, so I went to the 'Add by url' screen. I've tried all the uri's that make sense. The printer is configured on my linux laptop with cups as ipps://10.1.3.5:631/ipp/print. I've tried various uri's in seaprint (ipp, ipps, http, https), but for all the dialog would keep showing 'No printer found'.

It seems my printer does not like the ipp request, as seen in the logs attached. For simplicity, I tried http://10.1.3.5/ipp/print. Just to be sure that the printer is happy to accept ipp requests on that uri, I checked with ipptool from my linux box:

gmc@coltrane:~$ ipptool -t http://10.1.3.5/ipp/print /usr/share/cups/ipptool/get-printer-attributes.test
"/usr/share/cups/ipptool/get-printer-attributes.test":
    Get printer attributes using Get-Printer-Attributes                  [PASS]
gmc@coltrane:~$ 

Output from harbour-seaprint:

seaprint.log

tcpdump from the sailfish phone when using harbour-seaprint:

seaprint.pcap.gz

And a successful interaction with ipptool on the laptop:

ipptool.pcap.gz

Add option to set paper size

When printing a photo, it is necessary to set a paper size other than A4. I was able to print a picture on my Canon MG5700, and I loaded it with 5x7 photo paper, but when printed, the printer insisted I loaded A4.

Wrong version number is displayed

On My XA2 Seaprint don´t show the correct version number. I´ve installed version 1.0.1 from Jolla store. But in the About page I See Seaprint v1.0. A little bug but confusing.

debug info, Canon Selphy CP1500

Perhaps of utility:

* Connected to 192.168.178.32 (192.168.178.32) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* SSL connection using TLSv1.2 / ECDHE-RSA-AES128-SHA256
* ALPN, server did not agree to a protocol
* Server certificate:
*  subject: CN=Canon Compact Photo Printer
*  start date: Jan  1 00:00:00 2021 GMT
*  expire date: Dec 31 23:59:59 2040 GMT
*  issuer: CN=Canon Compact Photo Printer
*  SSL certificate verify result: unable to get local issuer certificate (20), continuing anyway.
> POST /ipp/print HTTP/1.1
Host: 192.168.178.32
Accept: */*
Content-Type: application/ipp
Accept-Encoding: identity
Content-Length: 158

* We are completely uploaded and fine
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Content-Type: application/ipp
< Content-Length: 6432
< 
* Connection #0 to host 192.168.178.32 left intact
[D] unknown:0 - 0
[D] unknown:0 - 0 QJsonObject({"attributes-charset":{"tag":71,"value":"utf-8"},"attributes-natural-language":{"tag":72,"value":"en-us"}}) QJsonObject({"charset-configured":{"tag":71,"value":"utf-8"},"charset-supported":{"tag":71,"value":["utf-8","us-ascii"]},"color-supported":{"tag":34,"value":true},"compression-supported":{"tag":68,"value":["none"]},"copies-default":{"tag":33,"value":1},"copies-supported":{"tag":51,"value":{"high":99,"low":1}},"document-format-default":{"tag":73,"value":"image/urf"},"document-format-supported":{"tag":73,"value":["image/urf","application/octet-stream","image/jpeg","image/pwg-raster"]},"finishings-default":{"tag":35,"value":3},"finishings-supported":{"tag":35,"value":[3]},"generated-natural-language-supported":{"tag":72,"value":["en-us"]},"identify-actions-default":{"tag":68,"value":"flash"},"identify-actions-supported":{"tag":68,"value":["flash"]},"ipp-features-supported":{"tag":68,"value":["airprint-1.4","airprint-1.3","wfds-print-1.0","airprint-1.5","airprint-1.6","airprint-1.7","airprint-1.8","airprint-2.1"]},"ipp-versions-supported":{"tag":68,"value":["1.1","2.0"]},"job-creation-attributes-supported":{"tag":68,"value":["copies","finishings","job-name","media","media-col","orientation-requested","output-bin","print-color-mode","print-quality","printer-resolution","sides","ipp-attribute-fidelity"]},"job-ids-supported":{"tag":34,"value":true},"job-mandatory-attributes-supported":{"tag":34,"value":true},"job-spooling-supported":{"tag":68,"value":["stream"]},"jpeg-features-supported":{"tag":68,"value":["none"]},"jpeg-k-octets-supported":{"tag":51,"value":{"high":32768,"low":0}},"jpeg-x-dimension-supported":{"tag":51,"value":{"high":15000,"low":64}},"jpeg-y-dimension-supported":{"tag":51,"value":{"high":15000,"low":64}},"landscape-orientation-requested-preferred":{"tag":35,"value":5},"media-bottom-margin-supported":{"tag":33,"value":[0,370,340,640]},"media-col-default":{"tag":52,"value":{"media-bottom-margin":{"tag":33,"value":370},"media-left-margin":{"tag":33,"value":250},"media-right-margin":{"tag":33,"value":250},"media-size":{"tag":52,"value":{"x-dimension":{"tag":33,"value":10000},"y-dimension":{"tag":33,"value":14800}}},"media-source":{"tag":68,"value":"photo"},"media-top-margin":{"tag":33,"value":370},"media-type":{"tag":68,"value":"photographic"}}},"media-col-ready":{"tag":52,"value":[{"media-bottom-margin":{"tag":33,"value":370},"media-left-margin":{"tag":33,"value":250},"media-right-margin":{"tag":33,"value":250},"media-size":{"tag":52,"value":{"x-dimension":{"tag":33,"value":10000},"y-dimension":{"tag":33,"value":14800}}},"media-source":{"tag":68,"value":"photo"},"media-top-margin":{"tag":33,"value":370},"media-type":{"tag":68,"value":"photographic"}},{"media-bottom-margin":{"tag":33,"value":0},"media-left-margin":{"tag":33,"value":0},"media-right-margin":{"tag":33,"value":0},"media-size":{"tag":52,"value":{"x-dimension":{"tag":33,"value":10000},"y-dimension":{"tag":33,"value":14800}}},"media-source":{"tag":68,"value":"photo"},"media-top-margin":{"tag":33,"value":0},"media-type":{"tag":68,"value":"photographic"}}]},"media-col-supported":{"tag":68,"value":["media-size","media-bottom-margin","media-left-margin","media-right-margin","media-top-margin","media-type","media-source"]},"media-default":{"tag":68,"value":"jpn_hagaki_100x148mm"},"media-left-margin-supported":{"tag":33,"value":[0,250]},"media-ready":{"tag":68,"value":["jpn_hagaki_100x148mm"]},"media-right-margin-supported":{"tag":33,"value":[0,250]},"media-size-supported":{"tag":52,"value":[[{"x-dimension":{"tag":33,"value":10000},"y-dimension":{"tag":33,"value":14800}},{"x-dimension":{"tag":33,"value":8900},"y-dimension":{"tag":33,"value":11900}},{"x-dimension":{"tag":33,"value":5400},"y-dimension":{"tag":33,"value":8600}},{"x-dimension":{"tag":51,"value":{"high":10200,"low":5300}},"y-dimension":{"tag":51,"value":{"high":15300,"low":8500}}}]]},"media-source-supported":{"tag":68,"value":["photo"]},"media-supported":{"tag":68,"value":["jpn_hagaki_100x148mm","om_dsc-photo_89x119mm","om_card_54x86mm","custom_min_53x85mm","custom_max_102x153mm"]},"media-top-margin-supported":{"tag":33,"value":[0,370,340,640]},"media-type-supported":{"tag":68,"value":["photographic"]},"mopria-certified":{"tag":65,"value":"2.1"},"multiple-document-handling-default":{"tag":68,"value":"single-document"},"multiple-document-handling-supported":{"tag":68,"value":["single-document"]},"multiple-document-jobs-supported":{"tag":34,"value":false},"multiple-operation-time-out":{"tag":33,"value":200},"natural-language-configured":{"tag":72,"value":"en-us"},"operations-supported":{"tag":35,"value":[2,4,5,6,8,9,10,11,60]},"orientation-requested-default":{"tag":35,"value":3},"orientation-requested-supported":{"tag":35,"value":[3,4,5,6]},"output-bin-default":{"tag":68,"value":"face-up"},"output-bin-supported":{"tag":68,"value":["face-up"]},"output-mode-default":{"tag":68,"value":"color"},"output-mode-supported":{"tag":68,"value":["auto","color","monochrome","auto-monochrome"]},"page-ranges-supported":{"tag":34,"value":false},"pages-per-minute":{"tag":33,"value":1},"pages-per-minute-color":{"tag":33,"value":1},"pdf-versions-supported":{"tag":68,"value":["none"]},"pdl-override-supported":{"tag":68,"value":["attempted"]},"print-color-mode-default":{"tag":68,"value":"color"},"print-color-mode-supported":{"tag":68,"value":["auto","color","monochrome","auto-monochrome"]},"print-content-optimize-default":{"tag":68,"value":["photo","auto"]},"print-content-optimize-supported":{"tag":68,"value":["photo","auto"]},"print-quality-default":{"tag":35,"value":4},"print-quality-supported":{"tag":35,"value":[4]},"print-scaling-default":{"tag":68,"value":"auto"},"print-scaling-supported":{"tag":68,"value":["auto","auto-fit","fill","fit","none"]},"print_wfds":{"tag":65,"value":"T"},"printer-device-id":{"tag":65,"value":"MFG:Canon;CMD:URF;MDL:SELPHY CP1500;CLS:PRINTER;URF:W8,SRGB24,V1.5,RS300,IS7,MT11,PQ4,OB9,IFU0,OFU0,CP99;"},"printer-dns-sd-name":{"tag":66,"value":"Canon SELPHY CP1500"},"printer-firmware-name":{"tag":66,"value":["External Firm ver, Internal Firm ver"]},"printer-firmware-patches":{"tag":65,"value":[""]},"printer-firmware-string-version":{"tag":65,"value":["1.0.2.0, 1.33"]},"printer-firmware-version":{"tag":48,"value":["01000200,0121"]},"printer-geo-location":{"tag":69,"value":"geo:0.0000000,0.0000000,0;u=0"},"printer-icons":{"tag":69,"value":["http://192.168.178.32/ipp/icons/48_48.png","http://192.168.178.32/ipp/icons/128_128.png","http://192.168.178.32/ipp/icons/512_512.png"]},"printer-info":{"tag":65,"value":"Canon SELPHY CP1500"},"printer-input-tray":{"tag":48,"value":"type=sheetFeedAutoRemovableTray;mediafeed=300;mediaxfeed=300;maxcapacity=18;level=-2;status=0;name=InputTray;index=1;dimunit=tenThousandthsOfInches;unit=sheets;medianame=jpn_hagaki_100x148mm;mediaweight=-2;mediatype=photographic;mediacolor=white;"},"printer-is-accepting-jobs":{"tag":34,"value":true},"printer-kind":{"tag":68,"value":"photo"},"printer-location":{"tag":65,"value":""},"printer-make-and-model":{"tag":65,"value":"Canon SELPHY CP1500 HTTP"},"printer-more-info":{"tag":69,"value":"http://192.168.178.32:8008/index.html"},"printer-name":{"tag":66,"value":"Canon SELPHY CP1500"},"printer-output-tray":{"tag":48,"value":"type=removableBin;maxcapacity=-2;remaining=-2;status=0;name=OutputTray;index=1;dimunit=sheets;unit=sheets;stackingorder=firstToLast;pagedelivery=faceUp;offsetstacking=notPresent;"},"printer-resolution-default":{"tag":50,"value":{"units":3,"x":300,"y":300}},"printer-resolution-supported":{"tag":50,"value":[{"units":3,"x":300,"y":300}]},"printer-state":{"tag":35,"value":3},"printer-state-reasons":{"tag":68,"value":["none"]},"printer-supply":{"tag":48,"value":"index=1;class=other;type=inkRibbon;unit=sheets;maxcapacity=36;level=-2;colorantindex=1;colorantrole=other;colorantname=other;coloranttonality=128;"},"printer-supply-info-uri":{"tag":69,"value":"http://192.168.178.32:8008/supply/ink_content.html"},"printer-up-time":{"tag":33,"value":1772},"printer-uri-supported":{"tag":69,"value":["ipp://192.168.178.32:631/ipp/print","ipps://192.168.178.32:443/ipp/print"]},"printer-uuid":{"tag":69,"value":"urn:uuid:e449af80-bb08-41a9-96ae-5c625afc63cc"},"pwg-raster-document-resolution-supported":{"tag":50,"value":[{"units":3,"x":300,"y":300}]},"pwg-raster-document-type-supported":{"tag":68,"value":["rgb_8"]},"queued-job-count":{"tag":33,"value":0},"sides-default":{"tag":68,"value":"one-sided"},"sides-supported":{"tag":68,"value":["one-sided"]},"urf-supported":{"tag":68,"value":["W8","SRGB24","V1.5","RS300","IS7","MT11","PQ4","OB9","IFU0","OFU0","CP99"]},"uri-authentication-supported":{"tag":68,"value":["none","none"]},"uri-security-supported":{"tag":68,"value":["none","tls"]}})
[D] unknown:0 - QUrl("http://192.168.178.32/ipp/icons/128_128.png")  is allowed:  true
[D] unknown:0 - additionalDocumentFormats ()
*   Trying 192.168.178.32:80...
* Connected to 192.168.178.32 (192.168.178.32) port 80 (#0)
> GET /ipp/icons/128_128.png HTTP/1.1
Host: 192.168.178.32
Accept: */*

* Mark bundle as not supporting multiuse
* HTTP 1.0, assume close after body
< HTTP/1.0 500 
< Content-Length: 25
< 
* Closing connection 0
[D] unknown:0 - 0 25
*   Trying 192.168.178.32:443...
* Connected to 192.168.178.32 (192.168.178.32) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* SSL connection using TLSv1.2 / ECDHE-RSA-AES128-SHA256
* ALPN, server did not agree to a protocol
* Server certificate:
*  subject: CN=Canon Compact Photo Printer
*  start date: Jan  1 00:00:00 2021 GMT
*  expire date: Dec 31 23:59:59 2040 GMT
*  issuer: CN=Canon Compact Photo Printer
*  SSL certificate verify result: unable to get local issuer certificate (20), continuing anyway.
> POST /ipp/print HTTP/1.1
Host: 192.168.178.32
Accept: */*
Content-Type: application/ipp
Accept-Encoding: identity
Content-Length: 158

* We are completely uploaded and fine
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Content-Type: application/ipp
< Content-Length: 6432
< 
* Connection #0 to host 192.168.178.32 left intact
[D] unknown:0 - 0
[D] unknown:0 - 0 QJsonObject({"attributes-charset":{"tag":71,"value":"utf-8"},"attributes-natural-language":{"tag":72,"value":"en-us"}}) QJsonObject({"charset-configured":{"tag":71,"value":"utf-8"},"charset-supported":{"tag":71,"value":["utf-8","us-ascii"]},"color-supported":{"tag":34,"value":true},"compression-supported":{"tag":68,"value":["none"]},"copies-default":{"tag":33,"value":1},"copies-supported":{"tag":51,"value":{"high":99,"low":1}},"document-format-default":{"tag":73,"value":"image/urf"},"document-format-supported":{"tag":73,"value":["image/urf","application/octet-stream","image/jpeg","image/pwg-raster"]},"finishings-default":{"tag":35,"value":3},"finishings-supported":{"tag":35,"value":[3]},"generated-natural-language-supported":{"tag":72,"value":["en-us"]},"identify-actions-default":{"tag":68,"value":"flash"},"identify-actions-supported":{"tag":68,"value":["flash"]},"ipp-features-supported":{"tag":68,"value":["airprint-1.4","airprint-1.3","wfds-print-1.0","airprint-1.5","airprint-1.6","airprint-1.7","airprint-1.8","airprint-2.1"]},"ipp-versions-supported":{"tag":68,"value":["1.1","2.0"]},"job-creation-attributes-supported":{"tag":68,"value":["copies","finishings","job-name","media","media-col","orientation-requested","output-bin","print-color-mode","print-quality","printer-resolution","sides","ipp-attribute-fidelity"]},"job-ids-supported":{"tag":34,"value":true},"job-mandatory-attributes-supported":{"tag":34,"value":true},"job-spooling-supported":{"tag":68,"value":["stream"]},"jpeg-features-supported":{"tag":68,"value":["none"]},"jpeg-k-octets-supported":{"tag":51,"value":{"high":32768,"low":0}},"jpeg-x-dimension-supported":{"tag":51,"value":{"high":15000,"low":64}},"jpeg-y-dimension-supported":{"tag":51,"value":{"high":15000,"low":64}},"landscape-orientation-requested-preferred":{"tag":35,"value":5},"media-bottom-margin-supported":{"tag":33,"value":[0,370,340,640]},"media-col-default":{"tag":52,"value":{"media-bottom-margin":{"tag":33,"value":370},"media-left-margin":{"tag":33,"value":250},"media-right-margin":{"tag":33,"value":250},"media-size":{"tag":52,"value":{"x-dimension":{"tag":33,"value":10000},"y-dimension":{"tag":33,"value":14800}}},"media-source":{"tag":68,"value":"photo"},"media-top-margin":{"tag":33,"value":370},"media-type":{"tag":68,"value":"photographic"}}},"media-col-ready":{"tag":52,"value":[{"media-bottom-margin":{"tag":33,"value":370},"media-left-margin":{"tag":33,"value":250},"media-right-margin":{"tag":33,"value":250},"media-size":{"tag":52,"value":{"x-dimension":{"tag":33,"value":10000},"y-dimension":{"tag":33,"value":14800}}},"media-source":{"tag":68,"value":"photo"},"media-top-margin":{"tag":33,"value":370},"media-type":{"tag":68,"value":"photographic"}},{"media-bottom-margin":{"tag":33,"value":0},"media-left-margin":{"tag":33,"value":0},"media-right-margin":{"tag":33,"value":0},"media-size":{"tag":52,"value":{"x-dimension":{"tag":33,"value":10000},"y-dimension":{"tag":33,"value":14800}}},"media-source":{"tag":68,"value":"photo"},"media-top-margin":{"tag":33,"value":0},"media-type":{"tag":68,"value":"photographic"}}]},"media-col-supported":{"tag":68,"value":["media-size","media-bottom-margin","media-left-margin","media-right-margin","media-top-margin","media-type","media-source"]},"media-default":{"tag":68,"value":"jpn_hagaki_100x148mm"},"media-left-margin-supported":{"tag":33,"value":[0,250]},"media-ready":{"tag":68,"value":["jpn_hagaki_100x148mm"]},"media-right-margin-supported":{"tag":33,"value":[0,250]},"media-size-supported":{"tag":52,"value":[[{"x-dimension":{"tag":33,"value":10000},"y-dimension":{"tag":33,"value":14800}},{"x-dimension":{"tag":33,"value":8900},"y-dimension":{"tag":33,"value":11900}},{"x-dimension":{"tag":33,"value":5400},"y-dimension":{"tag":33,"value":8600}},{"x-dimension":{"tag":51,"value":{"high":10200,"low":5300}},"y-dimension":{"tag":51,"value":{"high":15300,"low":8500}}}]]},"media-source-supported":{"tag":68,"value":["photo"]},"media-supported":{"tag":68,"value":["jpn_hagaki_100x148mm","om_dsc-photo_89x119mm","om_card_54x86mm","custom_min_53x85mm","custom_max_102x153mm"]},"media-top-margin-supported":{"tag":33,"value":[0,370,340,640]},"media-type-supported":{"tag":68,"value":["photographic"]},"mopria-certified":{"tag":65,"value":"2.1"},"multiple-document-handling-default":{"tag":68,"value":"single-document"},"multiple-document-handling-supported":{"tag":68,"value":["single-document"]},"multiple-document-jobs-supported":{"tag":34,"value":false},"multiple-operation-time-out":{"tag":33,"value":200},"natural-language-configured":{"tag":72,"value":"en-us"},"operations-supported":{"tag":35,"value":[2,4,5,6,8,9,10,11,60]},"orientation-requested-default":{"tag":35,"value":3},"orientation-requested-supported":{"tag":35,"value":[3,4,5,6]},"output-bin-default":{"tag":68,"value":"face-up"},"output-bin-supported":{"tag":68,"value":["face-up"]},"output-mode-default":{"tag":68,"value":"color"},"output-mode-supported":{"tag":68,"value":["auto","color","monochrome","auto-monochrome"]},"page-ranges-supported":{"tag":34,"value":false},"pages-per-minute":{"tag":33,"value":1},"pages-per-minute-color":{"tag":33,"value":1},"pdf-versions-supported":{"tag":68,"value":["none"]},"pdl-override-supported":{"tag":68,"value":["attempted"]},"print-color-mode-default":{"tag":68,"value":"color"},"print-color-mode-supported":{"tag":68,"value":["auto","color","monochrome","auto-monochrome"]},"print-content-optimize-default":{"tag":68,"value":["photo","auto"]},"print-content-optimize-supported":{"tag":68,"value":["photo","auto"]},"print-quality-default":{"tag":35,"value":4},"print-quality-supported":{"tag":35,"value":[4]},"print-scaling-default":{"tag":68,"value":"auto"},"print-scaling-supported":{"tag":68,"value":["auto","auto-fit","fill","fit","none"]},"print_wfds":{"tag":65,"value":"T"},"printer-device-id":{"tag":65,"value":"MFG:Canon;CMD:URF;MDL:SELPHY CP1500;CLS:PRINTER;URF:W8,SRGB24,V1.5,RS300,IS7,MT11,PQ4,OB9,IFU0,OFU0,CP99;"},"printer-dns-sd-name":{"tag":66,"value":"Canon SELPHY CP1500"},"printer-firmware-name":{"tag":66,"value":["External Firm ver, Internal Firm ver"]},"printer-firmware-patches":{"tag":65,"value":[""]},"printer-firmware-string-version":{"tag":65,"value":["1.0.2.0, 1.33"]},"printer-firmware-version":{"tag":48,"value":["01000200,0121"]},"printer-geo-location":{"tag":69,"value":"geo:0.0000000,0.0000000,0;u=0"},"printer-icons":{"tag":69,"value":["http://192.168.178.32/ipp/icons/48_48.png","http://192.168.178.32/ipp/icons/128_128.png","http://192.168.178.32/ipp/icons/512_512.png"]},"printer-info":{"tag":65,"value":"Canon SELPHY CP1500"},"printer-input-tray":{"tag":48,"value":"type=sheetFeedAutoRemovableTray;mediafeed=300;mediaxfeed=300;maxcapacity=18;level=-2;status=0;name=InputTray;index=1;dimunit=tenThousandthsOfInches;unit=sheets;medianame=jpn_hagaki_100x148mm;mediaweight=-2;mediatype=photographic;mediacolor=white;"},"printer-is-accepting-jobs":{"tag":34,"value":true},"printer-kind":{"tag":68,"value":"photo"},"printer-location":{"tag":65,"value":""},"printer-make-and-model":{"tag":65,"value":"Canon SELPHY CP1500 HTTP"},"printer-more-info":{"tag":69,"value":"http://192.168.178.32:8008/index.html"},"printer-name":{"tag":66,"value":"Canon SELPHY CP1500"},"printer-output-tray":{"tag":48,"value":"type=removableBin;maxcapacity=-2;remaining=-2;status=0;name=OutputTray;index=1;dimunit=sheets;unit=sheets;stackingorder=firstToLast;pagedelivery=faceUp;offsetstacking=notPresent;"},"printer-resolution-default":{"tag":50,"value":{"units":3,"x":300,"y":300}},"printer-resolution-supported":{"tag":50,"value":[{"units":3,"x":300,"y":300}]},"printer-state":{"tag":35,"value":3},"printer-state-reasons":{"tag":68,"value":["none"]},"printer-supply":{"tag":48,"value":"index=1;class=other;type=inkRibbon;unit=sheets;maxcapacity=36;level=-2;colorantindex=1;colorantrole=other;colorantname=other;coloranttonality=128;"},"printer-supply-info-uri":{"tag":69,"value":"http://192.168.178.32:8008/supply/ink_content.html"},"printer-up-time":{"tag":33,"value":1778},"printer-uri-supported":{"tag":69,"value":["ipp://192.168.178.32:631/ipp/print","ipps://192.168.178.32:443/ipp/print"]},"printer-uuid":{"tag":69,"value":"urn:uuid:e449af80-bb08-41a9-96ae-5c625afc63cc"},"pwg-raster-document-resolution-supported":{"tag":50,"value":[{"units":3,"x":300,"y":300}]},"pwg-raster-document-type-supported":{"tag":68,"value":["rgb_8"]},"queued-job-count":{"tag":33,"value":0},"sides-default":{"tag":68,"value":"one-sided"},"sides-supported":{"tag":68,"value":["one-sided"]},"urf-supported":{"tag":68,"value":["W8","SRGB24","V1.5","RS300","IS7","MT11","PQ4","OB9","IFU0","OFU0","CP99"]},"uri-authentication-supported":{"tag":68,"value":["none","none"]},"uri-security-supported":{"tag":68,"value":["none","tls"]}})
[D] unknown:0 - QUrl("http://192.168.178.32/ipp/icons/128_128.png")  is allowed:  true
[D] unknown:0 - additionalDocumentFormats ()
*   Trying 192.168.178.32:80...
* Connected to 192.168.178.32 (192.168.178.32) port 80 (#0)
> GET /ipp/icons/128_128.png HTTP/1.1
Host: 192.168.178.32
Accept: */*

* Mark bundle as not supporting multiuse
* HTTP 1.0, assume close after body
< HTTP/1.0 500 
< Content-Length: 25
< 
* Closing connection 0
[D] unknown:0 - 0 25
[W] unknown:79 - file:///usr/share/harbour-seaprint/qml/pages/DetailsPage.qml:79: TypeError: Cannot read property 'value' of undefined
[W] unknown:90 - file:///usr/share/harbour-seaprint/qml/pages/DetailsPage.qml:90: TypeError: Cannot read property 'value' of undefined
*   Trying 192.168.178.32:443...
* Connected to 192.168.178.32 (192.168.178.32) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* SSL connection using TLSv1.2 / ECDHE-RSA-AES128-SHA256
* ALPN, server did not agree to a protocol
* Server certificate:
*  subject: CN=Canon Compact Photo Printer
*  start date: Jan  1 00:00:00 2021 GMT
*  expire date: Dec 31 23:59:59 2040 GMT
*  issuer: CN=Canon Compact Photo Printer
*  SSL certificate verify result: unable to get local issuer certificate (20), continuing anyway.
> POST /ipp/print HTTP/1.1
Host: 192.168.178.32
Accept: */*
Content-Type: application/ipp
Accept-Encoding: identity
Content-Length: 158

* We are completely uploaded and fine
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Content-Type: application/ipp
< Content-Length: 6432
< 
* Connection #0 to host 192.168.178.32 left intact
[D] unknown:0 - 0
[D] unknown:0 - 0 QJsonObject({"attributes-charset":{"tag":71,"value":"utf-8"},"attributes-natural-language":{"tag":72,"value":"en-us"}}) QJsonObject({"charset-configured":{"tag":71,"value":"utf-8"},"charset-supported":{"tag":71,"value":["utf-8","us-ascii"]},"color-supported":{"tag":34,"value":true},"compression-supported":{"tag":68,"value":["none"]},"copies-default":{"tag":33,"value":1},"copies-supported":{"tag":51,"value":{"high":99,"low":1}},"document-format-default":{"tag":73,"value":"image/urf"},"document-format-supported":{"tag":73,"value":["image/urf","application/octet-stream","image/jpeg","image/pwg-raster"]},"finishings-default":{"tag":35,"value":3},"finishings-supported":{"tag":35,"value":[3]},"generated-natural-language-supported":{"tag":72,"value":["en-us"]},"identify-actions-default":{"tag":68,"value":"flash"},"identify-actions-supported":{"tag":68,"value":["flash"]},"ipp-features-supported":{"tag":68,"value":["airprint-1.4","airprint-1.3","wfds-print-1.0","airprint-1.5","airprint-1.6","airprint-1.7","airprint-1.8","airprint-2.1"]},"ipp-versions-supported":{"tag":68,"value":["1.1","2.0"]},"job-creation-attributes-supported":{"tag":68,"value":["copies","finishings","job-name","media","media-col","orientation-requested","output-bin","print-color-mode","print-quality","printer-resolution","sides","ipp-attribute-fidelity"]},"job-ids-supported":{"tag":34,"value":true},"job-mandatory-attributes-supported":{"tag":34,"value":true},"job-spooling-supported":{"tag":68,"value":["stream"]},"jpeg-features-supported":{"tag":68,"value":["none"]},"jpeg-k-octets-supported":{"tag":51,"value":{"high":32768,"low":0}},"jpeg-x-dimension-supported":{"tag":51,"value":{"high":15000,"low":64}},"jpeg-y-dimension-supported":{"tag":51,"value":{"high":15000,"low":64}},"landscape-orientation-requested-preferred":{"tag":35,"value":5},"media-bottom-margin-supported":{"tag":33,"value":[0,370,340,640]},"media-col-default":{"tag":52,"value":{"media-bottom-margin":{"tag":33,"value":370},"media-left-margin":{"tag":33,"value":250},"media-right-margin":{"tag":33,"value":250},"media-size":{"tag":52,"value":{"x-dimension":{"tag":33,"value":10000},"y-dimension":{"tag":33,"value":14800}}},"media-source":{"tag":68,"value":"photo"},"media-top-margin":{"tag":33,"value":370},"media-type":{"tag":68,"value":"photographic"}}},"media-col-ready":{"tag":52,"value":[{"media-bottom-margin":{"tag":33,"value":370},"media-left-margin":{"tag":33,"value":250},"media-right-margin":{"tag":33,"value":250},"media-size":{"tag":52,"value":{"x-dimension":{"tag":33,"value":10000},"y-dimension":{"tag":33,"value":14800}}},"media-source":{"tag":68,"value":"photo"},"media-top-margin":{"tag":33,"value":370},"media-type":{"tag":68,"value":"photographic"}},{"media-bottom-margin":{"tag":33,"value":0},"media-left-margin":{"tag":33,"value":0},"media-right-margin":{"tag":33,"value":0},"media-size":{"tag":52,"value":{"x-dimension":{"tag":33,"value":10000},"y-dimension":{"tag":33,"value":14800}}},"media-source":{"tag":68,"value":"photo"},"media-top-margin":{"tag":33,"value":0},"media-type":{"tag":68,"value":"photographic"}}]},"media-col-supported":{"tag":68,"value":["media-size","media-bottom-margin","media-left-margin","media-right-margin","media-top-margin","media-type","media-source"]},"media-default":{"tag":68,"value":"jpn_hagaki_100x148mm"},"media-left-margin-supported":{"tag":33,"value":[0,250]},"media-ready":{"tag":68,"value":["jpn_hagaki_100x148mm"]},"media-right-margin-supported":{"tag":33,"value":[0,250]},"media-size-supported":{"tag":52,"value":[[{"x-dimension":{"tag":33,"value":10000},"y-dimension":{"tag":33,"value":14800}},{"x-dimension":{"tag":33,"value":8900},"y-dimension":{"tag":33,"value":11900}},{"x-dimension":{"tag":33,"value":5400},"y-dimension":{"tag":33,"value":8600}},{"x-dimension":{"tag":51,"value":{"high":10200,"low":5300}},"y-dimension":{"tag":51,"value":{"high":15300,"low":8500}}}]]},"media-source-supported":{"tag":68,"value":["photo"]},"media-supported":{"tag":68,"value":["jpn_hagaki_100x148mm","om_dsc-photo_89x119mm","om_card_54x86mm","custom_min_53x85mm","custom_max_102x153mm"]},"media-top-margin-supported":{"tag":33,"value":[0,370,340,640]},"media-type-supported":{"tag":68,"value":["photographic"]},"mopria-certified":{"tag":65,"value":"2.1"},"multiple-document-handling-default":{"tag":68,"value":"single-document"},"multiple-document-handling-supported":{"tag":68,"value":["single-document"]},"multiple-document-jobs-supported":{"tag":34,"value":false},"multiple-operation-time-out":{"tag":33,"value":200},"natural-language-configured":{"tag":72,"value":"en-us"},"operations-supported":{"tag":35,"value":[2,4,5,6,8,9,10,11,60]},"orientation-requested-default":{"tag":35,"value":3},"orientation-requested-supported":{"tag":35,"value":[3,4,5,6]},"output-bin-default":{"tag":68,"value":"face-up"},"output-bin-supported":{"tag":68,"value":["face-up"]},"output-mode-default":{"tag":68,"value":"color"},"output-mode-supported":{"tag":68,"value":["auto","color","monochrome","auto-monochrome"]},"page-ranges-supported":{"tag":34,"value":false},"pages-per-minute":{"tag":33,"value":1},"pages-per-minute-color":{"tag":33,"value":1},"pdf-versions-supported":{"tag":68,"value":["none"]},"pdl-override-supported":{"tag":68,"value":["attempted"]},"print-color-mode-default":{"tag":68,"value":"color"},"print-color-mode-supported":{"tag":68,"value":["auto","color","monochrome","auto-monochrome"]},"print-content-optimize-default":{"tag":68,"value":["photo","auto"]},"print-content-optimize-supported":{"tag":68,"value":["photo","auto"]},"print-quality-default":{"tag":35,"value":4},"print-quality-supported":{"tag":35,"value":[4]},"print-scaling-default":{"tag":68,"value":"auto"},"print-scaling-supported":{"tag":68,"value":["auto","auto-fit","fill","fit","none"]},"print_wfds":{"tag":65,"value":"T"},"printer-device-id":{"tag":65,"value":"MFG:Canon;CMD:URF;MDL:SELPHY CP1500;CLS:PRINTER;URF:W8,SRGB24,V1.5,RS300,IS7,MT11,PQ4,OB9,IFU0,OFU0,CP99;"},"printer-dns-sd-name":{"tag":66,"value":"Canon SELPHY CP1500"},"printer-firmware-name":{"tag":66,"value":["External Firm ver, Internal Firm ver"]},"printer-firmware-patches":{"tag":65,"value":[""]},"printer-firmware-string-version":{"tag":65,"value":["1.0.2.0, 1.33"]},"printer-firmware-version":{"tag":48,"value":["01000200,0121"]},"printer-geo-location":{"tag":69,"value":"geo:0.0000000,0.0000000,0;u=0"},"printer-icons":{"tag":69,"value":["http://192.168.178.32/ipp/icons/48_48.png","http://192.168.178.32/ipp/icons/128_128.png","http://192.168.178.32/ipp/icons/512_512.png"]},"printer-info":{"tag":65,"value":"Canon SELPHY CP1500"},"printer-input-tray":{"tag":48,"value":"type=sheetFeedAutoRemovableTray;mediafeed=300;mediaxfeed=300;maxcapacity=18;level=-2;status=0;name=InputTray;index=1;dimunit=tenThousandthsOfInches;unit=sheets;medianame=jpn_hagaki_100x148mm;mediaweight=-2;mediatype=photographic;mediacolor=white;"},"printer-is-accepting-jobs":{"tag":34,"value":true},"printer-kind":{"tag":68,"value":"photo"},"printer-location":{"tag":65,"value":""},"printer-make-and-model":{"tag":65,"value":"Canon SELPHY CP1500 HTTP"},"printer-more-info":{"tag":69,"value":"http://192.168.178.32:8008/index.html"},"printer-name":{"tag":66,"value":"Canon SELPHY CP1500"},"printer-output-tray":{"tag":48,"value":"type=removableBin;maxcapacity=-2;remaining=-2;status=0;name=OutputTray;index=1;dimunit=sheets;unit=sheets;stackingorder=firstToLast;pagedelivery=faceUp;offsetstacking=notPresent;"},"printer-resolution-default":{"tag":50,"value":{"units":3,"x":300,"y":300}},"printer-resolution-supported":{"tag":50,"value":[{"units":3,"x":300,"y":300}]},"printer-state":{"tag":35,"value":3},"printer-state-reasons":{"tag":68,"value":["none"]},"printer-supply":{"tag":48,"value":"index=1;class=other;type=inkRibbon;unit=sheets;maxcapacity=36;level=-2;colorantindex=1;colorantrole=other;colorantname=other;coloranttonality=128;"},"printer-supply-info-uri":{"tag":69,"value":"http://192.168.178.32:8008/supply/ink_content.html"},"printer-up-time":{"tag":33,"value":1964},"printer-uri-supported":{"tag":69,"value":["ipp://192.168.178.32:631/ipp/print","ipps://192.168.178.32:443/ipp/print"]},"printer-uuid":{"tag":69,"value":"urn:uuid:e449af80-bb08-41a9-96ae-5c625afc63cc"},"pwg-raster-document-resolution-supported":{"tag":50,"value":[{"units":3,"x":300,"y":300}]},"pwg-raster-document-type-supported":{"tag":68,"value":["rgb_8"]},"queued-job-count":{"tag":33,"value":0},"sides-default":{"tag":68,"value":"one-sided"},"sides-supported":{"tag":68,"value":["one-sided"]},"urf-supported":{"tag":68,"value":["W8","SRGB24","V1.5","RS300","IS7","MT11","PQ4","OB9","IFU0","OFU0","CP99"]},"uri-authentication-supported":{"tag":68,"value":["none","none"]},"uri-security-supported":{"tag":68,"value":["none","tls"]}})
[D] unknown:0 - QUrl("http://192.168.178.32/ipp/icons/128_128.png")  is allowed:  true
[D] unknown:0 - additionalDocumentFormats ()
*   Trying 192.168.178.32:80...
* Connected to 192.168.178.32 (192.168.178.32) port 80 (#0)
> GET /ipp/icons/128_128.png HTTP/1.1
Host: 192.168.178.32
Accept: */*

Discovery issues

Some users are reporting discovery issues. It may be a fault in how the dereferencing of DNS records is done, but it could be just about anything too. If you are experiencing this, please post here.

To get the relevant logs from SeaPrint, start it from terminal, harbour-seaprint, and look for anything starting with IppDiscovery::, especially IppDiscovery::readPendingDatagrams.

If you have Wireshark and are able to look at the traffic between the phone and your printer, use a filter like this: udp.srcport == 5353 || udp.dstport == 5353 to catch mdns traffic.

Crash with jpeg files on Brother HL-L 8260CDW

Hello
Impossible to print a picture in jpeg format. I hav no trobles with png or pdf files. This printer is in our local network and we used IPP protocol.
So i launch SeaPrint with a terminal and her all the sequence since i open the app and launch the jpeg print.

My smartphone is a X10ii. I remember that with old version with SeaPrint i had no crash.
We have the same crash with the XA2 of my wife
crash_of_seaprint_with_jpeg_on_Brother_HL-L8260CDW.txt
.
Thanks in advance and sorry for my not very fluent english ;-)

Porting prep: Move settings and general logic to plain C++

Move as much logic as possible from JavaScript to C++ and SeaPrint to ppm2pwg.

  • Format support checking/listing
  • Format conversion logic
  • Print job settings (beyond pure input)
  • Name-prettification
  • WiFi Checker
  • App settings (and make backends swappable)
  • Everything backing the properties page
  • Debug JSON
  • Fake-printers
  • Saving of default job settings

adding pdf functionality

Hey,
first of all: a great app! Very useful and quite user friendly. I had a small issue that might be relevant for other users. The problem arose when I tried to print a pdf.

  1. The explanation "In order to convert PDF files to other formats, you need utilities from the package "poppler-utils" was not self-explaining, because as a user I don't convert, but print a file. May be the phrase can be changed.
  2. The cli commands could not be copied (e.g. pkcon install poppler-utils). This is not really a problem, but would make it easier for users.
  3. The most serious problem arose after installing poppler utils: My network printer didn't show up afterwards - while it was previously working. A restart of the app didn't work. I had to restart the phone. Afterwards everything worked fine. May be a note could be added that a restart of the phone might be necessary.

Thank you for your effort.

Programmatically solution for naming of "media-type-supported" tags

At the moment the "media-type-supported” tags are not nicely showing up in SeaPrint in a human friendly format and I (and probably you too) would prefer to see all Supported Media Types in a human friendly way.
I’ve analysed all the supplied IPP logs in the SeaPrint thread on the Sailfish forum and also all my in the past supplied IPP logs of printers regarding the "media-type-supported” tags.

What I found out analysing all these tags in the IPP logs is that there is a way we can solve this programmatically.
To get there, we need to (I think in this exact order):

(Optional)

  • replace “Hp" with “HP” and “Oki” with “OKI” to be exact on the brands (I don’t know if people would care to this level, I even think Hp and Oki looks well :) )

We should end up with a very nice list in a human friendly format. See the Media Type Supported.pdf file for the result, if I am correct.

As you can see in the PDF-file, also the first 3 photographic types will change (current is in between brackets), but still very understandable and in my view perfectly correct.
The nice thing if this all is, whatever the amount of strings is thrown to SeaPrint via IPP tags by printers, SeaPrint will all solve it nicely in a programmatical way (jippie!) :)

Hope you like the solution and are able to implement it.

Client-side copies

Some super-basic printers cannot execute copies - for streaming formats (rasters) it could be effected locally now that we use pdf2printable and cURL.
(Most of the implementation in pdf2printable - but the issue is tracked here)

SeaPrint 1.2.4: Manuelly setting up the page range is confusing

On the "Printer settings" Page:
Point "Page range" (line 508 in translation page):
Setting the page range via the slider works fine:
Page range 1

But after I do it and tap the stylus, my selected page is not displayed:
Page range 2

The "Page Range" hint is not displayed until I enter a number:
Page range 3

The hint "page range" should be replaced with "First page" or "Last page" and under the line it should be displayed permanently. Your example numbers 1-12 should also be replace with "First Page" or "Last Page".
Alternatively, it could be "Page Area - First Page" or "Page Area - Last Page", which would be even clearer.

Change to (lib-)cURL as a http client

For better performance (converting happening in lock-step with transferring/printing), and as an enabler for client-side copies (for severely memory-limited printers).

More advanced page ranges

Support inputing multiple page ranges, including the special case multiple single pages.
Consider even/odd setting, as it would not fit well as a separate setting (not in the IPP model).

Cannot print to Lexmark cs310dn

Hi
I cannot print anymore to my Lexmark cs310dn laser printer. I a previous version (presumably 1.2) it was working.

The printer prints an empty sheet with following error
"PDF Error 16: PostScript Error: SYNTAXERROR"

I tried more than one different document. Printing from linux is fine.

Translations

This is the issue to watch if you want to contribute translations to SeaPrint.
I'll write a new post if there is a significant addition that needs more translations.
It can also be the place to complain if translations are missing or broken, but bear in mind that all contributions are entirely voluntary. (Thank you, translators!)
I, myself, will likely not contribute any translations, but can maybe be convinced to fix some, or add translatable strings.

Crashes on IppPrinter destruction

Threads, probably in two levels, are still running.
Mostly only visible from manually adding printers and removing manually added printers.
Depending on what they are up to they might access their parent objects, try to signal them etc.
This generally goes poorly (segfault and friends).
Simply QPointer-guarding the finish-signals, new-allocating the threads and DeleteLater() does not do it.

Figure out how to take down threads properly.
And/or move IppPrinters/PrinterWorkers to a global thread pool so they can finish in peace.
(Good prep for being able to run print jobs in the background, but which is not very important since we can't have a daemon for it anyway and thus closing the app will break running jobs)

Cannot print landscape PDFs

It was pointed out that landscape and mixed PDFs can't be printed.
I currently cannot even find how to use poppler-utils to remedy this, but i'm looking in to it.

Error: Print failed: Unknown

Like described in the comments of the jolla store your app finally detected my printer. Only jpeg is possible. :(
But after choosing a picture and starting the print job I got the error: Print failed: Unknown

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.