Je fais une application qui nécessite d'ouvrir pdf.
J'ai également des fichiers PDF dans le dossier des ressources, je ne peux donc pas l'ouvrir directement dans WebView.
Par défaut Android ne supporte pas le pdf.
Existe-t-il une API qui fonctionne sur Android (à l'exception de MuPdf)?
Aucun lecteur de pdf n’est installé sur mon appareil, donc ACTION VIEW ne m’aide en rien.
Ce qui suit ne fonctionne pas .......
Rendu un fichier PDF en utilisant Java sur Android
Ouvrir fichier de fichier pdf dans l'application
pouvez-vous me suggérer une bonne api ...
merci d'avance...
Je l'ai simplement fait en utilisant PdfViewer.jar (téléchargez-le avec le bouton bleu) et créez un code comme ci-dessous.
First.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;
}
}
J'espère que cela vous aide beaucoup. Essaye ça. N'oubliez pas d'ajouter votre Second.Java
dans votre manifeste. Ajoutez quelques tirages à votre convenance dans second.Java
avec vos tirables. Et, reportez-vous à l'exemple de GitHub
Certains téléphones (tels que le Nexus One) sont livrés avec une version de Quickoffice préinstallée. Il peut donc être aussi simple que d’envoyer l’intention appropriée une fois que vous avez enregistré le fichier sur la carte 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();
}
}
}
});
}
}
Je n’ai jamais eu besoin de faire cela, mais vous pourriez probablement utiliser une bibliothèque telle que iText pour accéder au fichier PDF par programme, puis afficher le PDF.