Разработка технической документации и технические писатели Технические писатели и разработка технической документации технические писатели в Телеграм 

 obmen_soobsheniyami.png Чат для технических писателей 
 Зарегистрируйтесь
Страницы: 1
RSS
DITA. Вставка изображений формата SVG и EPS
 
Доброго времени суток!

Появилась проблема вставки изображений формата SVG и EPS.

[b:3rrorw71][u:3rrorw71]SVG[/u:3rrorw71][/b:3rrorw71]

Вставляю стандартно:
[code:3rrorw71]

<image href="image/Svg.svg" height="300"/>

[/code:3rrorw71]
При такой вставке изображение отображается в редакторе Serna Free.
Но при компиляции с помощью DITA Open Toolkit 1.6.3 в формат pdf,pdf2,htmlhelp не отображается в конечных документах.

Пробовала вставить так (нашла где-то на англоязычных форумах):
[code:3rrorw71]<embed type="image/svg+xml" src="image/Svg.svg">[/code:3rrorw71]
Документ не корректен.


[b:3rrorw71][u:3rrorw71]EPS[/u:3rrorw71][/b:3rrorw71]
Вставляю тоже как стандартное изображение.
[code:3rrorw71]

<image href="image/ms044.eps" height="300"></image>

[/code:3rrorw71]
Документ корректен, но не отображается ни в редакторе, ни в полученных документах.

Буду исключительно благодарна за подсказки по данному вопросу!
 
Вам понадобится установить одну дополнительную библиотеку классов Java для обработки объектов SVG. Эта библиотека является частью пакета Batik, а так же включена в пакет FOP. Если у вас установлен Batik, то убедитесь, что библиотека batik.jar включена в вашу переменную окружения $CLASSPATH. Альтернативно, создайте символическую ссылку из /opt/fop-0.20.5/lib/batik.jar, указывающую на полный путь к установленному файлу batik.jar, поэтому скрипт fop.sh будет автоматически его находить.
Если у вас пакет Batik не установлен, то выполните следующие команды как пользователь root:
install -v -m644 lib/batik.jar /opt/fop-0.20.5/lib && install -v -m644 lib/batik.LICENSE.txt \ /opt/fop-0.20.5/docs/lib
 
В линухе:
В шелл-скрипте, которым запускается ant  должны быть определены классы и переменные;
#!/bin/sh

export DITA_DIR="${BUILDER_DIR}"/ditaot
[b:37tv0cv9]export BATIK_HOME="${DITA_DIR}"/lib/batik[/b:37tv0cv9]
export ANT_OPTS="-Xmx1000m $ANT_OPTS"
#export ANT_OPTS="$ANT_OPTS -Djavax.xml.transform.TransformerFactory=net.sf.saxon.TransformerFactoryImpl"
export ANT_HOME="$DITA_DIR"/tools/ant
export PATH="$DITA_DIR"/tools/ant/bin:"$PATH"

NEW_CLASSPATH="$DITA_DIR/lib:$DITA_DIR/lib/dost.jar:$DITA_DIR/lib/resolver.jar:$DITA_DIR/lib/icu4j.jar"
NEW_CLASSPATH="$DITA_DIR/lib/saxon/saxon9.jar:$DITA_DIR/lib/saxon/saxon9-dom.jar:$NEW_CLASSPATH"
NEW_CLASSPATH="$DITA_DIR/lib/saxon/saxon9-dom4j.jar:$DITA_DIR/lib/saxon/saxon9-jdom.jar:$NEW_CLASSPATH"
NEW_CLASSPATH="$DITA_DIR/lib/saxon/saxon9-s9api.jar:$DITA_DIR/lib/saxon/saxon9-sql.jar:$NEW_CLASSPATH"
NEW_CLASSPATH="$DITA_DIR/lib/saxon/saxon9-xom.jar:$DITA_DIR/lib/saxon/saxon9-xpath.jar:$DITA_DIR/lib/saxon/saxon9-xqj.jar:$NEW_CLASSPATH"

