Вверх ↑
Этот топик читают: Гость
Ответов: 231
Рейтинг: 1
#1: 2026-02-25 09:27:08 ЛС | профиль | цитата
Подскажите пожалуйста как реализовать печать изображения большого объёма в нашей среде? Уместив ее в лист A4?

Add(MainForm,2953706,133,126)
{
Width=859
Height=849
link(onCreate,5430260:doExecute,[])
}
Add(Image,1008111,357,140)
{
Left=10
Top=15
Width=745
Height=790
}
Add(ODialog,5430260,238,140)
{
link(onExecute,1008111:doLoad,[])
}
Add(Button,81843,238,196)
{
Left=770
Top=10
Width=65
Height=25
Caption="Print"
link(onClick,3328671:doPrint,[])
}
Add(Printer,3328671,294,196)
{
link(onPrint,3492415:doDraw,[])
}
Add(Img_Bmp,3492415,350,196)
{
X=1
Y=1
DrawSource=2
link(Bitmap,3328671:Context,[(356,184)(336,184)(336,239)(300,239)])
link(SourceBitmap,1008111:ImageBitmap,[])
}


Если в эту схему загрузить большое изображение, то будет Runtime Error.
карма: 1

0
Ответов: 1052
Рейтинг: 219
#2: 2026-02-25 09:41:35 ЛС | профиль | цитата
Gitarist писал(а):
Подскажите пожалуйста как реализовать печать изображения большого объёма в нашей среде?


Add(MainForm,13386581,238,105)
{
Width=859
Height=849
link(onCreate,5430260:doExecute,[])
}
Add(Image,1008111,399,119)
{
Left=10
Top=15
Width=745
Height=790
}
Add(ODialog,5430260,294,119)
{
link(onExecute,16405305:doLoadFrom,[])
}
Add(Button,81843,238,175)
{
Left=770
Top=10
Width=65
Height=25
Caption="Print"
link(onClick,3328671:doPrint,[])
}
Add(Printer,3328671,294,175)
{
link(onPrint,3492415:doDraw,[])
}
Add(Img_Bmp,3492415,392,175)
{
X=1
Y=1
DrawSource=2
link(SourceBitmap,1008111:ImageBitmap,[])
}
Add(Img_GDIFileProcessor,16405305,350,119)
{
link(onLoad,1008111:doLoad,[])
}

карма: 20

