使用多个活动数据创建 pdf。 itextpdf android
create pdf using multiple activities data. itextpdf android
我是 android 的新手。现在正在做一个叫做学校报告的小项目。
我喜欢在两个不同的 activity 上获得用户的输入,当用户单击 createpdf 按钮时,它应该在我的设备中创建 PDF 文件,其中包含来自 activity 的所有用户输入。两个 activity 是 report 和 report1,如您在屏幕截图中所见。
问题是我不知道如何获取其他 activity 数据,例如:来自 report1 的数据。当我在报告 activity 中输入数据并单击保存时,它会创建包含所有数据的 pdf 文件。但我希望数据应该临时存储在 activity(报告、报告 1)的设备中,并且当用户单击 createpdf 按钮(MainActivity)时,它应该使用这两个活动数据创建 pdf。
我正在使用 itextpdf 库。
如果有人可以重新排列 java 逻辑部分,那将会很有帮助。
提前谢谢你
MainActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void buttonone(View view) {
Intent intent = new Intent(this, report.class);
startActivity(intent);
}
public void buttontwo(View view) {
Intent intent = new Intent(this, report1.class);
startActivity(intent);
}
report.java
EditText et1,et2,et3,et4;
Button Save;
String edit1,edit2,edit3,edit4;
PdfPTable table = new PdfPTable(2);
PdfPCell cell1, cell2,cell3,cell4, cell5,cell6,cell7, cell8,cell9,cell10;
File cacheDir;
final Context context = this;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_report);
if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED))
cacheDir=new File(android.os.Environment.getExternalStorageDirectory(),"Code Analyser");
else
cacheDir=context.getCacheDir();
if(!cacheDir.exists())
cacheDir.mkdirs();
et1=(EditText)findViewById(R.id.editText1);
et2=(EditText)findViewById(R.id.editText2);
et3=(EditText)findViewById(R.id.editText3);
et4=(EditText)findViewById(R.id.editText4);
Save=(Button)findViewById(R.id.button1);
Save.setOnClickListener(reportClickListener);
}
OnClickListener reportClickListener= new OnClickListener()
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
edit1=et1.getText().toString();
edit2=et2.getText().toString();
edit3=et3.getText().toString();
edit4=et4.getText().toString();
String FILE = Environment.getExternalStorageDirectory().toString() + "/Code Analyser/" + "report.pdf";
// Create New Blank Document
Document document = new Document(PageSize.A4);
// Create Pdf Writer for Writting into New Created Document
try {
PdfWriter.getInstance(document, new FileOutputStream(FILE));
// Open Document for Writting into document
document.open();
// User Define Method
addTitlePage(document);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// Close Document after writting all content
document.close();
Toast.makeText(report.this, "PDF File is Created."+FILE, Toast.LENGTH_LONG).show();
}
};
// Set PDF document Properties
public void addTitlePage(Document document) throws DocumentException
{
// Font Style for Document
Font catFont = new Font(Font.FontFamily.TIMES_ROMAN, 18, Font.BOLD);
Font titleFont = new Font(Font.FontFamily.TIMES_ROMAN, 22, Font.BOLD| Font.UNDERLINE, BaseColor.GRAY);
Font smallBold = new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD);
Font normal = new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL);
// Start New Paragraph
Paragraph prHead = new Paragraph();
// Set Font in this Paragraph
prHead.setFont(titleFont);
// Add item into Paragraph
prHead.add("Code Analyzer\n");
//prHead.add("\n");
prHead.setAlignment(Element.ALIGN_CENTER);
Paragraph cat = new Paragraph();
cat.setFont(catFont);
cat.add("\n");
cat.add("Report\n");
cat.add("\n");
cat.setAlignment(Element.ALIGN_CENTER);
// Add all above details into Document
document.add(prHead);
document.add(cat);
document.add(table);
/* Header values*/
table = new PdfPTable(2);
cell1 = new PdfPCell(new Phrase("Category"));
cell2 = new PdfPCell(new Phrase("Values"));
cell1.setVerticalAlignment(Element.ALIGN_LEFT);
cell2.setVerticalAlignment(Element.ALIGN_LEFT);
cell1.setBorder(Rectangle.NO_BORDER);
cell1.setPadding(5);
cell2.setBorder(Rectangle.NO_BORDER);
cell2.setPadding(5);
cell1.setBackgroundColor(BaseColor.GRAY);
cell2.setBackgroundColor(BaseColor.GRAY);
/*Table values*/
cell3 = new PdfPCell(new Phrase("Name"));
cell3.setHorizontalAlignment(Element.ALIGN_LEFT);
cell3.setBorder(Rectangle.NO_BORDER);
cell3.setPadding(5);
cell4 = new PdfPCell(new Phrase(edit1));
cell4.setHorizontalAlignment(Element.ALIGN_LEFT);
cell4.setBorder(Rectangle.NO_BORDER);
cell4.setPadding(5);
cell5 = new PdfPCell(new Phrase("Mobile Number"));
cell5.setHorizontalAlignment(Element.ALIGN_LEFT);
cell5.setBorder(Rectangle.NO_BORDER);
cell5.setPadding(5);
cell6 = new PdfPCell(new Phrase(edit2));
cell6.setHorizontalAlignment(Element.ALIGN_LEFT);
cell6.setBorder(Rectangle.NO_BORDER);
cell6.setPadding(5);
cell7 = new PdfPCell(new Phrase("Mail Id"));
cell7.setHorizontalAlignment(Element.ALIGN_LEFT);
cell7.setBorder(Rectangle.NO_BORDER);
cell7.setPadding(5);
cell8 = new PdfPCell(new Phrase(edit3));
cell8.setHorizontalAlignment(Element.ALIGN_LEFT);
cell8.setBorder(Rectangle.NO_BORDER);
cell8.setPadding(5);
cell9 = new PdfPCell(new Phrase("City"));
cell9.setHorizontalAlignment(Element.ALIGN_LEFT);
cell9.setBorder(Rectangle.NO_BORDER);
cell9.setPadding(5);
cell10 = new PdfPCell(new Phrase(edit4));
cell10.setHorizontalAlignment(Element.ALIGN_LEFT);
cell10.setBorder(Rectangle.NO_BORDER);
cell10.setPadding(5);
table.addCell(cell1);
table.addCell(cell2);
table.addCell(cell3);
table.addCell(cell4);
table.addCell(cell5);
table.addCell(cell6);
table.addCell(cell7);
table.addCell(cell8);
table.addCell(cell9);
table.addCell(cell10);
// add table into document
document.add(table);
// Create new Page in PDF
document.newPage();
//Toast.makeText(this, "PDF File is Created.", Toast.LENGTH_LONG).show();
}
report1.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_report1);
}
activity_main
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Personal Details"
android:id="@+id/button"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:onClick="buttonone"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Student Details"
android:id="@+id/button2"
android:layout_below="@+id/button"
android:layout_alignRight="@+id/button"
android:layout_alignEnd="@+id/button"
android:onClick="buttontwo"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Create PDF"
android:id="@+id/button3"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:onClick="createpdf"/>
activity_report
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<EditText
android:id="@+id/editText1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:hint="Name"
android:ems="10" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/editText2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/editText1"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
android:hint="Mobile number"
android:ems="10" />
<EditText
android:id="@+id/editText3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/editText2"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
android:hint="Mail id"
android:ems="10" />
<EditText
android:id="@+id/editText4"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/editText3"
android:layout_below="@+id/editText3"
android:layout_marginTop="10dp"
android:hint="City"
android:ems="10" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Save"
android:layout_centerVertical="true"
android:layout_alignLeft="@+id/button9"
android:layout_alignStart="@+id/button9" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="button send"
android:onClick="sendMessage"
android:layout_marginBottom="136dp"
android:id="@+id/button9"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" />
activity_report1
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<EditText
android:id="@+id/editText1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:hint="Student Name"
android:ems="10" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/editText2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/editText1"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
android:hint="Mobile number"
android:ems="10" />
<EditText
android:id="@+id/editText3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/editText2"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
android:hint="Mail id"
android:ems="10" />
<EditText
android:id="@+id/editText4"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/editText3"
android:layout_below="@+id/editText3"
android:layout_marginTop="10dp"
android:hint="School name"
android:ems="10" />
<Button
android:id="@+id/buttonsave2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Save"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true" />
您可以通过几种不同的方式执行此操作:
1) 使用 'global' 数据概念 Store application global data
2) 使用 bundle How do I create an android Intent that carries data?
将 extras 传递到 Activity
3) 写入文件和从文件读取
4) 单独创建每个 PDF 文件。然后用iTextPDF把它们组合起来
我是 android 的新手。现在正在做一个叫做学校报告的小项目。 我喜欢在两个不同的 activity 上获得用户的输入,当用户单击 createpdf 按钮时,它应该在我的设备中创建 PDF 文件,其中包含来自 activity 的所有用户输入。两个 activity 是 report 和 report1,如您在屏幕截图中所见。 问题是我不知道如何获取其他 activity 数据,例如:来自 report1 的数据。当我在报告 activity 中输入数据并单击保存时,它会创建包含所有数据的 pdf 文件。但我希望数据应该临时存储在 activity(报告、报告 1)的设备中,并且当用户单击 createpdf 按钮(MainActivity)时,它应该使用这两个活动数据创建 pdf。
我正在使用 itextpdf 库。 如果有人可以重新排列 java 逻辑部分,那将会很有帮助。 提前谢谢你
MainActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void buttonone(View view) {
Intent intent = new Intent(this, report.class);
startActivity(intent);
}
public void buttontwo(View view) {
Intent intent = new Intent(this, report1.class);
startActivity(intent);
}
report.java
EditText et1,et2,et3,et4;
Button Save;
String edit1,edit2,edit3,edit4;
PdfPTable table = new PdfPTable(2);
PdfPCell cell1, cell2,cell3,cell4, cell5,cell6,cell7, cell8,cell9,cell10;
File cacheDir;
final Context context = this;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_report);
if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED))
cacheDir=new File(android.os.Environment.getExternalStorageDirectory(),"Code Analyser");
else
cacheDir=context.getCacheDir();
if(!cacheDir.exists())
cacheDir.mkdirs();
et1=(EditText)findViewById(R.id.editText1);
et2=(EditText)findViewById(R.id.editText2);
et3=(EditText)findViewById(R.id.editText3);
et4=(EditText)findViewById(R.id.editText4);
Save=(Button)findViewById(R.id.button1);
Save.setOnClickListener(reportClickListener);
}
OnClickListener reportClickListener= new OnClickListener()
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
edit1=et1.getText().toString();
edit2=et2.getText().toString();
edit3=et3.getText().toString();
edit4=et4.getText().toString();
String FILE = Environment.getExternalStorageDirectory().toString() + "/Code Analyser/" + "report.pdf";
// Create New Blank Document
Document document = new Document(PageSize.A4);
// Create Pdf Writer for Writting into New Created Document
try {
PdfWriter.getInstance(document, new FileOutputStream(FILE));
// Open Document for Writting into document
document.open();
// User Define Method
addTitlePage(document);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// Close Document after writting all content
document.close();
Toast.makeText(report.this, "PDF File is Created."+FILE, Toast.LENGTH_LONG).show();
}
};
// Set PDF document Properties
public void addTitlePage(Document document) throws DocumentException
{
// Font Style for Document
Font catFont = new Font(Font.FontFamily.TIMES_ROMAN, 18, Font.BOLD);
Font titleFont = new Font(Font.FontFamily.TIMES_ROMAN, 22, Font.BOLD| Font.UNDERLINE, BaseColor.GRAY);
Font smallBold = new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD);
Font normal = new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL);
// Start New Paragraph
Paragraph prHead = new Paragraph();
// Set Font in this Paragraph
prHead.setFont(titleFont);
// Add item into Paragraph
prHead.add("Code Analyzer\n");
//prHead.add("\n");
prHead.setAlignment(Element.ALIGN_CENTER);
Paragraph cat = new Paragraph();
cat.setFont(catFont);
cat.add("\n");
cat.add("Report\n");
cat.add("\n");
cat.setAlignment(Element.ALIGN_CENTER);
// Add all above details into Document
document.add(prHead);
document.add(cat);
document.add(table);
/* Header values*/
table = new PdfPTable(2);
cell1 = new PdfPCell(new Phrase("Category"));
cell2 = new PdfPCell(new Phrase("Values"));
cell1.setVerticalAlignment(Element.ALIGN_LEFT);
cell2.setVerticalAlignment(Element.ALIGN_LEFT);
cell1.setBorder(Rectangle.NO_BORDER);
cell1.setPadding(5);
cell2.setBorder(Rectangle.NO_BORDER);
cell2.setPadding(5);
cell1.setBackgroundColor(BaseColor.GRAY);
cell2.setBackgroundColor(BaseColor.GRAY);
/*Table values*/
cell3 = new PdfPCell(new Phrase("Name"));
cell3.setHorizontalAlignment(Element.ALIGN_LEFT);
cell3.setBorder(Rectangle.NO_BORDER);
cell3.setPadding(5);
cell4 = new PdfPCell(new Phrase(edit1));
cell4.setHorizontalAlignment(Element.ALIGN_LEFT);
cell4.setBorder(Rectangle.NO_BORDER);
cell4.setPadding(5);
cell5 = new PdfPCell(new Phrase("Mobile Number"));
cell5.setHorizontalAlignment(Element.ALIGN_LEFT);
cell5.setBorder(Rectangle.NO_BORDER);
cell5.setPadding(5);
cell6 = new PdfPCell(new Phrase(edit2));
cell6.setHorizontalAlignment(Element.ALIGN_LEFT);
cell6.setBorder(Rectangle.NO_BORDER);
cell6.setPadding(5);
cell7 = new PdfPCell(new Phrase("Mail Id"));
cell7.setHorizontalAlignment(Element.ALIGN_LEFT);
cell7.setBorder(Rectangle.NO_BORDER);
cell7.setPadding(5);
cell8 = new PdfPCell(new Phrase(edit3));
cell8.setHorizontalAlignment(Element.ALIGN_LEFT);
cell8.setBorder(Rectangle.NO_BORDER);
cell8.setPadding(5);
cell9 = new PdfPCell(new Phrase("City"));
cell9.setHorizontalAlignment(Element.ALIGN_LEFT);
cell9.setBorder(Rectangle.NO_BORDER);
cell9.setPadding(5);
cell10 = new PdfPCell(new Phrase(edit4));
cell10.setHorizontalAlignment(Element.ALIGN_LEFT);
cell10.setBorder(Rectangle.NO_BORDER);
cell10.setPadding(5);
table.addCell(cell1);
table.addCell(cell2);
table.addCell(cell3);
table.addCell(cell4);
table.addCell(cell5);
table.addCell(cell6);
table.addCell(cell7);
table.addCell(cell8);
table.addCell(cell9);
table.addCell(cell10);
// add table into document
document.add(table);
// Create new Page in PDF
document.newPage();
//Toast.makeText(this, "PDF File is Created.", Toast.LENGTH_LONG).show();
}
report1.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_report1);
}
activity_main
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Personal Details"
android:id="@+id/button"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:onClick="buttonone"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Student Details"
android:id="@+id/button2"
android:layout_below="@+id/button"
android:layout_alignRight="@+id/button"
android:layout_alignEnd="@+id/button"
android:onClick="buttontwo"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Create PDF"
android:id="@+id/button3"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:onClick="createpdf"/>
activity_report
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<EditText
android:id="@+id/editText1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:hint="Name"
android:ems="10" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/editText2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/editText1"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
android:hint="Mobile number"
android:ems="10" />
<EditText
android:id="@+id/editText3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/editText2"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
android:hint="Mail id"
android:ems="10" />
<EditText
android:id="@+id/editText4"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/editText3"
android:layout_below="@+id/editText3"
android:layout_marginTop="10dp"
android:hint="City"
android:ems="10" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Save"
android:layout_centerVertical="true"
android:layout_alignLeft="@+id/button9"
android:layout_alignStart="@+id/button9" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="button send"
android:onClick="sendMessage"
android:layout_marginBottom="136dp"
android:id="@+id/button9"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" />
activity_report1
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<EditText
android:id="@+id/editText1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:hint="Student Name"
android:ems="10" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/editText2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/editText1"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
android:hint="Mobile number"
android:ems="10" />
<EditText
android:id="@+id/editText3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/editText2"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
android:hint="Mail id"
android:ems="10" />
<EditText
android:id="@+id/editText4"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/editText3"
android:layout_below="@+id/editText3"
android:layout_marginTop="10dp"
android:hint="School name"
android:ems="10" />
<Button
android:id="@+id/buttonsave2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Save"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true" />
您可以通过几种不同的方式执行此操作:
1) 使用 'global' 数据概念 Store application global data
2) 使用 bundle How do I create an android Intent that carries data?
将 extras 传递到 Activity3) 写入文件和从文件读取
4) 单独创建每个 PDF 文件。然后用iTextPDF把它们组合起来