簡體   English   中英

打開pdf始終打開文檔的第一頁

[英]Open pdf always open document 1st page

我有一個按鈕可以打開這樣的本地pdf手冊

File file = storeFile(is, "user_manual.pdf");
Uri uri = Uri.fromFile(file);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri, "application/pdf");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

這將在已安裝的Adobe Acrobat Reader中打開文檔,並且我們的設置可確保始終安裝Acrobat Reader。

問題是該手冊有50頁。 如果用戶要向下滾動並單擊並選擇用戶手冊按鈕,則需要我們返回pdf的中間位置,這通常很好,但是我有一個特殊要求,即必須打開具有索引的第一頁。

如何打開文檔,使其始終顯示pdf的第一頁?

我努力了

intent.putExtra("page", 1); // parameter used on desktop Acrobat reader

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);

但它總是在用戶第一次離開時第二次打開pdf。

當用戶按下“后退”按鈕時,嘗試關閉打開的文件.pdf的視圖:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
    //replaces the default 'Back' button action
    if(keyCode== KeyEvent.KEYCODE_BACK)
    {

        Intent intent = new Intent(PDFVIEW.this, MainActivity.class);
        startActivity(intent);
        finish();

    }
    return true;
}

我有兩個答案。 如果第一個答案有效,那就太好了。 如果沒有,那么第二個答案當然可以在Adobe Reader中使用,但需要更多工作。

答案1:使用開放參數

Adobe已發布了一個標題為“打開PDF文件的參數 ”的文檔,確實有一個名為page的參數。 您可以這樣使用它:

intent.putExtra("page", 1);

您是否嘗試過:

intent.putExtra("page", "1");

也許參數需要作為字符串傳遞(盡管它實際上是一個整數)。

答案2:介紹公開行動

打開動作允許您在文檔打開后立即觸發動作,例如,您可以在有人打開文檔時執行一些JavaScript。 對於您的情況,您想在第一頁上打開文檔。

向PDF文檔添加打開的操作需要您更改PDF文檔。 您需要一些軟件來通過此操作更新您的PDF。 請參閱如何設置初始視圖屬性? 對於C#示例。 這里有一些Java示例: iText 5示例 / iText 7示例

嗯,

我認為您可以使用AR命令行選項,例如:

(Adobe Reader的路徑)/ A“ page = 100”“(PDF文件的路徑)”

或AR activeX /瀏覽器控件:

“ PDF瀏覽器控件可通過AxAcroPDFLib.AxAcroPDF界面獲得,該界面提供了以下用於以編程方式控制PDF文檔窗口的方法:●GoBackwardStack●GoForwardStack●GotoFirstPage●GotoLastPage .....”

HTH,萊因哈德

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM