powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / результат JS не идёт на печать
9 сообщений из 9, страница 1 из 1
результат JS не идёт на печать
    #34310093
Ant-ON
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть HTML-страница с примитивной версткой, предназначенная для вывода на печать нескольких картинок, каждая размером А4.
недавно возникла необходимость более компактного вывода, по две картинки на одном листе, методом уменьшения и "укладывания на бок" картинок. решил следующим JS:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
if (document.all)
      {
	document.onclick = function()
        {
	var x = document.images;
	for (var i= 0 ;i<x.length;i++)
		{

		var bigH =  1110 
		var bigW =  787 
		
		var smallH =  787  *  0 . 9 
		var smallW =  557  *  0 . 9 

		if (x[i].height == bigH)
			{
			x[i].style.filter = 'progid:DXImageTransform.Microsoft.BasicImage(rotation=1)';
			x[i].height = smallH
			x[i].width = smallW
			}
		else
			{
			x[i].style.filter = 'progid:DXImageTransform.Microsoft.BasicImage(rotation=0)';
			x[i].height = bigH
			x[i].width = bigW
			}
		document.refresh
      		}
        }
      }

поворот картинки решил с помощью фильтра IE, т.к.:
- картинки выводятся на печать с одной машины, из-под IE.
- на чистом JS, для обеспечения кросбраузерности, решений не нашел.

возникшие проблемы:

1. картинки, уменьшенные и "уложенные на бок", не уходят на печать. т.е. при предпросмотре отображается лист с уменьшенными картинками, но по нажатию на "печать" окно выбора параметров печати дико протормаживает, и в конце концов документ даже не становится на очередь. если тыкать на кнопку "печать" из тублара, не происходит вообще ничего.
вопрос не решается при изменении размера картинок до такого, при котором обе картинки занимают не больше 1/4 от А4, но необходима печать с полным покрытием листа (2 картинки, каждая А5).

2. картинки, уменьшенные с помощью JS, уходят на печать в жутком качестве - всё лесенкой, 10й шрифт читается с трудом.
если ресайзить картинку с помощью установки свойств тэга IMG - печатается нормально. если изменять эти свойства через DOM, результат отвратителен.

пробовал document.refresh (читсто интуитивно, т.к. JS практически не знаю) - не помогло.
...
Рейтинг: 0 / 0
результат JS не идёт на печать
    #34310186
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тезка, не мучай js. Просто сделай два набора CSS
<LINK REL="STYLESHEET" HREF="StylesScreen.css">
<LINK REL="STYLESHEET" HREF="StylesPrint.css" media=print>
Все картинкам проставь класс, в первом css настрой стили для экрана, во втором для печати - положи на бок и установи правильные размеры.
...
Рейтинг: 0 / 0
результат JS не идёт на печать
    #34310246
Ant-ON
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
там, вишь ли, есть специфика:

картинки есть только в варианте каждая размером больше А4, они лежат в базе, перед выводом на печать они сохраняются из БЛОБа в PNG, ну и под них генерится верстка HTML (под нужные имена файлов). это как исходные данные, с этим ничего не поделаешь уже.

в то же время иногда нужно выодить их компактно - на боку, а иногда - в полный размер.
говоря проще, картинки эти - это товаросопроводительная документация, кому-то она нужна в полный размер, а кому-то не обязательно. а всем печатать в полный размер - летят бумага, тонер и принтеры. причем ресайзить нужно уметь в самый непредсказуемый момент :) , у меня это реализовано простым кликом по документу. как это будет в случае CSS, не знаю пока, мож просветишь..

ресайзить их внешним софтом я не могу. только фильтрами IE, VBS или JS. с помощью VBS еще не пробовал.

насчет CSS - расскажи, как можно через css повернуть картинку? я этого не знаю. это ключевой момент. стили для экрана и для печати - это уже, конечно, вторичные вещи.
...
Рейтинг: 0 / 0
результат JS не идёт на печать
    #34310255
Ant-ON
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...или ты советуешь поворачивать фильтром, а ресайзить через CSS?
вот это, наверное, уже теплее :)
...
Рейтинг: 0 / 0
результат JS не идёт на печать
    #34311119
Ant-ON
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в общем, та же фигня. качество картинки ужасное. из-за лесенки невозможно ничего прочесть.
причем, лесенка появляется после первого поворота, и не пропадает, даже если вернуть следующим поворотом картинку в прежнее положение.
...
Рейтинг: 0 / 0
результат JS не идёт на печать
    #34311341
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ant-ONнасчет CSS - расскажи, как можно через css повернуть картинку? я этого не знаю. Прикалываешься? ))
Код: plaintext
1.
2.
3.
img.rotate
{
    filter:progid:DXImageTransform.Microsoft.BasicImage(rotation= 1 );
}
Выложи картинку, как это у тебя выглядит. "Лесенку" представить не могу.
...
Рейтинг: 0 / 0
результат JS не идёт на печать
    #34313775
Ant-ON
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
аа.. ну это не вариант. я-то думал, ты предложишь что-то, что будет работать не только с IE.

а насчет лесенки - это когда ты берешь картинку 100х100 и увеличиваешь раз в 5 без интерполяции. каждый пиксел у тебя становится квадратиком размером 5х5 пикселов. наклонные линии превращаются в ту самую лесенку.
тока в данном случае картинка выглядит так, будто её отсканировали с разрешением 50dpi и обратно растянули до A4.
короче, хреново всё обстоит. придется консольную утилитку писать, максимально компактную и быструю.
...
Рейтинг: 0 / 0
результат JS не идёт на печать
    #34450551
PhoenixNET
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В добавок по теме.
Поворачиваем блок с текстом ИЕшным фильтром, текст становится чисто пиксельным, теряется "размытость и качество шрифта". Убираем поворот - всё на своих местах.
Свойства класса для принта без дива (и/или поворота) скопировал в класс с дивом. Структура примерно такая:
Код: plaintext
1.
2.
3.
@media print {
.data th {}
.data th div {}
}

Способ лечения есть или при использовании фильтра всегда так будет?

--
$50 + $100 бесплатно для игры на PartyPoker.com
...
Рейтинг: 0 / 0
результат JS не идёт на печать
    #34453240
PhoenixNET
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кто что подскажет по этому поводу?
Такая конструкция, как
Код: plaintext
1.
writing-mode:tb-rl;
filter: flipv fliph;
себя зарекомендовала аналогичным образом.
Весь текст, который трансформируем при помощи filter: - "пиксилизируется".
Каким же образом поставить текст вертикально-налево?

--
$50 + $100 бесплатно для игры на PartyPoker.com
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / результат JS не идёт на печать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]