Отобразить PDF документ внутри приложения на fragment

Интерфейс, диалоги, темы, стили, меню
Ответить
NightScream
Сообщения: 35
Зарегистрирован: 22 фев 2015, 23:18

Отобразить PDF документ внутри приложения на fragment

Сообщение NightScream » 01 авг 2016, 20:49

Доброго дня
Я знаю абсолютный путь до документа pdf (локальное хранилище), его нужно по клику отобразить на фрагменте, тоесть поверх работающей активити.
Желательно еще бы растянуть фрагмент по ширине максимально.

На ум приходит webview, но не думаю что это лучший вариант.

Возможно может проще открывать документы другого типа?
Критерии для типа документа:
-обычный пользователь должен уметь их составлять
-наличие картинок

Html для меня был бы отличным вариантом, но его не сверстает обычный пользователь.

Буду благодарен за любые напутствия и идеи.

Sergey777
Сообщения: 68
Зарегистрирован: 30 мар 2015, 17:16

Re: Отобразить PDF документ внутри приложения на fragment

Сообщение Sergey777 » 02 авг 2016, 14:48

NightScream писал(а):Доброго дня
Я знаю абсолютный путь до документа pdf (локальное хранилище), его нужно по клику отобразить на фрагменте, тоесть поверх работающей активити.
Желательно еще бы растянуть фрагмент по ширине максимально.

На ум приходит webview, но не думаю что это лучший вариант.

Возможно может проще открывать документы другого типа?
Критерии для типа документа:
-обычный пользователь должен уметь их составлять
-наличие картинок

Html для меня был бы отличным вариантом, но его не сверстает обычный пользователь.

Буду благодарен за любые напутствия и идеи.
Здравствуйте. В Android 4.4 (API 19) появилась возможность программно генерировать PDF-файлы с помощью нового пакета android.graphics.pdf. Вот нашёл простой пример, как создать PDF:

Код: Выделить всё

// Создаём PDF-документ в памяти
	PdfDocument document = new PdfDocument();

	// настройки страницы
	PageInfo pageInfo = new PageInfo.Builder(400, 300, 1).create();

	// Создаем страницу документа
	Page page = document.startPage(pageInfo);

	// источник для заполнения документа
	View content = findViewById(R.id.tvBook); // TextView с каким-то текстом
	content.draw(page.getCanvas());

	// заканчиваем работать со страницей
	document.finishPage(page);
	
	ByteArrayOutputStream os = new ByteArrayOutputStream();
	
	try {
		
		// сохраняем на внешнем накопителе
		document.writeTo(new FileOutputStream(Environment.getExternalStorageDirectory().getPath() + "/pushkin886.pdf"));
		document.close();
		os.close();
	} catch (IOException e) {
		throw new RuntimeException("Error generating file", e);
	}
Про то как можно открыть PDF попробуйте поискать в интернете.

Ответить