Преобразование svg в pdf с помощью Batik не работает в Ubuntu 11.10

Я пытаюсь преобразовать изображение 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

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

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

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

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

-J


person John Ten Cate    schedule 08.12.2011    source источник


Ответы (2)


если у вас есть исполняемый файл 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-файл с бинарным дистрибутивом batik

to

/usr/java/share/lib/

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

/usr/java/share/

person Dingo    schedule 12.12.2011
comment
Спасибо Динго! Я попробую и дам вам знать, как это работает. - person John Ten Cate; 13.12.2011
comment
ОК, моя копия batik-rasterizer.jar находится в /usr/share/java, поэтому я добавил туда папку с названием «lib» и поместил все файлы из lib в batik1.7, но все равно получаю ту же ошибку. - person John Ten Cate; 16.12.2011
comment
Пожалуйста, разархивируйте скачанный файл (mirror.nohup.it/ apache//xmlgraphics/batik/batik-1.7.zip) и запустите batik-rasterizer из этой же папки. Я успешно использовал таким образом - person Dingo; 17.12.2011
comment
+1 Это правильное решение. У меня была такая же проблема на Ubuntu 12.04. Пакеты из репозиториев по необъяснимым причинам не работают (в моем случае только для PDF, но работали для PNG, JPEG и т. д.), но я скачал напрямую из apache и сослался на их файл jar, и он работал для всех форматов. - person Aitch; 23.05.2012

Если вы запускаете 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

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

person Adolfo    schedule 08.10.2014