Ya busqué durante mucho tiempo una forma elegante, pero no pude encontrar una opción. Estoy usando InDesign CS5 y quería saber cómo escalar un gráfico EPS (o cualquier otro vector) que inserté en mi póster de acuerdo con el tamaño del texto.
El archivo EPS que tengo contiene esquemas de reacciones químicas con símbolos de elementos y enlaces, etc. (hecho por ChemDraw). El texto que se incluye en este archivo sigue siendo un texto de texto (no lo convertí en curvas ni nada). Ahora estoy buscando el poder de agrandar estos esquemas de reacción diciéndole al programa que haga que la fuente tenga un tamaño de 20 pt, por ejemplo, y que todos los demás elementos de este gráfico vectorial se amplíen proporcionalmente .
la razonla razón por la que pregunto esto es porque tengo varias de esas imágenes, pero no se importan con el mismo tamaño, pero me gustaría mostrarlas de manera uniforme en todo el póster o documento.
La forma sucia sería escribir texto con el tamaño deseado junto a él y cambiar la escala del esquema hasta que los tamaños de fuente coincidan. Sin embargo, tan pronto como sea necesario que un esquema sea un poco más pequeño, tendría que repetir todo el proceso para cada gráfico.
Editar:
descarga del archivo EPS ficticio (el archivo se llama "wilkinson.eps" en referencia al catalizador)
Al observar que el archivo EPS usa una sintaxis de estilo PDF, noté que la escala del texto se realiza con Tf
:
8 0 0 8 5.327283 18.119995 Tm
Los 6 números son una matriz de transformación, donde el primer número ( 8
) es la escala x y el cuarto número (también, como suele suceder, 8
) es la escala y del texto. Tienes que elegir uno (bueno, generalmente): elegí el primer número.
A continuación, obtener el archivo de imagen de cualquier selección. Puede probar si una selección (ya sea 'directa' o su rectángulo principal) es cualquier gráfico y, de ser así, cuál es su descripción textual: imageTypeName
. Para mi versión de InDesign, esto es "EPS".
Un archivo vinculado da acceso a su nombre de ruta completo original, y como el EPS es un formato de texto sin formato simple, puede leerlo una línea a la vez y probar con una expresión regular para que aparezca el primer comando Tf
. Esta, la función scanFile
, devuelve el tamaño real del texto. Al multiplicar esto por la escala del objeto, se obtiene el tamaño efectivo del texto, en la escala actual de su documento. Luego, todo lo que queda es emitir 2 resize
comandos: uno para el rectángulo contenedor y otro para la imagen contenedora.
El siguiente Javascript hace todo esto en un EPS seleccionado. Guárdelo como scaleEPS.jsx
en su carpeta Panel de usuario/guiones. Cambie el desiredSize
en la parte superior a su tamaño deseado, o reemplácelo con la línea
desiredSize = Number(prompt("Size", "10"));
para ingresarlo para cada ejecución separada si necesita diferentes tamaños para cada ejecución.
//DESCRIPTION:Scale EPS Image for Text
// A Jongware Script 17-Jul-2015
var desiredSize = 12;
if (app.selection.length == 1)
{
obj = app.selection[0];
if (obj.hasOwnProperty('graphics') && obj.graphics.length == 1)
obj = obj.graphics[0];
if (obj instanceof EPS ||
(obj instanceof Graphic && obj.imageTypeName == "EPS"))
{
textsize = scanFile (obj.itemLink.filePath);
textsize *= obj.horizontalScale/100;
obj.parent.resize (CoordinateSpaces.INNER_COORDINATES,
AnchorPoint.CENTER_ANCHOR,
ResizeMethods.MULTIPLYING_CURRENT_DIMENSIONS_BY, [desiredSize/textsize, desiredSize/textsize]);
obj.resize (CoordinateSpaces.INNER_COORDINATES,
AnchorPoint.CENTER_ANCHOR,
ResizeMethods.MULTIPLYING_CURRENT_DIMENSIONS_BY, [desiredSize/textsize, desiredSize/textsize]);
}
}
function scanFile (fullpath)
{
var file = File(fullpath)
if (file.open('r') == false)
return 0;
var m;
while (!file.eof)
{
m = file.readln().match(/^(\d+(\.\d*)?)( (\d+(\.\d*)?)){5} Tm/);
if (m)
{
file.close();
return m[1];
}
}
file.close();
// a reasonable default
return 10;
}
Algunos descargos de responsabilidad:
Este es un procedimiento muy simple. lo que sabes exactamente es cuánto agrandar (en porcentaje) un texto de 18pt a 20pt.
Simplemente mida el texto antes de ampliarlo (en píxeles o mm) y mídalo después de ampliarlo. luego haga algunos cálculos, y esta será la proporción con la que debe ampliar todo el dibujo.
joojaa
Vicente
Lechuga Cristal