0
Ответов: 231
Рейтинг: 1
#3: 2026-02-25 09:57:57 ЛС | профиль | цитата
Благодарю за участие. Попробовал Print to PDF .. Выдал белый лист чот (
карма: 1

0
Ответов: 1052
Рейтинг: 219
#4: 2026-02-25 10:09:26 ЛС | профиль | цитата
Gitarist писал(а):
Выдал белый лист чот (

Запустил свою схему ещё раз и сохранил в PDF. У меня всё создаётся, картинка попадает в pdf.
Какой формат картинки ты пытаешься распечатать?
карма: 20

0
Ответов: 231
Рейтинг: 1
#5: 2026-02-25 10:10:26 ЛС | профиль | цитата
Gunta писал(а):
Gitarist писал(а):
Выдал белый лист чот (

Запустил свою схему ещё раз и сохранил в PDF. У меня всё создаётся, картинка попадает в pdf.
Какой формат картинки ты пытаешься распечатать?

жпг
карма: 1

0
Ответов: 1052
Рейтинг: 219
#6: 2026-02-25 10:15:59 ЛС | профиль | цитата
Gitarist писал(а):
жпг

Попробовал и .jpg и .png и .bmp все открываются и сохраняются в PDF.
карма: 20

0
Ответов: 231
Рейтинг: 1
#7: 2026-02-25 10:17:07 ЛС | профиль | цитата
Вот примеры изображений которые я загружал
https://disk.yandex.ru/d/wsu-CI9w9K8Wgw



видео
https://disk.yandex.ru/i/UdaPe1rbgOFrrg

Редактировалось 1 раз(а), последний 2026-02-25 10:56:47
карма: 1

0
Ответов: 1052
Рейтинг: 219
#8: 2026-02-25 10:57:22 ЛС | профиль | цитата
Gitarist писал(а):
Вот примеры изображений которые я загружал

https://disk.yandex.ru/d/1XkripiGkdxYdQ

А вот схема
Add(MainForm,13386581,140,84)
{
Width=859
Height=849
link(onCreate,5430260:doExecute,[])
}
Add(Image,1008111,343,98)
{
Left=10
Top=15
Width=745
Height=790
}
Add(ODialog,5430260,189,98)
{
link(onExecute,16405305:doLoadFrom,[])
}
Add(Button,81843,182,161)
{
Left=770
Top=10
Width=65
Height=25
Caption="Print"
link(onClick,3328671:doPrint,[])
}
Add(Printer,3328671,238,161)
{
Point(doPrintDlg)
link(onPrint,3492415:doDraw,[])
}
Add(Img_Bmp,3492415,287,161)
{
X=1
Y=1
DrawSource=2
link(SourceBitmap,10756213:Result,[])
}
Add(Img_GDIFileProcessor,16405305,238,98)
{
Point(doConvert)
link(onLoad,10756213:doResize,[])
}
Add(Button,16481902,182,210)
{
Left=775
Top=40
Caption="Диалог"
link(onClick,3328671:doPrintDlg,[(228,216)(228,174)])
}
Add(ResizeEx,10756213,294,98)
{
Width=790
Height=1120
HalfTone=1
Point(Result)
link(onResult,1008111:doLoad,[])
}


Долго подбирал размер листа в PDF

Редактировалось 1 раз(а), последний 2026-02-25 11:06:52
карма: 20

0
Ответов: 231
Рейтинг: 1
#9: 2026-02-25 11:15:59 ЛС | профиль | цитата



карма: 1

0
Ответов: 1052
Рейтинг: 219
#10: 2026-02-25 11:21:01 ЛС | профиль | цитата
Когда появляется ошибка?
Какой файл загружаешь? Я тестировал на 1414.jpg
Обнавлены ли все элементы?
карма: 20

0
Ответов: 231
Рейтинг: 1
#11: 2026-02-25 11:32:02 ЛС | профиль | цитата
Gunta писал(а):
Обнавлены ли все элементы?

Нет, так и не получается подключиться к SVN.
Gunta писал(а):
Какой файл загружаешь? Я тестировал на 1414.jpg

4141411111.jpg
Gunta писал(а):
Когда появляется ошибка?

Сразу после загрузки изображения.


Подскажите еще, почему эта схема вцелом не работает?
Add(MainForm,9896808,245,140)
{
Width=869
Height=947
link(onCreate,8165264:doExecute,[])
}
Add(DocumentTemplate,7499503,616,210)
{
X=1
Y=1
DrawSource=2
Name="Picture"
link(Bitmap,3974636:Context,[(622,198)(602,198)(602,252)(566,252)])
}
BEGIN_SDK
Add(Print_Image,8688955,14,14)
{
Name="pict"
X=17
Y=17
Width=743
Height=1047
}
END_SDK
Add(PC_Image,6009711,504,217)
{
ItemName="pict"
Document="Picture"
link(onPicture,3974636:doPrintDlg,[])
link(Bitmap,12865014:ImageBitmap,[])
}
Add(Img_Loader,12584669,350,154)
{
link(onLoad,4902361:doEvent1,[])
}
Add(ODialog,8165264,301,154)
{
link(onExecute,12584669:doLoad,[])
}
Add(Image,12865014,504,154)
{
Left=5
Width=840
Height=895
}
Add(Hub,4902361,392,154)
{
link(onEvent1,12865014:doLoad,[])
link(onEvent2,6367616:doTimer,[(427,167)(427,223)])
}
Add(Printer,3974636,560,210)
{
Point(doPrintDlg)
link(onPrint,7499503:doDraw,[])
}
Add(Timer,6367616,448,217)
{
Interval=500
Enable=1
AutoStop=1
link(onTimer,6009711:doPicture,[])
}


Работает только с маленьким изображением а-ля 1414.JPG




ПС... Что то получилось но только с применением уменьшения изображения... Но потери катастрофические. Справа оригинал, слева пдф из принтера.


Редактировалось 4 раз(а), последний 2026-02-25 11:50:14
карма: 1

0
Ответов: 1052
Рейтинг: 219
#12: 2026-02-25 11:49:59 ЛС | профиль | цитата
Gitarist писал(а):
Сразу после загрузки изображения.

Попробуй обновиить все элементы.
Gitarist писал(а):
Подскажите еще, почему эта схема вцелом не работает?

Неправильно был указан источник отображения.
И в этой схеме ненужен таймер.
Add(MainForm,1651787,161,105)
{
Width=869
Height=947
link(onCreate,8165264:doExecute,[])
}
Add(DocumentTemplate,7499503,476,175)
{
X=1
Y=1
DrawSource=2
Name="Picture"
}
BEGIN_SDK
Add(Print_Image,8688955,14,14)
{
Name="pict"
X=17
Y=17
Width=743
Height=1047
FrameSize=0
}
END_SDK
Add(PC_Image,6009711,378,182)
{
ItemName="pict"
Document="Picture"
ViewStyleApply=0
FrameSize=0
link(onPicture,3974636:doPrintDlg,[])
link(Bitmap,12865014:ImageBitmap,[])
}
Add(Img_Loader,12584669,266,119)
{
link(onLoad,4902361:doEvent1,[])
}
Add(ODialog,8165264,217,119)
{
link(onExecute,12584669:doLoad,[])
}
Add(Image,12865014,378,119)
{
Left=5
Width=840
Height=895
}
Add(Hub,4902361,308,119)
{
link(onEvent1,12865014:doLoad,[])
link(onEvent2,6009711:doPicture,[(368,132)(368,188)])
}
Add(Printer,3974636,427,175)
{
Point(doPrintDlg)
link(onPrint,7499503:doDraw,[])
}
Add(Timer,6367616,280,224)
{
Interval=500
Enable=1
AutoStop=1
}


Редактировалось 1 раз(а), последний 2026-02-25 11:50:14
карма: 20

0
Ответов: 231
Рейтинг: 1
#13: 2026-02-25 11:54:58 ЛС | профиль | цитата
Gunta писал(а):
Неправильно был указан источник отображения.

Да, потом поправил. Типа заработало но с большими изображениями не пашет. приходиться их "портить" элементом ResizeEx. Я выше фото приложил что получается из этого.

Редактировалось 1 раз(а), последний 2026-02-25 11:55:31
карма: 1

0
Ответов: 1052
Рейтинг: 219
#14: 2026-02-25 11:59:47 ЛС | профиль | цитата
Gitarist писал(а):
Типа заработало но с большими изображениями не пашет. приходиться их "портить" элементом ResizeEx. Я выше фото приложил что получается из этого.

Вот вставил фото.
https://disk.yandex.ru/d/gNltsW2h7-pH1Q
Ничего не уменьшал. Использовал схему и предыдущего сообщения.
карма: 20

0
Ответов: 231
Рейтинг: 1
#15: 2026-02-25 13:15:24 ЛС | профиль | цитата
Ладно, пока что остановился на том, что поставил в компоненте ResizeEx большое разрешение. вроде работает более менее.
---
п.с. Нет всё таки так не сгодится. Выяснил, что примерно 7000px*7000px схема принимает нормально и печатает. Помогите составить логический блок, таким образом, чтобы если загружается картинка большего размера то блок бы исправлял размеры картинки пропорционально доводя их до приблизительно максимальной величины (7000). А то если использовать константы, то картинка деформированная получается.

Add(MainForm,9896808,196,161)
{
Width=981
Height=947
link(onCreate,8165264:doExecute,[])
}
Add(DocumentTemplate,7499503,714,231)
{
X=1
Y=1
DrawSource=2
Name="Picture"
link(Bitmap,3974636:Context,[(720,219)(700,219)(700,273)(664,273)])
}
BEGIN_SDK
Add(Print_Image,8688955,14,14)
{
Name="pict"
X=17
Y=17
Width=743
Height=1047
}
END_SDK
Add(PC_Image,6009711,602,238)
{
ItemName="pict"
Document="Picture"
link(onPicture,3974636:doPrintDlg,[])
link(Bitmap,10756213:Result,[(608,222)(482,222)])
}
Add(Img_Loader,12584669,301,175)
{
Point(ImageWidth)
Point(ImageHeight)
link(onLoad,14749695:doWork1,[])
}
Add(ODialog,8165264,252,175)
{
link(onExecute,12584669:doLoad,[])
}
Add(Image,12865014,602,175)
{
Left=5
Width=920
Height=895
}
Add(Hub,4902361,525,175)
{
OutCount=3
link(onEvent1,12865014:doLoad,[])
link(onEvent2,6009711:doPicture,[(553,188)(553,244)])
}
Add(Printer,3974636,658,231)
{
Point(doPrintDlg)
link(onPrint,7499503:doDraw,[])
}
Add(ResizeEx,10756213,476,175)
{
Width=2000
Height=3000
Point(Result)
link(onResult,4902361:doEvent1,[])
link(Width,14749695:Var1,[(489,163)(440,163)(440,219)(391,219)])
link(Height,14749695:Var2,[(496,163)(447,163)(447,219)(398,219)])
}
Add(MultiElement,14749695,385,175)
{
@Hint=#35:Изменить разрешение пропорционально|
link(Data1,12584669:ImageWidth,[(391,156)(357,156)(357,214)(314,214)])
link(Data2,12584669:ImageHeight,[(398,163)(363,163)(363,219)(321,219)])
link(onEvent1,10756213:doResize,[])
AddHint(38,104,134,26,@Hint)
}
BEGIN_SDK
Add(EditMulti,10071607,21,21)
{
EventCount=1
WorkCount=1
DataCount=2
VarCount=2
Width=398
Height=249
link(doWork1,3691787:doCompare,[(29,27)(29,97)])
}
Add(If_else,3691787,70,91)
{
Type=2
Op2=Integer(7000)
link(onFalse,15523721:doCompare,[])
link(Op1,10071607:Data1,[(76,42)(27,42)])
}
Add(If_else,15523721,280,98)
{
Type=2
Op2=Integer(7000)
link(Op1,10071607:Data2,[(286,35)(34,35)])
}
END_SDK


--- Добавлено в 2026-02-25 13:47:32

Пользуясь случаем, так сказать..:
я мог бы этот вопрос адресовать нейросети по типу Гигачата или подобной. Схемы для Hiasma она рисовать не умеет, но умело клепает код))) Вот подскажите пожалуйста, можно ли сгенерированный код из нейросети как то вставить в наш любимый Хаясм?

Редактировалось 2 раз(а), последний 2026-02-25 13:47:32
карма: 1

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