Вверх ↑
Этот топик читают: Гость
Ответов: 322
Рейтинг: 8
#1: 2017-06-19 15:38:57 ЛС | профиль | цитата
Всем привет.
Мне нужно из программы напечатать несколько фотографий (сканов в разном формате есть jpg, png и т.д.)
в базе программы сохраняются ссылки на фото, которые будут подаваться по очереди на печать.
Пробовал печать через WebBrowser, получается но если большая фотография - то печатает часть фото.

Add(Button,5902944,553,245)
{
Left=425
Top=5
Caption="Печать"
link(onClick,11234646:doPrint,[])
}
Add(WebBrowser,11234646,623,210)
{
Left=5
Top=30
Width=765
Height=560
Point(doFromText)
Point(doPrint)
}
Add(FormatStr,8924692,504,238)
{
Mask="‹CENTER›‹img src="%1"›‹/CENTER›"
link(onFString,11234646:doFromText,[])
link(Str1,3100728:Value,[(510,226)(487,226)(487,283)(447,283)])
}
Add(Memory,3100728,441,238)
{
link(onData,8924692:doString,[])
}
Add(Button,11795119,329,238)
{
Left=30
Top=5
Width=115
Caption="Вставить картинку"
link(onClick,9526743:doExecute,[])
}
Add(ODialog,9526743,385,238)
{
Filter="Image|*.jpg;*.png;*.bmp;*.ico"
link(onExecute,3100728:doValue,[])
}
Через компонент Printer не понимаю как правильно распечатать фото.
Примеры все посмотрел, форумы искал но не нашёл (если есть такой скиньте ссылку).
Подскажите как это реализовать.
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Ответов: 16884
Рейтинг: 1239
#2: 2017-06-19 19:57:37 ЛС | профиль | цитата
Когда-то было. писал(а):
HTML изображением может быть любое изображение в формате PNG, JPEG и GIF.

Add(FormatStr,75024,189,112)
{
Mask="<p align="center">\r\n<img src="%1" alt="" width="100%" />\r\n</p>"
}

Редактировалось 2 раз(а), последний 2017-06-19 20:05:24
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 322
Рейтинг: 8
#3: 2017-06-20 06:21:43 ЛС | профиль | цитата
Tad
Спасибо огромное.
карма: 0

0
Ответов: 322
Рейтинг: 8
#4: 2017-06-20 12:25:05 ЛС | профиль | цитата
Если печатать через WebBrowser, обязательно нужно каждую фото предварительно посматривать иначе выдаёт чистый лист.

Add(WebBrowser,11234646,497,147)
{
Left=645
Top=30
Width=445
Height=435
Point(doFromText)
Point(doPrint)
}
Add(FormatStr,75024,427,175)
{
Mask="<p align="center">\r\n<img src="%1" alt="" width="100%" />\r\n</p>"
link(onFString,11234646:doFromText,[])
}
Add(Button,11795119,266,175)
{
Left=30
Top=15
Width=115
Caption="Открыть картинку"
link(onClick,9526743:doExecute,[])
}
Add(ODialog,9526743,329,175)
{
Filter="Image|*.jpg;*.png;*.bmp;*.ico"
link(onExecute,1909494:doEvent1,[])
}
Add(Hub,1909494,385,175)
{
link(onEvent1,75024:doString,[])
link(onEvent2,11234646:doPrint,[])
}
Подскажите может быть нужно где то в настройках поменять параметр? сам не могу найти.
карма: 0

0
Ответов: 8886
Рейтинг: 823
#5: 2017-06-21 00:46:36 ЛС | профиль | цитата
Dad2016, а как на рисунке подойдёт? Раньше на XP с принтером была такая программа печати, но на Win7 отказалась работать, сделал, чтобы распечатать картинки с отдыха, правда не совсем довёл, т. к. больше печатать массово не приходилось, вспомнил, что есть вот попробовал, работает.
ПечатаемКучей.jpg
карма: 19

0
Ответов: 322
Рейтинг: 8
#6: 2017-06-21 07:17:43 ЛС | профиль | цитата
Леонид писал(а):
а как на рисунке подойдёт?

