Вверх ↑
Этот топик читают: Гость
Ответов: 241
Рейтинг: 1
#1: 2026-02-12 03:13:55 ЛС | профиль | цитата
Сабж...
Нужно сохранить шаблон документа в файл, который можно было бы потом распечатать при помощи программы, также написанной в хаясме. Шаблон состоит из мелких шрифтов и штрих-кода, поэтому нужно изображение высокой четкости аля ПДФ, (там сколько его не увеличивай картинка ШК и шрифты не размываются). Пробовал сохранить jpeg в высоком качестве. Ну не то пальто...
карма: 1

0
Ответов: 1061
Рейтинг: 219
#2: 2026-02-12 06:03:55 ЛС | профиль | цитата
Gitarist писал(а):
Нужно сохранить шаблон документа в файл, который можно было бы потом распечатать при помощи программы,

В примерах есть схема
\Elements\delphi\Example\Printer\PrintDocuments\PrintTextDoc.sha
Распечатай как PDF
карма: 20

0
Ответов: 241
Рейтинг: 1
#3: 2026-02-12 16:26:35 ЛС | профиль | цитата
Gunta писал(а):
Распечатай как PDF

Не годится... надо как то автоматизировать
карма: 1

0
Ответов: 1061
Рейтинг: 219
#4: 2026-02-15 08:53:52 ЛС | профиль | цитата
Gitarist писал(а):
надо как то автоматизировать

Что ты подразумеваешь под словом "автоматизировать"?
https://forum.hiasm.com/getfile/40617
карма: 20

0
файлы: 1для Gitarist.zip [4.3KB] [28]
Ответов: 241
Рейтинг: 1
#5: 2026-02-17 02:20:52 ЛС | профиль | цитата
Gunta писал(а):
Что ты подразумеваешь под словом "автоматизировать"?
https://forum.hiasm.com/getfile/40617

То что при нажатии кнопки Print в вашей схеме, появляется диалог под каким именем сохранить куда итд.. А надо чтоб в прям на схеме можно было прописать ну к примеру C:\\Barcode.pdf
карма: 1

0
Ответов: 1061
Рейтинг: 219
#6: 2026-02-17 06:07:22 ЛС | профиль | цитата
Gitarist писал(а):
То что при нажатии кнопки Print в вашей схеме, появляется диалог под каким именем сохранить куда итд.. А надо чтоб в прям на схеме можно было прописать ну к примеру C:\\Barcode.pdf

Пока не могу загрузить файл, поэтому ссылка на Яндекс диск
https://disk.yandex.ru/d/NQ1ZXq14gL2XcQ
карма: 20

0
Ответов: 241
Рейтинг: 1
#7: 2026-02-18 00:26:47 ЛС | профиль | цитата
Gunta писал(а):
Пока не могу загрузить файл, поэтому ссылка на Яндекс диск
https://disk.yandex.ru/d/NQ1ZXq14gL2XcQ

Ахах)) Хитро))
Эмуляция клавиш наше всё))
....
Но даже это не работает. Вылазит диалог и не вставляется из буфера. (разобрался, надо было еще Caption окну послать)
Кроме того может вылезти еще диалог, где спрашивают заменить или нет, если файл уже cуществует.. и можно было бы прописать еще одну итерацию на Enter, но нет выделена кнопка "Нет"...
....
А подскажите, для чего запускается параллельный поток? Вообще для чего используется, а то я никогда его не юзал..

Редактировалось 7 раз(а), последний 2026-02-18 01:18:42
карма: 1

0
Ответов: 1061
Рейтинг: 219
#8: 2026-02-18 13:06:04 ЛС | профиль | цитата
Gitarist писал(а):
Но даже это не работает. Вылазит диалог и не вставляется из буфера. (разобрался, надо было еще Caption окну послать)

У меня работает.
Gitarist писал(а):
Кроме того может вылезти еще диалог, где спрашивают заменить или нет, если файл уже cуществует.. и можно было бы прописать еще одну итерацию на Enter, но нет выделена кнопка "Нет"...

Проще сначала удалить старый файл и уже потом сохранить новый под тем же названием.
Gitarist писал(а):
А подскажите, для чего запускается параллельный поток? Вообще для чего используется, а то я никогда его не юзал

Почитай документацию.
https://forum.hiasm.com/wiki/5452
А если совсем просто, то любое диалоговое окно останавливает основной поток и ждёт реакцию пользователя. Запуск параллельного потока даёт возможность "посмотреть" на диалоговое окно "как бы со стороны" и провести какие-либо манипуляции с ним.
карма: 20

1
Голосовали:Gitarist
Ответов: 241
Рейтинг: 1
#9: 2026-02-23 06:38:47 ЛС | профиль | цитата
Gunta писал(а):
У меня работает.

Ок, а есть ли способ распечатать сохраненный документ "нажатием одной кнопки" в программе?
карма: 1

0
Ответов: 1061
Рейтинг: 219
#10: 2026-02-23 13:04:31 ЛС | профиль | цитата
Gitarist писал(а):
а есть ли способ распечатать сохраненный документ "нажатием одной кнопки" в программе?

Выбери принтер и файл, который хочешь распечатать.
Add(MainForm,2953706,98,105)
{
Width=533
Height=179
link(onCreate,14111122:doEvent1,[])
}
Add(Registry,13844032,203,161)
{
HKey=1
Key="SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows"
Value="Device"
link(onRead,16260798:doSplit,[])
}
Add(FormatStr,8608423,336,168)
{
DataCount=1
Mask="Принтер по умолчанию: %1"
link(onFString,2953706:doCaption,[(382,174)(382,97)(88,97)(88,111)])
}
Add(MultiStrData,16260798,252,161)
{
Char=","
Count=1
link(onPart1,1115429:doEvent1,[])
}
Add(Hub,14111122,140,119)
{
link(onEvent1,15972268:doEnumKeys,[])
link(onEvent2,8546741:doEvent1,[(165,132)(165,167)])
}
Add(Registry,15972268,182,105)
{
HKey=2
Key="SYSTEM\CurrentControlSet\Control\Print\Printers"
Point(doEnumKeys)
Point(onEnumKey)
link(onEnumKey,8061982:doAdd,[])
}
Add(ComboBox,8061982,343,112)
{
Left=20
Top=35
Width=250
Height=21
Text=""
DataType=1
Point(doSelectString)
link(onClick,279962:onWork,[])
}
Add(Hub,1115429,294,161)
{
link(onEvent1,8061982:doSelectString,[(319,167)(319,146)])
link(onEvent2,8608423:doString,[])
}
Add(VBJScript,279962,399,119)
{
@Hint=#7:SendKey|
WorkPoints=#6:onWork|
EventPoints=#7:onEvent|
Script=#23:Sub doWork(Data, Index)|51: Set objNetwork = CreateObject("WScript.Network")|36: objNetwork.SetDefaultPrinter Data|19: sys.onEvent Data|7:End Sub|
UseName=0
link(onEvent,8546741:doEvent2,[(438,125)(438,209)(165,209)(165,174)])
}
Add(Hub,8546741,175,161)
{
InCount=2
OutCount=1
link(onEvent1,13844032:doRead,[])
}
Add(Label,14957794,84,35)
{
Left=20
Top=15
Caption="Выбрать принтер для печати"
}
Add(Label,14911145,130,37)
{
Left=20
Top=65
Width=135
Height=17
Caption="Выбрать файл для печати"
}
Add(Edit,547071,182,294)
{
Left=20
Top=90
Width=230
Text=""
}
Add(Button,6958063,77,301)
{
Left=250
Top=90
Width=20
Caption=">>"
link(onClick,4386549:doExecute,[])
}
Add(ODialog,4386549,126,301)
{
Filter="PDF|*.pdf|All|*.*"
link(onExecute,547071:doText2,[])
}
Add(Button,8930233,77,364)
{
Left=305
Top=90
Caption="Печатать"
link(onClick,1775550:doShellExec,[])
}
Add(WinExec,1775550,182,357)
{
Action="print"
Point(onErrorExec)
link(FileName,547071:Text,[])
}


Для печати PDF-файлов на компьютере должен быть установлен Adobe Reader.

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

1
Голосовали:Gitarist
Ответов: 241
Рейтинг: 1
#11: 2026-02-23 21:45:31 ЛС | профиль | цитата
Gunta, Спасибо, отличный вариант схемы для печати!

Вот бы еще довести до ума вариант с сохранением без всяких эмуляций клавиш итд...

Кстати, в Hiasm есть какой то вариант предпросмотра перед печатью того или иного PDF?

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

0
Ответов: 1061
Рейтинг: 219
#12: 2026-02-23 22:08:25 ЛС | профиль | цитата
Gitarist писал(а):
Кстати, в Hiasm есть какой то вариант предпросмотра перед печатью того или иного PDF?

Add(MainForm,10399592,329,168)
{
Width=822
Height=705
link(onCreate,3797472:doWork2,[])
}
Add(ODialog,14812495,385,182)
{
Filter="PDF files|*.pdf"
link(onExecute,710285:doStrCat,[])
}
Add(WebBrowser,3215485,497,182)
{
Top=40
Width=806
Height=371
Align=5
URL=""
Silent=0
Point(PHandle)
}
Add(StrCat,710285,441,182)
{
Str1="file:///"
link(onStrCat,3215485:doNavigate,[])
}
Add(Label,8626300,329,119)
{
Width=806
Height=40
Align=2
Caption=""
AutoSize=1
}
Add(Button,8983897,329,210)
{
Left=45
Top=10
Width=85
Caption="Открыть PDF"
link(onClick,3797472:doWork3,[(375,216)])
}
Add(HubEx,3797472,371,182)
{
link(onEvent,14812495:doExecute,[])
}


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

0
Ответов: 241
Рейтинг: 1
#13: 2026-02-23 23:01:55 ЛС | профиль | цитата

Какие то диалоги начинает
карма: 1

0
Ответов: 1061
Рейтинг: 219
#14: 2026-02-23 23:05:04 ЛС | профиль | цитата
Gitarist писал(а):
Какие то диалоги начинает

Схему в предыдущем сообщении поправил


Редактировалось 1 раз(а), последний 2026-02-23 23:07:53
карма: 20

0
Ответов: 241
Рейтинг: 1
#15: 2026-02-23 23:14:28 ЛС | профиль | цитата
Ничего не изменилось. Он отображает только если нажать Открыть. а как избежать этих диалоговых окон?

--- Добавлено в 2026-02-23 23:20:42

Еще столкнулся с такой проблемой, что не печатается картинка JPG большого разрешения... В чем может быть дело?

Редактировалось 2 раз(а), последний 2026-02-23 23:22:21
карма: 1

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