Почему FOP так долго отправляет этот документ на принтер? - PullRequest
0 голосов
/ 13 октября 2010

В нашем программном обеспечении мы используем Apache FOP 0.20.5 (я знаю, что это старая версия, мы не можем обновить ее, поскольку она является старой версией нашего программного обеспечения) для создания «красивых» отчетов в стиле. У нас есть один, в частности, который я создал, импортировав PDF-файл в InkScape, а затем сгенерировав из него XML SVG. При отправке этой конкретной формы на принтер (с помощью параметра -print) это занимает исключительно много времени, то есть 5+ минут. Когда я делаю предварительный просмотр (-awt) или отправляю его непосредственно в pdf (-pdf), это занимает совсем немного времени, но текст имеет ТЯЖЕЛЫЙ артефакт, так что он даже не читается.

Мы делаем это с множеством других отчетов / форм, которые имеют уникальные / сложные таблицы стилей без проблем, о которых я знаю. У кого-нибудь есть идея, что здесь может происходить? В идеале я бы исправил проблему со скоростью, но обходного пути простого удаления артефактов в версии -pdf было бы достаточно. Я вручную прошел xsl, который создает InkScape, и попытался удалить что-нибудь некритическое, но, похоже, это ничего не меняет.

Хотелось бы услышать любые идеи, независимо от того, насколько далеко они могут быть выдвинуты.

Редактировать: Забыл упомянуть, что эта ошибка появляется сотни (тысячи) раз в процессе печати:

Graphics2D from BufferedImage lacks BUFFERED_IMAGE hint

1 Ответ

0 голосов
/ 14 октября 2010

Я понял это:

В выводе из InkScape были вставлены теги <g> для каждого из моих слоев.Очевидно, что FOP занимает на 2 полных порядка больше времени, чтобы справиться с этим, чем нет.

Я вытащил все <g> и мою 5-минутную вещь магическим образом за 5 секунд.

...