NEW_CLASSPATH="${DITA_DIR}/demo/fo/fop/build/fop.jar:[b:37tv0cv9]${DITA_DIR}/demo/fo/fop/lib/batik-all-1.7.jar"[/b:37tv0cv9]
NEW_CLASSPATH="${DITA_DIR}/demo/fo/fop/lib/avalon-framework-4.2.0.jar:${DITA_DIR}/demo/fo/fop/lib/commons-io-1.3.1.jar:$NEW_CLASSPATH"
NEW_CLASSPATH="${DITA_DIR}/demo/fo/fop/lib/commons-logging-1.0.4.jar:${DITA_DIR}/demo/fo/fop/lib/xmlgraphics-commons-1.3.1.jar:$NEW_CLASSPATH"
NEW_CLASSPATH="${DITA_DIR}/demo/fo/fop/lib/fop-hyph.jar:${DITA_DIR}/lib/batik/batik-rasterizer.jar:$NEW_CLASSPATH"
if test -n "$CLASSPATH"
then
export CLASSPATH="$NEW_CLASSPATH":"$CLASSPATH"
else
export CLASSPATH="$NEW_CLASSPATH"
fi
#"$SHELL"
ant "$1" "-Dversion=$2" "-Dsvn.login=$3" "-Dsvn.psswd=$4" "-Dbuilder.dir=%BUILDER_DIR%"

В винде:
в bat-файле, запускающем ant, должны быть определены классы и переменные:
[b:37tv0cv9]set BATIK_HOME=%DITA_DIR%\lib\batik[/b:37tv0cv9]
set CLASSPATH=%CLASSPATH%;[b:37tv0cv9]%DITA_DIR%\demo\fo\fop\lib\batik-all-1.7.jar[/b:37tv0cv9]
set CLASSPATH=%CLASSPATH%;%DITA_DIR%\demo\fo\fop\lib\xmlgraphics-commons-1.3.1.jar
 
С EPS никогда не связывался, а в SVG нужно указывать ширину и высоту изображения одновременно.
 
Спасибо за ответ.
Однако, ясности он для меня внес не так много, как хотелось бы.
Надеюсь, вы согласитесь объяснить некоторые моменты.

Во-первых, работаю я в Windows.
Во-вторых, пакет batik-1.7 лежит у меня в \DITA-OT1.6.3\tools
Кроме того, в стартовом скрипте тулкита - startcmd.bat - у меня дописана строка:
[code:21iia2wz]set CLASSPATH=%DITA_DIR%tools\batik-1.7\batik.jar[/code:21iia2wz]
Правильно ли я понимаю, что данная библиотека классов считается у меня установленной?

Вы писали:
Цитата
В винде:
в bat-файле, запускающем ant, должны быть определены классы и переменные:
set BATIK_HOME=%DITA_DIR%\lib\batik
set CLASSPATH=%CLASSPATH%;%DITA_DIR%\demo\fo\fop\lib\batik-all-1.7.jar
set CLASSPATH=%CLASSPATH%;%DITA_DIR%\demo\fo\fop\lib\xmlgraphics-commons-1.3.1.jar
Данные три строки я внесла в файл
[code:21iia2wz]\DITA-OT1.6.3\tools\ant\bin\ant.bat[/code:21iia2wz]

Однако, у меня нет ни одной вложенной папки в папке demo.
Откуда их можно взять?

И, наконец, что необходимо изменять в xml файле, если он выглядит у меня так:

[code:21iia2wz]<?xml version='1.0' encoding='UTF-8'?>

<!DOCTYPE concept PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd" []>
<concept id="concept-1">
 <title>Изображение *.SVG</title>
 <conbody>
   

<image href="image/Svg.svg" height="300" width="500"/>
   

 </conbody>
</concept>
[/code:21iia2wz]

С нетерпением жду вашего ответа!
 
Я не в курсе где именно лежит Fop в новых версиях DITA. Нужно найти и поменять путь в bat-файле с demo/fo/fop на истинный. Должны быть актуальные пути к batik*.jar и xmlgraphics*1.jar. Если их нет, то можно скачать с сайта Apache.
 
Вы используете Dita full easy install или лайт версию ( в которой нужно все самостоятельно скачивать и устанавливать) ??
 
Цитата
<concept id="concept-1">
В ID лучше не использовать цифры и тире. Редакторы может и игнорируют невалидность, но при публикации, например в DOCX, у вас будут проблемы.
 
