gpt4 book ai didi

java - 将图像保存为 PDF 但总是得到相同的图像

转载 作者:行者123 更新时间:2023-11-30 02:34:00 25 4
gpt4 key购买 nike

我在这里的第一篇文章,虽然我不是一个很好的程序员。无论如何。我有这个项目,我需要为应用程序提供新功能。该应用程序通过 QR-Scanner 生成参与者列表。我的任务是提供一个 Paint 来为每个参与者签名。到目前为止,这个签名一切正常,它还将图像保存到我想要的文件夹中。在我的“PDF-Creator”类(class)中,我得到了方法 creatPDF,它应该首先输入参与者的唯一编号,然后是他/她给出的签名。实际上到目前为止一切正常,但就像我的标题所说的那样,我总是为每个参与者获得相同的图片。这是一些代码:

这是为了用我的文件夹中的所有图像填充一个数组:

        String[] signatures = getSignatureFiles();
Image[] efnSignatures = new Image[signatures.length];
ByteArrayOutputStream stream = new ByteArrayOutputStream();
for(int i = 0; i<efnSignatures.length; i++){
fileName = signatures[i];
File myPath = new File(directory,fileName);
String url = myPath.getAbsolutePath();
Bitmap bitmap = BitmapFactory.decodeFile(url);
bitmap.compress(Bitmap.CompressFormat.PNG, 10, stream);
efnSignatures[i] = Image.getInstance(stream.toByteArray());
efnSignatures[i].setAlignment(Image.MIDDLE);
}

这是方法“getSignatureFiles:

private String[] getSignatureFiles(){
ContextWrapper tcw = new ContextWrapper(getActivity().getApplicationContext());
File directory = tcw.getDir("Signatures", Context.MODE_PRIVATE);
String[] files = new String [directory.listFiles().length];
int countFiles = 0;
for (File f : directory.listFiles()) {
if (f.isFile()){
files[countFiles] = f.getName();
String name = f.getName();
Log.i("file names", name);
countFiles = countFiles+1;
}
}
return files;
}

最后应该是我将图像添加到 PDF 的部分:

for (int i = 0; i < signatures.length; i++) {
insertCell(table, dummyList.get(i), Element.ALIGN_LEFT);
PdfPCell cell = new PdfPCell();
cell.addElement(efnSignatures[i]);
table.addCell(cell);
}

问题是,我在一个小组中工作并且不负责这个 PDF-Creator,但是我现在需要让它工作。我希望这份准则至少能让我对我的问题有所了解,并且有人可以帮助我。

提前致谢

最佳答案

所以就像你说的那样改变了,它现在在循环中创建了一个新的 ByteArrayOutputStream,实际上它正在工作!

现在看起来像这样:

for(int i = 0; i<efnSignatures.length; i++){    
ByteArrayOutputStream stream = new ByteArrayOutputStream();
fileName = signatures[i];
Log.i("name:", fileName);
File myPath = new File(directory,fileName);
String url = myPath.getAbsolutePath();
Log.i("PDF_Creator_url:", url);
Bitmap bitmap = BitmapFactory.decodeFile(url);
bitmap.compress(Bitmap.CompressFormat.PNG, 10, stream);
efnSignatures[i] = Image.getInstance(stream.toByteArray());
efnSignatures[i].setAlignment(Image.MIDDLE);
}

没想到这么快就找到了解决方案!非常感谢!我能找到的最佳帮助!

关于java - 将图像保存为 PDF 但总是得到相同的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26864725/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com