textos - ¿Cómo leer el pdf en mi aplicación de Android?
programa para leer pdf en audio español (3)
Algunos teléfonos (como el Nexus One) vienen con una versión de Quickoffice preinstalada, por lo que puede ser tan fácil como enviar el Intento apropiado una vez que hayas guardado el archivo en la tarjeta SD.
public class OpenPdf extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button = (Button) findViewById(R.id.OpenPdfButton);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
File file = new File("/sdcard/example.pdf");
if (file.exists()) {
Uri path = Uri.fromFile(file);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(path, "application/pdf");
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
try {
startActivity(intent);
}
catch (ActivityNotFoundException e) {
Toast.makeText(OpenPdf.this,
"No Application Available to View PDF",
Toast.LENGTH_SHORT).show();
}
}
}
});
}
}
Estoy haciendo una aplicación que requiere abrir pdf.
También tengo algunos archivos PDF en la carpeta de activos, por lo que no puedo abrirlos en la vista web directamente.
Por defecto, android no es compatible con pdf.
¿Hay alguna API que funcione en Android (excepto MuPdf)?
Mi dispositivo no tiene ningún lector de PDF instalado, por lo que ACTION VIEW no es útil para mí
Lo siguiente no funciona .......
Renderice un archivo PDF usando Java en Android
Abrir archivo de activos pdf en la aplicación
me puedes sugerir alguna buena api ...
gracias por adelantado...
Nunca tuve que hacer esto, pero probablemente podría usar una biblioteca como iText para acceder al archivo PDF programáticamente y luego mostrar el PDF.
Simplemente lo hice usando PdfViewer.jar (lo descargué con el botón azul) y haciendo un código como el siguiente.
Primero.java
@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<String>(this,android.R.layout.simple_list_item_1, pdflist));
}
@Override
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;
}
}
Espero que esto te ayude mucho. Prueba esto. No Second.java
agregar tu Second.java
en tu manifiesto. Agregue algunos second.java
lo que requiera en second.java
con sus second.java
. Y, refiérase al ejemplo de GitHub