使用我的MFC应用程序,我可以使用CView类在屏幕上打印我的CDocument。 基本上,我使用CDC类在屏幕上写文本和绘制多边形,以提供我的文档的视图表示。
现在假设我想在Microsoft Word中使用该输出视图。
从用户指向一个视图而不再有开发人员的工作,我可以:
这两个毫不费力的解决方案很棒,因为我可以保持视图的确切布局,但有缺点(光栅或格式)
解决我的问题的另一种方法是编写SVG或VML,但我不会得到相同的布局,这需要大量的工作。
是否有一个库可以将相同类型的PDF导出/打印机制转换为标准格式?
你会建议什么?非常感谢。
答案 0 :(得分:2)
要将视图绘制到增强型元文件中,请首先阅读文档@ MSDN: http://msdn.microsoft.com/en-us/library/427wezx1%28v=VS.80%29.aspx
以下是一个示例,其工作原理如下:
CMetaFileDC MFDC;
CRect rect(0,0,width,height);
MFDC.CreateEnhanced(NULL,NULL,rect,NULL);
MFDC.SetBkMode(TRANSPARENT);
MFDC.SetMapMode(MM_HIMETRIC);
CDC tempDC;
tempDC.CreateCompatibleDC(&MFDC);
MFDC.SetAttribDC(tempDC.m_hDC);
// now you draw into the DC like it was your original view
HENHMETAFILE hEnhMetaFile = MFDC.CloseEnhanced();
HENHMETAFILE hEMF = NULL;
hEMF = CopyEnhMetaFile(hEnhMetaFile,"C:\\Temp\\Test.emf");
DeleteEnhMetaFile(hEMF);
DeleteEnhMetaFile(hEnhMetaFile);