查看: 1848|回复: 0

[.NET源码] C# Word转PDF/HTML/XML/XPS/SVG/EMF/EPUB/TIFF

发表于 2018-3-5 08:00:00

一款有着强大的文档转换功能的工具,无论何时何地都会是现代办公环境极为需要的。在本篇文章中,将介绍关于Word文档的转换功能(Word转XPS/SVG/EMF/EPUB/TIFF)。希望方法中的代码能为各位开发者们提供一定的参考价值。

使用工具:Free Spire.Doc for .NET(社区版)
使用方法:下载安装该控件后,在VS控制台应用程序中添加引用Spire.Doc.dll文件(dll文件可在该安装文件夹下Bin中获取)

1.Word转PDF/HTML/XML
  1. using Spire.Doc;
  2. namespace Doc2PDF
  3. {
  4. class Program
  5. {
  6. static void Main(string[] args)
  7. {
  8. //创建一个Document类对象,并加载Word文档
  9. Document document = new Document();
  10. document.LoadFromFile(@"C:\Users\Administrator\Desktop\Test.docx");
  11. //调用方法SaveToFile()将Word转为PDF、HTML和XML
  12. document.SaveToFile("Test.PDF", FileFormat.PDF);
  13. document.SaveToFile("Test.html", FileFormat.Html);
  14. document.SaveToFile("Test.xml", FileFormat.Xml);
  15. //运行生成的文档
  16. System.Diagnostics.Process.Start("Test.PDF");
  17. System.Diagnostics.Process.Start("Test.html");
  18. System.Diagnostics.Process.Start("Test.xml");
  19. }
  20. }
  21. }
复制代码

C# Word转PDF/HTML/XML/XPS/SVG/EMF/EPUB/TIFF

2.Word转XPS
  1. using Spire.Doc;
  2. using System;
  3. namespace WordtoXPS_Doc
  4. {
  5. class Program
  6. {
  7. static void Main(string[] args)
  8. {
  9. //初始化String类,元素为需要转换的Word文档
  10. String file = "sample.docx";
  11. //创建一个Document类对象,加载sample文件
  12. Document doc = new Document(file);
  13. //将Word文件保存为XPS,并运行生成的文档
  14. doc.SaveToFile("Word2XPS.xps", FileFormat.XPS);
  15. System.Diagnostics.Process.Start("Word2XPS.xps");
  16. }
  17. }
  18. }
复制代码

调试运行该项目生成文档,如下图:
C# Word转PDF/HTML/XML/XPS/SVG/EMF/EPUB/TIFF

3.Word转SVG
  1. using Spire.Doc;
  2. namespace WordtoSVG_Doc
  3. {
  4. class Program
  5. {
  6. static void Main(string[] args)
  7. {
  8. //实例化Document类,并加载Word sample
  9. Document doc = new Document();
  10. doc.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.docx");
  11. //保存为svg格式
  12. doc.SaveToFile("result.svg", FileFormat.SVG);
  13. }
  14. }
  15. }
复制代码

C# Word转PDF/HTML/XML/XPS/SVG/EMF/EPUB/TIFF

4. Word转Emf
  1. using Spire.Doc;
  2. using System.Drawing;
  3. using System.Drawing.Imaging;
  4. namespace WordtoEmf_Doc
  5. {
  6. class Program
  7. {
  8. static void Main(string[] args)
  9. {
  10. //实例化一个Document类,并加载Word sample
  11. Document doc = new Document();
  12. doc.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.docx", FileFormat.Docx);
  13. //调用方法 SaveToImages()将Word第一页转为image并保存为Emf格式
  14. System.Drawing.Image image = doc.SaveToImages(0, Spire.Doc.Documents.ImageType.Metafile);
  15. image.Save("WordtoEmf.emf", ImageFormat.Emf);
  16. }
  17. }
  18. }
复制代码

C# Word转PDF/HTML/XML/XPS/SVG/EMF/EPUB/TIFF

5. Word转Epub
  1. using Spire.Doc;
  2. namespace WordtoEPUB
  3. {
  4. class Epub
  5. {
  6. static void Main(string[] args)
  7. {
  8. //实例化Document类,并加载Word sample
  9. Document document = new Document();
  10. document.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.docx");
  11. //保存为Epub格式,并运行生成的文档
  12. document.SaveToFile("ToEpub.epub", FileFormat.EPub);
  13. System.Diagnostics.Process.Start("ToEpub.epub");
  14. }
  15. }
  16. }
