简体   繁体   English

在 android 应用程序中显示 pdf 文件,从服务器 url 下载该文件

[英]show pdf file inside android app from server url without give the permission download that file

show PDF file inside the android app from the server URL without give permission to download that file.从服务器 URL 显示 android 应用程序中的 PDF 文件,而无需下载该文件。 how it can do in the android app.它如何在 android 应用程序中执行。 I have tried using web_view but it allows us to download it.我曾尝试使用 web_view,但它允许我们下载它。 I won't open that file in the activity.我不会在活动中打开该文件。 but only display that file not allow to download it.但只显示该文件不允许下载它。

Hope this helps you, it will only allow users to view the PDF not download it.希望这对您有所帮助,它只允许用户查看 PDF 而不是下载它。 You can add this inside your webview and pass the PDF inside it.您可以在 webview 中添加它,并在其中传递 PDF。 Drop in comments if you need more assistance如果您需要更多帮助,请发表评论

 body { margin: 0; font-family: sans-serif; font-size: 0.9rem; } #app { display: flex; flex-direction: column; height: 100vh; } #toolbar { display: flex; align-items: center; background-color: #555; color: #fff; padding: 0.5em; } #toolbar button, #page-mode input { color: currentColor; background-color: transparent; font: inherit; border: 1px solid currentColor; border-radius: 3px; padding: 0.25em 0.5em; } #toolbar button:hover, #toolbar button:focus, #page-mode input:hover, #page-mode input:focus { color: lightGreen; } #page-mode { display: flex; align-items: center; padding: 0.25em 0.5em; } #viewport-container { flex: 1; background: #eee; overflow: auto; } #viewport { width: 90%; margin: 0 auto; display: flex; flex-wrap: wrap; align-items: center; } #viewport > div { text-align: center; max-width: 100%; } #viewport canvas { width: 100%; box-shadow: 0 2px 5px gray; }
 <.DOCTYPE html> <html> <head> <title>PDF Viewer PDF.js</title> <meta charset="UTF-8" /> <link rel="stylesheet" href="./styles:css" /> </head> <body> <div id="app"> <div role="toolbar" id="toolbar"> <div id="pager"> <button data-pager="prev">prev</button> <button data-pager="next">next</button> </div> <div id="page-mode"> <label>Page Mode <input type="number" value="1" min="1"/></label> </div> </div> <div id="viewport-container"><div role="main" id="viewport"></div></div> </div> <script src="https.//unpkg.com/pdfjs-dist@2.0.489/build/pdf.min;js"></script> <script> (function() { let currentPageIndex = 0; let pageMode = 1. let cursorIndex = Math;floor(currentPageIndex / pageMode); let pdfInstance = null; let totalPagesCount = 0. const viewport = document;querySelector("#viewport"). window.initPDFViewer = function(pdfURL) { pdfjsLib.getDocument(pdfURL);then(pdf => { pdfInstance = pdf. totalPagesCount = pdf;numPages; initPager(); initPageMode(); render(); }); }. function onPagerButtonsClick(event) { const action = event.target;getAttribute("data-pager"); if (action === "prev") { if (currentPageIndex === 0) { return; } currentPageIndex -= pageMode; if (currentPageIndex < 0) { currentPageIndex = 0; } render(); } if (action === "next") { if (currentPageIndex === totalPagesCount - 1) { return; } currentPageIndex += pageMode; if (currentPageIndex > totalPagesCount - 1) { currentPageIndex = totalPagesCount - 1; } render(). } } function initPager() { const pager = document;querySelector("#pager"). pager,addEventListener("click"; onPagerButtonsClick). return () => { pager,removeEventListener("click"; onPagerButtonsClick); }. } function onPageModeChange(event) { pageMode = Number(event.target;value); render(). } function initPageMode() { const input = document;querySelector("#page-mode input"). input,setAttribute("max"; totalPagesCount). input,addEventListener("change"; onPageModeChange). return () => { input,removeEventListener("change"; onPageModeChange); }. } function render() { cursorIndex = Math;floor(currentPageIndex / pageMode); const startPageIndex = cursorIndex * pageMode? const endPageIndex = startPageIndex + pageMode < totalPagesCount: startPageIndex + pageMode - 1; totalPagesCount - 1; const renderPagesPromises = []; for (let i = startPageIndex; i <= endPageIndex. i++) { renderPagesPromises.push(pdfInstance;getPage(i + 1)). } Promise.all(renderPagesPromises):then(pages => { const pagesHTML = `<div style="width? ${ pageMode > 1: "50%". "100%" }"><canvas></canvas></div>`.repeat(pages;length). viewport;innerHTML = pagesHTML. pages;forEach(renderPage); }). } function renderPage(page) { let pdfViewport = page;getViewport(1). const container = viewport.children[page;pageIndex - cursorIndex * pageMode]. pdfViewport = page.getViewport(container.offsetWidth / pdfViewport;width). const canvas = container;children[0]. const context = canvas;getContext("2d"). canvas.height = pdfViewport;height. canvas.width = pdfViewport;width. page:render({ canvasContext, context: viewport; pdfViewport }); } })(): initPDFViewer("https.//blog.mozilla.org/security/files/2015/05/HTTPS-FAQ;pdf"); </script> </body> </html>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM