适用于android的PDF Viewer API

可能重复:
实现PDF阅读器的代码示例

是否有可用于我的应用程序的免费PDF查看器?

我正在寻找一个PDF查看器,可以搜索,突出显示文本,查看用户想要的页面,而无需更改PDF文件的内容。 就像Adobe Reader一样,但对于可以在应用程序中实现的Android。

您可以将我链接到相同的问题或源代码。

编辑:

我发现这个问题“ Pdf viewer api / library for android app示例代码? ”但我认为他正在寻找一个Reader 。 这个问题“ 用于android的pdf查看器库 ”我读到要查看pdf它应该是Natively,其解决方案是使用外部应用程序。

如果我使用外部应用程序,我希望外部应用程序接受PDF Filepath,要查看的页面和用于编程的搜索关键字,但我认为外部应用程序不会让我这样做。

使用PDFViewer.jar库使用以下代码读取PDF,它将解决您的问题。

First.java

public class First extends ListActivity { String[] pdflist; File[] imagelist; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.main); File images = Environment.getExternalStorageDirectory(); imagelist = images.listFiles(new FilenameFilter() { public boolean accept(File dir, String name) { return ((name.endsWith(".pdf"))); } }); pdflist = new String[imagelist.length]; for (int i = 0; i < imagelist.length; i++) { pdflist[i] = imagelist[i].getName(); } this.setListAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, pdflist)); } protected void onListItemClick(ListView l, View v, int position, long id) { super.onListItemClick(l, v, position, id); String path = imagelist[(int) id].getAbsolutePath(); openPdfIntent(path); } private void openPdfIntent(String path) { try { final Intent intent = new Intent(First.this, Second.class); intent.putExtra(PdfViewerActivity.EXTRA_PDFFILENAME, path); startActivity(intent); } catch (Exception e) { e.printStackTrace(); } } } 

Second.java

 public class Second extends PdfViewerActivity { @Override public void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); } public int getPreviousPageImageResource() { return R.drawable.left_arrow; } public int getNextPageImageResource() { return R.drawable.right_arrow; } public int getZoomInImageResource() { return R.drawable.zoom_in; } public int getZoomOutImageResource() { return R.drawable.zoom_out; } public int getPdfPasswordLayoutResource() { return R.layout.pdf_file_password; } public int getPdfPageNumberResource() { return R.layout.dialog_pagenumber; } public int getPdfPasswordEditField() { return R.id.etPassword; } public int getPdfPasswordOkButton() { return R.id.btOK; } public int getPdfPasswordExitButton() { return R.id.btExit; } public int getPdfPageNumberEditField() { return R.id.pagenum_edit; } } 

并将两个活动声明到清单文件中。

如果你想要一个API,我认为没有任何免费的。 我最近不得不为我的雇主构建一个应用程序,我们最终选择了3个付费库,其中最便宜的是大约$ 1K / app。 如果您只想在外部应用程序中启动它,可以下载一个免费的应用程序并在该文件上启动视图意图。