Exemplo n.º 1
0
void PRpaperPair (PAPERCODE OMsize, int xres, int yres, OMenum *LongEdge, OMenum *ShortEdge )
{
    int nPapers,retval;
    const PAPERINFO *paperInfo, *paperInfo2;
    PAPERINFO  * papers;
    papers = (PAPERINFO*)malloc(115 * sizeof(PAPERINFO));    
	retval = Map_Page_Size(OMsize,GET_OMCODE);
	OMsize=retval;	
    paperInfo = PRpaperinfoOriginal (OMsize, xres, yres);
    /*ASSERT(paperInfo);*/
    nPapers = PRpapertable(papers, xres, yres);
	/*ASSERT(LongEdge && ShortEdge);*/
    *LongEdge = *ShortEdge = 0;

    if( paperInfo != (papers+nPapers) ) {    /* 'paperInfo' is not last table */
        paperInfo2 = paperInfo + 1; /* check next PAPERINFO */
	        if ( paperInfo->PCLpaperID == paperInfo2->PCLpaperID ) {
#ifdef SYS_CHECK_DIRECTION
            if ( PrintSysGetPaperInfo(paperInfo->OMcode) )
#endif
            *ShortEdge = paperInfo->OMcode;
#ifdef SYS_CHECK_DIRECTION
            if ( PrintSysGetPaperInfo(paperInfo2->OMcode) )
#endif
            *LongEdge = paperInfo2->OMcode;
			
			retval = Map_Page_Size(*ShortEdge,GET_PCL_SIZE);
	        *ShortEdge=retval;	
			retval = Map_Page_Size(*LongEdge,GET_PCL_SIZE);
	        *LongEdge=retval;	
			return;
        }
    }

    if( paperInfo != papers ) {  /* 'paperInfo' is not first table*/
        paperInfo2 = paperInfo - 1; /* check previous PAPERINFO */
            if ( paperInfo->PCLpaperID == paperInfo2->PCLpaperID ) {
#ifdef SYS_CHECK_DIRECTION
            if ( PrintSysGetPaperInfo(paperInfo2->OMcode) )
#endif
            *ShortEdge = paperInfo2->OMcode;
#ifdef SYS_CHECK_DIRECTION
            if ( PrintSysGetPaperInfo(paperInfo->OMcode) )
#endif
            *LongEdge = paperInfo->OMcode;
			retval = Map_Page_Size(*ShortEdge,GET_PCL_SIZE);
	        *ShortEdge=retval;	
			retval = Map_Page_Size(*LongEdge,GET_PCL_SIZE);
	        *LongEdge=retval;	
            return;
        }
    }

    *ShortEdge = paperInfo->OMcode; /*Not found pair code*/
	retval = Map_Page_Size(*ShortEdge,GET_PCL_SIZE);
	*ShortEdge=retval;	
}
Exemplo n.º 2
0
const PAPERINFO * PRpaperfirst(Sint32 code, int xres, int yres, int (*comp)())
{
    int nPapers;
    PAPERINFO * papers;

    nPapers = PRpapertable(&papers, xres, yres);
    curPaper = papers;
    endPaper = papers+nPapers;
    /*ASSERT(comp && curPaper);*/

    while (curPaper != endPaper) {
        if ((*comp)(code, curPaper) == TRUE)
            if (PrintSysGetPaperInfo(curPaper->OMcode))
            return curPaper ++;
        curPaper ++;
    }
    return (PAPERINFO *)NULL;       /* not found */
}