내 첫 번째 글은 여기 있습니다. 저는 정말 좋은 프로그래머가 아닙니다. 어쨌든 . 나는이 프로젝트에서 앱을위한 새로운 기능을 제공해야한다. 앱은 QR 스캐너를 통해 참가자 목록을 생성합니다. 내 임무는 각 참가자에게 서명을주기위한 그림판을 제공하는 것이 었습니다. 이 서명으로 모든 것이 지금까지 제대로 작동하며 이미지를 원하는 폴더에 저장합니다. "PDF- Creator"클래스에서 CreatPDF 메소드를 얻었습니다. 먼저 creatPDF는 참가자의 고유 번호를 입력 한 다음 그/그녀가 준 서명을 입력해야합니다. 사실 지금까지의 모든 작업은 내 머리글처럼 항상 모든 참가자에게 동일한 그림을 제공한다고합니다.이미지를 PDF로 저장하지만 항상 동일한 이미지를 얻으려면
다음 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- 창조주에 대한 책임을지지는 못했지만, 지금 당장 그것을 작동시켜야합니다. 나는이 강령이 적어도 내 문제가 무엇인지 이해하고 누군가가 나를 도울 수 있기를 바란다. 당신이 말한 것처럼 사전에
덕분에 이미
Bitmap 및 Image 클래스의 출처는 무엇입니까? 각 이미지에 대해 새 ByteArrayOutputStream을 만들고 사용 후 닫아야합니까? (확실한 부분은 SWAG입니까?) –
아, 안드로이드입니다. [tag : android] 태그가 추가되었습니다. –
귀하의 질문에 대한 권리를 이해하고 있는지 확실하지 않습니다. 그러나 "Signature"라고 불리는 다른 Class I의 새로운 Object를 생성하는 새로운 Fragment "CaptureSigantureFragment"를 열어서 Images를 만듭니다. Signature은 Painting Method와 Save Method를 제공한다. {_out = new FileOutputStream (myPath); v.draw (캔버스); \t \t \t mBitmap.compress (Bitmap.CompressFormat.PNG, 100, _out); _out.flush(); _out.close();} – HazlNut