Цитата
Цитата
<concept id="concept-1">
В ID лучше не использовать цифры и тире. Редакторы может и игнорируют невалидность, но при публикации, например в DOCX, у вас будут проблемы.
Ровно также, как ошибки, связанные со стандартными клавиатурными кавычками ("Shift"+"2") в заголовках, при публикации в HTML, XHTML, htmlhelp, webhelp и любой другой веб.
 
Цитата
Спасибо за ответ.
Однако, ясности он для меня внес не так много, как хотелось бы.
Надеюсь, вы согласитесь объяснить некоторые моменты.

Во-первых, работаю я в Windows.
Во-вторых, пакет batik-1.7 лежит у меня в \DITA-OT1.6.3\tools
Кроме того, в стартовом скрипте тулкита - startcmd.bat - у меня дописана строка:
[code:107iaitr]set CLASSPATH=%DITA_DIR%tools\batik-1.7\batik.jar[/code:107iaitr]
Правильно ли я понимаю, что данная библиотека классов считается у меня установленной?

Вы писали:
Цитата
В винде:
в bat-файле, запускающем ant, должны быть определены классы и переменные:
set BATIK_HOME=%DITA_DIR%\lib\batik
set CLASSPATH=%CLASSPATH%;%DITA_DIR%\demo\fo\fop\lib\batik-all-1.7.jar
set CLASSPATH=%CLASSPATH%;%DITA_DIR%\demo\fo\fop\lib\xmlgraphics-commons-1.3.1.jar
Данные три строки я внесла в файл
[code:107iaitr]\DITA-OT1.6.3\tools\ant\bin\ant.bat[/code:107iaitr]

Еще обратите внимание на слеши в переменных %DITA_DIR%\lib и %DITA_DIR%tools\batik
 
Цитата
Я не в курсе где именно лежит Fop в новых версиях DITA. Нужно найти и поменять путь в bat-файле с demo/fo/fop на истинный. Должны быть актуальные пути к batik*.jar и xmlgraphics*1.jar. Если их нет, то можно скачать с сайта Apache.
Fop нашла, пути поменяла.

Цитата
Цитата
<concept id="concept-1">
В ID лучше не использовать цифры и тире. Редакторы может и игнорируют невалидность, но при публикации, например в DOCX, у вас будут проблемы.
Буду иметь ввиду, спасибо.
Кстати о docx, насколько мне известно, в DITA-OT нет варианта публикации в нём. Подскажите, пожалуйста, чем это можно осуществить.
 
Цитата
Вы используете Dita full easy install или лайт версию ( в которой нужно все самостоятельно скачивать и устанавливать) ??

Я использую XML Copy Editor, Serna Free и DITA-OT1.6.3.
Иногда использую для конвертации XMLmind DITA Converter.
 
Несмотря на все совершенные действия, SVG отображается только в xhtml, а надо бы в pdf2, docx и htmlhelp.

С помощью batik, я могу просто растеризовать картинки в png, tiff и jpeg. Но это не лучший вариант.

