먼저 "다운로드"하지 않고 Android 웹 브라우저를 통해 PDF를 표시하는 방법


88

파일을 다운로드 한 다음 사용자가 다운로드 앱 또는 알림 표시 줄에서 파일을 열도록 할 필요없이 기본 Android 브라우저에서 PDF, Word 또는 기타 일반적인 파일을 자동으로 열 수있는 방법이 있습니까? ?

포함하고 싶은 문서가 많고 HTML로 변환 할 필요가없는 웹 애플리케이션이 있지만 사용자가 파일을 다운로드하고 수동으로 열도록하는 것은 사용자를 교육하기가 쉽지 않습니다.

iOS에서 이러한 파일은 모두 브라우저에 인라인으로 표시됩니다. 브라우저가 파일을 Acrobat Reader 나 QuickOffice 또는 사용자가 표시해야하는 프로그램으로 자동 실행하도록하는 방법을 원합니다.

누구든지 그렇게하는 방법을 알고 있습니까? Google 문서 도구에는 PDF보기가 지원되지만 웹 앱을 사용하는 사람들은 모든 경우에 공용 인터넷에 액세스하지 못할 수 있으며 로컬 웹 서버에 접속할 수 있습니다.


1
그런 식으로 작동하는 것을 본 적이 없습니다. 즉, pdf 파일을 디코딩하고 적절하게 표시 할 수있는 자신 만의 브라우저를 만들 수 있다고 생각합니다. 나는 인기있는 브라우저가 이것을 지원한다고 생각하지 않습니다.
FoamyGuy 2011 년

PDF 파일이 "빠른 웹보기"에 최적화되어 있습니까? 그렇지 않으면 다운로드가 진행되는 동안 표시 될 수 없으므로 다운로드 한 다음 표시 만 할 수 있습니다.
로버트

답변:


66

다음 위치에 URL을 추가하여 Google 문서 뷰어에서 PDF를 열 수 있습니다.

http://docs.google.com/gview?embedded=true&url=<url of a supported doc>

이것은 기본 브라우저 또는 WebView에서 PDF를 엽니 다.

지원되는 형식 목록은 여기에 있습니다 .


4
매우 도움이되었습니다. 감사합니다. 100 % 필요한지는 모르겠지만 <지원되는 문서의 URL>을 urlencoded해야한다는 점을 언급 할 가치가있을 것입니다.
mason81

1
이 기능이 작동하지 않습니다. 다운로드 버튼이있는 "죄송합니다.이 문서를 미리 보는 데 문제가 있습니다."라는 페이지 만 표시됩니다. 다운로드 버튼을 클릭해도 아무 일도 일어나지 않습니다.
Lee Yi Hong

25
위의 링크는 Android의 Chrome에서 작동하지 않아로 전환 https://drive.google.com/viewerng/viewer?embedded=true&url=####하여 작업을 수행했습니다!
QFDev 2015 년

2
안녕하세요, 답변의 URL이 더 이상 작동하지 않는 것 같습니다. 이제 webView 리스너에서 무한 루프가 발생합니다. QFDev의 댓글에 게시 된 URL 이 작동 중입니다.
Gene Bo

올바르게 기억하면 여전히 임시 Android 디렉토리에 문서를 저장합니다.
Jean-Paul


4

특히 firefox 용 pdf.js 플러그인을 설치하려면 앱 스토어를 사용하지 않습니다. 대신 mozilla 내부에서 addons.mozilla.org로 이동하여 거기에서 설치하십시오. 또한 제대로 설치되었는지 확인하려면 Tools : Add-ons 메뉴 (데스크톱 버전에서 생각할 수있는 "about : plugins"URL이 아님)로 이동하십시오.

(새 계정, 그렇지 않으면 위의 답변에 대한 의견으로 넣을 것입니다)


4
String format = "https://drive.google.com/viewerng/viewer?embedded=true&url=%s";
String fullPath = String.format(Locale.ENGLISH, format, "PDF_URL_HERE");
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(fullPath));
startActivity(browserIntent);

3

