iText XML в PDF с использованием последней версии

Я нашел несколько примеров, показывающих, как использовать XML в PDF с помощью XML-документа iText. Но они все для более старой версии 4.х. Есть ли какие-либо примеры или может кто-то пост пример/обновил код, чтобы сделать то же самое в версии 5.x?

все примеры относятся к такому коду, но я не могу найти, что использовать для замены класса ITextHandler в новом version.
http://www.ridgway.co.za/archive/2005/07/31/itextsharpxmltopdfexample.aspx

Document document = new Document();
PdfWriter.GetInstance(document, new FileStream("ExampleDoc.pdf", FileMode.Create));
ITextHandler xmlHandler = new ITextHandler(document);
xmlHandler.Parse("ExampleDoc.xml");

кроме того, я не пытаюсь перейти от HTML к PDF. Стиль CSS никогда не выходит так, как ожидалось.

редактирование поднять его, действительно нужна помощь. Кто-нибудь вообще?

1 ответов


обработка iText XML-файлов с использованием собственного синтаксиса была удалена очень давно. См.этой и этой для прямых ответов от автора. Вместо этого рекомендуется использовать глобально признанный стандарт XML, который и XHTML.

Я знаю, вы сказали, что не хотите использовать HTML, потому что он никогда не выходит правильно, но, возможно, вы могли бы опубликовать некоторые образцы того, что вы пытаетесь, и мы могли бы помочь. Кроме того, Пожалуйста, сделайте убедитесь, что вы используете XMLWorker, а не HTMLWorker. См. эти ссылки для получения дополнительной справки / информации при ее использовании.

редактировать

это редактирование в ответ на комментарий @JohnC

Я не могу говорить за команду iText и их причины, но я могу догадываться о вещах. PDF не имеет "абзацев", "слов", "таблиц" и т. д. Вместо этого PDF имеет текст, рисунки (линии, узоры) и изображения. Если вы хотите сделать эти вещи вручную, вы можете использовать сырые PdfContentByte объекты. Рекомендуется, однако, использовать абстракции iText как Paragraph и PdfPTable что использовать PdfContentByte от вашего имени.

для поддержки формата XML iText сначала необходимо создать собственную схему DTD и/или XML. Если какие-либо функции будут добавлены, необходимо будет правильно изменить схему, что может вызвать проблемы и путаницу для потребителей. Затем ему нужно будет создать / поддерживать парсер, который превратил абстракции XML в абстракции iText или необработанные команды PDF. Для первого у вас есть абстракция, Говорящая с абстракция, которая просто умоляет о разрыве. Для последнего теперь у вас есть две реализации абстракции, которые в конечном итоге столкнутся с проблемами четности функций.

далее, что будет представлять XML? Абзацы, фрагменты текста, изображения и таблицы? Звучит как HTML, поэтому нет необходимости повторять такую схему. Или это будет "поместить содержимое Z в координату X, Y с помощью шрифта ABC"? Вот где PdfContentByte приходит. Правда, может быть родной парсер, но я предполагаю, что там просто не так много людей просят об одном. Или XML будет вашим собственным форматом на основе ваших собственных данных с такими вещами, как <book> и <inventory>? Если это так, то у iText действительно не было бы понятия о том, как это сделать. Однако вы можете использовать leverage .Net / Java и XSLT для преобразования XML в команды XHTML, которые он знает.