Digamos que tengo una colección de archivos PDF con las siguientes rutas:iteración a través de un directorio con Ant
/some/path/pdfs/birds/duck.pdf
/some/path/pdfs/birds/goose.pdf
/some/path/pdfs/insects/fly.pdf
/some/path/pdfs/insects/mosquito.pdf
Lo que me gustaría hacer es generar imágenes en miniatura para cada PDF que respeta la estructura ruta relativa, y salida a otra ubicación, es decir:
/another/path/thumbnails/birds/duck.png
/another/path/thumbnails/birds/goose.png
/another/path/thumbnails/insects/fly.png
/another/path/thumbnails/insects/mosquito.png
Me gustaría que esto se haga en Ant. Supongo que voy a utilizar Ghostscript en la línea de comandos y ya he trabajado a cabo la llamada a la GS:
<exec executable="${ghostscript.executable.name}">
<arg value="-q"/>
<arg value="-r72"/>
<arg value="-sDEVICE=png16m"/>
<arg value="-sOutputFile=${thumbnail.image.path}"/>
<arg value="${input.pdf.path}"/>
</exec>
Así que lo que tengo que hacer es trabajar en los valores correctos para ${thumbnail.image.path}
y ${input.pdf.path}
al atravesar la Directorio de entrada PDF
Tengo acceso a ant-contrib (acaba de instalar el "último", que es 1.0b3) y estoy usando Ant 1.8.0. Creo que puedo hacer que algo funcione usando la tarea <for>
, <fileset>
sy <mapper>
s, pero estoy teniendo problemas para poner todo junto.
he intentado algo así como:
<for param="file">
<path>
<fileset dir="${some.dir.path}/pdfs">
<include name="**/*.pdf"/>
</fileset>
</path>
<sequential>
<echo message="@{file}"/>
</sequential>
</for>
Pero, por desgracia la propiedad @{file}
es una ruta absoluta, y no puedo encontrar ninguna manera sencilla de descomponer en los componentes relativos.
Si solo puedo hacer esto usando una tarea personalizada, supongo que podría escribir una, pero espero poder simplemente conectar los componentes existentes.
Eso se ve muy interesante. ¿Puedes expandir tu código solo un poco para mostrar cómo usaría eso? es decir, ¿lo uso junto con la tarea y, de ser así, aparece en el ? –