我正在尝试截取我的 Android Activity (位图)的屏幕截图,然后将其制作成 PDF 文件。我使用了 itextpdf 库。这是我拥有的:
public void onSaveDataClicked(View reportsLayout){
//take screen shot
Bitmap screen; View v1 = reportsLayout.getRootView();
v1.setDrawingCacheEnabled(true);
screen = Bitmap.createBitmap(v1.getDrawingCache());
v1.setDrawingCacheEnabled(false);
try {
Document document = new Document();
PdfWriter.getInstance(document, new FileOutputStream(file));
document.open();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
screen.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
addImage(document,byteArray);
document.close();
}
catch (Exception e){
e.printStackTrace();
}
}
private static void addImage(Document document,byte[] byteArray) {
Image image = null;
try {
image = Image.getInstance(byteArray);
} 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();
}
// image.scaleAbsolute(150f, 150f);
try {
document.add(image);
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
当我尝试运行时出现错误:“图像无法转换为元素”和“找不到符号方法 getInstance(byte[])”
我通过有关如何实现此目的的教程在网上找到了很多代码。我对这种事情有点陌生。任何帮助和想法将不胜感激。
最佳答案
使用 import com.itextpdf.text.Image;
并删除默认的 Android 图像。
关于java - Android pdf maker 代码错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44453998/