Форум программистов, компьютерный форум, киберфорум
Наши страницы

Delphi для начинающих

Войти
Регистрация
Восстановить пароль
 
Vologd
15 / 15 / 6
Регистрация: 03.11.2013
Сообщений: 720
#1

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

02.05.2016, 16:23. Просмотров 331. Ответов 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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Вывод на печать (Delphi):

ВЫВОД НА ПЕЧАТЬ - Delphi
Уважаемые программисты!Сразу сообщаю, что готов перевести на любезно Вами указанный счет (Янд*с деньги) - 200 деревянных. Но только за...

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

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

Вывод на печать - Delphi
Доброй ночи ребят. Столкнулся с такой проблемой. У меня программа это игра боулинг, в которой свой результат можно сохранить в файл. И...

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

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

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

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

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

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

Вывод отчета в юникоден на печать под Delphi 7 - Delphi
Какие генераторы отчетов можно использовать под Delphi 7, поддерживающие вывод на печать юникода и каторые можно использовать условно -...

Вывод БД на печать - Delphi
помогите плз написать код для вывода БД из DBGrid на печать


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

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

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