XSL-FO tema Tamaño de imagen con archivos PDF
-
27-09-2019 - |
Pregunta
Tengo un gran número de documentos XML que se crean en DocBook y, a través de Maven, se publican tanto en un archivo HTML y una forma de pdf. Las generaciones funciona bien, y el html se ve bien. El problema que estoy teniendo es en el tamaño de las imágenes en la versión en pdf. Las imágenes son una colección de imágenes, algunos son de pantalla completa, algunos cerca de 2 / 3rds anchura y la altura, y otros son pequeños cuadros de búsqueda. Es obvio que tengo que hacer un refactor masiva de los atributos de la imagedata. Me preguntaba qué debería refactorearlo a? Estoy buscando una manera de crear hasta 4 'tipos' de imágenes y para éstos para hacer cumplir su propio tamaño. Un ejemplo de una imagen se ve así:
<section><title>Screenshot</title>
<mediaobject>
<imageobject>
<imagedata fileref="./views/screenshots/editNote.png" scalefit="0" width="100%"/>
</imageobject>
</mediaobject>
</section>
Y sólo funciona para algunos de mis tamaños de pantalla.
He jugado un poco con scalefit, el ancho y contentWidth / contentHeight y parece resolver diferentes partes del problema. Debo buscar en las ventanas gráficas así?
NOTA:. No hay temor a romper la generación de HTML ya que puedo encender '' excluir las propiedades en el XSL
Solución
Hay que intentarlo @scalefit="0"
con @scalefit="1"
:
<section><title>Screenshot</title>
<mediaobject>
<imageobject>
<imagedata fileref="./views/screenshots/editNote.png"
scalefit="1" width="100%" contentdept="100%"/>
</imageobject>
</mediaobject>
</section>
A continuación se presenta una guía para el uso de la atributos de escala.
Para escalar un gráfico para una anchura dada, establecer el contentWidth en el imagedata elemento a ese tamaño, por ejemplo contentWidth = "8.5cm". Si se especifica una número sin unidades, se asume que se ser píxeles.
Para escalar un gráfico para adaptarse a la anchura disponible en la salida impresa, el uso width = "100%" y scalefit = "1" atributos. Para el texto con sangría como en una lista, la anchura disponible es de la guión actual al margen derecho.
Para guardar un gráfico para la salida impresa en su tamaño natural, a menos de que sea demasiado grande para adaptarse a la anchura disponible, en cuyo caso encogimiento que se ajuste, el uso scalefit = "1", width = "100%", y contentdepth = "100%" atributos.
...
- Algunos procesadores XSL-FO no son compatibles todos estos atributos. Tu puedes necesitar experimentar para ver qué funciona. por ejemplo, la versión FOP 0.20.5 golosinas ancho como si fuera contentWidth y hace caso omiso de cualquier contentWidth reales atributo.
Otros consejos
Esto no es estrictamente lo que preguntas, pero ¿ha normalizado las configuraciones de DPI en los archivos de imagen? Aunque ignorada en representación HTML, que son cruciales para docbook-> PDF prestación.
Cuando me he ocupado de esto en el pasado, la fijación de la DPI me dejó sin necesidad de ajustar aún más la fuente DocBook.