110,534
社区成员
发帖
与我相关
我的任务
分享
Bitmap image = null;
FixedDocumentSequence docs = xps.GetFixedDocumentSequence();
using (DocumentPage docPage = docs.DocumentPaginator.GetPage(page))
{
float dpi = ConfigManager.DocDpi;
int width = (int)(docPage.Size.Width * dpi / 96 + 0.5);
int height = (int)(docPage.Size.Height * dpi / 96 + 0.5);
RenderTargetBitmap renderTarget = new RenderTargetBitmap(width, height, dpi, dpi, System.Windows.Media.PixelFormats.Default);
renderTarget.Render(docPage.Visual);
// calling GetPage without calling UpdateLayout causes a memory leak
((FixedPage)docPage.Visual).UpdateLayout();
BitmapEncoder encoder = new BmpBitmapEncoder(); // Choose type here ie: JpegBitmapEncoder, etc
encoder.Frames.Add(BitmapFrame.Create(renderTarget));
MemoryStream s = new MemoryStream();
encoder.Save(s);
image = new Bitmap(s);
image.SetResolution(dpi, dpi);
}
大致是这样,dpi根据你实际情况设,默认是96
另外,楼上有人提到的Spire的那个库我用过,简单试个1、2页看起来很不错,速度还快一些,可试个50页的有文字图片表格的word,转成图片跟原始word区别就很大了,会发现分页都不对,导致最后可能只有49页,这个我当时还到他们论坛发帖问,然后官方回复说他们分页算法也是自己摸索的,所以跟原版有差别也没办法,只能慢慢调~~~ //Load Document
Document document = new Document();
document.LoadFromFile(@"E:\work\documents\TestSample.docx");
//Convert Word to PDF
document.SaveToFile("toPDF.PDF", FileFormat.PDF);
http://www.e-iceblue.com/Introduce/word-for-net-introduce.html