Спасибо Леонид, но мне нужно печатать фото отдельно каждое на новом листе.
Программа которую делаю собирает данные в одном месте, очень часто нужно распечатать определённые сканы (фото) массово (то есть - папка с разрешительной документацией, там на каждого сотрудника нужно распечатать - удостоверения, допуски, протоколы и т.д.).
карма: 0

0
Ответов: 5227
Рейтинг: 586
#7: 2017-06-21 16:08:10 ЛС | профиль | цитата
в vbs через мастер печати изображений примерно так

    'Печать коллекции с мастером печати изображений
    Dim CommonDlg, ImgCollection
    Set CommonDlg = CreateObject("WIA.CommonDialog")
    Set ImgCollection = CreateObject("WIA.Vector")
    ImgCollection.Add ("C:\1.jpg")
    ImgCollection.Add ("C:\2.gif")
    ImgCollection.Add ("C:\3.bmp")
    ImgCollection.Add ("C:\4.tiff")
    CommonDlg.ShowPhotoPrintingWizard(ImgCollection)

(что бы проверить нужно сохранить строки в файл с расширением vbs ну собственно файлы соответствующие приготовить с указанными путями в скрипте)
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
1
Голосовали:Dad2016
Ответов: 322
Рейтинг: 8
#8: 2017-06-23 09:04:29 ЛС | профиль | цитата
andrestudio писал(а):
в vbs через мастер печати

К сожалению в этом я новичок, но попробовал разобраться:

Add(VBScript,4842498,385,504)
{
WorkPoints=#4:вход|
EventPoints=#5:выход|
DataPoints=#8:Добавить|
Script=#48:'Печать коллекции с мастером печати изображений |29:Dim CommonDlg, ImgCollection |49:Set CommonDlg = CreateObject("WIA.CommonDialog") |47:Set ImgCollection = CreateObject("WIA.Vector") |31:ImgCollection.Add ("C:\1.jpg") |31:ImgCollection.Add ("C:\2.gif") |31:ImgCollection.Add ("C:\3.bmp") |32:ImgCollection.Add ("C:\4.tiff") |48:CommonDlg.ShowPhotoPrintingWizard(ImgCollection)|
}
Видимо не удачно.
карма: 0

0
Ответов: 5227
Рейтинг: 586
#9: 2017-06-23 15:26:07 ЛС | профиль | цитата
держи
Add(InlineCode,54413,317,212)
{
WorkPoints=#49:doPrintImages=Открывает мастер печати изображений|
DataPoints=#50:ImagesPath=Список изображений для вывода на печать|
Code=#80:{*******************************************************************************|80: HiAsm stamp component builder v0.8 (autor - andrestudio <andrestudio@list.ru>)|25: Component - PrintImages|15: Version - 1.0|21: Autor - andrestudio|30: E-mail - andrestudio@list.ru|43: Create - пятница, 23. Июнь 2017, 16:45:37|69: Description: Печать изображений по списку с помощью мастера печати|80:*******************************************************************************}|0:|15:unit HiAsmUnit;|0:|9:interface|0:|47:uses Windows,Kol,Share,Debug,KOLComObj,ActiveX;|0:|4:type|0:|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|17: { Data points}|48: { Список изображений для вывода на печать }|27: ImagesPath: THI_Event;|0:|14: { Methods }|44: { Открывает мастер печати изображений }|55: procedure doPrintImages(var dt: TData; idx: Word);|0:|6: end;|0:|14:implementation|0:|39:{ Открывает мастер печати изображений }|36:procedure THiAsmClass.doPrintImages;|3:var|24: CommonDlg: OleVariant;|28: ImgCollection: OleVariant;|23: ImgLstPath: PStrList;|13: i: integer;|5:begin|27: ImgLstPath := NewStrList;|47: ImgLstPath.Text := ToStringEvent(ImagesPath);|51: CommonDlg := CreateOleObject('WIA.CommonDialog');|49: ImgCollection := CreateOleObject('WIA.Vector');|37: for i := 0 to ImgLstPath.Count-1 do|7: begin|43: ImgCollection.Add(ImgLstPath.Items[i]);|6: end;|51: CommonDlg.ShowPhotoPrintingWizard(ImgCollection);|30: VariantClear(ImgCollection);|26: VariantClear(CommonDlg);|18: ImgLstPath.Free;|4:end;|0:|14:initialization|10: OleInit;|20: CoInitialize(nil);|0:|12:finalization|19: CoUninitialize();|0:|4:end.|
}


