截图转换为android中的pdf文件

时间:2016-08-26 05:21:12

标签: android

我正在尝试将活动转换为pdf格式。我已经截取了与bitmap相同的屏幕截图.PLease帮我将该sreenshot转换为所需的pdf文件。谢谢。 请提供代码。谢谢。

2 个答案:

答案 0 :(得分:0)

Plz试试这个问题:

How I can convert a bitmap into PDF format in android

pdf-format-in-android/14393561#14393561

或在项目中包含itextpdf-5.3.2.jar

答案 1 :(得分:0)

这是我用过的代码......

1)MainActivity

公共类MainActivity扩展Activity {           //按钮btn_getpdf;

      private LinearLayout linearLayout;
      private Bitmap myBitmap;

      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
          // btn_getpdf = (Button) findViewById(R.id.button_pdf);
          linearLayout = (LinearLayout) findViewById(R.id.linear1);
          linearLayout.post(new Runnable() {
              public void run() {

                  //take screenshot
                  myBitmap = captureScreen(linearLayout);

                  Toast.makeText(getApplicationContext(), "Screenshot captured..!", Toast.LENGTH_LONG).show();

                  try {
                      if (myBitmap != null) {
                          //save image to SD card
                          saveImage(myBitmap);
                      }
                      Toast.makeText(getApplicationContext(), "Screenshot saved..!", Toast.LENGTH_LONG).show();
                  } catch (IOException e) {
                      // TODO Auto-generated catch block
                      e.printStackTrace();
                  }

              }
          });

      }

      public Bitmap captureScreen(View v) {

          Bitmap screenshot = null;
          try {

              if (v != null) {

                  screenshot = Bitmap.createBitmap(v.getMeasuredWidth(), v.getMeasuredHeight(), Bitmap.Config.ARGB_8888);
                  Canvas canvas = new Canvas(screenshot);
                  v.draw(canvas);
              }

          } catch (Exception e) {
              // Log.d("ScreenShotActivity", "Failed to capture screenshot because:" + e.getMessage());
          }

          return screenshot;
      }

      public void saveImage(Bitmap bitmap) throws IOException {

          ByteArrayOutputStream bytes = new ByteArrayOutputStream();
          bitmap.compress(Bitmap.CompressFormat.PNG, 40, bytes);
          File f = new File(root.getAbsolutePath() + "/DCIM/Camera/bitmap.jpg");
          f.createNewFile();
          FileOutputStream fo = new FileOutputStream(f);
          fo.write(bytes.toByteArray());
          fo.close();
      }
  }

2)WritePdfActivity

public class WritePdfActivity extends Activity {     private static String FILE =“DCIM / Camera / GenPdf.pdf”;

static Image image;
static ImageView img;
Bitmap bmp;
static Bitmap bt;
static byte[] bArray;

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    img=(ImageView)findViewById(R.id.imageView1);

    try
    {
        Document document = new Document();

        PdfWriter.getInstance(document, new FileOutputStream(FILE));
        document.open();

        addImage(document);
        document.close();
    }

    catch (Exception e)
    {
        e.printStackTrace();
    }

}
private static void addImage(DocumentsContract.Document document)
{

    try
    {
        image = Image.getInstance(bArray);  ///Here i set byte array..you can do bitmap to byte array and set in image...
    }
    catch (BadElementException e)
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    catch (MalformedURLException e)
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    catch (IOException e)
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    // image.scaleAbsolute(150f, 150f);
    try
    {
        document.add(image);
    } catch (DocumentException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

}