Winnovative HTML в PDF конвертер - PullRequest
5 голосов
/ 27 мая 2011

Я пытаюсь преобразовать страницу aspx в PDF с помощью Winnovative HTML в PDF конвертер, но перед тем, как конвертировать страницу, я хочу запустить некоторый javascript. Я знаю, что javascript работает, поскольку я протестировал отдельную страницу aspx, не преобразовав ее в PDF. Однако, когда он конвертируется, кажется, что javascript не был запущен. Я прочитал часто задаваемые вопросы на веб-сайте Winnovative (http://www.winnovative -software.com / FAQ.aspx), и в результате я добавил следующее в свой код, чтобы обеспечить возможность запуска javascript:

pdfConverter.ScriptsEnabled = True
pdfConverter.InternetSecurityZone = InternetSecurityZone.LocalMachine

Добавление этого кода по-прежнему не работало, поэтому я попытался закомментировать мой основной javascript и протестировать очень простой фрагмент javascript, чтобы увидеть, работает ли он. Я попробовал javascript просто:

var item = $(".items")[0];
items.style.display = "none";

Элемент с классом «items» окружает все на странице. Когда я сгенерировал PDF снова, все содержимое исчезло, как и ожидалось. Это означает, что JavaScript работает.

Затем я подумал, может быть, PDF генерируется до того, как мой javascript сможет запустить, поэтому эффекты не видны. В часто задаваемых вопросах веб-сайта Winnovative я обнаружил, что конвертер PDF имеет свойство ConversionDelay, которое можно использовать для указания дополнительного периода времени в секундах для ожидания загрузки асинхронного контента перед началом рендеринга PDF. Поэтому я добавил следующее:

pdfConverter.ConversionDelay = 30

Даже после этой задержки мой javascript все еще не запускается. Кто-нибудь может предложить какие-либо рекомендации? Спасибо.

Ответы [ 2 ]

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

Я обнаружил, что другой продукт из winnovative "EVO HTML в PDF Converter для .NET" хорошо выполняет JavaScript, он также работает с jquery.

Вот тестовая страница: http://www.evopdf.com/evopdfdemo/default.aspx, и я успешно попробовал преобразование с этими страницами, отображаемыми в jQuery:

jQuery Accordion (вкладки отображаются правильно)

jQuery pagination (номера страниц, созданные jquery, видны)

В этих двух примерах преобразование winnovative html в pdf завершается неудачей.


РЕДАКТИРОВАТЬ: Похоже, что библиотека EVO имеет проблемы с относительными сценариями, включая не начиная с "/"

Если вам нужно связать внешний скрипт, у вас есть три варианта:

  1. Добавить ссылку на скрипт, используя абсолютный путь, например

    <script src="www.myserver.com/myjsfile.js" type="text/javascript"></script>
    
  2. Вставьте скрипт внутри исходной страницы, используя тег

  3. Используйте относительный путь с "/", как

    <script src="/myjsfile.js" type="text/javascript"></script>
    
0 голосов
/ 03 июня 2011

Один из способов решения этой проблемы - сохранить исходный код страницы после JavaScript в браузере, а затем передать этот HTML-файл в конвертер.

Вы можете установить Панель инструментов веб-разработчика для Firefox и использовать функцию «Просмотр источника» -> «Просмотреть созданный источник», чтобы получить HTML-код страницы в ее текущем состоянии, а затем сохранить его в файл.

...