html 轉doc文件
html轉doc的場景可能比較少見,但近期就遇到了一個,例如一份合同,需要後臺不定期修改編輯,儲存後,前端可直接下載doc。如果一份內容需要編輯,我能想到的就只有利用線上編輯器直接編輯html內容了,所以我考慮的就是建一份html模版,後臺可以通過編輯器編輯,儲存也是一份html模版,當前端使用者下載的時候可以將html轉成偽doc檔案,然後再提供下載。
首先需要的是一份html模版,內容隨意,例如:
<h4> 第四條:甲方權利與義務 </h4> <p> 1. 甲方的權利; </p> <p> 2. 均由甲方負責解決。 </p>
編輯部分此處省略,就是讀出模版內容放到線上編輯器修改儲存。
這裡只需要模版的html內容,不需要html head等標籤。
接下來就是利用php來生成doc檔案並下載。先獲取到模版內容,然後將內容包含到預設的html內,此html標籤宣告的是doc檔案:
<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"> <head> <meta http-equiv=Content-Type content="text/html; charset=gb2312"> </head> <body> <!--此處用於替換成模版內容--> {=tpl_content=} </body> </html>
設定好兩個模版檔案後,就可以提供下載操作了:
$tpl_content = file_get_contents('html.tpl'); $doc_tpl = 'doc.tpl';//此處為doc預設部分,儲存在檔案或者直接寫在程式都可以。 $content = str_replace('{=tpl_content=}', $tpl_content, $doc_tpl); $content = iconv('UTF-8', 'GB2312//IGNORE', $content);//轉換成gb2312格式 //宣告頭部下載 header('Content-type:application/word'); header('Content-Disposition: attachment; filename=download.doc'); echo $content; exit;
這樣,一份簡單的word檔案就算是生成了,此方法html轉word會有很多限制,複雜的word排版相容性非常差,例如現在有個需要,在文件內容中加入一張浮在文字上面的圖片,你可以認為是公司的蓋章(png格式),蓋在公司名稱上面那種。如果你單純寫成html的情況,可以將圖片定位到對應位置,但經上面的方法下載回來的doc裡面,圖片就沒有了浮在上面的效果了。
此處,我使用了一種很笨的方法,就是生成一份word,下載回來後。由於是偽word文件,可以直接用編輯器開啟檔案直接編輯裡面的html內容的。
利用microsoft office 開啟這份文件,在文件內將圖片設定成浮於文字上面,然後移動到你合適的位置,也就是直接在office裡面直接編輯內容,完成效果,然後儲存。此時,你再用編輯器開啟doc檔案檢視裡面的內容,你會發覺doc裡面的標籤被office軟體重寫了,加了很多我看不懂的標籤樣式等,圖片那裡也做了處理,這些應該就是office裡面認可的編碼方式了。既然這樣,我可以抽出img處理的那部分及一些設定好的標籤等資料。保留到doc.tpl內,就可以實現我想要的效果了。
例如,office編輯後儲存的doc開啟,img部分會處理成這樣:
<!--[if gte vml 1]><v:shapetype id="_x0000_t75" coordsize="21600,21600"
o:spt="75" o:preferrelative="t" path="[email protected]@[email protected]@[email protected]@[email protected]@5xe" filled="f"
stroked="f">
<v:stroke joinstyle="miter"/>
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0"/>
<v:f eqn="sum @0 1 0"/>
<v:f eqn="sum 0 0 @1"/>
<v:f eqn="prod @2 1 2"/>
<v:f eqn="prod @3 21600 pixelWidth"/>
<v:f eqn="prod @3 21600 pixelHeight"/>
<v:f eqn="sum @0 0 1"/>
<v:f eqn="prod @6 1 2"/>
<v:f eqn="prod @7 21600 pixelWidth"/>
<v:f eqn="sum @8 21600 0"/>
<v:f eqn="prod @7 21600 pixelHeight"/>
<v:f eqn="sum @10 21600 0"/>
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
<o:lock v:ext="edit" aspectratio="t"/>
</v:shapetype><v:shape id="圖片_x0020_1" o:spid="_x0000_s1027" type="#_x0000_t75"
alt="http://xxx.com/zhang.png" style='position:absolute;
margin-left:94.35pt;margin-top:20.35pt;width:91.1pt;height:91.1pt;z-index:1;
visibility:visible;mso-wrap-style:square;mso-wrap-distance-left:9pt;
mso-wrap-distance-top:0;mso-wrap-distance-right:9pt;
mso-wrap-distance-bottom:0;mso-position-horizontal:absolute;
mso-position-horizontal-relative:text;mso-position-vertical:absolute;
mso-position-vertical-relative:text'>
<v:imagedata src="http://xxx.com/zhang.png"/>
</v:shape><![endif]--><![if !vml]><span style='mso-ignore:vglayout;position:
absolute;z-index:1;margin-left:126px;margin-top:27px;width:121px;height:121px'><img
width=121 height=121 src="http://xxx.com/zhang.png"
alt="http://xxx.com/zhang.png" v:shapes="圖片_x0020_1"></span><![endif]>(以下無正文)
此處我的章就是蓋在無正文下面的文字中,上面的程式碼也大概能夠理解是什麼意思,除了這部分及樣式,頭部資訊被修改後,html模版裡面的標籤內容,大部分一致,也可以完全一致不影響效果。
還有一個地方需要注意的是,利用wps開啟doc編輯完成上面效果後,儲存再重新開啟,圖片浮於文字上的效果就不見了,也就是實現不了,只有在microsoft office裡面編輯儲存才有效果。wps還有待完善啊。
此處只做一下實現過程的記錄,不深入研究。
相關推薦
html 轉doc文件
html轉doc的場景可能比較少見,但近期就遇到了一個,例如一份合同,需要後臺不定期修改編輯,儲存後,前端可直接下載doc。如果一份內容需要編輯,我能想到的就只有利用線上編輯器直接編輯html內容了,所以我考慮的就是建一份html模版,後臺可以通過編輯器編輯,儲存也是一份h
史上最強php生成pdf文件,html轉pdf文件方法
是不是 下載地址 註意 pdflib min views 開發者 lan 輸入 之前有個客戶需要把一些html頁面生成pdf文件,然後我就找一些用php把html頁面圍成pdf文件的類。方法是可謂是找了很多很多,什麽html2pdf,pdflib,FPDF這些都試過了,但是
使用java將html原始碼(拼裝、可獲取頁面原始碼)轉換成為("html頁面",“doc文件檔案”,“pdf格式”),,doc檔案轉換成為pdf,,檔案的刪除、壓縮...
目錄: 1、轉換成為html頁面 2、html原始碼轉換成為doc檔案 3、html原始碼轉換成為pdf檔案 4、壓縮多個檔案成為一個zip檔案
轉wave 文件解析
chan col logs add gin mem lock fprintf rsa 轉 1 WAVE 文件格式分析 WAVE 文件作為多媒體中使用的聲音波形文件格式之一,它是以RIFF(Resource Interchange File Format)格式為標準的。每
導入轉儲文件的時候:Error Code: 1406. Data too long for column - MySQL
some sql_mod ict and query long switch oba -m MySQL will truncate any insert value that exceeds the specified column width. to make this
EditPlus設置html和js文件的註釋快捷鍵
一個 script 新的 mage scrip src edi 重新 避免 EditPlus默認是可以通過快捷鍵註釋html的,格式是 <!-- </label> <label>類型</label>
用到了base64轉圖片文件的函數,記錄一下
base64 圖片 import java.io.*; import sun.misc.*; //對圖片文件進行Base64編碼 public String getImagebase64(String imgFileName) { byte[] data = null
PDF文件轉CAD文件軟件的選擇
現在我們在做很多事的時候,需要用到工具、軟件之類的進行操作,好點的工具、軟件在使用過程中肯定好用些,所以我們在選擇操作工具時選擇一款好用的,這樣會讓工作很快捷完成,用起來也會得心順手。PDF文件轉CAD文件格式時,我們也需要選擇一款好點的軟件,那麽我們應該什麽選擇呢? 在選擇PDF轉CAD轉換器時我們應
PDF文件轉CAD文件格式過程
PDF作為不可二次編輯的文件,若是想將文件修改,我們需要將PDF文件轉換為CAD文件,PDF文件轉換CAD文件有很多的方式,我們怎麽操作最簡單的方法呢,很多時候事情復雜了很容易出錯,簡單快捷的方式會讓人一目了然,下面就為大家介紹怎麽簡單將PDF文件轉換為CAD文件。 小編為大家推薦的是迅捷PDF轉CAD
【轉】文件各種上傳,離不開的表單
dal 不變 沒有 each post str 線程 order bmi 閱讀目錄 利用表單實現文件上傳 表單異步上傳(jquery.form插件) 模擬表單數據上傳(FormData) 分片上傳 使用HTML5 拖拽、粘貼上傳 上傳插件(WebUploader
網頁靜態動態的區分,js/doc文件獲取
16px log 市場 statement txt 紅色 ont 本地 代碼 靜態頁面查看源代碼 url:http://www.shfe.com.cn/products/cu/ 目標內容:紅色框中部分 將網頁源代碼復制到本地txt,用瀏覽器打開 結果:合約信息,國
系統藍屏獲取內存轉儲文件
ndb 圖片 load b2c microsoft width www. this 系統 如果系統出現頻繁的藍屏和重啟,則需要註意了,這個時候分析藍屏原因就需要崩潰當時的內存轉儲文件。 首先當然是要配置好轉儲文件。 (1)WIN+R 輸入sysdm.cpl打開系統
【轉】文件下載之斷點續傳(客戶端與服務端的實現)
http協議 當前時間 end box [] ada demo 服務端 sem 【轉】文件下載之斷點續傳(客戶端與服務端的實現) 【轉】文件下載之斷點續傳(客戶端與服務端的實現) 前面講了文件的上傳,今天來聊聊文件的下載。 老規矩,還是從最簡單粗暴的開始。那麽多簡單算簡單
.py文件轉.exe文件 (轉載並減掉很多)
ioe setup spa 命令 就是 mes 下載地址 install man 首先下載pyinstaller 下載地址:http://www.pyinstaller.org/downloads.html 我的是windows操作系統,所以我選擇了支持3.6版本的zip格
[轉] 配置文件解析利器-Config庫
boa test com tail with pri 配置 itl alt [From] https://blog.csdn.net/zero__007/article/details/51493851 Typesafe的Config庫,純Java寫成、零外部依賴、代
html,css,js,文件管理上傳
play += orm 系統 cli ESS quest splay content 實現效果如圖: 實現代碼如下: <!DOCTYPE html><html> <head> <meta charset="utf-8" />
免費提取百度文庫 doc 文件
ont str 福利 文檔 image soft 其他 alt gin 首先說明,今天要推薦的這款軟件,不能不能不能免費提取百度文庫裏 PDF 格式的文件。 對於其他的格式,無論收費與否都能免費提取。 只是口頭說說免不了耍流氓的嫌疑,舉栗如下: 百度文庫裏《喜迎黨的十九大知
Web開發——HTML基礎(文件和網站結構)
情況 擁有 navig extern 主動 value 基本 query 搜索引擎優化 參考:https://developer.mozilla.org/en-US/docs/Learn/HTML/Introduction_to_HTML/Document_and_we
指定html轉pdf文檔
.com data com change creat one his cat div 1.資源 <script type="text/javascript" src="./js/canvg2.js"></script> <script
推薦一個yaml文件轉json文件的在線工具
spec container href cimage containe node img class 類比 YAML的全稱是YAML Ain’t Markup Language,是一種簡潔的非標記語言,以數據為中心,使用空白,縮進,和分行組織數據,從而使得表示更加簡潔易讀。