Все круто классно, но русский язык не работает...

This commit is contained in:
Кашин Максим 2023-12-24 22:48:44 +04:00
parent 3fe3d41253
commit 359d8311fb
3 changed files with 63 additions and 0 deletions

View File

@ -96,4 +96,7 @@ dependencies {
androidTestImplementation("androidx.compose.ui:ui-test-junit4") androidTestImplementation("androidx.compose.ui:ui-test-junit4")
debugImplementation("androidx.compose.ui:ui-tooling") debugImplementation("androidx.compose.ui:ui-tooling")
debugImplementation("androidx.compose.ui:ui-test-manifest") debugImplementation("androidx.compose.ui:ui-test-manifest")
//PDF
implementation ("com.itextpdf:itextpdf:5.5.13")
} }

View File

@ -3,6 +3,10 @@
xmlns:tools="http://schemas.android.com/tools"> xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
<application <application
android:name=".BikeApplication" android:name=".BikeApplication"

View File

@ -1,6 +1,8 @@
package com.example.myapplication.database.entities.composeui package com.example.myapplication.database.entities.composeui
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.Context
import android.os.Environment
import android.util.Log import android.util.Log
import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.AnimatedVisibility
import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.BorderStroke
@ -41,6 +43,7 @@ import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.clip
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.font.FontWeight
@ -57,6 +60,11 @@ import com.example.myapplication.datastore.DataStoreManager
import com.example.myapplication.datastore.SettingData import com.example.myapplication.datastore.SettingData
import kotlinx.coroutines.async import kotlinx.coroutines.async
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import com.itextpdf.text.Document
import com.itextpdf.text.Paragraph
import com.itextpdf.text.pdf.PdfWriter
import java.io.File
import java.io.FileOutputStream
@SuppressLint("UnrememberedMutableState") @SuppressLint("UnrememberedMutableState")
@Composable @Composable
fun UserProfile( fun UserProfile(
@ -67,6 +75,8 @@ fun UserProfile(
entryUserViewModel: EntryUserViewModel = viewModel(factory = AppViewModelProvider.Factory), entryUserViewModel: EntryUserViewModel = viewModel(factory = AppViewModelProvider.Factory),
currentUserViewModel: CurrentUserViewModel = viewModel(factory = AppViewModelProvider.Factory) currentUserViewModel: CurrentUserViewModel = viewModel(factory = AppViewModelProvider.Factory)
) { ) {
val context = LocalContext.current
var username by remember { mutableStateOf("") } var username by remember { mutableStateOf("") }
var password by remember { mutableStateOf("") } var password by remember { mutableStateOf("") }
var isRegistration by remember { mutableStateOf(false) } var isRegistration by remember { mutableStateOf(false) }
@ -228,6 +238,18 @@ fun UserProfile(
.padding(16.dp), .padding(16.dp),
verticalArrangement = Arrangement.Center verticalArrangement = Arrangement.Center
) { ) {
Button(
onClick = {
generatePdf(context = context, fileName = "отчет.pdf")
Log.d("context", "${context}")
},
modifier = Modifier
.fillMaxWidth()
.padding(8.dp)
) {
Text("Сформировать")
}
Text( Text(
"Темная тема", "Темная тема",
modifier = Modifier modifier = Modifier
@ -356,3 +378,37 @@ fun LoginScreenProfile(currentUserViewModel: CurrentUserViewModel = viewModel(fa
} }
} }
fun generatePdf(context: Context, fileName: String) {
// Создаем документ
val document = Document()
// Получаем публичный каталог документов
val directory = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS)
// Создаем каталог, если его нет
if (!directory.exists()) {
directory.mkdirs()
}
// Получаем полный путь к файлу
val filePath = File(directory, fileName).absolutePath
// Указываем путь к файлу PDF
val writer = PdfWriter.getInstance(document, FileOutputStream(filePath))
// Открываем документ для записи
document.open()
// Добавляем текст "Привет, мир" в документ
document.add(Paragraph("hello! русский не работает?"))
// Закрываем документ
document.close()
// Закрываем писатель
writer.close()
// Выводим путь в журнал
Log.d("PDF Generation", "File created at: $filePath")
}