gpt4 book ai didi

android - 以编程方式在android中创建一个pdf文件并写入其中

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:17:38 24 4
gpt4 key购买 nike

我正在尝试在我的应用程序中创建一个 pdf 文件,将其保存在外部存储中并打开它。保存文件对我来说不是问题,打开文件也不是问题,我的问题是创建一个文件并写入其中。因此,在网上进行一些研究后,我发现了以下方法:

File file = new File(directoryName, fileName);

// Creating output stream to write in the newly created file
FileOutputStream fOut = null;

try {
fOut = new FileOutputStream(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
}

// Creating a new document
Document document = new Document(PageSize.A4, 50, 50, 50, 50);

try {
PdfWriter.getInstance(document, fOut);

// Open the document for writing
document.open();

// Write in the document
document.add(new Paragraph("Hello world"));
document.close();

} catch (DocumentException de) {
System.err.println(de.getMessage());
}

运行我的应用程序并执行上面的代码后,出现以下错误:

java.lang.NoClassDefFoundError: Failed resolution of: Ljava/awt/Color;

有人会知道我的代码有什么问题,或者其他肯定可以创建和编写 pdf 文件的方法吗?

谢谢!

最佳答案

显然我使用的代码与 android 不兼容,因此出现了错误。您将在下面找到实际工作正常的正确代码(用于创建 pdf 文件、将一些内容放入其中、保存并打开新创建的文件):

PS:为此您需要添加 iTextG 的 jar 到你的项目:

// Method for creating a pdf file from text, saving it then opening it for display
public void createandDisplayPdf(String text) {

Document doc = new Document();

try {
String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Dir";

File dir = new File(path);
if(!dir.exists())
dir.mkdirs();

File file = new File(dir, "newFile.pdf");
FileOutputStream fOut = new FileOutputStream(file);

PdfWriter.getInstance(doc, fOut);

//open the document
doc.open();

Paragraph p1 = new Paragraph(text);
Font paraFont= new Font(Font.COURIER);
p1.setAlignment(Paragraph.ALIGN_CENTER);
p1.setFont(paraFont);

//add paragraph to document
doc.add(p1);

} catch (DocumentException de) {
Log.e("PDFCreator", "DocumentException:" + de);
} catch (IOException e) {
Log.e("PDFCreator", "ioException:" + e);
}
finally {
doc.close();
}

viewPdf("newFile.pdf", "Dir");
}

// Method for opening a pdf file
private void viewPdf(String file, String directory) {

File pdfFile = new File(Environment.getExternalStorageDirectory() + "/" + directory + "/" + file);
Uri path = Uri.fromFile(pdfFile);

// Setting the intent for pdf reader
Intent pdfIntent = new Intent(Intent.ACTION_VIEW);
pdfIntent.setDataAndType(path, "application/pdf");
pdfIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

try {
startActivity(pdfIntent);
} catch (ActivityNotFoundException e) {
Toast.makeText(TableActivity.this, "Can't read pdf file", Toast.LENGTH_SHORT).show();
}
}

关于android - 以编程方式在android中创建一个pdf文件并写入其中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34296149/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com