本页内容
文本重排
PDF 文本内容存储在与特定页面相关的CPDFPage
对象中。 CPDFPage
类可用于检索 PDF 页面中的文本信息,例如单个字符、单个单词、指定字符范围或边界内的文本内容等。
文本重排的步骤分为两步:
- 通过 selection 获取页面上的文本边界。
- 从
CPDFTextSelection
数组中获取文本,重新排列文本以显示适合设备屏幕尺寸的布局。
以下是通过 selection 获取页面上的文本边界的示例代码:
java
RectF size = readerView.getPageNoZoomSize(1);
CPDFPage pdfPage = readerView.getPDFDocument().pageAtIndex(1);
CPDFTextPage pdfTextPage = pdfPage.getTextPage();
RectF selectRect = new RectF(0f, 0f, size.width(), size.height());
selectRect = pdfPage.convertRectFromPage(readerView.isCropMode(), size.width(), size.height(), selectRect);
CPDFTextSelection[] textSelectionArr = pdfTextPage.getSelectionsByLineForRect(selectRect);
kotlin
val size = readerView.getPageNoZoomSize(1)
val pdfPage = readerView.pdfDocument.pageAtIndex(1)
val pdfTextPage = pdfPage.textPage
var selectRect: RectF? = RectF(0F, 0F, size.width(), size.height())
selectRect = pdfPage.convertRectFromPage(readerView.isCropMode, size.width(), size.height(), selectRect)
val textSelectionArr = pdfTextPage.getSelectionsByLineForRect(selectRect)
以下是从 CPDFTextSelection
数组中获取文本的示例代码:
java
int len = textSelectionArr.length;
for (int i = 0; i < len; i++) {
CPDFTextSelection textSelection = textSelectionArr[i];
if (textSelection == null) {
continue;
}
String text = pdfTextPage.getText(textSelection.getTextRange());
}
kotlin
val textSelectionArr = pdfTextPage.getSelectionsByLineForRect(selectRect)
for (textSelection in textSelectionArr) {
val text = pdfTextPage.getText(textSelection.textRange)
}