Пилоны и Пиза (xhtml2pdf): пустая страница в IE - PullRequest
2 голосов
/ 29 мая 2010

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

Не знаю, имеет ли это значение, но доступ к странице осуществляется через HTTPS.

Мой контроллер выполняет следующие действия:

  • отображает исходную страницу через мако
  • конвертирует html в pdf, используя pisa
  • добавляет эти заголовки к ответу: Content-type: application/pdf и Content-disposition: inline; filename=file.pdf

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

Ответы [ 2 ]

2 голосов
/ 21 июня 2010

Не уверен, поможет ли это, но в IE6 я получал всевозможные странные ошибки браузера, когда пытался передавать динамически сгенерированные PDF-файлы. Ошибки различались в зависимости от того, был ли заголовок расположения контента встроенным или вложенным, но в любом случае это было крушение поезда.

Выдано, что IE6 должен кешировать PDF, чтобы передать его в Acrobat Reader, а заголовки по умолчанию в ответе Pylons говорят «не кешировать это». Я разрешил кэширование на 10 секунд, добавив:

    del response.headers['Cache-Control']
    del response.headers['Pragma']
    response.cache_expires(seconds=10)

к контроллеру, который возвращает PDF, и все было хорошо.

2 голосов
/ 29 мая 2010

В Django я делаю это:

response['Content-Disposition'] = 'attachment; filename=rawr.pdf'

Поэтому попробуйте изменить inline на attachment и посмотрите, что произойдет.

...