如何将位图转换为PDF格式在安卓设备上

9

我有一个名为“thepic”的变量,其中包含位图类型的图片。

imageUri = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM); 
String realpath=getRealPathFromURI(imageUri); 
thepic = BitmapFactory.decodeFile(realpath);**

你想在 PDF 文件中显示位图吗? - Mehul Ranpara
将.png/.jpg/.jpeg文件转换为.pdf文件? - Mehul Ranpara
@Mehul Ranpara 我想把它转换成 .pdf 文件。 - Varun Singh
3个回答

6

您可以通过以下方式实现...您需要下载itextpdf-5.3.2.jar文件并将其附加到您的项目中。

public class WritePdfActivity extends Activity 
{
  private static String FILE = "mnt/sdcard/FirstPdf.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(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();
    }
 }
 }

1
如果你要推荐什么东西,请至少提到你正在使用哪个库。那不在标准的Android SDK中。@Mehul - JoxTraex
@MehulRanpara 这个 jar 包是免费的还是商业使用需要付费?你有什么想法吗? - Snehal Poyrekar
您可以将此jar文件用于商业目的,而无需支付任何费用。 - Mehul Ranpara
在Eclipse中构建是可以的,但在Android源代码中构建不行。我得到了以下错误信息:ImageService.java:167: 无法访问java.awt.Image,找不到java.awt.Image的类文件。image = Image.getInstance(bArray); // /这里我设置了字节数组... - kangear
@MehulRanpara,除非您购买商业许可证,否则iTextPDF不能用于商业目的。否则,该库将在AGPL版权协议下发布,因此任何使用它的人都必须公开其源代码!(请参见https://github.com/itext/itextpdf/blob/master/LICENSE.md) - TBieniek
显示剩余8条评论

2

您需要使用第三方库,没有内置的能力。我知道一些反向操作的库(Qoppa、PDFTron、Reade),但它们都很昂贵。听说iText用于编写位图效果不错,但我自己没有使用过。


-4

我没有尝试过这个,但是在stackoverflow上看到了答案,我来给你回答。

  1. 根据SO上的答案,这是不可能的。

  2. 根据SO上的答案,这是可能的。

所以你可以检查这两个答案,研究一下,看看它们是否能帮助你。


@VarunSingh 无论这是否对你有帮助,请通知我。 - baldguy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接