Android: файл pdf не может открыть ItextPDF 5.5.10 - PullRequest
0 голосов
/ 04 сентября 2018

Я использую iText 5.5.10 для конвертации нескольких изображений в PDF. Но иногда есть несколько PDF-файлов, которые не могут быть открыты. Там, где файл pdf не может быть открыт, это случается не часто (изображение файла сохраняется во внутреннем хранилище). Пожалуйста, помогите мне. Это мой код конвертировать PDF с iText

fun createMultiFilePdfiText(list:Array<File>?,path:String,nameFile:String):Boolean{
    var isCreatePDFSuccess = true

    if(list != null){
        val document = Document()
        val dir = File(path)
        if(!dir.exists()){
            dir.mkdirs()
        }
        val fileOutput = File(dir,nameFile)
        val outputStream = FileOutputStream(fileOutput)
        PdfWriter.getInstance(document,outputStream)
        document.open()
        for(itemFile in list){
            try {
                var bitmap1 = bitmapManager?.decodeSampledBitmapFromFile(itemFile.absolutePath,1024,1754)
                if(bitmap1 != null){
                    if (bitmap1.width > bitmap1.height) {
                        bitmap1 = bitmapManager?.rotate(bitmap1,90f)
                    }
                    val bitmap = Bitmap.createScaledBitmap(bitmap1,1240,1754,true)
                    val stream = ByteArrayOutputStream()
                    bitmap?.compress(Bitmap.CompressFormat.JPEG, 80, stream)
                    val image = Image.getInstance(stream.toByteArray())
                    document.pageSize = Rectangle(image.width,image.height)
                    image.setAbsolutePosition(0f,0f)
                    document.newPage()
                    document.add(image)

                    try {
                        bitmap.recycle()
                        bitmap1?.recycle()
                        stream.flush()
                        stream.close()
                    }catch (ex:Exception){

                    }

                }else{
                    isCreatePDFSuccess = false
                    break
                }
            }catch (ex:Exception){
                Crashlytics.log(ex.message)
                isCreatePDFSuccess = false
                break
            }
        }

        try {
            document.close()
            outputStream.flush()
            outputStream.close()
        }catch (ex:Exception){
            Crashlytics.log(ex.message)
        }

    }else{
        isCreatePDFSuccess = false
    }

    return isCreatePDFSuccess
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...