操作word的shapes画图问题

horisly 2006-01-08 06:45:39
程序是一个优化玻璃切割的算法,输入原始毛坯规格、需要的成品规格,然后根据规格大小在word文档中画出解决方案。具体就是,假设需要一批800×500的成品,而原始毛坯是1200×800的,如何使得切割最优化。

输出的结果是输出到word文档,在word文档中画出解决方案图。

Word::DocumentsPtr pDocs = pApp->Documents;
Word::_DocumentPtr pDoc;

pDoc = pDocs->Add();
pDoc->SaveAs(FileName);

Word::ShapesPtr pShapes = pDoc->GetShapes();
Word::ShapePtr pShape;

// 画一个矩形,代表原始毛坯
pShapes->AddShape((Office::MsoAutoShapeType)1,RectX,RectY,RectW,RectH);

// 下面是一个循环,在上面画一些小矩形,代表该原始毛坯可以切割成的成品
// 坐标是逐渐递增。
。。。。
。。。。

==================
问题就在于:我这样AddShape,如果画出的图是超过一个word页面的画,超出部分就不能显示了。我大体明白它的原因,因为word的坐标是也一个页面为规范的,也就是每一个页面都是从0到700多。所以,如果坐标大于最大值的话,超出部分就显示不了。

我通过InsertBreak,插入新页,但是,如果控制AddShape的坐标移动到下一个页面那?

===
另外,请参考帖子:http://community.csdn.net/Expert/topic/4502/4502480.xml?temp=3.490847E-02
...全文
222 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
horisly 2006-01-08
  • 打赏
  • 举报
回复
回复人: horisly(SUN YAT-SEN UNIVERSITY (逸仙先生)) ( ) 信誉:100 2006-1-6 20:50:20 得分: 0



切割重画?什么意思?

我的图是有一排这样的,就是说会有好多个原始毛坯(大矩形),然后,每个毛坯切割成成品(小矩形),一般是1列显示2个大矩形。如果一个页面不够了,则新开一个页面,再输出一排矩形。

但是,我实现不了在第二页输出图来。



Top

回复人: horisly(SUN YAT-SEN UNIVERSITY (逸仙先生)) ( ) 信誉:100 2006-1-6 21:13:47 得分: 0



anyone know?





Top

回复人: Snow_Ice11111(雪上加冰) ( ) 信誉:100 2006-1-6 21:15:22 得分: 0



能不能在画之前先算一下要绘制的图形的最大坐标,然后根据这个计算缩放的比例,把图形按这个比例缩放,刚好一页容纳全部图形吗?不懂如何用VC在word中画图,留名关注并帮顶一下。



Top

回复人: cowens(志眩) ( ) 信誉:100 2006-1-6 21:21:20 得分: 0



up



Top

回复人: horisly(SUN YAT-SEN UNIVERSITY (逸仙先生)) ( ) 信誉:100 2006-1-6 21:22:47 得分: 0



首先谢谢楼上的啦!

不过,不能这样做啊,客户的要求比较高的,不但需要显示图形,他还可以设置图形的大小,一定要清晰。太小了是不行的。

我试过每画满一页了,就新开一个word文档,不过,客户不允许这样。真的好郁闷。不知谁知道应该怎么做?或者提供一个比较好的替换方案也好!
急着用啊!



Top

回复人: zephyr007() ( ) 信誉:100 2006-1-6 23:02:24 得分: 0



学习,帮忙顶一下



Top

回复人: Snow_Ice11111(雪上加冰) ( ) 信誉:100 2006-1-6 23:31:44 得分: 0



告诉客户用A3页面打印吧,要想马儿跑,又不想给草吃,那有那么好的事^_^



Top

回复人: horisly(SUN YAT-SEN UNIVERSITY (逸仙先生)) ( ) 信誉:100 2006-1-7 1:03:48 得分: 0



没办法了?



Top

回复人: cpio(希望我的回复能带给您一点点帮助) ( ) 信誉:100 2006-01-07 09:09:00 得分: 0


我觉得用Excel比Word好

它基本上没有长宽限制


Top

回复人: horisly(SUN YAT-SEN UNIVERSITY (逸仙先生)) ( ) 信誉:100 2006-01-07 12:16:00 得分: 0


还有没人帮忙看看?


Top

回复人: jiangsheng(蒋晟.Net[MVP]) ( ) 信誉:285 2006-01-07 12:24:00 得分: 0


输出ACAD文件吧……


Top

回复人: horisly(SUN YAT-SEN UNIVERSITY (逸仙先生)) ( ) 信誉:100 2006-01-07 12:40:00 得分: 0


ACAD文件,是AutoCAD吗?
不熟悉啊。


Top

回复人: cpio(希望我的回复能带给您一点点帮助) ( ) 信誉:100 2006-01-07 14:05:00 得分: 0


用Excel多好啊


Top

回复人: pomelowu(羽战士) ( ) 信誉:186 2006-01-07 14:13:00 得分: 0


我是说,自己判断长度,分两次画在两个页面上。word不支持多页显示一幅图的。


Top

回复人: horisly(SUN YAT-SEN UNIVERSITY (逸仙先生)) ( ) 信誉:100 2006-01-07 14:28:00 得分: 0


回复人: pomelowu(羽战士) ( ) 信誉:186 2006-01-07 14:13:00 得分: 0


我是说,自己判断长度,分两次画在两个页面上。word不支持多页显示一幅图的。


===
我不是指多页显示一幅图,而是说,我在画图的时候(多个图,就是说画完一个图 ,再换行画另外一个图),所有的图会超过1页,如何调整AddShapes的坐标使得可以在第二页又从头开始画。


Top

回复人: horisly(SUN YAT-SEN UNIVERSITY (逸仙先生)) ( ) 信誉:100 2006-01-07 21:26:00 得分: 0


唉。


Top

5,139

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 Office开发/ VBA
社区管理员
  • Office开发/ VBA社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