Редактировалось 1 раз(а), последний 2017-06-23 15:27:10
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 322
Рейтинг: 8
#10: 2017-06-24 18:32:33 ЛС | профиль | цитата
andrestudio писал(а):
держи

Огромное спасибо!
1234.jpg
Сюда в каком формате подавать изображения или ссылки на изображения?
Или просто открываешь фото пускаешь на печать и так далее по циклу пока не кончатся фото?
карма: 0

0
Ответов: 5227
Рейтинг: 586
#11: 2017-06-26 19:58:39 ЛС | профиль | цитата
Конечно ссылки, надеюсь сам уже разобрался. Единственное проверки нет на валидность ссылок.
Поддержка bmp,gif,jpg,tif,png
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 322
Рейтинг: 8
#12: 2017-06-27 11:52:19 ЛС | профиль | цитата
andrestudio писал(а):
ссылки

Не могу понять как подавать ссылки, одна ссылка без проблем выдаётся на печать (без знаков в FormatStr), каким знаком разделять ссылки при подаче на печать?
Add(InlineCode,54413,630,392)
{
WorkPoints=#49:doPrintImages=Открывает мастер печати изображений|
DataPoints=#50:ImagesPath=Список изображений для вывода на печать|
Code=#80:{*******************************************************************************|80: HiAsm stamp component builder v0.8 (autor - andrestudio <andrestudio@list.ru>)|25: Component - PrintImages|15: Version - 1.0|21: Autor - andrestudio|30: E-mail - andrestudio@list.ru|43: Create - пятница, 23. Июнь 2017, 16:45:37|69: Description: Печать изображений по списку с помощью мастера печати|80:*******************************************************************************}|0:|15:unit HiAsmUnit;|0:|9:interface|0:|47:uses Windows,Kol,Share,Debug,KOLComObj,ActiveX;|0:|4:type|0:|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|17: { Data points}|48: { Список изображений для вывода на печать }|27: ImagesPath: THI_Event;|0:|14: { Methods }|44: { Открывает мастер печати изображений }|55: procedure doPrintImages(var dt: TData; idx: Word);|0:|6: end;|0:|14:implementation|0:|39:{ Открывает мастер печати изображений }|36:procedure THiAsmClass.doPrintImages;|3:var|24: CommonDlg: OleVariant;|28: ImgCollection: OleVariant;|23: ImgLstPath: PStrList;|13: i: integer;|5:begin|27: ImgLstPath := NewStrList;|47: ImgLstPath.Text := ToStringEvent(ImagesPath);|51: CommonDlg := CreateOleObject('WIA.CommonDialog');|49: ImgCollection := CreateOleObject('WIA.Vector');|37: for i := 0 to ImgLstPath.Count-1 do|7: begin|43: ImgCollection.Add(ImgLstPath.Items[i]);|6: end;|51: CommonDlg.ShowPhotoPrintingWizard(ImgCollection);|30: VariantClear(ImgCollection);|26: VariantClear(CommonDlg);|18: ImgLstPath.Free;|4:end;|0:|14:initialization|10: OleInit;|20: CoInitialize(nil);|0:|12:finalization|19: CoUninitialize();|0:|4:end.|
link(ImagesPath,7202452:Var2,[])
}
Add(Button,11445976,581,392)
{
Left=855
Top=5
Caption="Печать"
link(onClick,54413:doPrintImages,[])
}
Add(MT_Memory,15486296,644,308)
{
}
Add(FormatStr,14631626,581,308)
{
Mask="%1; %2"
link(onFString,15486296:doValue,[])
link(Str2,7202452:Var1,[(594,296)(622,296)(622,352)])
}
Add(GetDataEx,7202452,630,347)
{
Angle=1
link(Data,15486296:Value,[(650,352)])
}

