[英]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.