Sintaxis de las expresiones
En este apartado, abordamos los siguientes aspectos relacionados con la sintaxis: tokens, gramática, operaciones admitidas, nombres integrados que se usan en cálculos y funciones de expresión. Para más detalles siga leyendo.
Tokens
La expresión que se introduce para una propiedad concreta se procesa en una secuencia de tokens que deben ser conformes a la estructura descrita en esta subsección. Los espacios en blanco entre tokens no son significantes y se omiten.
Identificadores
Los identificadores integrados se usan para hacer referencia a objetos integrados. Los identificadores integrados empiezan por una letra en mayúscula o minúscula o por un guión bajo (p.ej., Top se refiere a la parte superior de una región). Los identificadores de usuario van entre corchetes [ ] y pueden contener cualquier carácter Unicode (p.ej., [Sep1] puede hacer referencia al extremo izquierdo de la columna de la tabla llamada Description).
Tokens de un sólo carácter
Los tokens de un solo carácter son una parte esencial de los lenguajes de programación y suelen combinarse para crear expresiones complejas. Estos son los tokens de un sólo carácter que se usan: (, ), {, }, ,, :, ..
Literales numéricos
Los literales numéricos representan valores numéricos. Los literales numéricos no tienen signo (se trata como un operador unitario) y deben tener al menos un dígito antes y después del punto decimal.
Literales de cadena
Los literales de cadena representan secuencias de caracteres entre comillas dobles. Los literales de cadena pueden contener cualquier carácter Unicode y caracteres especiales con barra diagonal inversa (p.ej., el carácter \n representa un salto de línea).
Literales de color
Los literales de color representan códigos de colores. Los literales de color adoptan la misma forma que en HTML y CSS y usan tres o seis dígitos hexadecimales (p.ej., #FFF es el código de color hexadecimal que representa el color blanco).
Operadores
Los operadores son símbolos que se usan para realizar diversas operaciones, como comparar valores, realizar cálculos matemáticos, concatenar cadenas, etc. Se admiten los siguientes operadores: +, -, *, /, &, |, =, !, <, >, ^, %.
Gramática
En esta subsección describimos los siguientes aspectos de gramática: expresiones binarias y unarias.
Expresiones binarias
Una expresión binaria es una expresión que contiene dos operandos y un operador que especifica una acción (p.ej., multiplicación) que debe realizarse con los operandos.
Los operadores multiplicativos (*, /), aditivos (+, -) y lógicos (&&, ||, !) son operadores asociativos a la izquierda. Esto significa que los operadores de la misma precedencia se procesan de izquierda a derecha (p.ej., en la expresión 5+2*4, la multiplicación se calcula antes que la suma, porque la multiplicación tiene una precedencia mayor que la suma). Estos operadores asociativos a la izquierda se pueden encadenar.
Los operadores de igualdad (==, !=, =), así como los operadores relacionales (<, >, ≤, ≥) y generales (los operadores que no se incluyen en ninguna otra categoría) no son asociativos. Es decir, se deben encadenar con paréntesis para que no se de un error de análisis.
Expresiones unarias
Una expresión unaria es una expresión que contiene sólo un operando y un operador unario que realiza acciones sobre este operando único. A continuación se describen las expresiones unarias admitidas.
•Una expresión de referencia integrada es un identificador, un identificador seguido de una secuencia de selectores de miembros o un identificador seguido de una tupla, que es una llamada a funciones.
•Una expresión de referencia del usuario describe lo mismo que una expresión de referencia integrada, con la diferencia de que no es posible realizar llamadas a funciones.
•Una expresión de operador de prefijo unario es un operador que realiza acciones sobre un único operando y se coloca delante de este operando. Estos son algunos ejemplos de operadores de prefijo unario comunes: +, -, !, ++, --.
•Una expresión de literal de cadena es la que se ha descrito anteriormente en Literales de cadena en la subsección Tokens.
•Una expresión de número es un literal numérico con un sufijo opcional (puede ser cualquier identificador integrado). Este tipo de expresión puede ser útil, por ejemplo, para literales de distancia.
•Una expresión de literal de color es la que se ha descrito anteriormente en Literales de color en la subsección Tokens.
•Las expresiones de Tupla pueden ser de varios tipos: (i) una tupla vacía que no contiene ningún elemento y se representa como (), (ii) una tupla singleton que contiene un único elemento (p.ej. (50,)) o (iii) todas las demás tuplas que contienen al menos dos valores (p.ej. (5pt, "Hola") es una tupla que tiene como primer valor una distancia y como segundo valor una cadena).
•Una expresión de estructura es similar a una expresión de tupla, con la diferencia de que los miembros de la tupla tienen índices, mientras los miembros de la estructura tienen nombres para identificarlos. Frente a una tupla, una estructura de un solo miembro sigue siendo una estructura ya que tiene un nombre. Sin embargo, una estructura vacía es equivalente a una tupla vacía. Ejemplo de una estructura: { X: 30pt, Y: -20pt } es una estructura con componentes X y Y, que ambos son valores de distancia.
Operaciones admitidas
En esta subsección describiremos las operaciones admitidas.
Números
Los números se pueden sumar, restar, negar, multiplicar, dividir y comparar. PDF Extractor admite las funciones par e impar para comprobar si un número es par o impar. Tenga en cuenta que no se dará ningún resultado si un número no es un número entero.
Booleanas
Las operaciones booleanas aceptan comparaciones de igualdad (==, !=), así como conjunciones (AND) y disyunciones lógicas (OR).
Ubicaciones
La ubicación especifica la posición de un borde en una página. Operaciones de ubicación le permiten colocar un borde en una página. Esta acción normalmente se realiza usando un borde o añadiendo una distancia a un borde (p.ej. Left + 50pt). Si dos ubicaciones están especificadas en la misma dirección cardinal, se pueden restar para obtener la ubicación deseada (p.ej. (Top + 500 pt) - (Top + 200pt) = Top+300pt).
Distancias
La distancia especifica a qué distancia están dos ubicaciones de la página. Las funciones de distancia se miden en pt, in, cm, mm y pc, y tienen el mismo significado que en CSS. Es posible sumar y restar distancias, así como multiplicar una distancia por un número. También se pueden dividir las distancias para obtener su cociente.
Operaciones con rectángulos
PDF Extractor admite las siguientes funciones que le permiten modificar rectángulos:
Mediante la función inflate puede modificar el tamaño del rectángulo. Si introduce valores negativos, la función reduce el tamaño de un rectángulo en la distancia especificada. En cambio, si especifica valores positivos, la función expande el tamaño del rectángulo. Esta función puede ser útil si, por ejemplo, una página tiene un marco que desea excluir del procesamiento. Puede modificar el tamaño del rectángulo manualmente o utilizar la función inflate (véase el ejemplo siguiente).
Sintaxisinflate(rectángulo, distancia horizontal, distancia vertical) -> rectángulo
EjemploPor ejemplo, la expresión inflate(PageRect, -1cm, -1cm) configurada en la propiedad Región establece el rectángulo a un centímetro de ambos bordes horizontales de la página y a un centímetro de los bordes verticales de la página (ver imagen siguiente). Para más información sobre PageRect, consulte la sección Nombres integrados más abajo.
|
La función offset desplaza el rectángulo según la distancia horizontal y vertical especificada.
Sintaxisoffset(rectángulo, distancia horizontal, distancia vertical) -> rectángulo
|
La función clip toma dos rectángulos como argumentos y devuelve un rectángulo que corresponde al área de superposición de los dos rectángulos de entrada.
Sintaxisclip(rectángulo, rectángulo) -> rectángulo
|
La función contains comprueba si las ubicaciones especificadas están dentro de los límites del rectángulo.
Sintaxiscontains(rectángulo, ubicación horizontal, ubicación vertical) -> booleano
|
Nombres integrados
En PDF Extractor se admiten los siguientes nombres integrados para usarlos en cálculos:
•Left (izquierda): El borde izquierdo de la página actual. Left es un alias de PageRect.Left.
•Top (superior): El borde superior de la página actual. Top es un alias de PageRect.Top.
•Right (derecha): El borde derecho de la página actual. Right es un alias de PageRect.Right.
•Bottom (inferior): El borde inferior de la página actual. Bottom es un alias de PageRect.Bottom.
•PageRect (rectángulo de página): Un rectángulo que define los límites de la página actual. El nombre integrado PageRect es útil en combinación con funciones de procesamiento de rectángulos como inflate (véase la sección ‘Operaciones con rectángulos’ más arriba).
•PageNumber (número de página): El número de página de la página actual.