Редактировалось 2 раз(а), последний 2017-06-27 11:53:33
карма: 0

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#13: 2017-06-27 12:37:05 ЛС | профиль | цитата
Dad2016 писал(а):
Не могу понять как подавать ссылки, одна ссылка без проблем выдаётся на печать (без знаков в FormatStr), каким знаком разделять ссылки при подаче на печать?

Насколько я понял код, то там подается текст с точки Text компонента StrList.

Add(InlineCode,54413,238,189)
{
WorkPoints=#49:doPrintImages=Открывает мастер печати изображений|
DataPoints=#50:ImagesPath=Список изображений для вывода на печать|
Code=#80:{*******************************************************************************|80: HiAsm stamp component builder v0.8 (autor - andrestudio <andrestudio@list.ru>)|25: Component - PrintImages|15: Version - 1.0|21: Autor - andrestudio|30: E-mail - andrestudio@list.ru|43: Create - пятница, 23. Июнь 2017, 16:45:37|69: Description: Печать изображений по списку с помощью мастера печати|80:*******************************************************************************}|0:|15:unit HiAsmUnit;|0:|9:interface|0:|47:uses Windows,Kol,Share,Debug,KOLComObj,ActiveX;|0:|4:type|0:|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|17: { Data points}|48: { Список изображений для вывода на печать }|27: ImagesPath: THI_Event;|0:|14: { Methods }|44: { Открывает мастер печати изображений }|55: procedure doPrintImages(var dt: TData; idx: Word);|0:|6: end;|0:|14:implementation|0:|39:{ Открывает мастер печати изображений }|36:procedure THiAsmClass.doPrintImages;|3:var|24: CommonDlg: OleVariant;|28: ImgCollection: OleVariant;|23: ImgLstPath: PStrList;|13: i: integer;|5:begin|27: ImgLstPath := NewStrList;|47: ImgLstPath.Text := ToStringEvent(ImagesPath);|51: CommonDlg := CreateOleObject('WIA.CommonDialog');|49: ImgCollection := CreateOleObject('WIA.Vector');|37: for i := 0 to ImgLstPath.Count-1 do|7: begin|43: ImgCollection.Add(ImgLstPath.Items[i]);|6: end;|51: CommonDlg.ShowPhotoPrintingWizard(ImgCollection);|30: VariantClear(ImgCollection);|26: VariantClear(CommonDlg);|18: ImgLstPath.Free;|4:end;|0:|14:initialization|10: OleInit;|20: CoInitialize(nil);|0:|12:finalization|19: CoUninitialize();|0:|4:end.|
link(ImagesPath,1903769:Text,[])
}
Add(StrList,1903769,238,126)
{
}

Те заполняешь StrList ссылками и затем запускаешь IC

Редактировалось 1 раз(а), последний 2017-06-27 12:37:58
карма: 22

1
Голосовали:Dad2016
Ответов: 8886
Рейтинг: 823
#14: 2017-06-27 12:56:23 ЛС | профиль | цитата
nesco, "Ответов 138"
Dad2016, Так?
Пример


