blob: 6d51c68830bb417aff56d16bcbce6594843cba0a [file] [log] [blame]
PR/epson-inkjet-printer-escpr/src/filter.c | 9 +++++++++
PR/epson-inkjet-printer-escpr/src/wrapper.c | 22 ++++++++++++++--------
2 files changed, 23 insertions(+), 8 deletions(-)
diff --git a/PR/epson-inkjet-printer-escpr/src/filter.c b/PR/epson-inkjet-printer-escpr/src/filter.c
index 9cc3c4b3..8ae09134 100644
--- a/PR/epson-inkjet-printer-escpr/src/filter.c
+++ b/PR/epson-inkjet-printer-escpr/src/filter.c
@@ -333,9 +333,18 @@ main (int argc, char *argv[])
band_line = 1;
if (strcmp (fopt.ink, "COLOR") == 0)
+ {
byte_par_pixel = 3;
+ }
+ else if (strcmp (fopt.ink, "MONO") == 0)
+ {
+ byte_par_pixel = 1;
+ }
else
+ {
+ fprintf(stderr, "ERROR: [escpr] raster data is handled as 8bpp, unknown option\n");
byte_par_pixel = 1;
+ }
///////////////////////////////////////////////////////////////////////////////////////////////////////////
epsInitLib();
diff --git a/PR/epson-inkjet-printer-escpr/src/wrapper.c b/PR/epson-inkjet-printer-escpr/src/wrapper.c
index 2c1ef8b9..295316c8 100644
--- a/PR/epson-inkjet-printer-escpr/src/wrapper.c
+++ b/PR/epson-inkjet-printer-escpr/src/wrapper.c
@@ -188,6 +188,19 @@ main (int argc, char *argv[])
int ret;
ret = cupsRasterReadHeader (ras, &header);
+ if (header.cupsBitsPerPixel == 24 && header.cupsColorSpace == 1)
+ {
+ strcpy (fopt.ink, "COLOR");
+ }
+ else if (header.cupsBitsPerPixel == 8 && header.cupsColorSpace == 0)
+ {
+ strcpy (fopt.ink, "MONO");
+ }
+ else
+ {
+ strcpy (fopt.ink, "NOT_SUPPORTED");
+ }
+
if (ret == 0 || cancel_flg) //データをすべて読み終わった
{
@@ -396,14 +409,7 @@ get_option_for_ppd (const char *printer, filter_option_t *filter_opt_p)
}
/* ink */
- if (filter_opt_p->ink[0] == '\0')
- {
- opt = get_default_choice (ppd_p, "Ink");
- if (!opt)
- return 1;
-
- strcpy (filter_opt_p->ink, opt);
- }
+ // Don't touch Ink key.
/* MediaType */
if (filter_opt_p->quality[0] == '\0')