Escalar para ajustarse al ancho de la páginaLa configuración de página JMP viene con una escala para ajustarse a la página, pero me gustaría hacer esto en un script sin tener que usar un escalar estático. ¿Es esto posible "ajustarse al ancho de la página"?
Específicamente, me gustaría hacer que el script seleccione automáticamente un escalar para el comando "Establecer configuración de página" según el diseño de la página (vertical u horizontal, tamaños de margen)
Guión actual:
Journal << Set page setup(
margins( .4, .4, .4, .4 ),
scale( .67 ), portrait( 0 ),
paper size( "Letter" )
);
me gustaria que fuera
Journal << Set page setup(
margins( .4, .4, .4, .4 ), portrait( 0 ),
paper size( "Letter" )
);
ScaleVariable = /* current page setup width divided by maximum width of objects in journal*/ ;
Journal << Set Page Setup( scale ( ScaleVariable ) ) ;
Re: Escalar para ajustar al ancho de la páginaEl recorte original de JSL se ve así
eval(evalexpr(
Journal << Set page setup( margins( expr(left), expr(top), expr(right), expr(bottom) ),
scale( expr(scale) ), portrait( 1 ), paper size( "Letter" ) )
));
Las funciones adicionales eval(evalexpr(... expr(...) ...)) están solucionando un problema que existía en la época de JMP 10 (y aparentemente todavía existe). El problema estaba/está en <Es un patrón para sustituir el valor de una variable por la variable. .
Creo que omitiste el contenedor eval/evalexpr.
Editar: envió una nota al equipo de desarrollo.
Re: Escalar para ajustar al ancho de la páginaGracias por compartir esto.
Tengo dificultades para ejecutar esta parte:
scale( expr(scale) )
Parece que jmp16 no reconoce esto como un valor numérico.
¿Alguna sugerencia?
Sólo funciona si pongo un número allí.
Gracias,
Re: Escalar para ajustar al ancho de la página¡Esto es hermoso! ¡Gracias!
Re: Escalar para ajustar al ancho de la páginaHay una manera mejor que también funciona en JMP 10:
journal << set Print Headers( "", "", "" );
journal << save pdf( "$temp\test.pdf" );
eliminar los encabezados de impresión (y los pies de página si es necesario) hace que la página PDF se vea mucho mejor.
PDF without JMP headersPDF without JMP headersPDF sin encabezados JMP
Re: Escalar para ajustar al ancho de la páginaesto funciona bastante bien en JMP 12. JMP 11 no elimina las decoraciones de página adicionales y JMP 10 necesita ayuda para enviar los parámetros al mensaje SetPageSetup. (Se recomienda actualizar a 12 (¡o 13!) si es posible).
// your parameters - paper size and margins
pagewidth = 8.5;
pageheight = 11;
left = .4;
right = .4;
top = .4;
bottom = .4;
dt = Open( "$sample_data/big class.jmp" );
// your reports
//plat = dt << runscript( "bivariate" );
//plat << journal;
//plat << closewindow;
plat = dt << runscript( "fit model" );
plat << journal;
plat << closewindow;
journal = Current Journal();
saved = Get Preferences( "print settings" ); // remember decorations, if any
Preferences( Print Settings( Left Header( "" ), Right Header( "" ) ) ); // remove decorations
{xpix, ypix} = journal << getsize;
marginx = left + right;
marginy = top + bottom;
xinch = pagewidth - marginx;
yinch = pageheight - marginy;
xppi = xpix / xinch;
yppi = ypix / yinch;
ppi = Max( xppi, yppi );
scale = 96 / Ceiling( ppi ); // a little guesswork here.
// 96 is the pixels per inch of the destination. 72 is another common possibility.
// force the larger dimension to fit. you could pick a different strategy, make the
// width fit perhaps, or have a minimum scale you don't go below.
Journal << Set page setup( margins( left, top, right, bottom ), scale( scale ), portrait( 1 ), paper size( "Letter" ) );
journal << save pdf( "$temp\test.pdf" );
journal << closewindow;
Open( "$temp\test.pdf" );
eval( saved );
Para JMP 11 o 10, elimine la preferencia guardar/configurar/restaurar y para JMP 10 use
// for JMP 10, this will have to suffice...
// your parameters - paper size and margins
pagewidth = 8.5;
pageheight = 11;
left = .4;
right = .4;
top = .4;
bottom = .4;
dt = Open( "$sample_data/big class.jmp" );
// your reports
//plat = dt << runscript( "bivariate" );
//plat << journal;
//plat << closewindow;
plat = dt << runscript( "fit model" );
plat << journal;
plat << closewindow;
journal = Current Journal();
//saved = Get Preferences( "print settings" ); // remember decorations, if any
//Preferences( Print Settings( Left Header( "" ), Right Header( "" ) ) ); // remove decorations
{xpix, ypix} = journal << getsize;
marginx = left + right;
marginy = top + bottom;
xinch = pagewidth - marginx;
yinch = pageheight - marginy;
xppi = xpix / xinch;
yppi = ypix / yinch;
ppi = Max( xppi, yppi );
scale = 96 / Ceiling( ppi ); // a little guesswork here.
// 96 is the pixels per inch of the destination. 72 is another common possibility.
// force the larger dimension to fit. you could pick a different strategy, make the
// width fit perhaps, or have a minimum scale you don't go below.
eval(evalexpr(
Journal << Set page setup( margins( expr(left), expr(top), expr(right), expr(bottom) ),
scale( expr(scale) ), portrait( 1 ), paper size( "Letter" ) )
));
journal << save pdf( "$temp\test.pdf" );
journal << closewindow;
Open( "$temp\test.pdf" );
//eval( saved );
No estoy 100% seguro del valor codificado de 96 DPI y puede haber algunos errores de redondeo que la función de techo intenta tener en cuenta incorrectamente.
Re: Escalar para ajustar al ancho de la páginaSi ayuda, estoy usando JMP 10.0.2
Re: Escalar para ajustar al ancho de la página¿Dejé perplejos a todos?