Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在android中创建PDF时将长文本拆分为多行?_Java_Android_Pdf - Fatal编程技术网

Java 如何在android中创建PDF时将长文本拆分为多行?

Java 如何在android中创建PDF时将长文本拆分为多行?,java,android,pdf,Java,Android,Pdf,我有一个笔记本应用程序,我想把笔记保存为PDF文件。用户可以在TextView中编写长文本,但当我将文本设置为字符串并创建PDF文件时,只有一行中的一小部分文本会出现在PDF文件中。如何将文本拆分为多行以在PDF页面中查看整个文本? 我使用这部分java代码来分解文本,但它不起作用 textView = findViewById(R.id.textView); String pdfText = textView.getText().toString(); Pai

我有一个笔记本应用程序,我想把笔记保存为PDF文件。用户可以在TextView中编写长文本,但当我将文本设置为字符串并创建PDF文件时,只有一行中的一小部分文本会出现在PDF文件中。如何将文本拆分为多行以在PDF页面中查看整个文本? 我使用这部分java代码来分解文本,但它不起作用

     textView = findViewById(R.id.textView);

     String pdfText = textView.getText().toString();

     Paint contentPaint = new Paint();
        int length = pdfText.length();
        contentPaint.breakText(pdfText, 0, length, true, 70, null);
        canvas.drawText(pdfText, 30, 285, contentPaint);

我也有同样的问题。我设法从邮局解决了这个问题。它使用静态布局。下面是我的全部代码,它将字符串值保存到使用多行分隔符创建的pdf文件中

String saveFilePath = path.getPath();
String textToSave = detectedText.getText().toString();
File file = new File(path, filenameString + ".pdf");
file.createNewFile();
FileOutputStream fOut = new FileOutputStream(file);
PdfDocument document = new PdfDocument();
PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(595, 842, 1).create();
PdfDocument.Page page = document.startPage(pageInfo);
Canvas canvas = page.getCanvas();

//*this part i took from the post for multiline breaks*
TextPaint mTextPaint = new TextPaint();
StaticLayout mTextLayout = new StaticLayout( textToSave ,mTextPaint, canvas.getWidth() - 100, Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false);
canvas.save();
int textX = 50;
int textY = 50;
canvas.translate(textX, textY);
//**

mTextLayout.draw(canvas);
canvas.restore();
document.finishPage(page);
document.writeTo(fOut);
document.close();
如果字符串仍然溢出页面,请在此处尝试不同的值

canvas.getWidth() - 100
在静态布局初始化中。 我将提供一些前后截图