Альбомная печать из IE8

Я прочитал Альбомную печать из HTML, но моя проблема более конкретна. И прежде чем признать поражение и подумать о другой карьере, я подумал, что напишу здесь.

Это моя ситуация:

Я пишу программу отображения и печати расписания в HTML. Пользователь щелкает по различным параметрам, таким как комната, даты и т. Д. Затем выполняется вызов AJAX для извлечения данных, и блоки расписания позиционируются с помощью Javascript. Ширина расписания больше, чем высота расписания. Итак, мне нужно печатать в альбомной ориентации, чтобы максимально увеличить размер страницы.

Во-первых, @media print{@page {size: landscape}} просто не работает ни при каких обстоятельствах, я пробовал.

Это вроде как работает: filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);.

Я пробовал применить CSS ImageTransform к любому из элементов HTML или BODY, но с разными результатами.

При применении к элементу HTML кажется, что страница отображается как портретная (что является настройкой по умолчанию для пользователей в моей организации), а затем повернута на 90 градусов. Ясно, что это мне не помогает.

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

Что я должен делать?


person Guillermo Phillips    schedule 14.07.2010    source источник
comment
Вы можете рассмотреть возможность использования PDF-файла для каждого расписания. Например. см. здесь: stackoverflow.com/questions/3953821 /   -  person Kerstomaat    schedule 05.09.2014
comment
PDF предназначен для печати документов ... HTML - нет.   -  person Saturn K    schedule 14.10.2014
comment
Что я сделал? Это было давно. Но я думаю, что сделал то, что сделал бы любой уважаемый разработчик: сдался и двинулся дальше.   -  person Guillermo Phillips    schedule 14.10.2014
comment
@KeyvanSadralodabai, с учетом этого, вы не ожидаете, что HTML будет делать графику: code.tutsplus.com/articles/   -  person Guillermo Phillips    schedule 14.10.2014
comment
@GuillermoPhillips, Вы сравниваете яблоки и апельсины. Как вы думаете, почему почти все электронные книги представлены в формате PDF? Потому что разбиение на страницы в PDF-файле является точным, и у вас есть гораздо больше возможностей для управления настройками страницы, чем для HTML. Например, в SSRS есть кнопка печати, которая работает только в IE для правильного разделения страниц, но в других браузерах ее не хватает из-за того, что HTML ужасен с разрывами страниц и печатью. В IE страницы печатаются так, как вы ожидали, но если вы воспользуетесь кнопкой печати в любом другом браузере ... вы увидите неприятный сюрприз.   -  person Saturn K    schedule 15.10.2014
comment
@KeyvanSadralodabai вы правы конечно, PDF лучше распечатать. Я хотел сказать, что Canvas в HTML5 превосходно реализован и, вероятно, намного сложнее, чем печать в целом (хотя оба технически являются графикой). Но такая простая вещь, как печать в альбомной ориентации и разрывы строк, о которых вы упомянули, похоже, ускользает от самых ярких умов в мире разработчиков браузеров. Что дает? Во всяком случае, разглагольствуйте.   -  person Guillermo Phillips    schedule 17.10.2014
comment
@GuillermoPhillips, я не могу с вами больше согласиться ... чтобы ваши страницы правильно печатались, не так уж много работы. Canvas и преобразование в PDF считаются непростыми задачами. Можно было бы подумать, что вы можете просто заставить кнопку печати JavaScript позаботиться обо всем этом (это означает, что веб-стандарты фактически предложат способ сказать: «Эй, это страница, которую нужно распечатать как документ»). ), задайте ему ширину, высоту, поля и вперед ... теперь вы задаетесь вопросом, почему это еще не было сделано :)   -  person Saturn K    schedule 19.10.2014


Ответы (1)


Из-за особенностей IE8 вам необходимо повторно применить фильтр (filter: progid: DXImageTransform.Microsoft.BasicImage (Rotation = 3);) к любому элементу, который позиционируется как абсолютный.

person Sutty1000    schedule 16.10.2014
comment
Я приму ответ, так как кажется логичным, что это сработает. Но у меня нет возможности проверить это на исходном программном обеспечении, поскольку я задал этот вопрос четыре года назад. - person Guillermo Phillips; 17.10.2014
comment
Да, я знаю, что уже поздно! Bit только что наткнулся на это и подумал, что отвечу на него для всех, у кого есть такая же проблема ... нам все еще нужно поддерживать IE8 в компании, в которой я работаю для нашего сайта электронной коммерции. - person Sutty1000; 21.10.2014