2015-07-08 4 views
0

Я постараюсь задать здесь очень широкий вопрос, не связанный с каким-либо конкретным кодом, а скорее с ожидаемым результатом. Это нужно выяснить, может ли кто-нибудь ответить с некоторой определенностью, что FO.NET сможет произвести этот результат для меня.Возможности FO.NET XSL-FO

Моя цель: для переноса службы, создающей PDF на основе XML-документа с Java (с использованием Apache FOP) на C#. Это упростит настройку с использованием только IIS в качестве хоста.

Где я нахожусь: У меня есть рабочая служба wcf, которая получает XML-документ и преобразует его в xsl-fo и возвращает в браузер PDF. Осталось сделать это, чтобы исправить стиль, чтобы он соответствовал предыдущему PDF-файлу, создаваемому Java Apache FOP. В настоящее время я использую FO.NET, и я надеюсь, что мне не придется все переделывать, но если это так, пусть будет так.

В стильном стиле XSL используется SVG для создания фигур, импорта изображений и т. Д., И я знаю, что это не поддерживается в FO.NET, но, возможно, есть обходной путь. Изображения могут быть преобразованы в другой формат файла, но формы могут быть более сложными.

Ожидаемые результаты (как с текущим обслуживанием): http://imgur.com/INkzvdo

Текущий результат: http://imgur.com/Y5dbb3X

Вопрос: Может ли это быть сделано с помощью FO.NET? Если нет, есть ли другой Open Source Lib, который я могу использовать, это лучше подходит или мне нужно решить это по-другому?

Причина, по которой я пытаюсь использовать XSL-FO, состоит в том, что у нас уже есть три таблицы стилей, определяющие выходной PDF (будут три разных выхода PDF), и было бы неплохо не переделать все, используя, например, CSS.

+0

Что является самым важным, установка с IIS в качестве единственного хоста или ситуация, когда вам не нужно полагаться на обходные пути (которые могут даже не существовать) для устаревшей библиотеки? Apache FOP выпустил свой последний релиз всего несколько недель назад (3 июня). FO.NET основана на очень старой версии Apache FOP и не поддерживается в течение многих лет. – mzjn

+0

Причина того, что IIS как единственный хост - это позволить всем (трем) службам использовать тот же порт, что и клиенты, использующие этот продукт, часто имеют только один открытый порт. Если это проще настроить, я бы пошел на это и, возможно, в будущем, продолжить разработку с помощью CSS. –

+0

Я знаю, что вам нужно решение с открытым исходным кодом, но я просто хотел упомянуть коммерческий процессор Antenna House, который, скорее всего, решит большинство ваших проблем XSL-FO. Это не дешево, но он поставляется с интерфейсом .NET: http://www.antennahouse.com/product/ahf60/docs/ahf-dotnet.html. – mzjn

ответ

1

Я сам отвечу на это, частично на основании полученного ответа, частично на собственном опыте использования FO.NET. Я не рекомендую использовать C# для PDF, если xsl-fo используется для стилизации. Если C# является требованием, я бы исследовал CSS для этой цели. Если C# не является требованием, я бы рекомендовал использовать Java и Apache FOP и разместить его здесь. Если вы, как и в моем случае, должны размещать несколько сервисов на одном и том же исходящем порту, вы можете использовать Маршрутизацию запросов приложений в IIS (Addon, я думаю), чтобы служить в качестве обратного прокси для вашего Java-сервлета. Спасибо за ваши отзывы @mzjn!

Смежные вопросы