purebasic.info

PureBasic forum
Текущее время: Пн дек 17, 2018 5:43 pm

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: HTML на принтер
СообщениеДобавлено: Вт сен 18, 2012 9:24 pm 
Не в сети
док

Зарегистрирован: Ср май 11, 2011 12:05 pm
Сообщений: 100
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Есть страничка документа сформированная Пуриком, но документ сверстан по сути в HTML.
Задача послать его на печать.
Подскажите человеческий алгоритм для решения этой задачи...

уже танцевал с бубном вокруг PureLPRINT...но решения не нашел.

_________________
http://www.crackedfile.ru
http://www.fridafreak.ru


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт сен 18, 2012 10:13 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6413
Благодарил (а): 21 раз.
Поблагодарили: 201 раз.
Пункты репутации: 52
C_File писал(а):
Задача послать его на печать.

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

_________________
read-only ¯\_(ツ)_/¯


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт сен 18, 2012 11:12 pm 
Не в сети
док

Зарегистрирован: Ср май 11, 2011 12:05 pm
Сообщений: 100
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
ну открыть в браузере не проблема, а как автоматически послать на печать, как сделать чтоб не было шапки от браузера?

Подскажи как это сделать (особенно если надо чтоб на документе не было шапки браузера)

_________________
http://www.crackedfile.ru
http://www.fridafreak.ru


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт сен 18, 2012 11:24 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11336
Благодарил (а): 4 раз.
Поблагодарили: 443 раз.
C_File, посмотри эту тему. http://purebasic.info/phpBB2/viewtopic.php?t=701

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср сен 19, 2012 7:07 am 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6413
Благодарил (а): 21 раз.
Поблагодарили: 201 раз.
Пункты репутации: 52
C_File писал(а):
Подскажи как это сделать

Там всё просто - используем интерфейс IWebBrowser2 и команды ExecWB. Просветиться тут
Готовый код тут:
Код:
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
Enumeration 1
  #OLECMDID_OPEN        
  #OLECMDID_NEW      
  #OLECMDID_SAVE        
  #OLECMDID_SAVEAS          
  #OLECMDID_SAVECOPYAS  
  #OLECMDID_PRINT      
  #OLECMDID_PRINTPREVIEW      
  #OLECMDID_PAGESETUP      
  #OLECMDID_SPELL          
  #OLECMDID_PROPERTIES
  #OLECMDID_CUT        
  #OLECMDID_COPY      
  #OLECMDID_PASTE          
  #OLECMDID_PASTESPECIAL  
  #OLECMDID_UNDO          
  #OLECMDID_REDO        
  #OLECMDID_SELECTALL      
  #OLECMDID_CLEARSELECTION
  #OLECMDID_ZOOM          
  #OLECMDID_GETZOOMRANGE    
  #OLECMDID_UPDATECOMMANDS
  #OLECMDID_REFRESH          
  #OLECMDID_STOP            
  #OLECMDID_HIDETOOLBARS    
  #OLECMDID_SETPROGRESSMAX  
  #OLECMDID_SETPROGRESSPOS
  #OLECMDID_SETPROGRESSTEXT  
  #OLECMDID_SETTITLE        
  #OLECMDID_SETDOWNLOADSTATE
  #OLECMDID_STOPDOWNLOAD
  #OLECMDID_FIND
  #OLECMDID_DELETE
  #OLECMDID_PRINT2
  #OLECMDID_PRINTPREVIEW2
EndEnumeration
 
Enumeration 0
  #OLECMDEXECOPT_DODEFAULT    
  #OLECMDEXECOPT_PROMPTUSER      
  #OLECMDEXECOPT_DONTPROMPTUSER  
  #OLECMDEXECOPT_SHOWHELP      
EndEnumeration
 
; -----------------------------------------------------
 
#WebGadget = 1
#Button = 2
 
