| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- using Aspose.Words;
- using System.IO;
- using System.Threading.Tasks;
- namespace Masuit.MyBlogs.Core.Common
- {
- /// <summary>
- /// 文档转换操作
- /// </summary>
- public static class DocumentConvert
- {
- static DocumentConvert()
- {
- // AsposeLicense.ActivateMemoryPatching();
- }
- #region doc转html
- /// <summary>
- /// doc转html
- /// </summary>
- /// <param name="docPath">doc文件路径</param>
- /// <param name="htmlDir">生成的html所在目录,由于生成html后会将图片都放到同级的目录下,所以用文件夹保存,默认的html文件名为index.html</param>
- /// <param name="index">默认文档名为index.html</param>
- public static void Doc2Html(string docPath, string htmlDir, string index = "index.html")
- {
- Document doc = new Document(docPath);
- doc.Save(Path.Combine(htmlDir, index), SaveFormat.Html);
- }
- /// <summary>
- /// doc转html
- /// </summary>
- /// <param name="docPath">doc文件路径</param>
- /// <param name="htmlDir">生成的html所在目录,由于生成html后会将图片都放到同级的目录下,所以用文件夹保存,默认的html文件名为index.html</param>
- /// <param name="index">默认文档名为index.html</param>
- public static void Doc2HtmlAsync(string docPath, string htmlDir, string index = "index.html")
- {
- Document doc = new Document(docPath);
- Task.Run(() => doc.Save(Path.Combine(htmlDir, index), SaveFormat.Html));
- }
- #endregion doc转html
- #region doc转pdf
- /// <summary>
- /// doc转pdf
- /// </summary>
- /// <param name="docPath">doc源文件</param>
- /// <param name="pdfPath">目标pdf文件</param>
- /// <param name="paperSize">纸张大小</param>
- /// <param name="leftMargin">左边距</param>
- /// <param name="rightMargin">右边距</param>
- /// <param name="topMargin">上边距</param>
- /// <param name="bottomMargin">下边距</param>
- public static void Doc2Pdf(string docPath, string pdfPath, PaperSize paperSize = PaperSize.A4, double leftMargin = 20, double rightMargin = 20, double topMargin = 20, double bottomMargin = 20)
- {
- Document doc = new Document(docPath);
- PageSetup pageSetup = new DocumentBuilder(doc).PageSetup;
- pageSetup.PaperSize = paperSize;
- pageSetup.LeftMargin = leftMargin;
- pageSetup.RightMargin = rightMargin;
- pageSetup.TopMargin = topMargin;
- pageSetup.BottomMargin = bottomMargin;
- doc.Save(pdfPath, SaveFormat.Pdf);
- }
- /// <summary>
- /// doc转pdf
- /// </summary>
- /// <param name="docPath">doc源文件</param>
- /// <param name="pdfPath">目标pdf文件</param>
- /// <param name="paperSize">纸张大小</param>
- /// <param name="leftMargin">左边距</param>
- /// <param name="rightMargin">右边距</param>
- /// <param name="topMargin">上边距</param>
- /// <param name="bottomMargin">下边距</param>
- public static void Doc2PdfAsync(string docPath, string pdfPath, PaperSize paperSize = PaperSize.A4, double leftMargin = 20, double rightMargin = 20, double topMargin = 20, double bottomMargin = 20)
- {
- Document doc = new Document(docPath);
- PageSetup pageSetup = new DocumentBuilder(doc).PageSetup;
- pageSetup.PaperSize = paperSize;
- pageSetup.LeftMargin = leftMargin;
- pageSetup.RightMargin = rightMargin;
- pageSetup.TopMargin = topMargin;
- pageSetup.BottomMargin = bottomMargin;
- Task.Run(() => doc.Save(pdfPath, SaveFormat.Pdf));
- }
- #endregion doc转pdf
- #region html转Word
- /// <summary>
- /// html转Word
- /// </summary>
- /// <param name="htmlPath">html源文件</param>
- /// <param name="docPath">目标doc文件</param>
- /// <param name="paperSize">纸张大小,默认A4纸</param>
- /// <param name="leftMargin">左边距,默认10</param>
- /// <param name="rightMargin">右边距,默认10</param>
- /// <param name="topMargin">上边距,默认10</param>
- /// <param name="bottomMargin">下边距,默认10</param>
- public static void Html2Word(string htmlPath, string docPath, PaperSize paperSize = PaperSize.A4, double leftMargin = 20, double rightMargin = 20, double topMargin = 20, double bottomMargin = 20)
- {
- Document doc = new Document(htmlPath);
- PageSetup pageSetup = new DocumentBuilder(doc).PageSetup;
- pageSetup.PaperSize = paperSize;
- pageSetup.LeftMargin = leftMargin;
- pageSetup.RightMargin = rightMargin;
- pageSetup.TopMargin = topMargin;
- pageSetup.BottomMargin = bottomMargin;
- doc.Save(docPath, SaveFormat.Doc);
- }
- /// <summary>
- /// html转Word
- /// </summary>
- /// <param name="htmlPath">html源文件</param>
- /// <param name="docPath">目标doc文件</param>
- /// <param name="paperSize">纸张大小,默认A4纸</param>
- /// <param name="leftMargin">左边距,默认10</param>
- /// <param name="rightMargin">右边距,默认10</param>
- /// <param name="topMargin">上边距,默认10</param>
- /// <param name="bottomMargin">下边距,默认10</param>
- public static void Html2WordAsync(string htmlPath, string docPath, PaperSize paperSize = PaperSize.A4, double leftMargin = 20, double rightMargin = 20, double topMargin = 20, double bottomMargin = 20)
- {
- Document doc = new Document(htmlPath);
- PageSetup pageSetup = new DocumentBuilder(doc).PageSetup;
- pageSetup.PaperSize = paperSize;
- pageSetup.LeftMargin = leftMargin;
- pageSetup.RightMargin = rightMargin;
- pageSetup.TopMargin = topMargin;
- pageSetup.BottomMargin = bottomMargin;
- Task.Run(() => doc.Save(docPath, SaveFormat.Doc));
- }
- #endregion html转Word
- }
- }
|