复制代码

C# Word转PDF/HTML/XML/XPS/SVG/EMF/EPUB/TIFF

6. Word转Word XML
  1. using Spire.Doc;
  2. namespace WordtoWordXML_Doc
  3. {
  4. class Program
  5. {
  6. static void Main(string[] args)
  7. {
  8. //创建一个Document类对象并加载Word sample
  9. Document doc = new Document();
  10. doc.LoadFromFile("sample.docx");
  11. //调用方法SaveToFile()保存Word为Word Xml
  12. doc.SaveToFile("WordToWordXML.xml", FileFormat.WordXml);
  13. }
  14. }
  15. }
复制代码

C# Word转PDF/HTML/XML/XPS/SVG/EMF/EPUB/TIFF
C# Word转PDF/HTML/XML/XPS/SVG/EMF/EPUB/TIFF

7. Word转Tiff
  1. using Spire.Doc;
  2. using Spire.Doc.Documents;
  3. using System;
  4. using System.Drawing;
  5. using System.Drawing.Imaging;
  6. namespace convert_word_to_tiff
  7. {
  8. class Program
  9. {
  10. static void Main(string[] args)
  11. {
  12. //实例化一个Document类,加载Word sample
  13. Document document = new Document(@"C:\Users\Administrator\Desktop\sample.docx");
  14. //调用方法JoinTiffImages()将Word保存为tiff格式,并运行生成的文档
  15. JoinTiffImages(SaveAsImage(document), "result.tiff", EncoderValue.CompressionLZW);
  16. System.Diagnostics.Process.Start("result.tiff");
  17. }
  18. //自定义方法SaveAsImage()将Word文档保存为图像
  19. private static Image[] SaveAsImage(Document document)
  20. {
  21. Image[] images = document.SaveToImages(ImageType.Bitmap);
  22. return images;
  23. }
  24. private static ImageCodecInfo GetEncoderInfo(string mimeType)
  25. {
  26. ImageCodecInfo[] encoders = ImageCodecInfo.GetImageEncoders();
  27. for (int j = 0; j < encoders.Length; j++)
  28. {
  29. if (encoders[j].MimeType == mimeType)
  30. return encoders[j];
  31. }
  32. throw new Exception(mimeType + " mime type not found in ImageCodecInfo");
  33. }
  34. //自定义方法JoinTiffImages()将Word保存为TIFF图片格式(使用指定编码器和图像编码参数)
  35. public static void JoinTiffImages(Image[] images, string outFile, EncoderValue compressEncoder)
  36. {
  37. System.Drawing.Imaging.Encoder enc = System.Drawing.Imaging.Encoder.SaveFlag;
  38. EncoderParameters ep = new EncoderParameters(2);
  39. ep.Param[0] = new EncoderParameter(enc, (long)EncoderValue.MultiFrame);
  40. ep.Param[1] = new EncoderParameter(System.Drawing.Imaging.Encoder.Compression, (long)compressEncoder);
  41. Image pages = images[0];
  42. int frame = 0;
  43. ImageCodecInfo info = GetEncoderInfo("image/tiff");
  44. foreach (Image img in images)
  45. {
  46. if (frame == 0)
  47. {
  48. pages = img;
  49. pages.Save(outFile, info, ep);
  50. }
  51. else
  52. {
  53. ep.Param[0] = new EncoderParameter(enc, (long)EncoderValue.FrameDimensionPage);
  54. pages.SaveAdd(img, ep);
  55. }
  56. if (frame == images.Length - 1)
  57. {
  58. ep.Param[0] = new EncoderParameter(enc, (long)EncoderValue.Flush);
  59. pages.SaveAdd(ep);
  60. }
  61. frame++;
  62. }
  63. }
  64. }
  65. }
复制代码

C# Word转PDF/HTML/XML/XPS/SVG/EMF/EPUB/TIFF
以上是本次关于Word转成其他格式文件的具体描述,方法中的代码供参考。欢迎转载(转载请注明出处)



回复

使用道具 举报