打印TMemo的内容到打印机

Canvas.TextOut真是好用,Printer也实在好用:

procedure PrintTStrings(Lst : TStrings) ;
var
  I,
  Line : Integer;
begin
  I := 0;
  Line := 0 ;
  Printer.BeginDoc ;
  // TMemo会按照当前宽度自动换行,所以粘帖不换行的文字也没有用
  for I := 0 to Lst.Count - 1 do
  begin
    Printer.Canvas.TextOut(0, Line, Lst[I]); // 以(0,Line)为起点坐标,输出一行文字,真是好用

    {Font.Height is calculated as -Font.Size * 72 / Font.PixelsPerInch which returns
     a negative number. So Abs() is applied to the Height to make it a non-negative value}
    Line := Line + Abs(Printer.Canvas.Font.Height); // 计算行高
    if (Line >= Printer.PageHeight) then
      Printer.NewPage;
  end;
  Printer.EndDoc;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  PrintTStrings(Memo1.Lines);
end;
时间: 2024-12-18 06:22:06

打印TMemo的内容到打印机的相关文章

关于IE打印预览内容显示不全的问题解决

目前在调整一个页面打印功能的时候,发现多行文本框TextArea在页面显示的时候,多行文本可以正常显示,但是在打印页面的时候,部分内容就被遮挡住了, 苦思冥想不得其解,后来还是请教了美工. 首先查了下TextArea的CSS样式,没有固定Height属性,但是IE开发者工具F12,跟踪样式里TextArea是有Height的,这个就是实际高度!(输入东西多Height就大,反之就小) 好像有点启发了!打印预览高度貌似和页面实际高度是一样的,但是打印预览页面的宽度没有表单页面宽,导致每行显示的字数

WPF打印控件内容

当我们想打印控件内容时,如一个Grid中的内容,可以用WPF中PrintDialog类的PrintVisual()方法来实现 界面如下: XAML代码如下 1 <Grid> 2 <Grid.ColumnDefinitions> 3 <ColumnDefinition/> 4 <ColumnDefinition Width="300"/> 5 </Grid.ColumnDefinitions> 6 <Grid Grid.C

__str__被print函数调用,目的是打印类的内容到屏幕上

# -*- coding: utf-8 -*- #python 27 #xiaodeng #__str__被print函数调用,目的是打印类的内容到屏幕上 class APIError(): def __init__(self, error_code, request): self.error_code = error_code self.request = request def __str__(self): #一般都是return return 'APIError: %s, \nreques

直接端口打印 支持USB接口的打印机吗?解决办法

直接端口打印 支持USB接口的打印机吗?解决办法 www.MyException.Cn  网友分享于:2013-09-15  浏览:488次 直接端口打印 支持USB接口的打印机吗?问题如上,如可以支持,应该怎么搞? ------解决方案--------------------支持,只是端口名称不同而已. ------解决方案--------------------1. 安装一个打印机驱动(保证可以打印测试页)2. 把打印机共享出来3. 然后把端口名填入 \\机器名\打印机共享名 这样,就可实现

1.关于QT中的Graphics绘图,定时器,动画,将窗口中的内容打印到图片上,打印机,打印预览

 1 新建项目 A  修改pro中的内容如下: HEADERS += \ MyWidget.h SOURCES += \ MyWidget.cpp QT += gui widgets printsupport B  编写MyWidget.h #ifndef MYWIDGET_H #define MYWIDGET_H   #include <QWidget> #include <QGraphicsScene> #include <QGraphicsLineItem>

js打印WEB页面内容代码大全

第一种方法:指定不打印区域 使用CSS,定义一个.noprint的class,将不打印的内容放入这个class内. 详细如下: <style media=print type="text/css">   .noprint{visibility:hidden}   </style>   要打印的内容.哈哈!<p class="noprint">将不打印的代码放在这里.</p><a href="javasc

JS达到Web指定保存的和打印功能的内容

背景 首先,说说文章的背景.近期手中的一个项目,因为需求中要求提供Web界面的打印功能.当然假设没有打印机,还能够提供保存到本地.项目组长把这个"小任务"分给了我.本着努力为组长分忧解难的思想,领了任务之后,就立即開始了工作. 问题 刚開始的时候.组长给了一个工具(jatoolsprinter)让我研究.我用了一个多小时的时间,做出了一个简单的Demo,然后就是各种的測试,因为 web 打印须要浏览器安装 ActiveX 组件.在随后的測试中,我用了几款浏览器.甚至把安全级别都调到了最

window.print()打印页面指定内容(使用iframe保证原页面不失效)

使用window.print()时会出现两个问题: (1)直接使用window.print() 打印的是整页内容-->无法实现打印指定区域 (2)打印时替换body中的内容,打印完成后再替换回来-->这样会导致原来页面事件失效 使用iframe即可打印指定内容,也可保证页面不失效,具体方法如下: 1.将打印的内容独立出来为一个print.html文件,并为页面添加打印事件 <!DOCTYPE html> <html> <head> ... </head

textArea打印时,内容不显示

使用jqprint来打印form表单中的内容时.会出现input.textarea标签里的东西无法打印. jquery打印原理:jqprint打印方式是把打印区域的html内容处理到新的iframe中,然后打印. 这样的一个机制下,input.textarea当中的内容如果是通过jquery赋值.手动输入,那么在打印的时候是不会有内容的. 解决办法: 在jqprint()之前,执行下面的方法: 1.input属性赋值:使input标签的value属性内有你要打印的内容. 2.textarea: