Как отобразить документ в формате PDF в Webview? - PullRequest
0 голосов
/ 09 июня 2018

Я хочу показать PDF в новом действии на Android, я работаю с веб-браузером и у меня есть чистая веб-страница PHP, которая при вводе кода в INPUT и нажатии кнопки открывает новую страницу с файлом PDFсоздан и в соответствии с введенным кодом

ВХОД + КНОПКА

НОВАЯ СТРАНИЦА PDF

У меня есть эти разрешения на Android

webSetting.setJavaScriptEnabled(true);
    webSetting.setDisplayZoomControls(true);
    htmlWebView.getSettings().setJavaScriptEnabled(true);
    htmlWebView.getSettings().setDomStorageEnabled(true);
    htmlWebView.getSettings().setDatabaseEnabled(true);
    htmlWebView.getSettings().setMinimumFontSize(1);
    htmlWebView.getSettings().setMinimumLogicalFontSize(1);

Я знаю, что Android не может показывать PDF в том же веб-просмотре)

Я сделал следующее, нажмите кнопку в Интернете и начните загрузку уже созданного PDF, не открывая страницу с:

header("Content-Type: application/octet-stream");
$file = $_GET["file"] .".pdf";
header("Content-Disposition: attachment; filename=" . urlencode($file));   
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Description: File Transfer");            
header("Content-Length: " . filesize($file));
flush(); // this doesn't really matter.
$fp = fopen($file, "r");
while (!feof($fp))
{
 echo fread($fp, 65536);
 } 
fclose($fp); 

, но он все еще не работает, и я использую следующий код для загрузки других файлов, не открывая их, прямая загрузка ..

 htmlWebView.setDownloadListener(new DownloadListener() {
        public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimeType, long contentLength) {
            DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
            request.setMimeType(mimeType);
            String cookies = CookieManager.getInstance().getCookie(url);
            request.addRequestHeader("cookie", cookies);
            request.addRequestHeader("User-Agent", userAgent);
            request.setDescription("Downloading PDF...");
            request.setTitle(URLUtil.guessFileName(url, contentDisposition, mimeType));
            request.allowScanningByMediaScanner();
            request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
            request.setDestinationInExternalFilesDir(MainActivity.this, Environment.DIRECTORY_DOWNLOADS,".pdf");
            DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
            dm.enqueue(request);
            Toast.makeText(getApplicationContext(), "Downloading PDF...",
                    Toast.LENGTH_LONG).show();
        }});

Есть еще одна техника, которую яне знаю, потому что я исследовал дни, и я ничего не могу найти ..

1 Ответ

0 голосов
/ 09 июня 2018

Вы можете использовать Google Docs Viewer, чтобы прочитать ваш pdf онлайн:

WebView webview = (WebView) findViewById(R.id.webview);
webview.getSettings().setJavaScriptEnabled(true); 
String pdf = "http://www.adobe.com/devnet/acrobat/pdfs/pdf_open_parameters.pdf";
webview.loadUrl("http://drive.google.com/viewerng/viewer?embedded=true&url=" + pdf);
...