es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Script de Adobe Illustrator – impresión en papel de tamaño personalizado

En el trabajo tenemos una impresora HP y estoy intentando hacer un script que imprima el trabajo con el tamaño de papel correcto.

El ancho del papel es de 900 mm y la altura puede ser ajustada según queramos, pero tenemos que hacerlo manualmente para cada trabajo.

He escrito un script que imprime el trabajo en la impresora HP, pero no puedo encontrar una forma de verificar el tamaño del tablero de arte para determinar la orientación de impresión e imprimirla al tamaño del tablero de arte + un espacio para el corte.

Esto es lo que tengo ahora:

var Doc = app.activeDocument;
var abActive = Doc.artboards[Doc.artboards.getActiveArtboardIndex()];

var bounds = abActive.artboardRect;

var left = bounds[0];
var top = bounds[1];
var right = bounds[2];
var bottom = bounds[3];

var Pheight = right - left;

//Lexmark 1
//HP 2
var Lexmark = app.printerList[1].name;
var HP = app.printerList[2].name;

var PaperA3 = printerList[2].printerInfo.paperSizes[1];

var printJobOptions = new PrintJobOptions();
var options = new PrintOptions();

var coordinateOptions = new PrintCoordinateOptions();
//coordinateOptions.fitToPage = true;
coordinateOptions.orientation = PrintOrientation.AUTOROTATE ;
options.coordinateOptions = coordinateOptions;

var printPaperOpts = new PrintPaperOptions();
printPaperOpts.name = PaperA3;
printPaperOpts.height = 600;
options.paperOptions = printPaperOpts;

options.printerName = HP;
options.printPreset = "HP";

Doc.print(options);
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para determinar la orientación de impresión y imprimir el trabajo en el tamaño correcto, deberá modificar su script. Aquí están los pasos que puede seguir:

    1. Obtenga el ancho y alto del tablero utilizando la propiedad artboardRect.
    var abActivo = Doc.artboards[Doc.artboards.getActiveArtboardIndex()];
    var anchoTablero = abActivo.artboardRect[2] - abActivo.artboardRect[0];
    var altoTablero = abActivo.artboardRect[1] - abActivo.artboardRect[3];
    
    1. Determine la orientación del tablero en función de la relación entre su ancho y alto. Si el ancho es mayor que el alto, la orientación es horizontal; de lo contrario, es vertical.
    var esHorizontal = anchoTablero > altoTablero;
    
    1. Calcule el tamaño del papel a utilizar para la impresión. Para hacer esto, deberá agregar un espacio adicional para el corte. Puede utilizar el objeto PaperInfo para obtener las dimensiones del papel y luego ajustarlo según sea necesario.
    var nombrePapel = "Personalizado";
    var anchoPapel = 900; // en mm
    var altoPapel = esHorizontal ? altoTablero + 50 : anchoTablero + 50; // agregar 50 mm para el corte
    var papelPersonalizado = app.papers.add(nombrePapel, anchoPapel, altoPapel);
    
    1. Configure las opciones de impresión, incluyendo el nombre de la impresora, el tamaño del papel y la orientación.
    var opcionesImpresion = new PrintOptions();
    opcionesImpresion.printerName = "HP Plotter"; // reemplazar con el nombre de su impresora
    opcionesImpresion.paperOptions = new PrintPaperOptions();
    opcionesImpresion.paperOptions.name = nombrePapel;
    opcionesImpresion.paperOptions.width = anchoPapel;
    opcionesImpresion.paperOptions.height = altoPapel;
    opcionesImpresion.coordinateOptions = new PrintCoordinateOptions();
    opcionesImpresion.coordinateOptions.orientation = esHorizontal ? PrintOrientation.LANDSCAPE : PrintOrientation.PORTRAIT;
    
    1. Finalmente, imprima el documento utilizando el método print.
    Doc.print(opcionesImpresion);
    

    Con estos cambios, su script debería poder imprimir el trabajo en el plotter HP con el tamaño y la orientación correctos.

Comments are closed.