程序是一个优化玻璃切割的算法,输入原始毛坯规格、需要的成品规格,然后根据规格大小在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的坐标移动到下一个页面那?
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的坐标移动到下一个页面那?
急着用啊!
不熟悉啊。
我是说,自己判断长度,分两次画在两个页面上。word不支持多页显示一幅图的。
===
我不是指多页显示一幅图,而是说,我在画图的时候(多个图,就是说画完一个图 ,再换行画另外一个图),所有的图会超过1页,如何调整AddShapes的坐标使得可以在第二页又从头开始画。