明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: asahix

大量的打印,图纸大小不一。我该怎么办呢?

  [复制链接]
发表于 2004-12-23 18:18:00 | 显示全部楼层
真的不明白,怎么会每一张图用的纸张都不一样呢?


我常用的就是a0,a1,a2,a3,a4,再有一自定义的纸张,怎么会每张图纸都不一样呢?楼上的兄弟能否详细说说你的情况。


另外vba好像真的实现不了自定义纸张。
发表于 2004-12-24 11:28:00 | 显示全部楼层
我找了一下相关文档,看哪个高手能开出来 如果您使用Win98/me系统,您可以设置VB的 printer object的Width和Height属性或Papersize属性调整打印的纸张大小。   相关信息请参考:    PaperSize Property    http://msdn.microsoft.com/library/en-us/vb98/html/vbproPaperSize.asp    Height, Width Properties    http://msdn.microsoft.com/library/en-us/vb98/html/vbproheight.asp   如果您使用Win2000/NT系统,纸张的大小由DevMode结构的四个属性决定:    dmPaperSize As Integer    dmPaperLength As Integer    dmPaperWidth As Integer    dmFormName As String * CCHFORMNAME   其中dmFormName用于NT系统中指定打印纸张大小为预定义的某个纸张(Form),但是VB的 printer object不支持FormName属性,您可以通过API函数DocumentProperties修改DevMode结构的dmFormName属性实现自定义打印。   分两步做:   1. 先在打印机目录下,从File菜单下进入Server Properties对话框,在这里您可以手工添加自定义纸张,您也可以用API函数AddForm在程序中添加自定义纸张。   2. 在您的程序中,用API函数DocumentProperties获得当前打印机的设置并修改dmFormName为前面添加的自定义纸张。   关于DevMode结构和DocumentProperties的使用可参考下面的例子。   Q282474 HOWTO: Print Using Custom Page Sizes on Windows NT/2000
  http://support.microsoft.com/support/kb/articles/q282/4/74.asp
  Q180645 FIX: Cannot Change Page Settings During Print Job
  http://support.microsoft.com/support/kb/articles/q180/6/45.asp
 
  API函数的相关信息请参考:   AddForm   http://msdn.microsoft.com/library/en-us/gdi/prntspol_0prh.asp   DocumentProperties   http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/prntspol_7k1f.asp
发表于 2004-12-24 17:29:00 | 显示全部楼层
vba可以设定打印机及纸张大小(只要打印机支持就行),但是如果想你所说的每张图纸出土的大小都不一样,能实现又能么杨么 送你一段设定打印机的代码吧,希望对你又帮助,这是我变得批量打印程序的一段 '===================================
'===================================
'========如果有打印任务=============
'===================================
'===================================

DoEvents
If Check4.Value = 1 Then
cadmessage.Label7.Caption = "正在设置打印机。。。。。。"
'6,设置打印设备
dwgfile.ActiveLayout.ConfigName = Combo2.Text
'7,设置打印模式
dwgfile.ActiveLayout.StyleSheet = Combo3.Text
'1,图纸尺寸与单位
dwgfile.ActiveLayout.CanonicalMediaName = Combo4.Text
dwgfile.ActiveLayout.PaperUnits = acMillimeters
'2,调整打印原点
Dim BASEPIONT As Variant
BASEPIONT = dwgfile.ActiveLayout.PlotOrigin
dwgfile.ActiveLayout.CenterPlot = True

'3,设置打印区域
dwgfile.ActiveLayout.PlotType = acExtents
'4,设置打印比例
dwgfile.ActiveLayout.StandardScale = acScaleToFit

'5,设置线宽比例
dwgfile.ActiveLayout.ScaleLineweights = False '建议不要设置线宽缩放
dwgfile.ActiveLayout.PlotRotation = ac90degrees
'打印机已选择
cadmessage.Label7.Caption = "正在打印。。。。。。"
dwgfile.Plot.PlotToDevice
'开始打印

End If
发表于 2004-12-24 19:50:00 | 显示全部楼层
vba可以设定打印机及纸张,但不能自定义纸张
发表于 2004-12-24 22:43:00 | 显示全部楼层
我不明白为什么要自定义纸张。
做为普通的纸张,也就是那么几个规格。
我不相信你看了图纸的大小后自己去裁不同大小的纸张来打印。
如果你要自定义的纸张也有规格,可以手工先在打印样式表中设定。大不了在交程序时把样式表一起交给客户。程序中就直接调用你的样式表也可以。
如果你只是在一般尺寸的纸张上打印不同尺寸的图,你只需要设定不同的打印比例就可以,纸张也可以留些空白出来,没有必要刚好打满。
发表于 2004-12-25 12:07:00 | 显示全部楼层
看来大家都不理解,我这里的图纸是地质图之类的东西,图幅不确定,大的有1400*800,全部使用卷筒纸打印,所以每次都要自定义纸张,我已下了一个例程,太长了,看得我头都大了。
 楼主| 发表于 2004-12-27 11:05:00 | 显示全部楼层
zhang老兄,能否共享一下你下载的好东东?也许我看不懂。
顺便说一下,我这边图纸大小,窄的有297*500~2000,宽的有841*1500~3000,当然都是滚筒打印机,型号有HP1050c plus,lp2020精工sii
发表于 2005-1-12 10:43:00 | 显示全部楼层
可以实现,我最近做了一个专门批打印CAD的软件!
 楼主| 发表于 2005-1-12 15:40:00 | 显示全部楼层
能否共享一下?
发表于 2013-3-20 13:13:56 | 显示全部楼层
楼主想的这个实现了没!弄来开开眼界~~ 顺便学习一下  给个思路也行
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 15:43 , Processed in 0.267241 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表