Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.02;
Скачать: CL | DM;

Вниз

как сделать разрыв страницы в RichEdit при печати   Найти похожие ветки 

 
zam2000   (2002-11-20 10:28) [0]

Мне необходимо после конкретрого предложения сделать новую страницу(именно чтоб при печати это была новая страница)
Подскажите кто знает


 
KoluChi ©   (2002-11-20 10:42) [1]

\par \page


 
zam2000   (2002-11-20 10:54) [2]

хм а как этим пользоваться, просто написать например

RichEdit1.Lines.Add("123"+"\page"+"123");

Но такое у меня не работает, т.е в Richedit после этого просто пишется текст "123\page123" и печатается на одной странице этот текст,а мне надо чтобы это были две страницы, на каждой из которых было бы написано вверху "123"


 
KoluChi ©   (2002-11-20 10:59) [3]

Да поторопился, как записать пока не знаю.
Но в формате RTF \par \page - перевод строки.


 
SuperVK ©   (2002-11-20 11:15) [4]

Не знаю, может есть способ попроще, но мне это удалось сделать весьма сложными путями. Я для этого в процессе распечатки текст на файлы разбивал и файлы отдельно печатал.


 
zam2000   (2002-11-20 11:18) [5]

ну это уже слишком, тогда легче пробелов понавствлять, и ведь есть стандартный атрибут, вопрос как его вставить


 
KoluChi ©   (2002-11-20 11:23) [6]

Похорошему надо вставить символ разделения страницы в RichEdit,
но у меня это не получилось - RichEdit его не поддерживает.
(даже при открытии файла с разделителем он его преобразует в пустую строку)
При печати можно разбить текст на части и печатать отдельно:
function TmainForm.GetRTFStrings(Editor: TRichEdit; Index, Count: Integer): String;
var
I: Integer;
RichEdit: TRichEdit;
Stream: TStringStream;
begin
Stream := TStringStream.Create("");
RichEdit := TRichEdit.Create(Self);
RichEdit.ParentWindow := Handle;
try
Editor.Lines.SaveToStream(Stream);
Stream.Position := 0;
RichEdit.Lines.LoadFromStream(Stream);
for I := RichEdit.Lines.Count - 1 downto 0 do
if (I < Index) or (I > Index + Count) then RichEdit.Lines.Delete(I);
Stream.Position := 0;
RichEdit.Lines.SaveToStream(Stream);
Result := Stream.DataString;
ShowMessage(Result);
finally
RichEdit.Free();
Stream.Free();
end;
end;


 
KoluChi ©   (2002-11-20 11:40) [7]

RxRichEdit - поддерживает перевод страницы, отображает пустой строкой, но печает нормально. Можно попробовать засунуть перевод страницы, хотя бы через Clipboard.


 
zam2000   (2002-11-20 11:47) [8]

а как тогда засунуть в нужном месте тег /Page в rxrichedit через Stream, чтобы после нужной строки был разрыв


 
SuperVK ©   (2002-11-20 12:05) [9]

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


 
KoluChi ©   (2002-11-20 12:06) [10]

Для RxRichEdit:
в тексте где вставляется разрыв страницы нужно написать <new page>
RichEdit1.Lines.SaveToStream(Stream);
S := Stream.DataString;
S := StringReplace(S, "<new page>", "\page", [rfReplaceAll, rfIgnoreCase]);
Stream.Position := 0;
Stream.WriteString(S);
Stream.Position := 0;
RichEdit1.Lines.LoadFromStream(Stream);



Страницы: 1 вся ветка

Текущий архив: 2002.12.02;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.013 c
1-4479
Павел
2002-11-20 16:22
2002.12.02
Работа с файлами


3-4248
VaS
2002-11-14 17:11
2002.12.02
Отключение от БД в finalization (IBX)


14-4615
Igorek
2002-11-12 19:26
2002.12.02
Self = Іуда, if = ша...


14-4607
Driverrr
2002-11-11 17:19
2002.12.02
Windows 2000


1-4356
AndrewVolkov
2002-11-19 21:58
2002.12.02
UpCase(Char) есть ли у этой функции антоним???