社区
VB基础类
帖子详情
formula one ,如何自己写打印预览及打印程序?
deadog
2002-05-29 11:45:10
请各位大虾帮帮忙。formula one的打印预览功能不好,想自己写,还没有好办法,谁写过?
...全文
96
7
打赏
收藏
formula one ,如何自己写打印预览及打印程序?
请各位大虾帮帮忙。formula one的打印预览功能不好,想自己写,还没有好办法,谁写过?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
耙子
2002-06-05
打赏
举报
回复
屏幕DC是严格的打印的点阵的对应。
而且这个DC对应的画布的大小和打印机的打印分辨率有密切的关系。
300*300DPI和600*600DPI的时候连个DC对应的画布也是长宽各差一倍的。
我用的这个大银鱼似的方法可以说是个偏门。
1.设定这个缩放比例预览的时候一定要在预览生成后恢复原来的数值,这样才不影响打印。具体方法
GetPrintScale 取得当前的数值保存
SetPrintScale 设定新的大小为了预览
PrintPreviewDC 生成预览
SetPrintScale 恢复原来的比例
2.由于你设定了新的放缩比例,会导致一个问题就是页数的计算会变化,比喻你缩放了50%,那么原来是10页的内容现在其实就只需要5页了,这违背了我们的目的,所以我的建议是同样在预览前修改纸张的大小,按照于是的比例缩小当前的纸张大小。同上面一样,预览生成后要恢复原来的内容。
3.预览的大小还受到打印分辨率的影响,所以计算预览效果的时候一定要得到当前的分辨率,并把此参数引入的预览画面生成的计算中取。
int GetDeviceCaps(
HDC hdc,
int nIndex);
下面是BCB代码得到当前打印机的水平和垂直分辨率
GetDeviceCaps(Printer()->Canvas->Handle, LOGPIXELSX);
GetDeviceCaps(Printer()->Canvas->Handle, LOGPIXELSY);
4.我的另一个想法,
如果能设定当前打印机的分辨率,或者模拟一个打印机,把他的分辨率设为和屏幕一样,那么就可以直接在一个DC上面直接用了,没什么比例的概念了。
想调整预览的放缩倍数只要修改这个打印机的分辨率就行了。100%的情况就是
把打印机的分辨率设定为96*96dpi (window小字体),
这个办法我一直没成功。
关注你的进展。
谢谢,共同探讨。
耙子
2002-06-05
打赏
举报
回复
这个问题我们正在delphi区里面探讨,已经小有成效了。欢迎你也来探讨。
呵呵。
deadog
2002-05-30
打赏
举报
回复
我的工程是完全依赖formula one的,所以最好能针对F1进行。
IsMe
2002-05-29
打赏
举报
回复
使用printer对象就可以
表格打印程序的重点是如果定义表格,使得能够最大程度地通用,可以参考现有的控件或设计器
wzsswz
2002-05-29
打赏
举报
回复
欢迎使用OrchidPrinter. OrchidPrinter是一款专门针对中国国情并参照国外的类似软件编制的工具软件 这个软件可以让您快速,容易的进行预览及打印输出.它支持多列,文本自动换行,页头和页尾,表格及段落. OrchidPrinter 也支持右键弹出菜单.
在您能够使用OrchidPrinter control前,您必需把它加入工程.
在您发布您的程序时,您必须安装OrchidPrinter control及相应的支持文件到用户的Microsoft Windows SYSTEM目录下.
OrchidPrinter使用Twips作为作图单位,其原点在页的左上角.请记住1英寸等于1440 Twips,1点等于20 Twips.其坐标不得大于
32767.
希望您对 Windows 的 GUI 比较熟悉,对 GUI 的各种对象及 Windows 的C,C++程序有一定的了解,这对您的高效使用大有益处.
作者 : 史仲浩
email : shizhonghao@sohu.com
************************************************************************************************************************************
Properties (default: Paragraph)
(About) AbortCaption AbortTextButton
AbortDocument AbortTextPage BackColor
BorderStyle BrushColor BrushStyle
CalcParagraph CalcTable CalcText
CharHeight CharWidth Collate
ColorMode Columns Copies
CurrentColumn CurrentLine CurrentPage
CurrentX CurrentY Device
DPI Draw Driver
Duplex EmptyColor Enabled
Error FiredCount Footer
hDC HdrColor HdrFont
Header Height HelpContextID
IndentFirst IndentLeft IndentRight
IndentTab Index Left
LineSpacing MarginBottom MarginLeft
MarginRight MarginTop Name
Ndevices Orientation PageBorder
PageHeight PageWidth PaperHeight
PaperSize PaperSizes PaperWidth
Paragraph Parent PenColor
PenStyle PenWidth Picture
Polygon Polyline Port
Preview PreviewMode PreviewPage
ShadowColor ShadowLine Table
TableAlign TableBorder TableSep
Text TextAlign TextAngle
TextColor TwipsPerPixelX TwipsPerPixelY
X1 X2 Y1
Y2 Zoom
************************************************************************************************************************************
Events
EndDoc EndPage Error
NewColumn NewLine NewPage
NewTableCell PrepareFooter PrepareHeader
StartDoc
************************************************************************************************************************************
Methods
AddTable ClearError DrawCircle
DrawEllipse DrawLine DrawRectangle
EndDoc NewColumn NewPage
PrintDoc StartDoc
deadog
2002-05-29
打赏
举报
回复
谢谢两位的帮助!
我知道一般的控件都可以实现对picturebox等控件的打印及预览。
但我想要的是对FORMULA ONE 控件的打印及预览。
有对F1控件比较了解的吗?
wenw
2002-05-29
打赏
举报
回复
http://www.csdn.net/cnshare/soft/openfile.asp?kind=1&id=9735
http://www.csdn.net/cnshare/soft/openfile.asp?kind=1&id=9117
我这里还有源程序
史上最全的
Formula
one的属性与方法
Formula
one的属性与方法: 属性: l showEditBar:是否显示单元编辑框; l ShowEditBarCellRel:是否显示编辑单元的相关参数(单元号) l Sheet:当前激活的工作表索引(可以设定或获取、第一个为1); l ...
Formula
One 常用函数及属性
Formula
One 常用函数及属性 调用函数 如
formula
.object.function(arg1,arg2) 调用属性 如
formula
.object.prope[arg1,arg2] = value 带星号为推荐函数和属性 具体使用见帮助信息 一、属性: boolean AllowArrows...
介绍三种功能强大的数据库表格控件
介绍三种功能强大的数据库表格控件 ★
Formula
One★ Version:6.1producter:Sybase旗下Tidestone公司Price:5,796元screen shot:控件介绍:包容了桌面电子表格应用精华的
Formula
One控件,为开发者提供了完整而...
Formula
one的属性与方法(参考 F1BOOK)
Formula
one的属性与方法: 属性: l showEditBar:是否显示单元编辑框; l ShowEditBarCellRel:是否显示编辑单元的相关参数(单元号) l Sheet:当前激活的工作表索引(可以设定或获取、第一个为1); l NumSheets:...
综合使用JavaScript、LotusScript Agent和
Formula
的技巧
在使用 Designer开发B/S模式的应用时,JavaScript、LotusScript和
Formula
是我们主要用到的三种开发语言。它们在各自的位置都有着很强劲的优势。 1. JavaScript因为只能取得浏览器端的数据,不能访问Notes DOM;...
VB基础类
7,763
社区成员
197,609
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章