【发布时间】:2020-01-12 23:27:20
【问题描述】:
所以在我的应用中,我将图像上传到我的公司服务器
然后使用内置的 PDFdocument 方法将这些图像转换为 PDF,
现在我的问题是我试图通过添加 IF 语句使 PDF 生成动态化。 所以我的图像被加载到一个数组列表中,如果在 ArrayList 中的某个位置有一个项目,我会调用一个 PDF 页面创建
if(list.contains(list.get(0))){
code here
}
但我得到无法解析下一页代码上的符号。
如果列表在位置 X 包含一个项目,那么我想要发生的事情然后它会创建一个页面,所以最后的结果是,对于用户选择的每个图像,都会创建一个新页面
PDF 创建代码
PdfDocument document=new PdfDocument();
if(list.contains(list.get(0))) {
PdfDocument.PageInfo pageInfo=new PdfDocument.PageInfo.Builder(300, 6000, 1).create();
PdfDocument.Page page=document.startPage(pageInfo);
Canvas canvas=page.getCanvas();
Bitmap image=BitmapFactory.decodeFile(list.get(0));
canvas.setDensity(DENSITY_XHIGH);
image.setDensity(DENSITY_XHIGH);
canvas.drawBitmap(image, 1, 1, null);
document.finishPage(page);
}
** 在这里我正在获取无法解析页面、pageInfo、画布上的符号**
if(list.contains(list.get(1))) {
pageInfo = new PdfDocument.PageInfo.Builder(, 6000, 2).create();
page = document.startPage(pageInfo);
canvas = page.getCanvas();
Bitmap image2=BitmapFactory.decodeFile(list.get(1));
canvas.setDensity(DENSITY_XHIGH);
image2.setDensity(DENSITY_XHIGH);
canvas.drawBitmap(image2, 1, 1, null);
document.finishPage(page);
}
String directory_path=Environment.getExternalStorageDirectory().getPath() + "/mypdf/";
File file=new File(directory_path);
if (!file.exists()) {
file.mkdirs();
}
String timeStamp = (new SimpleDateFormat("yyyyMMdd_HHmmss")).format(new Date());
String targetPdf=directory_path + timeStamp +".pdf";
File filePath=new File(targetPdf);
try {
document.writeTo(new FileOutputStream(filePath));
Toast.makeText(this, "Done", Toast.LENGTH_LONG).show();
} catch (IOException e) {
Log.e("main", "error " + e.toString());
Toast.makeText(this, "Something wrong: " + e.toString(), Toast.LENGTH_LONG).show();
}
// close the document
document.close();
我认为我的问题是我在 m IF 语句的某处有语法错误,但我不确定任何帮助将不胜感激
【问题讨论】:
标签: java android android-studio pdf pdf-generation