我的图像 return 在 PDF 文档中为空白
My images return as blank in PDF document
在我的应用程序中,我将图片上传到我公司的服务器
这些图像被转换为pdf文档并上传
我正在为此使用内置的 PDF 文档,现在我的问题是页面是动态的,具体取决于用户选择或用相机拍摄的图像数量,图像被放入 ARRAYLIST(String)
然后我调用照片的位置并使用 canvas 将其绘制为 pdf
现在我的问题是生成的 pdf 文档带有适当的页码 IE。如果用户选择 4 张图片,它 returns 4 页但没有图片
我发现了问题我的第二个 for
循环无法正常工作,因为它没有给出我想要的数字广告
PDF 代码
PdfDocument document=new PdfDocument();
// crate a page description
PdfDocument.PageInfo pageInfo;
PdfDocument.Page page;
Canvas canvas;
int i;
Bitmap image;
**here I loop for page Creation**
for (i=0; i < list.size(); i++) {
pageInfo=new PdfDocument.PageInfo.Builder(3000, 6000, 1).create();
page=document.startPage(pageInfo);
这里我循环改变图片在数组列表中的位置
这并没有像它应该的那样循环遍历数组列表位置
for(int t = 0; t< list.indexOf(0); t+=1){
canvas=page.getCanvas();
image=BitmapFactory.decodeFile(String.valueOf(list.get (t)));
image.setDensity(DENSITY_XHIGH);
canvas.drawBitmap(image, 1, 1, null);
canvas.setDensity(DENSITY_XHIGH);
}
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));
Toasty.info(this, "PDF Created", Toast.LENGTH_LONG).show();
} catch (IOException e) {
Log.e("main", "error " + e.toString());
Toasty.error(this, "Error making PDF" + e.toString(), Toast.LENGTH_LONG).show();
}
// close the document
document.close();
1.Use PrintAttributes.build() 正确设置 pdf 的属性
并将 printattrs 传递给 printerpdfDocument(context,/*print attributes obj goes here */)
创建一个 Rect() 对象
使用 rect() 对象在 forloop 中创建综合浏览量并将这些综合浏览量添加到文档中
User FileOutputStream(//你的pdf文件),将其传递给文档,然后
fileOutPutstream = new FileOutputStream(pdffilename);
doucument.writeTo(fileOutPutstream);
doucument.close();
fileOutPutstream.close(); // close your stream
以上是粗略的实施,这应该会给你一个继续下去的想法。
在我的应用程序中,我将图片上传到我公司的服务器 这些图像被转换为pdf文档并上传
我正在为此使用内置的 PDF 文档,现在我的问题是页面是动态的,具体取决于用户选择或用相机拍摄的图像数量,图像被放入 ARRAYLIST(String) 然后我调用照片的位置并使用 canvas 将其绘制为 pdf
现在我的问题是生成的 pdf 文档带有适当的页码 IE。如果用户选择 4 张图片,它 returns 4 页但没有图片
我发现了问题我的第二个 for
循环无法正常工作,因为它没有给出我想要的数字广告
PDF 代码
PdfDocument document=new PdfDocument();
// crate a page description
PdfDocument.PageInfo pageInfo;
PdfDocument.Page page;
Canvas canvas;
int i;
Bitmap image;
**here I loop for page Creation**
for (i=0; i < list.size(); i++) {
pageInfo=new PdfDocument.PageInfo.Builder(3000, 6000, 1).create();
page=document.startPage(pageInfo);
这里我循环改变图片在数组列表中的位置 这并没有像它应该的那样循环遍历数组列表位置
for(int t = 0; t< list.indexOf(0); t+=1){
canvas=page.getCanvas();
image=BitmapFactory.decodeFile(String.valueOf(list.get (t)));
image.setDensity(DENSITY_XHIGH);
canvas.drawBitmap(image, 1, 1, null);
canvas.setDensity(DENSITY_XHIGH);
}
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));
Toasty.info(this, "PDF Created", Toast.LENGTH_LONG).show();
} catch (IOException e) {
Log.e("main", "error " + e.toString());
Toasty.error(this, "Error making PDF" + e.toString(), Toast.LENGTH_LONG).show();
}
// close the document
document.close();
1.Use PrintAttributes.build() 正确设置 pdf 的属性
并将 printattrs 传递给 printerpdfDocument(context,/*print attributes obj goes here */)
创建一个 Rect() 对象
使用 rect() 对象在 forloop 中创建综合浏览量并将这些综合浏览量添加到文档中
User FileOutputStream(//你的pdf文件),将其传递给文档,然后
fileOutPutstream = new FileOutputStream(pdffilename);
doucument.writeTo(fileOutPutstream);
doucument.close();
fileOutPutstream.close(); // close your stream
以上是粗略的实施,这应该会给你一个继续下去的想法。