Отсутствует xml-тег SVG-файла (используется Graphviz dot.exe) - PullRequest
0 голосов
/ 06 января 2011

Моя конфигурация:
- Windows Vista
- XAMPP 1.7.1
- Media Wiki + Semantic MW
- расширение, которое использует Graphviz для создания SVG
- Graphviz 2.26.3 (установить dir c: \ graphviz .....)

Все отлично работает, но проблема в следующем: тег xml
'image xlink: href = "some_image.png" ....'
отсутствует в файле SVG, созданном с помощью php-страницы Media Wiki.

Это делается:
$ cmdlinesvg = wfEscapeShellArg ($ cmd). ' -T svg '.wfEscapeShellArg ($ src).' -o '.wfEscapeShellArg ($ svg);
$ WshShell = new COM ("WScript.Shell");
$ WshShell-> Exec ($ cmdlinesvg);

Я создал командный файл, который выполняет ту же командную строку:

c: \ graphviz2.26.3 \ bin \ dot.exe -T svg filename.dot -o filename.svg

и если я запускаю его вручную, он работает, и появляется тег xml.

Кто-нибудь знает, в чем проблема? заранее спасибо.

1 Ответ

2 голосов
/ 11 января 2011

решено

Проблема связана с путем к изображению в файле .DOT.

Если вы запускаете командную строку вручную, путь к изображению не обязательно должен бытьполный путь.Вы можете иметь только: shapefile = "some_image.png"

Если вы запускаете команду внутри кода php, путь к изображению ДОЛЖЕН быть полным путем.Таким образом, вы должны иметь: shapefile = "C: \ xampp ...... \ some_image.png"

Другая проблема возникает: в результате файл .SVG не показывает изображения.

Если вы щелкните правой кнопкой мыши и откроете файл .SVG с помощью браузера (например, Firefox), изображения в порядке.Но, опять же, через страницу php, изображения теряются.Решение: отредактируйте файл .SVG (это XML), чтобы изменить пути.В исходном файле .SVG у нас есть: В измененном файле .SVG у нас должно быть:

PS: Я делаю магистерскую диссертацию, так что это для конкретной проблемы, но все же я надеюсь, что это кому-нибудь поможет.*

...