나도 이것이 필요했고 위의 링크가 작동을 멈췄으므로 이것이 New Google Drive에서 작동하는 것으로 나타났습니다.

Google은 PDF의 Not in GDrive에 대한 링크를 생성하는 서비스를 제공합니다. https://docs.google.com/viewer URL을 추가하면 링크와 IFrame 코드가 생성됩니다 (자세히 보면 패턴을보고 링크를 생성 할 수 있습니다. 이 웹 서비스없이)

또한 Google 드라이브에 저장된 PDF에 대해이를 수행하는 방법 이 있습니다 . https://docs.google.com/viewer?srcid=YOUR_GDRIVE_PDF_DOC_ID_HERE&pid=explorer&efh=false&a=v&chrome=false&embedded=true (링크 또는 src 일 수 있음) iframe의 URL)

나는 안드로이드에서 테스트했고 PDF 뷰어가 멋지게 나타납니다.


저에게는 현재 Google 계정으로 로그인하지 않은 경우 로그인 페이지로 이동합니다. 이것을 우회하고 pdf를 보는 방법이 있습니까?
h_k 2014 년

viewerjs.org를 사용해보십시오. viewer.js 파일은 브라우저에 독립적이고 서버에 의존하여 무거운 작업을 수행하기 때문에 유망 해 보입니다.
user1493559 dec.

2

안타깝게도 Android 장치에있는 기본 브라우저는 이러한 유형의 파일을 지원하지 않습니다. 4.0에서 우리가 그것을 할 수 있는지 봅시다.


2

이것을 사용할 수 있습니다

webView.loadUrl("https://docs.google.com/viewer?url=" + "url of pdf file"); 

누구든지 반대 투표의 이유를 언급 해 주시겠습니까?
Akash Bisariya

귀하의 답변은 일부 프로그래밍 기술에 적합 할 수 있습니다. 답변은 URL 일 수 있습니다. 이미 위에서 언급 한 앵커 태그에 추가 할 수도 있습니다.
Siddaram H

@akash 아마도 더 많은 설명을 추가해야 할 것입니다. 여기에 규칙이 있습니다
huzain07

2
  Try this, worked for me.

    WebView view = (WebView) findViewById(R.id.yourWebView);

    view.getSettings().setJavaScriptEnabled(true);
    view.getSettings().setPluginState(WebSettings.PluginState.ON);
    view.loadUrl("http://docs.google.com/gview?embedded=true&url="
                  +"your document link(pdf,doc,docx...etc)");

setPluginState ON 감사 그것을 언급, 중요하다
에 beeing JK

@BeeingJk setPluginState는 API 18 ( stackoverflow.com/questions/19362049/… ) 에서 더 이상 사용되지 않습니다 .
CoolMind

@CoolMind 당신이 링크에서 보여준 것이 setPluginsEnabled아니라setPluginState
Beeing Jk

@BeeingJk, 페이지를 다시 열고 Ctrl + F를 누르고 "setPluginState"를 입력하고 Enter를 누르십시오.
CoolMind

@CoolMind 확인 감사 또한, 여기를 보았다 developer.android.com/reference/android/webkit/... ,하지만 난 제거 할 수 없습니다 setPluginState다른 내 웹뷰하지 않습니다 일
에 beeing JK

0
public class MainActivity extends AppCompatActivity {

    Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        button = findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                openURL("http://docs.google.com/viewer?url=" + " your pdf link ");
            }
        });
    }

    private void openURL(String s) {
        Uri uri = Uri.parse(s);
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setDataAndType(uri,"text/html");
        startActivity(intent);
    }
}

-4
  • PDF 파일을 표시하려면 Android 용 Acrobat Reader .apk 파일을 다운로드하십시오.
  • pdf 파일을 sd 카드에 넣기
  • 아래 코드 스 니펫 사용

    File file= new File("/sdcard/test.pdf");
    Uri path=Uri.fromFile(file);
    Intent i =new Intent(Intent.ACTION_VIEW);
    i.setDataAndType(path,"application/pdf");
    i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(i);
    

4
이것은 기본 안드로이드 애플리케이션이 아닌 웹 브라우저 용입니다. -1
ryandawkins 2014 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.