Android: inflar un diseño y escribirlo en PDF produce un PDF en blanco

cuando el usuario selecciona un botón de compartir dentro de una actividad, me gustaría inflar un diseño, rellenarlo y, a continuación, escribir ese diseño en un pdf utilizando la nueva API de impresión.

En mi fragmento tengo

@TargetApi(Build.VERSION_CODES.KITKAT) public boolean onActionItemClicked(ActionMode mode, MenuItem item) { switch (item.getItemId()) { case R.id.menu_item_share_context: LayoutInflator inflator = getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); View container = inflator.inflate(R.layout.person_share, null, false); TextView name = (TextView)topContainer.findViewById(R.id.person_name); name.setText("Test Name"); PdfDocument document = new PdfDocument(); PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(612, 792, 1).create() PdfDocument.Page page = document.startPage(pageInfo) container.draw(page.getCanvas()); document.finishPage(page) // write pdf ... 

Desafortunadamente, esto genera un documento pdf en blanco. Sin embargo, cuando uso una vista que ya existe en la pantalla (inflado en onCreateView (..)), se muestra en el pdf como se esperaba.

Agradecería cualquier ayuda.

Si mi teoría es correcta – que su diseño inflado todavía tiene un ancho y una altura de cero – puede llamar a measure() y layout() para tamaño manual y posición de cosas:

 root.measure(800, 480); root.layout(0, 0, 800, 480); 

Dada una View denominada root , esta tendrá (y sus hijos, si los hay) llenar un espacio de 800 píxeles de ancho por 480 píxeles de alto (por ejemplo, un dispositivo WVGA, paisaje, pantalla completa). En su caso, debe ser capaz de llamar a getWidth() y getHeight() en el Canvas para determinar los tamaños a utilizar para measure() y layout() .

FWIW, personalmente, generaría HTML y usaría eso para la base de la impresión, más bien que un archivo de la disposición. Esa es una de las técnicas que demuestro en este proyecto de ejemplo .

  • Abrir PDF en la aplicación Android
  • Cómo adjuntar un PDF a un correo electrónico de la aplicación Android - El tamaño del archivo es cero
  • ¿Cómo puedo abrir un PDF en una aplicación de Android y permitir que los usuarios utilicen los hipervínculos incrustados?
  • Abrir pdf con openwith opción android
  • Cómo hacer PDF en Android
  • XFinium PDF library mobile: Cómo obtener la altura de un texto envuelto
  • PrintedPdfDocument siempre da como resultado PDF dañado
  • ¿Cómo crear un archivo PDF utilizando iText o alguna otra biblioteca en android?
  • Cómo desarrollar un lector de pdf en android
  • Creación de un archivo pdf en android mediante programación y escritura en él
  • Lectura de un documento PDF en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.