用iText 把txt文件生成pdf,导入图片时的有关问题
用iText 把txt文件生成pdf,导入图片时的问题
读取一个txt文件,提取内容生成pdf文件。 在导入图片的时候,如果该页剩余的空间不够放下要加入的图片,结果在现实的pdf文件中就不会加入该图片。但跟踪代码时发现添加图片的语句也执行了。而且如果空间足够放下该图片时,会正确添加进图片。刚开始学习itext ,一直没能找到原因,希望有高手指点一下。谢谢了。。。
代码如下:
private static final String TXT_FILE_PATH_STRING = "D:/PDFTest/test.txt";
private static final String PDF_FILE_PATH_STRING = "D:/PDFTest/test.pdf";
private static final String IMA_FILE_PATH_STRING = "D:/PDFTest/Sophie.jpg";
// 建立一个PDF格式的书写器
PdfWriter.getInstance(dm, new FileOutputStream(PDF_FILE_PATH_STRING));
// 下面是解决中文的问题(指定字体库,并创建字体)
BaseFont bf = BaseFont.createFont(
"c:\\windows\\fonts\\simsun.ttc,1", BaseFont.IDENTITY_H,
BaseFont.EMBEDDED);
FileReader fr = new FileReader(TXT_FILE_PATH_STRING);
BufferedReader br = new BufferedReader(fr);
dm.open();// 打开文档
Image image = Image.getInstance(IMA_FILE_PATH_STRING);
image.setAlignment(Image.MIDDLE);
image.scaleAbsolute(194,202);
while(br.ready()){
dm.add(new Paragraph(br.readLine(),new Font(bf)));
}
dm.add(image);
System.out.println("dm:::"+dm);
} catch (FileNotFoundException e) {
e.printStackTrace();
flag = false;
} catch (DocumentException e) {
e.printStackTrace();
flag = false;
} catch (IOException e) {
e.printStackTrace();
flag = false;
}
dm.close();// 关闭文档
读取一个txt文件,提取内容生成pdf文件。 在导入图片的时候,如果该页剩余的空间不够放下要加入的图片,结果在现实的pdf文件中就不会加入该图片。但跟踪代码时发现添加图片的语句也执行了。而且如果空间足够放下该图片时,会正确添加进图片。刚开始学习itext ,一直没能找到原因,希望有高手指点一下。谢谢了。。。
代码如下:
private static final String TXT_FILE_PATH_STRING = "D:/PDFTest/test.txt";
private static final String PDF_FILE_PATH_STRING = "D:/PDFTest/test.pdf";
private static final String IMA_FILE_PATH_STRING = "D:/PDFTest/Sophie.jpg";
// 建立一个PDF格式的书写器
PdfWriter.getInstance(dm, new FileOutputStream(PDF_FILE_PATH_STRING));
// 下面是解决中文的问题(指定字体库,并创建字体)
BaseFont bf = BaseFont.createFont(
"c:\\windows\\fonts\\simsun.ttc,1", BaseFont.IDENTITY_H,
BaseFont.EMBEDDED);
FileReader fr = new FileReader(TXT_FILE_PATH_STRING);
BufferedReader br = new BufferedReader(fr);
dm.open();// 打开文档
Image image = Image.getInstance(IMA_FILE_PATH_STRING);
image.setAlignment(Image.MIDDLE);
image.scaleAbsolute(194,202);
while(br.ready()){
dm.add(new Paragraph(br.readLine(),new Font(bf)));
}
dm.add(image);
System.out.println("dm:::"+dm);
} catch (FileNotFoundException e) {
e.printStackTrace();
flag = false;
} catch (DocumentException e) {
e.printStackTrace();
flag = false;
} catch (IOException e) {
e.printStackTrace();
flag = false;
}
dm.close();// 关闭文档
1 楼
java_base
2010-11-10
解决方案:writer.setStrictImageSequence(true); 给图片排序的
希望能帮到一些人!
希望能帮到一些人!