结合Javascript if papercut的陈述

前端之家收集整理的这篇文章主要介绍了结合Javascript if papercut的陈述前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我的任务是将Js中的两个if语句组合成一个剪纸脚本.它是一个打印管理软件.我有我需要的一切我相信下面的脚本.问题是将这两个结合在一起我认为是一个陈述.我不熟悉Javascript,也不熟悉python.我希望在重新安排此脚本时提供一些帮助,如下所述.

PaperCut print script API reference

目标:

只有在打印作业10页时才会弹出成本中心,否则只需自动将作业计入公司不可计费(ADM-3900)帐户.
如果作业为50页,则将其从HP重定向到较大的复印机.在这种情况下,从test_printer3到Copier – Color.

/*
* Redirect large jobs without confirmation
* 
* Users printing jobs larger than the defined number of pages have their jobs 
* automatically redirected to another printer or virtual queue.
* This can be used to redirect large jobs from slower or high cost printers 
* to more efficient or faster high volume printers.
*/

function printJobHook(inputs,actions) {

  /*
  * This print hook will need access to all job details
  * so return if full job analysis is not yet complete.
  * The only job details that are available before analysis
  * are Metadata such as username,printer name,and date.
  *
  * See reference documentation for full explanation.
  */

  /*
  * NOTE: The high-volume printer must be compatible with the source printer.
  *       i.e. use the same printer language like PCL or Postscript.
  *       If this is a virtual queue,all printers in the queue must use
  *       the same printer language.
  */

  if (!inputs.job.isAnalysisComplete) {
    // No job details yet so return.

    return;
    actions.job.chargeToPersonalAccount();

    return;


    if (inputs.job.totalPages < 10) {

      // Charge to the firm non-bill account

      actions.job.chargeToSharedAccount(ADM-3900);

    } 
    // Account Selection will still show

  } 

  var LIMIT             = 5; // Redirect jobs over 5 pages.


  var HIGH_VOL_PRINTER  = "Copier - Color";

  if (inputs.job.totalPages > LIMIT) {
    /*
    * Specify actions.job.bypassReleaseQueue() if you wish to bypass the release queue
    * on the original printer the job was sent to.  (Otherwise if held at the target,* the job will need to be released from two different queues before it will print.)
    */
    actions.job.bypassReleaseQueue();

    /*
    * Job is larger than our page limit,so redirect to high-volume printer,* and send a message to the user.
    * Specify "allowHoldAtTarget":true to allow the job to be held at the hold/release
    * queue for the high-volume printer,if one is defined.
    */

    actions.job.redirect(HIGH_VOL_PRINTER,{allowHoldAtTarget: true});

    // Notify the user that the job was automatically redirected.
    actions.client.sendMessage(
      "The print job was over " + LIMIT + " pages and was sent to " 
      + " printer: " + HIGH_VOL_PRINTER + ".");

    // Record that the job was redirected in the application log.
    actions.log.info("Large job redirected from printer '" + inputs.job.printerName 
                     + "' to printer '" + HIGH_VOL_PRINTER + "'.");
  }

}
最佳答案
我相信这是你正在寻找的,但它并不完全清楚.在不知道所有逻辑分支的情况下很难合并条件.

/*
* Redirect large jobs without confirmation
* 
* Users printing jobs larger than the defined number of pages have their jobs 
* automatically redirected to another printer or virtual queue.
* This can be used to redirect large jobs from slower or high cost printers 
* to more efficient or faster high volume printers.
*/

 function printJobHook(inputs,actions) {

 /*
 * This print hook will need access to all job details
 * so return if full job analysis is not yet complete.
 * The only job details that are available before analysis
 * are Metadata such as username,and date.
 *
 * See reference documentation for full explanation.
 */

 /*
 * NOTE: The high-volume printer must be compatible with the source printer.
 *       i.e. use the same printer language like PCL or Postscript.
 *       If this is a virtual queue,all printers in the queue must use
 *       the same printer language.
 */


 var LIMIT             = 5; // Redirect jobs over 5 pages.
 var HIGH_VOL_PRINTER  = "Copier - Color";  

if (!inputs.job.isAnalysisComplete) { 
 return;// No job details yet so return. 
} 


//Charge jobs with less than 10 pages to non-bill account
if (inputs.job.totalPages < 10) {
  // Charge to the firm non-bill account
  actions.job.chargeToSharedAccount(ADM-3900);
} 
else //Charge jobs with more than 10 pages to the personal account
{   
    actions.job.chargeToPersonalAccount();

      if (inputs.job.totalPages > LIMIT) {
        /*
        * Specify actions.job.bypassReleaseQueue() if you wish to bypass the release queue
        * on the original printer the job was sent to.  (Otherwise if held at the target,* the job will need to be released from two different queues before it will print.)
        */
        actions.job.bypassReleaseQueue();

        /*
        * Job is larger than our page limit,* and send a message to the user.
        * Specify "allowHoldAtTarget":true to allow the job to be held at the hold/release
        * queue for the high-volume printer,if one is defined.
        */

        actions.job.redirect(HIGH_VOL_PRINTER,{allowHoldAtTarget: true});

        // Notify the user that the job was automatically redirected.
        actions.client.sendMessage(
          "The print job was over " + LIMIT + " pages and was sent to " 
          + " printer: " + HIGH_VOL_PRINTER + ".");

        // Record that the job was redirected in the application log.
        actions.log.info("Large job redirected from printer '" + inputs.job.printerName 
                         + "' to printer '" + HIGH_VOL_PRINTER + "'.");
      }
}
   return
}

猜你在找的JavaScript相关文章