Для добавления SVG в pdf, я могу прописать:
[code:2ksaxfis]C:\DITA-OT1.6.3>java -jar tools/batik-1.7/batik-rasterizer.jar tools/batik-1.7/s
amples/*.svg  -m application/pdf[/code:2ksaxfis]
Вот тогда на выходе получается как раз pdf файл, содержащий в себе только одну эту картинку.
Но как сделать так, чтобы эта картинка просто добавлялась в pdf документ вместе со всем остальным, как и другие изображения?

Может быть данный формат нужно добавлять как-то иначе, нежели так?
[code:2ksaxfis]<image href="image/Svg.svg" height="350" width="700"/>[/code:2ksaxfis]

[b:2ksaxfis]Или необходимо дописывать какие-то команды?[/b:2ksaxfis]

Для обычной публикации я запускаю startcmd.bat
И уже там ввожу команду:
[code:2ksaxfis]C:\DITA-OT1.6.3>java -jar lib/dost.jar /i:<...>/imageMap.ditamap /transtype:pdf2 /outdir:<...>/ImagesDocument/pdf2
[/code:2ksaxfis]
 
Цитата
Цитата
Вы используете Dita full easy install или лайт версию ( в которой нужно все самостоятельно скачивать и устанавливать) ??

Я использую XML Copy Editor, Serna Free и DITA-OT1.6.3
Есть три комплекта:
DITA-OT1.6_full_easy_install_bin.zip
DITA-OT1.6.1_standard_bin.zip
DITA-OT1.6.1_minimal_bin.zip

В minimal не входит fop, и всякие бибилотеки, для публикации в разных форматах. Пользователь сам добавляет что ему нужно, включая платные обработчики и утилиты. В full_easy_install входят все необходимые утилиты, чтобы формировать PDF2 и XHTML с минимумом возможностей. В это минимум входит использование SVG в pdf документах. Растеризация в PDF не нужна
 
Цитата
[b:mst8hiwt]Или необходимо дописывать какие-то команды?[/b:mst8hiwt]

Для обычной публикации я запускаю startcmd.bat
И уже там ввожу команду:
[code:mst8hiwt]C:\DITA-OT1.6.3>java -jar lib/dost.jar /i:<...>/imageMap.ditamap /transtype:pdf2 /outdir:<...>/ImagesDocument/pdf2
[/code:mst8hiwt]

В стандартном файле startcmd.bat определяются переменные среды

[code:mst8hiwt]
set CLASSPATH=%DITA_DIR%lib;%DITA_DIR%lib\dost.jar;%DITA_DIR%lib\resolver.jar;%DITA_DIR%lib\icu4j.jar;%CLASSPATH%
set CLASSPATH=%DITA_DIR%lib\saxon\saxon9.jar;%DITA_DIR%lib\saxon\saxon9-dom.jar;%CLASSPATH%
set CLASSPATH=%DITA_DIR%lib\saxon\saxon9-dom4j.jar;%DITA_DIR%lib\saxon\saxon9-jdom.jar;%CLASSPATH%
set CLASSPATH=%DITA_DIR%lib\saxon\saxon9-s9api.jar;%DITA_DIR%lib\saxon\saxon9-sql.jar;%CLASSPATH%
set CLASSPATH=%DITA_DIR%lib\saxon\saxon9-xom.jar;%DITA_DIR%lib\saxon\saxon9-xpath.jar;%DITA_DIR%lib\saxon\saxon9-xqj.jar;%CLASSPATH%
[/code:mst8hiwt]

Но у меня определены еще эти:

[code:mst8hiwt]set CLASSPATH=%CLASSPATH%;%DITA_DIR%\demo\fo\fop\build\fop.jar
set CLASSPATH=%CLASSPATH%;%DITA_DIR%\demo\fo\fop\lib\batik-all-1.7.jar
set CLASSPATH=%CLASSPATH%;%DITA_DIR%\demo\fo\fop\lib\avalon-framework-4.2.0.jar
set CLASSPATH=%CLASSPATH%;%DITA_DIR%\demo\fo\fop\lib\xmlgraphics-commons-1.3.1.jar
[/code:mst8hiwt]
Может от них как-то зависит отображение картинок в PDF ?
 
Цитата
Есть три комплекта:
DITA-OT1.6_full_easy_install_bin.zip
DITA-OT1.6.1_standard_bin.zip
DITA-OT1.6.1_minimal_bin.zip
У меня - DITA-OT1.6.1_standard_bin.zip.
Извините, просто сначала не совсем поняла вопрос.


Цитата
Может от них как-то зависит отображение картинок в PDF ?
Попробовала добавить приведённые вами переменные сред (с указанием истинных путей для моей версии тулкита), но безрезультатно.

Жаль, что не вышло
Но спасибо Вам за помощь. Я вам очень признательна.
 
А SVG как делаете? Там тоже есть несколько версий формата, параметров отображения, растягивания и т.п.
Попробуйте сгенерить в форматах rtf, odt и других "печатных", которые есть в примерах (samples), подставив вместо оригинальной картинки свою SVG и напишите что получается.

А еще при запуске генерации, в командной строке в конце  добавьте [b:24q29vkd]-logfile test.log[/b:24q29vkd] и просмотрите лог на предмет ошибок [i:24q29vkd]error[/i:24q29vkd], [i:24q29vkd]conflict [/i:24q29vkd]и т.п. связанных с картинками или не найденными библиотеками.
Страницы: 1
Читают тему