參與某個項(xiàng)目的時候,產(chǎn)品經(jīng)理要求將產(chǎn)品的操作指南生成html頁面的形式直接以鏈接的形式在管理后臺中進(jìn)行查看,當(dāng)聽到這個要求時小編是相當(dāng)頭疼啊,產(chǎn)品的操作指南將近百來頁,不可能手動一頁頁做成html頁面的形式吧。所以小編就想有沒有一個工具能直接將doc文檔生成html頁面工具?經(jīng)過查找還真讓小編找到一個工具來將doc文檔生成html頁面。下面將告訴你如何使用這個工具,需要這個工具的同學(xué)可以在文末找到這個工具的下載方式。
1、打開工具文件的目錄,雙擊“doc2help”這個可執(zhí)行文件,彈出如下圖示的操作界面;
2、在工具操作界面上,輸入或者選擇處理文件及輸出目錄,其他選擇默認(rèn)設(shè)置即可,后點(diǎn)擊操作中的“生成html”按鈕會彈出轉(zhuǎn)動的圓圈,表示正在轉(zhuǎn)換,若轉(zhuǎn)換成功最后會彈出提示框提示轉(zhuǎn)換成功。轉(zhuǎn)換成功后打開輸出目錄可以看到如下圖示的文件及文件夾。
3、用瀏覽器打開上圖中的index頁面,可以看到轉(zhuǎn)換后的html頁面,此時html頁面已經(jīng)生成但小編在查看頁面的時候發(fā)現(xiàn)某些頁面生成的章節(jié)存在問題,變?yōu)槿缦聢D示的內(nèi)容;
4、出現(xiàn)上面的問題就有點(diǎn)尷尬了,難道又要手動來改這些html嗎?小編又重新生成了一遍html頁面,打開發(fā)現(xiàn)換成其他地方出問題了,小編有重新生成了幾次發(fā)現(xiàn)出現(xiàn)問題的地方是隨機(jī)的,發(fā)現(xiàn)這一個規(guī)律后小編有了一個解決此問題的思路:利用對比工具對比兩次生成的內(nèi)容,不一樣的地方肯定會有一個是正常了,用正常的覆蓋錯誤的之后就可以解決此問題了;所以打開對比工具,按文件夾對比方式對比,如下圖示:
5、選擇兩次生成html文件夾,最后按“OK”按鈕進(jìn)行對比,對比結(jié)果如下圖示:
6、雙擊對比的頁面,彈出文件內(nèi)容對比結(jié)果(注意左上角要選擇展示不相等的符號按鈕):
7、在正確的窗口中全選(按Ctrl+A鍵)后點(diǎn)擊鼠標(biāo)右鍵,在彈出菜單中點(diǎn)擊“Copy to Other Side”將正確的頁面內(nèi)容拷貝到另外一側(cè)錯誤的頁面中:
8、拷貝完成后在原錯誤的頁面中保存(按Ctrl+S鍵)保存正確的內(nèi)容:
9、正確保存后對比內(nèi)容不相同的地方為空,表示兩個頁面內(nèi)容都一樣了:
10、按照上次的方式反復(fù)操作直至所有頁面內(nèi)容均一致,此時再打開生成的頁面,沒有發(fā)現(xiàn)html頁面還有問題了,至此完成了doc文檔生成html頁面。
上面介紹了如何使用工具完成doc文檔生成html頁面的步驟,由于小編用的是破解版的工具,生成html頁面的時候存在隨機(jī)錯誤,所以小編增加了一個對比工具解決這些隨機(jī)錯誤。需要獲此這些工具的同學(xué)可以關(guān)注我們的微信公眾號,回復(fù)“doc生成html工具”獲取doc生成html工具包的下載地址。
歡迎大家關(guān)注我們同名微信公眾號“麻辣軟硬件(微信號:VOSDeveloper)”,一起交流技術(shù)相關(guān)話題!關(guān)注方法:進(jìn)入微信“添加朋友”,點(diǎn)擊“公眾號”,在搜索框輸入“麻辣軟硬件”或者“VOSDeveloper”即可點(diǎn)擊關(guān)注啦!
.NET的SelectPdf Html到Pdf轉(zhuǎn)換器-社區(qū)版是.NET的SelectPdf庫中提供的功能強(qiáng)大的html到pdf轉(zhuǎn)換器的免費(fèi)版本。
轉(zhuǎn)換器提供了許多強(qiáng)大的選項(xiàng)(將任何網(wǎng)頁轉(zhuǎn)換為pdf,將任何html字符串轉(zhuǎn)換為pdf,html5 / css3 / javascript支持,頁眉和頁腳支持等),唯一的限制是它最多可以生成pdf文檔。5頁長。
.NET的免費(fèi)HTML至Pdf轉(zhuǎn)換器–社區(qū)版功能:最多生成5頁pdf文檔,將任何網(wǎng)頁轉(zhuǎn)換為pdf,將任何原始html字符串轉(zhuǎn)換為pdf,設(shè)置pdf頁面設(shè)置(頁面大小,頁面方向,頁面邊距) ,在轉(zhuǎn)換過程中調(diào)整內(nèi)容大小以適合pdf頁面,設(shè)置pdf文檔屬性,設(shè)置pdf查看器首選項(xiàng),設(shè)置pdf安全性(密碼,權(quán)限),設(shè)置轉(zhuǎn)換延遲和網(wǎng)頁導(dǎo)航超時,自定義頁眉和頁腳,在頁眉中支持html和頁腳,自動和手動分頁符,在每個頁面上重復(fù)html表頭,支持@media類型屏幕和打印,支持內(nèi)部和外部鏈接,基于html元素自動生成書簽,支持HTTP標(biāo)頭,支持HTTP cookie,支持需要身份驗(yàn)證的網(wǎng)頁,支持代理服務(wù)器,啟用/禁用javascript,修改顏色空間,多線程支持,HTML5 / CSS3支持,Web字體支持等等。
1、nuget 引用
Install-Package Select.HtmlToPdf
2、方法
using SelectPdf;
using System.Collections.Specialized;
using System.IO;
using System.Web;
namespace BQoolCommon.Helpers.File
{
public class WebToPdf
{
public WebToPdf()
{
//SelectPdf.GlobalProperties.LicenseKey = "your-license-key";
}
/// <summary>
/// 將 Html 轉(zhuǎn)成 PDF,並儲存成檔案
/// </summary>
/// <param name="html">html</param>
/// <param name="fileName">絕對路徑</param>
public void SaveToFileByHtml(string html, string fileName)
{
var doc = SetPdfDocument(html);
doc.Save(fileName);
}
/// <summary>
/// 傳入 Url 轉(zhuǎn)成 PDF,並儲存成檔案
/// </summary>
/// <param name="url">url</param>
/// <param name="fileName">絕對路徑</param>
/// <param name="httpCookies">Cookies</param>
public void SaveToFileByUrl(string url, string fileName, NameValueCollection httpCookies)
{
var doc = SetPdfDocument(url, httpCookies);
doc.Save(fileName);
}
/// <summary>
/// 將 Html 轉(zhuǎn)成 PDF,並輸出成 byte[] 格式
/// </summary>
/// <param name="html">html</param>
/// <returns></returns>
public byte[] GetFileByteByHtml(string html)
{
var doc = SetPdfDocument(html);
return doc.Save();
}
/// <summary>
/// 傳入 Url 轉(zhuǎn)成 PDF,並輸出成 byte[] 格式
/// </summary>
/// <param name="url">url</param>
/// <param name="httpCookies">Cookies</param>
/// <returns></returns>
public byte[] GetFileByteByUrl(string url, NameValueCollection httpCookies)
{
var doc = SetPdfDocument(url, httpCookies);
return doc.Save();
}
/// <summary>
/// 將 Html 轉(zhuǎn)成 PDF,並輸出成 Stream 格式
/// </summary>
/// <param name="html">html</param>
/// <returns></returns>
public Stream GetFileStreamByHtml(string html)
{
var doc = SetPdfDocument(html);
var pdfStream = new MemoryStream();
doc.Save(pdfStream);
pdfStream.Position = 0;
return pdfStream;
}
/// <summary>
/// 傳入 Url 轉(zhuǎn)成 PDF,並輸出成 Stream 格式
/// </summary>
/// <param name="html">html</param>
/// <returns></returns>
public Stream GetFileStreamByUrl(string url, NameValueCollection httpCookies)
{
var doc = SetPdfDocument(url, httpCookies);
var pdfStream = new MemoryStream();
doc.Save(pdfStream);
pdfStream.Position = 0;
return pdfStream;
}
private PdfDocument SetPdfDocument(string html)
{
var converter = new HtmlToPdf();
converter.Options.WebPageWidth = 1200;
html = HttpUtility.HtmlDecode(html);
return converter.ConvertHtmlString(html);
}
private PdfDocument SetPdfDocument(string url, NameValueCollection httpCookies)
{
var converter = new HtmlToPdf();
converter.Options.WebPageWidth = 1200;
if (httpCookies != && httpCookies.Count != 0)
{
converter.Options.HttpCookies.Add(httpCookies);
}
return converter.ConvertUrl(url);
}
}
}
3、調(diào)用
/// <summary>
/// 下載pdf
/// </summary>
public void Downpdf(string data)
{
var stream = new BQoolCommon.Helpers.File.WebToPdf().GetFileStreamByHtml(Gethtml(data));
Response.Clear();
//二進(jìn)制流數(shù)據(jù)(如常見的文件下載)
Response.ContentType = "application/octet-stream";
//通知瀏覽器下載文件而不是打開
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode("Profit and Loss Statement.pdf", System.Text.Encoding.UTF8));
var bytes = StreamToBytes(stream);
Response.BinaryWrite(bytes);
Response.Flush();
stream.Close();
stream.Dispose();
Response.End();
}
那么如何獲取指定頁面的html 呢 傳入對應(yīng)的model 獲得指定動態(tài)的html
private string Gethtml(string data)
{
string str = "";
str = this.ControllerContext.RenderViewToString("ProfitDetails", data);
return str;
}
using BQoolCommon.Helpers.Format;
using Newtonsoft.Json;
using OrdersManager.Models.ViewModel.Report;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace OrdersManager.Web.Infrastructure
{
public static class HelperExtensions
{
public static string RenderViewToString(this ControllerContext context, string viewName, string data)
{
if (string.IsOrEmpty(viewName))
viewName = context.RouteData.GetRequiredString("action");
context.Controller.ViewData.Model = JsonConvert.DeserializeObject<ProfitDetailsmodel>(StringTools.Base64Decode(StringTools.Base64Decode(data)));
using (var sw = new StringWriter())
{
ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(context, viewName);
var viewContext = new ViewContext(context,
viewResult.View,
context.Controller.ViewData,
context.Controller.TempData,
sw);
try
{
viewResult.View.Render(viewContext, sw);
}
catch (Exception ex)
{
throw;
}
return sw.GetStringBuilder().ToString();
}
}
}
}
https://www.nuget.org/packages/Select.HtmlToPdf/
家好!你是否曾為HTML格式的文件無法在Word中打開而徹夜難眠?今天,我將為大家分享一個無所不能的“超強(qiáng)HTML轉(zhuǎn)Word轉(zhuǎn)換器”,讓你輕松將HTML文件轉(zhuǎn)換為Word格式!
一、HTML轉(zhuǎn)Word工具是什么?
HTML轉(zhuǎn)Word工具是一種應(yīng)用程序或在線服務(wù),用于將HTML網(wǎng)頁或文檔轉(zhuǎn)換為Microsoft Word格式(.doc或.docx),以便于編輯、共享和打印,并保持原始樣式和格式的完整性。
二、HTML轉(zhuǎn)Word工具怎么用?
打開半文魚新標(biāo)簽頁,點(diǎn)擊添加小組件,在組件庫中搜索“HTML轉(zhuǎn)Word”,立即獲取這個免費(fèi)版在線神器!
1、點(diǎn)擊添加文件,然后從你的電腦中找到你要轉(zhuǎn)換的HTML文件,然后從你的電腦中找到你要轉(zhuǎn)換的HTML文件~?
2、文件上傳完畢后,點(diǎn)擊“開始處理”按鈕,等待文件轉(zhuǎn)換即可。你也可以繼續(xù)添加文件一起處理。
3、網(wǎng)頁轉(zhuǎn)換完畢后,文件后方的“等待處理”字樣會變成“處理成功”,此時只需要點(diǎn)擊右下角的打包下載就可以啦。左下角還可以看到本次的處理時間哦~
4、打包下載成功后,界面上會提示你“文件下載成功”。你可以在設(shè)定的輸出文件夾中找到轉(zhuǎn)換后的Word文件。
在線HTML網(wǎng)頁格式轉(zhuǎn)Word文檔,能最大限度的保留網(wǎng)頁中的樣式和鏈接。支持最大10個文件批量轉(zhuǎn)換,不妨來半文魚工具大全試試吧!
*請認(rèn)真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。