В моем приложении я получаю поток байтов и конвертирую его в файл pdf в памяти телефона. Как это сделать для PDF? И показать это на мероприятии?
Как сделать PDF в Android
Ответ 1
Некоторые телефоны (например, Nexus One) поставляются с предустановленной версией Quickoffice, поэтому она может быть такой же простой, как отправка соответствующее намерение, как только вы сохранили файл на 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();
                    }
                }
            }
        });
    }
}
		Ответ 2
Откройте файл PDF в веб-обозревателе.
public class MyPdfViewActivity extends Activity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    WebView mWebView=new WebView(MyPdfViewActivity.this);
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.getSettings().setPluginsEnabled(true);
    mWebView.loadUrl("https://docs.google.com/gview?embedded=true&url="+LinkTo);
    setContentView(mWebView);
  }
}
		Ответ 3
Эта библиотека проста и работает хорошо: Android Pdf Viewer https://github.com/barteksc/AndroidPdfViewer
Старый ответ...
Я думаю, что Джоан Сапата дает нам лучшее и простое решение:
https://github.com/JoanZapata/android-pdfview
Я заверяю вас, что он работает!
Ответ 4
Для локальных файлов PDF вы можете отображать их через сторонние библиотеки. например, используйте библиотеку MuPDF, ее поддерживаемые типы файлов включают в себя PDF, PNG и JPEG.
Один из недостатков MuPDF заключается в том, что он использует собственную библиотеку для выполнения цели, поэтому позднее будет нелегко переносить приложение на платформу BlackBerry.
Ответ 5
Android-Lollipop (api 21) представляет новый API: PdfRenderer
Этот API позволяет создавать растровые изображения со страницы в документе PDF.
В ближайшее время:
-  
получить дескриптор файла для поиска из вашего документа pdf:
ParcelFileDescriptor fd = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY) -  
создать PdfRenderer
PdfRenderer renderer = new PdfRenderer(fd); -  
подготовить растровое изображение
Bitmap bitmap = Bitmap.createBitmap(WIDTH, HEIGHT, Bitmap.Config.ARGB_4444); -  
получить PdfRenderer.Page для рендеринга
PdfRenderer.Page page = renderer.openPage(pageIndex); -  
отобразить страницу на подготовленном растровом изображении
page.render(bitmap, null, null, PdfRenderer.Page.RENDER_MODE_FOR_DISPLAY); -  
теперь вы можете делать то, что хотите, с растровым изображением.
 - обратите внимание, что два нулевых args могут позволить вам скопировать часть страницы и выполнить преобразование (используя Matrix) клип
 - есть другой режим рендеринга: RENDER_MODE_FOR_PRINT. Если вам нужен этот режим, есть некоторые рекомендации по его правильному использованию: детали.
 
Ответ 6
Чтобы открыть pdf файл из массива байтов, вы можете использовать RadaeePDF, вы можете сделать следующее в своей деятельности:
private PDFReader m_vPDF = null;
private Document doc = new Document();
public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    Global.Init(this);
    m_vPDF = new PDFReader(this);
    doc.Close();
    int ret = m_doc.OpenMem(data, password);
        switch( ret )
        {
            case -1://need input password
                finish();
                break;
            case -2://unknown encryption
                finish();
                break;
            case -3://damaged or invalid format
                finish();
                break;
            case -10://access denied or invalid file path
                finish();
                break;
            case 0://succeeded, and continue
                break;
            default://unknown error
                finish();
                break;
        }
    m_vPDF.open(doc);
    setContentView( m_vPDF );
}