CHM или HTML -> PDF, сохраняя ссылки HTML? - PullRequest
3 голосов
/ 14 октября 2011

У нас есть проприетарная система создания книг и книг, которая создает скомпилированные файлы справки (CHM), а также HTML-версии контента из базы данных.

Это работает очень хорошо, и мыиспользование системы без существенных изменений в течение нескольких лет.

Теперь мы также хотели бы создавать PDF-файлы из того же источника.Я просмотрел несколько конвертеров CHM-в-PDF и HTML-в-PDF, но мне не удалось найти тот, который правильно обрабатывает гиперссылки, и, несмотря на то, что подобные вопросы задавались здесь несколько раз, он нене кажется, что кто-то нашел хорошее решение (или, по крайней мере, они не удосужились опубликовать какую-либо информацию о нем).

Есть предложения?Я бы не хотел писать генератор PDF, когда в этой области уже проделана большая работа.

Ответы [ 2 ]

2 голосов
/ 14 октября 2011

Обычно вы генерируете все это из абстрактного источника.HTML как стандарт настолько широк, что очень и очень трудно создать общий преобразователь HTML в нечто, не являющееся HTML, входные данные могут быть практически обо всем.И CHM, кажется, поддерживает HTML почти так же, как MSIE (читай: много)

Так что, вероятно, самая разумная вещь - это определить подмножество HTML, которое вы используете для реализации базового формата, и попытаться сгенерировать что-то изтот.Попробуйте упростить html путем редактирования (массового замещения) и сценариев, а затем извлечь большую часть содержимого с минимальным форматированием (и в некоторой абстрактной форме)

Конвертер для общего случая html-> что-тоочень сложно или неоптимально (подумайте над тем, чтобы поместить изображения визуализированного содержимого в PDF), поэтому вы всегда говорите о подмножествах.

1 голос
/ 04 ноября 2011

Я являюсь совладельцем в компании, которая конвертирует html в pdf : Docraptor.

Вот пример, который, я считаю, демонстрирует «правильную» обработку гиперссылок.То есть внешняя ссылка отправляется в веб-браузер по умолчанию, а хеш-ссылка переходит в соответствующее место в PDF-файле, где появляется «Test!».Вы можете проверить вывод PDF этого образца здесь .

<html>
  <head>
    <style type="text/css">
      hr {page-break-after:always;}
    </style>
  <body>
    <a href="http://www.google.com">Google</a>
    <a href="#test">Test?</a>
    <hr />
    <h1 id="test">Test!</h1>
  </body>
</html>

Стиль hr в этом примере только для того, чтобы у меня было две страницы текста, чтобы ссылка былапродемонстрировать функциональность.

...