我在这里看到了可以在 PDF 查看器中打开 PDF 文件的代码。是否可以修改代码以使 PDF 查看器在特定页面打开 PDF?
5 回答
不可以。您无法控制第三方应用程序,除非它提供了这种可能性。
是的,您可以在 pdf 文件中打开特定页面。
首先创建一个全局变量,例如
// 给出一个默认值
int pageNumber=0;
// secondly create a button in search dilaoge to find exact page in activty.
btn.setOnClickListner(new View.OnClickListener() {
@Override
public void onClick(View view) {
int position = 1;
String input = String.valueOf(textSearch.getText());
if (input != null && !input.equals("")) {
position =
Integer.valueOf(String.valueOf(textSearch.getText()));
}
// assign globar var pageNumber to finding position
pageNumber = position-1;
textSearch.setText("");
alertDialog1.dismiss();
}
// 在第三步中,只是在默认函数中传递了 pageNumber。
pdfViewr.from("Your uri String ").default(pageNumber).load();
Andrejs 建议我应该修改一个开源 pdf 查看器应用程序。当我对 Android 编程更有信心时,我可能会尝试这样做。与此同时,我正在遵循不同的策略。我将各个 PDF 页面的图像存储为单独的 jpg 文件,并使用 WebView / WebViewClient 来显示各个页面。这些可以缩放和平移(如在 PDF 查看器中),当我触摸页面边缘附近的屏幕时,我的应用程序很容易移动到下一页或上一页。
对于 ezpdf 阅读器:
添加intent.putExtra("page", 110);
但是 ezpdf 已经很老了。因此,我建议您查看我的新开源 pdf 查看器和注释器项目:
https://github.com/KnIfER/PolyPic
Intent it = new Intent(Intent.ACTION_VIEW)
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
.putExtra("page", yourPageIndex)
.setDataAndType(yourUri, "application/pdf");
startActivity(it);
它基于 PDFium,速度很快,甚至可以在 android 4.4 上运行良好。
打开 PDF 文件到特定页面
要将 HTML 链接定位到 PDF 文件中的特定页面,请将 #page=[page number] 添加到链接 URL 的末尾。
例如,此 HTML 标记打开名为 myfile.pdf 的 PDF 文件的第 4 页:
<A HREF="http://www.example.com/myfile.pdf#page=4">