1. 程式人生 > >有關Freemaker轉化成pdf檔案的html特殊字元的處理

有關Freemaker轉化成pdf檔案的html特殊字元的處理

場景:由於出於安全機制的考慮,所以通常會把存入資料庫中的某些html特殊字元進行轉義,例如空格轉義後存到資料庫就會變成“ ”,但是這些資料庫中的字元傳到Freemaker頁面,然後頁面再進行轉化成pdf會出現錯誤,現總結幾個解決方法寫給大家以供參考:

1、直接在ftl頁面的頭部進行定義,把ftl頁面上可能出現的已經轉義過的html特殊字元再重新定義成它們原本所代表的意思,具體實現如下:

<span style="white-space:pre">	</span><!DOCTYPE html[
	<!ENTITY nbsp " ">
	<!ENTITY mdash "—">
	<!ENTITY trade "™">
	<!ENTITY copy "©">
	<!ENTITY reg "®">
	<!ENTITY lt "<">
	<!ENTITY gt ">">
	<!ENTITY times "×">
	<!ENTITY divide "÷">
	<!ENTITY acute "'">
	]>
這樣就使得ftl頁面上出現html轉義後的特殊字元就會自動變換為其原本的意思,例如出現“&nbsp;”就會直接變換為空格。但是這種方式有一個很大的侷限性,就是隻能變換裡面已經定義過的html特殊字元,如果ftl頁面上出現未定義的html特使字元,那麼轉換成pdf時還是會出現錯誤的。

2、先在後臺進行反轉義,就是把資料庫中查詢出來的帶有特殊字元的字串進行反轉義,讓其變成未轉義之前的字串,然後再傳到ftl頁面上。java中spring有一個自帶的方法HtmlUtils.htmlUnescape(String str)可以直接反轉義。但是後來我在轉化成pdf的時候出現一個問題:反轉義後的字串傳到頁面然後在轉化成pdf 的過程中還是報錯的,不知道是什麼原因,後來我又使用freemaker自帶的一個方法進行再次轉義就可以了,即${x?html}。具體步驟就是

  • 先在後臺進行字串反轉義
  • 然後在ftl頁面再使用${x?html}進行再次轉義

以上兩種方法比較簡單,肯定還會有其它的方法,希望有的話多多交流!

相關推薦

有關Freemaker化成pdf檔案html特殊字元處理

場景:由於出於安全機制的考慮,所以通常會把存入資料庫中的某些html特殊字元進行轉義,例如空格轉義後存到資料庫就會變成“&nbsp;”,但是這些資料庫中的字元傳到Freemaker頁面,然後頁面再進行轉化成pdf會出現錯誤,現總結幾個解決方法寫給大家以供參考: 1、

使用python把html網頁pdf檔案

我們看到一些比較寫的比較好文章或者部落格的時候,想儲存下來到本地當一個pdf檔案,當做自己的知識儲備,以後即使這個部落格或者文章的連線不存在了,或者被刪掉,咱們自己也還有。 當然咱們作為一個coder,這樣的事情肯定不能手動儲存下來然後再轉成pdf存起來對不對,有失咱們碼農的身份,當然要自動化的來實現了~

java將html的圖文化為PDF檔案輸出

首先在我的專案的resource目錄下建立相應的目錄,如圖其中file用來存放一個logo以及生成的PDF檔案,font資料夾用來存放font 字型然後在專案的 pom.xml中新增引用<dependency> <groupId>org.xht

史上最強php生成pdf檔案,htmlpdf檔案方法

之前有個客戶需要把一些html頁面生成pdf檔案,然後我就找一些用php把html頁面圍成pdf檔案的類。方法是可謂是找了很多很多,什麼html2pdf,pdflib,FPDF這些都試過了,但是都沒有達到我要的求。 pdflib,FPDF這兩個方法是需要編寫程式去生成pdf

itext7將pdf模板pdf檔案

使用adobe Acrobat Pro DC製作pdf模板 這裡就略了,大家可以上網搜下,有很多方法 擼程式碼 在itext7第一節的基礎上在pom檔案新增junit依賴方便測試 <dependency> <groupId>juni

用python將.h5檔案的資料化成.pcd檔案

import h5py import numpy as np import os import math from open3d import * filename = '/home/jp/project/pointnet/sem_seg/indoor3d_sem_seg_

Tensorflow例項2:將影象和標籤資料(*.csv)化成tfrecords檔案,以便後續直接讀取tfrecords檔案進行圖片驗證碼識別訓練

由於多張影象和標籤值不在一起,現在此方法是把captcha_dir = "../data/GenPics/"此路徑下的圖片與此路徑下的.csv檔案合併起來,通過writer = tf.python_io.TFRecordWriter(path="./data/captcha.tfreco

利用POI將Excel化成XML檔案

一、導包       <dependency>             <groupId>dom4j</groupId>             <artifactId>dom4j</artifactId>   

如何將.ipynb檔案化成.py檔案(或者其他格式)

安裝好jupyter notebook之後,可以採用兩種方法進行檔案轉換。 法一: 在終端輸入:(其中xxx.ipynb是要轉換檔案的名字) jupyter nbconvert --to script xxx.ipynb 法二: step 1:啟動Jupyter

Java使用Jacob將wps的Word、Excel、PPT化成PDF

import com.jacob.activeX.ActiveXComponent; import com.jacob.com.ComThread; import com.jacob.com.Dispatch; import com.jacob.com.Vari

利用Java將word檔案pdf檔案

說明:使用本方法計算機中必須含有office 一.準備工作 1.準備如圖三個檔案: 2.將第二個檔案複製到C:\Windows\System32,將第三個檔案複製到C:\Windows\SysWOW64, 然後將這兩個檔案複製到jdk,jre裡面的bin資料夾 二.開始編譯

python2.7 的py檔案化成exe 檔案

1.安裝 pip install pyinstaller 2.在C:\Python27\Scripts目錄下執行cmd:pyinstaller -F helloworld.py 3.在dist目錄下就能扎到相關的可執行檔案。

PDF格式檔案成二進位制並生成Base64編碼,將Base64編碼PDF檔案

// 為工程新增 sun.misc.BASE64Encoder和sun.misc.BASE64Decoder包: //右鍵專案》屬性》Java Build Path》jre System Library 》access rules》resolution選擇accessi

JAVA 將xml Schema 文件化成 XML檔案

 首先從https://jaxb.java.net/2.2.11/ 獲取最新的jaxb 類這裡提供一個Schema文件<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefaul

iOS 中將位元組流陣列化成pdf

一. 因為前一段時間公司的專案需求,是pdf方面的,覺得網上的資料不是很多,所以也想發表一下,希望會能有用; 在載入到頁面的檔案是pdf格式,並且以pdf格式展現在頁面上,當我看到後想為啥不傳個圖片,載入頁面上多方便啊.後來的得知傳過來的檔案是多頁的,如果用圖片不符合要求.

本地 json檔案化成plist檔案

NSString *str = [[NSBundlemainBundle]pathForResource:@"sys_Area.json"ofType:nil]; NSData *data =

android JIN 第一步 生成java轉換成class然後再化成.h檔案

經過一番查詢,可算搞定了java轉成c的.h標頭檔案的這第一步。 方法如下 第一步:建立 native方法的java類。 方法 m1和m2分別是呼叫native。 package com.demo.study; public class JNITest { pu

php將文字化成mp3檔案

<!-- html --> <audio autoplay="autoplay" loop="loop" controls="controls">     <source src="11.mp3" type="audio/mpeg">&l

Java 讀寫docx檔案後直接PDF檔案方法

java將docx檔案轉成pdf檔案的實現方法,需要的jar包下載地址:https://download.csdn.net/download/keke921231/10529672  1.讀寫docx檔案。需要讀寫docx檔案需要用到poi包,等下會提供下載地址,在讀寫doc

PPT怎麽化成PDF, PPTPDF文件的方法是什麽

ado proc 路徑 -o 提取 mage ESS img mark 很多時候為了閱讀方便,打印等原因需要將PPT文件轉換成PDF文件,這樣一來在完成了簡單的設計排版,繪畫,動畫與遊戲的PPT制作後轉換成了PDF文件,同時還會擁有“閱讀方便,適合打印,屏幕上閱讀,高效瀏覽