Ridimensionamento per adattarsi alla larghezza della paginaL'impostazione della pagina JMP viene fornita con una scala per adattarsi alla pagina, ma vorrei farlo in uno script senza dover utilizzare uno scalare statico. È possibile un "adattamento alla larghezza della pagina"?
Nello specifico, vorrei fare in modo che lo script selezioni automaticamente uno scalare per il comando "Imposta impostazione pagina" in base al layout della pagina (Verticale o Orizzontale, dimensioni dei margini)
Scrittura attuale:
Journal << Set page setup(
margins( .4, .4, .4, .4 ),
scale( .67 ), portrait( 0 ),
paper size( "Letter" )
);
Vorrei che lo fosse
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: Adattamento alla larghezza della paginaLo snip originale di JSL è simile a questo
eval(evalexpr(
Journal << Set page setup( margins( expr(left), expr(top), expr(right), expr(bottom) ),
scale( expr(scale) ), portrait( 1 ), paper size( "Letter" ) )
));
Le funzioni extra eval(evalexpr( ... expr(...) ...)) stanno risolvendo un problema che esisteva in JMP 10 (e apparentemente esiste ancora). Il problema era/è in <È un modello per sostituire il valore di una variabile con la variabile .
Penso che tu abbia omesso il wrapper eval/evalexpr.
Modifica: inviata una nota al team di sviluppo.
Re: Adattamento alla larghezza della paginaGrazie per aver condiviso questo.
Ho difficoltà nell'esecuzione di questa parte:
scale( expr(scale) )
Sembra che jmp16 non lo riconosca come valore numerico.
Eventuali suggerimenti?
Funziona solo se inserisco un numero lì.
Grazie,
Re: Adattamento alla larghezza della paginaQuesto è bellissimo! Grazie!
Re: Adattamento alla larghezza della paginaEsiste un modo migliore che funziona anche in JMP 10:
journal << set Print Headers( "", "", "" );
journal << save pdf( "$temp\test.pdf" );
rimuovendo le intestazioni di stampa (e i piè di pagina, se necessario) la pagina PDF avrà un aspetto molto migliore.
PDF without JMP headersPDF without JMP headersPDF senza intestazioni JMP
Re: Adattamento alla larghezza della paginafunziona abbastanza bene in JMP 12. JMP 11 non rimuove le decorazioni extra della pagina e JMP 10 ha bisogno di aiuto per inviare i parametri al messaggio SetPageSetup. (Si consiglia l'aggiornamento a 12 (o 13!) se possibile.)
// 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 );
Per JMP 11 o 10, rimuovere la preferenza salva/imposta/ripristina e per JMP 10 utilizzare
// 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 );
Non sono sicuro al 100% del valore hardcoded di 96 DPI e potrebbero esserci alcuni errori di arrotondamento di cui la funzione soffitto tenta erroneamente di tenere conto.
Re: Adattamento alla larghezza della paginaSe aiuta, sto usando JMP 10.0.2
Re: Adattamento alla larghezza della paginaHo sconcertato tutti?