【发布时间】:2016-01-28 13:10:37
【问题描述】:
Screen shot 我在 pdf 文件中添加图像以生成其 pdf 作为文档问题是它自动将第一页添加为空白页,其余页面包含很好的图像。那么我应该如何克服这个问题。
pdfPath = dir + "/" + txtFileName.getText().toString() + ".pdf";
String pdfFileName = txtFileName.getText().toString() + ".pdf";
PdfWriter writer;
File file = new File(dir, pdfFileName);
Document document = new Document();
try {
writer = PdfWriter.getInstance(document,
new FileOutputStream(file));
HeaderFooterPageEvent event = new HeaderFooterPageEvent();
writer.setPageEvent(event);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (DocumentException e) {
e.printStackTrace();
}
document.open();
Image image = null;
for (int i = 0; i < listofimage.size(); i++) {
String imgFileName = listofimage.get(i).toString();
try {
image = Image.getInstance(imgFileName);
} catch (BadElementException e) {
e.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
float scaler = ((document.getPageSize().getWidth()
- document.leftMargin() - document.rightMargin()) / image
.getWidth()) * 90;
Log.i("Scale Percentage", scaler + "");
image.scalePercent(scaler);
try {
document.newPage();
document.add(image);
document.addAuthor("Genetech Solutions");
} catch (DocumentException e) {
e.printStackTrace();
}
}
document.close();
HeaderFooterPageEvent 主要包括:
public void onEndPage(PdfWriter writer, Document document)
{
ColumnText.showTextAligned(writer.getDirectContent(), Element.ALIGN_CENTER, new Phrase("Generated by Snap Scanner Powered By Genetech Solutions"), 180, 30, 0);
ColumnText.showTextAligned(writer.getDirectContent(), Element.ALIGN_CENTER, new Phrase("page " + document.getPageNumber()), 550, 30, 0);
}
【问题讨论】:
-
请出示您的
HeaderFooterPageEvent。我假设你在那里做错了什么,就像@Bruno 在他的回答中所做的那样。 -
public void onEndPage(PdfWriter writer, Document document) { ColumnText.showTextAligned(writer.getDirectContent(), Element.ALIGN_CENTER, new Phrase("Generated by Snap Scanner Powered By Genetech Solutions"), 180, 30, 0); ColumnText.showTextAligned(writer.getDirectContent(), Element.ALIGN_CENTER, new Phrase("page" + document.getPageNumber()), 550, 30, 0); }
-
当我删除 HeaderFooterPageEvent 时它工作正常。但我也需要包括这个
-
您是否尝试过按照@Bruno 的建议切换线路?
-
是的,但没有成功