【发布时间】:2014-03-20 09:20:15
【问题描述】:
我正在使用 Document 类创建 pdf,在我从 sdcard 相机文件夹下载图像后,我想将所有图像保存在 pdf 文件中,我正在使用 A4 尺寸的文档页面,我想用A4 尺寸意味着我想用 a4 尺寸的图像保留图像。
private void addImages(Document document) {
// TODO Auto-generated method stub
File targetDirector = new File(targetPath);
File[] files = targetDirector.listFiles();
for (File file : files) {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
thumbnails = decodeFile(file.getAbsolutePath());
ExifInterface exif;
try {
exif = new ExifInterface(file.getAbsolutePath());
String orientString = exif
.getAttribute(ExifInterface.TAG_ORIENTATION);
int orientation = orientString != null ? Integer
.parseInt(orientString)
: ExifInterface.ORIENTATION_NORMAL;
int rotationAngle = 0;
if (orientation == ExifInterface.ORIENTATION_ROTATE_90) {
System.out.println("photopotart");
thumbnails = getResizedBitmap(thumbnails, 150, 150);
thumbnails
.compress(Bitmap.CompressFormat.JPEG, 100, stream);
Image myImg = null;
try {
myImg = Image.getInstance(stream.toByteArray());
} catch (BadElementException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// add image to document
try {
document.newPage();
document.add(myImg);
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else if (orientation == ExifInterface.ORIENTATION_ROTATE_180) {
System.out.println("180 angle");
rotationAngle = 180;
System.out.println("photo180");
thumbnails = getResizedBitmap180(thumbnails, 200, 200);
thumbnails
.compress(Bitmap.CompressFormat.JPEG, 100, stream);
Image myImg = null;
try {
myImg = Image.getInstance(stream.toByteArray());
} catch (BadElementException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
myImg.setAlignment(Image.LEFT);
// add image to document
try {
document.newPage();
document.add(myImg);
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else if (orientation == ExifInterface.ORIENTATION_ROTATE_270) {
System.out.println("other 270");
System.out.println("photo270");
thumbnails = getResizedBitmap270(thumbnails, 200, 200);
thumbnails
.compress(Bitmap.CompressFormat.JPEG, 100, stream);
Image myImg = null;
try {
myImg = Image.getInstance(stream.toByteArray());
} catch (BadElementException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// add image to document
try {
document.newPage();
document.add(myImg);
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else {
System.out.println("photolandscape");
System.out.println("photo0");
// thumbnails =thumbnails.createScaledBitmap(thumbnails,
// 350, 250, false);
System.out.println("thumbnailsw" + thumbnails.getWidth());
System.out.println("thumbnailsh" + thumbnails.getHeight());
String imageUrl = file.getAbsolutePath();
Image image2 = Image.getInstance(file.getAbsolutePath());
image2.scaleAbsolute(150f, 150f);
document.newPage();
document.add(image2);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (BadElementException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
【问题讨论】:
-
您在 PDF 中使用什么 API?
-
我正在使用itextpdf-5.3.5.jar,开发创建一个pdf
标签: android image pdf android-image