summaryrefslogtreecommitdiff
path: root/devices/gdevpdfimg.c
diff options
context:
space:
mode:
Diffstat (limited to 'devices/gdevpdfimg.c')
-rw-r--r--devices/gdevpdfimg.c88
1 files changed, 12 insertions, 76 deletions
diff --git a/devices/gdevpdfimg.c b/devices/gdevpdfimg.c
index 2b7d9c777..06caa447e 100644
--- a/devices/gdevpdfimg.c
+++ b/devices/gdevpdfimg.c
@@ -200,8 +200,6 @@ static int gdev_pdf_image_begin_page(gx_device_pdf_image *pdf_dev,
gp_file *file)
{
gx_device_printer *const pdev = (gx_device_printer *)pdf_dev;
- cmm_dev_profile_t *profile_struct;
- gsicc_rendering_param_t rendering_params;
int code;
pdfimage_page *page;
@@ -213,39 +211,11 @@ static int gdev_pdf_image_begin_page(gx_device_pdf_image *pdf_dev,
if (gdev_prn_file_is_new(pdev)) {
/* Set up the icc link settings at this time */
- code = dev_proc(pdev, get_profile)((gx_device *)pdev, &profile_struct);
- if (code < 0)
- return_error(gs_error_undefined);
- if (profile_struct->postren_profile != NULL) {
- rendering_params.black_point_comp = gsBLACKPTCOMP_ON;
- rendering_params.graphics_type_tag = GS_UNKNOWN_TAG;
- rendering_params.override_icc = false;
- rendering_params.preserve_black = gsBLACKPRESERVE_OFF;
- rendering_params.rendering_intent = gsRELATIVECOLORIMETRIC;
- rendering_params.cmm = gsCMM_DEFAULT;
- if (profile_struct->oi_profile != NULL) {
- pdf_dev->icclink = gsicc_alloc_link_dev(pdev->memory,
- profile_struct->oi_profile, profile_struct->postren_profile,
- &rendering_params);
- } else if (profile_struct->link_profile != NULL) {
- pdf_dev->icclink = gsicc_alloc_link_dev(pdev->memory,
- profile_struct->link_profile, profile_struct->postren_profile,
- &rendering_params);
- } else {
- pdf_dev->icclink = gsicc_alloc_link_dev(pdev->memory,
- profile_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE], profile_struct->postren_profile,
- &rendering_params);
- }
- if (pdf_dev->icclink == NULL) {
- gs_free_object(pdf_dev->memory->non_gc_memory, page, "pdfimage create new page");
- return_error(gs_error_VMerror);
- }
- /* If it is identity, release it now and set link to NULL */
- if (pdf_dev->icclink->is_identity) {
- pdf_dev->icclink->procs.free_link(pdf_dev->icclink);
- gsicc_free_link_dev(pdev->memory, pdf_dev->icclink);
- pdf_dev->icclink = NULL;
- }
+ code = gx_downscaler_create_post_render_link((gx_device *)pdev,
+ &pdf_dev->icclink);
+ if (code < 0) {
+ gs_free_object(pdf_dev->memory->non_gc_memory, page, "pdfimage create new page");
+ return code;
}
/* Set up the stream and insert the file header */
@@ -851,12 +821,8 @@ static int pdf_image_finish_file(gx_device_pdf_image *pdf_dev, int PCLm)
pdf_dev->Pages = NULL;
pdf_dev->NumPages = 0;
}
- if (pdf_dev->icclink != NULL)
- {
- pdf_dev->icclink->procs.free_link(pdf_dev->icclink);
- gsicc_free_link_dev(pdf_dev->memory, pdf_dev->icclink);
- pdf_dev->icclink = NULL;
- }
+ gsicc_free_link_dev(pdf_dev->icclink);
+ pdf_dev->icclink = NULL;
pdf_dev->RootOffset = 0;
pdf_dev->PagesOffset = 0;
pdf_dev->xrefOffset = 0;
@@ -1325,8 +1291,6 @@ static int gdev_PCLm_begin_page(gx_device_pdf_image *pdf_dev,
gp_file *file)
{
gx_device_printer *const pdev = (gx_device_printer *)pdf_dev;
- cmm_dev_profile_t *profile_struct;
- gsicc_rendering_param_t rendering_params;
int code;
pdfimage_page *page;
@@ -1338,39 +1302,11 @@ static int gdev_PCLm_begin_page(gx_device_pdf_image *pdf_dev,
if (gdev_prn_file_is_new(pdev)) {
/* Set up the icc link settings at this time */
- code = dev_proc(pdev, get_profile)((gx_device *)pdev, &profile_struct);
- if (code < 0)
- return_error(gs_error_undefined);
- if (profile_struct->postren_profile != NULL) {
- rendering_params.black_point_comp = gsBLACKPTCOMP_ON;
- rendering_params.graphics_type_tag = GS_UNKNOWN_TAG;
- rendering_params.override_icc = false;
- rendering_params.preserve_black = gsBLACKPRESERVE_OFF;
- rendering_params.rendering_intent = gsRELATIVECOLORIMETRIC;
- rendering_params.cmm = gsCMM_DEFAULT;
- if (profile_struct->oi_profile != NULL) {
- pdf_dev->icclink = gsicc_alloc_link_dev(pdev->memory,
- profile_struct->oi_profile, profile_struct->postren_profile,
- &rendering_params);
- } else if (profile_struct->link_profile != NULL) {
- pdf_dev->icclink = gsicc_alloc_link_dev(pdev->memory,
- profile_struct->link_profile, profile_struct->postren_profile,
- &rendering_params);
- } else {
- pdf_dev->icclink = gsicc_alloc_link_dev(pdev->memory,
- profile_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE], profile_struct->postren_profile,
- &rendering_params);
- }
- if (pdf_dev->icclink == NULL) {
- gs_free_object(pdf_dev->memory->non_gc_memory, page, "pdfimage create new page");
- return_error(gs_error_VMerror);
- }
- /* If it is identity, release it now and set link to NULL */
- if (pdf_dev->icclink->is_identity) {
- pdf_dev->icclink->procs.free_link(pdf_dev->icclink);
- gsicc_free_link_dev(pdev->memory, pdf_dev->icclink);
- pdf_dev->icclink = NULL;
- }
+ code = gx_downscaler_create_post_render_link((gx_device *)pdev,
+ &pdf_dev->icclink);
+ if (code < 0) {
+ gs_free_object(pdf_dev->memory->non_gc_memory, page, "pdfimage create new page");
+ return code;
}
/* Set up the stream and insert the file header */