diff --git a/contrib/japanese/gdev10v.c b/contrib/japanese/gdev10v.c index 5c8b7fb..53da0ec 100644 --- a/contrib/japanese/gdev10v.c +++ b/contrib/japanese/gdev10v.c @@ -73,8 +73,20 @@ gx_device_procs prn_bj10v_procs = prn_matrix_procs(gdev_prn_open, bj10v_get_initial_matrix, gdev_prn_output_page, gdev_prn_close); #endif + +static int +bj10v_open(gx_device * pdev) +{ + if (pdev->HWResolution[0] < 180 || + pdev->HWResolution[1] < 180) + { + emprintf(pdev->memory, "device requires a resolution of at least 180dpi\n"); + return_error(gs_error_rangecheck); + } + return gdev_prn_open(pdev); +} gx_device_procs prn_bj10v_procs = - prn_procs(gdev_prn_open, gdev_prn_output_page, gdev_prn_close); + prn_procs(bj10v_open, gdev_prn_output_page, gdev_prn_close); gx_device_printer gs_bj10v_device = prn_device(prn_bj10v_procs, "bj10v", diff --git a/contrib/japanese/gdevalps.c b/contrib/japanese/gdevalps.c index f29aeb1..d4de619 100644 --- a/contrib/japanese/gdevalps.c +++ b/contrib/japanese/gdevalps.c @@ -155,13 +155,20 @@ static const char end_md[] = { static int md_open(gx_device *pdev) { - static const float md_margins[4] = - { MD_SIDE_MARGIN, MD_BOTTOM_MARGIN, - MD_SIDE_MARGIN, MD_TOP_MARGIN - }; - - gx_device_set_margins(pdev, md_margins, true); - return gdev_prn_open(pdev); + static const float md_margins[4] = + { + MD_SIDE_MARGIN, MD_BOTTOM_MARGIN, + MD_SIDE_MARGIN, MD_TOP_MARGIN + }; + + if (pdev->HWResolution[0] != 600) + { + emprintf(pdev->memory, "device must have an X resolution of 600dpi\n"); + return_error(gs_error_rangecheck); + } + + gx_device_set_margins(pdev, md_margins, true); + return gdev_prn_open(pdev); } /* MD5000 monochrome mode entrance. */