itext轉PDF,富文字編輯器解決方案

2021-06-23 03:05:34 字數 2622 閱讀 2877

關於itext轉pdf的實現,大家可以看以下位址,如果不涉及富文字,上面的方案是非常棒,而且非常全的。我之前遇到的一些問題,在這個部落格上都找到解決辦法了。

直通車

雖然他部落格上說了一些要注意的,我還是再備註一下,itext轉pdf需要注意的地方:

3.如果你頁面中,有table**,你的table記得在style中加乙個屬性:table-layout:fixed; word-break:break-strict;

4.上面部落格中,說是標籤上面要加乙個dtd,我個人試了下,加跟沒加,沒區別,反正我沒加

5.你的頁面中,可以引入css檔案,可以寫style標籤,但一定要記得,這個必須是放在head裡,不然不能渲染你的樣式。

6.你的標籤屬性,屬性值必須以引號包含,如width="50",如不包含,會報錯。

好了,只相得到這麼多,純手打,有別的問題,也歡迎溝通交流。

說下富文字吧

上面說的幾條,基本上富文字都不會遵守,也就是說,即使你自己寫的html沒有問題,但富文字編輯器插入的html,還是會這樣。

1.富文字不會幫你閉合你的標籤,它只管顯示正常,如

,它會是

更有甚者,比如說tinymce,

2.富文字對於空格或者一些空白,會幫你轉成  這是災難的開始

4.5.

6.這個問題就很嚴重了,說的是ie瀏覽器,它並非所有的屬性值都不用引號包含,但有很多屬性值都會直接width=50這樣,很殘忍(**** ie)(我用的是ie8測的)

7.再說這個問題,也非常扯淡,富文字的內容,在ie上,輸入完成,儲存,儲存時居然被轉成大寫了。

好吧,扯了這麼多,現在說下富文字的解決方案吧。

/**

* @param result

* @return

*/public static string reescapehtml(string result)

/*** 標籤轉小寫,轉完小寫,順便補全引號

* @param temp

* @return

*/public static string tagtolowercaseandcomplete(string temp)

//結束標籤的匹配

final string tagendregx = "";

p = pattern.compile(tagendregx);

matcher = p.matcher(temp);

while (matcher.find())

return temp;

}/**

* 自動補全引號(接上一步的標籤轉小寫)

* @param str

* @return

*/public static string recompletionquoat(string tag)

return tag;

}/**

* width="1024px"|width='1024px'|width:1024px|width:1024px;

* 對於width,上面的example都可以過濾,height與width同樣規則

* 對於width="50%"這樣的,是不過濾的

* @param tag

* @return

*/public static string removetablewidthandheight(string result)

public static string replacestr(string sourcestr, string targetstr, string insertstr)

上面的removetablewidthandheight這個方法我沒有寫全,因為後面富文字貼上,換成了直接貼上純文字。這個方法,也只是在貼上其它地方的富文字,貼到自己的編輯器的時候,會存在問題。

還有沒完善的

如:富文字裡,如style="width:'50'"這樣的問題,還需要正則來做下過濾。

------------------------分割線----------------------------

這個問題到此為止了。但事實上這不是我想要的解決方案。我相信很多人,包括我自已,都是這麼說

replacestr 上面我寫了這個方法,很多人會說,我為什麼不直接replacefirst,原因就是因為我擔心一些特殊字元,會被當成正則來匹配,導致匹配出問題,這時候直接限制了你前台的輸入。我覺得這裡寫越多的方法,來解決這個問題,就會暴露越多問題。這不是我想要的,我曾經提過乙個解決方案,但是沒通過。

這裡我說下我想的解決方案。

htmlcleaner這個html分析的jar,相信很多人都用過。我曾經用過一段時間,挺不錯的。

htmlcleaner我記得有乙個操作,你將一段html轉成tagnode的時候,再去把html**拿出來,這裡面大多數標籤,都會閉合,都會是乙個很完整的標籤,是一段比較完美的html**。因為專案中考慮到第三方jar包的安全問題,我只提了出來,但沒有去試過,我隱約記得以前做爬蟲,htmlcleaner確實有這方面的操作的,感興趣的朋友,可以去試一下。

而且,用htmlcleaner處理html元素,我相信,會比用正則處理字串更好,不容易引發別的問題。有興趣的朋友,可以試一下。

當然,我這裡只是列舉乙個我用過的處理html的乙個jar,你也可以用別的,原理都差不多。

富文字編輯器

關於使用富文字編輯器的一些小坑 官網 1.專案 片 editor fail function xhr,editor,result custominsert function insertimg,result,editor this.editor.create this.editor.txt.html...

富文字編輯器

富文字編輯器,rich text editor,簡稱 rte,它提供類似於 microsoft word 的編輯功能。常用的富文字編輯器 kindeditor ueditor ckeditor 在頁面中新增js 用於初始化kindeditorallowfilemanager 是否允許瀏覽伺服器已上傳...

富文字編輯器

富文字編輯器,rich text editor,簡稱 rte,它提供類似於 microsoft word 的編輯功能。常用的富文字編輯器 kindeditor ueditor ckeditor 在頁面中新增js 用於初始化kindeditor allowfilemanager 是否允許瀏覽伺服器已上...