Преобразование SVG в PDF с Batik не работает на Ubuntu 11.10 - PullRequest
0 голосов
/ 08 декабря 2011

Я пытаюсь преобразовать изображение svg в pdf, используя инструментарий Batik SVG на Ubuntu-11.10. У меня установлен Batik 1.7 и Fop 0.95. При запуске в терминале:

java -jar /usr/java/share/batik-rasterizer.jar -m application/pdf /home/user/Batik_Test/colors.svg  
-scriptSecurityOff

Я получаю следующую ошибку:

Ошибка при преобразовании файлов:
Ошибка: невозможно получить доступ к транскодеру для изображения типа приложения / pdf

Единственное, что я заметил, было то, что файла 'pdf-transcoders.jar' не было на машине, поэтому я добавил это в / usr / share / java по случайности, что это было проблемой но это не имело значения.

Буду признателен за любую помощь любому, кто имеет опыт использования Batik в Ubuntu. Чего мне не хватает?

-J

Ответы [ 2 ]

1 голос
/ 13 декабря 2011

если у вас есть java исполняемый файл batik-rasterizer.jar в / usr / java / share / , вы можете создать каталог с именем lib по этому же пути ( / usr / java / share / )

, чтобы иметь

/ usr / java / share / lib

в этом последнем каталоге ( lib ) вы скопируете pdf-transcoder.jar , чтобы иметь

/usr / java / share / lib / pdf-transcoder.jar

в любом случае, вам понадобятся также другие libs в дополнение к этому, так что лучше для вас, скопируйте все содержимое из lib директория, содержащаяся в zip-файле двоичного пакета батика

до

/ usr / java / share / lib /

только * содержимое *, а не lib , есливы хотите скопировать целую библиотеку сразу, вам нужно вставить

/ usr / java / share /

0 голосов
/ 08 октября 2014

Если вы выполняете Batik из fedora, используя файл .jar, это довольно болезненно из-за того, что java игнорирует флаг -classpath.Я предполагаю, что батик находится в / usr / share / java. Выберите местоположение в соответствии с вашей системой. Одним из решений может быть следующее: создать каталог с нуля (я полагаю, что вы суперпользователь, в любом случае вы всегда можете использовать команды sudo)

mkdir scratch
cd scratch
jar -xf /usr/share/java/batik-rasterizer.jar

Это выводит содержимое jar-файла на пустое место, затем создает файл MANIFEST.MF или извлекает выходной файл из дампа

cp META-INF/MANIFEST.MF .

Теперь отредактируйте файл MANIFEST.MF (мне нравится использовать vi,любой может использовать свой предпочтительный)

vi MANIFEST.MF

Добавьте строку Class-Path: в файл MANIFEST.MF, например:

Class-Path: batik-all.jar xmlgraphics-commons.jar xml-commons-apis-ext.jar pdf-transcoder.jar avalon-framework.jar avalon-framework-api.jar apache-commons-logging.jar apache-commons-io.jar

Затем закройте файл и заново создайте файл jar

jar cmf MANIFEST.MF /usr/share/java/batik-rasterizer.jar org/*

Включите все банки, в которые батик вложил классы

Тогда вы можете использовать его!

java -jar /usr/share/java/batik-rasterizer.jar -scriptSecurittyOff -m image/png -d image.png image.svg

например, и все!

...