DocumentConvert.cs 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. using Aspose.Words;
  2. using System.IO;
  3. using System.Threading.Tasks;
  4. namespace Masuit.MyBlogs.Core.Common
  5. {
  6. /// <summary>
  7. /// 文档转换操作
  8. /// </summary>
  9. public static class DocumentConvert
  10. {
  11. static DocumentConvert()
  12. {
  13. // AsposeLicense.ActivateMemoryPatching();
  14. }
  15. #region doc转html
  16. /// <summary>
  17. /// doc转html
  18. /// </summary>
  19. /// <param name="docPath">doc文件路径</param>
  20. /// <param name="htmlDir">生成的html所在目录,由于生成html后会将图片都放到同级的目录下,所以用文件夹保存,默认的html文件名为index.html</param>
  21. /// <param name="index">默认文档名为index.html</param>
  22. public static void Doc2Html(string docPath, string htmlDir, string index = "index.html")
  23. {
  24. Document doc = new Document(docPath);
  25. doc.Save(Path.Combine(htmlDir, index), SaveFormat.Html);
  26. }
  27. /// <summary>
  28. /// doc转html
  29. /// </summary>
  30. /// <param name="docPath">doc文件路径</param>
  31. /// <param name="htmlDir">生成的html所在目录,由于生成html后会将图片都放到同级的目录下,所以用文件夹保存,默认的html文件名为index.html</param>
  32. /// <param name="index">默认文档名为index.html</param>
  33. public static void Doc2HtmlAsync(string docPath, string htmlDir, string index = "index.html")
  34. {
  35. Document doc = new Document(docPath);
  36. Task.Run(() => doc.Save(Path.Combine(htmlDir, index), SaveFormat.Html));
  37. }
  38. #endregion doc转html
  39. #region doc转pdf
  40. /// <summary>
  41. /// doc转pdf
  42. /// </summary>
  43. /// <param name="docPath">doc源文件</param>
  44. /// <param name="pdfPath">目标pdf文件</param>
  45. /// <param name="paperSize">纸张大小</param>
  46. /// <param name="leftMargin">左边距</param>
  47. /// <param name="rightMargin">右边距</param>
  48. /// <param name="topMargin">上边距</param>
  49. /// <param name="bottomMargin">下边距</param>
  50. public static void Doc2Pdf(string docPath, string pdfPath, PaperSize paperSize = PaperSize.A4, double leftMargin = 20, double rightMargin = 20, double topMargin = 20, double bottomMargin = 20)
  51. {
  52. Document doc = new Document(docPath);
  53. PageSetup pageSetup = new DocumentBuilder(doc).PageSetup;
  54. pageSetup.PaperSize = paperSize;
  55. pageSetup.LeftMargin = leftMargin;
  56. pageSetup.RightMargin = rightMargin;
  57. pageSetup.TopMargin = topMargin;
  58. pageSetup.BottomMargin = bottomMargin;
  59. doc.Save(pdfPath, SaveFormat.Pdf);
  60. }
  61. /// <summary>
  62. /// doc转pdf
  63. /// </summary>
  64. /// <param name="docPath">doc源文件</param>
  65. /// <param name="pdfPath">目标pdf文件</param>
  66. /// <param name="paperSize">纸张大小</param>
  67. /// <param name="leftMargin">左边距</param>
  68. /// <param name="rightMargin">右边距</param>
  69. /// <param name="topMargin">上边距</param>
  70. /// <param name="bottomMargin">下边距</param>
  71. public static void Doc2PdfAsync(string docPath, string pdfPath, PaperSize paperSize = PaperSize.A4, double leftMargin = 20, double rightMargin = 20, double topMargin = 20, double bottomMargin = 20)
  72. {
  73. Document doc = new Document(docPath);
  74. PageSetup pageSetup = new DocumentBuilder(doc).PageSetup;
  75. pageSetup.PaperSize = paperSize;
  76. pageSetup.LeftMargin = leftMargin;
  77. pageSetup.RightMargin = rightMargin;
  78. pageSetup.TopMargin = topMargin;
  79. pageSetup.BottomMargin = bottomMargin;
  80. Task.Run(() => doc.Save(pdfPath, SaveFormat.Pdf));
  81. }
  82. #endregion doc转pdf
  83. #region html转Word
  84. /// <summary>
  85. /// html转Word
  86. /// </summary>
  87. /// <param name="htmlPath">html源文件</param>
  88. /// <param name="docPath">目标doc文件</param>
  89. /// <param name="paperSize">纸张大小,默认A4纸</param>
  90. /// <param name="leftMargin">左边距,默认10</param>
  91. /// <param name="rightMargin">右边距,默认10</param>
  92. /// <param name="topMargin">上边距,默认10</param>
  93. /// <param name="bottomMargin">下边距,默认10</param>
  94. public static void Html2Word(string htmlPath, string docPath, PaperSize paperSize = PaperSize.A4, double leftMargin = 20, double rightMargin = 20, double topMargin = 20, double bottomMargin = 20)
  95. {
  96. Document doc = new Document(htmlPath);
  97. PageSetup pageSetup = new DocumentBuilder(doc).PageSetup;
  98. pageSetup.PaperSize = paperSize;
  99. pageSetup.LeftMargin = leftMargin;
  100. pageSetup.RightMargin = rightMargin;
  101. pageSetup.TopMargin = topMargin;
  102. pageSetup.BottomMargin = bottomMargin;
  103. doc.Save(docPath, SaveFormat.Doc);
  104. }
  105. /// <summary>
  106. /// html转Word
  107. /// </summary>
  108. /// <param name="htmlPath">html源文件</param>
  109. /// <param name="docPath">目标doc文件</param>
  110. /// <param name="paperSize">纸张大小,默认A4纸</param>
  111. /// <param name="leftMargin">左边距,默认10</param>
  112. /// <param name="rightMargin">右边距,默认10</param>
  113. /// <param name="topMargin">上边距,默认10</param>
  114. /// <param name="bottomMargin">下边距,默认10</param>
  115. public static void Html2WordAsync(string htmlPath, string docPath, PaperSize paperSize = PaperSize.A4, double leftMargin = 20, double rightMargin = 20, double topMargin = 20, double bottomMargin = 20)
  116. {
  117. Document doc = new Document(htmlPath);
  118. PageSetup pageSetup = new DocumentBuilder(doc).PageSetup;
  119. pageSetup.PaperSize = paperSize;
  120. pageSetup.LeftMargin = leftMargin;
  121. pageSetup.RightMargin = rightMargin;
  122. pageSetup.TopMargin = topMargin;
  123. pageSetup.BottomMargin = bottomMargin;
  124. Task.Run(() => doc.Save(docPath, SaveFormat.Doc));
  125. }
  126. #endregion html转Word
  127. }
  128. }