Add(MainForm,2953706,77,112)
{
Width=373
}
Add(InlineCode,54413,518,280)
{
WorkPoints=#49:doPrintImages=Открывает мастер печати изображений|
EventPoints=#
VarPoints=#
DataPoints=#50:ImagesPath=Список изображений для вывода на печать|
Code=#80:{*******************************************************************************|80: HiAsm stamp component builder v0.8 (autor - andrestudio <andrestudio@list.ru>)|25: Component - PrintImages|15: Version - 1.0|21: Autor - andrestudio|30: E-mail - andrestudio@list.ru|43: Create - пятница, 23. Июнь 2017, 16:45:37|69: Description: Печать изображений по списку с помощью мастера печати|80:*******************************************************************************}|0:|15:unit HiAsmUnit;|0:|9:interface|0:|47:uses Windows,Kol,Share,Debug,KOLComObj,ActiveX;|0:|4:type|0:|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|17: { Data points}|48: { Список изображений для вывода на печать }|27: ImagesPath: THI_Event;|0:|14: { Methods }|44: { Открывает мастер печати изображений }|55: procedure doPrintImages(var dt: TData; idx: Word);|0:|6: end;|0:|14:implementation|0:|39:{ Открывает мастер печати изображений }|36:procedure THiAsmClass.doPrintImages;|3:var|24: CommonDlg: OleVariant;|28: ImgCollection: OleVariant;|23: ImgLstPath: PStrList;|13: i: integer;|5:begin|27: ImgLstPath := NewStrList;|47: ImgLstPath.Text := ToStringEvent(ImagesPath);|51: CommonDlg := CreateOleObject('WIA.CommonDialog');|49: ImgCollection := CreateOleObject('WIA.Vector');|37: for i := 0 to ImgLstPath.Count-1 do|7: begin|43: ImgCollection.Add(ImgLstPath.Items[i]);|6: end;|51: CommonDlg.ShowPhotoPrintingWizard(ImgCollection);|30: VariantClear(ImgCollection);|26: VariantClear(CommonDlg);|18: ImgLstPath.Free;|4:end;|0:|14:initialization|10: OleInit;|20: CoInitialize(nil);|0:|12:finalization|19: CoUninitialize();|0:|4:end.|
link(ImagesPath,12074218:Value,[])
}
Add(Button,11445976,469,280)
{
Left=185
Top=230
Caption="Печать"
link(onClick,54413:doPrintImages,[])
}
Add(Button,6653705,77,168)
{
Left=5
Top=5
Caption="Open"
link(onClick,3943615:doBrowse,[])
}
Add(Image,14835776,616,224)
{
Left=105
Top=35
Width=240
Height=180
}
Add(FileSearch,2629711,196,189)
{
SubDir=1
link(onSearch,11342127:doCompare,[])
}
Add(StrMask,11342127,245,189)
{
Mask="*.jpg"
link(onFalse,8264849:doCompare,[])
link(onTrue,16622419:doWork2,[(282,202)(282,228)])
}
Add(StrMask,8264849,287,189)
{
Mask="*.png"
link(onFalse,11212944:doCompare,[])
link(onTrue,16622419:doWork1,[(326,202)])
}
Add(StrMask,11212944,329,189)
{
Mask="*.bmp"
link(onFalse,3744750:doCompare,[])
link(onTrue,9353415:doWork1,[(368,202)])
}
Add(StrMask,3744750,371,189)
{
Mask="*.ico"
link(onTrue,3057264:doWork2,[])
}
Add(Hub,11569590,161,168)
{
OutCount=3
link(onEvent1,475780:doClear,[])
link(onEvent2,16253885:doClear,[(445,181)(445,216)])
link(onEvent3,2629711:doSearch,[(186,188)(186,195)])
}
Add(StrList,16253885,469,203)
{
Point(doGetString)
Point(onGetString)
link(onGetString,12074218:doValue,[(508,216)(508,230)])
}
Add(Browse,3943615,119,168)
{
link(onBrowse,11569590:doEvent1,[])
}
Add(HubEx,3057264,412,196)
{
link(onEvent,3730717:doEvent1,[])
}
Add(HubEx,16622419,322,222)
{
link(onEvent,9353415:doWork2,[])
}
Add(HubEx,9353415,364,222)
{
link(onEvent,3057264:doWork3,[(416,228)])
}
Add(Hub,3730717,427,196)
{
link(onEvent1,143408:doPart,[(452,202)(452,167)])
link(onEvent2,16253885:doAdd,[])
}
Add(FilePartElm,143408,469,161)
{
Mode=2
link(onPart,475780:doAdd,[])
}
Add(ListBox,475780,518,161)
{
Top=30
Width=95
Height=225
link(onClick,16253885:doGetString,[(557,174)(557,265)(459,265)(459,251)])
}
Add(Memory,12074218,518,224)
{
link(onData,2116283:doLoad,[])
}
Add(PictureStream,2116283,567,224)
{
link(onLoad,14835776:doLoad,[])
}

карма: 19

1
Голосовали:Dad2016
Ответов: 322
Рейтинг: 8
#15: 2017-06-27 13:11:36 ЛС | профиль | цитата
nesco писал(а):
Те заполняешь StrList ссылками и затем запускаешь IC

Да именно так и начало работать.
Спасибо всем большое!
карма: 0

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)