2013-06-11 111 views
2

我使用的iText和轉換HTML到PDF的,我使用這個代碼如何利用iText

import java.io.FileOutputStream; 
import java.io.StringReader; 

import javax.sql.rowset.spi.XmlWriter; 

import com.itextpdf.text.Chunk; 
import com.itextpdf.text.Document; 
import com.itextpdf.text.PageSize; 
import com.itextpdf.text.html.simpleparser.HTMLWorker; 
import com.itextpdf.text.pdf.PdfWriter; 

public class HtmlToPDF2 { 
    // itextpdf-5.4.1.jar http://sourceforge.net/projects/itext/files/iText/ 
    public static void main(String ... args) { 
    try { 
     Document document = new Document(PageSize.LETTER); 
     PdfWriter.getInstance(document, new FileOutputStream("testpdf1.pdf")); 
     document.open(); 

     HTMLWorker htmlWorker = new HTMLWorker(document); 
     String firstName = "<name>" ; 
     String sign = "<sign>"; 

     String str = "<html> " + 
      "<body>" + 
       "<form>" + 
        "<div><strong>Dear</strong> "+firstName +",</div><br/>"+ 
        "<div>"+ 
         "<P> It is informed that you are selected in your interview<br/>"+ 
         " and please report on the <b>20 may</b> with your all original <br/>"+ 
         " document on our head office at jaipur.>"+ 
        " </P>"+ 
       " </div><br/>"+ 
       " <div>"+ 
        " <p>Yours sincierly </p><br/>"+sign+"</div>"+ 
      " </form>"+ 
      "<body>"+ 
      "<html>"; 
     htmlWorker.parse(new StringReader(str)); 
     document.close(); 
     System.out.println("Done"); 
     } 
    catch (Exception e) { 
     e.printStackTrace(); 
    } 
    } 
} 

但是這會給我輸出

enter image description here

寫在PDF佔位符

想要的輸出是

enter image description here

而且是正確的方式來建立預留..或者我需要做什麼都創建佔位?如果是的話請給我建議。

+1

HTMLWorker是贊成XML工人的棄用。使用XML Worker,您可以創建自己的標籤並向標籤工廠添加特殊的實現。這可以解決你的問題... –

+0

我在這裏有一個拍攝的演示文稿:http://itextpdf.com/summit.php#talk3和一些示例代碼在這裏:http://demo.itextsupport.com/xmlworker/itextdoc /flatsite.html,但文檔遠沒有完成。 –

回答

1

<和>符號視爲html標記。因爲它沒有顯示在你的pdf中。

你可以定義firstName和下面籤..

public class HtmlToPDF2 { 
public static void main(String ... args) { 
.... 
.... 
String firstName = "&lt;name&gt;" ; 
String sign = "&lt;sign&gt;"; 
.... 
.... 
} 
}