使用pdfbox 進行pdf轉word 解決了中文字體變成小方框的問題

/**
	 * 替換並生成word, 解決小方塊問題
	 * 
	 * @param templet
	 *            模板路徑
	 * @param dataMap
	 *            替換數據
	 * @param filePath
	 *            替換後文件路徑
	 */
	public static void replace2NewWord2(String templet, Map<String, Object> dataMap, String filePath) {
		// 讀取模板,進行渲染
		XWPFTemplate doc = XWPFTemplate.create(templet);
		FileOutputStream out = null;
		try {
			RenderAPI.render(doc, dataMap);
			List<XWPFParagraph> p = doc.getXWPFDocument().getParagraphs();
			Iterator<XWPFParagraph> it = p.iterator();
			while(it.hasNext()){
				List<XWPFRun> runs = it.next().getRuns();
				Iterator<XWPFRun> itr = runs.iterator();
				while(itr.hasNext()){
					XWPFRun run = itr.next();
					CTRPr rpr = run.getCTR().isSetRPr() ? run.getCTR().getRPr() : run.getCTR().addNewRPr(); 
					CTFonts fonts = rpr.isSetRFonts() ? rpr.getRFonts() : rpr.addNewRFonts(); 
					fonts.setAscii("Meiryo"); 
					fonts.setEastAsia("Meiryo"); 
					fonts.setHAnsi("Meiryo");
				}
			}
			// 輸出渲染後的文件
			out = new FileOutputStream(filePath);
			doc.write(out);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				out.flush();
				out.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}

使用的jar包爲fontbox-1.8.16.jar, pdfbox-app-1.8.16.jar, 以及apache POI

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章