2014-03-28 55 views
0

我試圖在HTML中包含多種字體樣式,以便使用以下代碼片段反映在我的代碼中。在字體標籤中提到的字體樣式的HTML文本沒有被拾取爲以PDF格式顯示。使用itextPDF5.3.4.jar將HTML中的字體樣式合併爲PDF轉換

String htmlText = value.trim(); 

      ColumnText ct = new ColumnText(over); 
      List<AcroFields.FieldPosition> positions1 = form.getFieldPositions(key); 
      Rectangle rect = positions1.get(0).position; 
      ct.setSimpleColumn(rect.getLeft(), rect.getBottom(),rect.getRight(), rect.getTop()); 
      Reader htmlreader = new BufferedReader(new InputStreamReader(new ByteArrayInputStream(htmlText.getBytes("UTF-8")))); 
      StyleSheet styles = new StyleSheet(); 
      styles.loadTagStyle("body", "font", "Comic Sans MS"); 
      List<Element> objects = HTMLWorker.parseToList(htmlreader,styles); 

      for (Element element : objects) 
      { 
       ct.addElement(element); 
      } 
      ct.go(); 

StyleSheet類不反映PDF上的任何字體,儘管提到它。它總是默認爲Arial。

我要求無論Font標籤的face屬性中提到的字體是否應該反映在PDF中。我必須在這種情況下采用哪些方法。

回答

1

你註冊了字體嗎? iTextSharp不會掃描系統中已安裝的字體,除非您告訴它,因爲它可能導致性能/緩存噩夢。

FontFactory.Register("C:\\Windows\\Fonts\\comic.ttf", "Comic Sans MS"); 

你也可以告訴iTextSharp的掃描你的字體文件夾,但我會建議反對:

FontFactory.RegisterDirectory("C:\\WINDOWS\\Fonts") 
+0

謝謝克里斯。 – DevK