OpenWindow(0, 0, 0, 800, 600, "Печать с WebBrowser", #PB_Window_ScreenCentered|#PB_Window_SystemMenu)
WebGadget(#WebGadget, 10, 40, 780, 550, "http://www.google.com")
ButtonGadget(#Button, 10, 10, 60, 20, "Print")
WebObject.IWebBrowser2 = GetWindowLong_(GadgetID(#WebGadget), #GWL_USERDATA)
Repeat
  event = WaitWindowEvent()
  If event = #PB_Event_Gadget And EventGadget() = #Button
   
    ; Посылаем команду Печать в WebGadget:
   
    WebObject\ExecWB(#OLECMDID_PRINT, #OLECMDEXECOPT_PROMPTUSER, 0, 0)
   
    ; использовать #OLECMDEXECOPT_DONTPROMPTUSER для печати без выбора принтера
   
   
  EndIf
Until event = #PB_Event_CloseWindow
 
End



Если надо контролировать загрузку страницы, то можно сделать такую проверку
Код:
1
2
3
4
5
6
Repeat
    WebObject\get_Busy(@IsBusy.l)
    Delay(1)
    While WindowEvent(): Wend
    Until IsBusy = 0
 



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

_________________
read-only ¯\_(ツ)_/¯


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср сен 19, 2012 1:55 pm 
Не в сети
док

Зарегистрирован: Ср май 11, 2011 12:05 pm
Сообщений: 100
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Большое спасибо за полезную информацию, пойду изучать.

_________________
http://www.crackedfile.ru
http://www.fridafreak.ru


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср сен 19, 2012 3:16 pm 
Не в сети
док

Зарегистрирован: Ср май 11, 2011 12:05 pm
Сообщений: 100
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
А можно ли убрать колонтитулы программно?
Можно ли как то показать IE что со следующей страницы печатал типа команды NewPrinterPage ?
Цитата:
есть спец символы форматирования для печати.

Формирую сам, но про такие символы ничего не нашел.Подскажи плиз.

_________________
http://www.crackedfile.ru
http://www.fridafreak.ru


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср сен 19, 2012 7:08 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6413
Благодарил (а): 21 раз.
Поблагодарили: 201 раз.
Пункты репутации: 52
C_File писал(а):
А можно ли убрать колонтитулы программно?

Не знаю. Поищи в интернете, может есть где запись, может в реестре?
Вот наткнулся, записи тут
Цитата:
Microsoft Internet Explorer сначала пытается получить значения из этого раздела реестра:
HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\PageSetup

Для принтера Internet Explorer по умолчанию предоставляются из:
Explorer\PageSetup\printer
Разработчик может изменить выше записи реестра для параметров печати соответствующим образом.


C_File писал(а):
про такие символы ничего не нашел.

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

_________________
read-only ¯\_(ツ)_/¯


Последний раз редактировалось kvitaliy Сб сен 22, 2012 9:55 am, всего редактировалось 1 раз.

Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт сен 20, 2012 11:24 am 
Не в сети
док

Зарегистрирован: Ср май 11, 2011 12:05 pm
Сообщений: 100
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
совсем разобрался кроме этого:
Можно ли как то показать IE что со следующей страницы печатал типа команды NewPrinterPage ?

_________________
http://www.crackedfile.ru
http://www.fridafreak.ru


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб сен 22, 2012 6:52 am 
Не в сети
PureBasic Coder
Аватар пользователя

Зарегистрирован: Чт ноя 10, 2011 10:50 am
Сообщений: 4049
Откуда: Ростов-на-Дону
Благодарил (а): 70 раз.
Поблагодарили: 81 раз.
Пункты репутации: 24
C_File, поищи в инете описание структуры IEMyBrowser. Скорее всего там есть функции и для печати.

_________________
Пурик - лучший язык программирования


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб сен 22, 2012 9:50 am 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6413
Благодарил (а): 21 раз.
Поблагодарили: 201 раз.
Пункты репутации: 52
C_File писал(а):
что со следующей страницы печатал

Страницы в пределах одного открытого документа HTML? Тогда за печать отвечает не браузер, а принтер. В настройках принтера можно установить с какой страницы начать печать, сколько страниц, копий и т.д.
Если сам формируешь документ, то зачем на несколько страниц? Делай постранично, по формату А4

_________________
read-only ¯\_(ツ)_/¯


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб сен 22, 2012 1:40 pm 
Не в сети
профессор

Зарегистрирован: Вс июн 10, 2012 8:18 am
Сообщений: 1294
Благодарил (а): 60 раз.
Поблагодарили: 49 раз.
Пункты репутации: 14
А как можно получить текст страницы? Не html код, а то, что отображается в webgadget.


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB