Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Vologd
15 / 15 / 10
Регистрация: 03.11.2013
Сообщений: 724
#1

Вывод на печать

02.05.2016, 16:23. Просмотров 353. Ответов 3
Метки нет (Все метки)

Здравствуйте! Почитал, но так и не могу к чему-то прийти.
Моя задача реализовать вывод печати на определенном бланке. То есть у меня есть уже заранее заготовленные бланки с местами куда надо "попадать" (выводить из эдитов и лейблов). Соответсвенно нужна надстройка, которая будет указывать смещение (для разных принтеров). И думаю каким образом вообще реализовать данную процедуру. посоветуйте какие компоненты для такой задачи лучше использовать? Сейчас с принтером поэксперементировать нет возможности, займусь в среду, но код хотелось бы заранее набросать примерный код.
Сейчас примерно так вижу:
Сделал панель на форме, по пикселям А4(600*846 - width*height) В нем располагаются лейблы, в них выводится опеределенная информация. Значения топ и лефт у лейбл'ов корректируются с помощью эдитов. Далее делается скрин формы и выводится в имейдж, дальше идет печать.
Жду Ваших советов и комментариев и на чем я погорю, возможно посоветуете более простой вариант.
Спасибо)
п.с. надеюсь, суть вопроса нормально довел) а то у меня вечно беда с изложением)))

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

Добавлено через 2 часа 8 минут
по интервалам решил таким способом
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
procedure TForm1.FormShow(Sender: TObject);
var
i:integer;
labe: TLabel;
a:array of string;
slovo:string;
begin
slovo:='Здесь какой-то текст"'; //выводим откуда надо лейбл или едит и так для каждого слова
setlength(a,length(slovo));
for i:=0 to length(slovo)-1 do
    begin
a[i]:=copy(slovo,i+1,1);
 
 labe:=Tlabel.Create(Form1);
 labe.Parent:=Form1;
 labe.Name:='labe'+inttostr(i+1);
 
(form1.findcomponent('labe'+IntToStr(i+1)) as TLabel).Left:=round(432+i*31.5);   //задаем нужный интервал между буквами
(form1.findcomponent('labe'+IntToStr(i+1)) as TLabel).Top:=208;   
(form1.findcomponent('labe'+IntToStr(i+1)) as TLabel).Caption:=a[i];
    end;
end;
 
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.05.2016, 16:23
Ответы с готовыми решениями:

Вывод на печать
Пожалуйста подробно распишите, как вывести на печать информацию расположенную...

Вывод на печать
Доброй ночи ребят. Столкнулся с такой проблемой. У меня программа это игра...

ВЫВОД НА ПЕЧАТЬ
Уважаемые программисты!Сразу сообщаю, что готов перевести на любезно Вами...

Вывод на печать...
Я новичок в программировании и предо мной встала проблема Необходимо при...

Вывод на печать Графика
Как вывести на печать график, созданный с помощью компонента Chart?

3
cotseec
Пишу на Delphi...иногда
1407 / 1267 / 284
Регистрация: 03.12.2012
Сообщений: 3,914
Записей в блоге: 5
Завершенные тесты: 3
02.05.2016, 16:34 #2
Цитата Сообщение от Vologd Посмотреть сообщение
То есть у меня есть уже заранее заготовленные бланки с местами куда надо "попадать" (выводить из эдитов и лейблов).
в каком виде представлены эти заготовки?
Цитата Сообщение от Vologd Посмотреть сообщение
реализовать вывод печати на определенном бланке.
м.б. проще воспользоваться имеющимися генераторами отчетов или тем же Word'ом, подставляя требуемые данные в места, указанные в шаблоне соответствующими тегами (на форуме примеры имеются)

З.Ы. "магические числа" полученные при подгонке могут быть невалидны на другом компьютере (с другим разрешением монитора и/или при отсутствии используемого шрифта в ОС)
1
Vologd
15 / 15 / 10
Регистрация: 03.11.2013
Сообщений: 724
02.05.2016, 16:51  [ТС] #3
Формы на листах формата А4, распечатанные/подготовленные заранее. В низх содержаться ячейки для букв (короче чтобы особо не объяснять долго вроде больничного листа и туда надо попасть). Может быть лучше и вордом. Вот спрашиваю советы, хотя от стороннего ПО хотелось бы уйти, а то я вечно все через эксель решаю) вывод на печать имею ввиду.
Спасибо за советы.
Про "магические числа" спасибо. Обращу внимание. Пока про ворд почитаю
0
krapotkin
3389 / 3004 / 1039
Регистрация: 14.04.2014
Сообщений: 14,575
Записей в блоге: 15
02.05.2016, 17:22 #4
Во всех версиях делфи был генератор отчетов
вот им и пользуйтесь
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.05.2016, 17:22

Формирования на печать и вывод
Подскажите пожалуйста. Каким компонентом можно собрать данные со всех форм...

Вывод на печать содержимого Memo.
дайте пожалуста код печати из Memo ЗАРАНИЕ БЛОГАДОРЮ

Вывод содержимого StringGrid-а на печать
Как вывести содержимое стрингрида на печать? Жмем кнопку «печать» и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru