繁体   English   中英

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

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

从服务器 URL 显示 android 应用程序中的 PDF 文件,而无需下载该文件。 它如何在 android 应用程序中执行。 我曾尝试使用 web_view,但它允许我们下载它。 我不会在活动中打开该文件。 但只显示该文件不允许下载它。

希望这对您有所帮助,它只允许用户查看 PDF 而不是下载它。 您可以在 webview 中添加它,并在其中传递 PDF。 如果您需要更多帮助,请发表评论

 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