在Android中是否可以将文本转换为PDF?
我想通过我的应用程序创建一个PDF文件,并想通过电子邮件将PDF文件作为附件发送。在安卓系统中可能吗?如果是,请说明如何操作。这是代码在Android中是否可以将文本转换为PDF?,android,Android,我想通过我的应用程序创建一个PDF文件,并想通过电子邮件将PDF文件作为附件发送。在安卓系统中可能吗?如果是,请说明如何操作。这是代码 Document doc = new Document(); PdfWriter.getInstance(doc, new FileOutputStream("urgentz.pdf")); doc.open(); Image image = Image.getInstance ("urgentzImageahslkdhaosd.
Document doc = new Document();
PdfWriter.getInstance(doc, new FileOutputStream("urgentz.pdf"));
doc.open();
Image image = Image.getInstance ("urgentzImageahslkdhaosd.jpg");
doc.add(new Paragraph("Your text blah bleh"));
doc.add(image);
doc.close();
将该库与android项目一起使用iText库使用。
请参考答案
iText示例很多。下面是网站。
创建pdf非常简单 如果您使用的是android studio,请首先下载droidText.0.2.jar并添加gradle文件和libs文件夹。然后为PDF编写此代码
public void createPDF() {
Document doc = new Document();
try {
path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/ADUREC";
File dir = new File(path);
if (!dir.exists())
dir.mkdirs();
Log.d("PDFCreator", "PDF Path: " + path);
//This is for random name
number = new ArrayList<Integer>();
for (int i = 1; i <= 10; ++i) number.add(i);
Collections.shuffle(number);
File file = new File(dir, "Document" + number + ".pdf");
FileOutputStream fOut = new FileOutputStream(file);
PdfWriter.getInstance(doc, fOut);
//open the document
doc.open();
Paragraph p1 = new Paragraph("TENANTS : " + tenants.getText().toString());
Font paraFont = new Font(Font.COURIER);
p1.setAlignment(Paragraph.ALIGN_CENTER);
p1.setFont(paraFont);
//add paragraph to document
doc.add(p1);
Paragraph p2 = new Paragraph("OFFFER NUMBER : " + offer_number.getText().toString());
Font paraFont2 = new Font(Font.COURIER, 14.0f, Color.GREEN);
p2.setAlignment(Paragraph.ALIGN_CENTER);
p2.setFont(paraFont2);
doc.add(p2);
Paragraph p3 = new Paragraph("OFFFER NUMBER : " + offer_number.getText().toString());
Font paraFont3 = new Font(Font.COURIER, 14.0f, Color.GREEN);
p3.setAlignment(Paragraph.ALIGN_CENTER);
p3.setFont(paraFont2);
doc.add(p3);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
Bitmap bitmap = BitmapFactory.decodeResource(getBaseContext().getResources(), R.drawable.logo);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
Image myImg = Image.getInstance(stream.toByteArray());
myImg.setAlignment(Image.MIDDLE);
// add image to document
doc.add(myImg);
//set footer
Phrase footerText = new Phrase("ADUREC DOCUMENT");
HeaderFooter pdfFooter = new HeaderFooter(footerText, true);
doc.setFooter(pdfFooter);
// Toast.makeText(getApplicationContext(), "success pdf", Toast
// .LENGTH_LONG).show();
} catch (DocumentException de) {
Log.e("PDFCreator", "DocumentException:" + de);
} catch (IOException e) {
Log.e("PDFCreator", "ioException:" + e);
} finally {
doc.close();
}
}
public void createPDF(){
单据单据=新单据();
试一试{
path=Environment.getExternalStorageDirectory().getAbsolutePath()+“/ADUREC”;
文件目录=新文件(路径);
如果(!dir.exists())
dir.mkdirs();
Log.d(“PDFCreator”,“PDF路径:“+Path”);
//这是随机名称
number=新的ArrayList();
对于(int i=1;i
在gradle.build文件实现'com.itextpdf:itextg:5.5.10'中编写以下依赖项
在AndroidManifest中
在MainActivity中编写以下代码
Kotlin示例代码:
您可以使用下面的代码创建pdf页面并在画布中绘制任何内容
fun createPdf(textToPdf: String) {
// create a new document
val document = PdfDocument()
// crate a page description
var pageInfo: PdfDocument.PageInfo = PdfDocument.PageInfo.Builder(300, 600, 1).create()
// start a page
var page: PdfDocument.Page = document.startPage(pageInfo)
var canvas = page.canvas
var paint = Paint()
paint.color = Color.RED
canvas.drawCircle(50F, 50F, 30F, paint)
paint.color = Color.BLACK
canvas.drawText(textToPdf, 80F, 50F, paint)
//canvas.drawt
// finish the page
document.finishPage(page)
// draw text on the graphics object of the page
// Create Page 2
pageInfo = PdfDocument.PageInfo.Builder(300, 600, 2).create()
page = document.startPage(pageInfo)
canvas = page.canvas
paint = Paint()
paint.color = Color.BLUE
canvas.drawCircle(100F, 100F, 100F, paint)
document.finishPage(page)
// write the document content
val directory_path = Environment.getExternalStorageDirectory().path + "/mypdf/"
val file = File(directory_path)
if (!file.exists()) {
file.mkdirs()
}
val targetPdf = directory_path + "test-2.pdf"
val filePath = File(targetPdf)
try {
document.writeTo(FileOutputStream(filePath))
Toast.makeText(mContext, "Done", Toast.LENGTH_LONG).show()
} catch (e: IOException) {
Log.e("main", "error " + e.toString())
Toast.makeText(mContext, "Something wrong: " + e.toString(), Toast.LENGTH_LONG).show()
}
// close the document
document.close()
//isPrinting = false
}
注:
别忘了添加ya我试过代码,但在我的应用程序中找不到pdf文件。嘿,在“Image Image=Image.getInstance(“urgentzImageahslkdhaosd.jpg”);“shows configure”行上显示错误path@simplepi如果/当你编辑一篇文章时,请花时间解决所有问题,而不仅仅是琐碎的问题。
fun createPdf(textToPdf: String) {
// create a new document
val document = PdfDocument()
// crate a page description
var pageInfo: PdfDocument.PageInfo = PdfDocument.PageInfo.Builder(300, 600, 1).create()
// start a page
var page: PdfDocument.Page = document.startPage(pageInfo)
var canvas = page.canvas
var paint = Paint()
paint.color = Color.RED
canvas.drawCircle(50F, 50F, 30F, paint)
paint.color = Color.BLACK
canvas.drawText(textToPdf, 80F, 50F, paint)
//canvas.drawt
// finish the page
document.finishPage(page)
// draw text on the graphics object of the page
// Create Page 2
pageInfo = PdfDocument.PageInfo.Builder(300, 600, 2).create()
page = document.startPage(pageInfo)
canvas = page.canvas
paint = Paint()
paint.color = Color.BLUE
canvas.drawCircle(100F, 100F, 100F, paint)
document.finishPage(page)
// write the document content
val directory_path = Environment.getExternalStorageDirectory().path + "/mypdf/"
val file = File(directory_path)
if (!file.exists()) {
file.mkdirs()
}
val targetPdf = directory_path + "test-2.pdf"
val filePath = File(targetPdf)
try {
document.writeTo(FileOutputStream(filePath))
Toast.makeText(mContext, "Done", Toast.LENGTH_LONG).show()
} catch (e: IOException) {
Log.e("main", "error " + e.toString())
Toast.makeText(mContext, "Something wrong: " + e.toString(), Toast.LENGTH_LONG).show()
}
// close the document
document.close()
//isPrinting = false
}