我正在开发一个应用程序,我需要将图像转换为PDF.我尝试了一些东西,但问题是,PDF中的图像尺寸非常小.我需要解决方案来解决这个问题 此外,我正在寻找将多个图像转换为单个PDF文档.我将发布我尝试过的代码.
public void convertPDF(byte[] path)
{
String FILE = "mnt/sdcard/FirstPdf.pdf";
Document document=new Document();
try {
PdfWriter.getInstance(document, new FileOutputStream(FILE));
document.open();
try {
image=Image.getInstance(path);
document.add(new Paragraph("My Heading"));
document.add(image);
document.close();
} catch (IOException e) {
e.printStackTrace();
}
} catch (DocumentException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
当我将Bitmap转换为Byte数组时,我正在压缩图像,我猜,这就是原因.在不压缩图像的情况下,我无法将Bitmap转换为字节数组.
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG,100,stream);
byte[] byteArray=stream.toByteArray();
convertPDF(byteArray);
Run Code Online (Sandbox Code Playgroud)
这有什么解决方案吗?
更新
在这里,我已经实现了@Burak Cakir在答案中提出的答案.但现在我在PDF中获得更大的图像.为了更好地理解,请查看下面的图像.
我需要退出我的应用程序,我已经引用了 Stack Overflow 和其他网站上的所有链接,我已经使用了,,finishAffinity()
仍然无法实现它。我正在重写主活动中的 onBackPressed 方法并终止应用程序。finish()
System.exit(0)
实际上,当我启动应用程序后按后退按钮时,它工作得很好。但是当我继续进行其他活动并返回 MainActivity 时,它不起作用。如果我使用finishAffinity()
它,则打开我的相机活动,这是我在项目中的活动之一。如果我使用finish()
它就是打开我的第二页活动。
我将发布我的代码以供参考。
MainActivity.Java
@Override
public void onBackPressed()
{
if (back_pressed + 2000 > System.currentTimeMillis())
{
Log.e("called", "back pressed");
finish();
}
else {
Toast.makeText(getBaseContext(), "Press twice to exit!", Toast.LENGTH_SHORT).show();
}
back_pressed = System.currentTimeMillis();
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试禁用日历中的星期六和星期日。首先,我必须找到它。我尝试过,但无法获取。我在这里发布了代码。
public int countWeekendDays() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_WEEK, Calendar.DATE+1);
int daysInMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
int count = 0;
for (int day = 1; day <= daysInMonth; day++) {
calendar.set(Calendar.DAY_OF_WEEK, Calendar.DATE+1, day);
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
if (dayOfWeek == Calendar.SUNDAY || dayOfWeek == Calendar.SATURDAY) {
if(dayOfWeek==Calendar.SUNDAY)
calendar.add(Calendar.DATE, Calendar.SUNDAY-1);
else if(dayOfWeek==Calendar.SATURDAY)
calendar.add(Calendar.DATE, Calendar.SATURDAY);
disable.add(calendar.getTime());
}
}
for(int i=0;i<disable.size();i++)
{
Log.e("***&***",disable.get(i).toString());
}
return count;
}
Run Code Online (Sandbox Code Playgroud)
我需要获取当前月的星期六和星期日(说:Aug),但是我得到的结果是前一个月,即7月。
我需要找出给定的数组是否按降序排序...
我得到了输出,但在门户中它显示为错误答案。
这是我的代码。
#include<stdio.h>
int main()
{
int n,a[15],i,k=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{ scanf("%d",&a[i]);}
for(i=1;i<=n;i++)
{
if(a[i]<a[i+1])
k++;
}
if(k==0)
printf("yes");
else
printf("no");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
帮我想想办法...