我有一个rtf(富文本格式)文件格式的表格。
我想知道是否可以在运行时将不同的内容放入单元格中。
这是截图。某些空白字段需要填入值。
答案 0 :(得分:4)
你写了“有些空白字段需要编辑” - 如果这意味着RTF是某种模板,其中空字段需要以编程方式填写,这就是我要做的:
答案 1 :(得分:2)
要在一张纸上打印表单,只需在打印机的画布上绘图!
procedure TForm1.Button1Click(Sender: TObject);
var
y, Margin, Col2: integer;
LineHeight: integer;
begin
with TPrintDialog.Create(nil) do
try
if not Execute then
Exit;
finally
Free;
end;
Printer.BeginDoc;
Printer.Title := 'Sample Form';
Printer.Canvas.Font.Name := 'Arial';
Printer.Canvas.Font.Size := 11;
Margin := 5*Printer.Canvas.TextWidth('M');
Col2 := 35*Printer.Canvas.TextWidth('M');
LineHeight := 3 * Printer.Canvas.TextHeight('M') div 2;
y := Margin;
Printer.Canvas.Font.Style := [fsBold];
Printer.Canvas.TextOut(MARGIN, y, 'Name: ');
Printer.Canvas.Font.Style := [];
Printer.Canvas.TextOut(Col2, y, 'Andreas Rejbrand');
inc(y, LineHeight);
Printer.Canvas.Font.Style := [fsBold];
Printer.Canvas.TextOut(MARGIN, y, 'Age: ');
Printer.Canvas.Font.Style := [];
Printer.Canvas.TextOut(Col2, y, '23');
inc(y, LineHeight);
Printer.Canvas.Font.Style := [fsBold];
Printer.Canvas.TextOut(MARGIN, y, 'Nationality: ');
Printer.Canvas.Font.Style := [];
Printer.Canvas.TextOut(Col2, y, 'Swedish');
Printer.EndDoc;
end;
答案 2 :(得分:1)
要在TRichEdit中使用现有RTF内容,请将其加载到组件的Text或Lines属性中:
RichEdit1.Lines.LoadFromFile(rtfFilename);
-OR -
RichEdit1.Text := StringILoadedFromAnRtfFileOnDisk;
我不确定您要做什么(以编程方式创建或修改基于某些现有未指定的RTF内容的表,打印它等)。通过询问丰富的编辑,并询问常规编辑,这很难理解。
您在评论中询问如何在TRichEdit中创建表格:
procedure TForm1.PutTableIntoRichEdit;
begin
RichEdit1.Text := '{\rtf1\ansi\deff0'#13#10+
'\trowd'#13#10+
'\cellx1000'#13#10+
'\cellx2000'#13#10+
'\cellx3000'#13#10+
'cell 1\intbl\cell'#13#10+
'cell 2\intbl\cell'#13#10+
'cell 3\intbl\cell'#13#10+
'\row'#13#10+
'}' ;
end;
如果您想在上面显示的屏幕截图中使用该RTF内容,在您的delphi程序中,只需加载它并尝试一些东西,并询问一个特定的问题。向我们展示微软单词的屏幕截图并不能帮助您解决问题。