View Full Version : نمایش فایل pdf در برنامه
salamis94
یک شنبه 27 مهر 1393, 10:25 صبح
سلام.
میخام همونطور که یک فایل html رو میزاریم تو پوشه assets و توی یک webviewer نشونش میدیم.همین کارو برای یه فایل pdf انجام بدم.لطفا راهنمایی کنید.
esmail3309
یک شنبه 27 مهر 1393, 14:13 عصر
با کد زیر میتونی این کارو انجام بدی
اما باید نرم افزار adode reader روی گوشی نصب باشه چون PDF ها با نرم افزار adode reader نمایش داده میشوند
package ir.alipoor.ir;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
import android.content.res.AssetManager;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebView;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
AssetManager assetManager = getAssets();
InputStream in = null;
OutputStream out = null;
File file = new File(getFilesDir(), "a1.pdf");
try
{
in = assetManager.open("a1.pdf");
out = openFileOutput(file.getName(), Context.MODE_WORLD_READABLE);
copyFile(in, out);
in.close();
in = null;
out.flush();
out.close();
out = null;
} catch (Exception e)
{
Toast.makeText(getApplicationContext(), "نرم افزار adode reader نصب نیست ", 2000).show();
finish();
}
try{
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(
Uri.parse("file://" + getFilesDir() + "/a1.pdf"),
"application/pdf");
startActivity(intent);
finish();
}
catch (Exception e)
{
Toast.makeText(getApplicationContext(), "نرم افزار adode reader نصب نیست ", 2000).show();
finish();
}
}
private void copyFile(InputStream in, OutputStream out) throws IOException
{
byte[] buffer = new byte[1024];
int read;
while ((read = in.read(buffer)) != -1)
{
out.write(buffer, 0, read);
}
}
}
salamis94
دوشنبه 28 مهر 1393, 10:37 صبح
نمیشه در قالب برنامه خودمون این کار و کنیم که نیاز به برنامه خارج از برنامه خودمون نباشه؟
rubiks.kde
دوشنبه 28 مهر 1393, 11:10 صبح
تاپیک تکراریه.توی انجمن سرچ کنید قبلا بحث شده
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.