iTextSharp и юнити...
|
|
killing002 | Дата: Воскресенье, 06 Сентября 2020, 17:52 | Сообщение # 1 |
почетный гость
Сейчас нет на сайте
| Приветствую. ВОзникла проблема.. буду краток , поэтому сразу к делу.
Код #using iTextSharp.text;
PdfReader reader = new PdfReader(path); ITextExtractionStrategy strategy;
Rectangle rect = new Rectangle(45, 0, 135, 150); RenderFilter filter = new RegionTextRenderFilter(rect); for (int i = 1; i <= reader.NumberOfPages; i++) { strategy = new FilteredTextRenderListener(new SimpleTextExtractionStrategy(), filter); print(PdfTextExtractor.GetTextFromPage(reader, i, strategy)); testText.text = PdfTextExtractor.GetTextFromPage(reader, i, strategy); q = 5 / (i - 1) ; }
Вот код и он не работает. В эдиторе все ок, но при порте на андроид он просто игнорирует этот участок кода, как будто его и нет. Прикол с перменной q я добавил, когда заключил этот участок кода в блок try catch. Прикол в том, что в этом выражении просходит деление на ноль, в итоге этот эксепшин тоже игнорится... я не поонимаю, что делать.
Объясню код: с помощью сдк(или не сдк) iTextSharp, я считываю информацию с pdf файла(это уже заранее созданный файл). И после чего эту информацию записываю в обычный текст, который позиционируется на экране. При запуске в эдиторе, повторюсь, все ок, но при билде под андроид, как была надпись "new text", так и осталась.. ПОмогите.
123
|
|
| |
drcrack | Дата: Воскресенье, 06 Сентября 2020, 19:21 | Сообщение # 2 |
старожил
Сейчас нет на сайте
| path покажи
|
|
| |
killing002 | Дата: Воскресенье, 06 Сентября 2020, 21:23 | Сообщение # 3 |
почетный гость
Сейчас нет на сайте
| path = System.IO.Path.Combine(Application.streamingAssetsPath, "test.pdf"); path = Application.persistentDataPath + "/" + "test.pdf"; path = System.IO.Path.Combine(Application.temporaryCachePath, "test");
ПРобовал все 3 варианта, пока ничего не происходит..Добавлено (08 Сентября 2020, 00:46) --------------------------------------------- Вопрос все еще актуален..
123
Сообщение отредактировал killing002 - Воскресенье, 06 Сентября 2020, 21:56 |
|
| |
drcrack | Дата: Вторник, 08 Сентября 2020, 01:21 | Сообщение # 4 |
старожил
Сейчас нет на сайте
| На андроиде для чтения файла из streamingAssetsPath нужно использовать UnityWebRequest
|
|
| |
killing002 | Дата: Вторник, 08 Сентября 2020, 14:05 | Сообщение # 5 |
почетный гость
Сейчас нет на сайте
| Да, вы правы. На ином ресурсе предложили один рабочий вариант. Если кому интересно, то вот, что в итоге получилось
Код path = System.IO.Path.Combine(Application.streamingAssetsPath, "test.pdf"); IEnumerator request() { UnityWebRequest www = UnityWebRequest.Get(path); yield return www.SendWebRequest(); if (www.isNetworkError || www.isHttpError) { Debug.Log(www.error); } else { print(www.downloadHandler.data.Length); mm = new MemoryStream(www.downloadHandler.data); PdfReader reader = new PdfReader(mm); ITextExtractionStrategy strategy; testText.text = "IN"; Rectangle rect = new Rectangle(45, 0, 135, 150); RenderFilter filter = new RegionTextRenderFilter(rect); int q; for (int i = 1; i <= reader.NumberOfPages; i++) { strategy = new FilteredTextRenderListener(new SimpleTextExtractionStrategy(), filter); print(PdfTextExtractor.GetTextFromPage(reader, i, strategy)); testText.text = PdfTextExtractor.GetTextFromPage(reader, 1, strategy); } mm.Close(); } }
123
|
|
| |