81,092
社区成员
发帖
与我相关
我的任务
分享
public EiInfo ccc(EiInfo eiInfo) throws com.itextpdf.text.DocumentException, IOException {
toHTML(eiInfo);
String HTML="E:\\tc.html";
String DEST="E:\\final.pdf";
InputStream in=null;
try {
in = new FileInputStream(new File(HTML));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
// com.itextpdf.text.pdf.BaseFont bChinese = com.itextpdf.text.pdf.BaseFont.createFont("C:/Windows/Fonts/msyh.ttf",com.itextpdf.text.pdf.BaseFont.IDENTITY_H,com.itextpdf.text.pdf.BaseFont.NOT_EMBEDDED); //设置字体
// com.itextpdf.text.Font FontChinese = new com.itextpdf.text.Font(bChinese, 12, Font.NORMAL);
com.itextpdf.text.Document document=new com.itextpdf.text.Document(com.itextpdf.text.PageSize.A4,9,9,9,9);
com.itextpdf.text.pdf.PdfWriter writer=null;
try {
writer = com.itextpdf.text.pdf.PdfWriter.getInstance(document, new FileOutputStream(new File(DEST)));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (com.itextpdf.text.DocumentException e) {
e.printStackTrace();
}
document.open();
try {
XMLWorkerHelper.getInstance().parseXHtml(writer, document, in, Charset.forName("UTF-8"),new MyFont());
} catch (IOException e) {
e.printStackTrace();
}
document.close();
return eiInfo;
}
public EiInfo toHTML(EiInfo eiInfo) throws IOException{
String html=(String)eiInfo.get("code");
html=html.replaceAll("<script.*?(?<=/script>)", "");
System.out.println("123");
StringBuilder sb = new StringBuilder();
File file=new File("E:\\report.html");
if(file.exists()){
file.delete();
file.createNewFile();
}
PrintStream printStream = new PrintStream(new FileOutputStream("E:\\report.html"));
sb.append(html);
printStream.println(sb.toString());
return eiInfo;
}
class MyFont extends FontFactoryImp {
com.itextpdf.text.pdf.BaseFont baseFont =null;
public MyFont() {
try {
baseFont =com.itextpdf.text.pdf.BaseFont.createFont("STSong-Light", "UniGB-UCS2-H",com.itextpdf.text.pdf.BaseFont.NOT_EMBEDDED);
System.out.println("2222222");
} catch (com.itextpdf.text.DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public com.itextpdf.text.Font getFont(String fontName, String encoding, boolean embedded, float size, int style, BaseColor color, boolean cached) {
System.out.println("11111111111");
return new com.itextpdf.text.Font(baseFont, 9, com.itextpdf.text.Font.NORMAL);
}
}
public class PDF2Chinese
{
public static void main(String[] args) throws DocumentException, IOException
{
Document document = new Document();
OutputStream os = new FileOutputStream(new File("chinese.pdf"));
PdfWriter.getInstance(document,os);
document.open();
//方法一:使用Windows系统字体(TrueType)
BaseFont baseFont = BaseFont.createFont("C:/Windows/Fonts/SIMYOU.TTF",BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);
//方法二:使用iTextAsian.jar中的字体
//BaseFont baseFont = BaseFont.createFont("STSong-Light",BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);
//方法三:使用资源字体(ClassPath)
////BaseFont baseFont = BaseFont.createFont("/SIMYOU.TTF",BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);
Font font = new Font(baseFont);
document.add(new Paragraph("解决中文问题了!",font));
document.close();
}
}